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.
newtonian_3d_law.h
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Riccardo Rossi
11 //
12 
13 #pragma once
14 
15 // System includes
16 
17 // External includes
18 
19 // Project includes
20 #include "fluid_constitutive_law.h"
21 
22 namespace Kratos
23 {
24 
30 class KRATOS_API(FLUID_DYNAMICS_APPLICATION) Newtonian3DLaw : public FluidConstitutiveLaw
31 {
32 public:
37  typedef std::size_t SizeType;
43 
52 
57  ConstitutiveLaw::Pointer Clone() const override;
58 
62  Newtonian3DLaw (const Newtonian3DLaw& rOther);
63 
64 
68  ~Newtonian3DLaw() override;
69 
77  SizeType WorkingSpaceDimension() override;
78 
82  SizeType GetStrainSize() const override;
83 
84 
85  void CalculateMaterialResponseCauchy (Parameters& rValues) override;
86 
87 
88  void CalculateDerivative(
89  Parameters& rParameterValues,
90  const Variable<double>& rFunctionVariable,
91  const Variable<double>& rDerivativeVariable,
92  double& rOutput) override;
93 
94 
95  void CalculateDerivative(
96  Parameters& rParameterValues,
97  const Variable<Vector>& rFunctionVariable,
98  const Variable<double>& rDerivativeVariable,
99  Vector& rOutput) override;
100 
101 
102  void CalculateDerivative(
103  Parameters& rParameterValues,
104  const Variable<Matrix>& rFunctionVariable,
105  const Variable<double>& rDerivativeVariable,
106  Matrix& rOutput) override;
107 
117  int Check(
118  const Properties& rMaterialProperties,
119  const GeometryType& rElementGeometry,
120  const ProcessInfo& rCurrentProcessInfo) const override;
121 
129  std::string Info() const override;
130 
131 protected:
132 
144 
146  double GetEffectiveViscosity(ConstitutiveLaw::Parameters& rParameters) const override;
147 
149 private:
150 
156 
157 
161 
162 
167 
172 
176  friend class Serializer;
177 
178  void save(Serializer& rSerializer) const override;
179 
180  void load(Serializer& rSerializer) override;
181 
182 }; // Class Newtonian3DLaw
183 } // namespace Kratos.
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
This class contains the common infrastructure for fluid constitutive laws.
Definition: fluid_constitutive_law.h:35
Geometry base class.
Definition: geometry.h:71
Definition: newtonian_3d_law.h:31
std::size_t SizeType
Definition: newtonian_3d_law.h:37
KRATOS_CLASS_POINTER_DEFINITION(Newtonian3DLaw)
ConstitutiveLaw BaseType
Definition: newtonian_3d_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