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::LocalRefineTriangleMesh Class Reference

#include <local_refine_triangle_mesh.hpp>

Inheritance diagram for Kratos::LocalRefineTriangleMesh:
Collaboration diagram for Kratos::LocalRefineTriangleMesh:

Public Member Functions

Life Cycle
 LocalRefineTriangleMesh (ModelPart &model_part)
 Default constructors. More...
 
 ~LocalRefineTriangleMesh () override=default
 Destructor. More...
 
Operations
void EraseOldElementAndCreateNewElement (ModelPart &this_model_part, const compressed_matrix< int > &Coord, PointerVector< Element > &New_Elements, bool interpolate_internal_variables) override
 
void EraseOldConditionsAndCreateNew (ModelPart &this_model_part, const compressed_matrix< int > &Coord) override
 
void UpdateSubModelPartElements (ModelPart &this_model_part, PointerVector< Element > &NewElements)
 
- Public Member Functions inherited from Kratos::LocalRefineTriangleMeshGeneric< Element, ModelPart::ElementsContainerType >
 LocalRefineTriangleMeshGeneric (ModelPart &model_part)
 Default constructors. More...
 
 ~LocalRefineTriangleMeshGeneric () override=default
 Destructor. More...
 
void EraseOldObjetcsAndCreateNewObjects (ModelPart &rThisModelPart, ModelPart::ElementsContainerType &rObjects, const compressed_matrix< int > &rCoord, PointerVector< Element > &rNewObjects, bool InterpolateInternalVariables)
 
void CalculateEdges (Geometry< Node > &rGeom, const compressed_matrix< int > &rCoord, int *EdgeIds, std::vector< int > &rAux) override
 
GlobalPointersVector< Element > & GetNeighbour (ElementsArrayType::iterator it_elem)
 
GlobalPointersVector< Condition > & GetNeighbour (ConditionsArrayType::iterator it_cond)
 
- 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)
 
virtual void CalculateEdges (Element::GeometryType &geom, const compressed_matrix< int > &Coord, int *edge_ids, std::vector< int > &aux)
 
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

◆ LocalRefineTriangleMesh()

Kratos::LocalRefineTriangleMesh::LocalRefineTriangleMesh ( ModelPart model_part)
inline

Default constructors.

◆ ~LocalRefineTriangleMesh()

Kratos::LocalRefineTriangleMesh::~LocalRefineTriangleMesh ( )
overridedefault

Destructor.

Member Function Documentation

◆ EraseOldConditionsAndCreateNew()

void Kratos::LocalRefineTriangleMesh::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)

Reimplemented from Kratos::LocalRefineGeometryMesh.

◆ EraseOldElementAndCreateNewElement()

void Kratos::LocalRefineTriangleMesh::EraseOldElementAndCreateNewElement ( ModelPart this_model_part,
const compressed_matrix< int > &  Coord,
PointerVector< Element > &  New_Elements,
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.

◆ UpdateSubModelPartElements()

void Kratos::LocalRefineTriangleMesh::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: