PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
Gedim::RefinementUtilities Class Referencefinal

RefinementUtilities. More...

#include <RefinementUtilities.hpp>

Classes

struct  Cell2Ds_GeometricData
 
struct  CheckSplitType_Result
 
struct  MeshQuality
 
struct  PolygonDirection
 
struct  RefinePolygon_CheckResult
 
struct  RefinePolygon_Result
 
struct  RefinePolygon_UpdateNeighbour_Result
 
struct  RefinePolyhedron_Result
 
struct  RefinePolyhedron_UpdateNeighbour_Result
 
struct  SplitCell1D_Result
 
struct  SplitPolygon_Result
 
struct  TetrahedronMaxEdgeDirection
 
struct  TriangleMaxEdgeDirection
 

Public Member Functions

 RefinementUtilities (const Gedim::GeometryUtilities &geometryUtilities, const Gedim::MeshUtilities &meshUtilities)
 
 ~RefinementUtilities ()
 
Gedim::RefinementUtilities::SplitCell1D_Result SplitCell1D (const unsigned int &cell1DIndex, const Eigen::Vector3d &newVertexCoordinate, Gedim::IMeshDAO &mesh) const
 
unsigned int UpdateCell2D_NewVertex (const unsigned int cell2DIndex, const bool cell2DEdgeDirection, const unsigned int cell2DEdgePosition, const std::vector< unsigned int > &newCell1DsIndex, const unsigned int newCell0DIndex, Gedim::IMeshDAO &mesh) const
 update cell2DIndex with a new splitted edge cell1DIndex by newCell0DIndex
 
SplitCell1D_Result SplitCell1D_MiddlePoint (const unsigned int &cell1DIndex, Gedim::IMeshDAO &mesh) const
 
bool AreVerticesAligned (const Eigen::MatrixXd &cell2DVertices, const unsigned int fromVertex, const unsigned int toVertex) const
 
Gedim::RefinementUtilities::CheckSplitType_Result SplitPolygon_CheckSplitType (const Gedim::GeometryUtilities::PolygonTypes &cell2DPolygonType, const Gedim::GeometryUtilities::PolygonTypes &cell2DUnalignedPolygonType, const Eigen::MatrixXd &cell2DVertices, const Gedim::RefinementUtilities::RefinePolygon_CheckResult &cell2DCheckToRefine) const
 
bool SplitPolygon_CheckIsNotToExtend (const Gedim::RefinementUtilities::RefinePolygon_CheckResult::Cell1DToSplit &cell1DSplitOne, const Gedim::RefinementUtilities::RefinePolygon_CheckResult::Cell1DToSplit &cell1DSplitTwo) const
 
bool SplitPolygon_CheckIsToSplit_Relaxed (const Gedim::RefinementUtilities::RefinePolygon_CheckResult::Cell1DToSplit &cell1DSplitOne, const Gedim::RefinementUtilities::RefinePolygon_CheckResult::Cell1DToSplit &cell1DSplitTwo) const
 
bool SplitPolygon_IsAreaPositive (const Eigen::VectorXi &newCell2D_Indices, const Eigen::Matrix3d &cell2DRotation, const Eigen::Vector3d &cell2DTranslation, Gedim::IMeshDAO &mesh) const
 
Gedim::RefinementUtilities::SplitPolygon_Result SplitPolygon_NoNewVertices (const unsigned int cell2DIndex, const unsigned int cell2DNumVertices, const unsigned int fromVertex, const unsigned int toVertex, const Eigen::Matrix3d &cell2DRotation, const Eigen::Vector3d &cell2DTranslation, Gedim::IMeshDAO &mesh) const
 
Gedim::RefinementUtilities::SplitPolygon_Result SplitPolygon_NewVertexFrom (const unsigned int cell2DIndex, const unsigned int cell2DNumVertices, const unsigned int fromEdge, const unsigned int toVertex, const Eigen::Matrix3d &cell2DRotation, const Eigen::Vector3d &cell2DTranslation, const unsigned int fromNewCell0DIndex, const std::vector< unsigned int > &fromSplitCell1DsIndex, const bool &fromEdgeDirection, Gedim::IMeshDAO &mesh) const
 
