Loading [MathJax]/extensions/tex2jax.js
www.mooseframework.org
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
AbruptSoftening.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #include "AbruptSoftening.h"
11 
12 #include "MooseMesh.h"
13 
14 registerMooseObject("TensorMechanicsApp", AbruptSoftening);
15 
17 
18 InputParameters
20 {
21  InputParameters params = SmearedCrackSofteningBase::validParams();
22  params.addClassDescription("Softening model with an abrupt stress release upon cracking. This "
23  "class is intended to be used with ComputeSmearedCrackingStress.");
24  params.addRangeCheckedParam<Real>(
25  "residual_stress",
26  0.0,
27  "residual_stress <= 1 & residual_stress >= 0",
28  "The fraction of the cracking stress allowed to be maintained following a crack.");
29  return params;
30 }
31 
32 AbruptSoftening::AbruptSoftening(const InputParameters & parameters)
33  : SmearedCrackSofteningBase(parameters), _residual_stress(getParam<Real>("residual_stress"))
34 {
35 }
36 
37 void
39  Real & stiffness_ratio,
40  const Real /*strain*/,
41  const Real crack_initiation_strain,
42  const Real crack_max_strain,
43  const Real cracking_stress,
44  const Real youngs_modulus)
45 {
46  if (_residual_stress == 0.0)
47  {
48  const Real tiny = 1.e-16;
49  stiffness_ratio = tiny;
50  stress = tiny * crack_initiation_strain * youngs_modulus;
51  }
52  else
53  {
54  stress = _residual_stress * cracking_stress;
55  stiffness_ratio = stress / (crack_max_strain * youngs_modulus);
56  }
57 }
AbruptSoftening
AbruptSoftening is a smeared crack softening model that abruptly drops the stress upon crack initiati...
Definition: AbruptSoftening.h:25
registerMooseObject
registerMooseObject("TensorMechanicsApp", AbruptSoftening)
SmearedCrackSofteningBase
SmearedCrackSofteningBase is the base class for a set of models that define the softening behavior of...
Definition: SmearedCrackSofteningBase.h:28
AbruptSoftening::computeCrackingRelease
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...
Definition: AbruptSoftening.C:38
SmearedCrackSofteningBase::validParams
static InputParameters validParams()
Definition: SmearedCrackSofteningBase.C:17
AbruptSoftening.h
AbruptSoftening::validParams
static InputParameters validParams()
Definition: AbruptSoftening.C:19
AbruptSoftening::_residual_stress
const Real & _residual_stress
Residual stress after full softening.
Definition: AbruptSoftening.h:42
defineLegacyParams
defineLegacyParams(AbruptSoftening)
AbruptSoftening::AbruptSoftening
AbruptSoftening(const InputParameters &parameters)
Definition: AbruptSoftening.C:32