Advanced Multi-Physics (AMP)
On-Line Documentation
Public Member Functions | Protected Attributes | List of all members
AMP::Operator::MechanicsElement Class Referenceabstract

#include <MechanicsElement.h>

Inheritance diagram for AMP::Operator::MechanicsElement:
Inheritance graph
[legend]

Public Member Functions

virtual void apply ()=0
 
unsigned int getNumberOfGaussPoints ()
 
void initializeForCurrentElement (const libMesh::Elem *elem, std::shared_ptr< MechanicsMaterialModel > materialModel)
 
 MechanicsElement (std::shared_ptr< const ElementOperationParameters > params)
 
virtual ~MechanicsElement ()
 

Protected Attributes

const libMesh::Elem * d_elem
 
std::shared_ptr< libMesh::FEBase > d_fe
 
std::shared_ptr< libMesh::FEType > d_feType
 
int d_iDebugPrintInfoLevel
 
std::shared_ptr< MechanicsMaterialModeld_materialModel
 
std::shared_ptr< libMesh::QBase > d_qrule
 
bool d_useFlanaganTaylorElem
 
bool d_useJaumannRate
 
bool d_useReducedIntegration
 

Detailed Description

An abstract base class for representing the element level computation performed within a finite element operator for modelling solid mechanics (elasticity/plasticity). This class just handles some of the data and operations that is required by both the linear and nonlinear mechanics operators to perform their respective element level computations. The actual computation is implemented in the apply() function in the derived classes.

See also
MechanicsLinearFEOperator
MechanicsNonlinearFEOperator

Definition at line 34 of file MechanicsElement.h.

Constructor & Destructor Documentation

◆ MechanicsElement()

AMP::Operator::MechanicsElement::MechanicsElement ( std::shared_ptr< const ElementOperationParameters params)
explicit

Constructor. This builds the finite element shape functions. This reads the values for the following keys from the database object contained in the parameter object, params: 1) USE_REDUCED_INTEGRATION (false by default) 2) FE_ORDER (FIRST by default) - Order of the polynomial used in the shape functions. 3) FE_FAMILY (LAGRANGE by default) - Family of the polynomial used in the shape functions. 4) QRULE_TYPE (QGAUSS by default) - Type of numerical integration scheme used. 5) QRULE_ORDER (DEFAULT by default) - Order of the numerical integration scheme.

◆ ~MechanicsElement()

virtual AMP::Operator::MechanicsElement::~MechanicsElement ( )
inlinevirtual

Destructor.

Definition at line 52 of file MechanicsElement.h.

Member Function Documentation

◆ apply()

virtual void AMP::Operator::ElementOperation::apply ( )
pure virtualinherited

This is where the element level computation in a FE operator is performed. Each derived class must provide an implementation that is appropriate for use within its respective FE operator.

Implemented in AMP::Operator::DiffusionLinearElement, AMP::Operator::DiffusionNonlinearElement, AMP::Operator::MassLinearElement, AMP::Operator::SourceNonlinearElement, AMP::Operator::MechanicsLinearElement, AMP::Operator::MechanicsLinearUpdatedLagrangianElement, AMP::Operator::MechanicsNonlinearElement, and AMP::Operator::MechanicsNonlinearUpdatedLagrangianElement.

◆ getNumberOfGaussPoints()

unsigned int AMP::Operator::MechanicsElement::getNumberOfGaussPoints ( )
inline
Returns
Number of gauss quadrature points per element

Definition at line 72 of file MechanicsElement.h.

References d_qrule.

◆ initializeForCurrentElement()

void AMP::Operator::MechanicsElement::initializeForCurrentElement ( const libMesh::Elem *  elem,
std::shared_ptr< MechanicsMaterialModel materialModel 
)
inline

This function is used by the Linear and Nonlinear mechanics FEOperators to pass the current element and material model to this class during the finite element assembly operation.

Parameters
[in]elemPointer to the current element within a finite element assembly.
[in]materialModelShared pointer to the mechanics material model used in the current element.

Definition at line 62 of file MechanicsElement.h.

References d_elem, and d_materialModel.

Member Data Documentation

◆ d_elem

const libMesh::Elem* AMP::Operator::MechanicsElement::d_elem
protected

Pointer to the current element within the finite element assembly.

Definition at line 90 of file MechanicsElement.h.

Referenced by initializeForCurrentElement().

◆ d_fe

std::shared_ptr<libMesh::FEBase> AMP::Operator::MechanicsElement::d_fe
protected

◆ d_feType

std::shared_ptr<libMesh::FEType> AMP::Operator::MechanicsElement::d_feType
protected

Type of polynomial used for the finite element shape functions. This includes both the polynomial order: First order/Second order etc. and polynomial family: Lagrange/Hierarchic/Hermite etc.

Definition at line 78 of file MechanicsElement.h.

◆ d_iDebugPrintInfoLevel

int AMP::Operator::MechanicsElement::d_iDebugPrintInfoLevel
protected

< Inside Green-Naghdi stress-rate whether to use Flanagan Taylor stress-srate or not.

Definition at line 105 of file MechanicsElement.h.

◆ d_materialModel

std::shared_ptr<MechanicsMaterialModel> AMP::Operator::MechanicsElement::d_materialModel
protected

Shared pointer to the mechanics material model used in the current element.

Definition at line 93 of file MechanicsElement.h.

Referenced by initializeForCurrentElement().

◆ d_qrule

std::shared_ptr<libMesh::QBase> AMP::Operator::MechanicsElement::d_qrule
protected

Quadtrature rule used for numerical integration.

Definition at line 87 of file MechanicsElement.h.

Referenced by getNumberOfGaussPoints().

◆ d_useFlanaganTaylorElem

bool AMP::Operator::MechanicsElement::d_useFlanaganTaylorElem
protected

◆ d_useJaumannRate

bool AMP::Operator::MechanicsElement::d_useJaumannRate
protected

◆ d_useReducedIntegration

bool AMP::Operator::MechanicsElement::d_useReducedIntegration
protected

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