Gedim::RefinementUtilities::SplitPolygon_Result SplitPolygon_NewVertexTo (const unsigned int cell2DIndex, const unsigned int cell2DNumVertices, const unsigned int fromVertex, const unsigned int toEdge, const Eigen::Matrix3d &cell2DRotation, const Eigen::Vector3d &cell2DTranslation, const unsigned int toNewCell0DIndex, const std::vector< unsigned int > &toSplitCell1DsIndex, const bool &toEdgeDirection, Gedim::IMeshDAO &mesh) const
 
Gedim::RefinementUtilities::SplitPolygon_Result SplitPolygon_NewVertices (const unsigned int cell2DIndex, const unsigned int cell2DNumVertices, const unsigned int fromEdge, const unsigned int toEdge, const Eigen::Matrix3d &cell2DRotation, const Eigen::Vector3d &cell2DTranslation, const unsigned int fromNewCell0DIndex, const unsigned int toNewCell0DIndex, const std::vector< unsigned int > &fromSplitCell1DsIndex, const std::vector< unsigned int > &toSplitCell1DsIndex, const bool &fromEdgeDirection, const bool &toEdgeDirection, Gedim::IMeshDAO &mesh) const
 
Gedim::RefinementUtilities::TriangleMaxEdgeDirection ComputeTriangleMaxEdgeDirection (const Eigen::VectorXd &edgesLength) const
 
Gedim::RefinementUtilities::PolygonDirection ComputeTriangleMaxEdgeDirection (const Eigen::MatrixXd &triangle_vertices, const Eigen::VectorXd &triangle_edges_length) const
 
Gedim::RefinementUtilities::PolygonDirection ComputePolygonMaxDiameterDirection (const Eigen::MatrixXd unalignedVertices, const Eigen::Vector3d &centroid) const
 
Gedim::RefinementUtilities::PolygonDirection ComputePolygonMaxInertiaDirection (const Eigen::MatrixXd &unalignedVertices, const Eigen::VectorXd &unalignedEdgesLength, const Eigen::Vector3d &centroid, const Eigen::Matrix3d &inertia) const
 
Gedim::RefinementUtilities::TetrahedronMaxEdgeDirection ComputeTetrahedronMaxEdgeDirection (const Eigen::MatrixXi &polyhedronEdges, const Eigen::VectorXd &edgesLength) const
 
Gedim::RefinementUtilities::RefinePolygon_Result RefineTriangleCell_ByEdge (const unsigned int &cell2DIndex, const unsigned int &edgeIndex, const unsigned int &oppositeVertexIndex, const std::vector< bool > &cell2DEdgesDirection, const double &cell2DArea, const Eigen::Matrix3d &cell2DRotation, const Eigen::Vector3d &cell2DTranslation, const Eigen::VectorXd &cell2DEdgesLength, Gedim::IMeshDAO &mesh) const
 Refine Triangle Cell2D By Edge.
 
Gedim::RefinementUtilities::RefinePolyhedron_Result RefinePolyhedronCell_ByPlane (const unsigned int &cell3DIndex, const Eigen::MatrixXd &cell3DVertices, const Eigen::MatrixXi &cell3DEdges, const Eigen::VectorXd &cell3DEdgesLength, const std::vector< Eigen::MatrixXi > &cell3DFaces, const std::vector< Eigen::MatrixXd > &cell3DFaces3DVertices, const std::vector< Eigen::MatrixXd > &cell3DFacesEdges3DTangent, const std::vector< Eigen::Vector3d > &cell3DFacesTranslation, const std::vector< Eigen::Matrix3d > &cell3DFacesRotationMatrix, const double &cell3DVolume, const Eigen::Vector3d &planeNormal, const Eigen::Vector3d &planeOrigin, const Eigen::Matrix3d &planeRotationMatrix, const Eigen::Vector3d &planeTranslation, Gedim::IMeshDAO &mesh) const
 Refine Polyhedral Cell3D By Plane.
 
