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.
bingham_2D_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: Riccardo Rossi, Alessandro Franci
10 // Collaborators: Massimiliano Zecchetto
11 //
12 //-------------------------------------------------------------
13 //
14 
15 #if !defined(KRATOS_BINGHAM_LAW_2D_H_INCLUDED)
16 #define KRATOS_BINGHAM_LAW_2D_H_INCLUDED
17 
18 // System includes
19 
20 // External includes
21 
22 // Project includes
23 #include "fluid_constitutive_law.h"
24 
25 namespace Kratos
26 {
34  class KRATOS_API(PFEM_FLUID_DYNAMICS_APPLICATION) Bingham2DLaw : public PfemFluidConstitutiveLaw
35  {
36  public:
42  typedef std::size_t SizeType;
43 
48 
56  Bingham2DLaw();
57 
62  ConstitutiveLaw::Pointer Clone() const override;
63 
67  Bingham2DLaw(const Bingham2DLaw &rOther);
68 
72  ~Bingham2DLaw() override;
73 
85  SizeType WorkingSpaceDimension() override;
86 
90  SizeType GetStrainSize() const override;
91 
92  void CalculateMaterialResponseCauchy(Parameters &rValues) override;
93 
103  int Check(const Properties &rMaterialProperties, const GeometryType &rElementGeometry,
104  const ProcessInfo &rCurrentProcessInfo) const override;
105 
113  std::string Info() const override;
114 
115  protected:
127 
128  double GetEffectiveMaterialParameter(ConstitutiveLaw::Parameters &rParameters, const Variable<double> &rVariable) const override;
129 
131 
132  private:
135 
139 
143 
148 
153 
157  friend class Serializer;
158 
159  void save(Serializer &rSerializer) const override;
160 
161  void load(Serializer &rSerializer) override;
163 
164  }; // Class Bingham2DLaw
165 
166 } // namespace Kratos.
167 
168 #endif // KRATOS_BINGHAM_LAW_2D_H_INCLUDED defined
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Definition: bingham_2D_law.h:35
KRATOS_CLASS_POINTER_DEFINITION(Bingham2DLaw)
ProcessInfo ProcessInfoType
Definition: bingham_2D_law.h:40
std::size_t SizeType
Definition: bingham_2D_law.h:42
ConstitutiveLaw BaseType
Definition: bingham_2D_law.h:41
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 the pfem fluid constitutive laws.
Definition: fluid_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