|
Nektar++
|
A 3-dimensional five-faced element (2 triangles, 3 quadrilaterals). More...
#include <MeshElements.h>


Public Member Functions | |
| Prism (ElmtConfig pConf, std::vector< NodeSharedPtr > pNodeList, std::vector< int > pTagList) | |
| Create a prism element. | |
| Prism (const Prism &pSrc) | |
| virtual | ~Prism () |
| virtual SpatialDomains::GeometrySharedPtr | GetGeom (int coordDim) |
| Generate a Nektar++ geometry object for this element. | |
| virtual void | Complete (int order) |
| | |
Public Member Functions inherited from Nektar::Utilities::Element | |
| Element (ElmtConfig pConf, unsigned int pNumNodes, unsigned int pGotNodes) | |
| unsigned int | GetId () const |
| Returns the ID of the element (or associated edge or face for boundary elements). | |
| unsigned int | GetDim () const |
| Returns the expansion dimension of the element. | |
| ElmtConfig | GetConf () const |
| Returns the configuration of the element. | |
| std::string | GetTag () const |
| Returns the tag which defines the element shape. | |
| NodeSharedPtr | GetVertex (unsigned int i) const |
| Access a vertex node. | |
| EdgeSharedPtr | GetEdge (unsigned int i) const |
| Access an edge. | |
| FaceSharedPtr | GetFace (unsigned int i) const |
| Access a face. | |
| std::vector< NodeSharedPtr > | GetVertexList () const |
| Access the list of vertex nodes. | |
| std::vector< EdgeSharedPtr > | GetEdgeList () const |
| Access the list of edges. | |
| std::vector< FaceSharedPtr > | GetFaceList () const |
| Access the list of faces. | |
| std::vector< NodeSharedPtr > | GetVolumeNodes () const |
| Access the list of volume nodes. | |
| void | SetVolumeNodes (std::vector< NodeSharedPtr > &nodes) |
| LibUtilities::PointsType | GetCurveType () const |
| void | SetCurveType (LibUtilities::PointsType cT) |
| unsigned int | GetNodeCount () const |
| Returns the total number of nodes (vertices, edge nodes and face nodes and volume nodes). | |
| std::vector< int > | GetTagList () const |
| Access the list of tags associated with this element. | |
| unsigned int | GetVertexCount () const |
| Returns the number of vertices. | |
| unsigned int | GetEdgeCount () const |
| Returns the number of edges. | |
| unsigned int | GetFaceCount () const |
| Returns the number of faces. | |
| void | SetId (unsigned int p) |
| Change the ID of the element. | |
| void | SetVertex (unsigned int p, NodeSharedPtr pNew) |
| Replace a vertex with another vertex object. | |
| void | SetEdge (unsigned int p, EdgeSharedPtr pNew) |
| Replace an edge with another edge object. | |
| void | SetFace (unsigned int p, FaceSharedPtr pNew) |
| Replace a face with another face object. | |
| void | SetEdgeLink (EdgeSharedPtr pLink) |
| Set a correspondence between this element and an edge (2D boundary element). | |
| EdgeSharedPtr | GetEdgeLink () |
| Get correspondence between this element and an edge. | |
| void | SetFaceLink (FaceSharedPtr pLink) |
| Set a correspondence between this element and a face (3D boundary element). | |
| FaceSharedPtr | GetFaceLink () |
| Get correspondence between this element and a face. | |
| void | SetBoundaryLink (int i, int j) |
| Set a correspondence between edge or face i and its representative boundary element m->element[expDim-1][j]. | |
| int | GetBoundaryLink (int i) |
| Get the location of the boundary face/edge i for this element. | |
| void | SetTagList (const std::vector< int > &tags) |
| Set the list of tags associated with this element. | |
| virtual std::string | GetXmlString () const |
| Generate a list of vertices (1D), edges (2D), or faces (3D). | |
| std::vector< NodeSharedPtr > | tensorNodeOrdering (const std::vector< NodeSharedPtr > &nodes, int n) const |
| Reorders Gmsh ordered nodes into a row-by-row ordering required for Nektar++ curve tags. | |
| std::string | GetXmlCurveString () const |
| Generates a string listing the coordinates of all nodes associated with this element. | |
| int | GetMaxOrder () |
| Obtain the order of an element by looking at edges. | |
| void | Print () |
Static Public Member Functions | |
| static ElementSharedPtr | create (ElmtConfig pConf, std::vector< NodeSharedPtr > pNodeList, std::vector< int > pTagList) |
| Creates an instance of this class. | |
| static unsigned int | GetNumNodes (ElmtConfig pConf) |
| Return the number of nodes defining a prism. | |
Public Attributes | |
| unsigned int | m_orientation |
Static Public Attributes | |
| static LibUtilities::ShapeType | m_type |
| Element type. | |
Protected Member Functions | |
| void | OrientPrism () |
| Orient prism to align degenerate vertices. | |
Additional Inherited Members | |
Protected Attributes inherited from Nektar::Utilities::Element | |
| unsigned int | m_id |
| ID of the element. | |
| unsigned int | m_dim |
| Dimension of the element. | |
| ElmtConfig | m_conf |
| Contains configuration of the element. | |
| std::string | m_tag |
| Tag character describing the element. | |
| std::vector< int > | m_taglist |
| List of integers specifying properties of the element. | |
| std::vector< NodeSharedPtr > | m_vertex |
| List of element vertex nodes. | |
| std::vector< EdgeSharedPtr > | m_edge |
| List of element edges. | |
| std::vector< FaceSharedPtr > | m_face |
| List of element faces. | |
| std::vector< NodeSharedPtr > | m_volumeNodes |
| List of element volume nodes. | |
| LibUtilities::PointsType | m_curveType |
| Volume curve type. | |
| EdgeSharedPtr | m_edgeLink |
| Pointer to the corresponding edge if element is a 2D boundary. | |
| FaceSharedPtr | m_faceLink |
| Pointer to the corresponding face if element is a 3D boundary. | |
| std::map< int, int > | m_boundaryLinks |
| Array mapping faces/edges to the location of the appropriate boundary elements in m->element. | |
| SpatialDomains::GeometrySharedPtr | m_geom |
| Nektar++ geometry object for this element. | |
A 3-dimensional five-faced element (2 triangles, 3 quadrilaterals).
Definition at line 1422 of file MeshElements.h.
| Nektar::Utilities::Prism::Prism | ( | ElmtConfig | pConf, |
| std::vector< NodeSharedPtr > | pNodeList, | ||
| std::vector< int > | pTagList | ||
| ) |
Create a prism element.
Definition at line 1350 of file MeshElements.cpp.
References Nektar::iterator, Nektar::Utilities::Element::m_conf, Nektar::Utilities::Element::m_dim, Nektar::Utilities::Element::m_edge, Nektar::Utilities::ElmtConfig::m_edgeCurveType, Nektar::Utilities::Element::m_face, Nektar::Utilities::ElmtConfig::m_faceCurveType, Nektar::Utilities::ElmtConfig::m_faceNodes, Nektar::Utilities::ElmtConfig::m_order, Nektar::Utilities::ElmtConfig::m_reorient, Nektar::Utilities::Element::m_tag, Nektar::Utilities::Element::m_taglist, Nektar::Utilities::Element::m_vertex, and OrientPrism().
| Nektar::Utilities::Prism::Prism | ( | const Prism & | pSrc | ) |
|
inlinevirtual |
Definition at line 1446 of file MeshElements.h.
|
virtual |
Reimplemented from Nektar::Utilities::Element.
Definition at line 1496 of file MeshElements.cpp.
References Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauMAlpha1Beta0, Nektar::LibUtilities::eNodalPrismEvenlySpaced, Nektar::LibUtilities::eOrtho_A, Nektar::LibUtilities::eOrtho_B, GetGeom(), Nektar::Utilities::Element::m_conf, Nektar::Utilities::Element::m_edge, Nektar::Utilities::Element::m_face, Nektar::Utilities::ElmtConfig::m_faceNodes, Nektar::Utilities::ElmtConfig::m_order, Nektar::Utilities::ElmtConfig::m_volumeNodes, and Nektar::Utilities::Element::m_volumeNodes.
|
inlinestatic |
Creates an instance of this class.
Definition at line 1425 of file MeshElements.h.
References Nektar::Utilities::Element::GetFaceList().
|
virtual |
Generate a Nektar++ geometry object for this element.
Reimplemented from Nektar::Utilities::Element.
Definition at line 1477 of file MeshElements.cpp.
References Nektar::Utilities::Element::m_face.
Referenced by Complete().
|
static |
Return the number of nodes defining a prism.
Definition at line 1466 of file MeshElements.cpp.
References Nektar::Utilities::ElmtConfig::m_faceNodes, Nektar::Utilities::ElmtConfig::m_order, and Nektar::Utilities::ElmtConfig::m_volumeNodes.
Referenced by Nektar::Utilities::InputGmsh::GetNnodes().
|
protected |
Orient prism to align degenerate vertices.
Orientation of prismatric elements is required so that the singular vertices of triangular faces (which occur as a part of the collapsed co-ordinate system) align. The algorithm is based on that used in T. Warburton's thesis and in the original Nektar source.
First the points are re-ordered so that the highest global IDs represent the two singular points of the prism. Then, if necessary, the nodes are rotated either clockwise or counter-clockwise (w.r.t to the p-r plane) to correctly align the prism. The #orientation variable is set to:
This is necessary for some input modules (e.g. #InputNek) which add high-order information or bounary conditions to faces.
Definition at line 1627 of file MeshElements.cpp.
References m_orientation, and Nektar::Utilities::Element::m_vertex.
Referenced by Prism().
| unsigned int Nektar::Utilities::Prism::m_orientation |
Orientation of prism; unchanged = 0; clockwise = 1; counter-clockwise = 2. This is set by OrientPrism.
Definition at line 1457 of file MeshElements.h.
Referenced by OrientPrism().
|
static |
1.8.1.2