KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
elastic_cohesive_3D_law.hpp
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Ignasi de Pouplana and Danilo Cavalcanti
11 //
12 
13 #if !defined (KRATOS_ELASTIC_COHESIVE_3D_LAW_H_INCLUDED)
14 #define KRATOS_ELASTIC_COHESIVE_3D_LAW_H_INCLUDED
15 
16 // System includes
17 #include <cmath>
18 
19 // Project includes
20 #include "includes/serializer.h"
21 #include "includes/checks.h"
23 
24 // Application includes
26 
27 namespace Kratos
28 {
29 
30 class KRATOS_API(POROMECHANICS_APPLICATION) ElasticCohesive3DLaw : public ConstitutiveLaw
31 {
32 
33 public:
34 
36 
37 //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
38 
39  // Default Constructor
41  {
42  }
43 
44  ConstitutiveLaw::Pointer Clone() const override
45  {
46  return Kratos::make_shared<ElasticCohesive3DLaw>(ElasticCohesive3DLaw(*this));
47  }
48 
49  // Copy Constructor
51  {
52  }
53 
54  // Destructor
56  {
57  }
58 
59 //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
60 
61  void GetLawFeatures(Features& rFeatures) override;
62 
63  int Check(const Properties& rMaterialProperties, const GeometryType& rElementGeometry, const ProcessInfo& rCurrentProcessInfo) const override;
64 
65 //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
66 
67  void CalculateMaterialResponseCauchy(Parameters & rValues) override;
68 
69  void FinalizeMaterialResponseCauchy(Parameters & rValues) override;
70 
71 //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
72 
73 protected:
74 
76  {
80  };
81 
82 //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
83 
84  virtual void InitializeConstitutiveLawVariables(ConstitutiveLawVariables& rVariables, Parameters& rValues);
85 
86  virtual void ComputeConstitutiveMatrix(Matrix& rConstitutiveMatrix,
87  ConstitutiveLawVariables& rVariables,
88  Parameters& rValues);
89 
90  virtual void ComputeStressVector(Vector& rStressVector,
91  ConstitutiveLawVariables& rVariables,
92  Parameters& rValues);
93 
94 //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
95 
96 private:
97 
98  // Serialization
99 
100  friend class Serializer;
101 
102  void save(Serializer& rSerializer) const override
103  {
105  }
106 
107  void load(Serializer& rSerializer) override
108  {
110  }
111 
112 }; // Class ElasticCohesive3DLaw
113 } // namespace Kratos.
114 #endif // KRATOS_ELASTIC_COHESIVE_3D_LAW_H_INCLUDED defined
Definition: constitutive_law.h:47
Definition: elastic_cohesive_3D_law.hpp:31
ElasticCohesive3DLaw()
Definition: elastic_cohesive_3D_law.hpp:40
KRATOS_CLASS_POINTER_DEFINITION(ElasticCohesive3DLaw)
ElasticCohesive3DLaw(const ElasticCohesive3DLaw &rOther)
Definition: elastic_cohesive_3D_law.hpp:50
~ElasticCohesive3DLaw() override
Definition: elastic_cohesive_3D_law.hpp:55
ConstitutiveLaw::Pointer Clone() const override
Clone function (has to be implemented by any derived class)
Definition: elastic_cohesive_3D_law.hpp:44
Geometry base class.
Definition: geometry.h:71
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:189
Definition: elastic_cohesive_3D_law.hpp:76
double ShearStiffness
Definition: elastic_cohesive_3D_law.hpp:78
double PenaltyStiffness
Definition: elastic_cohesive_3D_law.hpp:79
double NormalStiffness
Definition: elastic_cohesive_3D_law.hpp:77