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

#include <MechanicsMaterialModel.h>

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

Public Member Functions

virtual void getConstitutiveMatrix (double *&)
 
virtual void getConstitutiveMatrixUpdatedLagrangian (double[6][6], double[3][3])
 
virtual void getEffectiveStress (double *&)
 
virtual void getEquivalentStrain (double *&)
 
virtual void getExternalStress (double *&)
 
virtual void getInternalStress (const std::vector< std::vector< double > > &, double *&)
 
virtual void getInternalStress_UL (const std::vector< std::vector< double > > &, double *&, double[3][3], double[3][3], double)
 
std::shared_ptr< AMP::Materials::MaterialgetMaterial ()
 
virtual void getStressForUpdatedLagrangian (double[6])
 
virtual void globalReset ()
 
 MechanicsMaterialModel (std::shared_ptr< MechanicsMaterialModelParameters > params)
 
virtual void nonlinearInitGaussPointOperation (double)
 
virtual void nonlinearJacobianGaussPointOperation (const std::vector< std::vector< double > > &)
 
virtual void nonlinearJacobianGaussPointOperation_UL (const std::vector< std::vector< double > > &, double[3][3], double[3][3])
 
virtual void nonlinearResetGaussPointOperation (const std::vector< std::vector< double > > &)
 
virtual void nonlinearResetGaussPointOperation_UL (const std::vector< std::vector< double > > &, double[3][3], double[3][3])
 
virtual void postLinearAssembly ()
 
virtual void postLinearElementOperation ()
 
virtual void postLinearGaussPointOperation ()
 
virtual void postNonlinearAssembly ()
 
virtual void postNonlinearAssemblyElementOperation ()
 
virtual void postNonlinearAssemblyGaussPointOperation ()
 
virtual void postNonlinearInit ()
 
virtual void postNonlinearInitElementOperation ()
 
virtual void postNonlinearInitGaussPointOperation ()
 
virtual void postNonlinearJacobian ()
 
virtual void postNonlinearJacobianElementOperation ()
 
virtual void postNonlinearJacobianGaussPointOperation ()
 
virtual void postNonlinearReset ()
 
virtual void postNonlinearResetElementOperation ()
 
virtual void postNonlinearResetGaussPointOperation ()
 
virtual void preLinearAssembly ()
 
virtual void preLinearElementOperation ()
 
virtual void preLinearGaussPointOperation ()
 
virtual void preNonlinearAssembly ()
 
virtual void preNonlinearAssemblyElementOperation ()
 
virtual void preNonlinearAssemblyGaussPointOperation ()
 
virtual void preNonlinearInit (bool, bool)
 
virtual void preNonlinearInitElementOperation ()
 
virtual void preNonlinearInitGaussPointOperation ()
 
virtual void preNonlinearJacobian ()
 
virtual void preNonlinearJacobianElementOperation ()
 
virtual void preNonlinearJacobianGaussPointOperation ()
 
virtual void preNonlinearReset ()
 
virtual void preNonlinearResetElementOperation ()
 
virtual void preNonlinearResetGaussPointOperation ()
 
virtual void setDebugPrintInfoLevel (int print_level)
 
void updateTime (double currTime)
 
virtual ~MechanicsMaterialModel ()
 

Protected Attributes

bool d_checkCladOrPellet
 
double d_currentTime
 
int d_iDebugPrintInfoLevel
 
std::shared_ptr< AMP::Materials::Materiald_material
 
double d_previousTime
 
bool d_useContinuumTangent
 
bool d_useJaumannRate
 
bool d_useMaterialsLibrary
 
bool d_useUpdatedLagrangian
 

Detailed Description

An abstract base class for representing the mechanics material models. The derived classes can represent both linear and nonlinear material behavior. Derived classes must implement the function named getConstitutiveMatrix, which provides the ConstitutiveMatrix that is used in the construction of the Jacobian. Non-linear material models must implement the function getInternalStress. Linear material models that use an implicit method must implement the getInternalStress function too.

Definition at line 24 of file MechanicsMaterialModel.h.

Constructor & Destructor Documentation

◆ MechanicsMaterialModel()

AMP::Operator::MechanicsMaterialModel::MechanicsMaterialModel ( std::shared_ptr< MechanicsMaterialModelParameters params)
inlineexplicit

Constructor. This reads the value for the key USE_MATERIALS_LIBRARY (false by default) from the database object contained in the parameter object, params. This key specifies whether or not the AMP::materials interface is used in this model.

Definition at line 32 of file MechanicsMaterialModel.h.

References AMP_INSIST, d_checkCladOrPellet, d_currentTime, d_material, d_previousTime, d_useContinuumTangent, d_useJaumannRate, d_useMaterialsLibrary, d_useUpdatedLagrangian, and AMP::Materials::getMaterial().

◆ ~MechanicsMaterialModel()

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

Destructor.

Definition at line 61 of file MechanicsMaterialModel.h.

Member Function Documentation

◆ getConstitutiveMatrix()

virtual void AMP::Operator::MechanicsMaterialModel::getConstitutiveMatrix ( double *&  )
inlinevirtual

◆ getConstitutiveMatrixUpdatedLagrangian()

virtual void AMP::Operator::MechanicsMaterialModel::getConstitutiveMatrixUpdatedLagrangian ( double  [6][6],
double  [3][3] 
)
inlinevirtual

Calculates the constitutive matrix for the material model in Updated Lagrangian. This matrix is used for the construction of the Jacobian during the solve process.

Reimplemented in AMP::Operator::IsotropicElasticModel, AMP::Operator::PericElastoViscoPlasticModel, AMP::Operator::ThermalStrainMaterialModel, and AMP::Operator::VonMisesElastoPlasticModel.

Definition at line 73 of file MechanicsMaterialModel.h.

◆ getEffectiveStress()

virtual void AMP::Operator::MechanicsMaterialModel::getEffectiveStress ( double *&  )
inlinevirtual

Used to print the effective stress at any point of the simulation.

Reimplemented in AMP::Operator::PericElastoViscoPlasticModel, and AMP::Operator::VonMisesElastoPlasticModel.

Definition at line 96 of file MechanicsMaterialModel.h.

◆ getEquivalentStrain()

virtual void AMP::Operator::MechanicsMaterialModel::getEquivalentStrain ( double *&  )
inlinevirtual

Used to print the equivalent plastic or creep or thermal strain at any point of the simulation.

Reimplemented in AMP::Operator::PericElastoViscoPlasticModel, and AMP::Operator::VonMisesElastoPlasticModel.

Definition at line 102 of file MechanicsMaterialModel.h.

◆ getExternalStress()

virtual void AMP::Operator::MechanicsMaterialModel::getExternalStress ( double *&  )
inlinevirtual

Used for linear material models if the problem is being solved in an explicit method. This function has not been implemented, because all the linear material model problems are being solved in implicit way.

Reimplemented in AMP::Operator::ElasticDamageThermalStrainModel, and AMP::Operator::ThermalStrainMaterialModel.

Definition at line 109 of file MechanicsMaterialModel.h.

◆ getInternalStress()

virtual void AMP::Operator::MechanicsMaterialModel::getInternalStress ( const std::vector< std::vector< double > > &  ,
double *&   
)
inlinevirtual

◆ getInternalStress_UL()

virtual void AMP::Operator::MechanicsMaterialModel::getInternalStress_UL ( const std::vector< std::vector< double > > &  ,
double *&  ,
double  [3][3],
double  [3][3],
double   
)
inlinevirtual

◆ getMaterial()

std::shared_ptr< AMP::Materials::Material > AMP::Operator::MechanicsMaterialModel::getMaterial ( )
inline

Definition at line 226 of file MechanicsMaterialModel.h.

References d_material.

◆ getStressForUpdatedLagrangian()

virtual void AMP::Operator::MechanicsMaterialModel::getStressForUpdatedLagrangian ( double  [6])
inlinevirtual

Returns the 6x1 stress vector at the current gauss point. Used in UpdatedLagrangian calculations.

Reimplemented in AMP::Operator::IsotropicElasticModel, AMP::Operator::PericElastoViscoPlasticModel, AMP::Operator::ThermalStrainMaterialModel, and AMP::Operator::VonMisesElastoPlasticModel.

Definition at line 79 of file MechanicsMaterialModel.h.

◆ globalReset()

virtual void AMP::Operator::MechanicsMaterialModel::globalReset ( )
inlinevirtual

◆ nonlinearInitGaussPointOperation()

virtual void AMP::Operator::MechanicsMaterialModel::nonlinearInitGaussPointOperation ( double  )
inlinevirtual

Initializes all the variables with zero, except the temperature variable which has some non-zero value initially (something like room temperature). The input argument is the initial_Temperature.

Reimplemented in AMP::Operator::ElasticDamageThermalStrainModel, AMP::Operator::GeneralCladThermalCreepPlasticModel, AMP::Operator::IsotropicElasticModel, AMP::Operator::PericElastoViscoPlasticModel, AMP::Operator::ThermalStrainMaterialModel, AMP::Operator::ThermalVonMisesMatModel, AMP::Operator::VonMises_IsotropicKinematicHardening, and AMP::Operator::VonMisesElastoPlasticModel.

Definition at line 152 of file MechanicsMaterialModel.h.

◆ nonlinearJacobianGaussPointOperation()

virtual void AMP::Operator::MechanicsMaterialModel::nonlinearJacobianGaussPointOperation ( const std::vector< std::vector< double > > &  )
inlinevirtual

◆ nonlinearJacobianGaussPointOperation_UL()

virtual void AMP::Operator::MechanicsMaterialModel::nonlinearJacobianGaussPointOperation_UL ( const std::vector< std::vector< double > > &  ,
double  [3][3],
double  [3][3] 
)
inlinevirtual

◆ nonlinearResetGaussPointOperation()

virtual void AMP::Operator::MechanicsMaterialModel::nonlinearResetGaussPointOperation ( const std::vector< std::vector< double > > &  )
inlinevirtual

In the implicit solution technique, once the solver converges, the previous equilibrium values are replaced by the current converged values in this function. The input is a vector of all the variables at that particular gauss point.

Reimplemented in AMP::Operator::ElasticDamageThermalStrainModel, AMP::Operator::GeneralCladThermalCreepPlasticModel, AMP::Operator::IsotropicElasticModel, AMP::Operator::PericElastoViscoPlasticModel, AMP::Operator::ThermalStrainMaterialModel, AMP::Operator::ThermalVonMisesMatModel, AMP::Operator::VonMises_IsotropicKinematicHardening, and AMP::Operator::VonMisesElastoPlasticModel.

Definition at line 190 of file MechanicsMaterialModel.h.

◆ nonlinearResetGaussPointOperation_UL()

virtual void AMP::Operator::MechanicsMaterialModel::nonlinearResetGaussPointOperation_UL ( const std::vector< std::vector< double > > &  ,
double  [3][3],
double  [3][3] 
)
inlinevirtual

◆ postLinearAssembly()

virtual void AMP::Operator::MechanicsMaterialModel::postLinearAssembly ( )
inlinevirtual

Definition at line 123 of file MechanicsMaterialModel.h.

◆ postLinearElementOperation()

virtual void AMP::Operator::MechanicsMaterialModel::postLinearElementOperation ( )
inlinevirtual

Definition at line 127 of file MechanicsMaterialModel.h.

◆ postLinearGaussPointOperation()

virtual void AMP::Operator::MechanicsMaterialModel::postLinearGaussPointOperation ( )
inlinevirtual

◆ postNonlinearAssembly()

virtual void AMP::Operator::MechanicsMaterialModel::postNonlinearAssembly ( )
inlinevirtual

◆ postNonlinearAssemblyElementOperation()

virtual void AMP::Operator::MechanicsMaterialModel::postNonlinearAssemblyElementOperation ( )
inlinevirtual

Definition at line 162 of file MechanicsMaterialModel.h.

◆ postNonlinearAssemblyGaussPointOperation()

virtual void AMP::Operator::MechanicsMaterialModel::postNonlinearAssemblyGaussPointOperation ( )
inlinevirtual

◆ postNonlinearInit()

virtual void AMP::Operator::MechanicsMaterialModel::postNonlinearInit ( )
inlinevirtual

Definition at line 137 of file MechanicsMaterialModel.h.

