https://mooseframework.inl.gov
ADMultiplePowerLawCreepStressUpdate.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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 
13 
26 {
27 public:
29 
31 
32  virtual Real
34  const ADMaterialProperty<RankTwoTensor> & strain_rate) override;
35 
36  virtual bool substeppingCapabilityEnabled() override;
37 
38 protected:
39  virtual void computeStressInitialize(const ADReal & effective_trial_stress,
40  const ADRankFourTensor & elasticity_tensor) override;
41  virtual ADReal computeResidual(const ADReal & effective_trial_stress,
42  const ADReal & scalar) override;
43  virtual ADReal computeDerivative(const ADReal & effective_trial_stress,
44  const ADReal & scalar) override;
45 
46  std::size_t stressIndex(const ADReal & effective_trial_stress);
47 
50 
52  const std::vector<Real> _coefficient;
53 
55  const std::vector<Real> _n_exponent;
56 
58  const std::vector<Real> _m_exponent;
59 
61  const std::vector<Real> _stress_thresholds;
62 
64  const std::vector<Real> _activation_energy;
65 
68 
71 
74 
77 
79  unsigned int _stress_index;
80 
82  const unsigned int _number_of_models;
83 };
unsigned int _stress_index
Quadrature-point value pointing to the right power law parameters.
const std::vector< Real > _n_exponent
Exponent on the effective stress vector.
const ADVariableValue *const _temperature
Temperature variable value.
virtual Real computeStrainEnergyRateDensity(const ADMaterialProperty< RankTwoTensor > &stress, const ADMaterialProperty< RankTwoTensor > &strain_rate) override
const std::vector< Real > _stress_thresholds
Stress thresholds vector.
virtual ADReal computeDerivative(const ADReal &effective_trial_stress, const ADReal &scalar) override
Real elasticity_tensor(unsigned int i, unsigned int j, unsigned int k, unsigned int l)
ADReal _exponential
Exponential calculated from activation, gas constant, and temperature.
std::size_t stressIndex(const ADReal &effective_trial_stress)
const std::vector< Real > _m_exponent
Exponent on time vector.
virtual bool substeppingCapabilityEnabled() override
Does the model include the infrastructure for substep decomposition of the elastic strain initially u...
const std::vector< Real > _activation_energy
Activation energy for exp term vector.
This class provides baseline functionallity for creep models based on the stress update material in a...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual ADReal computeResidual(const ADReal &effective_trial_stress, const ADReal &scalar) override
Real _exp_time
Exponential calculated from current time.
ADMultiplePowerLawCreepStressUpdate(const InputParameters &parameters)
const std::vector< Real > _coefficient
Leading coefficient vector.
const InputParameters & parameters() const
This class uses the stress update material in a radial return isotropic creep model.
const unsigned int _number_of_models
Total number of models provided by the user.
const Real _gas_constant
Gas constant for exp term.
virtual void computeStressInitialize(const ADReal &effective_trial_stress, const ADRankFourTensor &elasticity_tensor) override