21 "Softening model with an exponential softening response upon cracking. This " 22 "class is intended to be used with ADComputeSmearedCrackingStress and relies on automatic " 27 "residual_stress <= 1 & residual_stress >= 0",
28 "The fraction of the cracking stress allowed to be maintained following a crack.");
31 "fracture_toughness > 0",
32 "Fracture toughness used to calculate the softening slope. ");
39 _residual_stress(getParam<
Real>(
"residual_stress")),
40 _fracture_toughness(getParam<
Real>(
"fracture_toughness"))
48 const ADReal & crack_initiation_strain,
49 const ADReal & crack_max_strain,
50 const ADReal & cracking_stress,
51 const ADReal & youngs_modulus,
52 const ADReal & poissons_ratio)
54 mooseAssert(crack_max_strain >= crack_initiation_strain,
55 "crack_max_strain must be >= crack_initiation_strain");
56 using std::cbrt, std::sqrt, std::exp;
69 (1 - poissons_ratio * poissons_ratio) / youngs_modulus;
70 const ADReal frac_stress_sqr = cracking_stress * cracking_stress;
71 const ADReal l_max = 2 * energy_release_rate * youngs_modulus / frac_stress_sqr;
75 ADReal initial_slope = -1e5 * youngs_modulus;
78 -frac_stress_sqr / (energy_release_rate / ele_len - frac_stress_sqr / (2 * youngs_modulus));
83 exp(initial_slope / cracking_stress *
84 (crack_max_strain - crack_initiation_strain)));
86 stiffness_ratio = stress * crack_initiation_strain / (crack_max_strain * cracking_stress);
static InputParameters validParams()
registerMooseObject("SolidMechanicsApp", ADExponentialEnergyBasedSoftening)
ADExponentialEnergyBasedSoftening(const InputParameters ¶meters)
virtual void computeCrackingRelease(ADReal &stress, ADReal &stiffness_ratio, const ADReal &strain, const ADReal &crack_initiation_strain, const ADReal &crack_max_strain, const ADReal &cracking_stress, const ADReal &youngs_modulus, const ADReal &poissons_ratio) override
Compute the effect of the cracking release model on the stress and stiffness in the direction of a si...
const Real & _residual_stress
Residual stress after full softening.
ExponentialEnergyBasedSoftening is a smeared crack softening model that uses an exponential softening...
const Real & _fracture_toughness
Fracture toughness.
ADSmearedCrackSofteningBase is the base class for a set of models that define the softening behavior ...
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sqrt(_arg)) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tanh
const Elem *const & _current_elem