◆ postNonlinearInitElementOperation()

virtual void AMP::Operator::MechanicsMaterialModel::postNonlinearInitElementOperation ( )
inlinevirtual

Definition at line 141 of file MechanicsMaterialModel.h.

◆ postNonlinearInitGaussPointOperation()

virtual void AMP::Operator::MechanicsMaterialModel::postNonlinearInitGaussPointOperation ( )
inlinevirtual

Definition at line 145 of file MechanicsMaterialModel.h.

◆ postNonlinearJacobian()

virtual void AMP::Operator::MechanicsMaterialModel::postNonlinearJacobian ( )
inlinevirtual

Definition at line 202 of file MechanicsMaterialModel.h.

◆ postNonlinearJacobianElementOperation()

virtual void AMP::Operator::MechanicsMaterialModel::postNonlinearJacobianElementOperation ( )
inlinevirtual

Definition at line 206 of file MechanicsMaterialModel.h.

◆ postNonlinearJacobianGaussPointOperation()

virtual void AMP::Operator::MechanicsMaterialModel::postNonlinearJacobianGaussPointOperation ( )
inlinevirtual

◆ postNonlinearReset()

virtual void AMP::Operator::MechanicsMaterialModel::postNonlinearReset ( )
inlinevirtual

◆ postNonlinearResetElementOperation()

virtual void AMP::Operator::MechanicsMaterialModel::postNonlinearResetElementOperation ( )
inlinevirtual

Definition at line 178 of file MechanicsMaterialModel.h.

◆ postNonlinearResetGaussPointOperation()

virtual void AMP::Operator::MechanicsMaterialModel::postNonlinearResetGaussPointOperation ( )
inlinevirtual

◆ preLinearAssembly()

virtual void AMP::Operator::MechanicsMaterialModel::preLinearAssembly ( )
inlinevirtual

◆ preLinearElementOperation()

virtual void AMP::Operator::MechanicsMaterialModel::preLinearElementOperation ( )
inlinevirtual

Definition at line 125 of file MechanicsMaterialModel.h.

◆ preLinearGaussPointOperation()

virtual void AMP::Operator::MechanicsMaterialModel::preLinearGaussPointOperation ( )
inlinevirtual

Definition at line 129 of file MechanicsMaterialModel.h.

◆ preNonlinearAssembly()

virtual void AMP::Operator::MechanicsMaterialModel::preNonlinearAssembly ( )
inlinevirtual

◆ preNonlinearAssemblyElementOperation()

virtual void AMP::Operator::MechanicsMaterialModel::preNonlinearAssemblyElementOperation ( )
inlinevirtual

Definition at line 160 of file MechanicsMaterialModel.h.

◆ preNonlinearAssemblyGaussPointOperation()

virtual void AMP::Operator::MechanicsMaterialModel::preNonlinearAssemblyGaussPointOperation ( )
inlinevirtual

Definition at line 164 of file MechanicsMaterialModel.h.

◆ preNonlinearInit()

virtual void AMP::Operator::MechanicsMaterialModel::preNonlinearInit ( bool  ,
bool   
)
inlinevirtual

◆ preNonlinearInitElementOperation()

virtual void AMP::Operator::MechanicsMaterialModel::preNonlinearInitElementOperation ( )
inlinevirtual

Definition at line 139 of file MechanicsMaterialModel.h.

◆ preNonlinearInitGaussPointOperation()

virtual void AMP::Operator::MechanicsMaterialModel::preNonlinearInitGaussPointOperation ( )
inlinevirtual

Definition at line 143 of file MechanicsMaterialModel.h.

◆ preNonlinearJacobian()

virtual void AMP::Operator::MechanicsMaterialModel::preNonlinearJacobian ( )
inlinevirtual

◆ preNonlinearJacobianElementOperation()

virtual void AMP::Operator::MechanicsMaterialModel::preNonlinearJacobianElementOperation ( )
inlinevirtual

Definition at line 204 of file MechanicsMaterialModel.h.

◆ preNonlinearJacobianGaussPointOperation()

virtual void AMP::Operator::MechanicsMaterialModel::preNonlinearJacobianGaussPointOperation ( )
inlinevirtual

