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.
measure_mesh_quality_process.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: Pooyan Dadvand
11 //
12 //
13 
14 #if !defined(KRATOS_MEASURE_MESH_QUALITY_PROCESS_H_INCLUDED )
15 #define KRATOS_MEASURE_MESH_QUALITY_PROCESS_H_INCLUDED
16 
17 
18 
19 // System includes
20 #include <string>
21 #include <iostream>
22 
23 
24 // External includes
25 
26 
27 // Project includes
28 #include "includes/define.h"
29 #include "processes/process.h"
30 #include "includes/model_part.h"
31 
32 
33 
34 namespace Kratos
35 {
40 
42 
45  {
46  public:
49 
52 
56 
58  MeasureMeshQualityProcess(ModelPart& rModelPart, std::size_t Dimension);
59 
61  ~MeasureMeshQualityProcess() override;
62 
63 
67 
68 
72 
73  void Execute() override;
74 
78 
79 
83 
84 
88 
90  std::string Info() const override;
91 
93  void PrintInfo(std::ostream& rOStream) const override;
94 
96  void PrintData(std::ostream& rOStream) const override;
97 
98 
102 
103 
105 
106  protected:
109 
110 
114 
115 
119 
120 
124 
125 
129 
130 
134 
135 
139 
140 
142 
143  private:
146 
147  ModelPart& mrModelPart;
148  std::size_t mDimension;
149 
150  std::size_t mNumberOfInvertedElements;
151  std::size_t mNumberOfSlivers;
152  double mMinArea;
153  double mMaxArea;
154  double mMinH;
155  double mMinAngle;
156 
157 
161 
162 
166 
167 
171 
172  void ResetMeasures();
173 
174 
178 
179 
183 
184 
188 
190  MeasureMeshQualityProcess& operator=(MeasureMeshQualityProcess const& rOther);
191 
194 
195 
197 
198  }; // Class MeasureMeshQualityProcess
199 
201 
204 
205 
209 
210 
212  inline std::istream& operator >> (std::istream& rIStream,
214 
216  inline std::ostream& operator << (std::ostream& rOStream,
217  const MeasureMeshQualityProcess& rThis)
218  {
219  rThis.PrintInfo(rOStream);
220  rOStream << std::endl;
221  rThis.PrintData(rOStream);
222 
223  return rOStream;
224  }
226 
228 
229 } // namespace Kratos.
230 
231 #endif // KRATOS_MEASURE_MESH_QUALITY_PROCESS_H_INCLUDED defined
Short class definition.
Definition: measure_mesh_quality_process.h:45
std::string Info() const override
Turn back information as a string.
Definition: measure_mesh_quality_process.cpp:70
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: measure_mesh_quality_process.cpp:82
void Execute() override
Execute method is used to execute the Process algorithms.
Definition: measure_mesh_quality_process.cpp:46
KRATOS_CLASS_POINTER_DEFINITION(MeasureMeshQualityProcess)
Pointer definition of MeasureMeshQualityProcess.
~MeasureMeshQualityProcess() override
Destructor.
Definition: measure_mesh_quality_process.cpp:41
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: measure_mesh_quality_process.cpp:76
MeasureMeshQualityProcess(ModelPart &rModelPart, std::size_t Dimension)
Constructor takes the modelpart to apply smoothing to its mesh 0.
Definition: measure_mesh_quality_process.cpp:28
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
The base class for all processes in Kratos.
Definition: process.h:49
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432