Gedim::RefinementUtilities::RefinePolyhedron_UpdateNeighbour_Result RefinePolyhedronCell_UpdateFaceNeighbours (const unsigned int &cell3DIndex, const unsigned int &cell2DIndex, const unsigned int &newCell1DIndex, const std::vector< unsigned int > &splitCell1DsOriginalIndex, const std::vector< unsigned int > &splitCell1DsNewCell0DIndex, const std::vector< std::vector< unsigned int > > &splitCell1DsUpdatedIndices, const std::vector< unsigned int > &splitCell2DsIndex, const std::vector< std::vector< std::vector< bool > > > &cell3DsFacesEdgesDirection, std::map< unsigned int, unsigned int > &updatedCell2Ds, Gedim::IMeshDAO &mesh) const
 
Gedim::RefinementUtilities::RefinePolyhedron_UpdateNeighbour_Result RefinePolyhedronCell_UpdateEdgeNeighbours (const unsigned int &cell3DIndex, const unsigned int &cell1DIndex, const std::vector< unsigned int > &newCell1DsIndex, const unsigned int &newCell0DIndex, const std::vector< std::vector< std::vector< bool > > > &cell3DsFacesEdgesDirection, std::map< unsigned int, unsigned int > &updatedCell2Ds, Gedim::IMeshDAO &mesh) const
 
Gedim::RefinementUtilities::RefinePolygon_UpdateNeighbour_Result RefineTriangleCell_UpdateNeighbours (const unsigned int &cell2DIndex, const unsigned int &cell1DIndex, const unsigned int &newCell0DIndex, const std::vector< unsigned int > &splitCell1DsIndex, const bool &cell2DEdgeDirection, const std::vector< Eigen::Matrix3d > &cell2DsRotation, const std::vector< Eigen::Vector3d > &cell2DsTranslation, Gedim::IMeshDAO &mesh) const
 Update Cell1D neighbours of refined triangle by edge with refine by edge.
 
Gedim::RefinementUtilities::RefinePolygon_CheckResult RefinePolygonCell_CheckRefinement (const unsigned int &cell2DIndex, const Eigen::MatrixXd &cell2DVertices, const Eigen::Vector3d &lineTangent, const Eigen::Vector3d &lineOrigin, const std::vector< double > &cell2DsQuality, const std::vector< unsigned int > &cell1DsAligned, const double &cell1DsQualityWeight, const double &cell1DsAlignedWeight, const double &cell2DArea, const std::vector< Eigen::VectorXd > &cell2DsEdgesLength, const std::vector< bool > &cell2DEdgesDirection, Gedim::IMeshDAO &mesh) const
 Refine Polygon Cell2D By Direction.
 
Gedim::RefinementUtilities::RefinePolygon_Result RefinePolygonCell_ByDirection (const unsigned int &cell2DIndex, const Gedim::GeometryUtilities::PolygonTypes &cell2DPolygonType, const Gedim::GeometryUtilities::PolygonTypes &cell2DUnalignedPolygonType, const Eigen::MatrixXd &cell2DVertices, const Gedim::RefinementUtilities::RefinePolygon_CheckResult &cell2DCheckToRefine, const Eigen::Matrix3d &cell2DRotation, const Eigen::Vector3d &cell2DTranslation, const std::vector< bool > &cell2DEdgesDirection, const bool &extendToNeighbours, Gedim::IMeshDAO &mesh) const
 Refine Polygon Cell2D By Direction.
 
Gedim::RefinementUtilities::RefinePolygon_UpdateNeighbour_Result RefinePolygonCell_UpdateNeighbours (const unsigned int &cell2DIndex, const unsigned int &cell1DIndex, const unsigned int &newCell0DIndex, const std::vector< unsigned int > &splitCell1DsIndex, const std::vector< std::vector< bool > > &cell2DsEdgesDirection, Gedim::IMeshDAO &mesh) const
 
