https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ADPowerLawSoftening.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 "ADPowerLawSoftening.h"
11
12#include "MooseMesh.h"
13
15
18{
20 params.addClassDescription("Softening model with an abrupt stress release upon cracking. This "
21 "class is intended to be used with ADComputeSmearedCrackingStress and "
22 "relies on automatic differentiation.");
24 "stiffness_reduction",
25 "stiffness_reduction <= 1 & stiffness_reduction >= 0",
26 "Factor multiplied by the current stiffness each time a new crack forms");
27 return params;
28}
29
31 : ADSmearedCrackSofteningBase(parameters),
32 _stiffness_reduction(getParam<Real>("stiffness_reduction"))
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 (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}
registerMooseObject("SolidMechanicsApp", ADPowerLawSoftening)
DualNumber< Real, DNDerivativeType, true > ADReal
ADPowerLawSoftening is a smeared crack softening model that uses a power law equation to soften the t...
ADPowerLawSoftening(const InputParameters &parameters)
static InputParameters validParams()
const Real & _stiffness_reduction
Reduction factor applied to the initial stiffness each time a new crack initiates.
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...
ADSmearedCrackSofteningBase is the base class for a set of models that define the softening behavior ...
void addRequiredRangeCheckedParam(const std::string &name, const std::string &parsed_function, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)