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.
List of all members
Kratos::LocalRefineTetrahedraMesh Class Reference

#include <local_refine_tetrahedra_mesh.hpp>

Inheritance diagram for Kratos::LocalRefineTetrahedraMesh:
Collaboration diagram for Kratos::LocalRefineTetrahedraMesh:

Public Member Functions

Life Cycle
 LocalRefineTetrahedraMesh (ModelPart &rModelPart)
 Default constructors. More...
 
 ~LocalRefineTetrahedraMesh ()=default
 Destructor. More...
 
Operations
unsigned int CreateCenterNode (Geometry< Node > &geom, ModelPart &model_part)
 
void EraseOldElementAndCreateNewElement (ModelPart &this_model_part, const compressed_matrix< int > &Coord, PointerVector< Element > &NewElements, bool interpolate_internal_variables) override
 
void UpdateSubModelPartElements (ModelPart &this_model_part, PointerVector< Element > &NewElements)
 
void EraseOldConditionsAndCreateNew (ModelPart &this_model_part, const compressed_matrix< int > &Coord) override
 
void UpdateSubModelPartConditions (ModelPart &rModelPart, PointerVector< Condition > &rNewConditions)
 
void CalculateEdges (Element::GeometryType &geom, const compressed_matrix< int > &Coord, int *edge_ids, std::vector< int > &aux) override
 
void CalculateEdgesFaces (Element::GeometryType &geom, const compressed_matrix< int > &Coord, int *edge_ids, array_1d< int, 6 > &aux)
 
- Public Member Functions inherited from Kratos::LocalRefineGeometryMesh
 LocalRefineGeometryMesh (ModelPart &model_part)
 Default constructors. More...
 
virtual ~LocalRefineGeometryMesh ()=default
 Destructor. More...
 
virtual void LocalRefineMesh (bool refine_on_reference, bool interpolate_internal_variables)
 
virtual void CSRRowMatrix (ModelPart &this_model_part, compressed_matrix< int > &Coord)
 
virtual void SearchEdgeToBeRefined (ModelPart &this_model_part, compressed_matrix< int > &Coord)
 
virtual void CreateListOfNewNodes (ModelPart &this_model_part, compressed_matrix< int > &Coord, std::vector< int > &List_New_Nodes, std::vector< array_1d< int, 2 > > &Position_Node)
 
virtual void CalculateCoordinateAndInsertNewNodes (ModelPart &this_model_part, const std::vector< array_1d< int, 2 > > &Position_Node, const std::vector< int > &List_New_Nodes)
 
void CreatePartition (unsigned int number_of_threads, const int number_of_rows, vector< unsigned int > &partitions)
 
template<typename TGeometricalObjectPointerType >
void InterpolateInteralVariables (const int &number_elem, const TGeometricalObjectPointerType father_elem, TGeometricalObjectPointerType child_elem, const ProcessInfo &rCurrentProcessInfo)
 
virtual void UpdateSubModelPartNodes (ModelPart &rModelPart)
 
virtual void ResetFatherNodes (ModelPart &rModelPart)
 

Additional Inherited Members

- Public Types inherited from Kratos::LocalRefineGeometryMesh
typedef ModelPart::NodesContainerType NodesArrayType
 
typedef ModelPart::ElementsContainerType ElementsArrayType
 
typedef ModelPart::ConditionsContainerType ConditionsArrayType
 
typedef std::vector< MatrixMatrix_Order_Tensor
 
typedef std::vector< VectorVector_Order_Tensor
 
typedef std::vector< Vector_Order_TensorNode_Vector_Order_Tensor
 
typedef Node PointType
 
typedef Node ::Pointer PointPointerType
 
typedef std::vector< PointType::Pointer > PointVector
 
typedef PointVector::iterator PointIterator
 
- Protected Member Functions inherited from Kratos::LocalRefineGeometryMesh
template<typename TIteratorType >
void SearchEdgeToBeRefinedGeneric (TIteratorType GeometricalObjectsBegin, TIteratorType GeometricalObjectsEnd, compressed_matrix< int > &rCoord)
 
- Protected Attributes inherited from Kratos::LocalRefineGeometryMesh
ModelPartmModelPart
 
