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

#include <local_refine_prism_mesh.hpp>

Inheritance diagram for Kratos::LocalRefinePrismMesh:
Collaboration diagram for Kratos::LocalRefinePrismMesh:

Public Member Functions

Life Cycle
 LocalRefinePrismMesh (ModelPart &model_part)
 Default constructors. More...
 
 ~LocalRefinePrismMesh () override=default
 Destructor. More...
 
Operations
void CalculateCoordinateCenterNodeAndInsertNewNodes (ModelPart &this_model_part)
 
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 CalculateEdges (Element::GeometryType &geom, const compressed_matrix< int > &Coord, int *edge_ids, std::vector< int > &aux) override
 
- 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

◆ LocalRefinePrismMesh()

Kratos::LocalRefinePrismMesh::LocalRefinePrismMesh ( ModelPart model_part)
inline

Default constructors.

◆ ~LocalRefinePrismMesh()

Kratos::LocalRefinePrismMesh::~LocalRefinePrismMesh ( )
overridedefault

Destructor.

Member Function Documentation

◆ CalculateCoordinateCenterNodeAndInsertNewNodes()

void Kratos::LocalRefinePrismMesh::CalculateCoordinateCenterNodeAndInsertNewNodes ( ModelPart this_model_part)
inline

Computes the coordinate of the baricenter node of the element (mean of the faces's baricenter) Insert the news nodes in the center of elements and interopolate the variables.

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

◆ CalculateEdges()

void Kratos::LocalRefinePrismMesh::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 prisms, 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

Reimplemented from Kratos::LocalRefineGeometryMesh.

◆ EraseOldConditionsAndCreateNew()

void Kratos::LocalRefinePrismMesh::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::LocalRefinePrismMesh::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.


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