www.mooseframework.org
Public Member Functions | List of all members
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 ()
 
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
 

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

Constructor & Destructor Documentation

StressUpdateBase::StressUpdateBase ( const InputParameters &  parameters)

Definition at line 27 of file StressUpdateBase.C.

27 : Material(parameters) {}

Member Function Documentation

Real StressUpdateBase::computeTimeStepLimit ( )
virtual

Reimplemented in RadialReturnStressUpdate.

Definition at line 43 of file StressUpdateBase.C.

44 {
45  return std::numeric_limits<Real>::max();
46 }
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

Reimplemented in MultiParameterPlasticityStressUpdate, LinearViscoelasticStressUpdate, IsotropicPlasticityStressUpdate, and PowerLawCreepStressUpdate.

Definition at line 36 of file StressUpdateBase.C.

37 {
38  mooseError(
39  "propagateQpStatefulProperties called: it needs to be implemented by your inelastic model");
40 }
virtual bool StressUpdateBase::requiresIsotropicTensor ( )
pure virtual
void StressUpdateBase::resetProperties ( )
inlinefinal

Definition at line 93 of file StressUpdateBase.h.

93 {}
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 92 of file StressUpdateBase.h.

92 {}
void StressUpdateBase::setQp ( unsigned int  qp)

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

Definition at line 30 of file StressUpdateBase.C.

31 {
32  _qp = qp;
33 }
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_incrementUpon input: the strain increment. Upon output: the elastic strain increment
inelastic_strain_incrementThe inelastic_strain resulting from the interative 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
compute_full_tangent_operatorThe 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_operatord(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

Implemented in MultiParameterPlasticityStressUpdate, RadialReturnStressUpdate, and LinearViscoelasticStressUpdate.


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