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_U_P_3D_law.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosSolidMechanicsApplication $
3 // Created by: $Author: JMCarbonell $
4 // Last modified by: $Co-Author: $
5 // Date: $Date: July 2015 $
6 // Revision: $Revision: 0.0 $
7 //
8 //
9 
10 #if !defined (KRATOS_HYPERELASTIC_U_P_3D_LAW_H_INCLUDED)
11 #define KRATOS_HYPERELASTIC_U_P_3D_LAW_H_INCLUDED
12 
13 // System includes
14 
15 // External includes
16 
17 // Project includes
18 #include "custom_constitutive/hyperelastic_3D_law.hpp"
19 
20 
21 namespace Kratos
22 {
33 class KRATOS_API(SOLID_MECHANICS_APPLICATION) HyperElasticUP3DLaw : public HyperElastic3DLaw
34 {
35 protected:
36 
40  struct VectorSplit
41  {
42  Vector Isochoric;
43  Vector Volumetric;
44  };
45 
46  struct MatrixSplit
47  {
48  Matrix Isochoric;
49  Matrix Volumetric;
50  };
51 
52 
53 public:
59  typedef std::size_t SizeType;
65 
74 
75 
80 
81 
86  //HyperElasticUP3DLaw& operator=(const HyperElasticUP3DLaw& rOther);
87 
92  ConstitutiveLaw::Pointer Clone() const override;
93 
98 
112  void GetLawFeatures(Features& rFeatures) override;
113 
114 
121  void CalculateMaterialResponsePK2 (Parameters & rValues) override;
122 
130 
140  //int Check(const Properties& rMaterialProperties, const GeometryType& rElementGeometry, const ProcessInfo& rCurrentProcessInfo);
141 
148  //String Info() const override;
152  //void PrintInfo(std::ostream& rOStream) const override;
156  //void PrintData(std::ostream& rOStream) const override;
157 
158 protected:
159 
171 
178  double& CalculateVolumetricPressure (const MaterialResponseVariables & rElasticVariables,
179  double & rPressure) override;
180 
181 
188  Vector & rFactors) override;
189 
190 
191 
192 private:
193 
199 
200 
204 
205 
209 
210 
215 
216 
220  friend class Serializer;
221 
222  void save(Serializer& rSerializer) const override
223  {
225  }
226 
227  void load(Serializer& rSerializer) override
228  {
230  }
231 
232 
233 
234 }; // Class HyperElasticUP3DLaw
235 } // namespace Kratos.
236 #endif // KRATOS_HYPERELASTIC_U_P_3D_LAW_H_INCLUDED defined
Definition: constitutive_law.h:47
Definition: hyperelastic_3D_law.hpp:38
Definition: hyperelastic_UP_3D_law.hpp:39
HyperElasticUP3DLaw(const HyperElasticUP3DLaw &rOther)
ConstitutiveLaw BaseType
Definition: hyperelastic_U_P_3D_law.hpp:58
Vector & CalculateVolumetricPressureFactors(const MaterialResponseVariables &rElasticVariables, Vector &rFactors) override
double & CalculateVolumetricPressure(const MaterialResponseVariables &rElasticVariables, double &rPressure) override
void CalculateMaterialResponseKirchhoff(Parameters &rValues) override
ConstitutiveLaw::Pointer Clone() const override
std::size_t SizeType
Definition: hyperelastic_U_P_3D_law.hpp:59
KRATOS_CLASS_POINTER_DEFINITION(HyperElasticUP3DLaw)
void GetLawFeatures(Features &rFeatures) override
ProcessInfo ProcessInfoType
Definition: hyperelastic_U_P_3D_law.hpp:57
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
Internals::Matrix< double, AMatrix::dynamic, 1 > Vector
Definition: amatrix_interface.h:472
Internals::Matrix< double, AMatrix::dynamic, AMatrix::dynamic > Matrix
Definition: amatrix_interface.h:470
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:137
Definition: constitutive_law.h:189
Definition: hyperelastic_3D_law.hpp:43