# Crystal Plasticity State Var Rate Component Voce

Phenomenological Voce constitutive model state variable evolution rate component base class.

## Description

This UserObject is meant to be used within the user object base crystal plasticity framework as a Voce hardening rule.

(1)

with

(2)

where is the current critical resolved shear stress, is initial critical resolved shear stress, is the saturation resolved shear stress, is the matrix containing self and latent hardening coefficients; and are hardening parameters.

Like for the others crystal plasticity routines values of all the parameters can be specified by groups of slip systems.

This UseroOject assumes that slip systems are provided in a well defined order and are grouped by planes (see modules/tensor_mechanics/test/tests/cp_user_object/input_slip_sys_bcc48.txt for BCC crystals and modules/tensor_mechanics/test/tests/cp_user_object/input_slip_sys.txt for FCC)

Seven variables need to be specified and one value is required for each group:

• groups in which groups of slip systems are listed

• h0_group_values value for each slip system group

• tau0_group_values value for each slip system group

• tauSat_group_values = value for each slip system group

• hardeningExponent_group_values value for each slip system group

• selfHardening_group_values

• coplanarHardening_group_values for co-planar slip systems in the same group

• GroupGroup_Hardening_group_values This parameter requires NxN values with N being the number of groups. Values are listed as (e.g. ij=11,12,21,22) with being the actual group and the secondary group. For the value represents the latent hardening coefficient between one slip system and all the non co-planar ones belonging the the same group. For , the value represents the latent hardening coefficient between all the slip systems belonging to group and . Note that, usually, the matrix associated with GroupGroup_Hardening_group_values is symmetric.

## Example Input File Syntax

[./state_var_evol_rate_comp_voce]
type = CrystalPlasticityStateVarRateComponentVoce
variable_size = 48
crystal_lattice_type = 'BCC'
groups = '0 12 24 48'
h0_group_values = '1 2 3'
tau0_group_values = '50 51 52'
tauSat_group_values = '70 81 92'
hardeningExponent_group_values = '1 2 3'
selfHardening_group_values = '4 5 6'
coplanarHardening_group_values = '7 8 9'
GroupGroup_Hardening_group_values = '10 20 30
40 50 60
70 80 90'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]

(modules/tensor_mechanics/test/tests/cp_user_object/user_object_Voce_BCC.i)

In this example illustrate a BCC in which slip systems have been grouped by slip system class.

## Input Parameters

• variable_sizeThe userobject's variable size.

C++ Type:unsigned int

Options:

Description:The userobject's variable size.

### Required Parameters

• selfHardening_group_valuesThe self hardening coefficient q_aacorresponding to each group i.e. '1.0 2.0 3.0' means 0-11 = 1.0, 12-23 = 2.0 and 24-48 = 3.0 usually these are all 1.

C++ Type:std::vector

Options:

Description:The self hardening coefficient q_aacorresponding to each group i.e. '1.0 2.0 3.0' means 0-11 = 1.0, 12-23 = 2.0 and 24-48 = 3.0 usually these are all 1.

• GroupGroup_Hardening_group_valuesThe group-to-group latent hardening coefficient q_abThis is a NxN vector i.e. '1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0' means non-coplanar slip systems in gr_11,22,33= 1.0, 5.0 and 9.0 respectively.latent hardening between for gr_12,13 = 2.0 3.0 respectively

C++ Type:std::vector

Options:

Description:The group-to-group latent hardening coefficient q_abThis is a NxN vector i.e. '1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0' means non-coplanar slip systems in gr_11,22,33= 1.0, 5.0 and 9.0 respectively.latent hardening between for gr_12,13 = 2.0 3.0 respectively

• hardeningExponent_group_valuesThe hardening exponent mcorresponding to each group i.e. '1.0 2.0 3.0' means 0-11 = 1.0, 12-23 = 2.0 and 24-48 = 3.0

C++ Type:std::vector

Options:

Description:The hardening exponent mcorresponding to each group i.e. '1.0 2.0 3.0' means 0-11 = 1.0, 12-23 = 2.0 and 24-48 = 3.0

• coplanarHardening_group_valuesThe coplanar latent hardening coefficient q_abcorresponding to each group i.e. '1.0 2.0 3.0' means 0-11 = 1.0, 12-23 = 2.0 and 24-48 = 3.0

C++ Type:std::vector

Options:

Description:The coplanar latent hardening coefficient q_abcorresponding to each group i.e. '1.0 2.0 3.0' means 0-11 = 1.0, 12-23 = 2.0 and 24-48 = 3.0

• uo_slip_rate_nameName of slip rate property: Same as slip rate user object specified in input file.

C++ Type:std::string

Options:

Description:Name of slip rate property: Same as slip rate user object specified in input file.

• tau0_group_valuesThe initial critical resolved shear stresscorresponding to each group i.e. '100.0 110.0 120.0' means 0-11 = 100.0, 12-23 = 110.0 and 24-48 = 120.0

C++ Type:std::vector

Options:

Description:The initial critical resolved shear stresscorresponding to each group i.e. '100.0 110.0 120.0' means 0-11 = 100.0, 12-23 = 110.0 and 24-48 = 120.0

• uo_state_var_nameName of state variable property: Same as state variable user object specified in input file.

C++ Type:std::string

Options:

Description:Name of state variable property: Same as state variable user object specified in input file.

• groupsTo group the initial values on different slip systems 'format: [start end)', i.e.'0 12 24 48' groups 0-11, 12-23 and 24-48

C++ Type:std::vector

Options:

Description:To group the initial values on different slip systems 'format: [start end)', i.e.'0 12 24 48' groups 0-11, 12-23 and 24-48

• tauSat_group_valuesThe saturation resolved shear stresscorresponding to each group i.e. '150.0 170.0 180.0' means 0-11 = 150.0, 12-23 = 170.0 and 24-48 = 180.0

C++ Type:std::vector

Options:

Description:The saturation resolved shear stresscorresponding to each group i.e. '150.0 170.0 180.0' means 0-11 = 150.0, 12-23 = 170.0 and 24-48 = 180.0

• h0_group_valuesh0 hardening constant for each group i.e. '0.0 1.0 2.0' means 0-11 = 0.0, 12-23 = 1.0 and 24-48 = 2.0

C++ Type:std::vector

Options:

Description:h0 hardening constant for each group i.e. '0.0 1.0 2.0' means 0-11 = 0.0, 12-23 = 1.0 and 24-48 = 2.0

• crystal_lattice_typeFCCType of crystal lattyce structure output

Default:FCC

C++ Type:MooseEnum

Options:FCC BCC

Description:Type of crystal lattyce structure output

• blockThe list of block ids (SubdomainID) that this object will be applied

C++ Type:std::vector

Options:

Description:The list of block ids (SubdomainID) that this object will be applied

### Optional Parameters

• enableTrueSet the enabled status of the MooseObject.

Default:True

C++ Type:bool

Options:

Description:Set the enabled status of the MooseObject.

• allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

Default:False

C++ Type:bool

Options:

Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

• 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

Options:

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.

• control_tagsAdds user-defined labels for accessing object parameters via control logic.

C++ Type:std::vector

Options:

Description:Adds user-defined labels for accessing object parameters via control logic.

• seed0The seed for the master random number generator

Default:0

C++ Type:unsigned int

Options:

Description:The seed for the master random number generator

• implicitTrueDetermines whether this object is calculated using an implicit or explicit form

Default:True

C++ Type:bool

Options:

Description:Determines whether this object is calculated using an implicit or explicit form