13#include "metaphysicl/raw_type.h"
23 params.
addClassDescription(
"Calculate elastic constants from an isotropic elasticity tensor");
24 params.
addParam<MaterialPropertyName>(
25 "elasticity_tensor",
"elasticity_tensor",
"The name of the elasticity tensor.");
26 params.
addParam<std::string>(
"base_name",
27 "Optional parameter that allows the user to define "
28 "multiple mechanics material systems on the same "
29 "block, i.e. for multiple phases");
39 _base_name(isParamValid(
"base_name") ? getParam<
std::string>(
"base_name") +
"_" :
""),
40 _youngs_modulus(this->template declareGenericProperty<Real, is_ad>(
41 _base_name +
"youngs_modulus_from_tensor")),
42 _poissons_ratio(this->template declareGenericProperty<Real, is_ad>(
43 _base_name +
"poissons_ratio_from_tensor")),
44 _shear_modulus(this->template declareGenericProperty<Real, is_ad>(_base_name +
45 "shear_modulus_from_tensor")),
46 _bulk_modulus(this->template declareGenericProperty<Real, is_ad>(_base_name +
47 "bulk_modulus_from_tensor")),
48 _elasticity_tensor_name(getParam<MaterialPropertyName>(
"elasticity_tensor")),
49 _elasticity_tensor(this->template getGenericMaterialPropertyByName<
RankFourTensor, is_ad>(
50 _base_name + _elasticity_tensor_name))
59 mooseError(
"ConstantsFromElasticityTensor requires that the elasticity tensor be "
60 "guaranteed isotropic");
registerMooseObject("SolidMechanicsApp", ConstantsFromElasticityTensor)
void mooseError(Args &&... args)
This material computes the elastic constants such as Young's modulus from the elasticity tensor.
static InputParameters validParams()
ConstantsFromElasticityTensorTempl(const InputParameters ¶meters)
void computeQpProperties() override
void initialSetup() override
Add-on class that provides the functionality to check if guarantees for material properties are provi...
static InputParameters validParams()
Real elasticity_tensor(unsigned int i, unsigned int j, unsigned int k, unsigned int l)