www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
ADStressUpdateBase< compute_stage > Class Template Referenceabstract

ADStressUpdateBase is a material that is not called by MOOSE because of the compute=false flag set in the parameter list. More...

#include <ADComputeMultipleInelasticStress.h>

Inheritance diagram for ADStressUpdateBase< compute_stage >:
[legend]

Public Member Functions

 ADStressUpdateBase (const InputParameters &parameters)
 
virtual void updateState (ADRankTwoTensor &strain_increment, ADRankTwoTensor &inelastic_strain_increment, const ADRankTwoTensor &rotation_increment, ADRankTwoTensor &stress_new, const RankTwoTensor &stress_old, const ADRankFourTensor &elasticity_tensor, const RankTwoTensor &elastic_strain_old)=0
 Given a strain increment that results in a trial stress, perform some procedure (such as an iterative return-mapping process) to produce an admissible stress, an elastic strain increment and an inelastic strain increment. More...
 
void setQp (unsigned int qp)
 Sets the value of the global variable _qp for inheriting classes. More...
 
virtual void propagateQpStatefulProperties ()
 If updateState is not called during a timestep, this will be. More...
 
virtual bool requiresIsotropicTensor ()=0
 Does the model require the elasticity tensor to be isotropic? More...
 
virtual Real computeTimeStepLimit ()
 
void resetQpProperties () final
 Retained as empty methods to avoid a warning from Material.C in framework. These methods are unused in all inheriting classes and should not be overwritten. More...
 
void resetProperties () final
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Attributes

const std::string _base_name
 Name used as a prefix for all material properties related to the stress update model. More...
 
 usingMaterialMembers
 

Detailed Description

template<ComputeStage compute_stage>
class ADStressUpdateBase< compute_stage >

ADStressUpdateBase is a material that is not called by MOOSE because of the compute=false flag set in the parameter list.

This class is a base class for materials that perform some internal computational procedure (such as an iterative return-mapping procedure) to compute an admissible state (which is usually an admissible stress that lies on or within the yield surface, as well as a set of internal parameters such as plastic strains). The computational procedure must return the admissible stress and a decomposition of the applied strain into elastic and inelastic components. All materials inheriting from this class must be called by a separate material, such as ComputeMultipleInelasticStress

Definition at line 28 of file ADComputeMultipleInelasticStress.h.

Constructor & Destructor Documentation

◆ ADStressUpdateBase()

template<ComputeStage compute_stage>
ADStressUpdateBase< compute_stage >::ADStressUpdateBase ( const InputParameters &  parameters)

Definition at line 39 of file ADStressUpdateBase.C.

40  : ADMaterial<compute_stage>(parameters),
41  _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : "")
42 {
43 }

Member Function Documentation

◆ computeTimeStepLimit()

template<ComputeStage compute_stage>
Real ADStressUpdateBase< compute_stage >::computeTimeStepLimit ( )
virtual

Reimplemented in ADRadialReturnStressUpdate< compute_stage >, ADLAROMANCEStressUpdateBase< compute_stage >, and ADViscoplasticityStressUpdateBase< compute_stage >.

Definition at line 62 of file ADStressUpdateBase.C.

63 {
64  return std::numeric_limits<Real>::max();
65 }

◆ propagateQpStatefulProperties()

template<ComputeStage compute_stage>
void ADStressUpdateBase< compute_stage >::propagateQpStatefulProperties ( )
virtual

If updateState is not called during a timestep, this will be.

This method allows derived classes to set internal parameters from their Old values, for instance

Reimplemented in ADViscoplasticityStressUpdateBase< compute_stage >, ADIsotropicPlasticityStressUpdate< compute_stage >, and ADRadialReturnCreepStressUpdateBase< compute_stage >.

Definition at line 54 of file ADStressUpdateBase.C.

55 {
56  mooseError(
57  "propagateQpStatefulProperties called: it needs to be implemented by your inelastic model");
58 }

◆ requiresIsotropicTensor()

template<ComputeStage compute_stage>
virtual bool ADStressUpdateBase< compute_stage >::requiresIsotropicTensor ( )
pure virtual

◆ resetProperties()

template<ComputeStage compute_stage>
void ADStressUpdateBase< compute_stage >::resetProperties ( )
inlinefinal

Definition at line 104 of file ADStressUpdateBase.h.

104 {}

◆ resetQpProperties()

template<ComputeStage compute_stage>
void ADStressUpdateBase< compute_stage >::resetQpProperties ( )
inlinefinal

Retained as empty methods to avoid a warning from Material.C in framework. These methods are unused in all inheriting classes and should not be overwritten.

Definition at line 103 of file ADStressUpdateBase.h.

103 {}

◆ setQp()

template<ComputeStage compute_stage>
void ADStressUpdateBase< compute_stage >::setQp ( unsigned int  qp)

Sets the value of the global variable _qp for inheriting classes.

Definition at line 47 of file ADStressUpdateBase.C.

48 {
49  _qp = qp;
50 }

◆ updateState()

template<ComputeStage compute_stage>
virtual void ADStressUpdateBase< compute_stage >::updateState ( ADRankTwoTensor &  strain_increment,
ADRankTwoTensor &  inelastic_strain_increment,
const ADRankTwoTensor &  rotation_increment,
ADRankTwoTensor &  stress_new,
const RankTwoTensor stress_old,
const ADRankFourTensor &  elasticity_tensor,
const RankTwoTensor elastic_strain_old 
)
pure virtual

Given a strain increment that results in a trial stress, perform some procedure (such as an iterative return-mapping process) to produce an admissible stress, an elastic strain increment and an inelastic strain increment.

If _fe_problem.currentlyComputingJacobian() = true, then updateState also computes d(stress)/d(strain) (or some approximation to it).

This method is called by ComputeMultipleInelasticStress. This method is pure virtual: all inheriting classes must overwrite this method.

Parameters
strain_incrementUpon input: the strain increment. Upon output: the elastic strain increment
inelastic_strain_incrementThe inelastic_strain resulting from the iterative procedure
rotation_incrementThe finite-strain rotation increment
stress_newUpon input: the trial stress that results from applying strain_increment as an elastic strain. Upon output: the admissible stress
stress_oldThe old value of stress
elasticity_tensorThe elasticity tensor

Implemented in ADRadialReturnStressUpdate< compute_stage >, and ADViscoplasticityStressUpdate< compute_stage >.

◆ validParams()

template<ComputeStage compute_stage>
InputParameters ADStressUpdateBase< compute_stage >::validParams ( )
static

Definition at line 19 of file ADStressUpdateBase.C.

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 }

Referenced by ADViscoplasticityStressUpdateBase< compute_stage >::validParams(), and ADRadialReturnStressUpdate< compute_stage >::validParams().

Member Data Documentation

◆ _base_name

template<ComputeStage compute_stage>
const std::string ADStressUpdateBase< compute_stage >::_base_name
protected

Name used as a prefix for all material properties related to the stress update model.

Definition at line 109 of file ADStressUpdateBase.h.

◆ usingMaterialMembers

template<ComputeStage compute_stage>
ADStressUpdateBase< compute_stage >::usingMaterialMembers
protected

Definition at line 111 of file ADStressUpdateBase.h.


The documentation for this class was generated from the following files:
validParams
InputParameters validParams()
ADStressUpdateBase::_base_name
const std::string _base_name
Name used as a prefix for all material properties related to the stress update model.
Definition: ADStressUpdateBase.h:109