18 params.
addClassDescription(
"Computes energy and modifies the stress for phase field fracture");
20 params.
addParam<
Real>(
"kdamage", 1e-9,
"Stiffness of damaged matrix");
21 params.
addParam<
bool>(
"finite_strain_model",
false,
"The model is using finite strain");
23 "use_current_history_variable",
false,
"Use the current value of the history variable.");
24 params.
addParam<MaterialPropertyName>(
25 "F_name",
"E_el",
"Name of material property storing the elastic energy");
26 params.
addParam<MaterialPropertyName>(
29 "Name of material property being created to store the interfacial parameter kappa");
30 params.
addParam<MaterialPropertyName>(
31 "mobility_name",
"L",
"Name of material property being created to store the mobility L");
32 params.
addParam<std::string>(
"base_name",
"The base name used to save the cracked stress");
34 "The base name used to calculate the original stress");
40 _base_name(isParamValid(
"base_name") ? getParam<
std::string>(
"base_name") +
"_" :
""),
41 _uncracked_base_name(getParam<
std::string>(
"uncracked_base_name") +
"_"),
42 _finite_strain_model(getParam<bool>(
"finite_strain_model")),
43 _use_current_hist(getParam<bool>(
"use_current_history_variable")),
46 ? getMaterialPropertyByName<
RankTwoTensor>(_uncracked_base_name +
"elastic_strain")
47 : getMaterialPropertyByName<
RankTwoTensor>(_uncracked_base_name +
"mechanical_strain")),
48 _uncracked_stress(getMaterialPropertyByName<
RankTwoTensor>(_uncracked_base_name +
"stress")),
49 _uncracked_Jacobian_mult(
50 getMaterialPropertyByName<
RankFourTensor>(_uncracked_base_name +
"Jacobian_mult")),
51 _c(coupledValue(
"c")),
52 _gc_prop(getMaterialProperty<
Real>(
"gc_prop")),
53 _l(getMaterialProperty<
Real>(
"l")),
54 _visco(getMaterialProperty<
Real>(
"visco")),
55 _kdamage(getParam<
Real>(
"kdamage")),
56 _stress(declareProperty<
RankTwoTensor>(_base_name +
"stress")),
57 _F(declareProperty<
Real>(getParam<MaterialPropertyName>(
"F_name"))),
58 _dFdc(declarePropertyDerivative<
Real>(getParam<MaterialPropertyName>(
"F_name"),
59 coupledName(
"c", 0))),
60 _d2Fdc2(declarePropertyDerivative<
Real>(
61 getParam<MaterialPropertyName>(
"F_name"), coupledName(
"c", 0), coupledName(
"c", 0))),
62 _d2Fdcdstrain(declareProperty<
RankTwoTensor>(
"d2Fdcdstrain")),
63 _dstress_dc(declarePropertyDerivative<
RankTwoTensor>(
"stress", coupledName(
"c", 0))),
64 _hist(declareProperty<
Real>(
"hist")),
65 _hist_old(getMaterialPropertyOld<
Real>(
"hist")),
66 _Jacobian_mult(declareProperty<
RankFourTensor>(_base_name +
"Jacobian_mult")),
67 _kappa(declareProperty<
Real>(getParam<MaterialPropertyName>(
"kappa_name"))),
68 _L(declareProperty<
Real>(getParam<MaterialPropertyName>(
"mobility_name")))
91 std::vector<Real> eigval;
const MaterialProperty< Real > & _hist_old
initIdentitySymmetricFour
const VariableValue & _c
Variable defining the phase field damage parameter.
MaterialProperty< Real > & _kappa
Property where the value for kappa will be defined.
const MaterialProperty< RankTwoTensor > & _strain
Mechanical_strain if finite_strain_model = false, otherwise elastic_strain.
MaterialProperty< Real > & _hist
history variable storing the maximum positive deformation energy
Computes energy and modifies the stress for phase field fracture.
bool _use_current_hist
Use current value of history variable.
const MaterialProperty< Real > & _visco
const MaterialProperty< RankTwoTensor > & _uncracked_stress
Uncracked stress calculated by another material.
static InputParameters validParams()
virtual void initQpStatefulProperties()
const MaterialProperty< RankFourTensor > & _uncracked_Jacobian_mult
Uncracked Jacobian_mult calculated by another material.
const MaterialProperty< Real > & _l
Characteristic length, controls damage zone thickness.
MaterialProperty< Real > & _dFdc
MaterialProperty< Real > & _F
const MaterialProperty< Real > & _gc_prop
Critical energy release rate for fracture.
static InputParameters validParams()
registerMooseObject("SolidMechanicsApp", ComputeCrackedStress)
ComputeCrackedStress(const InputParameters ¶meters)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void computeQpProperties()
MaterialProperty< RankTwoTensor > & _stress
Stress being computed by this kernel.
MaterialProperty< RankTwoTensor > & _dstress_dc
MaterialProperty< Real > & _L
Property where the value for L will be defined.
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
MaterialProperty< RankTwoTensor > & _d2Fdcdstrain
Real _kdamage
Small number to avoid non-positive definiteness at or near complete damage.
MaterialProperty< Real > & _d2Fdc2