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.
tetrahedra_ball.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 #if !defined(KRATOS_TETRAHEDRA_BALL_H_INCLUDED )
14 #define KRATOS_TETRAHEDRA_BALL_H_INCLUDED
15 
16 
17 
18 // System includes
19 #include <string>
20 #include <iostream>
21 
22 
23 // External includes
24 
25 
26 // Project includes
27 #include "includes/node.h"
29 
30 
31 
32 namespace Kratos
33 {
36 
39 
41 
44  {
45  public:
48 
51 
52  using NodeType = Node;
53 
54  using TetrahedraContainerType = std::vector<Geometry<NodeType>* >;
55 
59 
60  TetrahedraBall() = delete;
61 
63  TetrahedraBall(TetrahedraBall const& rOther) = delete;
64 
67  TetrahedraBall(NodeType& rThisNode);
68 
70  virtual ~TetrahedraBall() {}
71 
72 
76 
78  TetrahedraBall& operator=(TetrahedraBall const& rOther) = delete;
79 
83 
84  std::size_t Size() const;
85 
86  double CalculateMinQuality(const Geometry<NodeType>::QualityCriteria QualityCriteria) const;
87 
91 
92 
96 
97 
101 
103  virtual std::string Info() const;
104 
106  virtual void PrintInfo(std::ostream& rOStream) const;
107 
109  virtual void PrintData(std::ostream& rOStream) const;
110 
111 
115 
116 
118 
119 
120  private:
123 
124 
128 
129  TetrahedraContainerType mTetrahedra;
130 
131 
135 
136 
140 
141 
145 
146 
150 
151 
155 
156 
157 
158 
160 
161  }; // Class TetrahedraBall
162 
164 
167 
168 
172 
173 
175  inline std::istream& operator >> (std::istream& rIStream,
176  TetrahedraBall& rThis);
177 
179  inline std::ostream& operator << (std::ostream& rOStream,
180  const TetrahedraBall& rThis)
181  {
182  rThis.PrintInfo(rOStream);
183  rOStream << std::endl;
184  rThis.PrintData(rOStream);
185 
186  return rOStream;
187  }
189 
191 
192 } // namespace Kratos.
193 
194 #endif // KRATOS_TETRAHEDRA_BALL_H_INCLUDED defined
QualityCriteria
Definition: geometry.h:86
This class defines the node.
Definition: node.h:65
Stores a ball of tetrahedra sourronding a node of mesh.
Definition: tetrahedra_ball.h:44
virtual ~TetrahedraBall()
Destructor.
Definition: tetrahedra_ball.h:70
virtual std::string Info() const
Turn back information as a string.
Definition: tetrahedra_ball.cpp:51
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: tetrahedra_ball.cpp:59
TetrahedraBall(TetrahedraBall const &rOther)=delete
Copy constructor is deleted.
std::vector< Geometry< NodeType > * > TetrahedraContainerType
Definition: tetrahedra_ball.h:54
std::size_t Size() const
Definition: tetrahedra_ball.cpp:35
virtual void PrintInfo(std::ostream &rOStream) const
Print information about this object.
Definition: tetrahedra_ball.cpp:55
KRATOS_CLASS_POINTER_DEFINITION(TetrahedraBall)
Pointer definition of TetrahedraBall.
TetrahedraBall & operator=(TetrahedraBall const &rOther)=delete
Assignment operator is deleted.
double CalculateMinQuality(const Geometry< NodeType >::QualityCriteria QualityCriteria) const
Definition: tetrahedra_ball.cpp:39
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