www.mooseframework.org
ADStressUpdateBase.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 "ADStressUpdateBase.h"
11 #include "MooseMesh.h"
12 #include "InputParameters.h"
13 #include "Conversion.h"
14 
16 
17 template <ComputeStage compute_stage>
18 InputParameters
20 {
21  InputParameters params = ADMaterial<compute_stage>::validParams();
22  params.addClassDescription("Calculates an admissible state (stress that lies on or within the "
23  "yield surface, plastic strains, internal parameters, etc). This "
24  "class is intended to be a parent class for classes with specific "
25  "constitutive models.");
26  params.addParam<std::string>(
27  "base_name",
28  "Optional parameter that defines a prefix for all material "
29  "properties related to this stress update model. This allows for "
30  "multiple models of the same type to be used without naming conflicts.");
31  // The return stress increment classes are intended to be iterative materials, so must set
32  // compute = false for all inheriting classes
33  params.set<bool>("compute") = false;
34  params.suppressParameter<bool>("compute");
35  return params;
36 }
37 
38 template <ComputeStage compute_stage>
39 ADStressUpdateBase<compute_stage>::ADStressUpdateBase(const InputParameters & parameters)
40  : ADMaterial<compute_stage>(parameters),
41  _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : "")
42 {
43 }
44 
45 template <ComputeStage compute_stage>
46 void
48 {
49  _qp = qp;
50 }
51 
52 template <ComputeStage compute_stage>
53 void
55 {
56  mooseError(
57  "propagateQpStatefulProperties called: it needs to be implemented by your inelastic model");
58 }
59 
60 template <ComputeStage compute_stage>
61 Real
63 {
64  return std::numeric_limits<Real>::max();
65 }
66 
67 // explicit instantiation is required for AD base classes
adBaseClass
adBaseClass(ADStressUpdateBase)
defineADLegacyParams
defineADLegacyParams(ADStressUpdateBase)
ADStressUpdateBase::setQp
void setQp(unsigned int qp)
Sets the value of the global variable _qp for inheriting classes.
Definition: ADStressUpdateBase.C:47
ADStressUpdateBase.h
ADStressUpdateBase::propagateQpStatefulProperties
virtual void propagateQpStatefulProperties()
If updateState is not called during a timestep, this will be.
Definition: ADStressUpdateBase.C:54
ADStressUpdateBase
ADStressUpdateBase is a material that is not called by MOOSE because of the compute=false flag set in...
Definition: ADComputeMultipleInelasticStress.h:28
ADStressUpdateBase::ADStressUpdateBase
ADStressUpdateBase(const InputParameters &parameters)
Definition: ADStressUpdateBase.C:39
validParams
InputParameters validParams()
ADStressUpdateBase::computeTimeStepLimit
virtual Real computeTimeStepLimit()
Definition: ADStressUpdateBase.C:62
ADStressUpdateBase::validParams
static InputParameters validParams()
Definition: ADStressUpdateBase.C:19