1#ifndef included_AMP_libmeshMeshElement
2#define included_AMP_libmeshMeshElement
5#include "AMP/mesh/MeshElement.h"
6#include "AMP/mesh/libmesh/libmeshMesh.h"
12#include "libmesh/libmesh_config.h"
13#undef LIBMESH_ENABLE_REFERENCE_COUNTING
14#include "libmesh/elem.h"
21class libmeshElemIterator;
22class libmeshNodeIterator;
54 inline std::string
elementClass()
const override {
return "libmeshMeshElement"; }
130 std::shared_ptr<libMesh::Elem> element,
136 std::unique_ptr<MeshElement>
clone()
const override;
143 std::shared_ptr<libMesh::Elem>
ptr2;
A pointer class to wrap a MeshElementVector.
A derived class used to define a mesh element.
bool isInBlock(int id) const override
Check if the current element is in the given block.
virtual ~libmeshMeshElement()
De-constructor for a MeshElement.
const libmeshMesh * d_mesh
Point centroid() const override
Return the centroid of the element.
const typeID & getTypeID() const override
Return the typeID of the underlying element.
MeshElementID globalID() const override
Return the unique global ID of the element.
Point norm() const override
Return the normal to the current element (does not apply to all elements)
libmeshMeshElement(int dim, GeomType type, void *element, unsigned int rank, MeshID meshID, const libmeshMesh *mesh)
bool containsPoint(const Point &pos, double TOL=1e-12) const override
Return true if the element contains the point.
std::shared_ptr< libMesh::Elem > ptr2
Point coord() const override
Return the coordinates of all vertices composing the element.
libmeshMeshElement(int dim, GeomType type, std::shared_ptr< libMesh::Elem > element, unsigned int rank, MeshID meshID, const libmeshMesh *mesh)
ElementListPtr getNeighbors() const override
Return the elements neighboring the current element.
int getElementsID(const GeomType type, MeshElementID *ID) const override
Return the IDs of the elements composing the current element.
ElementListPtr getElements(const GeomType type) const override
Return the elements composing the current element.
bool isOnSurface() const override
Check if the element is on the surface.
bool isOnBoundary(int id) const override
Check if the current element is on the given boundary.
const void * get() const
Return the raw pointer to the element/node (if it exists)
double volume() const override
Return the volume of the current element (does not apply to vertices)
std::unique_ptr< MeshElement > clone() const override
Clone the iterator.
libmeshMeshElement()
Empty constructor for a MeshElement.
libmeshMeshElement & operator=(const libmeshMeshElement &)
Assignment operator.
libmeshMeshElement(const libmeshMeshElement &)
Copy constructor.
std::string elementClass() const override
Return the element class.
A concrete mesh class for libMesh.
GeomType
Enumeration for basic mesh-based quantities.
A structure used to identify the mesh element.
A structure used to identify the mesh.
Class to store type info.