www.mooseframework.org
TemperatureDependentHardeningStressUpdate.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 #include "LinearInterpolation.h"
14 
15 class PiecewiseLinear;
16 
22 template <bool is_ad>
25 {
26 public:
28 
30 
31  using Material::_qp;
32 
33 protected:
34  virtual void
35  computeStressInitialize(const GenericReal<is_ad> & effectiveTrialStress,
37 
39  virtual GenericReal<is_ad> computeHardeningValue(const GenericReal<is_ad> & scalar) override;
40  virtual GenericReal<is_ad> computeHardeningDerivative(const GenericReal<is_ad> & scalar) override;
41 
48 
49  MooseSharedPointer<LinearInterpolation> _interp_yield_stress;
50 
52  const std::vector<FunctionName> _hardening_functions_names;
53  std::vector<const PiecewiseLinear *> _hardening_functions;
55 
57  std::vector<Real> _hf_temperatures;
58 
60  unsigned int _hf_index_lo;
61  unsigned int _hf_index_hi;
63 
71 };
72 
virtual GenericReal< is_ad > computeHardeningValue(const GenericReal< is_ad > &scalar) override
typename Moose::GenericType< RankFourTensor, is_ad > GenericRankFourTensor
TemperatureDependentHardeningStressUpdateTempl< false > TemperatureDependentHardeningStressUpdate
This class uses the Discrete material in a radial return isotropic plasticity model.
GenericReal< is_ad > _hf_fraction
The fraction of the temperature within the bounds of the relevant section of the piecewise hardening ...
std::vector< Real > _hf_temperatures
The temperatures at which each of the hardening functions are defined.
virtual void computeStressInitialize(const GenericReal< is_ad > &effectiveTrialStress, const GenericRankFourTensor< is_ad > &elasticity_tensor) override
Perform any necessary initialization before return mapping iterations.
virtual void computeYieldStress(const GenericRankFourTensor< is_ad > &elasticity_tensor) override
Real elasticity_tensor(unsigned int i, unsigned int j, unsigned int k, unsigned int l)
unsigned int _qp
This class inherits from IsotropicPlasticityStressUpdate.
unsigned int _hf_index_lo
Indices to identify the lower and upper temperature bounds for the current value. ...
const std::vector< FunctionName > _hardening_functions_names
The function names and expressions for hardening as a function of temperature.
TemperatureDependentHardeningStressUpdateTempl< true > ADTemperatureDependentHardeningStressUpdate
virtual GenericReal< is_ad > computeHardeningDerivative(const GenericReal< is_ad > &scalar) override
const InputParameters & parameters() const
typename Moose::GenericType< Real, is_ad > GenericReal
void initializeHardeningFunctions()
Determines the section of the piecewise temperature dependent hardening function for the current temp...