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.
mesh_coarsening_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_MESH_COARSENING_PROCESS_H_INCLUDED )
15 #define KRATOS_MESH_COARSENING_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/model_part.h"
30 
31 
32 namespace Kratos
33 {
36 
39 
41 
43  class KRATOS_API(KRATOS_CORE) MeshCoarseningProcess : public MeshNodeCollapsingProcess
44  {
45  public:
48 
51 
55 
56  KRATOS_DEFINE_LOCAL_FLAG(COARSE_MESH_NODE);
57 
61 
64 
67 
69  MeshCoarseningProcess(ModelPart& rModelPart);
70 
72  ~MeshCoarseningProcess() override;
73 
74 
78 
81 
82 
86 
87  void Execute() override;
88 
89 
93 
94 
98 
99 
103 
105  std::string Info() const override;
106 
108  void PrintInfo(std::ostream& rOStream) const override;
109 
111  void PrintData(std::ostream& rOStream) const override;
112 
113 
117 
118 
120 
121  private:
124 
125 
129 
133 
134 
138 
139  void SelectCoarseMeshNodes();
140 
141 
145 
146 
150 
151 
155 
156 
158 
159  }; // Class MeshCoarseningProcess
160 
162 
165 
166 
170 
171 
173  inline std::istream& operator >> (std::istream& rIStream,
174  MeshCoarseningProcess& rThis);
175 
177  inline std::ostream& operator << (std::ostream& rOStream,
178  const MeshCoarseningProcess& rThis)
179  {
180  rThis.PrintInfo(rOStream);
181  rOStream << std::endl;
182  rThis.PrintData(rOStream);
183 
184  return rOStream;
185  }
187 
189 
190 } // namespace Kratos.
191 
192 #endif // KRATOS_MESH_COARSENING_PROCESS_H_INCLUDED defined
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Short class definition.
Definition: mesh_coarsening_process.h:44
MeshCoarseningProcess & operator=(MeshCoarseningProcess const &rOther)=delete
Is not assignable.
KRATOS_CLASS_POINTER_DEFINITION(MeshCoarseningProcess)
Pointer definition of MeshCoarseningProcess.
MeshCoarseningProcess()=delete
Is not default constructable.
KRATOS_DEFINE_LOCAL_FLAG(COARSE_MESH_NODE)
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: mesh_coarsening_process.cpp:46
MeshCoarseningProcess(MeshCoarseningProcess const &rOther)=delete
Is not copyable.
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: mesh_coarsening_process.cpp:42
Remove the selected node from the mesh and collapse the connectivity arround it.
Definition: mesh_node_collapsing_process.h:44
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::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