https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
23public:
25
27
28protected:
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
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
182 const Real _grain_size;
183
189
195
201
210};
CrystalPlasticityHCPDislocationSlipBeyerleinUpdate computes the dislocation forest evolution for the ...
virtual void calculateSlipResistance() override
Calculates the sum of the contribution of the initial slip resistance and the forest and substructure...
const std::vector< Real > _substructure_rate_coefficient
Substructure (debris) dislocation generation rate coefficient.
bool calculateSubstructureDislocationDensity()
Calculates the current value of the incremented substructure dislocations.
const std::vector< Real > _shear_modulus
Forest hardening coefficients, Eqns. 3.19.
const std::vector< Real > _burgers_vector
Coefficients for slip dislocation evolution, Eqns 3.6 and 3.8.
virtual void setSubstepConstitutiveVariableValues() override
This virtual method is called to set the current constitutive internal state variable value to that o...
std::vector< Real > _previous_substep_slip_resistance
Stores the slip system resistance, dislocation densities from the previous substep.
std::vector< Real > _slip_resistance_before_update
Caching current slip resistance, dislocation density values before final update.
virtual void updateSubstepConstitutiveVariableValues() override
Stores the current value of the constitutive internal state variables into a separate material proper...
const Real _substructure_hardening_coefficient
Substructure (debris) Taylor law hardening coefficient.
virtual void setInitialConstitutiveVariableValues() override
This virtual method is called to set the constitutive internal state variables current value and the ...
virtual bool areConstitutiveStateVariablesConverged() override
Determines if the state variables, e.g.
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 bool calculateSlipRate() override
This virtual method is called to calculate the slip system slip increment based on the constitutive m...
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...
MaterialProperty< Real > & _total_substructure_density
Sessile substructure dislocation density across all slip systems.
virtual void initQpStatefulProperties() override
initializes the stateful properties such as PK2 stress, resolved shear stress, plastic deformation gr...
const Real _grain_size
Value of the grain size, either average or associated with a particular block.
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 MaterialProperty< Real > *const _twin_volume_fraction_total
User-defined material property name for the total volume fraction of twins in a twinning propagation ...
const bool _include_twinning_in_Lp
Flag to include the total twin volume fraction in the plastic velocity gradient calculation,...
bool calculateForestDislocationDensity()
Calculate the current value of the incremented forest dislocation density on each slip system.
const Real _reference_strain_rate
Power-law slip rate calculation coefficients, from Wang et al IJP 49(2013)36-52.
bool isSubstructureDislocationDensityConverged()
Determine if the substructure (debris) dislocation density values have converged.
virtual bool updateStateVariables() override
Finalizes the values of the state variables and slip system resistance for the current timestep after...
virtual void calculateStateVariableEvolutionRateComponent() override
Following the constitutive model for HCP structures proposed by Beyerlein and Tome.
void calculateSubstructureDensityEvolutionIncrement()
Computes the evolution of the total substructure dislocations, using the nomenclature introduced in C...
virtual void cacheStateVariablesBeforeUpdate() override
Finalizes the values of the state variables and slip system resistance for the current timestep after...
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...
void calculateForestDislocationEvolutionIncrement()
Computes the evolution increment of the forest (glide) dislocations on each slip system,...
const std::vector< unsigned int > _number_slip_systems_per_mode
The number of slip systems per type, stored as a vector.
MaterialProperty< std::vector< Real > > & _forest_dislocation_density
Slip forest dislocation densities.
const InputParameters & parameters() const
VariableValueTempl< false > VariableValue