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

#include <MechanicsLinearUpdatedLagrangianElement.h>

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

Public Member Functions

void apply () override
 
void assignReferenceXYZ (const std::vector< double > &elementRefXYZ)
 
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)
 
void initializeReferenceXYZ (std::vector< double > &elementRefXYZ)
 
 MechanicsLinearUpdatedLagrangianElement (std::shared_ptr< const ElementOperationParameters > params)
 Constructor.
 
void printStressAndStrain (FILE *fp, const std::vector< double > &dispVec)
 
void setElementStiffnessMatrix (std::vector< std::vector< double > > &elementStiffnessMatrix)
 
void setElementVectors (const std::vector< std::vector< double > > &elementInputVectors)
 
virtual ~MechanicsLinearUpdatedLagrangianElement ()
 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_elementInputVectors
 
std::vector< double > d_elementRefXYZ
 
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
 
bool d_onePointShearIntegration
 
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 21 of file MechanicsLinearUpdatedLagrangianElement.h.

Constructor & Destructor Documentation

◆ MechanicsLinearUpdatedLagrangianElement()

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

◆ ~MechanicsLinearUpdatedLagrangianElement()

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

Destructor.

Definition at line 36 of file MechanicsLinearUpdatedLagrangianElement.h.

Member Function Documentation

◆ apply()

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

◆ apply_Normal()

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

Element stiffness matrix computation using normal integration scheme.

Referenced by apply().

◆ apply_Reduced()

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

Element stiffness matrix computation using reduced integration scheme.

Referenced by apply().

◆ assignReferenceXYZ()

void AMP::Operator::MechanicsLinearUpdatedLagrangianElement::assignReferenceXYZ ( const std::vector< double > &  elementRefXYZ)
inline

Assign the reference x, y and z coordinates for the current element.

Definition at line 106 of file MechanicsLinearUpdatedLagrangianElement.h.

References d_elementRefXYZ.

◆ computeStressAndStrain()

void AMP::Operator::MechanicsLinearUpdatedLagrangianElement::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.

◆ initializeReferenceXYZ()

void AMP::Operator::MechanicsLinearUpdatedLagrangianElement::initializeReferenceXYZ ( std::vector< double > &  elementRefXYZ)

Computes the deformation gradient at (n+1)-th time step. void computeDeformationGradientLin(const std::vector<std::vector<libMesh::RealGradient> > & dphi, const std::vector<Point> & xyz, unsigned int num_nodes, unsigned int qp, double F[3][3]); Initializes the reference x, y and z coordinates.

◆ printStressAndStrain()

void AMP::Operator::MechanicsLinearUpdatedLagrangianElement::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::MechanicsLinearUpdatedLagrangianElement::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 43 of file MechanicsLinearUpdatedLagrangianElement.h.

References d_elementStiffnessMatrix.

◆ setElementVectors()

void AMP::Operator::MechanicsLinearUpdatedLagrangianElement::setElementVectors ( const std::vector< std::vector< double > > &  elementInputVectors)
inline

This function is used by MechanicsLinearFEOperator to pass the address of the element Input vector to this class.

Parameters
[in]elementInputVectorsElement input vector

Definition at line 86 of file MechanicsLinearUpdatedLagrangianElement.h.

References d_elementInputVectors.

Member Data Documentation

◆ d_dphi

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

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

Definition at line 126 of file MechanicsLinearUpdatedLagrangianElement.h.

Referenced by MechanicsLinearUpdatedLagrangianElement().

◆ 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_elementInputVectors

std::vector<std::vector<double> > AMP::Operator::MechanicsLinearUpdatedLagrangianElement::d_elementInputVectors
protected

Element input vectors (Displacement, temperature, burnup etc).

Definition at line 134 of file MechanicsLinearUpdatedLagrangianElement.h.

Referenced by setElementVectors().

◆ d_elementRefXYZ

std::vector<double> AMP::Operator::MechanicsLinearUpdatedLagrangianElement::d_elementRefXYZ
protected

Definition at line 140 of file MechanicsLinearUpdatedLagrangianElement.h.

Referenced by assignReferenceXYZ().

◆ d_elementStiffnessMatrix

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

Element stiffness matrix.

Definition at line 132 of file MechanicsLinearUpdatedLagrangianElement.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::MechanicsLinearUpdatedLagrangianElement::d_JxW
protected

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

Definition at line 122 of file MechanicsLinearUpdatedLagrangianElement.h.

Referenced by MechanicsLinearUpdatedLagrangianElement().

◆ 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_onePointShearIntegration

bool AMP::Operator::MechanicsLinearUpdatedLagrangianElement::d_onePointShearIntegration
protected

◆ 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

◆ d_useReducedIntegration

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

A flag that is true if reduced integration scheme is used and false otherwise.

Definition at line 75 of file MechanicsElement.h.

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

◆ d_xyz

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

Locations of the Gauss points in the current element.

Definition at line 130 of file MechanicsLinearUpdatedLagrangianElement.h.

Referenced by MechanicsLinearUpdatedLagrangianElement().


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