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.
shallow_water_application.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: Miguel Maso Sotomayor
11 //
12 
13 #ifndef KRATOS_SHALLOW_WATER_APPLICATION_H_INCLUDED
14 #define KRATOS_SHALLOW_WATER_APPLICATION_H_INCLUDED
15 
21 
22 
23 // System includes
24 
25 
26 // External includes
27 
28 
29 // Project includes
31 
32 // Shallow water includes
45 
46 
47 namespace Kratos
48 {
49 
52 
56 
60 
64 
68 
70 
72  class KRATOS_API(SHALLOW_WATER_APPLICATION) KratosShallowWaterApplication : public KratosApplication
73  {
74  public:
77 
78 
81 
85 
88 
91 
92 
96 
97 
101 
102  virtual void Register() override;
103 
107 
108 
112 
113 
117 
119  virtual std::string Info() const override
120  {
121  return "KratosShallowWaterApplication";
122  }
123 
125  virtual void PrintInfo(std::ostream& rOStream) const override
126  {
127  rOStream << Info();
128  PrintData(rOStream);
129  }
130 
132  virtual void PrintData(std::ostream& rOStream) const override
133  {
134  KRATOS_WATCH("in Shallow Water Application");
136  rOStream << "Variables:" << std::endl;
138  rOStream << std::endl;
139  rOStream << "Elements:" << std::endl;
140  KratosComponents<Element>().PrintData(rOStream);
141  rOStream << std::endl;
142  rOStream << "Conditions:" << std::endl;
143  KratosComponents<Condition>().PrintData(rOStream);
144  }
145 
146 
150 
151 
153 
154  private:
157 
158 
162 
163  // Elements
164  const WaveElement<3> mWaveElement2D3N;
165  const WaveElement<6> mWaveElement2D6N;
166  const WaveElement<4> mWaveElement2D4N;
167  const WaveElement<8> mWaveElement2D8N;
168  const WaveElement<9> mWaveElement2D9N;
169  const WaveElement<3> mPrimitiveElement2D3N;
170  const WaveElement<4> mPrimitiveElement2D4N;
171  const CrankNicolsonWaveElement<3> mCrankNicolsonWaveElement2D3N;
172  const BoussinesqElement<3> mBoussinesqElement2D3N;
173  const BoussinesqElement<4> mBoussinesqElement2D4N;
174  const ConservativeElement<3> mConservativeElementGJ2D3N;
175  const ConservativeElementRV<3> mConservativeElementRV2D3N;
176  const ConservativeElementFC<3> mConservativeElementFC2D3N;
177  // Conditions
178  const WaveCondition<2> mWaveCondition2D2N;
179  const WaveCondition<3> mWaveCondition2D3N;
180  const PrimitiveCondition<2> mPrimitiveCondition2D2N;
181  const BoussinesqCondition<2> mBoussinesqCondition2D2N;
182  const ConservativeCondition<2> mConservativeCondition2D2N;
183 
184  // Modelers
185  const MeshMovingModeler mMeshMovingModeler;
186 
190 
191 
195 
196 
200 
201 
205 
206 
210 
213 
216 
217 
219 
220  }; // Class KratosShallowWaterApplication
221 
223 
224 
227 
228 
232 
234 
235 
236 } // namespace Kratos.
237 
238 #endif // KRATOS_SHALLOW_WATER_APPLICATION_H_INCLUDED defined
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
This class defines the interface with kernel for all applications in Kratos.
Definition: kratos_application.h:91
Definition: kratos_components.h:253
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: kratos_components.h:403
KratosComponents class encapsulates a lookup table for a family of classes in a generic way.
Definition: kratos_components.h:49
Short class definition.
Definition: shallow_water_application.h:73
virtual void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: shallow_water_application.h:125
virtual std::string Info() const override
Turn back information as a string.
Definition: shallow_water_application.h:119
KRATOS_CLASS_POINTER_DEFINITION(KratosShallowWaterApplication)
Pointer definition of KratosShallowWaterApplication.
virtual void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: shallow_water_application.h:132
virtual ~KratosShallowWaterApplication()
Destructor.
Definition: shallow_water_application.h:90
Tools for lagrangian computations.
Definition: mesh_moving_modeler.h:59
#define KRATOS_WATCH(variable)
Definition: define.h:806
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KRATOS_API_EXTERN template class KratosComponents< Condition >
Definition: condition.h:1191
KRATOS_API_EXTERN template class KratosComponents< Element >
Definition: element.h:1240