- number_slip_systemsThe total number of possible active slip systems for the crystalline material
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The total number of possible active slip systems for the crystalline material
- slip_sys_file_nameName of the file containing the slip systems, one slip system per row, with the slip plane normal given before the slip plane direction.
C++ Type:FileName
Unit:(no unit assumed)
Controllable:No
Description:Name of the file containing the slip systems, one slip system per row, with the slip plane normal given before the slip plane direction.
CrystalPlasticityKalidindiUpdate
Kalidindi version of homogeneous crystal plasticity.
CrystalPlasticityKalidindiUpdate
is designed to be used in conjunction with the ComputeMultipleCrystalPlasticityStress class to calculate the response of a FCC crystalline solid. Details about the algorithm and specific stress and strain measures used in the CrystalPlasticityUpdate
base class are given on the documentation page for ComputeMultipleCrystalPlasticityStress.
Constitutive Model Definition
The self and latent hardening crystal plasticity model developed by Kalidindi et al. (1992) is implemented in this class. Here the slip rate is given as a power law relationship: (1) where is a reference slip rate, is the applied shear stress on each slip system , is the slip system strength, or resistance to slip, and is the strain rate sensitivity exponent. The strength of each slip system is solved with an iterative process as a function of the slip increment (2) where is a hardening coefficient matrix that accounts for the different in self and latent hardening, Eq. (3), is an initial hardening term, is a constant saturated hardening value, and is the hardening exponent (Kalidindi et al., 1992).
The self and latent hardening for the assumed FCC system is given as (3) where is a constant value of latent hardening among non-coplanar slip systems. In Eq. (3) the slip systems which share the same slip plane normal (e.g. ) are coplanar and grouped together with a latent hardening rate of unity (Kalidindi et al., 1992). Each matrix entry in Eq. (3) represents the interaction among two different coplanar slip system groups, for a total of six slip systems (Kalidindi et al., 1992).
Connection to Twinning Constitutive Models
In simulations where both twin propagation and dislocation slip constitutive models are included, the influence of the twin propagation on the plastic velocity gradient is implemented as a fraction of the total twin volume fraction (Kalidindi, 2001) where f is the sum of the twin volume fraction on all twin systems, is the plastic shear rate due to dislocation slip, S is the Schmid tensor for the slip systems, and S is the Schmid tensor for the twinning system. Note that the value of the total volume fraction of twins lags by single timestep. The use of this lagged value is designated by the subscript. This modification requires that the name for the total twin volume fraction material property be provided to the dislocation slip constitutive model as shown below.
Example Input File Syntax
[Materials]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[]
(moose/modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/update_method_test.i)CrystalPlasticityKalidindiUpdate
must be run in conjunction with the crystal plasticity specific stress calculator as shown below:
[Materials]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[]
(moose/modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/update_method_test.i)In simulations which couple this dislocation slip constitutive model with a twin propagation model, such as CrystalPlasticityTwinningKalidindiUpdate, the name of the total twin volume fraction material property must be supplied in the input file:
[Materials]
[slip_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
total_twin_volume_fraction = 'twin_total_volume_fraction_twins'
[]
[]
(moose/modules/solid_mechanics/test/tests/crystal_plasticity/twinning/combined_twinning_slip_100compression.i)Input Parameters
- ao0.001slip rate coefficient
Default:0.001
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:slip rate coefficient
- base_nameOptional parameter that allows the user to define multiple crystal plasticity mechanisms
C++ Type:std::string
Unit:(no unit assumed)
Controllable:No
Description:Optional parameter that allows the user to define multiple crystal plasticity mechanisms
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Unit:(no unit assumed)
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- boundaryThe list of boundaries (ids or names) from the mesh where this object applies
C++ Type:std::vector<BoundaryName>
Unit:(no unit assumed)
Controllable:No
Description:The list of boundaries (ids or names) from the mesh where this object applies
- constant_onNONEWhen ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
Default:NONE
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:When ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
- crystal_lattice_typeFCCCrystal lattice type or representative unit cell, i.e., BCC, FCC, HCP, etc.
Default:FCC
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Crystal lattice type or representative unit cell, i.e., BCC, FCC, HCP, etc.
- declare_suffixAn optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.
- gss_a2.5coefficient for hardening
Default:2.5
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:coefficient for hardening
- gss_initial60.8initial lattice friction strength of the material
Default:60.8
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:initial lattice friction strength of the material
- h541.5hardening constants
Default:541.5
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:hardening constants
- number_cross_slip_directions0Quanity of unique slip directions, used to determine cross slip familes
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Quanity of unique slip directions, used to determine cross slip familes
- number_cross_slip_planes0Quanity of slip planes belonging to a single cross slip direction; used to determine cross slip families
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Quanity of slip planes belonging to a single cross slip direction; used to determine cross slip families
- print_state_variable_convergence_error_messagesFalseWhether or not to print warning messages from the crystal plasticity specific convergence checks on both the constiutive model internal state variables.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether or not to print warning messages from the crystal plasticity specific convergence checks on both the constiutive model internal state variables.
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
- r1Latent hardening coefficient
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Latent hardening coefficient
- resistance_tol0.01Constitutive slip system resistance relative residual tolerance for each individual constitutive model
Default:0.01
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Constitutive slip system resistance relative residual tolerance for each individual constitutive model
- slip_increment_tolerance0.02Maximum allowable slip in an increment for each individual constitutive model
Default:0.02
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Maximum allowable slip in an increment for each individual constitutive model
- stol0.01Constitutive internal state variable relative change tolerance
Default:0.01
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Constitutive internal state variable relative change tolerance
- t_sat109.8saturated slip system strength
Default:109.8
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:saturated slip system strength
- total_twin_volume_fractionTotal twin volume fraction, if twinning is considered in the simulation
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:Total twin volume fraction, if twinning is considered in the simulation
- unit_cell_dimension1 1 1 The dimension of the unit cell along three directions, where a cubic unit cell is assumed for cubic crystals and a hexagonal unit cell (a, a, c) is assumed for HCP crystals. These dimensions will be taken into account while computing the slip systems. Default size is 1.0 along all three directions.
Default:1 1 1
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The dimension of the unit cell along three directions, where a cubic unit cell is assumed for cubic crystals and a hexagonal unit cell (a, a, c) is assumed for HCP crystals. These dimensions will be taken into account while computing the slip systems. Default size is 1.0 along all three directions.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
- xm0.1exponent for slip rate
Default:0.1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:exponent for slip rate
- zero_tol1e-12Tolerance for residual check when variable value is zero for each individual constitutive model
Default:1e-12
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Tolerance for residual check when variable value is zero for each individual constitutive model
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
- output_propertiesList of material properties, from this material, to output (outputs must also be defined to an output type)
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:List of material properties, from this material, to output (outputs must also be defined to an output type)
- outputsnone Vector of output names where you would like to restrict the output of variables(s) associated with this object
Default:none
C++ Type:std::vector<OutputName>
Unit:(no unit assumed)
Controllable:No
Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object
Outputs Parameters
References
- Surya R Kalidindi.
Modeling anisotropic strain hardening and deformation textures in low stacking fault energy fcc metals.
International Journal of Plasticity, 17:837–860, 2001.[BibTeX]
- Surya R Kalidindi, Curt A Bronkhorst, and Lallit Anand.
Crystallographic texture evolution in bulk deformation processing of fcc metals.
Journal of the Mechanics and Physics of Solids, 40(3):537–569, 1992.[BibTeX]