https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
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
36void
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 const ADReal & /*poissons_ratio*/)
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}
registerMooseObject("SolidMechanicsApp", ADAbruptSoftening)
DualNumber< Real, DNDerivativeType, true > ADReal
ADAbruptSoftening is a smeared crack softening model that abruptly drops the stress upon crack initia...
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, const ADReal &poissons_ratio) override
Compute the effect of the cracking release model on the stress and stiffness in the direction of a si...
ADAbruptSoftening(const InputParameters &parameters)
static InputParameters validParams()
const Real & _residual_stress
Residual stress after full softening.
ADSmearedCrackSofteningBase is the base class for a set of models that define the softening behavior ...
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)