11 #ifndef GEOMETRY_UTILITIES_H
12 #define GEOMETRY_UTILITIES_H
80 : mrModelPart( modelPart )
99 void CalculateNodalAreasFromConditions();
101 void ComputeUnitSurfaceNormals();
103 void ProjectNodalVariableOnUnitSurfaceNormals(
const Variable<array_3d> &rNodalVariable );
109 void ExtractBoundaryNodes( std::string
const& rBoundarySubModelPartName );
111 void ExtractEdgeNodes( std::string
const& rEdgeSubModelPartName );
113 std::tuple<std::vector<double>, std::vector<double>> ComputeDistancesToBoundingModelPart(
ModelPart& rBoundingModelPart);
115 template <
class TContainerType>
118 double length = block_for_each<SumReduction<double>>(rContainer, [&](
typename TContainerType::value_type& rEntity){
119 return rEntity.GetGeometry().Length();
125 double ComputeVolume();
134 void CalculateGaussianCurvature();
138 double GaussianCurvatureForNodeFromTensor(
const NodeType &rNode);
142 double GaussianCurvatureForNodeTaubin(
const NodeType &rNode);
146 double GaussianCurvatureForNodeMeyer(
const NodeType &rNode);
150 std::string GetCurvatureTechnique(
const NodeType &rNode);
154 bool CheckIfNodesHasQuadraticNeigbourElement(
const NodeType &rNode);
185 virtual std::string
Info()
const
187 return "GeometryUtilities";
193 rOStream <<
"GeometryUtilities";
267 void CalculateAreaNormalsFromConditions();
270 void CalculateUnitNormals();
Geometry base class.
Definition: geometry.h:71
Short class definition.
Definition: geometry_utilities.h:59
std::size_t SizeType
Definition: geometry_utilities.h:68
ModelPart::ElementType::GeometryType GeometryType
Definition: geometry_utilities.h:67
ModelPart::ConditionsContainerType ConditionsArrayType
Definition: geometry_utilities.h:66
KRATOS_CLASS_POINTER_DEFINITION(GeometryUtilities)
Pointer definition of GeometryUtilities.
GeometryUtilities(ModelPart &modelPart)
Default constructor.
Definition: geometry_utilities.h:79
virtual std::string Info() const
Turn back information as a string.
Definition: geometry_utilities.h:185
virtual void PrintInfo(std::ostream &rOStream) const
Print information about this object.
Definition: geometry_utilities.h:191
array_1d< double, 3 > array_3d
Definition: geometry_utilities.h:65
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: geometry_utilities.h:197
virtual ~GeometryUtilities()
Destructor.
Definition: geometry_utilities.h:85
double CalculateLength(TContainerType &rContainer)
Definition: geometry_utilities.h:116
This class is a wrapper for a pointer to a data that is located in a different rank.
Definition: global_pointer.h:44
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
This class defines the node.
Definition: node.h:65
A sorted associative container similar to an STL set, but uses a vector to store pointers to its data...
Definition: pointer_vector_set.h:72
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21