Advanced Multi-Physics (AMP)
On-Line Documentation
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
AMP::Discretization::createLibmeshElements Class Reference

#include <createLibmeshElements.h>

Public Member Functions

 createLibmeshElements ()
 Empty constructor.
 
const libMesh::Elem * getElement (const AMP::Mesh::MeshElementID &id) const
 
const libMesh::FEBase * getFEBase (const AMP::Mesh::MeshElementID &id) const
 
const libMesh::FEType * getFEType () const
 
const libMesh::QBase * getQBase (const AMP::Mesh::MeshElementID &id) const
 
void reinit (const AMP::Mesh::MeshIterator &iterator)
 
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.
 

Static Public Member Functions

static libMesh::Elem * createElement (const AMP::Mesh::MeshElement &elem)
 

Private Attributes

std::shared_ptr< libMesh::FEBase > d_base
 
std::vector< libMesh::FEBase * > d_base_element
 
std::vector< libMesh::Elem * > d_elements
 
std::vector< AMP::Mesh::MeshElementIDd_ids
 
std::vector< size_t > d_index
 
AMP::Mesh::MeshElementID d_last_id
 
libMeshEnums::Order d_qorder
 
libMeshEnums::QuadratureType d_qtype
 
std::shared_ptr< libMesh::QBase > d_rule
 
std::vector< libMesh::QBase * > d_rule_element
 
std::shared_ptr< const libMesh::FEType > d_type
 

Detailed Description

This is a helper class to create libmesh elements given a MeshIterator. It will cache the elements and allow for fast O(log(n)) access to the libmesh element given the MeshElementID.

Definition at line 31 of file createLibmeshElements.h.

Constructor & Destructor Documentation

◆ createLibmeshElements()

AMP::Discretization::createLibmeshElements::createLibmeshElements ( )

Empty constructor.

◆ ~createLibmeshElements()

virtual AMP::Discretization::createLibmeshElements::~createLibmeshElements ( )
virtual

De-constructor.

Member Function Documentation

◆ createElement()

static libMesh::Elem * AMP::Discretization::createLibmeshElements::createElement ( const AMP::Mesh::MeshElement elem)
static

Create a libmesh element from an AMP element (user must deallocate)

◆ getElement()

const libMesh::Elem * AMP::Discretization::createLibmeshElements::getElement ( const AMP::Mesh::MeshElementID id) const

This function returns the libmesh element given a MeshElementID

Parameters
[in]idMeshElementID for the element of interest

◆ getFEBase()

const libMesh::FEBase * AMP::Discretization::createLibmeshElements::getFEBase ( const AMP::Mesh::MeshElementID id) const

This function returns the FE base given a MeshElementID

Parameters
[in]idMeshElementID for the element of interest

◆ getFEType()

const libMesh::FEType * AMP::Discretization::createLibmeshElements::getFEType ( ) const
inline

This function returns the FE type used to build the elements

Definition at line 90 of file createLibmeshElements.h.

References d_type.

◆ getQBase()

const libMesh::QBase * AMP::Discretization::createLibmeshElements::getQBase ( const AMP::Mesh::MeshElementID id) const

This function returns the quadrature rule used to build the elements

Parameters
[in]idMeshElementID for the element of interest

◆ reinit() [1/2]

void AMP::Discretization::createLibmeshElements::reinit ( const AMP::Mesh::MeshIterator iterator)

This function initializes / re-intializes the class to create the libmesh elements for all of the MeshElements in the given iterator. Note: This version only caches the libmesh elements

Parameters
[in]iteratorMeshElementIterator containing the elements of interest

◆ reinit() [2/2]

void AMP::Discretization::createLibmeshElements::reinit ( const AMP::Mesh::MeshIterator iterator,
libMeshEnums::QuadratureType  qtype,
libMeshEnums::Order  qorder,
std::shared_ptr< const libMesh::FEType >  type,
bool  cache_fe = false 
)

This function initializes / re-intializes the class to create the libmesh elements and the FE base for all of the MeshElements in the given iterator. Note: This version caches the libmesh elements and the rule and base, reinitializing with the element. This requires more memory.

Parameters
[in]iteratorMeshElementIterator containing the elements of interest
[in]qtypeType of the quadrature rule to use for the elements
[in]qorderOrder of the quadrature rule to use for the elements
[in]typeFE type to use for the elements
[in]cache_feDo we want to cahce fe operators (true) or reinitialize the the libmesh object (false). If we cache the operators it will increase performance but significantly increase memory requirements. Note: these functions are not thread safe.

Member Data Documentation

◆ d_base

std::shared_ptr<libMesh::FEBase> AMP::Discretization::createLibmeshElements::d_base
private

Definition at line 104 of file createLibmeshElements.h.

◆ d_base_element

std::vector<libMesh::FEBase *> AMP::Discretization::createLibmeshElements::d_base_element
private

Definition at line 107 of file createLibmeshElements.h.

◆ d_elements

std::vector<libMesh::Elem *> AMP::Discretization::createLibmeshElements::d_elements
private

Definition at line 106 of file createLibmeshElements.h.

◆ d_ids

std::vector<AMP::Mesh::MeshElementID> AMP::Discretization::createLibmeshElements::d_ids
private

Definition at line 98 of file createLibmeshElements.h.

◆ d_index

std::vector<size_t> AMP::Discretization::createLibmeshElements::d_index
private

Definition at line 99 of file createLibmeshElements.h.

◆ d_last_id

AMP::Mesh::MeshElementID AMP::Discretization::createLibmeshElements::d_last_id
mutableprivate

Definition at line 103 of file createLibmeshElements.h.

◆ d_qorder

libMeshEnums::Order AMP::Discretization::createLibmeshElements::d_qorder
private

Definition at line 101 of file createLibmeshElements.h.

◆ d_qtype

libMeshEnums::QuadratureType AMP::Discretization::createLibmeshElements::d_qtype
private

Definition at line 100 of file createLibmeshElements.h.

◆ d_rule

std::shared_ptr<libMesh::QBase> AMP::Discretization::createLibmeshElements::d_rule
private

Definition at line 105 of file createLibmeshElements.h.

◆ d_rule_element

std::vector<libMesh::QBase *> AMP::Discretization::createLibmeshElements::d_rule_element
private

Definition at line 108 of file createLibmeshElements.h.

◆ d_type

std::shared_ptr<const libMesh::FEType> AMP::Discretization::createLibmeshElements::d_type
private

Definition at line 102 of file createLibmeshElements.h.

Referenced by getFEType().


The documentation for this class was generated from the following file:



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:42.
Comments on this page