Gedim::RefinementUtilities::Cell2Ds_GeometricData RefinePolygonCell_InitializeGeometricData (const Gedim::IMeshDAO &mesh) const
 Compute the geometric data for all the mesh.
 
Gedim::MeshUtilities::MeshGeometricData2D ConvertRefinementGeometricData_to_MeshGeometricData (const Gedim::RefinementUtilities::Cell2Ds_GeometricData &ref_mesh_geometric_data, const IMeshDAO &mesh) const
 
void RefinePolygonCell_UpdateGeometricData (const Gedim::IMeshDAO &mesh, const std::vector< unsigned int > &cell2DsIndex, Gedim::RefinementUtilities::Cell2Ds_GeometricData &geometricData) const
 Update the geometric data for only cell2Ds.
 
Gedim::RefinementUtilities::RefinePolygon_CheckResult::Cell1DToSplit RefinePolygonCell_IsCell1DToSplit (const unsigned int &cell1DIndex, const unsigned int &cell2DIndex, const Gedim::GeometryUtilities::LinePolygonPositionResult::EdgeIntersection &edgeIntersection, const std::vector< Eigen::VectorXd > &cell2DsEdgesLength, const double &cell1DsQualityWeight, const double &cell1DsAlignedWeight, const std::vector< double > &cell2DsQuality, const std::vector< unsigned int > &cell1DsAligned, const Gedim::IMeshDAO &mesh) const
 
std::vector< unsigned intrefine_mesh_2D_triangles (const Gedim::GeometryUtilities &geometry_utilities, const std::vector< unsigned int > &cell2DsToRefineIndex, Gedim::RefinementUtilities::Cell2Ds_GeometricData &meshGeometricData, Gedim::IMeshDAO &mesh) const
 
void RefineMesh2D (const std::vector< unsigned int > &cell2DsToRefineIndex, const double &cell1DsQualityWeight, const double &cell1DsAlignedWeight, Gedim::RefinementUtilities::Cell2Ds_GeometricData &meshGeometricData, Gedim::IMeshDAO &mesh) const
 

Detailed Description

RefinementUtilities.

Constructor & Destructor Documentation

◆ RefinementUtilities()

Gedim::RefinementUtilities::RefinementUtilities ( const Gedim::GeometryUtilities geometryUtilities,
const Gedim::MeshUtilities meshUtilities 
)

◆ ~RefinementUtilities()

Gedim::RefinementUtilities::~RefinementUtilities ( )

Member Function Documentation

◆ AreVerticesAligned()

bool Gedim::RefinementUtilities::AreVerticesAligned ( const Eigen::MatrixXd &  cell2DVertices,
const unsigned int  fromVertex,
const unsigned int  toVertex 
) const

◆ ComputePolygonMaxDiameterDirection()

RefinementUtilities::PolygonDirection Gedim::RefinementUtilities::ComputePolygonMaxDiameterDirection ( const Eigen::MatrixXd  unalignedVertices,
const Eigen::Vector3d &  centroid 
) const

◆ ComputePolygonMaxInertiaDirection()

RefinementUtilities::PolygonDirection Gedim::RefinementUtilities::ComputePolygonMaxInertiaDirection ( const Eigen::MatrixXd &  unalignedVertices,
const Eigen::VectorXd &  unalignedEdgesLength,
const Eigen::Vector3d &  centroid,
const Eigen::Matrix3d &  inertia 
) const

◆ ComputeTetrahedronMaxEdgeDirection()

RefinementUtilities::TetrahedronMaxEdgeDirection Gedim::RefinementUtilities::ComputeTetrahedronMaxEdgeDirection ( const Eigen::MatrixXi &  polyhedronEdges,
const Eigen::VectorXd &  edgesLength 
) const

