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.
drag_utilities.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 author: Ruben Zorrilla
11 //
12 
13 #if !defined(KRATOS_DRAG_UTILITIES_H_INCLUDED )
14 #define KRATOS_DRAG_UTILITIES_H_INCLUDED
15 
16 // System includes
17 #include <string>
18 #include <iostream>
19 
20 // External includes
21 
22 // Project includes
23 #include "includes/define.h"
24 #include "includes/model_part.h"
25 
26 namespace Kratos
27 {
30 
33 
37 
41 
45 
49 
51 
62  class KRATOS_API(FLUID_DYNAMICS_APPLICATION) DragUtilities
63  {
64  public:
65 
68 
71  typedef std::vector<IntegrationPointType> IntegrationPointsArrayType;
72 
75 
79 
82 
85 
89 
90 
94 
101  array_1d<double, 3> CalculateBodyFittedDrag(ModelPart &rModelPart);
102 
108  array_1d<double, 3> CalculateEmbeddedDrag(ModelPart &rModelPart);
109 
115  array_1d<double, 3> CalculateEmbeddedDragCenter(const ModelPart &rModelPart);
116 
120 
121 
125 
126 
130 
132  std::string Info() const;
133 
135  void PrintInfo(std::ostream& rOStream) const;
136 
138  void PrintData(std::ostream& rOStream) const;
139 
143 
144 
146 
147 private:
150 
151 
155 
156 
160 
161 
165 
166 
170 
171 
175 
176 
180 
182  DragUtilities& operator=(DragUtilities const& rOther);
183 
185  DragUtilities(DragUtilities const& rOther);
186 
188 
189 }; // Class DragUtilities
190 
192 
195 
196 
200 
201 
203 inline std::ostream& operator << (
204  std::ostream& rOStream,
205  const DragUtilities& rThis);
206 
208 
210 
211 } // namespace Kratos.
212 
213 #endif // KRATOS_DRAG_UTILITIES_H_INCLUDED defined
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Auxiliary utility to compute the drag force.
Definition: drag_utilities.h:63
IntegrationPoint< 3 > IntegrationPointType
Definition: drag_utilities.h:70
std::vector< IntegrationPointType > IntegrationPointsArrayType
Definition: drag_utilities.h:71
void PrintData(std::ostream &rOStream) const
Print object's data.
Geometry< Node > GeometryType
Definition: drag_utilities.h:69
std::string Info() const
Turn back information as a string.
KRATOS_CLASS_POINTER_DEFINITION(DragUtilities)
Pointer definition of DragUtilities.
~DragUtilities()
Destructor.
Definition: drag_utilities.h:84
DragUtilities()
Constructor.
Definition: drag_utilities.h:81
void PrintInfo(std::ostream &rOStream) const
Print information about this object.
Geometry base class.
Definition: geometry.h:71
Short class definition.
Definition: integration_point.h:52
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432