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.
solid_constitutive_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: Jordi Cotela
10 // Collaborators: Massimiliano Zecchetto
11 //
12 //-------------------------------------------------------------
13 //
14 
15 #if !defined(KRATOS_PFEM_SOLID_CONSTITUTIVE_LAW)
16 #define KRATOS_PFEM_SOLID_CONSTITUTIVE_LAW
17 
18 // System includes
19 
20 // External includes
21 
22 // Project includes
24 
25 namespace Kratos
26 {
27 
30 
33 
35  class KRATOS_API(PFEM_FLUID_DYNAMICS_APPLICATION) PfemSolidConstitutiveLaw : public ConstitutiveLaw
36  {
37  public:
40 
42 
44  typedef std::size_t SizeType;
45 
49 
52 
55 
57  ~PfemSolidConstitutiveLaw() override;
58 
62 
64  ConstitutiveLaw::Pointer Clone() const override;
65 
67 
71  void CalculateMaterialResponseCauchy(ConstitutiveLaw::Parameters &rValues) override;
72 
74 
79  int Check(const Properties &rMaterialProperties, const GeometryType &rElementGeometry,
80  const ProcessInfo &rCurrentProcessInfo) const override;
81 
85 
88  double &CalculateValue(ConstitutiveLaw::Parameters &rParameters, const Variable<double> &rThisVariable,
89  double &rValue) override;
90 
94 
96 
98  SizeType WorkingSpaceDimension() override;
99 
101 
103  SizeType GetStrainSize() const override;
104 
108 
110  std::string Info() const override;
111 
113  void PrintInfo(std::ostream &rOStream) const override;
114 
116  void PrintData(std::ostream &rOStream) const override;
117 
119 
120  protected:
123 
127 
134  virtual double GetEffectiveMaterialParameter(ConstitutiveLaw::Parameters &rParameters, const Variable<double> &rVariable) const;
135 
141  virtual double CalculateAveragedVariable(const Variable<double> &rVariableInput,
142  ConstitutiveLaw::Parameters &rParameters, unsigned int step) const;
143 
153  virtual double GetValueFromTable(const Variable<double> &rIndependentVariable, const Variable<double> &rDependentVariable,
154  ConstitutiveLaw::Parameters &rParameters) const;
155 
157 
158  private:
161 
165 
166  friend class Serializer;
167 
168  void save(Serializer &rSerializer) const override;
169 
170  void load(Serializer &rSerializer) override;
171 
173 
174  }; // Class PfemSolidConstitutiveLaw
175 
176 } // namespace Kratos.
177 
178 #endif // KRATOS_PFEM_SOLID_CONSTITUTIVE_LAW 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
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
ConstitutiveLaw BaseType
Definition: solid_constitutive_law.h:43
KRATOS_CLASS_POINTER_DEFINITION(PfemSolidConstitutiveLaw)
std::size_t SizeType
Definition: solid_constitutive_law.h:44
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
int step
Definition: face_heat.py:88
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:189