Nektar++
|
#include <PrismGeom.h>
Public Member Functions | |
PrismGeom () | |
PrismGeom (const Geometry2DSharedPtr faces[]) | |
~PrismGeom () | |
Public Member Functions inherited from Nektar::LibUtilities::GraphVertexObject | |
GraphVertexObject () | |
GraphVertexObject (const GraphVertexID id) | |
int | getid () |
void | setid (const GraphVertexID id) |
virtual | ~GraphVertexObject () |
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. | |
StdRegions::Orientation | GetFaceOrient (const int i) const |
Return the orientation of 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 | GetNumVerts () const |
PointGeomSharedPtr | GetVertex (int i) const |
StdRegions::Orientation | GetEorient (const int i) const |
StdRegions::Orientation | GetPorient (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 = 6 |
static const int | kNedges = 9 |
static const int | kNqfaces = 3 |
static const int | kNtfaces = 2 |
static const int | kNfaces |
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) |
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) |
Determines if a point specified in global coordinates is located within this tetrahedral geometry. | |
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_GetFaceOrient (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 [6][3] |
static const unsigned int | VertexFaceConnectivity [6][3] |
static const unsigned int | EdgeFaceConnectivity [9][2] |
Additional Inherited Members | |
Static Protected Member Functions inherited from Nektar::SpatialDomains::Geometry | |
static GeomFactorsSharedPtr | ValidateRegGeomFactor (GeomFactorsSharedPtr geomFactor) |
Protected Attributes inherited from Nektar::LibUtilities::GraphVertexObject | |
GraphVertexID | m_id |
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 |
Definition at line 48 of file PrismGeom.h.
Nektar::SpatialDomains::PrismGeom::PrismGeom | ( | ) |
Definition at line 55 of file PrismGeom.cpp.
References Nektar::LibUtilities::ePrism, and Nektar::SpatialDomains::Geometry::m_shapeType.
Nektar::SpatialDomains::PrismGeom::PrismGeom | ( | const Geometry2DSharedPtr | faces[] | ) |
Copy the face shared pointers.
Set up orientation vectors with correct amount of elements.
Set up local objects.
Determine necessary order for standard region.
Definition at line 60 of file PrismGeom.cpp.
References Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauMAlpha1Beta0, Nektar::LibUtilities::eModified_A, Nektar::LibUtilities::eModified_B, Nektar::LibUtilities::ePrism, Nektar::SpatialDomains::Geometry::GetBasis(), Nektar::SpatialDomains::Geometry3D::GetEdge(), 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::PrismGeom::~PrismGeom | ( | ) |
Definition at line 171 of file PrismGeom.cpp.
|
private |
Definition at line 645 of file PrismGeom.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 PrismGeom().
|
private |
Definition at line 682 of file PrismGeom.cpp.
References ASSERTL0, 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 PrismGeom().
|
private |
Definition at line 444 of file PrismGeom.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 PrismGeom().
|
private |
Definition at line 579 of file PrismGeom.cpp.
References ASSERTL0, Nektar::SpatialDomains::Geometry::GetVertex(), Nektar::SpatialDomains::Geometry::GetVid(), Nektar::SpatialDomains::Geometry3D::m_edges, and Nektar::SpatialDomains::Geometry3D::m_verts.
Referenced by PrismGeom().
|
protectedvirtual |
Determines if a point specified in global coordinates is located within this tetrahedral geometry.
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 210 of file PrismGeom.cpp.
References Nektar::SpatialDomains::Geometry::GetCoordim().
Referenced by v_ContainsPoint().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 217 of file PrismGeom.cpp.
References v_ContainsPoint().
|
protectedvirtual |
Determines if a point specified in global coordinates is located within this tetrahedral geometry.
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 230 of file PrismGeom.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 288 of file PrismGeom.cpp.
References Nektar::SpatialDomains::eDeformed, Nektar::SpatialDomains::ePtsFilled, Nektar::SpatialDomains::eRegular, Nektar::NekConstants::kNekZeroTol, 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 190 of file PrismGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 438 of file PrismGeom.cpp.
References EdgeFaceConnectivity.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 347 of file PrismGeom.cpp.
References Nektar::SpatialDomains::PointGeom::dot(), 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::PointGeom::Mult(), Nektar::SpatialDomains::Geometry3D::NewtonIterationForLocCoord(), npts, Vmath::Sadd(), Nektar::SpatialDomains::PointGeom::Sub(), Nektar::SpatialDomains::Geometry3D::v_FillGeom(), Vmath::Vmul(), and Vmath::Vvtvp().
Referenced by v_ContainsPoint().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 180 of file PrismGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 185 of file PrismGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 175 of file PrismGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 428 of file PrismGeom.cpp.
References VertexEdgeConnectivity.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 433 of file PrismGeom.cpp.
References VertexFaceConnectivity.
|
staticprivate |
Definition at line 102 of file PrismGeom.h.
Referenced by v_GetEdgeFaceMap().
|
static |
Definition at line 58 of file PrismGeom.h.
Referenced by PrismGeom(), and SetUpEdgeOrientation().
|
static |
Definition at line 61 of file PrismGeom.h.
Referenced by PrismGeom(), Nektar::SpatialDomains::MeshGraph3D::ReadElements(), and SetUpFaceOrientation().
|
static |
Definition at line 59 of file PrismGeom.h.
Referenced by Nektar::SpatialDomains::MeshGraph3D::ReadElements(), and SetUpFaceOrientation().
|
static |
Definition at line 60 of file PrismGeom.h.
Referenced by Nektar::SpatialDomains::MeshGraph3D::ReadElements(), and SetUpFaceOrientation().
|
static |
Definition at line 57 of file PrismGeom.h.
Referenced by SetUpFaceOrientation().
|
staticprivate |
Definition at line 100 of file PrismGeom.h.
Referenced by v_GetVertexEdgeMap().
|
staticprivate |
Definition at line 101 of file PrismGeom.h.
Referenced by v_GetVertexFaceMap().
|
static |
Definition at line 63 of file PrismGeom.h.