www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Attributes | 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 bool isIsotropic ()
 Is the implmented model isotropic? The safe default is 'false'. 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
 

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

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

Constructor & Destructor Documentation

◆ StressUpdateBase()

StressUpdateBase::StressUpdateBase ( const InputParameters &  parameters)

Definition at line 36 of file StressUpdateBase.C.

37  : Material(parameters),
38  _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : "")
39 {
40 }

Member Function Documentation

◆ computeTimeStepLimit()

Real StressUpdateBase::computeTimeStepLimit ( )
virtual

Reimplemented in RadialReturnStressUpdate.

Definition at line 56 of file StressUpdateBase.C.

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

◆ getTangentCalculationMethod()

virtual TangentCalculationMethod StressUpdateBase::getTangentCalculationMethod ( )
inlinevirtual

◆ isIsotropic()

virtual bool StressUpdateBase::isIsotropic ( )
inlinevirtual

Is the implmented model isotropic? The safe default is 'false'.

Reimplemented in RadialReturnStressUpdate, CappedDruckerPragerStressUpdate, and CappedMohrCoulombStressUpdate.

Definition at line 112 of file StressUpdateBase.h.

112 { return false; };

Referenced by ComputeMultipleInelasticStress::initialSetup().

◆ 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

Reimplemented in MultiParameterPlasticityStressUpdate, LinearViscoelasticStressUpdate, IsotropicPlasticityStressUpdate, and RadialReturnCreepStressUpdateBase.

Definition at line 49 of file StressUpdateBase.C.

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

◆ requiresIsotropicTensor()

virtual bool StressUpdateBase::requiresIsotropicTensor ( )
pure virtual

◆ resetProperties()

void StressUpdateBase::resetProperties ( )
inlinefinal

Definition at line 123 of file StressUpdateBase.h.

123 {}

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

122 {}

◆ setQp()

void StressUpdateBase::setQp ( unsigned int  qp)

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

Definition at line 43 of file StressUpdateBase.C.

44 {
45  _qp = qp;
46 }

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

◆ validParams()

InputParameters StressUpdateBase::validParams ( )
static

Definition at line 17 of file StressUpdateBase.C.

18 {
19  InputParameters params = Material::validParams();
20  params.addClassDescription("Calculates an admissible state (stress that lies on or within the "
21  "yield surface, plastic strains, internal parameters, etc). This "
22  "class is intended to be a parent class for classes with specific "
23  "constitutive models.");
24  params.addParam<std::string>(
25  "base_name",
26  "Optional parameter that defines a prefix for all material "
27  "properties related to this stress update model. This allows for "
28  "multiple models of the same type to be used without naming conflicts.");
29  // The return stress increment classes are intended to be iterative materials, so must set compute
30  // = false for all inheriting classes
31  params.set<bool>("compute") = false;
32  params.suppressParameter<bool>("compute");
33  return params;
34 }

Referenced by LinearViscoelasticStressUpdate::validParams(), RadialReturnStressUpdate::validParams(), and MultiParameterPlasticityStressUpdate::validParams().

Member Data Documentation

◆ _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 128 of file StressUpdateBase.h.


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