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