#include <MechanicsNonlinearUpdatedLagrangianElement.h>

Public Member Functions | |
| void | apply () override |
| void | assignReferenceXYZ (const std::vector< double > &elementRefXYZ) |
| void | computeDeformationGradient (const std::vector< std::vector< libMesh::RealGradient > > &dphi, const std::vector< libMesh::Point > &xyz, unsigned int num_nodes, unsigned int qp, double F[3][3]) |
| void | computeStressAndStrain (const std::vector< std::vector< double > > &inputVec, 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) |
| void | initMaterialModel (const std::vector< double > &initTempVector) |
| MechanicsNonlinearUpdatedLagrangianElement (std::shared_ptr< const ElementOperationParameters > params) | |
| Constructor. | |
| void | preNonlinearElementInit () |
| void | printStressAndStrain (FILE *fp, const std::vector< std::vector< double > > &inputVec) |
| void | resetElementInfo () |
| void | setElementVectors (const std::vector< std::vector< double > > &elementInputVectors, const std::vector< std::vector< double > > &elementInputVectors_pre, std::vector< double > &elementOutputVector) |
| void | updateMaterialModel (MechanicsNonlinearElement::MaterialUpdateType type, const std::vector< std::vector< double > > &elementInputVectors, const std::vector< std::vector< double > > &elementInputVectors_pre) |
| void | zeroOutGaussPointCount () |
| virtual | ~MechanicsNonlinearUpdatedLagrangianElement () |
| Destructor. | |
Protected Member Functions | |
| void | apply_Normal () |
| void | apply_Reduced () |
| void | materialModelNonlinearGaussPointOperation (MechanicsNonlinearElement::MaterialUpdateType, const std::vector< std::vector< double > > &, double[3][3], double[3][3]) |
| void | materialModelPostNonlinearElementOperation (MechanicsNonlinearElement::MaterialUpdateType) |
| void | materialModelPostNonlinearGaussPointOperation (MechanicsNonlinearElement::MaterialUpdateType) |
| void | materialModelPreNonlinearElementOperation (MechanicsNonlinearElement::MaterialUpdateType) |
| void | materialModelPreNonlinearGaussPointOperation (MechanicsNonlinearElement::MaterialUpdateType) |
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< std::vector< double > > | d_elementInputVectors_pre |
| std::vector< double > * | d_elementOutputVector |
| std::vector< double > | d_elementRefXYZ |
| std::shared_ptr< libMesh::FEBase > | d_fe |
| std::shared_ptr< libMesh::FEType > | d_feType |
| int | d_gaussPtCnt |
| int | d_iDebugPrintInfoLevel |
| const std::vector< libMesh::Real > * | d_JxW |
| std::vector< double > | d_leftStretchV_n |
| std::vector< double > | d_leftStretchV_np1 |
| std::shared_ptr< MechanicsMaterialModel > | d_materialModel |
| bool | d_onePointShearIntegration |
| const std::vector< std::vector< libMesh::Real > > * | d_phi |
| std::shared_ptr< libMesh::QBase > | d_qrule |
| std::vector< double > | d_rotationR_n |
| std::vector< double > | d_rotationR_np1 |
| bool | d_useFlanaganTaylorElem |
| bool | d_useJaumannRate |
| bool | d_useReducedIntegration |
| const std::vector< libMesh::Point > * | d_xyz |
A class for representing the element level computation performed within a nonlinear updated lagrangian finite element operator for modelling solid mechanics.
Definition at line 20 of file MechanicsNonlinearUpdatedLagrangianElement.h.
|
inlineexplicit |
Constructor.
Definition at line 24 of file MechanicsNonlinearUpdatedLagrangianElement.h.
References d_dphi, AMP::Operator::MechanicsElement::d_fe, d_gaussPtCnt, d_JxW, d_onePointShearIntegration, d_phi, and d_xyz.
|
inlinevirtual |
Destructor.
Definition at line 42 of file MechanicsNonlinearUpdatedLagrangianElement.h.
|
inlineoverridevirtual |
Element residual vector computation.
Implements AMP::Operator::ElementOperation.
Definition at line 63 of file MechanicsNonlinearUpdatedLagrangianElement.h.
References apply_Normal(), apply_Reduced(), and AMP::Operator::MechanicsElement::d_useReducedIntegration.
|
protected |
Element residual vector computation using normal integration scheme.
Referenced by apply().
|
protected |
Element residual vector computation using reduced integration scheme.
Referenced by apply().
|
inline |
Assign the reference x, y and z coordinates for the current element.
Definition at line 146 of file MechanicsNonlinearUpdatedLagrangianElement.h.
References d_elementRefXYZ.
| void AMP::Operator::MechanicsNonlinearUpdatedLagrangianElement::computeDeformationGradient | ( | const std::vector< std::vector< libMesh::RealGradient > > & | dphi, |
| const std::vector< libMesh::Point > & | xyz, | ||
| unsigned int | num_nodes, | ||
| unsigned int | qp, | ||
| double | F[3][3] | ||
| ) |
Computes the deformation gradient at n-th, (n+1)-th and (n+1/2)-th time step.
| void AMP::Operator::MechanicsNonlinearUpdatedLagrangianElement::computeStressAndStrain | ( | const std::vector< std::vector< double > > & | inputVec, |
| 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.
| [in] | inputVec | Input vector (Displacement, Temperature, Burnup etc) at the nodes of the current element. |
| [out] | stressVec | Stresses at the Gauss points of the current element. |
| [out] | strainVec | Strains at the Gauss points of the current element. |
|
inlineinherited |
Definition at line 72 of file MechanicsElement.h.
References AMP::Operator::MechanicsElement::d_qrule.
|
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.
| [in] | elem | Pointer to the current element within a finite element assembly. |
| [in] | materialModel | Shared 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.
| void AMP::Operator::MechanicsNonlinearUpdatedLagrangianElement::initializeReferenceXYZ | ( | std::vector< double > & | elementRefXYZ | ) |
Initializes the reference x, y and z coordinates.
| void AMP::Operator::MechanicsNonlinearUpdatedLagrangianElement::initMaterialModel | ( | const std::vector< double > & | initTempVector | ) |
This function is used to initialize the material model at all Gauss points within the current element. Some material models require the reference values for some fields such as temperature and so these values are also passed to the material model through this function. Currently, the only field required by the mechanics material models during initialization is the reference temperature.
| [in] | initTempVector | Reference temperature at the nodes of the current element. This can be empty if the material model does not require a reference temperature. |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
| void AMP::Operator::MechanicsNonlinearUpdatedLagrangianElement::preNonlinearElementInit | ( | ) |
| void AMP::Operator::MechanicsNonlinearUpdatedLagrangianElement::printStressAndStrain | ( | FILE * | fp, |
| const std::vector< std::vector< double > > & | inputVec | ||
| ) |
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.
| [in] | fp | File pointer |
| [in] | inputVec | Input vector (Displacement, Temperature, Burnup etc) at the nodes of the current element. |
|
inline |
Definition at line 155 of file MechanicsNonlinearUpdatedLagrangianElement.h.
References d_leftStretchV_n, d_leftStretchV_np1, d_rotationR_n, d_rotationR_np1, AMP::Operator::MechanicsElement::d_useFlanaganTaylorElem, and AMP::Operator::MechanicsElement::d_useJaumannRate.
|
inline |
This function is used by MechanicsNonlinearFEOperator to pass the address of the element Input and Output vector to this class.
| [in] | elementInputVectors | Element input vector |
| [in] | elementInputVectors_pre | Element input vector for previous time |
| [in] | elementOutputVector | Element residual vector |
Definition at line 51 of file MechanicsNonlinearUpdatedLagrangianElement.h.
References d_elementInputVectors, d_elementInputVectors_pre, and d_elementOutputVector.
| void AMP::Operator::MechanicsNonlinearUpdatedLagrangianElement::updateMaterialModel | ( | MechanicsNonlinearElement::MaterialUpdateType | type, |
| const std::vector< std::vector< double > > & | elementInputVectors, | ||
| const std::vector< std::vector< double > > & | elementInputVectors_pre | ||
| ) |
This function is used to update the equilibrium values of stress, strain, temperature, burnup etc that are stored in the material model class. This is typically required at the end of each loading step. This function is typically called from within the MechanicsNonlinearFEOperator's reset function, which is evaluated at the end of each loading step. This function also gets called from within the MechanicsNonlinearFEOperator's getJacobianParameters function if the jacobian is evaluated at a state (displacement, temperature etc) different from that of the last call to MechanicsNonlinearFEOperator's apply function.
| [in] | type | Update type |
| [in] | elementInputVectors | Field (Displacement, Temperature, Burnup etc) values at the nodes of the current element. |
| [in] | elementInputVectors_pre | Field (Displacement, Temperature, Burnup etc) values at the nodes of the current element at the previous time-step. |
|
inline |
Definition at line 153 of file MechanicsNonlinearUpdatedLagrangianElement.h.
References d_gaussPtCnt.
|
protected |
Spatial Derivatives of the shape functions at the Gauss points in the current element.
Definition at line 194 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by MechanicsNonlinearUpdatedLagrangianElement().
|
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().
|
protected |
Element input vectors (Displacement, temperature, burnup etc).
Definition at line 204 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by setElementVectors().
|
protected |
Element input vectors at the previous time step (Displacement, temperature, burnup etc).
Definition at line 209 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by setElementVectors().
|
protected |
Element residual vector
Definition at line 212 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by setElementVectors().
|
protected |
Definition at line 216 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by assignReferenceXYZ().
|
protectedinherited |
Finite element shape functions.
Definition at line 84 of file MechanicsElement.h.
Referenced by AMP::Operator::MechanicsLinearElement::MechanicsLinearElement(), AMP::Operator::MechanicsLinearUpdatedLagrangianElement::MechanicsLinearUpdatedLagrangianElement(), AMP::Operator::MechanicsNonlinearElement::MechanicsNonlinearElement(), and MechanicsNonlinearUpdatedLagrangianElement().
|
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.
|
protected |
Definition at line 226 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by MechanicsNonlinearUpdatedLagrangianElement(), and zeroOutGaussPointCount().
|
protectedinherited |
< Inside Green-Naghdi stress-rate whether to use Flanagan Taylor stress-srate or not.
Definition at line 105 of file MechanicsElement.h.
|
protected |
Product of the determinant of Jacobian and the quadrature weight at the Gauss points in the current element.
Definition at line 190 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by MechanicsNonlinearUpdatedLagrangianElement().
|
protected |
Definition at line 218 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by resetElementInfo().
|
protected |
Definition at line 220 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by resetElementInfo().
|
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().
|
protected |
Definition at line 214 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by MechanicsNonlinearUpdatedLagrangianElement().
|
protected |
Shape functions at the Gauss points in the current element.
Definition at line 198 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by MechanicsNonlinearUpdatedLagrangianElement().
|
protectedinherited |
Quadtrature rule used for numerical integration.
Definition at line 87 of file MechanicsElement.h.
Referenced by AMP::Operator::MechanicsElement::getNumberOfGaussPoints().
|
protected |
Definition at line 222 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by resetElementInfo().
|
protected |
Definition at line 224 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by resetElementInfo().
|
protectedinherited |
Definition at line 101 of file MechanicsElement.h.
Referenced by resetElementInfo().
|
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 AMP::Operator::MechanicsLinearElement::MechanicsLinearElement(), AMP::Operator::MechanicsNonlinearElement::MechanicsNonlinearElement(), and resetElementInfo().
|
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(), AMP::Operator::MechanicsLinearUpdatedLagrangianElement::apply(), AMP::Operator::MechanicsNonlinearElement::apply(), and apply().
|
protected |
Locations of the Gauss points in the current element.
Definition at line 202 of file MechanicsNonlinearUpdatedLagrangianElement.h.
Referenced by MechanicsNonlinearUpdatedLagrangianElement().
|
Advanced Multi-Physics (AMP) Oak Ridge National Laboratory Idaho National Laboratory Los Alamos National Laboratory |
This page automatically produced from the source code by Last updated: Tue Mar 10 2026 13:06:44. Comments on this page |