◆ ComputeTriangleMaxEdgeDirection() [1/2]

RefinementUtilities::PolygonDirection Gedim::RefinementUtilities::ComputeTriangleMaxEdgeDirection ( const Eigen::MatrixXd &  triangle_vertices,
const Eigen::VectorXd &  triangle_edges_length 
) const

◆ ComputeTriangleMaxEdgeDirection() [2/2]

RefinementUtilities::TriangleMaxEdgeDirection Gedim::RefinementUtilities::ComputeTriangleMaxEdgeDirection ( const Eigen::VectorXd &  edgesLength) const

◆ ConvertRefinementGeometricData_to_MeshGeometricData()

Gedim::MeshUtilities::MeshGeometricData2D Gedim::RefinementUtilities::ConvertRefinementGeometricData_to_MeshGeometricData ( const Gedim::RefinementUtilities::Cell2Ds_GeometricData ref_mesh_geometric_data,
const IMeshDAO mesh 
) const

◆ refine_mesh_2D_triangles()

std::vector< unsigned int > Gedim::RefinementUtilities::refine_mesh_2D_triangles ( const Gedim::GeometryUtilities geometry_utilities,
const std::vector< unsigned int > &  cell2DsToRefineIndex,
Gedim::RefinementUtilities::Cell2Ds_GeometricData meshGeometricData,
Gedim::IMeshDAO mesh 
) const

◆ RefineMesh2D()

void Gedim::RefinementUtilities::RefineMesh2D ( const std::vector< unsigned int > &  cell2DsToRefineIndex,
const double cell1DsQualityWeight,
const double cell1DsAlignedWeight,
Gedim::RefinementUtilities::Cell2Ds_GeometricData meshGeometricData,
Gedim::IMeshDAO mesh 
) const

◆ RefinePolygonCell_ByDirection()

RefinementUtilities::RefinePolygon_Result Gedim::RefinementUtilities::RefinePolygonCell_ByDirection ( const unsigned int cell2DIndex,
const Gedim::GeometryUtilities::PolygonTypes cell2DPolygonType,
const Gedim::GeometryUtilities::PolygonTypes cell2DUnalignedPolygonType,
const Eigen::MatrixXd &  cell2DVertices,
const Gedim::RefinementUtilities::RefinePolygon_CheckResult cell2DCheckToRefine,
const Eigen::Matrix3d &  cell2DRotation,
const Eigen::Vector3d &  cell2DTranslation,
const std::vector< bool > &  cell2DEdgesDirection,
const bool extendToNeighbours,
Gedim::IMeshDAO mesh 
) const

Refine Polygon Cell2D By Direction.

◆ RefinePolygonCell_CheckRefinement()

RefinementUtilities::RefinePolygon_CheckResult Gedim::RefinementUtilities::RefinePolygonCell_CheckRefinement ( const unsigned int cell2DIndex,
const Eigen::MatrixXd &  cell2DVertices,
const Eigen::Vector3d &  lineTangent,
const Eigen::Vector3d &  lineOrigin,
const std::vector< double > &  cell2DsQuality,
const std::vector< unsigned int > &  cell1DsAligned,
const double cell1DsQualityWeight,
const double cell1DsAlignedWeight,
const double cell2DArea,
const std::vector< Eigen::VectorXd > &  cell2DsEdgesLength,
const std::vector< bool > &  cell2DEdgesDirection,
Gedim::IMeshDAO mesh 
) const

Refine Polygon Cell2D By Direction.

◆ RefinePolygonCell_InitializeGeometricData()

RefinementUtilities::Cell2Ds_GeometricData Gedim::RefinementUtilities::RefinePolygonCell_InitializeGeometricData ( const Gedim::IMeshDAO mesh) const

Compute the geometric data for all the mesh.

◆ RefinePolygonCell_IsCell1DToSplit()

