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.
euler_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 
14 #if !defined (KRATOS_EULER_LAW_2D_H_INCLUDED)
15 #define KRATOS_EULER_LAW_2D_H_INCLUDED
16 
17 // System includes
18 
19 // External includes
20 
21 // Project includes
22 #include "fluid_constitutive_law.h"
23 
24 namespace Kratos
25 {
30  class KRATOS_API(FLUID_DYNAMICS_APPLICATION) Euler2DLaw : public FluidConstitutiveLaw
31  {
32  public:
38  typedef std::size_t SizeType;
39 
44 
52  Euler2DLaw();
53 
58  ConstitutiveLaw::Pointer Clone() const override;
59 
63  Euler2DLaw (const Euler2DLaw& rOther);
64 
68  ~Euler2DLaw() override;
69 
81  SizeType WorkingSpaceDimension() override;
82 
86  SizeType GetStrainSize() const override;
87 
88  void CalculateMaterialResponseCauchy (Parameters& rValues) override;
89 
90  int Check(
91  const Properties& rMaterialProperties,
92  const GeometryType& rElementGeometry,
93  const ProcessInfo& rCurrentProcessInfo) const override;
94 
102  std::string Info() const override {
103  std::stringstream buffer;
104  buffer << "Euler2DLaw";
105  return buffer.str();
106  };
107 
111  void PrintInfo(std::ostream& rOStream) const override {
112  rOStream << Info();
113  };
114 
118  void PrintData(std::ostream& rOStream) const override {
119  rOStream << Info();
120  };
121 
122  protected:
123 
126 
128  double GetEffectiveViscosity(ConstitutiveLaw::Parameters& rParameters) const override;
129 
131 
132 
133 
134  private:
135 
138 
142 
146 
150 
154 
158 
159  friend class Serializer;
160 
161  void save(Serializer& rSerializer) const override;
162 
163  void load(Serializer& rSerializer) override;
164 
165  }; // Class Euler2DLaw
166 } // namespace Kratos.
167 #endif // KRATOS_EULER_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
Definition: euler_2d_law.h:31
KRATOS_CLASS_POINTER_DEFINITION(Euler2DLaw)
ConstitutiveLaw BaseType
Definition: euler_2d_law.h:37
std::size_t SizeType
Definition: euler_2d_law.h:38
ProcessInfo ProcessInfoType
Definition: euler_2d_law.h:36
void PrintData(std::ostream &rOStream) const override
Definition: euler_2d_law.h:118
std::string Info() const override
Definition: euler_2d_law.h:102
void PrintInfo(std::ostream &rOStream) const override
Definition: euler_2d_law.h:111
This class contains the common infrastructure for fluid constitutive laws.
Definition: fluid_constitutive_law.h:35
Geometry base class.
Definition: geometry.h:71
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