#include <MechanicsNonlinearElement.h>

Public Types | |
| enum | MaterialUpdateType { RESET , JACOBIAN } |
Public Member Functions | |
| void | apply () override |
| 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 | initMaterialModel (const std::vector< double > &initTempVector) |
| MechanicsNonlinearElement (std::shared_ptr< const ElementOperationParameters > params) | |
| Constructor. | |
| void | printStressAndStrain (FILE *fp, const std::vector< std::vector< double > > &inputVec) |
| void | setElementVectors (const std::vector< std::vector< double > > &elementInputVectors, std::vector< double > &elementOutputVector) |
| void | updateMaterialModel (MaterialUpdateType type, const std::vector< std::vector< double > > &elementInputVectors) |
| virtual | ~MechanicsNonlinearElement () |
| Destructor. | |
Protected Member Functions | |
| void | apply_Normal () |
| void | apply_Reduced () |
| void | materialModelNonlinearGaussPointOperation (MaterialUpdateType, const std::vector< std::vector< double > > &) |
| void | materialModelPostNonlinearElementOperation (MaterialUpdateType) |
| void | materialModelPostNonlinearGaussPointOperation (MaterialUpdateType) |
| void | materialModelPreNonlinearElementOperation (MaterialUpdateType) |
| void | materialModelPreNonlinearGaussPointOperation (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< double > * | d_elementOutputVector |
| 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< MechanicsMaterialModel > | d_materialModel |
| const std::vector< std::vector< libMesh::Real > > * | d_phi |
| std::shared_ptr< libMesh::QBase > | d_qrule |
| 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 finite element operator for modelling solid mechanics.
Definition at line 18 of file MechanicsNonlinearElement.h.
This is primarily for use with the updateMaterialModel() function.
| Enumerator | |
|---|---|
| RESET | |
| JACOBIAN | |
Definition at line 24 of file MechanicsNonlinearElement.h.
|
inlineexplicit |
Constructor.
Definition at line 27 of file MechanicsNonlinearElement.h.
References AMP_INSIST, d_dphi, AMP::Operator::MechanicsElement::d_fe, d_JxW, d_phi, AMP::Operator::MechanicsElement::d_useJaumannRate, and d_xyz.
|
inlinevirtual |
Destructor.
Definition at line 43 of file MechanicsNonlinearElement.h.
|
inlineoverridevirtual |
Element residual vector computation.
Implements AMP::Operator::ElementOperation.
Definition at line 61 of file MechanicsNonlinearElement.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().
| void AMP::Operator::MechanicsNonlinearElement::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::MechanicsNonlinearElement::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::MechanicsNonlinearElement::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 |
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] | elementOutputVector | Element residual vector |
Definition at line 51 of file MechanicsNonlinearElement.h.
References d_elementInputVectors, and d_elementOutputVector.
| void AMP::Operator::MechanicsNonlinearElement::updateMaterialModel | ( | MaterialUpdateType | type, |
| const std::vector< std::vector< double > > & | elementInputVectors | ||
| ) |
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 |
|
protected |
Spatial Derivatives of the shape functions at the Gauss points in the current element.
Definition at line 147 of file MechanicsNonlinearElement.h.
Referenced by MechanicsNonlinearElement().
|
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 157 of file MechanicsNonlinearElement.h.
Referenced by setElementVectors().
|
protected |
Element residual vector
Definition at line 161 of file MechanicsNonlinearElement.h.
Referenced by setElementVectors().
|
protectedinherited |
Finite element shape functions.
Definition at line 84 of file MechanicsElement.h.
Referenced by AMP::Operator::MechanicsLinearElement::MechanicsLinearElement(), AMP::Operator::MechanicsLinearUpdatedLagrangianElement::MechanicsLinearUpdatedLagrangianElement(), MechanicsNonlinearElement(), and AMP::Operator::MechanicsNonlinearUpdatedLagrangianElement::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.
|
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 143 of file MechanicsNonlinearElement.h.
Referenced by MechanicsNonlinearElement().
|
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 |
Shape functions at the Gauss points in the current element.
Definition at line 151 of file MechanicsNonlinearElement.h.
Referenced by MechanicsNonlinearElement().
|
protectedinherited |
Quadtrature rule used for numerical integration.
Definition at line 87 of file MechanicsElement.h.
Referenced by AMP::Operator::MechanicsElement::getNumberOfGaussPoints().
|
protectedinherited |
Definition at line 101 of file MechanicsElement.h.
Referenced by AMP::Operator::MechanicsNonlinearUpdatedLagrangianElement::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(), MechanicsNonlinearElement(), and AMP::Operator::MechanicsNonlinearUpdatedLagrangianElement::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(), apply(), and AMP::Operator::MechanicsNonlinearUpdatedLagrangianElement::apply().
|
protected |
Locations of the Gauss points in the current element.
Definition at line 155 of file MechanicsNonlinearElement.h.
Referenced by MechanicsNonlinearElement().
|
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 |