Nektar++
|
this class contains the infomration and methods for individal octants in the Octree More...
#include <Octant.h>
Public Member Functions | |
Octant (int i, OctantSharedPtr p, Array< OneD, OctantFace > dir) | |
Defualt constructor. More... | |
Octant (int i, NekDouble x, NekDouble y, NekDouble z, NekDouble dx, const std::vector< SPBaseSharedPtr > &splist) | |
constructor for master octant More... | |
void | Subdivide (OctantSharedPtr p, int &numoct) |
Subdivide the octant. More... | |
void | CompileLeaves (std::vector< OctantSharedPtr > &Octants) |
Recursive method which gets a list of the leaf octants Moves down levels if octant is not a leaf. More... | |
int | GetId () |
Get the Id of the octant. More... | |
Array< OneD, NekDouble > | GetLoc () |
Get the location of the center of the octant. More... | |
NekDouble | DX () |
Get the octants half dimension. More... | |
std::vector< SPBaseSharedPtr > | GetSPList () |
Get the list of curvature points that are within this octant. More... | |
SPBaseSharedPtr | GetABoundPoint () |
int | NumCurvePoint () |
Get the number of points in the octants cp list. More... | |
int | NumValidCurvePoint () |
Get the number of valid cp points in the octants list. More... | |
void | SetDelta (NekDouble d) |
Set the value for delta for this octant. More... | |
NekDouble | GetDelta () |
Get value of delta. More... | |
void | SetChildren (Array< OneD, OctantSharedPtr > c) |
Set the children of this octant. More... | |
bool | IsLeaf () |
Get whether the octant is a leaf or not. More... | |
NekDouble | FX (OctantFace f) |
Get the far dimension in a given direction f. More... | |
void | RemoveNeigbour (int id, OctantFace f) |
Remove a neigbour from this octants list. More... | |
void | SetNeigbour (OctantSharedPtr o, OctantFace f) |
std::map< OctantFace, std::vector< OctantSharedPtr > > | GetNeigbours () |
Get the map of neigbours. More... | |
bool | NeedDivide () |
Get whether this octants needs to divide based on the curvature sampling. More... | |
NekDouble | Distance (OctantSharedPtr o) |
Get the distance from this octant to another. More... | |
bool | IsDeltaKnown () |
Get whether a value of delta has been set or not. More... | |
void | SetLocation (OctantLocation l) |
set the location of the octant with respect to the CAD More... | |
OctantLocation | GetLocation () |
Get the location of the octant with respect to the geometry. More... | |
OctantSharedPtr | GetChild (int q) |
Get a specific child of this octant. More... | |
int | GetNumBoundary () |
Private Attributes | |
int | m_id |
id More... | |
bool | m_leaf |
leaf identifer More... | |
OctantSharedPtr | m_parent |
parent id More... | |
Array< OneD, OctantSharedPtr > | m_children |
list of child ids More... | |
Array< OneD, NekDouble > | m_loc |
x,y,z location of the octant More... | |
NekDouble | m_hd |
half dimension of the octant More... | |
std::vector< SPBaseSharedPtr > | m_localSPList |
curvature sampling point list More... | |
int | m_numValidPoints |
number of valid cp points More... | |
int | m_numBoundaryPoints |
std::pair< bool, NekDouble > | m_delta |
mesh sizing parameter More... | |
bool | m_needToDivide |
idenify if division is needed More... | |
OctantLocation | m_location |
idenify if delta has ben set More... | |
std::map< OctantFace, std::vector< OctantSharedPtr > > | m_neigbours |
list of neighbours More... | |
Friends | |
class | MemoryManager< Octant > |
this class contains the infomration and methods for individal octants in the Octree
Nektar::NekMeshUtils::Octant::Octant | ( | int | i, |
OctantSharedPtr | p, | ||
Array< OneD, OctantFace > | dir | ||
) |
Defualt constructor.
Definition at line 65 of file Octant.cpp.
References DX(), Nektar::NekMeshUtils::eBack, Nektar::NekMeshUtils::eDown, Nektar::NekMeshUtils::eForward, Nektar::NekMeshUtils::eLeft, Nektar::NekMeshUtils::eOnBoundary, Nektar::NekMeshUtils::eRight, Nektar::NekMeshUtils::eUnknown, Nektar::NekMeshUtils::eUp, GetDelta(), GetNumBoundary(), m_delta, m_hd, m_leaf, m_loc, m_localSPList, m_location, m_needToDivide, m_neigbours, m_numBoundaryPoints, m_numValidPoints, m_parent, NumValidCurvePoint(), and SetDelta().
Referenced by Subdivide().
Nektar::NekMeshUtils::Octant::Octant | ( | int | i, |
NekDouble | x, | ||
NekDouble | y, | ||
NekDouble | z, | ||
NekDouble | dx, | ||
const std::vector< SPBaseSharedPtr > & | splist | ||
) |
constructor for master octant
Definition at line 176 of file Octant.cpp.
References Nektar::NekMeshUtils::eBack, Nektar::NekMeshUtils::eDown, Nektar::NekMeshUtils::eForward, Nektar::NekMeshUtils::eLeft, Nektar::NekMeshUtils::eOnBoundary, Nektar::NekMeshUtils::eRight, Nektar::NekMeshUtils::eUp, m_delta, m_leaf, m_loc, m_localSPList, m_location, m_needToDivide, m_neigbours, and m_numValidPoints.
|
inline |
Recursive method which gets a list of the leaf octants Moves down levels if octant is not a leaf.
Definition at line 110 of file Octant.h.
References IsLeaf(), and m_children.
|
inline |
Get the distance from this octant to another.
Definition at line 285 of file Octant.h.
References m_loc.
|
inline |
Get the octants half dimension.
Definition at line 142 of file Octant.h.
References m_hd.
Referenced by Octant().
|
inline |
Get the far dimension in a given direction f.
Definition at line 229 of file Octant.h.
References Nektar::NekMeshUtils::eBack, Nektar::NekMeshUtils::eDown, Nektar::NekMeshUtils::eForward, Nektar::NekMeshUtils::eLeft, Nektar::NekMeshUtils::eRight, Nektar::NekMeshUtils::eUp, m_hd, and m_loc.
|
inline |
Definition at line 155 of file Octant.h.
References ASSERTL0, Nektar::NekMeshUtils::eCBoundary, Nektar::NekMeshUtils::ePBoundary, and m_localSPList.
|
inline |
Get a specific child of this octant.
Definition at line 320 of file Octant.h.
References m_children.
|
inline |
|
inline |
Get the Id of the octant.
Definition at line 126 of file Octant.h.
References m_id.
Referenced by RemoveNeigbour(), and Subdivide().
Get the location of the center of the octant.
Definition at line 134 of file Octant.h.
References m_loc.
|
inline |
Get the location of the octant with respect to the geometry.
Definition at line 312 of file Octant.h.
References m_location.
|
inline |
Get the map of neigbours.
Definition at line 268 of file Octant.h.
References m_neigbours.
|
inline |
|
inline |
Get the list of curvature points that are within this octant.
Definition at line 150 of file Octant.h.
References m_localSPList.
|
inline |
Get whether a value of delta has been set or not.
Definition at line 296 of file Octant.h.
References m_delta.
|
inline |
Get whether the octant is a leaf or not.
Definition at line 221 of file Octant.h.
References m_leaf.
Referenced by CompileLeaves().
|
inline |
Get whether this octants needs to divide based on the curvature sampling.
Definition at line 277 of file Octant.h.
References m_needToDivide.
|
inline |
Get the number of points in the octants cp list.
Definition at line 176 of file Octant.h.
References m_localSPList.
|
inline |
Get the number of valid cp points in the octants list.
Definition at line 184 of file Octant.h.
References m_numValidPoints.
Referenced by Octant().
void Nektar::NekMeshUtils::Octant::RemoveNeigbour | ( | int | id, |
OctantFace | f | ||
) |
Remove a neigbour from this octants list.
Definition at line 497 of file Octant.cpp.
References GetId(), and m_neigbours.
|
inline |
Set the children of this octant.
Definition at line 213 of file Octant.h.
References m_children.
Referenced by Subdivide().
Set the value for delta for this octant.
Definition at line 192 of file Octant.h.
References m_delta.
Referenced by Octant().
|
inline |
set the location of the octant with respect to the CAD
Definition at line 304 of file Octant.h.
References m_location.
|
inline |
Definition at line 260 of file Octant.h.
References m_neigbours.
void Nektar::NekMeshUtils::Octant::Subdivide | ( | OctantSharedPtr | p, |
int & | numoct | ||
) |
Subdivide the octant.
Definition at line 215 of file Octant.cpp.
References ASSERTL0, Nektar::NekMeshUtils::eBack, Nektar::NekMeshUtils::eDown, Nektar::NekMeshUtils::eForward, Nektar::NekMeshUtils::eLeft, Nektar::NekMeshUtils::eRight, Nektar::NekMeshUtils::eUp, GetId(), Nektar::NekMeshUtils::GetReverseFace(), m_leaf, m_neigbours, Octant(), and SetChildren().
|
friend |
|
private |
list of child ids
Definition at line 338 of file Octant.h.
Referenced by CompileLeaves(), GetChild(), and SetChildren().
|
private |
mesh sizing parameter
Definition at line 349 of file Octant.h.
Referenced by GetDelta(), IsDeltaKnown(), Octant(), and SetDelta().
|
private |
|
private |
|
private |
leaf identifer
Definition at line 334 of file Octant.h.
Referenced by IsLeaf(), Octant(), and Subdivide().
|
private |
curvature sampling point list
Definition at line 344 of file Octant.h.
Referenced by GetABoundPoint(), GetSPList(), NumCurvePoint(), and Octant().
|
private |
idenify if delta has ben set
Definition at line 353 of file Octant.h.
Referenced by GetLocation(), Octant(), and SetLocation().
|
private |
idenify if division is needed
Definition at line 351 of file Octant.h.
Referenced by NeedDivide(), and Octant().
|
private |
list of neighbours
Definition at line 355 of file Octant.h.
Referenced by GetNeigbours(), Octant(), RemoveNeigbour(), SetNeigbour(), and Subdivide().
|
private |
Definition at line 347 of file Octant.h.
Referenced by GetNumBoundary(), and Octant().
|
private |
number of valid cp points
Definition at line 346 of file Octant.h.
Referenced by NumValidCurvePoint(), and Octant().
|
private |