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.
hyperelastic_UP_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: Bodhinanda Chandra
11 //
12 // References: This class is adapted from applications/SolidMechanicsApplication/custom_constitutive/hyperelastic_U_P_3D_law.hpp
13 
14 
15 #if !defined (KRATOS_HYPERELASTIC_UP_3D_LAW_H_INCLUDED)
16 #define KRATOS_HYPERELASTIC_UP_3D_LAW_H_INCLUDED
17 
18 // System includes
19 
20 // External includes
21 
22 // Project includes
23 #include "custom_constitutive/hyperelastic_3D_law.hpp"
24 
25 
26 namespace Kratos
27 {
38 class KRATOS_API(PARTICLE_MECHANICS_APPLICATION) HyperElasticUP3DLaw : public HyperElastic3DLaw
39 {
40 protected:
41 
45  struct VectorSplit
46  {
49  };
50 
51  struct MatrixSplit
52  {
55  };
56 
57 
58 public:
64  typedef std::size_t SizeType;
70 
79 
80 
85 
86 
91  //HyperElasticUP3DLaw& operator=(const HyperElasticUP3DLaw& rOther);
92 
97  ConstitutiveLaw::Pointer Clone() const override;
98 
102  ~HyperElasticUP3DLaw() override;
103 
117  void GetLawFeatures(Features& rFeatures) override;
118 
119 
126  void CalculateMaterialResponseKirchhoff (Parameters & rValues) override;
127 
128 
135  //String Info() const override;
139  //void PrintInfo(std::ostream& rOStream) const override;
143  //void PrintData(std::ostream& rOStream) const override;
144 
145 protected:
146 
158 
165  double& CalculateVolumetricPressure (const MaterialResponseVariables & rElasticVariables,
166  double & rPressure) override;
167 
168 
174  Vector& CalculateVolumetricPressureFactors (const MaterialResponseVariables & rElasticVariables,
175  Vector & rFactors) override;
176 
177 
178 
179 private:
180 
186 
187 
191 
192 
196 
197 
202 
203 
207  friend class Serializer;
208 
209  void save(Serializer& rSerializer) const override
210  {
212  }
213 
214  void load(Serializer& rSerializer) override
215  {
217  }
218 
219 
220 
221 }; // Class HyperElasticUP3DLaw
222 } // namespace Kratos.
223 #endif // KRATOS_HYPERELASTIC_UP_3D_LAW_H_INCLUDED defined
Definition: constitutive_law.h:47
Definition: hyperelastic_3D_law.hpp:38
Definition: hyperelastic_UP_3D_law.hpp:39
ConstitutiveLaw BaseType
Definition: hyperelastic_UP_3D_law.hpp:63
std::size_t SizeType
Definition: hyperelastic_UP_3D_law.hpp:64
KRATOS_CLASS_POINTER_DEFINITION(HyperElasticUP3DLaw)
ProcessInfo ProcessInfoType
Definition: hyperelastic_UP_3D_law.hpp:62
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
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:137
Definition: constitutive_law.h:189
Definition: hyperelastic_3D_law.hpp:43
Definition: hyperelastic_UP_3D_law.hpp:52
Matrix Volumetric
Definition: hyperelastic_UP_3D_law.hpp:54
Matrix Isochoric
Definition: hyperelastic_UP_3D_law.hpp:53
Definition: hyperelastic_UP_3D_law.hpp:46
Vector Isochoric
Definition: hyperelastic_UP_3D_law.hpp:47
Vector Volumetric
Definition: hyperelastic_UP_3D_law.hpp:48