RefinementUtilities::RefinePolygon_CheckResult::Cell1DToSplit Gedim::RefinementUtilities::RefinePolygonCell_IsCell1DToSplit ( const unsigned int cell1DIndex,
const unsigned int cell2DIndex,
const Gedim::GeometryUtilities::LinePolygonPositionResult::EdgeIntersection edgeIntersection,
const std::vector< Eigen::VectorXd > &  cell2DsEdgesLength,
const double cell1DsQualityWeight,
const double cell1DsAlignedWeight,
const std::vector< double > &  cell2DsQuality,
const std::vector< unsigned int > &  cell1DsAligned,
const Gedim::IMeshDAO mesh 
) const

◆ RefinePolygonCell_UpdateGeometricData()

void Gedim::RefinementUtilities::RefinePolygonCell_UpdateGeometricData ( const Gedim::IMeshDAO mesh,
const std::vector< unsigned int > &  cell2DsIndex,
Gedim::RefinementUtilities::Cell2Ds_GeometricData geometricData 
) const

Update the geometric data for only cell2Ds.

◆ RefinePolygonCell_UpdateNeighbours()

RefinementUtilities::RefinePolygon_UpdateNeighbour_Result Gedim::RefinementUtilities::RefinePolygonCell_UpdateNeighbours ( const unsigned int cell2DIndex,
const unsigned int cell1DIndex,
const unsigned int newCell0DIndex,
const std::vector< unsigned int > &  splitCell1DsIndex,
const std::vector< std::vector< bool > > &  cell2DsEdgesDirection,
Gedim::IMeshDAO mesh 
) const

◆ RefinePolyhedronCell_ByPlane()

RefinementUtilities::RefinePolyhedron_Result Gedim::RefinementUtilities::RefinePolyhedronCell_ByPlane ( const unsigned int cell3DIndex,
const Eigen::MatrixXd &  cell3DVertices,
const Eigen::MatrixXi &  cell3DEdges,
const Eigen::VectorXd &  cell3DEdgesLength,
const std::vector< Eigen::MatrixXi > &  cell3DFaces,
const std::vector< Eigen::MatrixXd > &  cell3DFaces3DVertices,
const std::vector< Eigen::MatrixXd > &  cell3DFacesEdges3DTangent,
const std::vector< Eigen::Vector3d > &  cell3DFacesTranslation,
const std::vector< Eigen::Matrix3d > &  cell3DFacesRotationMatrix,
const double cell3DVolume,
const Eigen::Vector3d &  planeNormal,
const Eigen::Vector3d &  planeOrigin,
const Eigen::Matrix3d &  planeRotationMatrix,
const Eigen::Vector3d &  planeTranslation,
Gedim::IMeshDAO mesh 
) const

Refine Polyhedral Cell3D By Plane.

◆ RefinePolyhedronCell_UpdateEdgeNeighbours()

RefinementUtilities::RefinePolyhedron_UpdateNeighbour_Result Gedim::RefinementUtilities::RefinePolyhedronCell_UpdateEdgeNeighbours ( const unsigned int cell3DIndex,
const unsigned int cell1DIndex,
const std::vector< unsigned int > &  newCell1DsIndex,
const unsigned int newCell0DIndex,
const std::vector< std::vector< std::vector< bool > > > &  cell3DsFacesEdgesDirection,
std::map< unsigned int, unsigned int > &  updatedCell2Ds,
Gedim::IMeshDAO mesh 
) const

◆ RefinePolyhedronCell_UpdateFaceNeighbours()

RefinementUtilities::RefinePolyhedron_UpdateNeighbour_Result Gedim::RefinementUtilities::RefinePolyhedronCell_UpdateFaceNeighbours ( const unsigned int cell3DIndex,
const unsigned int cell2DIndex,
const unsigned int newCell1DIndex,
const std::vector< unsigned int > &  splitCell1DsOriginalIndex,
const std::vector< unsigned int > &  splitCell1DsNewCell0DIndex,
const std::vector< std::vector< unsigned int > > &  splitCell1DsUpdatedIndices,
const std::vector< unsigned int > &  splitCell2DsIndex,
const std::vector< std::vector< std::vector< bool > > > &  cell3DsFacesEdgesDirection,
std::map< unsigned int, unsigned int > &  updatedCell2Ds,
Gedim::IMeshDAO mesh 
) const