Definition at line 208 of file MechanicsMaterialModel.h.

◆ preNonlinearReset()

virtual void AMP::Operator::MechanicsMaterialModel::preNonlinearReset ( )
inlinevirtual

◆ preNonlinearResetElementOperation()

virtual void AMP::Operator::MechanicsMaterialModel::preNonlinearResetElementOperation ( )
inlinevirtual

Definition at line 176 of file MechanicsMaterialModel.h.

◆ preNonlinearResetGaussPointOperation()

virtual void AMP::Operator::MechanicsMaterialModel::preNonlinearResetGaussPointOperation ( )
inlinevirtual

Definition at line 180 of file MechanicsMaterialModel.h.

◆ setDebugPrintInfoLevel()

virtual void AMP::Operator::ElementPhysicsModel::setDebugPrintInfoLevel ( int  print_level)
inlinevirtualinherited

Specify level of diagnostic information printed during iterations.

Parameters
[in]print_levelzero prints none or minimal information, higher numbers provide increasingly verbose debugging information.

Definition at line 36 of file ElementPhysicsModel.h.

References AMP::Operator::ElementPhysicsModel::d_iDebugPrintInfoLevel.

◆ updateTime()

void AMP::Operator::MechanicsMaterialModel::updateTime ( double  currTime)
inline

Definition at line 220 of file MechanicsMaterialModel.h.

References d_currentTime, and d_previousTime.

Member Data Documentation

◆ d_checkCladOrPellet

bool AMP::Operator::MechanicsMaterialModel::d_checkCladOrPellet
protected

Definition at line 244 of file MechanicsMaterialModel.h.

Referenced by MechanicsMaterialModel().

◆ d_currentTime

double AMP::Operator::MechanicsMaterialModel::d_currentTime
protected

The time at present.

Definition at line 229 of file MechanicsMaterialModel.h.

Referenced by MechanicsMaterialModel(), and updateTime().

◆ d_iDebugPrintInfoLevel

int AMP::Operator::ElementPhysicsModel::d_iDebugPrintInfoLevel
protectedinherited

Variable that controls the amount of diagnostic information that gets printed within this material model.

Definition at line 39 of file ElementPhysicsModel.h.

Referenced by AMP::Operator::ElementPhysicsModel::ElementPhysicsModel(), and AMP::Operator::ElementPhysicsModel::setDebugPrintInfoLevel().

◆ d_material

std::shared_ptr<AMP::Materials::Material> AMP::Operator::MechanicsMaterialModel::d_material
protected

Shared pointer to the materials object.

Definition at line 247 of file MechanicsMaterialModel.h.

Referenced by getMaterial(), and MechanicsMaterialModel().

◆ d_previousTime

double AMP::Operator::MechanicsMaterialModel::d_previousTime
protected

Time at the previous step.

Definition at line 231 of file MechanicsMaterialModel.h.

Referenced by MechanicsMaterialModel(), and updateTime().

◆ d_useContinuumTangent

bool AMP::Operator::MechanicsMaterialModel::d_useContinuumTangent
protected

Flag to check whether to use Continuum tangent is elasto plasticity or not.

Definition at line 241 of file MechanicsMaterialModel.h.

Referenced by MechanicsMaterialModel().

◆ d_useJaumannRate

bool AMP::Operator::MechanicsMaterialModel::d_useJaumannRate
protected

Flag to check whether to use Jaumann rate in updated lagrangian or not.

Definition at line 238 of file MechanicsMaterialModel.h.

Referenced by MechanicsMaterialModel().

◆ d_useMaterialsLibrary

bool AMP::Operator::MechanicsMaterialModel::d_useMaterialsLibrary
protected

A flag that is true if the AMP::materials library is used in this model and false otherwise.

Definition at line 233 of file MechanicsMaterialModel.h.

Referenced by MechanicsMaterialModel().

◆ d_useUpdatedLagrangian

bool AMP::Operator::MechanicsMaterialModel::d_useUpdatedLagrangian
protected

Flag to check whether to use updated lagrangian or not.

Definition at line 236 of file MechanicsMaterialModel.h.

Referenced by MechanicsMaterialModel().


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