www.mooseframework.org
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
 

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 26 of file ExponentialSoftening.h.

Constructor & Destructor Documentation

◆ ExponentialSoftening()

ExponentialSoftening::ExponentialSoftening ( const InputParameters &  parameters)

Definition at line 44 of file ExponentialSoftening.C.

45  : SmearedCrackSofteningBase(parameters),
46  _residual_stress(getParam<Real>("residual_stress")),
47  _alpha(getParam<Real>("alpha")),
48  _alpha_set_by_user(parameters.isParamSetByUser("alpha")),
49  _beta(getParam<Real>("beta"))
50 {
51 }
const Real & _alpha
Initial slope of the softening curve.
const Real & _residual_stress
Residual stress after full softening.
const Real & _beta
Multiplier on alpha to determine the initial softening slope.
SmearedCrackSofteningBase(const InputParameters &parameters)
const bool _alpha_set_by_user
Variable to track whether _alpha was set by the user.

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 54 of file ExponentialSoftening.C.

61 {
62  mooseAssert(crack_max_strain >= crack_initiation_strain,
63  "crack_max_strain must be >= crack_initiation_strain");
64 
65  Real alpha = 0.0;
67  alpha = _alpha;
68  else
69  alpha = -youngs_modulus;
70 
71  // Compute stress that follows exponental curve
72  stress = cracking_stress *
74  (1.0 - _residual_stress) * std::exp(alpha * _beta / cracking_stress *
75  (crack_max_strain - crack_initiation_strain)));
76  // Compute ratio of current stiffness to original stiffness
77  stiffness_ratio = stress * crack_initiation_strain / (crack_max_strain * cracking_stress);
78 }
const Real & _alpha
Initial slope of the softening curve.
const Real & _residual_stress
Residual stress after full softening.
const Real & _beta
Multiplier on alpha to determine the initial softening slope.
const bool _alpha_set_by_user
Variable to track whether _alpha was set by the user.

◆ resetProperties()

void SmearedCrackSofteningBase::resetProperties ( )
inlinefinalinherited

Definition at line 57 of file SmearedCrackSofteningBase.h.

57 {}

◆ 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 56 of file SmearedCrackSofteningBase.h.

56 {}

Member Data Documentation

◆ _alpha

const Real& ExponentialSoftening::_alpha
protected

Initial slope of the softening curve.

Definition at line 44 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 47 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 50 of file ExponentialSoftening.h.

Referenced by computeCrackingRelease().

◆ _residual_stress

const Real& ExponentialSoftening::_residual_stress
protected

Residual stress after full softening.

Definition at line 41 of file ExponentialSoftening.h.

Referenced by computeCrackingRelease().


The documentation for this class was generated from the following files: