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

[./trial_xtalpl]
  type = CrystalPlasticityKalidindiUpdate
  number_slip_systems = 12
  slip_sys_file_name = input_slip_sys.txt
[../]
(moose/modules/tensor_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:

[./stress]
  type = ComputeMultipleCrystalPlasticityStress
  crystal_plasticity_models = 'trial_xtalpl'
  tan_mod_type = exact
[../]
(moose/modules/tensor_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:

[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/tensor_mechanics/test/tests/crystal_plasticity/twinning/combined_twinning_slip_100compression.i)

Input Parameters

  • number_slip_systemsThe total number of possible active slip systems for the crystalline material

    C++ Type:unsigned int

    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

    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.

Required Parameters

  • ao0.001slip rate coefficient

    Default:0.001

    C++ Type:double

    Controllable:No

    Description:slip rate coefficient

  • base_nameOptional parameter that allows the user to define multiple crystal plasticity mechanisms

    C++ Type:std::string

    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>

    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>

    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

    Options:NONE, ELEMENT, SUBDOMAIN

    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

    Options:BCC, FCC, HCP

    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

    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

    Controllable:No

    Description:coefficient for hardening

  • gss_initial60.8initial lattice friction strength of the material

    Default:60.8

    C++ Type:double

    Controllable:No

    Description:initial lattice friction strength of the material

  • h541.5hardening constants

    Default:541.5

    C++ Type:double

    Controllable:No

    Description:hardening constants

  • number_cross_slip_directions0Quanity of unique slip directions, used to determine cross slip familes

    Default:0

    C++ Type:double

    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

    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

    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

    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

    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

    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

    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

    Controllable:No

    Description:Constitutive internal state variable relative change tolerance

  • t_sat109.8saturated slip system strength

    Default:109.8

    C++ Type:double

    Controllable:No

    Description:saturated slip system strength

  • total_twin_volume_fractionTotal twin volume fraction, if twinning is considered in the simulation

    C++ Type:MaterialPropertyName

    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>

    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.

  • xm0.1exponent for slip rate

    Default:0.1

    C++ Type:double

    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

    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>

    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

    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

    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

    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

    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>

    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>

    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

  1. 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]
  2. 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]