https://mooseframework.inl.gov
Loading...
Searching...
No Matches
IsotropicPlasticityStressUpdate.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
32template <bool is_ad>
34{
35public:
37
39
40 using Material::_qp;
43
44 virtual void
45 computeStressInitialize(const GenericReal<is_ad> & effective_trial_stress,
47 virtual GenericReal<is_ad> computeResidual(const GenericReal<is_ad> & effective_trial_stress,
48 const GenericReal<is_ad> & scalar) override;
49 virtual GenericReal<is_ad> computeDerivative(const GenericReal<is_ad> & effective_trial_stress,
50 const GenericReal<is_ad> & scalar) override;
51
53
55
56 virtual void
57 computeStressFinalize(const GenericRankTwoTensor<is_ad> & plastic_strain_increment) override;
58
59protected:
60 virtual void initQpStatefulProperties() override;
61 virtual void propagateQpStatefulProperties() override;
62
63 virtual void iterationFinalize(const GenericReal<is_ad> & scalar) override;
64
67
69 const std::string _plastic_prepend;
70
75
78
81
84
88};
89
IsotropicPlasticityStressUpdateTempl< false > IsotropicPlasticityStressUpdate
IsotropicPlasticityStressUpdateTempl< true > ADIsotropicPlasticityStressUpdate
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< RankTwoTensor, is_ad > GenericRankTwoTensor
This class uses the Discrete material in a radial return isotropic plasticity model.
GenericMaterialProperty< Real, is_ad > & _hardening_variable
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 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::string _plastic_prepend
a string to prepend to the plastic strain Material Property name
virtual GenericReal< is_ad > computeHardeningValue(const GenericReal< is_ad > &scalar)
virtual GenericReal< is_ad > computeHardeningDerivative(const GenericReal< is_ad > &scalar)
virtual void propagateQpStatefulProperties() override
If updateState is not called during a timestep, this will be.
virtual void computeStressFinalize(const GenericRankTwoTensor< is_ad > &plastic_strain_increment) override
Perform any necessary steps to finalize state after return mapping iterations.
const MaterialProperty< RankTwoTensor > & _plastic_strain_old
old value of plastic strain
const GenericVariableValue< is_ad > & _temperature
const MaterialProperty< Real > & _hardening_variable_old
virtual void iterationFinalize(const GenericReal< is_ad > &scalar) override
Finalize internal state variables for a model for a given iteration.
GenericMaterialProperty< RankTwoTensor, is_ad > & _plastic_strain
plastic strain in this model
virtual void computeYieldStress(const GenericRankFourTensor< is_ad > &elasticity_tensor)
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.
unsigned int _qp
const InputParameters & parameters() const
RadialReturnStressUpdate computes the radial return stress increment for an isotropic elastic-viscopl...
GenericReal< is_ad > _three_shear_modulus
3 * shear modulus
const std::string _base_name
Name used as a prefix for all material properties related to the stress update model.
Real elasticity_tensor(unsigned int i, unsigned int j, unsigned int k, unsigned int l)