Advanced Multi-Physics (AMP)
On-Line Documentation
createLibmeshElements.h
Go to the documentation of this file.
1#ifndef included_AMP_createLibmeshElements
2#define included_AMP_createLibmeshElements
3
4// AMP headers
5#include "AMP/AMP_TPLs.h"
6#include "AMP/mesh/MeshIterator.h"
7
8
9#ifdef AMP_USE_LIBMESH
10
11
12// Libmesh headers
14 #include "libmesh/libmesh_config.h"
15 #undef LIBMESH_ENABLE_REFERENCE_COUNTING
16 #include "libmesh/elem.h"
17 #include "libmesh/enum_quadrature_type.h"
18 #include "libmesh/fe_base.h"
19 #include "libmesh/fe_type.h"
21
22
23namespace AMP::Discretization {
24
25
32{
33public:
36
39
46 void reinit( const AMP::Mesh::MeshIterator &iterator );
47
63 void reinit( const AMP::Mesh::MeshIterator &iterator,
64 libMeshEnums::QuadratureType qtype,
65 libMeshEnums::Order qorder,
66 std::shared_ptr<const libMesh::FEType> type,
67 bool cache_fe = false );
68
73 const libMesh::Elem *getElement( const AMP::Mesh::MeshElementID &id ) const;
74
79 const libMesh::FEBase *getFEBase( const AMP::Mesh::MeshElementID &id ) const;
80
85 const libMesh::QBase *getQBase( const AMP::Mesh::MeshElementID &id ) const;
86
90 const libMesh::FEType *getFEType() const { return d_type.get(); }
91
95 static libMesh::Elem *createElement( const AMP::Mesh::MeshElement &elem );
96
97private:
98 std::vector<AMP::Mesh::MeshElementID> d_ids;
99 std::vector<size_t> d_index;
100 libMeshEnums::QuadratureType d_qtype;
101 libMeshEnums::Order d_qorder;
102 std::shared_ptr<const libMesh::FEType> d_type;
104 std::shared_ptr<libMesh::FEBase> d_base;
105 std::shared_ptr<libMesh::QBase> d_rule;
106 std::vector<libMesh::Elem *> d_elements;
107 std::vector<libMesh::FEBase *> d_base_element;
108 std::vector<libMesh::QBase *> d_rule_element;
109};
110} // namespace AMP::Discretization
111
112#endif
113#endif
std::vector< libMesh::FEBase * > d_base_element
const libMesh::FEBase * getFEBase(const AMP::Mesh::MeshElementID &id) const
std::shared_ptr< libMesh::FEBase > d_base
static libMesh::Elem * createElement(const AMP::Mesh::MeshElement &elem)
std::vector< libMesh::QBase * > d_rule_element
void reinit(const AMP::Mesh::MeshIterator &iterator, libMeshEnums::QuadratureType qtype, libMeshEnums::Order qorder, std::shared_ptr< const libMesh::FEType > type, bool cache_fe=false)
virtual ~createLibmeshElements()
De-constructor.
const libMesh::QBase * getQBase(const AMP::Mesh::MeshElementID &id) const
const libMesh::Elem * getElement(const AMP::Mesh::MeshElementID &id) const
std::vector< AMP::Mesh::MeshElementID > d_ids
std::shared_ptr< const libMesh::FEType > d_type
void reinit(const AMP::Mesh::MeshIterator &iterator)
A class used to iterate over elements in a Mesh.
#define DISABLE_WARNINGS
Re-enable warnings.
#define ENABLE_WARNINGS
Suppress all warnings.
A structure used to identify the mesh element.
Definition MeshID.h:156



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:40.
Comments on this page