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_2d_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: Ruben Zorrilla
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 {
30 class KRATOS_API(FLUID_DYNAMICS_APPLICATION) Newtonian2DLaw : public FluidConstitutiveLaw
31 {
32 public:
38  typedef std::size_t SizeType;
44 
53 
58  ConstitutiveLaw::Pointer Clone() const override;
59 
63  Newtonian2DLaw (const Newtonian2DLaw& rOther);
64 
68  ~Newtonian2DLaw() 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 
128  std::string Info() const override;
129 
130 protected:
131 
143 
145  double GetEffectiveViscosity(ConstitutiveLaw::Parameters& rParameters) const override;
146 
148 
149 private:
150 
156 
160 
161 
166 
171 
175  friend class Serializer;
176 
177  void save(Serializer& rSerializer) const override;
178 
179  void load(Serializer& rSerializer) override;
180 
181 
182 }; // Class Newtonian2DLaw
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_2d_law.h:31
KRATOS_CLASS_POINTER_DEFINITION(Newtonian2DLaw)
ProcessInfo ProcessInfoType
Definition: newtonian_2d_law.h:36
ConstitutiveLaw BaseType
Definition: newtonian_2d_law.h:37
std::size_t SizeType
Definition: newtonian_2d_law.h:38
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