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

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

## 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 27 of file ADComputeMultipleInelasticStress.h.

## Constructor & Destructor Documentation

template<ComputeStage compute_stage>

Definition at line 34 of file ADStressUpdateBase.C.

36  _base_name(isParamValid("base_name") ? adGetParam<std::string>("base_name") + "_" : "")
37 {
38 }
const std::string _base_name
Name used as a prefix for all material properties related to the stress update model.

## ◆ computeTimeStepLimit()

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

Definition at line 57 of file ADStressUpdateBase.C.

58 {
59  return std::numeric_limits<Real>::max();
60 }

## ◆ 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

Definition at line 49 of file ADStressUpdateBase.C.

50 {
51  mooseError(
52  "propagateQpStatefulProperties called: it needs to be implemented by your inelastic model");
53 }

## ◆ requiresIsotropicTensor()

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

Does the model require the elasticity tensor to be isotropic?

## ◆ resetProperties()

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

Definition at line 103 of file ADStressUpdateBase.h.

103 {}

## ◆ 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 102 of file ADStressUpdateBase.h.

102 {}

## ◆ 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 42 of file ADStressUpdateBase.C.

43 {
44  _qp = qp;
45 }

template<ComputeStage compute_stage>
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_increment Upon input: the strain increment. Upon output: the elastic strain increment inelastic_strain_increment The inelastic_strain resulting from the iterative procedure rotation_increment The finite-strain rotation increment stress_new Upon input: the trial stress that results from applying strain_increment as an elastic strain. Upon output: the admissible stress stress_old The old value of stress elasticity_tensor The elasticity tensor

## ◆ _base_name

template<ComputeStage compute_stage>
protected

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

Definition at line 108 of file ADStressUpdateBase.h.

## ◆ usingMaterialMembers

template<ComputeStage compute_stage>