Nektar++
|
class for surface meshes on individual surfaces (paramter plane meshes) More...
#include <FaceMesh.h>
Public Member Functions | |
FaceMesh (const int id, MeshSharedPtr m, CADSurfSharedPtr cad, OctreeSharedPtr oct, const std::map< int, CurveMeshSharedPtr > &cmeshes) | |
Default constructor. More... | |
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 More... | |
void | Mesh () |
mesh exectuation command More... | |
Private Member Functions | |
void | Stretching () |
Calculate the paramter plane streching factor. More... | |
void | Smoothing () |
performs node smoothing on face More... | |
void | DiagonalSwap () |
performs diagonal swapping of edges More... | |
void | BuildLocalMesh () |
build a local version of mesh elements More... | |
void | OptimiseLocalMesh () |
function which calls the optimisation routines More... | |
bool | Validate () |
Validate the surface mesh base on the octree and real dimensions of the edges. More... | |
void | OrientateCurves () |
Get the boundries of the surface and extracts the nodes from the curve meshes in the correct order. More... | |
void | AddNewPoint (Array< OneD, NekDouble > uv) |
adds a new stiener point to the triangulation for meshing More... | |
void | MakeBL () |
adds a quad layer around any interior loops More... | |
Private Attributes | |
MeshSharedPtr | m_mesh |
mesh pointer More... | |
CADSurfSharedPtr | m_cadsurf |
CAD surface. More... | |
OctreeSharedPtr | m_octree |
Octree object. More... | |
std::map< int, CurveMeshSharedPtr > | m_curvemeshes |
Map of the curve meshes which bound the surfaces. More... | |
std::vector< EdgeLoop > | m_edgeloops |
data structure containing the edges, their order and oreientation for the surface More... | |
int | m_id |
id of the surface mesh More... | |
std::vector< std::vector < NodeSharedPtr > > | orderedLoops |
list of boundary nodes in their order loops More... | |
std::vector< NodeSharedPtr > | m_stienerpoints |
list of stiener points in the triangulation More... | |
NekDouble | m_str |
pplane stretching More... | |
std::vector< std::vector < NodeSharedPtr > > | m_connec |
triangle connectiviities More... | |
NodeSet | m_localNodes |
local set of nodes More... | |
EdgeSet | m_localEdges |
local set of edges More... | |
std::vector< ElementSharedPtr > | m_localElements |
local list of elements More... | |
NekDouble | m_bl |
boundary layer thickness More... | |
bool | m_makebl |
should build boundary layer More... | |
std::vector< std::pair < NodeSharedPtr, NodeSharedPtr > > | blpairs |
list of node links between node on loop and its corresponding interior node in quads More... | |
Friends | |
class | MemoryManager< FaceMesh > |
class for surface meshes on individual surfaces (paramter plane meshes)
Definition at line 53 of file FaceMesh.h.
|
inline |
Default constructor.
Definition at line 61 of file FaceMesh.h.
References m_cadsurf, m_edgeloops, and m_makebl.
|
inline |
constructor for building with boundary layer
Definition at line 77 of file FaceMesh.h.
References m_cadsurf, m_edgeloops, and m_makebl.
adds a new stiener point to the triangulation for meshing
Definition at line 976 of file FaceMesh.cpp.
|
private |
build a local version of mesh elements
Definition at line 745 of file FaceMesh.cpp.
References Nektar::LibUtilities::NekFactory< tKey, tBase, >::CreateInstance(), Nektar::LibUtilities::eQuadrilateral, Nektar::LibUtilities::eTriangle, Nektar::NekMeshUtils::GetElementFactory(), and Nektar::iterator.
|
private |
performs diagonal swapping of edges
TODO fix this bit of code which figures out the node defect, doesnt work on quads or relfex angles
Definition at line 363 of file FaceMesh.cpp.
References ASSERTL0, Nektar::LibUtilities::NekFactory< tKey, tBase, >::CreateInstance(), Nektar::LibUtilities::eQuadrilateral, Nektar::LibUtilities::eTriangle, Nektar::NekMeshUtils::GetElementFactory(), and Nektar::iterator.
|
private |
adds a quad layer around any interior loops
Definition at line 147 of file FaceMesh.cpp.
References ASSERTL0.
void Nektar::NekMeshUtils::FaceMesh::Mesh | ( | ) |
mesh exectuation command
Definition at line 49 of file FaceMesh.cpp.
References ASSERTL0, and Nektar::iterator.
|
private |
function which calls the optimisation routines
Definition at line 199 of file FaceMesh.cpp.
|
private |
Get the boundries of the surface and extracts the nodes from the curve meshes in the correct order.
Definition at line 1022 of file FaceMesh.cpp.
References ASSERTL0.
|
private |
performs node smoothing on face
Definition at line 210 of file FaceMesh.cpp.
References ASSERTL0, Nektar::LibUtilities::eQuadrilateral, and Nektar::iterator.
|
private |
Calculate the paramter plane streching factor.
Definition at line 873 of file FaceMesh.cpp.
|
private |
Validate the surface mesh base on the octree and real dimensions of the edges.
Definition at line 921 of file FaceMesh.cpp.
|
friend |
Definition at line 56 of file FaceMesh.h.
|
private |
list of node links between node on loop and its corresponding interior node in quads
Definition at line 177 of file FaceMesh.h.
|
private |
boundary layer thickness
Definition at line 172 of file FaceMesh.h.
|
private |
|
private |
triangle connectiviities
Definition at line 164 of file FaceMesh.h.
|
private |
Map of the curve meshes which bound the surfaces.
Definition at line 151 of file FaceMesh.h.
|
private |
data structure containing the edges, their order and oreientation for the surface
Definition at line 154 of file FaceMesh.h.
Referenced by FaceMesh().
|
private |
id of the surface mesh
Definition at line 156 of file FaceMesh.h.
|
private |
local set of edges
Definition at line 168 of file FaceMesh.h.
|
private |
local list of elements
Definition at line 170 of file FaceMesh.h.
|
private |
local set of nodes
Definition at line 166 of file FaceMesh.h.
|
private |
|
private |
mesh pointer
Definition at line 145 of file FaceMesh.h.
|
private |
Octree object.
Definition at line 149 of file FaceMesh.h.
|
private |
list of stiener points in the triangulation
Definition at line 160 of file FaceMesh.h.
|
private |
pplane stretching
Definition at line 162 of file FaceMesh.h.
|
private |
list of boundary nodes in their order loops
Definition at line 158 of file FaceMesh.h.