int mCurrentRefinementLevel
 The model part to be refined. More...
 
std::unordered_map< std::size_t, unsigned intmMapNodeIdToPos
 The current refinement level. More...
 
std::vector< std::size_t > mMapPosToNodeId
 

Constructor & Destructor Documentation

◆ LocalRefineTetrahedraMesh()

Kratos::LocalRefineTetrahedraMesh::LocalRefineTetrahedraMesh ( ModelPart rModelPart)
inline

Default constructors.

◆ ~LocalRefineTetrahedraMesh()

Kratos::LocalRefineTetrahedraMesh::~LocalRefineTetrahedraMesh ( )
default

Destructor.

Member Function Documentation

◆ CalculateEdges()

void Kratos::LocalRefineTetrahedraMesh::CalculateEdges ( Element::GeometryType geom,
const compressed_matrix< int > &  Coord,
int edge_ids,
std::vector< int > &  aux 
)
inlineoverridevirtual

It calculates the new edges of the new tetrahedras, first it calculates the new edges correspondign to the lower face (as a triangle), later it added to the upper face

Parameters
geomThe tetrahedra element geometry
edge_idsThe ids of the edges
Returns
aux: The vector that includes the index of the new edges

Reimplemented from Kratos::LocalRefineGeometryMesh.

◆ CalculateEdgesFaces()

void Kratos::LocalRefineTetrahedraMesh::CalculateEdgesFaces ( Element::GeometryType geom,
const compressed_matrix< int > &  Coord,
int edge_ids,
array_1d< int, 6 > &  aux 
)
inline

It calculates the new edges of the new triangles, first it calculates the new edges correspondign to the lower face (as a triangle), later it added to the upper face

Parameters
geomThe prism element geometry
edge_idsThe ids of the edges
Returns
aux: The vector that includes the index of the new edges

◆ CreateCenterNode()

unsigned int Kratos::LocalRefineTetrahedraMesh::CreateCenterNode ( Geometry< Node > &  geom,
ModelPart model_part 
)
inline

Insert the news nodes in the center of elements and interopolate the variables.

Parameters
geomThe curret geometry
Returns
model_part: The model part of the model (it is the input too)

◆ EraseOldConditionsAndCreateNew()

void Kratos::LocalRefineTetrahedraMesh::EraseOldConditionsAndCreateNew ( ModelPart this_model_part,
const compressed_matrix< int > &  Coord 
)
inlineoverridevirtual

Remove the old conditions and creates new ones

Parameters
CoordThe coordinates of the nodes of the geometry
Returns
this_model_part: The model part of the model (it is the input too)

Add the new Conditions to the ModelPart

Reimplemented from Kratos::LocalRefineGeometryMesh.

◆ EraseOldElementAndCreateNewElement()

void Kratos::LocalRefineTetrahedraMesh::EraseOldElementAndCreateNewElement ( ModelPart this_model_part,
const compressed_matrix< int > &  Coord,
PointerVector< Element > &  NewElements,
bool  interpolate_internal_variables 
)
inlineoverridevirtual

It erases the old elements and it creates the new ones

Parameters
CoordThe coordinates of the element
New_ElementsThe new elements created
interpolate_internal_variablesA boolean that defines if it is necessary to interpolate the internal variables
Returns
this_model_part: The model part of the model (it is the input too)

Reimplemented from Kratos::LocalRefineGeometryMesh.

◆ UpdateSubModelPartConditions()

void Kratos::LocalRefineTetrahedraMesh::UpdateSubModelPartConditions ( ModelPart rModelPart,
PointerVector< Condition > &  rNewConditions 
)
inline

Updates recursively the conditions in the submodelpars

Parameters
rNewConditionslist of conds
Returns
rModelPart: The model part of the model (it is the input too)

◆ UpdateSubModelPartElements()

void Kratos::LocalRefineTetrahedraMesh::UpdateSubModelPartElements ( ModelPart this_model_part,
PointerVector< Element > &  NewElements 
)
inline

Updates recursively the elements in the submodelpars

Parameters
NewElementslist of elems
Returns
this_model_part: The model part of the model (it is the input too)

The documentation for this class was generated from the following file: