https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
27public:
29
31
32 virtual Real
34 const ADMaterialProperty<RankTwoTensor> & strain_rate) override;
35
36 virtual bool substeppingCapabilityEnabled() override;
37
38protected:
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
67 const Real _gas_constant;
68
70 const Real _start_time;
71
74
77
79 unsigned int _stress_index;
80
82 const unsigned int _number_of_models;
83};
DualNumber< Real, DNDerivativeType, true > ADReal
This class uses the stress update material in a radial return isotropic creep model.
Real _exp_time
Exponential calculated from current time.
virtual ADReal computeDerivative(const ADReal &effective_trial_stress, const ADReal &scalar) override
std::size_t stressIndex(const ADReal &effective_trial_stress)
const unsigned int _number_of_models
Total number of models provided by the user.
unsigned int _stress_index
Quadrature-point value pointing to the right power law parameters.
const Real _gas_constant
Gas constant for exp term.
virtual bool substeppingCapabilityEnabled() override
Does the model include the infrastructure for substep decomposition of the elastic strain initially u...
virtual void computeStressInitialize(const ADReal &effective_trial_stress, const ADRankFourTensor &elasticity_tensor) override
const std::vector< Real > _coefficient
Leading coefficient vector.
const std::vector< Real > _activation_energy
Activation energy for exp term vector.
ADReal _exponential
Exponential calculated from activation, gas constant, and temperature.
const std::vector< Real > _m_exponent
Exponent on time vector.
const ADVariableValue *const _temperature
Temperature variable value.
virtual Real computeStrainEnergyRateDensity(const ADMaterialProperty< RankTwoTensor > &stress, const ADMaterialProperty< RankTwoTensor > &strain_rate) override
virtual ADReal computeResidual(const ADReal &effective_trial_stress, const ADReal &scalar) override
const std::vector< Real > _n_exponent
Exponent on the effective stress vector.
const std::vector< Real > _stress_thresholds
Stress thresholds vector.
const InputParameters & parameters() const
This class provides baseline functionallity for creep models based on the stress update material in a...
VariableValueTempl< true > ADVariableValue
Real elasticity_tensor(unsigned int i, unsigned int j, unsigned int k, unsigned int l)