https://mooseframework.inl.gov
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 
25 template <bool is_ad>
27 {
28 public:
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 
54 protected:
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 
73 
75  std::vector<Real> _activation_energy;
76 
79 
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 
99 private:
100  template <typename ScalarType>
101  ScalarType computeResidualInternal(const GenericReal<is_ad> & effective_trial_stress,
102  const ScalarType & scalar);
103 };
104 
Moose::GenericType< Real, is_ad > GenericReal
std::vector< Real > _activation_energy
Activation energy for exp term.
This class uses the stress update material in a radial return isotropic creep model.
std::vector< const GenericMaterialProperty< Real, is_ad > * > _switchingFunc
switching functions for each phase
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.
CompositePowerLawCreepStressUpdateTempl(const InputParameters &parameters)
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.
CompositePowerLawCreepStressUpdateTempl< true > ADCompositePowerLawCreepStressUpdate
const std::vector< MaterialPropertyName > _switching_func_names
vector to keep the material property name for switching function material
Moose::GenericType< RankFourTensor, is_ad > GenericRankFourTensor
std::vector< Real > _coefficient
Leading coefficient.
Real elasticity_tensor(unsigned int i, unsigned int j, unsigned int k, unsigned int l)
Moose::GenericType< VariableValue, is_ad > GenericVariableValue
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
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.
Moose::GenericType< ChainedReal, is_ad > GenericChainedReal
const GenericVariableValue< is_ad > *const _temperature
Temperature variable value.
CompositePowerLawCreepStressUpdateTempl< false > CompositePowerLawCreepStressUpdate
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...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void resetIncrementalMaterialProperties() override
Reset material properties.
const InputParameters & parameters() const
virtual bool substeppingCapabilityEnabled() override
Does the model include the infrastructure for substep decomposition of the elastic strain initially u...
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.
ScalarType computeResidualInternal(const GenericReal< is_ad > &effective_trial_stress, const ScalarType &scalar)
virtual void computeStressFinalize(const GenericRankTwoTensor< is_ad > &plastic_strain_increment) override
Perform any necessary steps to finalize state after return mapping iterations.
std::vector< Real > _n_exponent
Exponent on the effective stress.
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.
Moose::GenericType< RankTwoTensor, is_ad > GenericRankTwoTensor
Real _exp_time
Exponential calculated from current time.