Nektar++
|
#include <TriGeom.h>
Public Member Functions | |
TriGeom () | |
TriGeom (int id, const int coordim) | |
TriGeom (const int id, const PointGeomSharedPtr verts[], const SegGeomSharedPtr edges[], const StdRegions::Orientation eorient[]) | |
TriGeom (const int id, const SegGeomSharedPtr edges[], const StdRegions::Orientation eorient[]) | |
TriGeom (const int id, const SegGeomSharedPtr edges[], const StdRegions::Orientation eorient[], const CurveSharedPtr &curve) | |
TriGeom (const TriGeom &in) | |
~TriGeom () | |
NekDouble | GetCoord (const int i, const Array< OneD, const NekDouble > &Lcoord) |
Public Member Functions inherited from Nektar::SpatialDomains::Geometry2D | |
Geometry2D () | |
Geometry2D (const int coordim) | |
virtual | ~Geometry2D () |
int | GetFid () const |
const Geometry1DSharedPtr | GetEdge (int i) const |
const Geometry2DSharedPtr | GetFace (int i) const |
int | WhichEdge (SegGeomSharedPtr edge) |
int | WhichFace (Geometry2DSharedPtr face) |
const LibUtilities::BasisSharedPtr | GetEdgeBasis (const int i) |
StdRegions::Orientation | GetFaceOrient (const int i) const |
StdRegions::Orientation | GetCartesianEorient (const int i) const |
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 | |
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) |
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 Member Functions | |
static StdRegions::Orientation | GetFaceOrientation (const TriGeom &face1, const TriGeom &face2) |
static StdRegions::Orientation | GetFaceOrientation (const PointGeomVector &face1, const PointGeomVector &face2) |
Static Public Attributes | |
static const int | kNedges = 3 |
Get the orientation of face1. | |
static const int | kNverts = 3 |
Protected Member Functions | |
virtual void | v_AddElmtConnected (int gvo_id, int locid) |
virtual int | v_NumElmtConnected () const |
virtual bool | v_IsElmtConnected (int gvo_id, int locid) const |
virtual int | v_GetFid () const |
virtual int | v_GetCoordim () const |
virtual const LibUtilities::BasisSharedPtr | v_GetBasis (const int i) |
virtual const LibUtilities::BasisSharedPtr | v_GetEdgeBasis (const int i) |
virtual NekDouble | v_GetCoord (const int i, const Array< OneD, const NekDouble > &Lcoord) |
virtual void | v_GenGeomFactors () |
virtual void | v_SetOwnData () |
virtual void | v_FillGeom () |
Put all quadrature information into edge structure. | |
virtual NekDouble | v_GetLocCoords (const Array< OneD, const NekDouble > &coords, Array< OneD, NekDouble > &Lcoords) |
virtual int | v_GetEid (int i) const |
virtual int | v_GetVid (int i) const |
virtual PointGeomSharedPtr | v_GetVertex (int i) const |
virtual const Geometry1DSharedPtr | v_GetEdge (int i) const |
virtual StdRegions::Orientation | v_GetEorient (const int i) const |
virtual StdRegions::Orientation | v_GetCartesianEorient (const int i) const |
virtual int | v_WhichEdge (SegGeomSharedPtr edge) |
Return the edge number of the given edge. | |
virtual int | v_GetNumVerts () const |
virtual int | v_GetNumEdges () const |
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) |
Protected Member Functions inherited from Nektar::SpatialDomains::Geometry2D | |
void | NewtonIterationForLocCoord (const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &ptsx, const Array< OneD, const NekDouble > &ptsy, Array< OneD, NekDouble > &Lcoords, NekDouble &resid) |
Protected Member Functions inherited from Nektar::SpatialDomains::Geometry | |
void | GenGeomFactors () |
virtual int | v_GetFid (int i) const |
virtual StdRegions::Orientation | v_GetPorient (const int i) const |
virtual StdRegions::Orientation | v_GetForient (const int i) const |
virtual int | v_GetNumFaces () const |
virtual int | v_GetShapeDim () const |
virtual StdRegions::StdExpansionSharedPtr | v_GetXmap () const |
virtual int | v_GetVertexEdgeMap (int i, int j) const |
virtual int | v_GetVertexFaceMap (int i, int j) const |
virtual int | v_GetEdgeFaceMap (int i, int j) const |
void | SetUpCoeffs (const int nCoeffs) |
Protected Attributes | |
PointGeomVector | m_verts |
SegGeomVector | m_edges |
StdRegions::Orientation | m_eorient [kNedges] |
int | m_fid |
bool | m_ownVerts |
std::list< CompToElmt > | m_elmtMap |
Private Attributes | |
bool | m_ownData |
Additional Inherited Members | |
Static Protected Member Functions inherited from Nektar::SpatialDomains::Geometry | |
static GeomFactorsSharedPtr | ValidateRegGeomFactor (GeomFactorsSharedPtr geomFactor) |
Static Protected Attributes inherited from Nektar::SpatialDomains::Geometry | |
static GeomFactorsVector | m_regGeomFactorsManager |
Nektar::SpatialDomains::TriGeom::TriGeom | ( | ) |
Definition at line 53 of file TriGeom.cpp.
References Nektar::LibUtilities::eTriangle, and Nektar::SpatialDomains::Geometry::m_shapeType.
Nektar::SpatialDomains::TriGeom::TriGeom | ( | int | id, |
const int | coordim | ||
) |
Definition at line 61 of file TriGeom.cpp.
References Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauMAlpha1Beta0, Nektar::LibUtilities::eModified_A, Nektar::LibUtilities::eModified_B, m_fid, Nektar::SpatialDomains::Geometry::m_globalID, Nektar::SpatialDomains::Geometry::m_xmap, and Nektar::SpatialDomains::Geometry::SetUpCoeffs().
Nektar::SpatialDomains::TriGeom::TriGeom | ( | const int | id, |
const PointGeomSharedPtr | verts[], | ||
const SegGeomSharedPtr | edges[], | ||
const StdRegions::Orientation | eorient[] | ||
) |
Copy the vert shared pointers.
Copy the edge shared pointers.
Definition at line 79 of file TriGeom.cpp.
References ASSERTL0, Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauMAlpha1Beta0, Nektar::LibUtilities::eModified_A, Nektar::LibUtilities::eModified_B, Nektar::LibUtilities::eTriangle, Nektar::SpatialDomains::Geometry::GetBasis(), kNedges, kNverts, Nektar::SpatialDomains::Geometry::m_coordim, m_edges, m_eorient, m_fid, Nektar::SpatialDomains::Geometry::m_globalID, Nektar::SpatialDomains::Geometry::m_shapeType, m_verts, Nektar::SpatialDomains::Geometry::m_xmap, and Nektar::SpatialDomains::Geometry::SetUpCoeffs().
Nektar::SpatialDomains::TriGeom::TriGeom | ( | const int | id, |
const SegGeomSharedPtr | edges[], | ||
const StdRegions::Orientation | eorient[] | ||
) |
Copy the edge shared pointers.
Definition at line 127 of file TriGeom.cpp.
References ASSERTL0, Nektar::StdRegions::eForwards, Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauMAlpha1Beta0, Nektar::LibUtilities::eModified_A, Nektar::LibUtilities::eModified_B, Nektar::LibUtilities::eTriangle, Nektar::SpatialDomains::Geometry::GetBasis(), Nektar::SpatialDomains::Geometry::GetVertex(), kNedges, Nektar::SpatialDomains::Geometry::m_coordim, m_edges, m_eorient, m_fid, Nektar::SpatialDomains::Geometry::m_globalID, Nektar::SpatialDomains::Geometry::m_shapeType, m_verts, Nektar::SpatialDomains::Geometry::m_xmap, and Nektar::SpatialDomains::Geometry::SetUpCoeffs().
Nektar::SpatialDomains::TriGeom::TriGeom | ( | const int | id, |
const SegGeomSharedPtr | edges[], | ||
const StdRegions::Orientation | eorient[], | ||
const CurveSharedPtr & | curve | ||
) |
Copy the edge shared pointers.
Definition at line 180 of file TriGeom.cpp.
References ASSERTL0, Nektar::StdRegions::eForwards, Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauMAlpha1Beta0, Nektar::LibUtilities::eModified_A, Nektar::LibUtilities::eModified_B, Nektar::LibUtilities::eOrtho_A, Nektar::LibUtilities::eOrtho_B, Nektar::LibUtilities::eTriangle, Nektar::SpatialDomains::Geometry::GetBasis(), Nektar::LibUtilities::BasisKey::GetPointsKey(), Nektar::SpatialDomains::Geometry::GetVertex(), Nektar::SpatialDomains::Geometry::GetXmap(), Nektar::LibUtilities::Interp2D(), kNedges, Nektar::SpatialDomains::Geometry::m_coeffs, Nektar::SpatialDomains::Geometry::m_coordim, m_edges, m_eorient, m_fid, Nektar::SpatialDomains::Geometry::m_globalID, Nektar::SpatialDomains::Geometry::m_shapeType, m_verts, Nektar::SpatialDomains::Geometry::m_xmap, npts, Nektar::LibUtilities::PointsManager(), and Nektar::SpatialDomains::Geometry::SetUpCoeffs().
Nektar::SpatialDomains::TriGeom::TriGeom | ( | const TriGeom & | in | ) |
Definition at line 329 of file TriGeom.cpp.
References kNedges, m_edges, m_elmtMap, m_eorient, m_fid, Nektar::SpatialDomains::Geometry::m_globalID, m_ownData, m_ownVerts, Nektar::SpatialDomains::Geometry::m_shapeType, and m_verts.
Nektar::SpatialDomains::TriGeom::~TriGeom | ( | ) |
Definition at line 358 of file TriGeom.cpp.
NekDouble Nektar::SpatialDomains::TriGeom::GetCoord | ( | const int | i, |
const Array< OneD, const NekDouble > & | Lcoord | ||
) |
Given local collapsed coordinate Lcoord return the value of physical coordinate in direction i
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 367 of file TriGeom.cpp.
References ASSERTL1, Nektar::SpatialDomains::ePtsFilled, Nektar::SpatialDomains::Geometry::m_coeffs, Nektar::SpatialDomains::Geometry::m_state, and Nektar::SpatialDomains::Geometry::m_xmap.
Referenced by v_GetCoord().
|
static |
Definition at line 379 of file TriGeom.cpp.
References m_verts.
Referenced by Nektar::MultiRegions::DisContField3D::FindPeriodicFaces().
|
static |
Definition at line 386 of file TriGeom.cpp.
References ASSERTL0, Nektar::StdRegions::eDir1BwdDir1_Dir2BwdDir2, Nektar::StdRegions::eDir1BwdDir1_Dir2FwdDir2, Nektar::StdRegions::eDir1BwdDir2_Dir2BwdDir1, Nektar::StdRegions::eDir1FwdDir1_Dir2FwdDir2, Nektar::StdRegions::eDir1FwdDir2_Dir2BwdDir1, Nektar::StdRegions::eDir1FwdDir2_Dir2FwdDir1, and Nektar::StdRegions::eNoOrientation.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 467 of file TriGeom.cpp.
References m_elmtMap.
|
protectedvirtual |
Determines if a point specified in global coordinates is located within this tetrahedral geometry.
Reimplemented from Nektar::SpatialDomains::Geometry2D.
Definition at line 817 of file TriGeom.cpp.
References Nektar::SpatialDomains::Geometry::GetCoordim().
Referenced by v_ContainsPoint().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 828 of file TriGeom.cpp.
References v_ContainsPoint().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 836 of file TriGeom.cpp.
References ASSERTL1, and Nektar::SpatialDomains::Geometry::GetLocCoords().
|
protectedvirtual |
Put all quadrature information into edge structure.
Note verts and edges are listed according to anticlockwise convention but points in _coeffs have to be in array format from left to right.
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 594 of file TriGeom.cpp.
References Nektar::SpatialDomains::ePtsFilled, kNedges, Nektar::SpatialDomains::Geometry::m_coeffs, Nektar::SpatialDomains::Geometry::m_coordim, m_edges, m_eorient, Nektar::SpatialDomains::Geometry::m_state, and Nektar::SpatialDomains::Geometry::m_xmap.
Referenced by v_GenGeomFactors(), and v_GetLocCoords().
|
protectedvirtual |
Set up GeoFac for this geometry using Coord quadrature distribution
Implements Nektar::SpatialDomains::Geometry.
Definition at line 555 of file TriGeom.cpp.
References Nektar::SpatialDomains::eDeformed, Nektar::SpatialDomains::ePtsFilled, Nektar::SpatialDomains::eRegular, Nektar::SpatialDomains::Geometry::m_coeffs, Nektar::SpatialDomains::Geometry::m_coordim, Nektar::SpatialDomains::Geometry::m_geomFactors, Nektar::SpatialDomains::Geometry::m_geomFactorsState, Nektar::SpatialDomains::Geometry::m_xmap, and v_FillGeom().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 519 of file TriGeom.cpp.
References Nektar::SpatialDomains::Geometry::m_xmap.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry2D.
Definition at line 751 of file TriGeom.cpp.
References ASSERTL2, Nektar::StdRegions::eBackwards, Nektar::StdRegions::eForwards, and m_eorient.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 546 of file TriGeom.cpp.
References GetCoord().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 510 of file TriGeom.cpp.
References Nektar::SpatialDomains::Geometry::m_coordim.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry2D.
Definition at line 731 of file TriGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry2D.
Definition at line 528 of file TriGeom.cpp.
References ASSERTL1, and Nektar::SpatialDomains::Geometry::m_xmap.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry2D.
Definition at line 701 of file TriGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry2D.
Definition at line 741 of file TriGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry2D.
Definition at line 501 of file TriGeom.cpp.
References m_fid.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 630 of file TriGeom.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, m_verts, Nektar::SpatialDomains::Geometry::m_xmap, Nektar::SpatialDomains::PointGeom::Mult(), Nektar::SpatialDomains::Geometry2D::NewtonIterationForLocCoord(), npts, Vmath::Sadd(), Nektar::SpatialDomains::PointGeom::Sub(), v_FillGeom(), Vmath::Vmul(), and Vmath::Vvtvp().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 807 of file TriGeom.cpp.
References kNedges.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 798 of file TriGeom.cpp.
References kNverts.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry2D.
Definition at line 721 of file TriGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 711 of file TriGeom.cpp.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 486 of file TriGeom.cpp.
References Nektar::StdRegions::find(), and m_elmtMap.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 477 of file TriGeom.cpp.
References m_elmtMap.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 583 of file TriGeom.cpp.
References m_ownData.
|
protectedvirtual |
Return the edge number of the given edge.
Reimplemented from Nektar::SpatialDomains::Geometry2D.
Definition at line 775 of file TriGeom.cpp.
References Nektar::iterator, and m_edges.
|
static |
Get the orientation of face1.
Definition at line 98 of file TriGeom.h.
Referenced by Nektar::SpatialDomains::MeshGraph2D::ReadElements(), Nektar::SpatialDomains::MeshGraph3D::ReadFaces(), TriGeom(), v_FillGeom(), and v_GetNumEdges().
|
static |
Definition at line 99 of file TriGeom.h.
Referenced by TriGeom(), and v_GetNumVerts().
|
protected |
Definition at line 112 of file TriGeom.h.
Referenced by TriGeom(), v_FillGeom(), v_GetEdge(), v_GetEid(), and v_WhichEdge().
|
protected |
Definition at line 116 of file TriGeom.h.
Referenced by TriGeom(), v_AddElmtConnected(), v_IsElmtConnected(), and v_NumElmtConnected().
|
protected |
Definition at line 113 of file TriGeom.h.
Referenced by TriGeom(), v_FillGeom(), v_GetCartesianEorient(), and v_GetEorient().
|
protected |
Definition at line 114 of file TriGeom.h.
Referenced by TriGeom(), and v_GetFid().
|
private |
Definition at line 193 of file TriGeom.h.
Referenced by TriGeom(), and v_SetOwnData().
|
protected |
|
protected |
Definition at line 111 of file TriGeom.h.
Referenced by GetFaceOrientation(), TriGeom(), v_GetLocCoords(), v_GetVertex(), and v_GetVid().