www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
ExponentialSoftening Class Reference

ExponentialSoftening is a smeared crack softening model that uses an exponential softening curve. More...

#include <ExponentialSoftening.h>

Inheritance diagram for ExponentialSoftening:
[legend]

Public Member Functions

 ExponentialSoftening (const InputParameters &parameters)
 
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 single crack. More...
 
void resetQpProperties () final
 Retained as empty methods to avoid a warning from Material.C in framework. These methods are unused in all inheriting classes and should not be overwritten. More...
 
void resetProperties () final
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Attributes

const Real & _residual_stress
 Residual stress after full softening. More...
 
const Real & _alpha
 Initial slope of the softening curve. More...
 
const bool _alpha_set_by_user
 Variable to track whether _alpha was set by the user. More...
 
const Real & _beta
 Multiplier on alpha to determine the initial softening slope. More...
 

Detailed Description

ExponentialSoftening is a smeared crack softening model that uses an exponential softening curve.

It is for use with ComputeSmearedCrackingStress.

Definition at line 25 of file ExponentialSoftening.h.

Constructor & Destructor Documentation

◆ ExponentialSoftening()

ExponentialSoftening::ExponentialSoftening ( const InputParameters &  parameters)

Definition at line 45 of file ExponentialSoftening.C.

46  : SmearedCrackSofteningBase(parameters),
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"))
51 {
52 }

Member Function Documentation

◆ computeCrackingRelease()

void ExponentialSoftening::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 
)
overridevirtual

Compute the effect of the cracking release model on the stress and stiffness in the direction of a single crack.

Parameters
stressStress in direction of crack
stiffness_ratioRatio of damaged to original stiffness in cracking direction
strainStrain in the current crack direction
crack_initiation_strainStrain in crack direction when crack first initiated
crack_max_strainMaximum strain in crack direction
cracking_stressThreshold tensile stress for crack initiation
youngs_modulusYoung's modulus

Implements SmearedCrackSofteningBase.

Definition at line 55 of file ExponentialSoftening.C.

62 {
63  mooseAssert(crack_max_strain >= crack_initiation_strain,
64  "crack_max_strain must be >= crack_initiation_strain");
65 
66  Real alpha = 0.0;
68  alpha = _alpha;
69  else
70  alpha = -youngs_modulus;
71 
72  // Compute stress that follows exponental curve
73  stress = cracking_stress *
75  (1.0 - _residual_stress) * std::exp(alpha * _beta / cracking_stress *
76  (crack_max_strain - crack_initiation_strain)));
77  // Compute ratio of current stiffness to original stiffness
78  stiffness_ratio = stress * crack_initiation_strain / (crack_max_strain * cracking_stress);
79 }

◆ resetProperties()

void SmearedCrackSofteningBase::resetProperties ( )
inlinefinalinherited

Definition at line 58 of file SmearedCrackSofteningBase.h.

58 {}

◆ resetQpProperties()

void SmearedCrackSofteningBase::resetQpProperties ( )
inlinefinalinherited

Retained as empty methods to avoid a warning from Material.C in framework. These methods are unused in all inheriting classes and should not be overwritten.

Definition at line 57 of file SmearedCrackSofteningBase.h.

57 {}

◆ validParams()

InputParameters ExponentialSoftening::validParams ( )
static

Definition at line 19 of file ExponentialSoftening.C.

20 {
21  InputParameters params = SmearedCrackSofteningBase::validParams();
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>(
26  "residual_stress",
27  0.0,
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>(
31  "alpha",
32  -1.0,
33  "alpha <= 0",
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>(
37  "beta",
38  1.0,
39  "beta >= 0",
40  "Multiplier applied to alpha to control the exponential softening "
41  "behavior.");
42  return params;
43 }

Member Data Documentation

◆ _alpha

const Real& ExponentialSoftening::_alpha
protected

Initial slope of the softening curve.

Definition at line 45 of file ExponentialSoftening.h.

Referenced by computeCrackingRelease().

◆ _alpha_set_by_user

const bool ExponentialSoftening::_alpha_set_by_user
protected

Variable to track whether _alpha was set by the user.

Definition at line 48 of file ExponentialSoftening.h.

Referenced by computeCrackingRelease().

◆ _beta

const Real& ExponentialSoftening::_beta
protected

Multiplier on alpha to determine the initial softening slope.

Definition at line 51 of file ExponentialSoftening.h.

Referenced by computeCrackingRelease().

◆ _residual_stress

const Real& ExponentialSoftening::_residual_stress
protected

Residual stress after full softening.

Definition at line 42 of file ExponentialSoftening.h.

Referenced by computeCrackingRelease().


The documentation for this class was generated from the following files:
SmearedCrackSofteningBase::SmearedCrackSofteningBase
SmearedCrackSofteningBase(const InputParameters &parameters)
Definition: SmearedCrackSofteningBase.C:28
ExponentialSoftening::_residual_stress
const Real & _residual_stress
Residual stress after full softening.
Definition: ExponentialSoftening.h:42
SmearedCrackSofteningBase::validParams
static InputParameters validParams()
Definition: SmearedCrackSofteningBase.C:17
ExponentialSoftening::_beta
const Real & _beta
Multiplier on alpha to determine the initial softening slope.
Definition: ExponentialSoftening.h:51
ExponentialSoftening::_alpha
const Real & _alpha
Initial slope of the softening curve.
Definition: ExponentialSoftening.h:45
ExponentialSoftening::_alpha_set_by_user
const bool _alpha_set_by_user
Variable to track whether _alpha was set by the user.
Definition: ExponentialSoftening.h:48