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::LocalRefineTriangleMeshGeneric< TGeometricalObjectType, TArrayType > Class Template Reference

#include <local_refine_triangle_mesh_generic.hpp>

Inheritance diagram for Kratos::LocalRefineTriangleMeshGeneric< TGeometricalObjectType, TArrayType >:
Collaboration diagram for Kratos::LocalRefineTriangleMeshGeneric< TGeometricalObjectType, TArrayType >:

Public Member Functions

Life Cycle
 LocalRefineTriangleMeshGeneric (ModelPart &model_part)
 Default constructors. More...
 
 ~LocalRefineTriangleMeshGeneric () override=default
 Destructor. More...
 
Operations
void EraseOldObjetcsAndCreateNewObjects (ModelPart &rThisModelPart, TArrayType &rObjects, const compressed_matrix< int > &rCoord, PointerVector< TGeometricalObjectType > &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 EraseOldElementAndCreateNewElement (ModelPart &this_model_part, const compressed_matrix< int > &Coord, PointerVector< Element > &New_Elements, bool interpolate_internal_variables)
 
virtual void EraseOldConditionsAndCreateNew (ModelPart &this_model_part, const compressed_matrix< int > &Coord)
 
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

◆ LocalRefineTriangleMeshGeneric()

template<class TGeometricalObjectType , typename TArrayType >
Kratos::LocalRefineTriangleMeshGeneric< TGeometricalObjectType, TArrayType >::LocalRefineTriangleMeshGeneric ( ModelPart model_part)
inline

Default constructors.

◆ ~LocalRefineTriangleMeshGeneric()

template<class TGeometricalObjectType , typename TArrayType >
Kratos::LocalRefineTriangleMeshGeneric< TGeometricalObjectType, TArrayType >::~LocalRefineTriangleMeshGeneric ( )
overridedefault

Destructor.

Member Function Documentation

◆ CalculateEdges()

template<class TGeometricalObjectType , typename TArrayType >
void Kratos::LocalRefineTriangleMeshGeneric< TGeometricalObjectType, TArrayType >::CalculateEdges ( Geometry< Node > &  rGeom,
const compressed_matrix< int > &  rCoord,
int EdgeIds,
std::vector< int > &  rAux 
)
inlineoverride

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
rGeomThe triangle element geometry
EdgeIdsThe ids of the edges
Returns
rAux: The vector that includes the index of the new edges

◆ EraseOldObjetcsAndCreateNewObjects()

template<class TGeometricalObjectType , typename TArrayType >
void Kratos::LocalRefineTriangleMeshGeneric< TGeometricalObjectType, TArrayType >::EraseOldObjetcsAndCreateNewObjects ( ModelPart rThisModelPart,
TArrayType &  rObjects,
const compressed_matrix< int > &  rCoord,
PointerVector< TGeometricalObjectType > &  rNewObjects,
bool  InterpolateInternalVariables 
)
inline

It erases the old elements and it creates the new ones

Parameters
rModelPartThe model part of the model (it is the input too)
rCoordThe coordinates of the element
New_ElementsThe new elements created
InterpolateInternalVariablesA boolean that defines if it is necessary to interpolate the internal variables

◆ GetNeighbour() [1/2]

template<class TGeometricalObjectType , typename TArrayType >
GlobalPointersVector<Condition>& Kratos::LocalRefineTriangleMeshGeneric< TGeometricalObjectType, TArrayType >::GetNeighbour ( ConditionsArrayType::iterator  it_cond)
inline

◆ GetNeighbour() [2/2]

template<class TGeometricalObjectType , typename TArrayType >
GlobalPointersVector<Element>& Kratos::LocalRefineTriangleMeshGeneric< TGeometricalObjectType, TArrayType >::GetNeighbour ( ElementsArrayType::iterator  it_elem)
inline

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