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.
meshing_application.h
Go to the documentation of this file.
1 // KRATOS __ __ _____ ____ _ _ ___ _ _ ____
2 // | \/ | ____/ ___|| | | |_ _| \ | |/ ___|
3 // | |\/| | _| \___ \| |_| || || \| | | _
4 // | | | | |___ ___) | _ || || |\ | |_| |
5 // |_| |_|_____|____/|_| |_|___|_| \_|\____| APPLICATION
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Nelson Lafontaine
11 // Jordi Cotela Dalmau
12 // Riccardo Rossi
13 // Vicente Mataix Ferrandiz
14 //
15 
16 #if !defined(KRATOS_KRATOS_MESHING_APPLICATION_H_INCLUDED )
17 #define KRATOS_KRATOS_MESHING_APPLICATION_H_INCLUDED
18 
19 // System includes
20 #include <string>
21 #include <iostream>
22 
23 // External includes
24 
25 // Project includes
26 #include "includes/define.h"
28 #include "includes/element.h"
29 
30 namespace Kratos
31 {
32 
35 
39 
43 
47  enum class MMGLibrary
48  {
49  MMG2D = 0,
50  MMG3D = 1,
51  MMGS = 2
52  };
53 
57  enum class PMMGLibrary
58  {
59  PMMG3D = 1
60  };
61 
62 
66  enum class FrameworkEulerLagrange {EULERIAN = 0, LAGRANGIAN = 1, ALE = 2};
67 
71  enum class DiscretizationOption {STANDARD = 0, LAGRANGIAN = 1, ISOSURFACE = 2};
72 
76 
80 
82 
84 class KRATOS_API(MESHING_APPLICATION) KratosMeshingApplication : public KratosApplication
85 {
86 public:
89 
90 
93 
97 
100 
102  ~KratosMeshingApplication() override = default;
103 
104 
108 
109 
113 
114  void Register() override;
115 
116 
117 
121 
122 
126 
127 
131 
133  std::string Info() const override
134  {
135  return "KratosMeshingApplication";
136  }
137 
139  void PrintInfo(std::ostream& rOStream) const override
140  {
141  rOStream << Info();
142  PrintData(rOStream);
143  }
144 
146  void PrintData(std::ostream& rOStream) const override
147  {
148  KRATOS_WATCH("in KratosMeshingApplication");
150  rOStream << "Variables:" << std::endl;
152  rOStream << std::endl;
153  rOStream << "Elements:" << std::endl;
154  KratosComponents<Element>().PrintData(rOStream);
155  rOStream << std::endl;
156  rOStream << "Conditions:" << std::endl;
157  KratosComponents<Condition>().PrintData(rOStream);
158  }
159 
163 
164 
166 
167 protected:
170 
171 
175 
176 
180 
181 
185 
186 
190 
191 
195 
196 
200 
201 
203 
204 private:
207 
208 
212 
213  const Element mTestElement2D;
214  const Element mTestElement3D;
215 
219 
220 
224 
225 
229 
230 
234 
235 
239 
242 
245 
246 
248 
249 }; // Class KratosMeshingApplication
250 
252 
253 
256 
257 
261 
263 
264 
265 } // namespace Kratos.
266 
267 #endif // KRATOS_KRATOS_MESHING_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
Base class for all Elements.
Definition: element.h:60
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: meshing_application.h:85
std::string Info() const override
Turn back information as a string.
Definition: meshing_application.h:133
KRATOS_CLASS_POINTER_DEFINITION(KratosMeshingApplication)
Pointer definition of KratosMeshingApplication.
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: meshing_application.h:146
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: meshing_application.h:139
~KratosMeshingApplication() override=default
Destructor.
#define KRATOS_WATCH(variable)
Definition: define.h:806
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
MMGLibrary
This enum defines the type of MMG libray used.
Definition: meshing_application.h:48
FrameworkEulerLagrange
This enums allows to differentiate the working framework.
Definition: meshing_application.h:66
DiscretizationOption
This enums allows to differentiate the discretization options.
Definition: meshing_application.h:71
PMMGLibrary
This enum defines the type of PMMG libray used.
Definition: meshing_application.h:58
KRATOS_API_EXTERN template class KratosComponents< Condition >
Definition: condition.h:1191
KRATOS_API_EXTERN template class KratosComponents< Element >
Definition: element.h:1240