Go to the documentation of this file.
12 #include "MooseMesh.h"
22 params.addClassDescription(
23 "Softening model with an exponential softening response upon cracking. This "
24 "class is intended to be used with ComputeSmearedCrackingStress.");
25 params.addRangeCheckedParam<Real>(
28 "residual_stress <= 1 & residual_stress >= 0",
29 "The fraction of the cracking stress allowed to be maintained following a crack.");
30 params.addRangeCheckedParam<Real>(
34 "Initial slope of the exponential softening curve at crack initiation. "
35 "If not specified, it is equal to the negative of the Young's modulus.");
36 params.addRangeCheckedParam<Real>(
40 "Multiplier applied to alpha to control the exponential softening "
47 _residual_stress(getParam<Real>(
"residual_stress")),
48 _alpha(getParam<Real>(
"alpha")),
49 _alpha_set_by_user(parameters.isParamSetByUser(
"alpha")),
50 _beta(getParam<Real>(
"beta"))
56 Real & stiffness_ratio,
58 const Real crack_initiation_strain,
59 const Real crack_max_strain,
60 const Real cracking_stress,
61 const Real youngs_modulus)
63 mooseAssert(crack_max_strain >= crack_initiation_strain,
64 "crack_max_strain must be >= crack_initiation_strain");
70 alpha = -youngs_modulus;
73 stress = cracking_stress *
76 (crack_max_strain - crack_initiation_strain)));
78 stiffness_ratio = stress * crack_initiation_strain / (crack_max_strain * cracking_stress);
const Real & _residual_stress
Residual stress after full softening.
ExponentialSoftening is a smeared crack softening model that uses an exponential softening curve.
ExponentialSoftening(const InputParameters ¶meters)
static InputParameters validParams()
SmearedCrackSofteningBase is the base class for a set of models that define the softening behavior of...
registerMooseObject("TensorMechanicsApp", ExponentialSoftening)
static InputParameters validParams()
const Real & _beta
Multiplier on alpha to determine the initial softening slope.
const Real & _alpha
Initial slope of the softening curve.
const bool _alpha_set_by_user
Variable to track whether _alpha was set by the user.
virtual void computeCrackingRelease(Real &stress, Real &stiffness_ratio, const Real strain, const Real crack_initiation_strain, const Real crack_max_strain, const Real cracking_stress, const Real youngs_modulus) override
Compute the effect of the cracking release model on the stress and stiffness in the direction of a si...
defineLegacyParams(ExponentialSoftening)