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.
herschel_bulkley_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: Alessandro Franci, Ignasi de Pouplana
10 // Collaborators: Timur Tomas
11 //
12 //-------------------------------------------------------------
13 //
14 
15 #if !defined(KRATOS_HERSCHEL_BULKLEY_LAW_2D_H_INCLUDED)
16 #define KRATOS_HERSCHEL_BULKLEY_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 {
35  class KRATOS_API(PFEM_FLUID_DYNAMICS_APPLICATION) HerschelBulkley2DLaw : public PfemFluidConstitutiveLaw
36  {
37  public:
43  typedef std::size_t SizeType;
44 
49 
58 
63  ConstitutiveLaw::Pointer Clone() const override;
64 
69 
73  ~HerschelBulkley2DLaw() override;
74 
86  SizeType WorkingSpaceDimension() override;
87 
91  SizeType GetStrainSize() const override;
92 
93  void CalculateMaterialResponseCauchy(Parameters &rValues) override;
94 
104  int Check(const Properties &rMaterialProperties, const GeometryType &rElementGeometry,
105  const ProcessInfo &rCurrentProcessInfo) const override;
106 
114  std::string Info() const override;
115 
116  protected:
128 
129  double GetEffectiveMaterialParameter(ConstitutiveLaw::Parameters &rParameters, const Variable<double> &rVariable) const override;
130 
132 
133  private:
136 
140 
144 
149 
154 
158  friend class Serializer;
159 
160  void save(Serializer &rSerializer) const override;
161 
162  void load(Serializer &rSerializer) override;
164 
165  }; // Class HerschelBulkley2DLaw
166 
167 } // namespace Kratos.
168 
169 #endif // KRATOS_HERSCHEL_BULKLEY_LAW_2D_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: herschel_bulkley_2D_law.h:36
std::size_t SizeType
Definition: herschel_bulkley_2D_law.h:43
ConstitutiveLaw BaseType
Definition: herschel_bulkley_2D_law.h:42
KRATOS_CLASS_POINTER_DEFINITION(HerschelBulkley2DLaw)
ProcessInfo ProcessInfoType
Definition: herschel_bulkley_2D_law.h:41
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