Nektar++
|
A 2-dimensional three-sided element. More...
#include <Triangle.h>
Public Member Functions | |
NEKMESHUTILS_EXPORT | Triangle (ElmtConfig pConf, std::vector< NodeSharedPtr > pNodeList, std::vector< int > pTagList) |
Create a triangle element. More... | |
NEKMESHUTILS_EXPORT | Triangle (const Triangle &pSrc) |
virtual NEKMESHUTILS_EXPORT | ~Triangle () |
virtual NEKMESHUTILS_EXPORT SpatialDomains::GeometrySharedPtr | GetGeom (int coordDim) |
Generate a Nektar++ geometry object for this element. More... | |
virtual NEKMESHUTILS_EXPORT void | GetCurvedNodes (std::vector< NodeSharedPtr > &nodeList) const |
get list of volume interior nodes More... | |
virtual NEKMESHUTILS_EXPORT StdRegions::Orientation | GetEdgeOrient (int edgeId, EdgeSharedPtr edge) |
Get the edge orientation of edge with respect to the local element, which lies at edge index edgeId . More... | |
virtual NEKMESHUTILS_EXPORT void | MakeOrder (int order, SpatialDomains::GeometrySharedPtr geom, LibUtilities::PointsType pType, int coordDim, int &id, bool justConfig=false) |
Insert interior (i.e. volume) points into this element to make the geometry an order order representation. More... | |
NEKMESHUTILS_EXPORT Array < OneD, NekDouble > | Normal (bool inward=false) |
returns the normal to the element More... | |
Public Member Functions inherited from Nektar::NekMeshUtils::Element | |
NEKMESHUTILS_EXPORT | Element (ElmtConfig pConf, unsigned int pNumNodes, unsigned int pGotNodes) |
NEKMESHUTILS_EXPORT unsigned int | GetId () const |
Returns the ID of the element (or associated edge or face for boundary elements). More... | |
NEKMESHUTILS_EXPORT unsigned int | GetDim () const |
Returns the expansion dimension of the element. More... | |
NEKMESHUTILS_EXPORT ElmtConfig | GetConf () const |
Returns the configuration of the element. More... | |
NEKMESHUTILS_EXPORT LibUtilities::ShapeType | GetShapeType () const |
returns the shapetype More... | |
NEKMESHUTILS_EXPORT std::string | GetTag () const |
Returns the tag which defines the element shape. More... | |
NEKMESHUTILS_EXPORT NodeSharedPtr | GetVertex (unsigned int i) const |
Access a vertex node. More... | |
NEKMESHUTILS_EXPORT EdgeSharedPtr | GetEdge (unsigned int i) const |
Access an edge. More... | |
NEKMESHUTILS_EXPORT FaceSharedPtr | GetFace (unsigned int i) const |
Access a face. More... | |
NEKMESHUTILS_EXPORT std::vector< NodeSharedPtr > | GetVertexList () const |
Access the list of vertex nodes. More... | |
NEKMESHUTILS_EXPORT std::vector< EdgeSharedPtr > | GetEdgeList () const |
Access the list of edges. More... | |
NEKMESHUTILS_EXPORT std::vector< FaceSharedPtr > | GetFaceList () const |
Access the list of faces. More... | |
NEKMESHUTILS_EXPORT std::vector< NodeSharedPtr > | GetVolumeNodes () const |
Access the list of volume nodes. More... | |
NEKMESHUTILS_EXPORT void | SetVolumeNodes (std::vector< NodeSharedPtr > &nodes) |
NEKMESHUTILS_EXPORT LibUtilities::PointsType | GetCurveType () const |
NEKMESHUTILS_EXPORT void | SetCurveType (LibUtilities::PointsType cT) |
NEKMESHUTILS_EXPORT unsigned int | GetNodeCount () |
Returns the total number of nodes (vertices, edge nodes and face nodes and volume nodes). More... | |
NEKMESHUTILS_EXPORT std::vector< int > | GetTagList () const |
Access the list of tags associated with this element. More... | |
NEKMESHUTILS_EXPORT unsigned int | GetVertexCount () const |
Returns the number of vertices. More... | |
NEKMESHUTILS_EXPORT unsigned int | GetEdgeCount () const |
Returns the number of edges. More... | |
NEKMESHUTILS_EXPORT unsigned int | GetFaceCount () const |
Returns the number of faces. More... | |
NEKMESHUTILS_EXPORT void | SetId (unsigned int p) |
Change the ID of the element. More... | |
NEKMESHUTILS_EXPORT void | SetVertex (unsigned int p, NodeSharedPtr pNew, bool descend=true) |
Replace a vertex in the element. More... | |
NEKMESHUTILS_EXPORT void | SetEdge (unsigned int p, EdgeSharedPtr pNew, bool descend=true) |
Replace an edge in the element. More... | |
NEKMESHUTILS_EXPORT void | SetFace (unsigned int p, FaceSharedPtr pNew) |
Replace a face in the element. More... | |
NEKMESHUTILS_EXPORT void | SetEdgeLink (EdgeSharedPtr pLink) |
Set a correspondence between this element and an edge (2D boundary element). More... | |
NEKMESHUTILS_EXPORT EdgeSharedPtr | GetEdgeLink () |
Get correspondence between this element and an edge. More... | |
NEKMESHUTILS_EXPORT void | SetFaceLink (FaceSharedPtr pLink) |
Set a correspondence between this element and a face (3D boundary element). More... | |
NEKMESHUTILS_EXPORT FaceSharedPtr | GetFaceLink () |
Get correspondence between this element and a face. More... | |
NEKMESHUTILS_EXPORT void | SetBoundaryLink (int i, int j) |
Set a correspondence between edge or face i and its representative boundary element m->element[expDim-1][j]. More... | |
NEKMESHUTILS_EXPORT int | GetBoundaryLink (int i) |
Get the location of the boundary face/edge i for this element. More... | |
NEKMESHUTILS_EXPORT void | SetTagList (const std::vector< int > &tags) |
Set the list of tags associated with this element. More... | |
virtual NEKMESHUTILS_EXPORT std::string | GetXmlString () |
Generate a list of vertices (1D), edges (2D), or faces (3D). More... | |
NEKMESHUTILS_EXPORT std::string | GetXmlCurveString () |
Generates a string listing the coordinates of all nodes associated with this element. More... | |
NEKMESHUTILS_EXPORT int | GetMaxOrder () |
Obtain the order of an element by looking at edges. More... | |
virtual NEKMESHUTILS_EXPORT int | GetFaceVertex (int i, int j) |
Returns the local index of vertex j of face i . More... | |
NEKMESHUTILS_EXPORT 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. More... | |
static NEKMESHUTILS_EXPORT unsigned int | GetNumNodes (ElmtConfig pConf) |
Return the number of nodes defining a triangle. More... | |
Static Public Attributes | |
static LibUtilities::ShapeType | m_type |
Element type. More... | |
Additional Inherited Members | |
Public Attributes inherited from Nektar::NekMeshUtils::Element | |
CADObjectSharedPtr | m_parentCAD |
Protected Attributes inherited from Nektar::NekMeshUtils::Element | |
unsigned int | m_id |
ID of the element. More... | |
unsigned int | m_dim |
Dimension of the element. More... | |
ElmtConfig | m_conf |
Contains configuration of the element. More... | |
std::string | m_tag |
Tag character describing the element. More... | |
std::vector< int > | m_taglist |
List of integers specifying properties of the element. More... | |
std::vector< NodeSharedPtr > | m_vertex |
List of element vertex nodes. More... | |
std::vector< EdgeSharedPtr > | m_edge |
List of element edges. More... | |
std::vector< FaceSharedPtr > | m_face |
List of element faces. More... | |
std::vector< NodeSharedPtr > | m_volumeNodes |
List of element volume nodes. More... | |
LibUtilities::PointsType | m_curveType |
Volume curve type. More... | |
EdgeSharedPtr | m_edgeLink |
Pointer to the corresponding edge if element is a 2D boundary. More... | |
FaceSharedPtr | m_faceLink |
Pointer to the corresponding face if element is a 3D boundary. More... | |
std::map< int, int > | m_boundaryLinks |
Array mapping faces/edges to the location of the appropriate boundary elements in m->element. More... | |
SpatialDomains::GeometrySharedPtr | m_geom |
Nektar++ geometry object for this element. More... | |
A 2-dimensional three-sided element.
Definition at line 51 of file MeshElements/Triangle.h.
Triangle::Triangle | ( | ElmtConfig | pConf, |
std::vector< NodeSharedPtr > | pNodeList, | ||
std::vector< int > | pTagList | ||
) |
Create a triangle element.
Definition at line 56 of file MeshElements/Triangle.cpp.
References Nektar::LibUtilities::eNodalTriEvenlySpaced, Nektar::iterator, Nektar::NekMeshUtils::Element::m_conf, Nektar::NekMeshUtils::Element::m_curveType, Nektar::NekMeshUtils::Element::m_dim, Nektar::NekMeshUtils::Element::m_edge, Nektar::NekMeshUtils::ElmtConfig::m_edgeCurveType, Nektar::NekMeshUtils::ElmtConfig::m_faceNodes, Nektar::NekMeshUtils::ElmtConfig::m_order, Nektar::NekMeshUtils::ElmtConfig::m_reorient, Nektar::NekMeshUtils::Element::m_tag, Nektar::NekMeshUtils::Element::m_taglist, Nektar::NekMeshUtils::Element::m_vertex, and Nektar::NekMeshUtils::Element::m_volumeNodes.
Referenced by create().
NEKMESHUTILS_EXPORT Nektar::NekMeshUtils::Triangle::Triangle | ( | const Triangle & | pSrc | ) |
|
inlinevirtual |
Definition at line 69 of file MeshElements/Triangle.h.
|
inlinestatic |
Creates an instance of this class.
Definition at line 55 of file MeshElements/Triangle.h.
References Triangle().
|
virtual |
get list of volume interior nodes
Reimplemented from Nektar::NekMeshUtils::Element.
Definition at line 174 of file MeshElements/Triangle.cpp.
References CellMLToNektar.pycml::copy(), Nektar::NekMeshUtils::Element::m_edge, Nektar::NekMeshUtils::Element::m_vertex, and Nektar::NekMeshUtils::Element::m_volumeNodes.
|
virtual |
Get the edge orientation of edge
with respect to the local element, which lies at edge index edgeId
.
Reimplemented from Nektar::NekMeshUtils::Element.
Definition at line 143 of file MeshElements/Triangle.cpp.
References ASSERTL1, Nektar::StdRegions::eBackwards, Nektar::StdRegions::eForwards, Nektar::StdRegions::eNoOrientation, and Nektar::NekMeshUtils::Element::m_vertex.
|
virtual |
Generate a Nektar++ geometry object for this element.
Reimplemented from Nektar::NekMeshUtils::Element.
Definition at line 120 of file MeshElements/Triangle.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::SpatialDomains::SegGeom::GetEdgeOrientation(), Nektar::NekMeshUtils::Element::m_edge, Nektar::NekMeshUtils::Element::m_id, and Nektar::NekMeshUtils::Element::m_vertex.
|
static |
Return the number of nodes defining a triangle.
Definition at line 165 of file MeshElements/Triangle.cpp.
References Nektar::NekMeshUtils::ElmtConfig::m_faceNodes, and Nektar::NekMeshUtils::ElmtConfig::m_order.
Referenced by Nektar::Utilities::InputGmsh::GetNnodes().
|
virtual |
Insert interior (i.e. volume) points into this element to make the geometry an order order
representation.
order | The desired polynomial order. |
geom | The geometry object used to describe the curvature mapping. |
edgeType | The points distribution to use on the volume. |
coordDim | The coordinate (i.e. space) dimension. |
id | Counter which should be incremented to supply consistent vertex IDs. |
justConfig | If true, then the configuration Element::m_conf will be updated but no nodes will be generated. This is used when considering boundary elements, which just require copying of face or edge interior nodes. |
Reimplemented from Nektar::NekMeshUtils::Element.
Definition at line 201 of file MeshElements/Triangle.cpp.
References ASSERTL1, Nektar::LibUtilities::PointsKey::GetPointsDim(), Nektar::NekMeshUtils::Element::m_conf, Nektar::NekMeshUtils::Element::m_curveType, Nektar::NekMeshUtils::ElmtConfig::m_faceNodes, Nektar::NekMeshUtils::ElmtConfig::m_order, Nektar::NekMeshUtils::ElmtConfig::m_volumeNodes, Nektar::NekMeshUtils::Element::m_volumeNodes, class_topology::Node, and Nektar::LibUtilities::PointsManager().
returns the normal to the element
Reimplemented from Nektar::NekMeshUtils::Element.
Definition at line 269 of file MeshElements/Triangle.cpp.
References Nektar::NekMeshUtils::CADOrientation::eBackwards, Nektar::NekMeshUtils::Element::m_parentCAD, and Nektar::NekMeshUtils::Element::m_vertex.
|
static |