- variable_sizeThe userobject's variable size.
C++ Type:unsigned int
Controllable:No
Description:The userobject's variable size.
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 listedh0_group_values
value for each slip system grouptau0_group_values
value for each slip system grouptauSat_group_values
= value for each slip system grouphardeningExponent_group_values
value for each slip system groupselfHardening_group_values
coplanarHardening_group_values
for co-planar slip systems in the same groupGroupGroup_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 withGroupGroup_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
[../]
(../moose/modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/user_object_Voce_BCC.i)In this example illustrate a BCC in which slip systems have been grouped by slip system class.
Input Parameters
- 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<double>
Controllable:No
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
- 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
- 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<double>
Controllable:No
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
- crystal_lattice_typeFCCType of crystal lattyce structure output
Default:FCC
C++ Type:MooseEnum
Controllable:No
Description:Type of crystal lattyce structure output
- 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<unsigned int>
Controllable:No
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
- 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<double>
Controllable:No
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
- 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<double>
Controllable:No
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
- 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.
- 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<double>
Controllable:No
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.
- 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<double>
Controllable:No
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
- 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<double>
Controllable:No
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
- uo_slip_rate_nameName of slip rate property: Same as slip rate user object specified in input file.
C++ Type:std::string
Controllable:No
Description:Name of slip rate property: Same as slip rate user object specified in input file.
- uo_state_var_nameName of state variable property: Same as state variable user object specified in input file.
C++ Type:std::string
Controllable:No
Description:Name of state variable property: Same as state variable user object specified in input file.
Optional Parameters
- 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
Controllable:No
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).
- 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.
- execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
Default:0
C++ Type:int
Controllable:No
Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
- force_postauxFalseForces the UserObject to be executed in POSTAUX
Default:False
C++ Type:bool
Controllable:No
Description:Forces the UserObject to be executed in POSTAUX
- force_preauxFalseForces the UserObject to be executed in PREAUX
Default:False
C++ Type:bool
Controllable:No
Description:Forces the UserObject to be executed in PREAUX
- force_preicFalseForces the UserObject to be executed in PREIC during initial setup
Default:False
C++ Type:bool
Controllable:No
Description:Forces the UserObject to be executed in PREIC during initial setup
- 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.