1#ifndef included_AMP_MechanicsMaterialModel
2#define included_AMP_MechanicsMaterialModel
6#include "AMP/materials/Material.h"
7#include "AMP/operators/ElementPhysicsModel.h"
8#include "AMP/operators/mechanics/UpdatedLagrangianUtils.h"
36 params->d_db->getWithDefault<
bool>(
"USE_MATERIALS_LIBRARY", false );
39 params->d_db->getWithDefault<
bool>(
"USE_UPDATED_LAGRANGIAN", false );
41 d_useJaumannRate = params->d_db->getWithDefault<
bool>(
"USE_JAUMANN_RATE", false );
44 params->d_db->getWithDefault<
bool>(
"USE_CONTINUUM_TANGENT", false );
49 AMP_INSIST( ( params->d_db->keyExists(
"Material" ) ),
"Key ''Material'' is missing!" );
50 std::string matname = params->d_db->getString(
"Material" );
89 const std::vector<std::vector<double>> &,
double *&,
double[3][3],
double[3][3],
double )
246 std::shared_ptr<AMP::Materials::Material>
virtual void preNonlinearReset()
virtual void preNonlinearAssemblyElementOperation()
virtual void nonlinearResetGaussPointOperation(const std::vector< std::vector< double > > &)
virtual void globalReset()
virtual void preNonlinearJacobian()
virtual void postNonlinearAssembly()
virtual void preNonlinearInitElementOperation()
virtual void getEffectiveStress(double *&)
virtual void postNonlinearResetElementOperation()
virtual void postNonlinearAssemblyGaussPointOperation()
virtual void preNonlinearResetElementOperation()
bool d_useContinuumTangent
virtual void preNonlinearInitGaussPointOperation()
virtual void postLinearGaussPointOperation()
MechanicsMaterialModel(std::shared_ptr< MechanicsMaterialModelParameters > params)
virtual void preNonlinearInit(bool, bool)
virtual void getEquivalentStrain(double *&)
virtual void preNonlinearJacobianGaussPointOperation()
virtual void postNonlinearJacobian()
virtual void getConstitutiveMatrixUpdatedLagrangian(double[6][6], double[3][3])
virtual void preLinearAssembly()
virtual void getConstitutiveMatrix(double *&)
virtual void nonlinearJacobianGaussPointOperation_UL(const std::vector< std::vector< double > > &, double[3][3], double[3][3])
virtual void postNonlinearReset()
bool d_useMaterialsLibrary
virtual void preNonlinearAssemblyGaussPointOperation()
virtual void postNonlinearJacobianGaussPointOperation()
virtual void postNonlinearAssemblyElementOperation()
virtual void preNonlinearAssembly()
bool d_useUpdatedLagrangian
virtual ~MechanicsMaterialModel()
virtual void postLinearAssembly()
virtual void postNonlinearInitElementOperation()
std::shared_ptr< AMP::Materials::Material > d_material
virtual void getStressForUpdatedLagrangian(double[6])
virtual void postNonlinearResetGaussPointOperation()
virtual void nonlinearResetGaussPointOperation_UL(const std::vector< std::vector< double > > &, double[3][3], double[3][3])
virtual void nonlinearInitGaussPointOperation(double)
virtual void postNonlinearInit()
virtual void postLinearElementOperation()
virtual void getInternalStress(const std::vector< std::vector< double > > &, double *&)
virtual void preLinearElementOperation()
virtual void preLinearGaussPointOperation()
virtual void preNonlinearJacobianElementOperation()
virtual void postNonlinearJacobianElementOperation()
void updateTime(double currTime)
virtual void nonlinearJacobianGaussPointOperation(const std::vector< std::vector< double > > &)
virtual void preNonlinearResetGaussPointOperation()
virtual void postNonlinearInitGaussPointOperation()
std::shared_ptr< AMP::Materials::Material > getMaterial()
virtual void getInternalStress_UL(const std::vector< std::vector< double > > &, double *&, double[3][3], double[3][3], double)
virtual void getExternalStress(double *&)
#define AMP_INSIST(EXP, MSG)
Insist error.
std::unique_ptr< Material > getMaterial(const std::string &name)
Get a material.
ElementPhysicsModelParameters MechanicsMaterialModelParameters