◆ RefineTriangleCell_ByEdge()

RefinementUtilities::RefinePolygon_Result Gedim::RefinementUtilities::RefineTriangleCell_ByEdge ( const unsigned int cell2DIndex,
const unsigned int edgeIndex,
const unsigned int oppositeVertexIndex,
const std::vector< bool > &  cell2DEdgesDirection,
const double cell2DArea,
const Eigen::Matrix3d &  cell2DRotation,
const Eigen::Vector3d &  cell2DTranslation,
const Eigen::VectorXd &  cell2DEdgesLength,
Gedim::IMeshDAO mesh 
) const

Refine Triangle Cell2D By Edge.

Parameters
cell2DIndexthe index of Cell2D from 0 to Cell2DTotalNumber()
cell2DVerticesthe cell2D 2D vertices
edgeIndexthe edge local index to split
oppositeVertexIndexthe vertex opposite to edge local index
meshthe mesh to be updated

◆ RefineTriangleCell_UpdateNeighbours()

RefinementUtilities::RefinePolygon_UpdateNeighbour_Result Gedim::RefinementUtilities::RefineTriangleCell_UpdateNeighbours ( const unsigned int cell2DIndex,
const unsigned int cell1DIndex,
const unsigned int newCell0DIndex,
const std::vector< unsigned int > &  splitCell1DsIndex,
const bool cell2DEdgeDirection,
const std::vector< Eigen::Matrix3d > &  cell2DsRotation,
const std::vector< Eigen::Vector3d > &  cell2DsTranslation,
Gedim::IMeshDAO mesh 
) const

Update Cell1D neighbours of refined triangle by edge with refine by edge.

Parameters
cell2DIndexthe index of Cell2D refined, from 0 to Cell2DTotalNumber()
cell1DIndexthe index of Cell1D splitted by the refinement, from 0 to Cell1DTotalNumber()
newCell0DIndexthe index of Cell0D created by the cell1D splitting process, from 0 to Cell0DTotalNumber()
splitCell1DsIndexthe indices of the new Cell1Ds created by the splitting process, from 0 to Cell1DTotalNumber()
cell2DEdgeDirectionthe direction of the Cell1D splitted in the Cell2D
meshthe mesh to be updated

◆ SplitCell1D()

RefinementUtilities::SplitCell1D_Result Gedim::RefinementUtilities::SplitCell1D ( const unsigned int cell1DIndex,
const Eigen::Vector3d &  newVertexCoordinate,
Gedim::IMeshDAO mesh 
) const

◆ SplitCell1D_MiddlePoint()

SplitCell1D_Result Gedim::RefinementUtilities::SplitCell1D_MiddlePoint ( const unsigned int cell1DIndex,
Gedim::IMeshDAO mesh 
) const
inline

◆ SplitPolygon_CheckIsNotToExtend()

bool Gedim::RefinementUtilities::SplitPolygon_CheckIsNotToExtend ( const Gedim::RefinementUtilities::RefinePolygon_CheckResult::Cell1DToSplit cell1DSplitOne,
const Gedim::RefinementUtilities::RefinePolygon_CheckResult::Cell1DToSplit cell1DSplitTwo 
) const

◆ SplitPolygon_CheckIsToSplit_Relaxed()

bool Gedim::RefinementUtilities::SplitPolygon_CheckIsToSplit_Relaxed ( const Gedim::RefinementUtilities::RefinePolygon_CheckResult::Cell1DToSplit cell1DSplitOne,
const Gedim::RefinementUtilities::RefinePolygon_CheckResult::Cell1DToSplit cell1DSplitTwo 
) const

◆ SplitPolygon_CheckSplitType()

RefinementUtilities::CheckSplitType_Result Gedim::RefinementUtilities::SplitPolygon_CheckSplitType ( const Gedim::GeometryUtilities::PolygonTypes cell2DPolygonType,
const Gedim::GeometryUtilities::PolygonTypes cell2DUnalignedPolygonType,
const Eigen::MatrixXd &  cell2DVertices,
const Gedim::RefinementUtilities::RefinePolygon_CheckResult cell2DCheckToRefine 
) const

◆ SplitPolygon_IsAreaPositive()

bool Gedim::RefinementUtilities::SplitPolygon_IsAreaPositive ( const Eigen::VectorXi &  newCell2D_Indices,
const Eigen::Matrix3d &  cell2DRotation,
const Eigen::Vector3d &  cell2DTranslation,
Gedim::IMeshDAO mesh 
) const

◆ SplitPolygon_NewVertexFrom()

RefinementUtilities::SplitPolygon_Result Gedim::RefinementUtilities::SplitPolygon_NewVertexFrom ( const unsigned int  cell2DIndex,
const unsigned int  cell2DNumVertices,
const unsigned int  fromEdge,
const unsigned int  toVertex,
const Eigen::Matrix3d &  cell2DRotation,
const Eigen::Vector3d &  cell2DTranslation,
const unsigned int  fromNewCell0DIndex,
const std::vector< unsigned int > &  fromSplitCell1DsIndex,
const bool fromEdgeDirection,
Gedim::IMeshDAO mesh 
) const

◆ SplitPolygon_NewVertexTo()

RefinementUtilities::SplitPolygon_Result Gedim::RefinementUtilities::SplitPolygon_NewVertexTo ( const unsigned int  cell2DIndex,
const unsigned int  cell2DNumVertices,
const unsigned int  fromVertex,
const unsigned int  toEdge,
const Eigen::Matrix3d &  cell2DRotation,
const Eigen::Vector3d &  cell2DTranslation,
const unsigned int  toNewCell0DIndex,
const std::vector< unsigned int > &  toSplitCell1DsIndex,
const bool toEdgeDirection,
Gedim::IMeshDAO mesh 
) const

◆ SplitPolygon_NewVertices()

RefinementUtilities::SplitPolygon_Result Gedim::RefinementUtilities::SplitPolygon_NewVertices ( const unsigned int  cell2DIndex,
const unsigned int  cell2DNumVertices,
const unsigned int  fromEdge,
const unsigned int  toEdge,
const Eigen::Matrix3d &  cell2DRotation,
const Eigen::Vector3d &  cell2DTranslation,
const unsigned int  fromNewCell0DIndex,
const unsigned int  toNewCell0DIndex,
const std::vector< unsigned int > &  fromSplitCell1DsIndex,
const std::vector< unsigned int > &  toSplitCell1DsIndex,
const bool fromEdgeDirection,
const bool toEdgeDirection,
Gedim::IMeshDAO mesh 
) const

◆ SplitPolygon_NoNewVertices()

RefinementUtilities::SplitPolygon_Result Gedim::RefinementUtilities::SplitPolygon_NoNewVertices ( const unsigned int  cell2DIndex,
const unsigned int  cell2DNumVertices,
const unsigned int  fromVertex,
const unsigned int  toVertex,
const Eigen::Matrix3d &  cell2DRotation,
const Eigen::Vector3d &  cell2DTranslation,
Gedim::IMeshDAO mesh 
) const

◆ UpdateCell2D_NewVertex()

unsigned int Gedim::RefinementUtilities::UpdateCell2D_NewVertex ( const unsigned int  cell2DIndex,
const bool  cell2DEdgeDirection,
const unsigned int  cell2DEdgePosition,
const std::vector< unsigned int > &  newCell1DsIndex,
const unsigned int  newCell0DIndex,
Gedim::IMeshDAO mesh 
) const

update cell2DIndex with a new splitted edge cell1DIndex by newCell0DIndex


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