25 void setQp(
const unsigned int & qp);
68 const unsigned int & num_eigenstrains);
79 const RankTwoTensor & inverse_eigenstrain_deformation_grad_old,
80 const unsigned int & num_eigenstrains);
88 const std::vector<RealVectorValue> & plane_normal_vector,
89 const std::vector<RealVectorValue> & direction_vector,
90 std::vector<RankTwoTensor> & schmid_tensor,
183 const std::vector<Real> & var_before_update,
184 const std::vector<Real> & previous_substep_var,
185 const Real & tolerance);
virtual void calculateEquivalentSlipIncrement(RankTwoTensor &)
const unsigned int _number_slip_systems
Maximum number of active slip systems for the crystalline material being modeled.
MaterialProperty< std::vector< Real > > & _slip_resistance
Slip system resistance.
virtual void calculateTotalPlasticDeformationGradientDerivative(RankFourTensor &dfpinvdpk2, const RankTwoTensor &inverse_plastic_deformation_grad_old, const RankTwoTensor &inverse_eigenstrain_deformation_grad_old, const unsigned int &num_eigenstrains)
Calculates the total value of $\frac{d\mathbf{F}^P^{-1}}{d\mathbf{PK2}}$ and is intended to be an ove...
virtual void calculateSlipResistance()
virtual void setMaterialVectorSize()
const Real _number_cross_slip_directions
Parameters to characterize the cross slip behavior of the crystal.
void setQp(const unsigned int &qp)
Sets the value of the global variable _qp for inheriting classes.
Real _rel_state_var_tol
Internal variable update equation tolerance.
unsigned int identifyCrossSlipFamily(const unsigned int index)
A helper method for inherting classes to identify to which cross slip family vector a particular slip...
virtual void setSubstepConstitutiveVariableValues()
This virtual method is called to set the current constitutive internal state variable value to that o...
const bool _print_convergence_message
Flag to print to console warning messages on stress, constitutive model convergence.
Real _slip_incr_tol
Slip increment tolerance.
MaterialProperty< std::vector< Real > > & _slip_increment
Current slip increment material property.
void sortCrossSlipFamilies()
A helper method to sort the slip systems of a crystal into cross slip families based on common slip d...
Real _substep_dt
Substepping time step value used within the inheriting constitutive models.
void transformHexagonalMillerBravaisSlipSystems(const MooseUtils::DelimitedFileReader &reader)
A helper method to transform the Miller-Bravais 4-index notation for HCP crystals into a a 3-index Ca...
virtual void initQpStatefulProperties() override
initializes the stateful properties such as PK2 stress, resolved shear stress, plastic deformation gr...
enum CrystalPlasticityStressUpdateBase::CrystalLatticeType _crystal_lattice_type
virtual void cacheStateVariablesBeforeUpdate()
Finalizes the values of the state variables and slip system resistance for the current timestep after...
Real _zero_tol
Residual tolerance when variable value is zero. Default 1e-12.
static InputParameters validParams()
std::vector< RealVectorValue > _slip_plane_normal
MaterialProperty< std::vector< RankTwoTensor > > & _flow_direction
virtual void updateSubstepConstitutiveVariableValues()
Stores the current value of the constitutive internal state variables into a separate material proper...
virtual bool areConstitutiveStateVariablesConverged()
Determines if all the state variables have converged.
virtual bool updateStateVariables()=0
Finalizes the values of the state variables and slip system resistance for the current timestep after...
void calculateShearStress(const RankTwoTensor &pk2, const RankTwoTensor &inverse_eigenstrain_deformation_grad, const unsigned int &num_eigenstrains)
Computes the shear stess for each slip system.
virtual bool calculateSlipRate()=0
This virtual method is called to calculate the slip system slip increment based on the constitutive m...
virtual void setInitialConstitutiveVariableValues()
This virtual method is called to set the constitutive internal state variables current value and the ...
const std::string _base_name
Base name prepended to all material property names to allow for multi-material systems.
virtual void resetQpProperties() final
Retained as empty methods to avoid a warning from Material.C in framework. These methods are unused i...
void setSubstepDt(const Real &substep_dt)
Sets the value of the _substep_dt for inheriting classes.
virtual void resetProperties() final
Real _resistance_tol
Tolerance for change in slip system resistance over an increment.
void calculateFlowDirection(const RankTwoTensor &crysrot)
Computes the Schmid tensor (m x n) for the original (reference) crystal lattice orientation for each ...
const Real _number_cross_slip_planes
const std::vector< Real > _unit_cell_dimension
std::vector< std::vector< unsigned int > > _cross_slip_familes
Sorted slip system indices into cross slip family groups.
MaterialProperty< std::vector< Real > > & _tau
Resolved shear stress on each slip system.
bool _calculate_cross_slip
Flag to run the cross slip calculations if cross slip numbers are specified.
std::string _slip_sys_file_name
File should contain slip plane normal and direction.
virtual void calculateConstitutiveSlipDerivative(std::vector< Real > &)=0
This virtual method is called to find the derivative of the slip increment with respect to the applie...
void calculateSchmidTensor(const unsigned int &number_dislocation_systems, const std::vector< RealVectorValue > &plane_normal_vector, const std::vector< RealVectorValue > &direction_vector, std::vector< RankTwoTensor > &schmid_tensor, const RankTwoTensor &crysrot)
A helper method to rotate the a direction and plane normal system set into the local crystal llatice ...
std::vector< RealVectorValue > _slip_direction
Slip system direction and normal and associated Schmid tensors.
virtual bool isConstitutiveStateVariableConverged(const std::vector< Real > ¤t_var, const std::vector< Real > &var_before_update, const std::vector< Real > &previous_substep_var, const Real &tolerance)
Check if a typical state variable, e.g.
const MaterialProperty< std::vector< Real > > & _slip_resistance_old
virtual void getSlipSystems()
A helper method to read in plane normal and direction vectors from a file and to normalize the vector...
virtual void calculateStateVariableEvolutionRateComponent()
const InputParameters & parameters() const