Nektar++
|
#include <HexGeom.h>
Public Member Functions | |
HexGeom () | |
HexGeom (const QuadGeomSharedPtr faces[]) | |
~HexGeom () | |
Public Member Functions inherited from Nektar::SpatialDomains::Geometry3D | |
Geometry3D () | |
Geometry3D (const int coordim) | |
virtual | ~Geometry3D () |
int | GetEid (int i) const |
Return the ID of edge i in this element. More... | |
const Geometry1DSharedPtr | GetEdge (int i) const |
Geometry2DSharedPtr | GetFace (int i) |
Return face i in this element. More... | |
int | GetDir (const int faceidx, const int facedir) const |
Returns the element coordinate direction corresponding to a given face coordinate direction. More... | |
Public Member Functions inherited from Nektar::SpatialDomains::Geometry | |
Geometry () | |
Geometry (int coordim) | |
virtual | ~Geometry () |
bool | IsElmtConnected (int gvo_id, int locid) const |
void | AddElmtConnected (int gvo_id, int locid) |
int | NumElmtConnected () const |
int | GetCoordim () const |
void | SetCoordim (int coordim) |
GeomFactorsSharedPtr | GetGeomFactors () |
GeomFactorsSharedPtr | GetRefGeomFactors (const Array< OneD, const LibUtilities::BasisSharedPtr > &tbasis) |
GeomFactorsSharedPtr | GetMetricInfo () |
LibUtilities::ShapeType | GetShapeType (void) |
int | GetGlobalID (void) |
void | SetGlobalID (int globalid) |
int | GetVid (int i) const |
int | GetEid (int i) const |
int | GetFid (int i) const |
int | GetTid (int i) const |
int | GetNumVerts () const |
PointGeomSharedPtr | GetVertex (int i) const |
StdRegions::Orientation | GetEorient (const int i) const |
StdRegions::Orientation | GetPorient (const int i) const |
StdRegions::Orientation | GetForient (const int i) const |
int | GetNumEdges () const |
int | GetNumFaces () const |
int | GetShapeDim () const |
StdRegions::StdExpansionSharedPtr | GetXmap () const |
const Array< OneD, const NekDouble > & | GetCoeffs (const int i) const |
bool | ContainsPoint (const Array< OneD, const NekDouble > &gloCoord, NekDouble tol=0.0) |
bool | ContainsPoint (const Array< OneD, const NekDouble > &gloCoord, Array< OneD, NekDouble > &locCoord, NekDouble tol) |
bool | ContainsPoint (const Array< OneD, const NekDouble > &gloCoord, Array< OneD, NekDouble > &locCoord, NekDouble tol, NekDouble &resid) |
int | GetVertexEdgeMap (int i, int j) const |
int | GetVertexFaceMap (int i, int j) const |
return the id of the face attached to the vertex More... | |
int | GetEdgeFaceMap (int i, int j) const |
void | FillGeom () |
Put all quadrature information into face/edge structure and backward transform. More... | |
NekDouble | GetLocCoords (const Array< OneD, const NekDouble > &coords, Array< OneD, NekDouble > &Lcoords) |
NekDouble | GetCoord (const int i, const Array< OneD, const NekDouble > &Lcoord) |
Given local collapsed coordinate Lcoord return the value of physical coordinate in direction i. More... | |
void | SetOwnData () |
const LibUtilities::BasisSharedPtr | GetBasis (const int i) |
Return the j-th basis of the i-th co-ordinate dimension. More... | |
const LibUtilities::PointsKeyVector | GetPointsKeys () |
void | Reset (CurveMap &curvedEdges, CurveMap &curvedFaces) |
Static Public Attributes | |
static const int | kNverts = 8 |
static const int | kNedges = 12 |
static const int | kNqfaces = 6 |
static const int | kNtfaces = 0 |
static const int | kNfaces = kNqfaces + kNtfaces |
static const std::string | XMLElementType |
Protected Member Functions | |
virtual void | v_GenGeomFactors () |
virtual NekDouble | v_GetLocCoords (const Array< OneD, const NekDouble > &coords, Array< OneD, NekDouble > &Lcoords) |
virtual bool | v_ContainsPoint (const Array< OneD, const NekDouble > &gloCoord, NekDouble tol=0.0) |
Determines if a point specified in global coordinates is located within this tetrahedral geometry. More... | |
virtual bool | v_ContainsPoint (const Array< OneD, const NekDouble > &gloCoord, Array< OneD, NekDouble > &locCoord, NekDouble tol) |
virtual bool | v_ContainsPoint (const Array< OneD, const NekDouble > &gloCoord, Array< OneD, NekDouble > &locCoord, NekDouble tol, NekDouble &resid) |
virtual int | v_GetNumVerts () const |
virtual int | v_GetNumEdges () const |
virtual int | v_GetNumFaces () const |
virtual int | v_GetVertexEdgeMap (const int i, const int j) const |
virtual int | v_GetVertexFaceMap (const int i, const int j) const |
virtual int | v_GetEdgeFaceMap (const int i, const int j) const |
virtual int | v_GetDir (const int faceidx, const int facedir) const |
virtual void | v_Reset (CurveMap &curvedEdges, CurveMap &curvedFaces) |
Reset this geometry object: unset the current state and remove allocated GeomFactors. More... | |
Protected Member Functions inherited from Nektar::SpatialDomains::Geometry3D | |
void | NewtonIterationForLocCoord (const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &ptsx, const Array< OneD, const NekDouble > &ptsy, const Array< OneD, const NekDouble > &ptsz, Array< OneD, NekDouble > &Lcoords, NekDouble &resid) |
virtual void | v_FillGeom () |
Put all quadrature information into face/edge structure and backward transform. More... | |
virtual NekDouble | v_GetCoord (const int i, const Array< OneD, const NekDouble > &Lcoord) |
Given local collapsed coordinate Lcoord return the value of physical coordinate in direction i. More... | |
virtual int | v_GetShapeDim () const |
Return the dimension of this element. More... | |
virtual int | v_GetVid (int i) const |
Return the vertex ID of vertex i. More... | |
virtual PointGeomSharedPtr | v_GetVertex (int i) const |
Return vertex i in this element. More... | |
virtual const SegGeomSharedPtr | v_GetEdge (int i) const |
Return edge i of this element. More... | |
virtual StdRegions::Orientation | v_GetEorient (const int i) const |
Return the orientation of edge i in this element. More... | |
virtual int | v_GetEid (int i) const |
Return the ID of edge i in this element. More... | |
virtual const Geometry2DSharedPtr | v_GetFace (int i) const |
Return face i in this element. More... | |
virtual StdRegions::Orientation | v_GetForient (const int i) const |
Return the orientation of face i in this element. More... | |
virtual int | v_GetFid (int i) const |
Return the ID of face i in this element. More... | |
virtual int | v_GetEid () const |
Return the ID of this element. More... | |
virtual int | v_WhichEdge (SegGeomSharedPtr edge) |
Return the local ID of a given edge. More... | |
virtual int | v_WhichFace (Geometry2DSharedPtr face) |
Return the local ID of a given face. More... | |
virtual const LibUtilities::BasisSharedPtr | v_GetBasis (const int i) |
Return the j-th basis of the i-th co-ordinate dimension. More... | |
virtual void | v_AddElmtConnected (int gvo_id, int locid) |
virtual bool | v_IsElmtConnected (int gvo_id, int locid) const |
virtual int | v_NumElmtConnected () const |
virtual void | v_SetOwnData () |
Protected Member Functions inherited from Nektar::SpatialDomains::Geometry | |
void | GenGeomFactors () |
virtual StdRegions::Orientation | v_GetPorient (const int i) const |
virtual StdRegions::StdExpansionSharedPtr | v_GetXmap () const |
virtual int | v_GetCoordim () const |
void | SetUpCoeffs (const int nCoeffs) |
Initialise the m_coeffs array. More... | |
Private Member Functions | |
void | SetUpLocalEdges () |
void | SetUpLocalVertices () |
void | SetUpEdgeOrientation () |
void | SetUpFaceOrientation () |
void | SetUpXmap () |
Set up the m_xmap object by determining the order of each direction from derived faces. More... | |
Static Private Attributes | |
static const unsigned int | VertexEdgeConnectivity [8][3] |
static const unsigned int | VertexFaceConnectivity [8][3] |
static const unsigned int | EdgeFaceConnectivity [12][2] |
Nektar::SpatialDomains::HexGeom::HexGeom | ( | ) |
Definition at line 58 of file HexGeom.cpp.
References Nektar::LibUtilities::eHexahedron.
Nektar::SpatialDomains::HexGeom::HexGeom | ( | const QuadGeomSharedPtr | faces[] | ) |
Copy the face shared pointers
Set up orientation vectors with correct amount of elements.
Definition at line 63 of file HexGeom.cpp.
References Nektar::LibUtilities::eHexahedron, kNedges, kNfaces, Nektar::SpatialDomains::Geometry3D::m_eorient, Nektar::SpatialDomains::Geometry3D::m_faces, Nektar::SpatialDomains::Geometry3D::m_forient, Nektar::SpatialDomains::Geometry::m_shapeType, Nektar::SpatialDomains::Geometry::m_xmap, Nektar::SpatialDomains::Geometry::SetUpCoeffs(), SetUpEdgeOrientation(), SetUpFaceOrientation(), SetUpLocalEdges(), SetUpLocalVertices(), and SetUpXmap().
Nektar::SpatialDomains::HexGeom::~HexGeom | ( | ) |
Definition at line 83 of file HexGeom.cpp.
|
private |
Definition at line 818 of file HexGeom.cpp.
References ASSERTL0, Nektar::StdRegions::eBackwards, Nektar::StdRegions::eForwards, Nektar::SpatialDomains::Geometry::GetVid(), kNedges, Nektar::SpatialDomains::Geometry3D::m_edges, Nektar::SpatialDomains::Geometry3D::m_eorient, and Nektar::SpatialDomains::Geometry3D::m_verts.
Referenced by HexGeom().
|
private |
Definition at line 609 of file HexGeom.cpp.
References ASSERTL0, ASSERTL1, Nektar::SpatialDomains::Geometry::GetVertex(), Nektar::SpatialDomains::Geometry::GetVid(), Nektar::NekConstants::kNekZeroTol, kNfaces, kNqfaces, kNtfaces, Nektar::SpatialDomains::QuadGeom::kNverts, Nektar::SpatialDomains::Geometry::m_coordim, Nektar::SpatialDomains::Geometry3D::m_faces, Nektar::SpatialDomains::Geometry3D::m_forient, and Nektar::SpatialDomains::Geometry3D::m_verts.
Referenced by HexGeom().
|
private |
Definition at line 386 of file HexGeom.cpp.
References ASSERTL0, Nektar::SpatialDomains::Geometry3D::GetEdge(), Nektar::SpatialDomains::Geometry3D::GetEid(), Nektar::SpatialDomains::Geometry::GetFid(), Nektar::SpatialDomains::Geometry3D::m_edges, and Nektar::SpatialDomains::Geometry3D::m_faces.
Referenced by HexGeom().
|
private |
Definition at line 522 of file HexGeom.cpp.
References ASSERTL0, Nektar::SpatialDomains::Geometry::GetVertex(), Nektar::SpatialDomains::Geometry::GetVid(), Nektar::SpatialDomains::Geometry3D::m_edges, and Nektar::SpatialDomains::Geometry3D::m_verts.
Referenced by HexGeom().
|
private |
Set up the m_xmap object by determining the order of each direction from derived faces.
Determine necessary order for standard region. This can almost certainly be simplified but works for now!
Definition at line 875 of file HexGeom.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eModified_A, Nektar::SpatialDomains::Geometry::GetXmap(), Nektar::SpatialDomains::Geometry3D::m_faces, Nektar::SpatialDomains::Geometry3D::m_forient, and Nektar::SpatialDomains::Geometry::m_xmap.
Referenced by HexGeom(), and v_Reset().
|
protectedvirtual |
Determines if a point specified in global coordinates is located within this tetrahedral geometry.
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 251 of file HexGeom.cpp.
References Nektar::SpatialDomains::Geometry::GetCoordim().
Referenced by v_ContainsPoint().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 259 of file HexGeom.cpp.
References v_ContainsPoint().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 268 of file HexGeom.cpp.
References ASSERTL1, Nektar::SpatialDomains::eRegular, Nektar::SpatialDomains::Geometry::GetMetricInfo(), Nektar::SpatialDomains::Geometry::m_coeffs, Nektar::SpatialDomains::Geometry::m_xmap, npts, Nektar::SpatialDomains::Geometry3D::v_FillGeom(), v_GetLocCoords(), Vmath::Vmax(), and Vmath::Vmin().
|
protectedvirtual |
Generate the geometry factors for this element.
Reimplemented from Nektar::SpatialDomains::Geometry3D.
Definition at line 88 of file HexGeom.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::SpatialDomains::eDeformed, Nektar::SpatialDomains::ePtsFilled, Nektar::SpatialDomains::eRegular, Nektar::NekConstants::kNekZeroTol, kNfaces, Nektar::SpatialDomains::QuadGeom::kNverts, Nektar::SpatialDomains::Geometry::m_coeffs, Nektar::SpatialDomains::Geometry::m_coordim, Nektar::SpatialDomains::Geometry::m_geomFactors, Nektar::SpatialDomains::Geometry::m_geomFactorsState, Nektar::SpatialDomains::Geometry3D::m_verts, Nektar::SpatialDomains::Geometry::m_xmap, and Nektar::SpatialDomains::Geometry3D::v_FillGeom().
|
protectedvirtual |
Implements Nektar::SpatialDomains::Geometry3D.
Definition at line 370 of file HexGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 365 of file HexGeom.cpp.
References EdgeFaceConnectivity.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 148 of file HexGeom.cpp.
References Nektar::SpatialDomains::PointGeom::dist(), Nektar::SpatialDomains::eRegular, Nektar::SpatialDomains::Geometry::GetMetricInfo(), Vmath::Imin(), Nektar::SpatialDomains::Geometry::m_coeffs, Nektar::SpatialDomains::Geometry::m_coordim, Nektar::SpatialDomains::Geometry3D::m_verts, Nektar::SpatialDomains::Geometry::m_xmap, Nektar::SpatialDomains::Geometry3D::NewtonIterationForLocCoord(), npts, Vmath::Sadd(), Nektar::SpatialDomains::Geometry3D::v_FillGeom(), Vmath::Vmul(), and Vmath::Vvtvp().
Referenced by v_ContainsPoint().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 345 of file HexGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 350 of file HexGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 340 of file HexGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 355 of file HexGeom.cpp.
References VertexEdgeConnectivity.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 360 of file HexGeom.cpp.
References VertexFaceConnectivity.
|
protectedvirtual |
Reset this geometry object: unset the current state and remove allocated GeomFactors.
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 856 of file HexGeom.cpp.
References Nektar::SpatialDomains::Geometry3D::m_faces, Nektar::SpatialDomains::Geometry::m_xmap, Nektar::SpatialDomains::Geometry::SetUpCoeffs(), SetUpXmap(), and Nektar::SpatialDomains::Geometry::v_Reset().
|
staticprivate |
Definition at line 107 of file HexGeom.h.
Referenced by v_GetEdgeFaceMap().
|
static |
Definition at line 61 of file HexGeom.h.
Referenced by HexGeom(), and SetUpEdgeOrientation().
Definition at line 64 of file HexGeom.h.
Referenced by HexGeom(), Nektar::SpatialDomains::MeshGraph3D::ReadElements(), SetUpFaceOrientation(), and v_GenGeomFactors().
|
static |
Definition at line 62 of file HexGeom.h.
Referenced by Nektar::SpatialDomains::MeshGraph3D::ReadElements(), and SetUpFaceOrientation().
|
static |
Definition at line 63 of file HexGeom.h.
Referenced by Nektar::SpatialDomains::MeshGraph3D::ReadElements(), and SetUpFaceOrientation().
|
static |
|
staticprivate |
Definition at line 105 of file HexGeom.h.
Referenced by v_GetVertexEdgeMap().
|
staticprivate |
Definition at line 106 of file HexGeom.h.
Referenced by v_GetVertexFaceMap().