- C_ijklStiffness tensor for material
C++ Type:std::vector<double>
Controllable:No
Description:Stiffness tensor for material
Compute Elasticity Tensor CP
Compute an elasticity tensor for crystal plasticity.
Description
The material ComputeElasticityTensorCP
is used to create an elasticity tensor for crystal plasticity simulations. This material builds an orthotropic elasticity tensor using the fill_method symmetric9
from ComputeElasticityTensor. ComputeElasticityTensorCP
rotates the elasticity tensor both during the initial setup step, if Euler angles are provided, and at the start of each timestep.
The rotation matrix used in this class,ComputeElasticityTensorCP
, is the transpose of the rotation matrix created from the Bunge Euler angles in the base class, ComputeElasticityTensor. This difference in the rotation matrix is because of the active rotation convention used in crystal plasticity simulations.
The fill method symmetric9
is appropriate for materials with three orthotropic planes of symmetry (Malvern, 1969), and is used for simulations of anistropic materials such as cubic crystals. The engineering elasticity tensor notation for an orthotropic material is given in Eq. (1): (1)
Rotation Tensor Conventions
The Euler angle convention used in ComputeElasticityTensorCP
is the -- (3-1-3) convention. The Euler angles arguments are expected in degrees, not radians, and are denoted as , , and , corresponding to the axis rotations. The rotation tensor, , is calculated from the current Euler angles at each timestep as shown in Eq. (2). (2) The elasticity tensor is then rotated with Eq. (3) (3) at the beginning of each material timestep calculation.
The crystal plasticity materials, including ComputeElasticityTensorCP
employ an active rotation: the crystal system is rotated into the sample (loading) coordinate system. Generally the Bunge Euler angles are used to describe a passive rotation: rotating the sample coordinate system into the crystal coordinate system. As a result, the rotation tensor applied is the transpose of the rotation tensor given in Eq. (2) as noted in Eq. (3).
Example Input File Syntax
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/test.i)Input Parameters
- base_nameOptional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases
C++ Type:std::string
Controllable:No
Description:Optional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases
- 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 boundary condition applies
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:The list of boundaries (ids or names) from the mesh where this boundary condition applies
- computeTrueWhen false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
Default:True
C++ Type:bool
Controllable:No
Description:When false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
- 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
- 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.
- elasticity_tensor_prefactorOptional function to use as a scalar prefactor on the elasticity tensor.
C++ Type:FunctionName
Controllable:No
Description:Optional function to use as a scalar prefactor on the elasticity tensor.
- euler_angle_10Euler angle in direction 1
Default:0
C++ Type:double
Controllable:No
Description:Euler angle in direction 1
- euler_angle_20Euler angle in direction 2
Default:0
C++ Type:double
Controllable:No
Description:Euler angle in direction 2
- euler_angle_30Euler angle in direction 3
Default:0
C++ Type:double
Controllable:No
Description:Euler angle in direction 3
- fill_methodsymmetric9The fill method
Default:symmetric9
C++ Type:MooseEnum
Options:antisymmetric, symmetric9, symmetric21, general_isotropic, symmetric_isotropic, symmetric_isotropic_E_nu, antisymmetric_isotropic, axisymmetric_rz, general, principal, orthotropic
Controllable:No
Description:The fill method
- 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.
- read_prop_user_objectThe ElementReadPropertyFile GeneralUserObject to read element specific property values from file
C++ Type:UserObjectName
Controllable:No
Description:The ElementReadPropertyFile GeneralUserObject to read element specific property values from file
- rotation_matrixRotation matrix to apply to elasticity tensor.
C++ Type:libMesh::TensorValue<double>
Controllable:No
Description:Rotation matrix to apply to elasticity tensor.
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 were 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 were you would like to restrict the output of variables(s) associated with this object
Outputs Parameters
Input Files
- (modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/exception.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/cp_slip_rate_integ/crysp_linesearch.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/cp_slip_rate_integ/crysp.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_fileread.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/substep.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/patch_recovery.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_read_slip_prop.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/orthotropic_rotation_Cijkl.i)
- (modules/tensor_mechanics/test/tests/elem_prop_read_user_object/prop_elem_read.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/orthotropic_rotation_Cijkl.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_save_euler.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_substep.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_user_object.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/user_object_Voce_BCC.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/test.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/use_substep_dt.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/save_euler.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/user_object_011orientation.i)
- (modules/contact/examples/2d_indenter/indenter_rz_fine.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/cp_slip_rate_integ/crysp_substep.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/fileread.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/user_object.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_cutback.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/prop_block_read.i)
- (modules/contact/examples/3d_berkovich/indenter_berkovich_friction.i)
- (modules/tensor_mechanics/test/tests/elem_prop_read_user_object/prop_grain_read.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_linesearch.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/stress_update_material_based/orthotropic_rotation_Cijkl.i)
- (modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/linesearch.i)
- (modules/tensor_mechanics/test/tests/elem_prop_read_user_object/prop_grain_read_3d.i)
References
- Lawrence E Malvern.
Introduction to the Mechanics of a Continuous Medium.
Prentice-Hall, 1969.[BibTeX]
@book{malvern1969introduction, author = "Malvern, Lawrence E", title = "Introduction to the Mechanics of a Continuous Medium", year = "1969", publisher = "Prentice-Hall" }
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/test.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[./pk2]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[./slip_increment]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[./pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = pk2
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./slip_inc]
type = MaterialStdVectorAux
variable = slip_increment
property = slip_rate_gss
index = 0
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.01*t'
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./pk2]
type = ElementAverageValue
variable = pk2
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[./slip_increment]
type = ElementAverageValue
variable = slip_increment
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
dtmin = 0.05
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/exception.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
[../]
[./uy]
[../]
[./uz]
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./pk2]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[./slip_increment]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.1*t
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = pk2
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[./slip_inc]
type = MaterialStdVectorAux
variable = slip_increment
property = slip_rate_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
block = 0
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./pk2]
type = ElementAverageValue
variable = pk2
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[./slip_increment]
type = ElementAverageValue
variable = slip_increment
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.01
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.05
dtmax = 10.0
dtmin = 0.05
num_steps = 10
[]
[Outputs]
file_base = out
exodus = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/cp_slip_rate_integ/crysp_linesearch.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[./disp_z]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.0001*t
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCPSlipRateRes
block = 0
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.01 5 8 0.001 0.01 9 12 0.001 0.01'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
slip_incr_tol = 1
maximum_substep_iteration = 12
use_line_search = true
rtol = 1e-8
abs_tol = 1e-12
line_search_method = 'BISECTION'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 10
dtmin = 0.05
dtmax = 1e4
num_steps = 10
[]
[Outputs]
file_base = crysp_linesearch_out
exodus = true
print_linear_residuals = true
perf_graph = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/cp_slip_rate_integ/crysp.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCPSlipRateRes
gtol = 1e-2
rtol = 1e-8
abs_tol = 1e-15
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
slip_incr_tol = 1
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
dt = 0.2
dtmin = 0.05
dtmax = 10.0
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
end_time = 1
[]
[Outputs]
file_base = out
exodus = true
print_linear_residuals = true
perf_graph = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_fileread.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx=1
ny=1
nz=1
xmin=0.0
xmax=1.0
ymin=0.0
ymax=1.0
zmin=0.0
zmax=1.0
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[./disp_z]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = 'initial timestep_end'
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = 'initial timestep_end'
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
slip_sys_res_prop_file_name = input_slip_sys_res.txt
slip_sys_flow_prop_file_name = input_slip_sys_flow_prop.txt
hprops = '1.0 541.5 60.8 109.8 2.5'
nss = 12
intvar_read_type = slip_sys_res_file
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
execute_on = 'initial timestep_end'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
execute_on = 'initial timestep_end'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
execute_on = 'initial timestep_end'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
execute_on = 'initial timestep_end'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.05
dtmax = 10.0
dtmin = 0.05
num_steps = 10
[]
[Outputs]
file_base = crysp_fileread_out
exodus = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/substep.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
block = 0
stol = 1e-2
tan_mod_type = exact
maximum_substep_iteration = 10
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss]
type = ElementAverageValue
variable = gss
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 2.0
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 30.0
dtmin = 0.5
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
csv = true
gnuplot = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/patch_recovery.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
displacements = 'ux uy'
[]
[Variables]
[ux]
[]
[uy]
[]
[]
[AuxVariables]
[stress_xx_recovered]
order = FIRST
family = LAGRANGE
[]
[stress_yy_recovered]
order = FIRST
family = LAGRANGE
[]
[]
[Functions]
[tdisp]
type = ParsedFunction
value = 0.01*t
[]
[]
[Kernels]
[TensorMechanics]
displacements = 'ux uy'
use_displaced_mesh = true
[]
[]
[AuxKernels]
[stress_xx_recovered]
type = NodalPatchRecoveryAux
variable = stress_xx_recovered
nodal_patch_recovery_uo = stress_xx_patch
execute_on = 'TIMESTEP_END'
[]
[stress_yy_recovered]
type = NodalPatchRecoveryAux
variable = stress_yy_recovered
nodal_patch_recovery_uo = stress_yy_patch
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = uy
boundary = top
function = tdisp
[]
[]
[UserObjects]
[slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[]
[slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[]
[state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[]
[state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[]
[stress_xx_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '0 0'
execute_on = 'TIMESTEP_END'
[]
[stress_yy_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '1 1'
execute_on = 'TIMESTEP_END'
[]
[]
[Materials]
[crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[]
[strain]
type = ComputeFiniteStrain
displacements = 'ux uy'
[]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_read_slip_prop.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys_prop.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
tan_mod_type = exact
intvar_read_type = slip_sys_file
num_slip_sys_props = 1
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.05
dtmax = 10.0
dtmin = 0.05
num_steps = 10
[]
[Outputs]
file_base = crysp_read_slip_prop_out
exodus = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/orthotropic_rotation_Cijkl.i)
# This test is designed to test the correct application of the Euler angle
# rotations to the elasticity tensor. The test uses values for the nine C_ijkl
# entries that correspond to the engineering notation placement:
# e.g. C11 = 11e3, c12 = 12e3, c13 = 13e3, c22 = 22e3 ..... c66 = 66e3
#
# A rotation of (0, 90, 0) is applied to the 1x1x1 cube, such that the values of
# c12 and c13 switch, c22 and c33 switch, and c55 and c66 switch. Postprocessors
# are used to verify this switch (made simple with the value convention above)
# and to verify that the unrotated components along the x-axis remain constant.
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./lage_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./lage_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./pk2_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./lage_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./c11]
order = CONSTANT
family = MONOMIAL
[../]
[./c12]
order = CONSTANT
family = MONOMIAL
[../]
[./c13]
order = CONSTANT
family = MONOMIAL
[../]
[./c22]
order = CONSTANT
family = MONOMIAL
[../]
[./c23]
order = CONSTANT
family = MONOMIAL
[../]
[./c33]
order = CONSTANT
family = MONOMIAL
[../]
[./c44]
order = CONSTANT
family = MONOMIAL
[../]
[./c55]
order = CONSTANT
family = MONOMIAL
[../]
[./c66]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
add_variables = true
[../]
[]
[AuxKernels]
[./lage_xx]
type = RankTwoAux
rank_two_tensor = lage
variable = lage_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./lage_yy]
type = RankTwoAux
rank_two_tensor = lage
variable = lage_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./pk2_yy]
type = RankTwoAux
variable = pk2_yy
rank_two_tensor = pk2
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./lage_zz]
type = RankTwoAux
rank_two_tensor = lage
variable = lage_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./c11]
type = RankFourAux
variable = c11
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 0
index_l = 0
execute_on = timestep_end
[../]
[./c12]
type = RankFourAux
variable = c12
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 1
index_l = 1
execute_on = timestep_end
[../]
[./c13]
type = RankFourAux
variable = c13
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c22]
type = RankFourAux
variable = c22
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 1
index_k = 1
index_l = 1
execute_on = timestep_end
[../]
[./c23]
type = RankFourAux
variable = c23
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 1
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c33]
type = RankFourAux
variable = c33
rank_four_tensor = elasticity_tensor
index_i = 2
index_j = 2
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c44]
type = RankFourAux
variable = c44
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 2
index_k = 1
index_l = 2
execute_on = timestep_end
[../]
[./c55]
type = RankFourAux
variable = c55
rank_four_tensor = elasticity_tensor
index_i = 2
index_j = 0
index_k = 2
index_l = 0
execute_on = timestep_end
[../]
[./c66]
type = RankFourAux
variable = c66
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 1
index_k = 0
index_l = 1
execute_on = timestep_end
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8e3 5 8 60.8e3 9 12 60.8e3'
tan_mod_type = exact
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '11e3 12e3 13e3 22e3 23e3 33e3 44e3 55e3 66e3'
fill_method = symmetric9
euler_angle_1 = 0.0
euler_angle_2 = 90.0
euler_angle_3 = 0.0
[../]
[]
[Postprocessors]
[./lage_xx]
type = ElementAverageValue
variable = lage_xx
[../]
[./pk2_yy]
type = ElementAverageValue
variable = pk2_yy
[../]
[./lage_yy]
type = ElementAverageValue
variable = lage_yy
[../]
[./lage_zz]
type = ElementAverageValue
variable = lage_zz
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
[../]
[./c11]
type = ElementAverageValue
variable = c11
[../]
[./c12]
type = ElementAverageValue
variable = c12
[../]
[./c13]
type = ElementAverageValue
variable = c13
[../]
[./c22]
type = ElementAverageValue
variable = c22
[../]
[./c23]
type = ElementAverageValue
variable = c23
[../]
[./c33]
type = ElementAverageValue
variable = c33
[../]
[./c44]
type = ElementAverageValue
variable = c44
[../]
[./c55]
type = ElementAverageValue
variable = c55
[../]
[./c66]
type = ElementAverageValue
variable = c66
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_tol = 1e-3
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 1 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
dtmax = 0.1
dtmin = 1.0e-3
dt = 0.05
end_time = 0.5
[]
[Outputs]
exodus = false
csv = true
[]
(modules/tensor_mechanics/test/tests/elem_prop_read_user_object/prop_elem_read.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 2
ny = 2
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[]
[GlobalParams]
volumetric_locking_correction=true
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.05*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'input_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 4
read_type = element
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = elastic_strain
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./elasticity_tensor_with_Euler]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 1
nl_abs_step_tol = 1e-10
[]
[Outputs]
file_base = prop_elem_read_out
exodus = true
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/orthotropic_rotation_Cijkl.i)
# This test is designed to test the correct application of the Euler angle
# rotations to the elasticity tensor. The test uses values for the nine C_ijkl
# entries that correspond to the engineering notation placement:
# e.g. C11 = 11e3, c12 = 12e3, c13 = 13e3, c22 = 22e3 ..... c66 = 66e3
#
# A rotation of (0, 90, 0) is applied to the 1x1x1 cube, such that the values of
# c12 and c13 switch, c22 and c33 switch, and c55 and c66 switch. Postprocessors
# are used to verify this switch (made simple with the value convention above)
# and to verify that the unrotated components along the x-axis remain constant.
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./lage_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./lage_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./pk2_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./lage_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./c11]
order = CONSTANT
family = MONOMIAL
[../]
[./c12]
order = CONSTANT
family = MONOMIAL
[../]
[./c13]
order = CONSTANT
family = MONOMIAL
[../]
[./c22]
order = CONSTANT
family = MONOMIAL
[../]
[./c23]
order = CONSTANT
family = MONOMIAL
[../]
[./c33]
order = CONSTANT
family = MONOMIAL
[../]
[./c44]
order = CONSTANT
family = MONOMIAL
[../]
[./c55]
order = CONSTANT
family = MONOMIAL
[../]
[./c66]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
add_variables = true
[../]
[]
[AuxKernels]
[./lage_xx]
type = RankTwoAux
rank_two_tensor = lage
variable = lage_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./lage_yy]
type = RankTwoAux
rank_two_tensor = lage
variable = lage_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./pk2_yy]
type = RankTwoAux
variable = pk2_yy
rank_two_tensor = pk2
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./lage_zz]
type = RankTwoAux
rank_two_tensor = lage
variable = lage_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./c11]
type = RankFourAux
variable = c11
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 0
index_l = 0
execute_on = timestep_end
[../]
[./c12]
type = RankFourAux
variable = c12
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 1
index_l = 1
execute_on = timestep_end
[../]
[./c13]
type = RankFourAux
variable = c13
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c22]
type = RankFourAux
variable = c22
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 1
index_k = 1
index_l = 1
execute_on = timestep_end
[../]
[./c23]
type = RankFourAux
variable = c23
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 1
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c33]
type = RankFourAux
variable = c33
rank_four_tensor = elasticity_tensor
index_i = 2
index_j = 2
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c44]
type = RankFourAux
variable = c44
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 2
index_k = 1
index_l = 2
execute_on = timestep_end
[../]
[./c55]
type = RankFourAux
variable = c55
rank_four_tensor = elasticity_tensor
index_i = 2
index_j = 0
index_k = 2
index_l = 0
execute_on = timestep_end
[../]
[./c66]
type = RankFourAux
variable = c66
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 1
index_k = 0
index_l = 1
execute_on = timestep_end
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '11e3 12e3 13e3 22e3 23e3 33e3 44e3 55e3 66e3'
fill_method = symmetric9
euler_angle_1 = 0.0
euler_angle_2 = 45.0
euler_angle_3 = 45.0
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8' #strength units in MPa
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Postprocessors]
[./lage_xx]
type = ElementAverageValue
variable = lage_xx
[../]
[./pk2_yy]
type = ElementAverageValue
variable = pk2_yy
[../]
[./lage_yy]
type = ElementAverageValue
variable = lage_yy
[../]
[./lage_zz]
type = ElementAverageValue
variable = lage_zz
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
[../]
[./c11]
type = ElementAverageValue
variable = c11
[../]
[./c12]
type = ElementAverageValue
variable = c12
[../]
[./c13]
type = ElementAverageValue
variable = c13
[../]
[./c22]
type = ElementAverageValue
variable = c22
[../]
[./c23]
type = ElementAverageValue
variable = c23
[../]
[./c33]
type = ElementAverageValue
variable = c33
[../]
[./c44]
type = ElementAverageValue
variable = c44
[../]
[./c55]
type = ElementAverageValue
variable = c55
[../]
[./c66]
type = ElementAverageValue
variable = c66
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_tol = 1e-3
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 1 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
dtmax = 0.1
dtmin = 1.0e-3
dt = 0.05
end_time = 0.5
[]
[Outputs]
exodus = false
csv = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_save_euler.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 2
ny = 2
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./euler1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./euler2]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./euler3]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'euler_ang_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 3
read_type = element
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = lage
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[./euler1]
type = MaterialRealVectorValueAux
variable = euler1
property = Euler_angles
component = 0
execute_on = timestep_end
block = 0
[../]
[./euler2]
type = MaterialRealVectorValueAux
variable = euler2
property = Euler_angles
component = 1
execute_on = timestep_end
block = 0
[../]
[./euler3]
type = MaterialRealVectorValueAux
variable = euler3
property = Euler_angles
component = 2
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.01
dtmax = 10.0
dtmin = 0.01
num_steps = 10
[]
[Outputs]
file_base = crysp_save_euler_out
exodus = true
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_substep.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
gen_random_stress_flag = false
maximum_substep_iteration = 2
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.5
dtmax = 10.0
dtmin = 0.5
num_steps = 3
[]
[Outputs]
file_base = crysp_substep_out
exodus = true
csv = true
gnuplot = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_user_object.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 2
ny = 2
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[]
[GlobalParams]
volumetric_locking_correction=true
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'euler_ang_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 3
read_type = element
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = lage
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.01
dtmax = 10.0
dtmin = 0.01
num_steps = 10
[]
[Outputs]
file_base = crysp_user_object_out
exodus = true
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/user_object_Voce_BCC.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 2
ny = 2
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'euler_ang_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 3
read_type = element
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = lage
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 48
slip_sys_file_name = input_slip_sys_bcc48.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 12 0.001 0.1 13 24 0.001 0.1 25 48 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 48
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 48
groups = '0 12 24 48'
group_values = '50 51 52'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_voce
scale_factor = 1.0
[../]
[./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
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_voce'
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.01
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.01
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/test.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[./pk2]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[./slip_increment]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[./pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = pk2
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./slip_inc]
type = MaterialStdVectorAux
variable = slip_increment
property = slip_rate_gss
index = 0
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.01*t'
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./pk2]
type = ElementAverageValue
variable = pk2
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[./slip_increment]
type = ElementAverageValue
variable = slip_increment
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
dtmin = 0.05
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/use_substep_dt.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 4
ny = 4
nz = 4
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
[../]
[./uy]
[../]
[./uz]
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./pk2]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[./slip_increment]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = pk2
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[./slip_inc]
type = MaterialStdVectorAux
variable = slip_increment
property = slip_rate_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./pushy]
type = FunctionDirichletBC
variable = uy
boundary = top
function = '-0.1*t'
[../]
[./pullz]
type = FunctionDirichletBC
variable = uz
boundary = front
function = '0.1*t'
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
block = 0
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./pk2]
type = ElementAverageValue
variable = pk2
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[./slip_increment]
type = ElementAverageValue
variable = slip_increment
[../]
[./uy_avg_top]
type = SideAverageValue
variable = uy
boundary = top
[]
[./uz_avg_front]
type = SideAverageValue
variable = uz
boundary = front
[]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1.0
num_steps = 5
dtmin = 0.001
nl_abs_step_tol = 1e-10
[]
[Outputs]
csv = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/save_euler.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 2
ny = 2
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[./euler1]
order = CONSTANT
family = MONOMIAL
[../]
[./euler2]
order = CONSTANT
family = MONOMIAL
[../]
[./euler3]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'euler_ang_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 3
read_type = element
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = lage
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[./euler1]
type = MaterialRealVectorValueAux
variable = euler1
property = Euler_angles
component = 0
execute_on = timestep_end
[../]
[./euler2]
type = MaterialRealVectorValueAux
variable = euler2
property = Euler_angles
component = 1
execute_on = timestep_end
[../]
[./euler3]
type = MaterialRealVectorValueAux
variable = euler3
property = Euler_angles
component = 2
execute_on = timestep_end
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.01
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.01
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/user_object_011orientation.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[./pk2]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./lagrangian_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./lagrangian_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[./slip_increment]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[./pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = pk2
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./lagrangian_strain_zz]
type = RankTwoAux
variable = lagrangian_strain_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./lagrangian_strain_yy]
type = RankTwoAux
rank_two_tensor = lage
variable = lagrangian_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./slip_inc]
type = MaterialStdVectorAux
variable = slip_increment
property = slip_rate_gss
index = 0
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.01*t'
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
euler_angle_1 = 120.0
euler_angle_2 = 125.264
euler_angle_3 = 45.0
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./pk2]
type = ElementAverageValue
variable = pk2
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./lagrangian_strain_yy]
type = ElementAverageValue
variable = lagrangian_strain_yy
[../]
[./lagrangian_strain_zz]
type = ElementAverageValue
variable = lagrangian_strain_zz
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[./slip_increment]
type = ElementAverageValue
variable = slip_increment
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
dtmin = 0.05
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
csv = true
[]
(modules/contact/examples/2d_indenter/indenter_rz_fine.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
patch_update_strategy = auto
patch_size = 2
partitioner = centroid
centroid_partitioner_direction = y
[simple_mesh]
type = FileMeshGenerator
file = indenter_rz_fine_bigsideset.e
[]
# For NodalVariableValue to work with distributed mesh
allow_renumbering = false
[]
[Functions]
[disp_y]
type = PiecewiseLinear
x = '0. 1.0 2.0 2.6 3.0'
y = '0. -4.5 -5.7 -5.7 -4.0'
[]
[]
[Variables]
[disp_x]
order = FIRST
family = LAGRANGE
block = '1 2'
[]
[disp_y]
order = FIRST
family = LAGRANGE
block = '1 2'
[]
[]
[AuxVariables]
[saved_x]
[]
[saved_y]
[]
[]
[Modules/TensorMechanics/Master]
[all]
add_variables = true
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
save_in = 'saved_x saved_y'
[]
[]
[BCs]
# Symmetries of the Problem
[symm_x_indenter]
type = DirichletBC
variable = disp_x
boundary = 5
value = 0.0
[]
[symm_x_material]
type = DirichletBC
variable = disp_x
boundary = 9
value = 0.0
[]
# Material should not fly away
[material_base_y]
type = DirichletBC
variable = disp_y
boundary = 8
value = 0.0
[]
# Drive indenter motion
[disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = disp_y
[]
[]
[Contact]
[contact]
secondary = 4
primary = 6
model = frictionless
# Investigate von Mises stress at the edge
correct_edge_dropping = true
formulation = mortar
c_normal = 1e+2
[]
[]
[UserObjects]
[slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 48
slip_sys_file_name = input_slip_sys_bcc48.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 48 0.0001 0.01'
uo_state_var_name = state_var_gss
slip_incr_tol = 10.0
block = 2
[]
[slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 48
uo_state_var_name = state_var_gss
block = 2
[]
[state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 48
groups = '0 24 48'
group_values = '900 1000' #120
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
block = 2
[]
[state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 48
hprops = '1.4 1000 1200 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
block = 2
[]
[]
[Materials]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e7
poissons_ratio = 0.25
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[crysp]
type = FiniteStrainUObasedCP
block = 2
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
maximum_substep_iteration = 20
[]
[elasticity_tensor]
type = ComputeElasticityTensorCP
block = 2
C_ijkl = '265190 113650 113650 265190 113650 265190 75769 75769 75760'
fill_method = symmetric9
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type '
'-pc_factor_shift_amount'
petsc_options_value = 'lu basic NONZERO 1e-15'
line_search = 'none'
automatic_scaling = true
nl_abs_tol = 2.0e-07
nl_rel_tol = 2.0e-07
l_max_its = 40
l_abs_tol = 1e-08
l_tol = 1e-08
start_time = 0.0
dt = 0.01
end_time = 3.0 # Executioner
[]
[Postprocessors]
[maxdisp]
type = NodalVariableValue
nodeid = 39
variable = disp_y
[]
[resid_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[]
[Outputs]
[out]
type = Exodus
elemental_as_nodal = true
[]
perf_graph = true
csv = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/cp_slip_rate_integ/crysp_substep.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[./disp_z]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCPSlipRateRes
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.01 5 8 0.001 0.01 9 12 0.001 0.01'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
slip_incr_tol = 1
maximum_substep_iteration = 8
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.2
dtmax = 10.0
dtmin = 0.05
end_time = 1
[]
[Outputs]
file_base = crysp_substep_out
exodus = true
print_linear_residuals = true
perf_graph = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/fileread.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
[../]
[./uy]
[../]
[./uz]
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
intvar_read_type = file_input
state_variable_file_name = input_state_variable.txt
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'ux uy uz'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/user_object.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 2
ny = 2
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'euler_ang_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 3
read_type = element
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = lage
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.01
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.01
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_cutback.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
gen_random_stress_flag = true
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_factor_shift_type'
petsc_options_value = 'nonzero'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 1.0
dtmax = 10.0
dtmin = 1e-5
num_steps = 3
snesmf_reuse_base = false
[]
[Outputs]
file_base = crysp_cutback_out
exodus = true
csv = true
gnuplot = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/prop_block_read.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
ymin = 0
xmax = 1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD4
[]
[./subdomain_id]
input = gen
type = ElementSubdomainIDGenerator
subdomain_ids = '0 1
0 1'
[../]
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[./euler1]
order = CONSTANT
family = MONOMIAL
[../]
[./euler2]
order = CONSTANT
family = MONOMIAL
[../]
[./euler3]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'euler_ang_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 3
read_type = block
nblock= 2
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = lage
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[./euler1]
type = MaterialRealVectorValueAux
variable = euler1
property = Euler_angles
component = 0
execute_on = timestep_end
[../]
[./euler2]
type = MaterialRealVectorValueAux
variable = euler2
property = Euler_angles
component = 1
execute_on = timestep_end
[../]
[./euler3]
type = MaterialRealVectorValueAux
variable = euler3
property = Euler_angles
component = 2
execute_on = timestep_end
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.01
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.01
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
(modules/contact/examples/3d_berkovich/indenter_berkovich_friction.i)
[Mesh]
file = indenter.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
order = FIRST
family = LAGRANGE
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_z]
[../]
[]
[AuxKernels]
[]
[Functions]
[./push_down]
type = ParsedFunction
value = 'if(t < 1.5, -t, t-3.0)'
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
add_variables = true
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
save_in = 'saved_x saved_y saved_z'
use_finite_deform_jacobian = true
[../]
[]
[BCs]
[./botz]
type = DirichletBC
variable = disp_z
boundary = 101
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 101
value = 0.0
[../]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 101
value = 0.0
[../]
[./boty111]
type = DirichletBC
variable = disp_y
boundary = 111
value = 0.0
[../]
[./botx111]
type = DirichletBC
variable = disp_x
boundary = 111
value = 0.0
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = '201'
function = push_down
[../]
[./topy]
type = DirichletBC
variable = disp_y
boundary = 201
value = 0.0
[../]
[./topx]
type = DirichletBC
variable = disp_x
boundary = 201
value = 0.0
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 48
slip_sys_file_name = input_slip_sys_bcc48.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 48 0.0001 0.01'
uo_state_var_name = state_var_gss
slip_incr_tol = 10.0
block = 1
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 48
uo_state_var_name = state_var_gss
block = 1
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 48
groups = '0 24 48'
group_values = '900 1000' #120
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
block = 1
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 48
hprops = '1.4 1000 1200 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
block = 1
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
block = 1
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
maximum_substep_iteration = 25
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 1
C_ijkl = '265190 113650 113650 265190 113650 265190 75769 75769 75760'
fill_method = symmetric9
[../]
[./elasticity_tensor_indenter]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000000.0
poissons_ratio = 0.3
block = 2
[../]
[./stress_indenter]
type = ComputeFiniteStrainElasticStress
block = 2
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 1
[../]
[./resid_z]
type = NodalSum
variable = saved_z
boundary = 201
[../]
[./disp_z]
type = NodalExtremeValue
variable = disp_z
boundary = 201
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 60
nl_max_its = 50
dt = 0.004
dtmin = 0.00001
end_time = 1.8
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6 # 6 if no friction
l_tol = 1e-3
automatic_scaling = true
[]
[Outputs]
[./my_checkpoint]
type = Checkpoint
interval = 50
[../]
exodus = true
csv = true
print_linear_residuals = true
print_perf_log = true
[./console]
type = Console
max_rows = 5
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Dampers]
[./contact_slip]
type = ContactSlipDamper
primary = '202'
secondary = '102'
[../]
[]
[Contact]
[./ind_base]
primary = 202
secondary = 102
model = coulomb
friction_coefficient = 0.4
normalize_penalty = true
formulation = tangential_penalty
penalty = 1e7
capture_tolerance = 0.0001
[../]
[]
(modules/tensor_mechanics/test/tests/elem_prop_read_user_object/prop_grain_read.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 10
ny = 10
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[]
[GlobalParams]
volumetric_locking_correction=true
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.05*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'input_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 4
read_type = voronoi
nvoronoi = 3
use_random_voronoi = true
rand_seed = 25346
rve_type = periodic
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = elastic_strain
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./elasticity_tensor_with_Euler]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 1
nl_abs_step_tol = 1e-10
[]
[Outputs]
file_base = prop_grain_read_out
exodus = true
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_linesearch.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
rtol = 1e-6
abs_tol = 1e-8
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
use_line_search = true
min_line_search_step_size = 0.01
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.025
dtmax = 10.0
dtmin = 0.02
num_steps = 10
[]
[Outputs]
file_base = crysp_lsearch_out
exodus = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/stress_update_material_based/orthotropic_rotation_Cijkl.i)
# This test is designed to test the correct application of the Euler angle
# rotations to the elasticity tensor. The test uses values for the nine C_ijkl
# entries that correspond to the engineering notation placement:
# e.g. C11 = 11e3, c12 = 12e3, c13 = 13e3, c22 = 22e3 ..... c66 = 66e3
#
# A rotation of (0, 90, 0) is applied to the 1x1x1 cube, such that the values of
# c12 and c13 switch, c22 and c33 switch, and c55 and c66 switch. Postprocessors
# are used to verify this switch (made simple with the value convention above)
# and to verify that the unrotated components along the x-axis remain constant.
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./lage_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./lage_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./pk2_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./lage_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./c11]
order = CONSTANT
family = MONOMIAL
[../]
[./c12]
order = CONSTANT
family = MONOMIAL
[../]
[./c13]
order = CONSTANT
family = MONOMIAL
[../]
[./c22]
order = CONSTANT
family = MONOMIAL
[../]
[./c23]
order = CONSTANT
family = MONOMIAL
[../]
[./c33]
order = CONSTANT
family = MONOMIAL
[../]
[./c44]
order = CONSTANT
family = MONOMIAL
[../]
[./c55]
order = CONSTANT
family = MONOMIAL
[../]
[./c66]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
add_variables = true
[../]
[]
[AuxKernels]
[./lage_xx]
type = RankTwoAux
rank_two_tensor = total_lagrangian_strain
variable = lage_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./lage_yy]
type = RankTwoAux
rank_two_tensor = total_lagrangian_strain
variable = lage_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./pk2_yy]
type = RankTwoAux
variable = pk2_yy
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./lage_zz]
type = RankTwoAux
rank_two_tensor = total_lagrangian_strain
variable = lage_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = plastic_deformation_gradient
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./c11]
type = RankFourAux
variable = c11
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 0
index_l = 0
execute_on = timestep_end
[../]
[./c12]
type = RankFourAux
variable = c12
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 1
index_l = 1
execute_on = timestep_end
[../]
[./c13]
type = RankFourAux
variable = c13
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c22]
type = RankFourAux
variable = c22
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 1
index_k = 1
index_l = 1
execute_on = timestep_end
[../]
[./c23]
type = RankFourAux
variable = c23
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 1
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c33]
type = RankFourAux
variable = c33
rank_four_tensor = elasticity_tensor
index_i = 2
index_j = 2
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c44]
type = RankFourAux
variable = c44
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 2
index_k = 1
index_l = 2
execute_on = timestep_end
[../]
[./c55]
type = RankFourAux
variable = c55
rank_four_tensor = elasticity_tensor
index_i = 2
index_j = 0
index_k = 2
index_l = 0
execute_on = timestep_end
[../]
[./c66]
type = RankFourAux
variable = c66
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 1
index_k = 0
index_l = 1
execute_on = timestep_end
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '11e3 12e3 13e3 22e3 23e3 33e3 44e3 55e3 66e3'
fill_method = symmetric9
euler_angle_1 = 0.0
euler_angle_2 = 45.0
euler_angle_3 = 45.0
[../]
[./stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[../]
[./trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[../]
[]
[Postprocessors]
[./lage_xx]
type = ElementAverageValue
variable = lage_xx
[../]
[./pk2_yy]
type = ElementAverageValue
variable = pk2_yy
[../]
[./lage_yy]
type = ElementAverageValue
variable = lage_yy
[../]
[./lage_zz]
type = ElementAverageValue
variable = lage_zz
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
[../]
[./c11]
type = ElementAverageValue
variable = c11
[../]
[./c12]
type = ElementAverageValue
variable = c12
[../]
[./c13]
type = ElementAverageValue
variable = c13
[../]
[./c22]
type = ElementAverageValue
variable = c22
[../]
[./c23]
type = ElementAverageValue
variable = c23
[../]
[./c33]
type = ElementAverageValue
variable = c33
[../]
[./c44]
type = ElementAverageValue
variable = c44
[../]
[./c55]
type = ElementAverageValue
variable = c55
[../]
[./c66]
type = ElementAverageValue
variable = c66
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_tol = 1e-3
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 1 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
dtmax = 0.1
dtmin = 1.0e-3
dt = 0.05
end_time = 0.5
[]
[Outputs]
exodus = false
csv = true
[]
(modules/tensor_mechanics/test/tests/crystal_plasticity/user_object_based/linesearch.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
[../]
[./uy]
[../]
[./uz]
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.01*t
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
maximum_substep_iteration = 200
use_line_search = true
min_line_search_step_size = 0.01
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'ux uy uz'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.02
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/tensor_mechanics/test/tests/elem_prop_read_user_object/prop_grain_read_3d.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
nx = 30
ny = 30
nz = 30
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[./disp_z]
block = 0
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
value = 0.05*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'input_file.txt'
nprop = 4
read_type = grain
ngrain = 4
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = elastic_strain
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./elasticity_tensor_with_Euler]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 2
nl_abs_step_tol = 1e-10
[]
[Outputs]
file_base = prop_grain_read_3d_out
exodus = true
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]