https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PowerLawCreepStressUpdate.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
24template <bool is_ad>
26{
27public:
29
31
34 const GenericMaterialProperty<RankTwoTensor, is_ad> & strain_rate) override;
35
36 virtual bool substeppingCapabilityEnabled() override;
37
38 virtual void resetIncrementalMaterialProperties() override;
39
40 virtual void
41 computeStressInitialize(const GenericReal<is_ad> & effective_trial_stress,
43 virtual GenericReal<is_ad> computeResidual(const GenericReal<is_ad> & effective_trial_stress,
44 const GenericReal<is_ad> & scalar) override
45 {
46 return computeResidualInternal<GenericReal<is_ad>>(effective_trial_stress, scalar);
47 }
48 virtual GenericReal<is_ad> computeDerivative(const GenericReal<is_ad> & effective_trial_stress,
49 const GenericReal<is_ad> & scalar) override;
50 virtual void
51 computeStressFinalize(const GenericRankTwoTensor<is_ad> & plastic_strain_increment) override;
52
53protected:
55 computeResidualAndDerivative(const GenericReal<is_ad> & effective_trial_stress,
56 const GenericChainedReal<is_ad> & scalar) override
57 {
58 return computeResidualInternal<GenericChainedReal<is_ad>>(effective_trial_stress, scalar);
59 }
60
63
65 const Real _coefficient;
66
68 const Real _n_exponent;
69
71 const Real _m_exponent;
72
75
77 const Real _gas_constant;
78
80 const Real _start_time;
81
84
87
93
94private:
95 template <typename ScalarType>
96 ScalarType computeResidualInternal(const GenericReal<is_ad> & effective_trial_stress,
97 const ScalarType & scalar);
98};
99
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
Moose::GenericType< VariableValue, is_ad > GenericVariableValue
Moose::GenericType< RankFourTensor, is_ad > GenericRankFourTensor
Moose::GenericType< Real, is_ad > GenericReal
Moose::GenericType< ChainedReal, is_ad > GenericChainedReal
Moose::GenericType< RankTwoTensor, is_ad > GenericRankTwoTensor
PowerLawCreepStressUpdateTempl< false > PowerLawCreepStressUpdate
PowerLawCreepStressUpdateTempl< true > ADPowerLawCreepStressUpdate
const InputParameters & parameters() const
This class uses the stress update material in a radial return isotropic creep model.
virtual GenericReal< is_ad > computeDerivative(const GenericReal< is_ad > &effective_trial_stress, const GenericReal< is_ad > &scalar) override
Compute the derivative of the residual as a function of the scalar variable.
virtual GenericChainedReal< is_ad > computeResidualAndDerivative(const GenericReal< is_ad > &effective_trial_stress, const GenericChainedReal< is_ad > &scalar) override
Compute the residual and the derivative for a predicted value of the scalar.
virtual void computeStressInitialize(const GenericReal< is_ad > &effective_trial_stress, const GenericRankFourTensor< is_ad > &elasticity_tensor) override
Perform any necessary initialization before return mapping iterations.
virtual void computeStressFinalize(const GenericRankTwoTensor< is_ad > &plastic_strain_increment) override
Perform any necessary steps to finalize state after return mapping iterations.
const Real _n_exponent
Exponent on the effective stress.
const Real _start_time
Simulation start time.
virtual void resetIncrementalMaterialProperties() override
Reset material properties.
ScalarType computeResidualInternal(const GenericReal< is_ad > &effective_trial_stress, const ScalarType &scalar)
virtual bool substeppingCapabilityEnabled() override
Does the model include the infrastructure for substep decomposition of the elastic strain initially u...
Real _exp_time
Exponential calculated from current time.
const Real _m_exponent
Exponent on time.
virtual GenericReal< is_ad > computeResidual(const GenericReal< is_ad > &effective_trial_stress, const GenericReal< is_ad > &scalar) override
Compute the residual for a predicted value of the scalar.
const GenericVariableValue< is_ad > *const _temperature
Temperature variable value.
GenericReal< is_ad > _exponential
Exponential calculated from activiaction, gas constant, and temperature.
const Real _coefficient
Leading coefficient.
virtual Real computeStrainEnergyRateDensity(const GenericMaterialProperty< RankTwoTensor, is_ad > &stress, const GenericMaterialProperty< RankTwoTensor, is_ad > &strain_rate) override
Compute the strain energy rate density for this inelastic model for the current step.
const Real _activation_energy
Activation energy for exp term.
const Real _gas_constant
Gas constant for exp term.
This class provides baseline functionallity for creep models based on the stress update material in a...
const MaterialProperty< RankTwoTensor > & _creep_strain_old
GenericMaterialProperty< RankTwoTensor, is_ad > & _creep_strain
Creep strain material property.
GenericReal< is_ad > _three_shear_modulus
3 * shear modulus
Real elasticity_tensor(unsigned int i, unsigned int j, unsigned int k, unsigned int l)