36 #ifndef NekMeshUtils_SURFACEMESHING_FACEMESH
37 #define NekMeshUtils_SURFACEMESHING_FACEMESH
46 namespace NekMeshUtils
65 const std::map<int, CurveMeshSharedPtr> &cmeshes)
81 const std::map<int, CurveMeshSharedPtr> &cmeshes,
177 std::vector<std::pair<NodeSharedPtr, NodeSharedPtr> >
blpairs;
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.
FaceMesh(const int id, MeshSharedPtr m, CADSurfSharedPtr cad, OctreeSharedPtr oct, const std::map< int, CurveMeshSharedPtr > &cmeshes, const NekDouble b)
constructor for building with boundary layer
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
void Stretching()
Calculate the paramter plane streching factor.
std::vector< ElementSharedPtr > m_localElements
local list of elements
OctreeSharedPtr m_octree
Octree object.
NekDouble m_bl
boundary layer thickness
boost::unordered_set< NodeSharedPtr, NodeHash > NodeSet
std::vector< std::vector< NodeSharedPtr > > m_connec
triangle connectiviities
std::vector< std::pair< NodeSharedPtr, NodeSharedPtr > > blpairs
list of node links between node on loop and its corresponding interior node in quads ...
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
FaceMesh(const int id, MeshSharedPtr m, CADSurfSharedPtr cad, OctreeSharedPtr oct, const std::map< int, CurveMeshSharedPtr > &cmeshes)
Default constructor.
boost::shared_ptr< Octree > OctreeSharedPtr
std::vector< EdgeLoop > m_edgeloops
data structure containing the edges, their order and oreientation for the surface ...
void MakeBL()
adds a quad layer around any interior loops
boost::shared_ptr< CADSurf > CADSurfSharedPtr
bool m_makebl
should build boundary layer
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