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. 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 = 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. 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) |
Determines if a point specified in global coordinates is located within this tetrahedral geometry. More... | |
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 [6][3] |
static const unsigned int | VertexFaceConnectivity [6][3] |
static const unsigned int | EdgeFaceConnectivity [9][2] |
Definition at line 48 of file PrismGeom.h.
Nektar::SpatialDomains::PrismGeom::PrismGeom | ( | ) |
Definition at line 57 of file PrismGeom.cpp.
References Nektar::LibUtilities::ePrism.
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 62 of file PrismGeom.cpp.
References Nektar::LibUtilities::ePrism, 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::PrismGeom::~PrismGeom | ( | ) |
Definition at line 85 of file PrismGeom.cpp.
|
private |
Definition at line 584 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 621 of file PrismGeom.cpp.
References ASSERTL0, 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 PrismGeom().
|
private |
Definition at line 383 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 518 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().
|
private |
Set up the m_xmap object by determining the order of each direction from derived faces.
Definition at line 862 of file PrismGeom.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauMAlpha1Beta0, Nektar::LibUtilities::eModified_A, Nektar::LibUtilities::eModified_B, Nektar::SpatialDomains::Geometry::GetXmap(), Nektar::SpatialDomains::Geometry3D::m_faces, Nektar::SpatialDomains::Geometry3D::m_forient, and Nektar::SpatialDomains::Geometry::m_xmap.
Referenced by PrismGeom(), 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 124 of file PrismGeom.cpp.
References Nektar::SpatialDomains::Geometry::GetCoordim().
Referenced by v_ContainsPoint().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 131 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 144 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 219 of file PrismGeom.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), 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 104 of file PrismGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 377 of file PrismGeom.cpp.
References EdgeFaceConnectivity.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 278 of file PrismGeom.cpp.
References Nektar::SpatialDomains::PointGeom::dist(), 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 94 of file PrismGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 99 of file PrismGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 89 of file PrismGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 367 of file PrismGeom.cpp.
References VertexEdgeConnectivity.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 372 of file PrismGeom.cpp.
References VertexFaceConnectivity.
|
protectedvirtual |
Reset this geometry object: unset the current state and remove allocated GeomFactors.
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 843 of file PrismGeom.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 106 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.
|
staticprivate |
Definition at line 104 of file PrismGeom.h.
Referenced by v_GetVertexEdgeMap().
|
staticprivate |
Definition at line 105 of file PrismGeom.h.
Referenced by v_GetVertexFaceMap().
|
static |
Definition at line 63 of file PrismGeom.h.