www.mooseframework.org
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
 

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

◆ ADStressUpdateBase()

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

Definition at line 34 of file ADStressUpdateBase.C.

35  : ADMaterial<compute_stage>(parameters),
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.

Member Function Documentation

◆ computeTimeStepLimit()

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

Reimplemented in ADRadialReturnStressUpdate< compute_stage >.

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

Reimplemented in ADRadialReturnCreepStressUpdateBase< compute_stage >.

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?

Implemented in ADRadialReturnStressUpdate< compute_stage >.

Referenced by ADComputeMultipleInelasticStress< compute_stage >::initialSetup().

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

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

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 108 of file ADStressUpdateBase.h.

◆ usingMaterialMembers

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

Definition at line 110 of file ADStressUpdateBase.h.


The documentation for this class was generated from the following files: