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.
hypoelastic_3D_law.h
Go to the documentation of this file.
1 //-------------------------------------------------------------
2 // ___ __ ___ _ _ _
3 // KRATOS| _ \/ _|___ _ __ | __| |_ _(_)__| |
4 // | _/ _/ -_) ' \| _|| | || | / _` |
5 // |_| |_| \___|_|_|_|_| |_|\_,_|_\__,_|DYNAMICS
6 //
7 // BSD License: PfemFluidDynamicsApplication/license.txt
8 //
9 // Main authors: Alessandro Franci
10 // Collaborators:
11 //
12 //-------------------------------------------------------------
13 //
14 
15 #if !defined(KRATOS_HYPOELASTIC_LAW_3D_H_INCLUDED)
16 #define KRATOS_HYPOELASTIC_LAW_3D_H_INCLUDED
17 
18 // System includes
19 
20 // External includes
21 
22 // Project includes
23 #include "solid_constitutive_law.h"
24 
25 namespace Kratos
26 {
33  class KRATOS_API(PFEM_FLUID_DYNAMICS_APPLICATION) Hypoelastic3DLaw : public PfemSolidConstitutiveLaw
34  {
35  public:
41  typedef std::size_t SizeType;
42 
47 
56 
61  ConstitutiveLaw::Pointer Clone() const override;
62 
66  Hypoelastic3DLaw(const Hypoelastic3DLaw &rOther);
67 
71  ~Hypoelastic3DLaw() override;
72 
80  SizeType WorkingSpaceDimension() override;
81 
85  SizeType GetStrainSize() const override;
86 
87  void CalculateMaterialResponseCauchy(Parameters &rValues) override;
88 
98  int Check(const Properties &rMaterialProperties, const GeometryType &rElementGeometry,
99  const ProcessInfo &rCurrentProcessInfo) const override;
100 
108  std::string Info() const override;
109 
110  protected:
122 
123  // /// Get the effective density for the solid.
124  double GetEffectiveMaterialParameter(ConstitutiveLaw::Parameters &rParameters, const Variable<double> &rVariable) const override;
125 
127 
128  private:
131 
135 
139 
143 
147 
151  friend class Serializer;
152 
153  void save(Serializer &rSerializer) const override;
154 
155  void load(Serializer &rSerializer) override;
157 
158  }; // Class Hypoelastic3DLaw
159 
160 } // namespace Kratos.
161 
162 #endif // KRATOS_HYPOELASTIC_LAW_3D_H_INCLUDED defined
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Definition: constitutive_law.h:47
std::size_t SizeType
Definition: constitutive_law.h:82
Geometry base class.
Definition: geometry.h:71
Definition: hypoelastic_3D_law.h:34
std::size_t SizeType
Definition: hypoelastic_3D_law.h:41
ProcessInfo ProcessInfoType
Definition: hypoelastic_3D_law.h:39
ConstitutiveLaw BaseType
Definition: hypoelastic_3D_law.h:40
KRATOS_CLASS_POINTER_DEFINITION(Hypoelastic3DLaw)
This class contains the common infrastructure for solid constitutive laws.
Definition: solid_constitutive_law.h:36
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
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