https://mooseframework.inl.gov
CrystalPlasticityHCPDislocationSlipBeyerleinUpdate.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 
22 {
23 public:
25 
27 
28 protected:
29  virtual void initQpStatefulProperties() override;
30  virtual void setMaterialVectorSize() override;
31 
32  virtual void setInitialConstitutiveVariableValues() override;
33 
34  virtual void setSubstepConstitutiveVariableValues() override;
35 
36  virtual void updateSubstepConstitutiveVariableValues() override;
37 
38  virtual bool calculateSlipRate() override;
39 
40  virtual void
41  calculateEquivalentSlipIncrement(RankTwoTensor & /*equivalent_slip_increment*/) override;
42 
43  virtual void calculateConstitutiveSlipDerivative(std::vector<Real> & dslip_dtau) override;
44 
45  virtual void cacheStateVariablesBeforeUpdate() override;
46 
56  virtual void calculateStateVariableEvolutionRateComponent() override;
57 
58  virtual bool updateStateVariables() override;
59 
67 
75 
81 
86 
92  virtual void calculateSlipResistance() override;
93 
102  virtual void calculateGrainSizeResistance(DenseVector<Real> & lattice_resistance);
103 
108  virtual bool areConstitutiveStateVariablesConverged() override;
109 
114 
117 
125 
132 
139  const unsigned int _slip_system_modes;
140 
142  const std::vector<unsigned int> _number_slip_systems_per_mode;
143 
146  const std::vector<Real> _lattice_friction;
147 
152 
154  const std::vector<Real> _burgers_vector;
155  const std::vector<Real> _slip_generation_coefficient;
156  const std::vector<Real> _slip_activation_energy;
157  const std::vector<Real> _proportionality_factor;
163 
165  const std::vector<Real> _shear_modulus;
166 
168  const std::vector<Real> _substructure_rate_coefficient;
169 
172 
179  const std::vector<Real> _hallpetch_like_coefficient;
180 
183 
189 
195 
201 
210 };
MaterialProperty< Real > & _total_substructure_density
Sessile substructure dislocation density across all slip systems.
virtual void calculateGrainSizeResistance(DenseVector< Real > &lattice_resistance)
Calculates the influence of the grain size on the slip system resistance, in the case where twin boun...
virtual bool areConstitutiveStateVariablesConverged() override
Determines if the state variables, e.g.
bool calculateSubstructureDislocationDensity()
Calculates the current value of the incremented substructure dislocations.
virtual bool updateStateVariables() override
Finalizes the values of the state variables and slip system resistance for the current timestep after...
bool calculateForestDislocationDensity()
Calculate the current value of the incremented forest dislocation density on each slip system...
virtual bool calculateSlipRate() override
This virtual method is called to calculate the slip system slip increment based on the constitutive m...
const std::vector< Real > _shear_modulus
Forest hardening coefficients, Eqns. 3.19.
virtual void updateSubstepConstitutiveVariableValues() override
Stores the current value of the constitutive internal state variables into a separate material proper...
const unsigned int _slip_system_modes
The number of the different slip systems types to consider in the simulation, which is dependent on t...
const std::vector< Real > _burgers_vector
Coefficients for slip dislocation evolution, Eqns 3.6 and 3.8.
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...
const Real _reference_strain_rate
Power-law slip rate calculation coefficients, from Wang et al IJP 49(2013)36-52.
virtual void initQpStatefulProperties() override
initializes the stateful properties such as PK2 stress, resolved shear stress, plastic deformation gr...
const MaterialProperty< Real > *const _twin_volume_fraction_total
User-defined material property name for the total volume fraction of twins in a twinning propagation ...
const std::vector< Real > _hallpetch_like_coefficient
Microscale Hall-Petch like coefficient, used to capture the effect of the grain size on the slip syst...
std::vector< Real > _previous_substep_slip_resistance
Stores the slip system resistance, dislocation densities from the previous substep.
const std::vector< unsigned int > _number_slip_systems_per_mode
The number of slip systems per type, stored as a vector.
virtual void setSubstepConstitutiveVariableValues() override
This virtual method is called to set the current constitutive internal state variable value to that o...
CrystalPlasticityHCPDislocationSlipBeyerleinUpdate computes the dislocation forest evolution for the ...
std::vector< Real > _slip_resistance_before_update
Caching current slip resistance, dislocation density values before final update.
OutputTools< Real >::VariableValue VariableValue
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void calculateSubstructureDensityEvolutionIncrement()
Computes the evolution of the total substructure dislocations, using the nomenclature introduced in C...
virtual void setInitialConstitutiveVariableValues() override
This virtual method is called to set the constitutive internal state variables current value and the ...
const Real _grain_size
Value of the grain size, either average or associated with a particular block.
void calculateForestDislocationEvolutionIncrement()
Computes the evolution increment of the forest (glide) dislocations on each slip system, from equation 3.6 in Beyerlein and Tome IJP 24 (2008) 5, 867-895, and using the increment approach shown in Ardeljan et al.
virtual void calculateStateVariableEvolutionRateComponent() override
Following the constitutive model for HCP structures proposed by Beyerlein and Tome.
const InputParameters & parameters() const
virtual void cacheStateVariablesBeforeUpdate() override
Finalizes the values of the state variables and slip system resistance for the current timestep after...
const Real _substructure_hardening_coefficient
Substructure (debris) Taylor law hardening coefficient.
virtual void calculateSlipResistance() override
Calculates the sum of the contribution of the initial slip resistance and the forest and substructure...
const bool _include_twinning_in_Lp
Flag to include the total twin volume fraction in the plastic velocity gradient calculation, per Kalidindi IJP (2001).
const std::vector< Real > _substructure_rate_coefficient
Substructure (debris) dislocation generation rate coefficient.
MaterialProperty< std::vector< Real > > & _forest_dislocation_density
Slip forest dislocation densities.
bool isSubstructureDislocationDensityConverged()
Determine if the substructure (debris) dislocation density values have converged. ...