https://mooseframework.inl.gov
ADAbruptSoftening.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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 "ADAbruptSoftening.h"
11 
12 #include "MooseMesh.h"
13 
14 registerMooseObject("SolidMechanicsApp", ADAbruptSoftening);
15 
18 {
20  params.addClassDescription("Softening model with an abrupt stress release upon cracking. This "
21  "class relies on automatic differentiation and is intended to be used "
22  "with ADComputeSmearedCrackingStress.");
23  params.addRangeCheckedParam<Real>(
24  "residual_stress",
25  0.0,
26  "residual_stress <= 1 & residual_stress >= 0",
27  "The fraction of the cracking stress allowed to be maintained following a crack.");
28  return params;
29 }
30 
32  : ADSmearedCrackSofteningBase(parameters), _residual_stress(getParam<Real>("residual_stress"))
33 {
34 }
35 
36 void
38  ADReal & stiffness_ratio,
39  const ADReal & /*strain*/,
40  const ADReal & crack_initiation_strain,
41  const ADReal & crack_max_strain,
42  const ADReal & cracking_stress,
43  const ADReal & youngs_modulus)
44 {
45  if (_residual_stress == 0.0)
46  {
47  const Real tiny = 1.e-16;
48  stiffness_ratio = tiny;
49  stress = tiny * crack_initiation_strain * youngs_modulus;
50  }
51  else
52  {
53  stress = _residual_stress * cracking_stress;
54  stiffness_ratio = stress / (crack_max_strain * youngs_modulus);
55  }
56 }
static InputParameters validParams()
const Real & _residual_stress
Residual stress after full softening.
ADAbruptSoftening(const InputParameters &parameters)
ADAbruptSoftening is a smeared crack softening model that abruptly drops the stress upon crack initia...
ADSmearedCrackSofteningBase is the base class for a set of models that define the softening behavior ...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
registerMooseObject("SolidMechanicsApp", ADAbruptSoftening)
void addClassDescription(const std::string &doc_string)
void addRangeCheckedParam(const std::string &name, const T &value, const std::string &parsed_function, const std::string &doc_string)
virtual void computeCrackingRelease(ADReal &stress, ADReal &stiffness_ratio, const ADReal &strain, const ADReal &crack_initiation_strain, const ADReal &crack_max_strain, const ADReal &cracking_stress, const ADReal &youngs_modulus) override
Compute the effect of the cracking release model on the stress and stiffness in the direction of a si...
static InputParameters validParams()