www.mooseframework.org
ReturnMappingModel.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "ConstitutiveModel.h"
14 
15 class ReturnMappingModel;
16 
17 template <>
18 InputParameters validParams<ReturnMappingModel>();
19 
27 {
28 public:
29  ReturnMappingModel(const InputParameters & parameters,
30  const std::string inelastic_strain_name = "");
31  virtual ~ReturnMappingModel() {}
32 
33  virtual void initQpStatefulProperties() override;
34 
35  virtual void computeStress(const Elem & current_elem,
36  const SymmElasticityTensor & elasticityTensor,
37  const SymmTensor & stress_old,
38  SymmTensor & strain_increment,
39  SymmTensor & stress_new) override;
40 
51  void computeStress(const Elem & current_elem,
52  const SymmElasticityTensor & elasticityTensor,
53  const SymmTensor & stress_old,
54  SymmTensor & strain_increment,
55  SymmTensor & stress_new,
56  SymmTensor & inelastic_strain_increment);
57 
58  virtual Real computeReferenceResidual(const Real effective_trial_stress,
59  const Real scalar) override;
60 
65  Real computeTimeStepLimit();
66 
67  virtual Real minimumPermissibleValue(const Real /*effective_trial_stress*/) const override
68  {
69  return 0.0;
70  }
71 
72  void outputIterationSummary(std::stringstream * iter_output,
73  const unsigned int total_it) override;
74 
75 protected:
81  virtual void computeStressInitialize(Real /*effectiveTrialStress*/,
82  const SymmElasticityTensor & /*elasticityTensor*/)
83  {
84  }
85 
90  virtual void computeStressFinalize(const SymmTensor & /*inelasticStrainIncrement*/) {}
91 
93 
96 
97  MaterialProperty<Real> & _effective_inelastic_strain;
98  const MaterialProperty<Real> & _effective_inelastic_strain_old;
101  MaterialProperty<Real> * _matl_timestep_limit;
102 };
103 
ReturnMappingModel::_effective_strain_increment
Real _effective_strain_increment
Definition: ReturnMappingModel.h:92
ConstitutiveModel.h
ConstitutiveModel
Definition: ConstitutiveModel.h:22
ReturnMappingModel::minimumPermissibleValue
virtual Real minimumPermissibleValue(const Real) const override
Compute the minimum permissible value of the scalar.
Definition: ReturnMappingModel.h:67
ReturnMappingModel::_effective_inelastic_strain_old
const MaterialProperty< Real > & _effective_inelastic_strain_old
Definition: ReturnMappingModel.h:98
ReturnMappingModel::_compute_matl_timestep_limit
const bool _compute_matl_timestep_limit
Definition: ReturnMappingModel.h:100
validParams< ReturnMappingModel >
InputParameters validParams< ReturnMappingModel >()
Definition: ReturnMappingModel.C:17
SymmElasticityTensor
This class defines a basic set of capabilities any elasticity tensor should have.
Definition: SymmElasticityTensor.h:55
ReturnMappingModel::computeStressFinalize
virtual void computeStressFinalize(const SymmTensor &)
Perform any necessary steps to finalize state after return mapping iterations.
Definition: ReturnMappingModel.h:90
ReturnMappingModel::_matl_timestep_limit
MaterialProperty< Real > * _matl_timestep_limit
Definition: ReturnMappingModel.h:101
ReturnMappingModel::~ReturnMappingModel
virtual ~ReturnMappingModel()
Definition: ReturnMappingModel.h:31
SingleVariableReturnMappingSolution.h
ReturnMappingModel::computeStressInitialize
virtual void computeStressInitialize(Real, const SymmElasticityTensor &)
Perform any necessary initialization before return mapping iterations.
Definition: ReturnMappingModel.h:81
ReturnMappingModel
Base class for models that perform return mapping iterations to compute stress.
Definition: ReturnMappingModel.h:26
ReturnMappingModel::computeReferenceResidual
virtual Real computeReferenceResidual(const Real effective_trial_stress, const Real scalar) override
Compute a reference quantity to be used for checking relative convergence.
Definition: ReturnMappingModel.C:135
ReturnMappingModel::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: ReturnMappingModel.C:47
ReturnMappingModel::outputIterationSummary
void outputIterationSummary(std::stringstream *iter_output, const unsigned int total_it) override
Output summary information for the convergence history of the model.
Definition: ReturnMappingModel.C:154
ReturnMappingModel::computeStress
virtual void computeStress(const Elem &current_elem, const SymmElasticityTensor &elasticityTensor, const SymmTensor &stress_old, SymmTensor &strain_increment, SymmTensor &stress_new) override
Definition: ReturnMappingModel.C:53
ReturnMappingModel::ReturnMappingModel
ReturnMappingModel(const InputParameters &parameters, const std::string inelastic_strain_name="")
Definition: ReturnMappingModel.C:30
ReturnMappingModel::_max_inelastic_increment
Real _max_inelastic_increment
Definition: ReturnMappingModel.h:99
SymmTensor
Definition: SymmTensor.h:21
ReturnMappingModel::_effective_inelastic_strain
MaterialProperty< Real > & _effective_inelastic_strain
Definition: ReturnMappingModel.h:97
SingleVariableReturnMappingSolution
Base class that provides capability for Newton return mapping iterations on a single variable.
Definition: SingleVariableReturnMappingSolution.h:24
ReturnMappingModel::computeTimeStepLimit
Real computeTimeStepLimit()
Compute the limiting value of the time step for this material.
Definition: ReturnMappingModel.C:141
ReturnMappingModel::_three_shear_modulus
Real _three_shear_modulus
3 * shear modulus
Definition: ReturnMappingModel.h:95