https://mooseframework.inl.gov
CrystalPlasticityKalidindiUpdate.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 
15 
25 {
26 public:
28 
30 
31 protected:
36  virtual void initQpStatefulProperties() override;
37 
43  virtual void setInitialConstitutiveVariableValues() override;
44 
51  virtual void setSubstepConstitutiveVariableValues() override;
52 
57  virtual void updateSubstepConstitutiveVariableValues() override;
58 
59  virtual bool calculateSlipRate() override;
60 
61  virtual void
62  calculateEquivalentSlipIncrement(RankTwoTensor & /*equivalent_slip_increment*/) override;
63 
64  virtual void calculateConstitutiveSlipDerivative(std::vector<Real> & dslip_dtau) override;
65 
66  // Cache the slip system value before the update for the diff in the convergence check
67  virtual void cacheStateVariablesBeforeUpdate() override;
68 
78  virtual void calculateStateVariableEvolutionRateComponent() override;
79 
80  /*
81  * Finalizes the values of the state variables and slip system resistance
82  * for the current timestep after convergence has been reached.
83  */
84  virtual bool updateStateVariables() override;
85 
86  /*
87  * Determines if the state variables, e.g. defect densities, have converged
88  * by comparing the change in the values over the iteration period.
89  */
90  virtual bool areConstitutiveStateVariablesConverged() override;
91 
93  const Real _r;
94  const Real _h;
95  const Real _tau_sat;
96  const Real _gss_a;
97  const Real _ao;
98  const Real _xm;
101 
106  std::vector<Real> _hb;
107 
109  std::vector<Real> _slip_resistance_increment;
110 
117 
127 
133 
142 };
const Real _r
Varibles used in the Kalidindi 1992 slip system resistance constiutive model.
virtual bool updateStateVariables() override
Finalizes the values of the state variables and slip system resistance for the current timestep after...
virtual void setInitialConstitutiveVariableValues() override
Sets the value of the current and previous substep iteration slip system resistance to the old value ...
virtual bool areConstitutiveStateVariablesConverged() override
Determines if all the state variables have converged.
virtual void updateSubstepConstitutiveVariableValues() override
Stores the current value of the slip system resistance into a separate material property in case subs...
std::vector< Real > _previous_substep_slip_resistance
Stores the values of the slip system resistance from the previous substep In classes which use disloc...
virtual void calculateStateVariableEvolutionRateComponent() override
Following the Constitutive model for slip system resistance as given in Kalidindi, S.R., C.A.
virtual void setSubstepConstitutiveVariableValues() override
Sets the current slip system resistance value to the previous substep value.
const MaterialProperty< Real > *const _twin_volume_fraction_total
User-defined material property name for the total volume fraction of twins in a twinning propagation ...
virtual void calculateEquivalentSlipIncrement(RankTwoTensor &) override
virtual void cacheStateVariablesBeforeUpdate() override
Finalizes the values of the state variables and slip system resistance for the current timestep after...
CrystalPlasticityKalidindiUpdate uses the multiplicative decomposition of the deformation gradient an...
virtual bool calculateSlipRate() override
This virtual method is called to calculate the slip system slip increment based on the constitutive m...
CrystalPlasticityKalidindiUpdate(const InputParameters &parameters)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void calculateConstitutiveSlipDerivative(std::vector< Real > &dslip_dtau) override
This virtual method is called to find the derivative of the slip increment with respect to the applie...
virtual void initQpStatefulProperties() override
initializes the stateful properties such as stress, plastic deformation gradient, slip system resista...
std::vector< Real > _slip_resistance_increment
Increment of increased resistance for each slip system.
const InputParameters & parameters() const
std::vector< Real > _hb
Slip system interaction matrix used to calculate the hardening contributions from the self and latent...
std::vector< Real > _slip_resistance_before_update
Caches the value of the current slip system resistance immediately prior to the update of the slip sy...
const bool _include_twinning_in_Lp
Flag to include the total twin volume fraction in the plastic velocity gradient calculation, per Kalidindi IJP (2001).