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

#include <MechanicsLinearElement.h>

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

Public Member Functions

void apply () override
 
void computeStressAndStrain (const std::vector< double > &dispVec, std::vector< double > &stressVec, std::vector< double > &strainVec)
 
unsigned int getNumberOfGaussPoints ()
 
void initializeForCurrentElement (const libMesh::Elem *elem, std::shared_ptr< MechanicsMaterialModel > materialModel)
 
 MechanicsLinearElement (std::shared_ptr< const ElementOperationParameters > params)
 Constructor.
 
void printStressAndStrain (FILE *fp, const std::vector< double > &dispVec)
 
void setElementStiffnessMatrix (std::vector< std::vector< double > > &elementStiffnessMatrix)
 
virtual ~MechanicsLinearElement ()
 Destructor.
 

Protected Member Functions

void apply_Normal ()
 
void apply_Reduced ()
 

Protected Attributes

const std::vector< std::vector< libMesh::RealGradient > > * d_dphi
 
const libMesh::Elem * d_elem
 
std::vector< std::vector< double > > * d_elementStiffnessMatrix
 
std::shared_ptr< libMesh::FEBase > d_fe
 
std::shared_ptr< libMesh::FEType > d_feType
 
int d_iDebugPrintInfoLevel
 
const std::vector< libMesh::Real > * d_JxW
 
std::shared_ptr< MechanicsMaterialModeld_materialModel
 
std::shared_ptr< libMesh::QBase > d_qrule
 
bool d_useFlanaganTaylorElem
 
bool d_useJaumannRate
 
bool d_useReducedIntegration
 
const std::vector< libMesh::Point > * d_xyz
 

Detailed Description

A class for representing the element level computation performed within a linear finite element operator for modelling solid mechanics. The linear operator could either be a linear elasticity operator or it could be the jacobian of a nonlinear elasticity/elasto-plasticity operator.

Definition at line 18 of file MechanicsLinearElement.h.

Constructor & Destructor Documentation

◆ MechanicsLinearElement()

AMP::Operator::MechanicsLinearElement::MechanicsLinearElement ( std::shared_ptr< const ElementOperationParameters params)
inlineexplicit

◆ ~MechanicsLinearElement()

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

Destructor.

Definition at line 33 of file MechanicsLinearElement.h.

Member Function Documentation

◆ apply()

void AMP::Operator::MechanicsLinearElement::apply ( )
inlineoverridevirtual

Element stiffness matrix computation.

Implements AMP::Operator::ElementOperation.

Definition at line 48 of file MechanicsLinearElement.h.

References apply_Normal(), apply_Reduced(), and AMP::Operator::MechanicsElement::d_useReducedIntegration.

◆ apply_Normal()

void AMP::Operator::MechanicsLinearElement::apply_Normal ( )
protected

Element stiffness matrix computation using normal integration scheme.

Referenced by apply().

◆ apply_Reduced()

void AMP::Operator::MechanicsLinearElement::apply_Reduced ( )
protected

Element stiffness matrix computation using reduced integration scheme.

Referenced by apply().

◆ computeStressAndStrain()

void AMP::Operator::MechanicsLinearElement::computeStressAndStrain ( const std::vector< double > &  dispVec,
std::vector< double > &  stressVec,
std::vector< double > &  strainVec 
)

Computes the stress and strain values at the Gauss points within the current element The 6 components of stress and strain at each Gauss point are arranged in the order: xx, yy, zz, yz, xz and xy.

Parameters
[in]dispVecDisplacements at the nodes of the current element.
[out]stressVecStresses at the Gauss points of the current element.
[out]strainVecStrains at the Gauss points of the current element.

◆ getNumberOfGaussPoints()

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

Definition at line 72 of file MechanicsElement.h.

References AMP::Operator::MechanicsElement::d_qrule.

◆ initializeForCurrentElement()

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

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 AMP::Operator::MechanicsElement::d_elem, and AMP::Operator::MechanicsElement::d_materialModel.

◆ printStressAndStrain()

void AMP::Operator::MechanicsLinearElement::printStressAndStrain ( FILE *  fp,
const std::vector< double > &  dispVec 
)

Writes the stess and strain values at the Gauss points within the current element to the file. The 6 components of stress and strain at each Gauss point are arranged in the order: xx, yy, zz, yz, xz and xy.

Parameters
[in]fpFile pointer
[in]dispVecDisplacements at the nodes of the current element.

◆ setElementStiffnessMatrix()

void AMP::Operator::MechanicsLinearElement::setElementStiffnessMatrix ( std::vector< std::vector< double > > &  elementStiffnessMatrix)
inline

This function is used by MechanicsLinearFEOperator to pass the address of the element stiffness matrix to this class.

Parameters
[in]elementStiffnessMatrixElement stiffness matrix

Definition at line 40 of file MechanicsLinearElement.h.

References d_elementStiffnessMatrix.

Member Data Documentation

◆ d_dphi

const std::vector<std::vector<libMesh::RealGradient> >* AMP::Operator::MechanicsLinearElement::d_dphi
protected

Spatial Derivatives of the shape functions at the Gauss points in the current element.

Definition at line 93 of file MechanicsLinearElement.h.

Referenced by MechanicsLinearElement().

◆ d_elem

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

Pointer to the current element within the finite element assembly.

Definition at line 90 of file MechanicsElement.h.

Referenced by AMP::Operator::MechanicsElement::initializeForCurrentElement().

◆ d_elementStiffnessMatrix

std::vector<std::vector<double> >* AMP::Operator::MechanicsLinearElement::d_elementStiffnessMatrix
protected

Element stiffness matrix.

Definition at line 99 of file MechanicsLinearElement.h.

Referenced by setElementStiffnessMatrix().

◆ d_fe

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

◆ d_feType

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

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
protectedinherited

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

Definition at line 105 of file MechanicsElement.h.

◆ d_JxW

const std::vector<libMesh::Real>* AMP::Operator::MechanicsLinearElement::d_JxW
protected

Product of the determinant of Jacobian and the quadrature weight at the Gauss points in the current element.

Definition at line 89 of file MechanicsLinearElement.h.

Referenced by MechanicsLinearElement().

◆ d_materialModel

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

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

Definition at line 93 of file MechanicsElement.h.

Referenced by AMP::Operator::MechanicsElement::initializeForCurrentElement().

◆ d_qrule

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

Quadtrature rule used for numerical integration.

Definition at line 87 of file MechanicsElement.h.

Referenced by AMP::Operator::MechanicsElement::getNumberOfGaussPoints().

◆ d_useFlanaganTaylorElem

bool AMP::Operator::MechanicsElement::d_useFlanaganTaylorElem
protectedinherited

◆ d_useJaumannRate

bool AMP::Operator::MechanicsElement::d_useJaumannRate
protectedinherited

A flag that checks whether to use Jaumann Rate in Updated Lagrangian formulation or not.

Definition at line 97 of file MechanicsElement.h.

Referenced by MechanicsLinearElement(), AMP::Operator::MechanicsNonlinearElement::MechanicsNonlinearElement(), and AMP::Operator::MechanicsNonlinearUpdatedLagrangianElement::resetElementInfo().

◆ d_useReducedIntegration

bool AMP::Operator::MechanicsElement::d_useReducedIntegration
protectedinherited

◆ d_xyz

const std::vector<libMesh::Point>* AMP::Operator::MechanicsLinearElement::d_xyz
protected

Locations of the Gauss points in the current element.

Definition at line 97 of file MechanicsLinearElement.h.

Referenced by MechanicsLinearElement().


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