1#ifndef included_AMP_MechanicsModel
2#define included_AMP_MechanicsModel
6#include "AMP/materials/Material.h"
7#include "AMP/operators/ElementPhysicsModel.h"
8#include "AMP/operators/MechanicsModelParameters.h"
9#include "AMP/vectors/Vector.h"
19 explicit MechanicsModel( std::shared_ptr<const MechanicsModelParameters> ¶ms )
22 bool useMaterialsLibrary =
23 params->d_db->getWithDefault<
bool>(
"USE_MATERIALS_LIBRARY", false );
24 if ( useMaterialsLibrary ==
true ) {
25 AMP_INSIST( ( params->d_db->keyExists(
"Material" ) ),
"Key ''Material'' is missing!" );
26 std::string matname = params->d_db->getString(
"Material" );
37 virtual void reset( std::shared_ptr<MechanicsModelParameters> params )
44 virtual void getTangent( std::shared_ptr<AMP::LinearAlgebra::Vector> tangent ) {}
48 virtual void getStress( std::shared_ptr<AMP::LinearAlgebra::Vector> stress ) {}
virtual void reset(std::shared_ptr< MechanicsModelParameters > params)
MechanicsModel(std::shared_ptr< const MechanicsModelParameters > ¶ms)
std::shared_ptr< AMP::LinearAlgebra::Vector > d_deformationGradient
virtual ~MechanicsModel()
virtual void getTangent(std::shared_ptr< AMP::LinearAlgebra::Vector > tangent)
std::shared_ptr< AMP::Materials::Material > d_material
virtual void getStress(std::shared_ptr< AMP::LinearAlgebra::Vector > stress)
#define AMP_INSIST(EXP, MSG)
Insist error.
std::unique_ptr< Material > getMaterial(const std::string &name)
Get a material.