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. | |
const Geometry1DSharedPtr | GetEdge (int i) const |
Geometry2DSharedPtr | GetFace (int i) |
Return face i in this element. | |
int | GetDir (const int faceidx, const int facedir) const |
Returns the element coordinate direction corresponding to a given face coordinate direction. | |
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 | 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 | |
int | GetEdgeFaceMap (int i, int j) const |
void | FillGeom () |
Put all quadrature information into face/edge structure and backward transform. | |
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. | |
void | SetOwnData () |
const LibUtilities::BasisSharedPtr | GetBasis (const int i) |
Return the j-th basis of the i-th co-ordinate dimension. | |
const LibUtilities::PointsKeyVector | GetPointsKeys () |
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. | |
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 |
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. | |
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. | |
virtual int | v_GetShapeDim () const |
Return the dimension of this element. | |
virtual int | v_GetVid (int i) const |
Return the vertex ID of vertex i. | |
virtual PointGeomSharedPtr | v_GetVertex (int i) const |
Return vertex i in this element. | |
virtual const SegGeomSharedPtr | v_GetEdge (int i) const |
Return edge i of this element. | |
virtual StdRegions::Orientation | v_GetEorient (const int i) const |
Return the orientation of edge i in this element. | |
virtual int | v_GetEid (int i) const |
Return the ID of edge i in this element. | |
virtual const Geometry2DSharedPtr | v_GetFace (int i) const |
Return face i in this element. | |
virtual StdRegions::Orientation | v_GetForient (const int i) const |
Return the orientation of face i in this element. | |
virtual int | v_GetFid (int i) const |
Return the ID of face i in this element. | |
virtual int | v_GetEid () const |
Return the ID of this element. | |
virtual int | v_WhichEdge (SegGeomSharedPtr edge) |
Return the local ID of a given edge. | |
virtual int | v_WhichFace (Geometry2DSharedPtr face) |
Return the local ID of a given face. | |
virtual const LibUtilities::BasisSharedPtr | v_GetBasis (const int i) |
Return the j-th basis of the i-th co-ordinate dimension. | |
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) |
Private Member Functions | |
void | SetUpLocalEdges () |
void | SetUpLocalVertices () |
void | SetUpEdgeOrientation () |
void | SetUpFaceOrientation () |
Static Private Attributes | |
static const unsigned int | VertexEdgeConnectivity [8][3] |
static const unsigned int | VertexFaceConnectivity [8][3] |
static const unsigned int | EdgeFaceConnectivity [12][2] |
Additional Inherited Members | |
Static Protected Member Functions inherited from Nektar::SpatialDomains::Geometry | |
static GeomFactorsSharedPtr | ValidateRegGeomFactor (GeomFactorsSharedPtr geomFactor) |
Protected Attributes inherited from Nektar::SpatialDomains::Geometry3D | |
PointGeomVector | m_verts |
SegGeomVector | m_edges |
Geometry2DVector | m_faces |
std::vector < StdRegions::Orientation > | m_eorient |
std::vector < StdRegions::Orientation > | m_forient |
std::list< CompToElmt > | m_elmtmap |
bool | m_owndata |
int | m_eid |
bool | m_ownverts |
Static Protected Attributes inherited from Nektar::SpatialDomains::Geometry | |
static GeomFactorsVector | m_regGeomFactorsManager |
Nektar::SpatialDomains::HexGeom::HexGeom | ( | ) |
Definition at line 56 of file HexGeom.cpp.
References Nektar::LibUtilities::eHexahedron, and Nektar::SpatialDomains::Geometry::m_shapeType.
Nektar::SpatialDomains::HexGeom::HexGeom | ( | const QuadGeomSharedPtr | faces[] | ) |
Copy the face shared pointers
Set up orientation vectors with correct amount of elements.
Determine necessary order for standard region. This can almost certainly be simplified but works for now!
Definition at line 61 of file HexGeom.cpp.
References Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eHexahedron, Nektar::LibUtilities::eModified_A, Nektar::SpatialDomains::Geometry::GetXmap(), 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(), and SetUpLocalVertices().
Nektar::SpatialDomains::HexGeom::~HexGeom | ( | ) |
Definition at line 201 of file HexGeom.cpp.
|
private |
Definition at line 906 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 697 of file HexGeom.cpp.
References ASSERTL0, ASSERTL1, Nektar::SpatialDomains::Geometry::GetVertex(), Nektar::SpatialDomains::Geometry::GetVid(), Nektar::NekConstants::kNekZeroTol, kNfaces, kNqfaces, kNtfaces, 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 474 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 610 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().
|
protectedvirtual |
Determines if a point specified in global coordinates is located within this tetrahedral geometry.
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 357 of file HexGeom.cpp.
References Nektar::SpatialDomains::Geometry::GetCoordim().
Referenced by v_ContainsPoint().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 365 of file HexGeom.cpp.
References v_ContainsPoint().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 374 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 206 of file HexGeom.cpp.
References Nektar::SpatialDomains::eDeformed, Nektar::SpatialDomains::ePtsFilled, Nektar::SpatialDomains::eRegular, Nektar::NekConstants::kNekZeroTol, kNfaces, 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 458 of file HexGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 453 of file HexGeom.cpp.
References EdgeFaceConnectivity.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 266 of file HexGeom.cpp.
References Nektar::SpatialDomains::eRegular, Nektar::SpatialDomains::Geometry::GetMetricInfo(), Vmath::Imin(), Nektar::SpatialDomains::Geometry::m_coeffs, Nektar::SpatialDomains::Geometry::m_coordim, 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 433 of file HexGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 438 of file HexGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 428 of file HexGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 443 of file HexGeom.cpp.
References VertexEdgeConnectivity.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 448 of file HexGeom.cpp.
References VertexFaceConnectivity.
|
staticprivate |
Definition at line 103 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 |
Definition at line 60 of file HexGeom.h.
Referenced by SetUpFaceOrientation(), and v_GenGeomFactors().
|
staticprivate |
Definition at line 101 of file HexGeom.h.
Referenced by v_GetVertexEdgeMap().
|
staticprivate |
Definition at line 102 of file HexGeom.h.
Referenced by v_GetVertexFaceMap().
|
static |