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.
|
#include <local_refine_tetrahedra_mesh.hpp>
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< Matrix > | Matrix_Order_Tensor |
typedef std::vector< Vector > | Vector_Order_Tensor |
typedef std::vector< Vector_Order_Tensor > | Node_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 | |
ModelPart & | mModelPart |
int | mCurrentRefinementLevel |
The model part to be refined. More... | |
std::unordered_map< std::size_t, unsigned int > | mMapNodeIdToPos |
The current refinement level. More... | |
std::vector< std::size_t > | mMapPosToNodeId |
|
inline |
Default constructors.
|
default |
Destructor.
|
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
geom | The tetrahedra element geometry |
edge_ids | The ids of the edges |
Reimplemented from Kratos::LocalRefineGeometryMesh.
|
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
geom | The prism element geometry |
edge_ids | The ids of the edges |
|
inline |
Insert the news nodes in the center of elements and interopolate the variables.
geom | The curret geometry |
|
inlineoverridevirtual |
Remove the old conditions and creates new ones
Coord | The coordinates of the nodes of the geometry |
Add the new Conditions to the ModelPart
Reimplemented from Kratos::LocalRefineGeometryMesh.
|
inlineoverridevirtual |
It erases the old elements and it creates the new ones
Coord | The coordinates of the element |
New_Elements | The new elements created |
interpolate_internal_variables | A boolean that defines if it is necessary to interpolate the internal variables |
Reimplemented from Kratos::LocalRefineGeometryMesh.
|
inline |
Updates recursively the conditions in the submodelpars
rNewConditions | list of conds |
|
inline |
Updates recursively the elements in the submodelpars
NewElements | list of elems |