www.mooseframework.org
PowerLawSoftening.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 "PowerLawSoftening.h"
11 
12 #include "MooseMesh.h"
13 
14 registerMooseObject("TensorMechanicsApp", PowerLawSoftening);
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.addRequiredRangeCheckedParam<Real>(
25  "stiffness_reduction",
26  "stiffness_reduction <= 1 & stiffness_reduction >= 0",
27  "Factor multiplied by the current stiffness each time a new crack forms");
28  return params;
29 }
30 
31 PowerLawSoftening::PowerLawSoftening(const InputParameters & parameters)
32  : SmearedCrackSofteningBase(parameters),
33  _stiffness_reduction(getParam<Real>("stiffness_reduction"))
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 (stress > cracking_stress)
47  {
48  // This is equivalent to k = k_0 * (stiffness_reduction)^n, where n is the number of cracks
49  stiffness_ratio *= _stiffness_reduction;
50  stress = stiffness_ratio * youngs_modulus * strain;
51  }
52 }
PowerLawSoftening.h
PowerLawSoftening
PowerLawSoftening is a smeared crack softening model that uses a power law equation to soften the ten...
Definition: PowerLawSoftening.h:25
SmearedCrackSofteningBase
SmearedCrackSofteningBase is the base class for a set of models that define the softening behavior of...
Definition: SmearedCrackSofteningBase.h:28
PowerLawSoftening::PowerLawSoftening
PowerLawSoftening(const InputParameters &parameters)
Definition: PowerLawSoftening.C:31
PowerLawSoftening::validParams
static InputParameters validParams()
Definition: PowerLawSoftening.C:19
SmearedCrackSofteningBase::validParams
static InputParameters validParams()
Definition: SmearedCrackSofteningBase.C:17
PowerLawSoftening::_stiffness_reduction
const Real & _stiffness_reduction
Reduction factor applied to the initial stiffness each time a new crack initiates.
Definition: PowerLawSoftening.h:42
defineLegacyParams
defineLegacyParams(PowerLawSoftening)
registerMooseObject
registerMooseObject("TensorMechanicsApp", PowerLawSoftening)
PowerLawSoftening::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: PowerLawSoftening.C:38