Nektar++
|
class for octree More...
#include <Octree.h>
Public Member Functions | |
Octree (MeshSharedPtr m) | |
void | Process () |
builds the octree based on curvature sampling and user defined spacing More... | |
NekDouble | Query (Array< OneD, NekDouble > loc) |
once constructed queryies the octree based on x,y,z location to get a mesh spacing More... | |
NekDouble | GetMinDelta () |
returns the miminum spacing in the octree (for meshing purposes) More... | |
void | SetParameters (NekDouble &min, NekDouble &max, NekDouble &ep) |
sets the parameters used for curvature sampling More... | |
void | WriteOctree (std::string nm) |
populates the mesh m with a invalid hexahedral mesh based on the octree, used for visualisation More... | |
void | Refinement (std::string nm) |
informs the octree there is a user defined spacing file More... | |
Private Member Functions | |
void | SmoothAllOctants () |
Smooths specification over all octants to a gradation criteria. More... | |
void | CompileSourcePointList () |
gets an optimum number of curvature sampling points and calculates the curavture at these points More... | |
void | SubDivide () |
Function which initiates and controls the subdivision process. More... | |
void | SmoothSurfaceOctants () |
Smooths specification over the surface encompasing octants to a gradation criteria. More... | |
void | PropagateDomain () |
takes the mesh specification from surface octants and progates that through the domain so all octants have a specification using gradiation crieteria More... | |
int | CountElemt () |
estimates the number of elements to be created in the mesh More... | |
NekDouble | ddx (OctantSharedPtr i, OctantSharedPtr j) |
Calculates the difference in delta divided by the difference in location between two octants i and j. More... | |
bool | VerifyNeigbours () |
Looks over all leaf octants and checks that their neigbour assigments are valid. More... | |
Private Attributes | |
NekDouble | m_minDelta |
minimum delta in the octree More... | |
NekDouble | m_maxDelta |
maximum delta in the octree More... | |
NekDouble | m_eps |
curavture sensivity paramter More... | |
Array< OneD, NekDouble > | m_centroid |
x,y,z location of the center of the octree More... | |
NekDouble | m_dim |
physical size of the octree More... | |
std::vector< SPBaseSharedPtr > | m_SPList |
list of source points More... | |
std::vector< OctantSharedPtr > | m_octants |
list of leaf octants More... | |
OctantSharedPtr | m_masteroct |
master octant for searching More... | |
int | m_numoct |
number of octants made, used for id index More... | |
MeshSharedPtr | m_mesh |
Mesh object. More... | |
std::string | m_refinement |
std::vector< linesource > | m_lsources |
class for octree
This class contains the routines to generate and query a automatically generated set of mesh spacing parameters based on the CAD
|
inline |
|
private |
gets an optimum number of curvature sampling points and calculates the curavture at these points
TODO add extra source points from the line souce to the octree
Definition at line 837 of file Octree.cpp.
References Nektar::LibUtilities::PrintProgressbar().
|
private |
estimates the number of elements to be created in the mesh
Definition at line 725 of file Octree.cpp.
References Nektar::NekMeshUtils::eBack, Nektar::NekMeshUtils::eDown, Nektar::NekMeshUtils::eForward, Nektar::NekMeshUtils::eInside, Nektar::NekMeshUtils::eLeft, Nektar::NekMeshUtils::eOnBoundary, Nektar::NekMeshUtils::eRight, and Nektar::NekMeshUtils::eUp.
|
private |
Calculates the difference in delta divided by the difference in location between two octants i and j.
Definition at line 1073 of file Octree.cpp.
NekDouble Nektar::NekMeshUtils::Octree::GetMinDelta | ( | ) |
returns the miminum spacing in the octree (for meshing purposes)
Definition at line 191 of file Octree.cpp.
void Nektar::NekMeshUtils::Octree::Process | ( | ) |
builds the octree based on curvature sampling and user defined spacing
Definition at line 52 of file Octree.cpp.
|
private |
takes the mesh specification from surface octants and progates that through the domain so all octants have a specification using gradiation crieteria
Definition at line 516 of file Octree.cpp.
References ASSERTL0, Nektar::NekMeshUtils::eInside, Nektar::NekMeshUtils::eOnBoundary, Nektar::NekMeshUtils::eOutside, Nektar::SpatialDomains::eUnknown, and Nektar::iterator.
once constructed queryies the octree based on x,y,z location to get a mesh spacing
loc | array of x,y,z |
Definition at line 102 of file Octree.cpp.
References ASSERTL0.
|
inline |
informs the octree there is a user defined spacing file
nm | name of the user defined spacing file |
Definition at line 163 of file Octree.h.
References m_refinement.
|
inline |
sets the parameters used for curvature sampling
min | minimum spacing to be found in the mesh |
max | maximum spacing to be found in the mesh |
eps | curvature sensivity relating radius of curvature to spacing |
Definition at line 144 of file Octree.h.
References m_eps, m_maxDelta, and m_minDelta.
|
private |
Smooths specification over all octants to a gradation criteria.
Definition at line 676 of file Octree.cpp.
References Nektar::iterator.
|
private |
Smooths specification over the surface encompasing octants to a gradation criteria.
Definition at line 459 of file Octree.cpp.
References Nektar::iterator.
|
private |
Function which initiates and controls the subdivision process.
Definition at line 269 of file Octree.cpp.
References Nektar::iterator.
|
private |
Looks over all leaf octants and checks that their neigbour assigments are valid.
Definition at line 381 of file Octree.cpp.
References Nektar::NekMeshUtils::eBack, Nektar::NekMeshUtils::eDown, Nektar::NekMeshUtils::eForward, Nektar::NekMeshUtils::eLeft, Nektar::NekMeshUtils::eRight, Nektar::NekMeshUtils::eUp, and Nektar::iterator.
void Nektar::NekMeshUtils::Octree::WriteOctree | ( | std::string | nm | ) |
populates the mesh m with a invalid hexahedral mesh based on the octree, used for visualisation
nm | name of the mesh file to be made |
Definition at line 202 of file Octree.cpp.
References Nektar::LibUtilities::NekFactory< tKey, tBase, >::CreateInstance(), Nektar::NekMeshUtils::eBack, Nektar::NekMeshUtils::eDown, Nektar::NekMeshUtils::eForward, Nektar::LibUtilities::eHexahedron, Nektar::NekMeshUtils::eLeft, Nektar::FieldUtils::eOutputModule, Nektar::NekMeshUtils::eRight, Nektar::NekMeshUtils::eUp, Nektar::NekMeshUtils::GetElementFactory(), Nektar::FieldUtils::GetModuleFactory(), CG_Iterations::Mesh, and class_topology::Node.
|
private |
|
private |
curavture sensivity paramter
Definition at line 222 of file Octree.h.
Referenced by SetParameters().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Definition at line 238 of file Octree.h.
Referenced by Refinement().
|
private |