StressUpdateBase Class Referenceabstract

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

#include <StressUpdateBase.h>

Inheritance diagram for StressUpdateBase:
[legend]

## Public Member Functions

StressUpdateBase (const InputParameters &parameters)

virtual void updateState (RankTwoTensor &strain_increment, RankTwoTensor &inelastic_strain_increment, const RankTwoTensor &rotation_increment, RankTwoTensor &stress_new, const RankTwoTensor &stress_old, const RankFourTensor &elasticity_tensor, const RankTwoTensor &elastic_strain_old, bool compute_full_tangent_operator, RankFourTensor &tangent_operator)=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 ()

virtual TangentCalculationMethod getTangentCalculationMethod ()

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

## Detailed Description

StressUpdateBase 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 53 of file StressUpdateBase.h.

## ◆ StressUpdateBase()

 StressUpdateBase::StressUpdateBase ( const InputParameters & parameters )

Definition at line 35 of file StressUpdateBase.C.

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

## ◆ computeTimeStepLimit()

 Real StressUpdateBase::computeTimeStepLimit ( )
virtual

Reimplemented in RadialReturnStressUpdate.

Definition at line 55 of file StressUpdateBase.C.

56 {
57  return std::numeric_limits<Real>::max();
58 }

## ◆ getTangentCalculationMethod()

 virtual TangentCalculationMethod StressUpdateBase::getTangentCalculationMethod ( )
inlinevirtual

## ◆ propagateQpStatefulProperties()

 void StressUpdateBase::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 48 of file StressUpdateBase.C.

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

## ◆ requiresIsotropicTensor()

 virtual bool StressUpdateBase::requiresIsotropicTensor ( )
pure virtual

Does the model require the elasticity tensor to be isotropic?

Referenced by ComputeMultipleInelasticStress::initialSetup().

## ◆ resetProperties()

 void StressUpdateBase::resetProperties ( )
inlinefinal

Definition at line 117 of file StressUpdateBase.h.

117 {}

## ◆ resetQpProperties()

 void StressUpdateBase::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 116 of file StressUpdateBase.h.

116 {}

## ◆ setQp()

 void StressUpdateBase::setQp ( unsigned int qp )

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

Definition at line 42 of file StressUpdateBase.C.

43 {
44  _qp = qp;
45 }

## ◆ updateState()

 virtual void StressUpdateBase::updateState ( RankTwoTensor & strain_increment, RankTwoTensor & inelastic_strain_increment, const RankTwoTensor & rotation_increment, RankTwoTensor & stress_new, const RankTwoTensor & stress_old, const RankFourTensor & elasticity_tensor, const RankTwoTensor & elastic_strain_old, bool compute_full_tangent_operator, RankFourTensor & tangent_operator )
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 virutal: 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 interative 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 compute_full_tangent_operator The calling routine would like the full consistent tangent operator to be placed in tangent_operator, if possible. This is irrelevant if _fe_problem.currentlyComputingJacobian() = false tangent_operator d(stress)/d(strain), or some approximation to it If compute_full_tangent_operator=false, then tangent_operator=elasticity_tensor is an appropriate choice. tangent_operator is only computed if _fe_problem.currentlyComputingJacobian() = true

## ◆ _base_name

 const std::string StressUpdateBase::_base_name
protected

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

Definition at line 122 of file StressUpdateBase.h.

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