35 #ifndef NekMeshUtils_SURFACEMESHING_FACEMESH
36 #define NekMeshUtils_SURFACEMESHING_FACEMESH
44 namespace NekMeshUtils
61 const std::map<int, CurveMeshSharedPtr> &cmeshes,
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
class for surface meshes on individual surfaces (paramter plane meshes)
void ValidateLoops()
validate the curve meshes considering the loops
std::map< int, CurveMeshSharedPtr > m_curvemeshes
Map of the curve meshes which bound the surfaces.
void MakeBL()
adds a quad layer around any interior loops
EdgeSet m_localEdges
local set of edges
std::vector< NodeSharedPtr > m_stienerpoints
list of stiener points in the triangulation
int m_id
id of the surface mesh
void Stretching()
Calculate the paramter plane streching factor.
void DiagonalSwap()
performs diagonal swapping of edges
NodeSet m_localNodes
local set of nodes
NekDouble m_str
pplane stretching
void Mesh()
mesh exectuation command
void OptimiseLocalMesh()
function which calls the optimisation routines
std::vector< ElementSharedPtr > m_localElements
local list of elements
bool Validate()
Validate the surface mesh base on the octree and real dimensions of the edges.
void AddNewPoint(Array< OneD, NekDouble > uv)
adds a new stiener point to the triangulation for meshing
void Smoothing()
performs node smoothing on face
int m_compId
identity to put into element tags
MeshSharedPtr m_mesh
mesh pointer
bool ValidateCurves()
validate the curve meshes
void BuildLocalMesh()
build a local version of mesh elements
CADSurfSharedPtr m_cadsurf
CAD surface.
std::vector< EdgeLoopSharedPtr > m_edgeloops
data structure containing the edges, their order and oreientation for the surface
FaceMesh(const int id, MeshSharedPtr m, const std::map< int, CurveMeshSharedPtr > &cmeshes, const int comp)
Default constructor.
std::vector< std::vector< NodeSharedPtr > > orderedLoops
list of boundary nodes in their order loops
NodeSet m_inBoundary
set of nodes which are in the boundary (easier to identify conflicts with)
void OrientateCurves()
Get the boundries of the surface and extracts the nodes from the curve meshes in the correct order.
std::vector< std::vector< NodeSharedPtr > > m_connec
triangle connectiviities
std::shared_ptr< Mesh > MeshSharedPtr
Shared pointer to a mesh.
std::unordered_set< NodeSharedPtr, NodeHash > NodeSet
std::unordered_set< EdgeSharedPtr, EdgeHash > EdgeSet
std::shared_ptr< CADSurf > CADSurfSharedPtr
std::shared_ptr< FaceMesh > FaceMeshSharedPtr