https://mooseframework.inl.gov
Loading...
Searching...
No Matches
CompositePowerLawCreepStressUpdate.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
25template <bool is_ad>
27{
28public:
30
32
35 const GenericMaterialProperty<RankTwoTensor, is_ad> & strain_rate) override;
36
37 virtual bool substeppingCapabilityEnabled() override;
38
39 virtual void resetIncrementalMaterialProperties() override;
40
41 virtual void
42 computeStressInitialize(const GenericReal<is_ad> & effective_trial_stress,
44 virtual GenericReal<is_ad> computeResidual(const GenericReal<is_ad> & effective_trial_stress,
45 const GenericReal<is_ad> & scalar) override
46 {
47 return computeResidualInternal<GenericReal<is_ad>>(effective_trial_stress, scalar);
48 }
49 virtual GenericReal<is_ad> computeDerivative(const GenericReal<is_ad> & effective_trial_stress,
50 const GenericReal<is_ad> & scalar) override;
51 virtual void
52 computeStressFinalize(const GenericRankTwoTensor<is_ad> & plastic_strain_increment) override;
53
54protected:
56 computeResidualAndDerivative(const GenericReal<is_ad> & effective_trial_stress,
57 const GenericChainedReal<is_ad> & scalar) override
58 {
59 return computeResidualInternal<GenericChainedReal<is_ad>>(effective_trial_stress, scalar);
60 }
61
64
66 std::vector<Real> _coefficient;
67
69 std::vector<Real> _n_exponent;
70
72 const Real _m_exponent;
73
75 std::vector<Real> _activation_energy;
76
78 const Real _gas_constant;
79
81 const Real _start_time;
82
85
87 const std::vector<MaterialPropertyName> _switching_func_names;
88 unsigned int _num_materials;
89
91 std::vector<const GenericMaterialProperty<Real, is_ad> *> _switchingFunc;
92
98
99private:
100 template <typename ScalarType>
101 ScalarType computeResidualInternal(const GenericReal<is_ad> & effective_trial_stress,
102 const ScalarType & scalar);
103};
104
CompositePowerLawCreepStressUpdateTempl< false > CompositePowerLawCreepStressUpdate
CompositePowerLawCreepStressUpdateTempl< true > ADCompositePowerLawCreepStressUpdate
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
This class uses the stress update material in a radial return isotropic creep model.
ScalarType computeResidualInternal(const GenericReal< is_ad > &effective_trial_stress, const ScalarType &scalar)
virtual void resetIncrementalMaterialProperties() override
Reset material properties.
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 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 std::vector< MaterialPropertyName > _switching_func_names
vector to keep the material property name for switching function material
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 bool substeppingCapabilityEnabled() override
Does the model include the infrastructure for substep decomposition of the elastic strain initially u...
std::vector< const GenericMaterialProperty< Real, is_ad > * > _switchingFunc
switching functions for each phase
Real _exp_time
Exponential calculated from current time.
std::vector< Real > _activation_energy
Activation energy for exp term.
std::vector< 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.
virtual void computeStressFinalize(const GenericRankTwoTensor< is_ad > &plastic_strain_increment) override
Perform any necessary steps to finalize state after return mapping iterations.
const GenericVariableValue< is_ad > *const _temperature
Temperature variable value.
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.
std::vector< Real > _n_exponent
Exponent on the effective stress.
const InputParameters & parameters() const
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)