- variableThe name of the variable that this residual object operates on
C++ Type:NonlinearVariableName
Unit:(no unit assumed)
Controllable:No
Description:The name of the variable that this residual object operates on
ADPFFDiffusion
The diffusion term in the phase-field evolution equation. The weak form is .
Example Input File Syntax
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
Unit:(no unit assumed)
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>
Unit:(no unit assumed)
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- displacementsThe displacements
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The displacements
- fracture_toughnessGcThe fracture toughness $\Gc$
Default:Gc
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:The fracture toughness $\Gc$
- normalization_constantc0The normalization constant $c_0$
Default:c0
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:The normalization constant $c_0$
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
- regularization_lengthlThe phase-field regularization length
Default:l
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:The phase-field regularization length
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Optional Parameters
- absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution
C++ Type:std::vector<TagName>
Unit:(no unit assumed)
Controllable:No
Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution
- extra_matrix_tagsThe extra tags for the matrices this Kernel should fill
C++ Type:std::vector<TagName>
Unit:(no unit assumed)
Controllable:No
Description:The extra tags for the matrices this Kernel should fill
- extra_vector_tagsThe extra tags for the vectors this Kernel should fill
C++ Type:std::vector<TagName>
Unit:(no unit assumed)
Controllable:No
Description:The extra tags for the vectors this Kernel should fill
- matrix_tagssystemThe tag for the matrices this Kernel should fill
Default:system
C++ Type:MultiMooseEnum
Unit:(no unit assumed)
Options:nontime, system
Controllable:No
Description:The tag for the matrices this Kernel should fill
- vector_tagsnontimeThe tag for the vectors this Kernel should fill
Default:nontime
C++ Type:MultiMooseEnum
Unit:(no unit assumed)
Options:nontime, time
Controllable:No
Description:The tag for the vectors this Kernel should fill
Tagging Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- diag_save_inThe name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector<AuxVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- save_inThe name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector<AuxVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
Input Files
- (tutorials/mode1_brittle_fracture/fracture.i)
- (tutorials/homogeneous_cube/Hencky_J2_JohnsonCook/fracture.i)
- (tutorials/matrix_fiber/fracture.i)
- (tutorials/homogeneous_cube/Hencky_J2_arrheniuslawhardening_creep_thermal/fracture.i)
- (tutorials/mode2_brittle_fracture/fracture.i)
- (test/tests/nucleation_models/klbf.i)
- (tutorials/mode2_cohesive_fracture/fracture.i)
- (tutorials/homogeneous_cube/CNH_J2_powerlawhardening/elastoplasticity_fracture.i)
- (test/tests/nucleation_models/klr.i)
- (tutorials/three_point_bending/fracture.i)
- (tutorials/homogeneous_cube/Hencky_J2_linearhardening/fracture.i)
- (test/tests/hardening_models/fracture.i)
- (tutorials/homogeneous_cube/Hencky_J2_arrheniuslawhardening/fracture.i)
- (tutorials/adaptivity/fracture.i)
- (tutorials/surfing_boundary_problem/fracture.i)
- (tutorials/mode1_cohesive_fracture/fracture.i)
- (tutorials/soil_desiccation/fracture.i)
- (tutorials/quenching_bibeam/fracture.i)
- (tutorials/mode1_ductile_fracture/fracture.i)
- (tutorials/homogeneous_cube/Hencky_J2_arrheniuslawhardening_creep/fracture.i)
- (tutorials/traction_separation/fracture.i)
- (tutorials/homogeneous_cube/Hencky_J2_powerlawhardening/elastoplasticity_fracture.i)
(tutorials/mode1_brittle_fracture/fracture.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 15
ymax = 0.5
[]
[noncrack]
type = BoundingBoxNodeSetGenerator
input = gen
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
[]
construct_side_list_from_node_list = true
[]
[Adaptivity]
marker = marker
initial_marker = marker
initial_steps = 2
stop_time = 0
max_h_level = 2
[Markers]
[marker]
type = BoxMarker
bottom_left = '0.4 0 0'
top_right = '1 0.05 0'
outside = DO_NOTHING
inside = REFINE
[]
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[diff]
type = ADPFFDiffusion
variable = d
fracture_toughness = Gc
regularization_length = l
normalization_constant = c0
[]
[source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[fracture_properties]
type = ADGenericConstantMaterial
prop_names = 'Gc l'
prop_values = '${Gc} ${l}'
[]
[degradation]
type = PowerDegradationFunction
property_name = g
expression = (1-d)^p*(1-eta)+eta
phase_field = d
parameter_names = 'p eta '
parameter_values = '2 1e-6'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd^2'
phase_field = d
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*psie_active'
coupled_variables = 'd psie_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -snes_type'
petsc_options_value = 'lu superlu_dist vinewtonrsls'
automatic_scaling = true
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/homogeneous_cube/Hencky_J2_JohnsonCook/fracture.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
xmax = ${a}
ymax = ${a}
zmax = ${a}
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[psip_active]
order = CONSTANT
family = MONOMIAL
[]
[coalescence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[pff_diff]
type = ADPFFDiffusion
variable = d
[]
[pff_source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[bulk_properties]
type = ADGenericConstantMaterial
prop_names = 'l Gc psic'
prop_values = '${l} ${Gc} ${psic}'
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*(Gc*coalescence)/c0/l+g*(psie_active)'
coupled_variables = 'd psie_active coalescence'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -snes_type'
petsc_options_value = 'lu vinewtonrsls'
nl_rel_tol = 1e-08
nl_abs_tol = 1e-10
nl_max_its = 50
automatic_scaling = true
abort_on_solve_fail = true
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/matrix_fiber/fracture.i)
[Mesh]
[fmg]
type = FileMeshGenerator
file = 'gold/matrix.msh'
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[BCs]
[no_damage_hole]
type = DirichletBC
variable = d
boundary = hole
value = 0
[]
[]
[Kernels]
[diff]
type = ADPFFDiffusion
variable = d
[]
[source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[fracture_properties]
type = ADGenericConstantMaterial
prop_names = 'Gc l psic'
prop_values = '${Gc} ${l} ${psic}'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = d
phase_field = d
[]
[degradation]
type = RationalDegradationFunction
property_name = g
phase_field = d
parameter_names = 'p a2 a3 eta '
parameter_values = '2 1 0 ${k}'
material_property_names = 'Gc psic xi c0 l '
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*psie_active'
coupled_variables = 'd psie_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -snes_type'
petsc_options_value = 'lu vinewtonrsls'
nl_abs_tol = 1e-08
nl_rel_tol = 1e-06
automatic_scaling = true
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/homogeneous_cube/Hencky_J2_arrheniuslawhardening_creep_thermal/fracture.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
xmax = ${a}
ymax = ${a}
zmax = ${a}
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[psip_active]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[pff_diff]
type = ADPFFDiffusion
variable = d
[]
[pff_source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[bulk_properties]
type = ADGenericConstantMaterial
prop_names = 'l Gc psic'
prop_values = '${l} ${Gc} ${psic}'
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*(psie_active+psip_active)'
coupled_variables = 'd psie_active psip_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -snes_type'
petsc_options_value = 'lu vinewtonrsls'
nl_rel_tol = 1e-08
nl_abs_tol = 1e-10
nl_max_its = 50
automatic_scaling = true
abort_on_solve_fail = true
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/mode2_brittle_fracture/fracture.i)
[Mesh]
[top_half]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 15
ymin = 0
ymax = 0.5
boundary_id_offset = 0
boundary_name_prefix = top_half
[]
[top_stitch]
type = BoundingBoxNodeSetGenerator
input = top_half
new_boundary = top_stitch
bottom_left = '0.5 0 0'
top_right = '1 0 0'
[]
[bottom_half]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 15
ymin = -0.5
ymax = 0
boundary_id_offset = 5
boundary_name_prefix = bottom_half
[]
[bottom_stitch]
type = BoundingBoxNodeSetGenerator
input = bottom_half
new_boundary = bottom_stitch
bottom_left = '0.5 0 0'
top_right = '1 0 0'
[]
[stitch]
type = StitchedMeshGenerator
inputs = 'top_stitch bottom_stitch'
stitch_boundaries_pairs = 'top_stitch bottom_stitch'
[]
construct_side_list_from_node_list = true
[]
[Adaptivity]
marker = marker
initial_marker = marker
initial_steps = 2
stop_time = 0
max_h_level = 2
[Markers]
[marker]
type = OrientedBoxMarker
center = '0.65 -0.25 0'
length = 0.8
width = 0.2
height = 1
length_direction = '1 -1.5 0'
width_direction = '1.5 1 0'
inside = REFINE
outside = DO_NOTHING
[]
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[diff]
type = ADPFFDiffusion
variable = d
fracture_toughness = Gc
regularization_length = l
normalization_constant = c0
[]
[source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[fracture_properties]
type = ADGenericConstantMaterial
prop_names = 'Gc l'
prop_values = '${Gc} ${l}'
[]
[degradation]
type = PowerDegradationFunction
property_name = g
expression = (1-d)^p*(1-eta)+eta
phase_field = d
parameter_names = 'p eta '
parameter_values = '2 1e-6'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd^2'
phase_field = d
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*psie_active'
coupled_variables = 'd psie_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -snes_type'
petsc_options_value = 'lu superlu_dist vinewtonrsls'
automatic_scaling = true
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
[]
[Outputs]
print_linear_residuals = false
[]
(test/tests/nucleation_models/klbf.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = ${nx}
ny = ${ny}
xmax = 30
ymin = -5
ymax = 5
[]
[]
[Adaptivity]
marker = marker
initial_marker = marker
initial_steps = ${refine}
stop_time = 0
max_h_level = ${refine}
[Markers]
[marker]
type = BoxMarker
bottom_left = '0 -0.7 0'
top_right = '30 0.7 0'
outside = DO_NOTHING
inside = REFINE
[]
[]
[]
[Variables]
[d]
[InitialCondition]
type = FunctionIC
function = 'if(y=0&x>=0&x<=5,1,0)'
[]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[disp_x]
[]
[disp_y]
[]
[strain_zz]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[ce]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[conditional]
type = ConditionalBoundsAux
variable = bounds_dummy
bounded_variable = d
fixed_bound_value = 0
threshold_value = 0.95
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[diff]
type = ADPFFDiffusion
variable = d
fracture_toughness = Gc
regularization_length = l
normalization_constant = c0
[]
[source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[nuc_force]
type = ADCoefMatSource
variable = d
prop_names = 'ce'
[]
[]
[AuxKernels]
[get_ce]
type = ADMaterialRealAux
variable = ce
property = ce
[]
[]
[Materials]
[fracture_properties]
type = ADGenericConstantMaterial
prop_names = 'E K G lambda Gc l sigma_ts sigma_cs delta'
prop_values = '${E} ${K} ${G} ${Lambda} ${Gc} ${l} ${sigma_ts} ${sigma_cs} ${delta}'
[]
[degradation]
type = PowerDegradationFunction
property_name = g
expression = (1-d)^p*(1-eta)+eta
phase_field = d
parameter_names = 'p eta '
parameter_values = '2 0'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'g*psie_active+(Gc/c0/l)*alpha'
coupled_variables = 'd psie_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[kumar_material]
type = KLBFNucleationMicroForce
phase_field = d
normalization_constant = c0
tensile_strength = sigma_ts
compressive_strength = sigma_cs
delta = delta
external_driving_force_name = ce
output_properties = 'ce'
[]
[strain]
type = ADComputePlaneSmallStrain
out_of_plane_strain = 'strain_zz'
displacements = 'disp_x disp_y'
[]
[elasticity]
type = SmallDeformationIsotropicElasticity
bulk_modulus = K
shear_modulus = G
phase_field = d
degradation_function = g
decomposition = NONE
[]
[stress]
type = ComputeSmallDeformationStress
elasticity_model = elasticity
output_properties = 'stress'
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -snes_type'
petsc_options_value = 'lu superlu_dist vinewtonrsls'
automatic_scaling = true
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/mode2_cohesive_fracture/fracture.i)
[Mesh]
[top_half]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 15
ymin = 0
ymax = 0.5
boundary_id_offset = 0
boundary_name_prefix = top_half
[]
[top_stitch]
type = BoundingBoxNodeSetGenerator
input = top_half
new_boundary = top_stitch
bottom_left = '0.5 0 0'
top_right = '1 0 0'
[]
[bottom_half]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 15
ymin = -0.5
ymax = 0
boundary_id_offset = 5
boundary_name_prefix = bottom_half
[]
[bottom_stitch]
type = BoundingBoxNodeSetGenerator
input = bottom_half
new_boundary = bottom_stitch
bottom_left = '0.5 0 0'
top_right = '1 0 0'
[]
[stitch]
type = StitchedMeshGenerator
inputs = 'top_stitch bottom_stitch'
stitch_boundaries_pairs = 'top_stitch bottom_stitch'
[]
construct_side_list_from_node_list = true
[]
[Adaptivity]
marker = marker
initial_marker = marker
initial_steps = 2
stop_time = 0
max_h_level = 2
[Markers]
[marker]
type = OrientedBoxMarker
center = '0.65 -0.25 0'
length = 0.8
width = 0.2
height = 1
length_direction = '1 -1.5 0'
width_direction = '1.5 1 0'
inside = REFINE
outside = DO_NOTHING
[]
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[diff]
type = ADPFFDiffusion
variable = d
fracture_toughness = Gc
regularization_length = l
normalization_constant = c0
[]
[source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[fracture_properties]
type = ADGenericConstantMaterial
prop_names = 'Gc psic l'
prop_values = '${Gc} ${psic} ${l}'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*psie_active'
coupled_variables = 'd psie_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -snes_type'
petsc_options_value = 'lu superlu_dist vinewtonrsls'
automatic_scaling = true
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/homogeneous_cube/CNH_J2_powerlawhardening/elastoplasticity_fracture.i)
a = 250
R = 4
psic = 15
Gc = 1.38e5
l = '${fparse R * a}'
E = 6.88e4
nu = 0.33
K = '${fparse E/3/(1-2*nu)}'
G = '${fparse E/2/(1+nu)}'
sigma_y = 320
n = 5
ep0 = 0.01
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
xmax = ${a}
ymax = ${a}
zmax = ${a}
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[stress]
order = CONSTANT
family = MONOMIAL
[]
[F]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[AuxKernels]
[stress]
type = ADRankTwoAux
variable = stress
rank_two_tensor = stress
index_i = 1
index_j = 1
[]
[F]
type = ADRankTwoAux
variable = F
rank_two_tensor = deformation_gradient
index_i = 1
index_j = 1
[]
[]
[Kernels]
[solid_x]
type = ADStressDivergenceTensors
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[solid_y]
type = ADStressDivergenceTensors
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[solid_z]
type = ADStressDivergenceTensors
variable = disp_z
component = 2
use_displaced_mesh = true
[]
[pff_diff]
type = ADPFFDiffusion
variable = d
[]
[pff_source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[bulk_properties]
type = ADGenericConstantMaterial
prop_names = 'K G l Gc psic'
prop_values = '${K} ${G} ${l} ${Gc} ${psic}'
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[defgrad]
type = ComputeDeformationGradient
[]
[cnh]
type = CNHIsotropicElasticity
bulk_modulus = K
shear_modulus = G
phase_field = d
degradation_function = g
[]
[power_law_hardening]
type = PowerLawHardening
yield_stress = ${sigma_y}
exponent = ${n}
reference_plastic_strain = ${ep0}
phase_field = d
degradation_function = g
[]
[J2]
type = LargeDeformationJ2Plasticity
hardening_model = power_law_hardening
[]
[stress]
type = ComputeLargeDeformationStress
elasticity_model = cnh
plasticity_model = J2
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+psie+psip'
coupled_variables = d
material_property_names = 'alpha(d) g(d) Gc c0 l psie(d) psip(d)'
derivative_order = 1
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = 't'
preset = false
[]
[]
[Postprocessors]
[F]
type = ElementAverageValue
variable = F
[]
[stress]
type = ElementAverageValue
variable = stress
[]
[d]
type = ElementAverageValue
variable = d
[]
[ep]
type = ADElementAverageMaterialProperty
mat_prop = effective_plastic_strain
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -snes_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu vinewtonrsls NONZERO 1e-10'
line_search = none
nl_rel_tol = 1e-08
nl_abs_tol = 1e-10
nl_max_its = 50
dt = '${fparse 0.0001 * a}'
end_time = '${fparse 0.1 * a}'
automatic_scaling = true
abort_on_solve_fail = true
[]
[Outputs]
file_base = stress_deformation
print_linear_residuals = false
csv = true
exodus = true
[]
(test/tests/nucleation_models/klr.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = ${nx}
ny = ${ny}
xmax = 30
ymin = -5
ymax = 5
[]
[]
[Adaptivity]
marker = marker
initial_marker = marker
initial_steps = ${refine}
stop_time = 0
max_h_level = ${refine}
[Markers]
[marker]
type = BoxMarker
bottom_left = '0 -0.7 0'
top_right = '30 0.7 0'
outside = DO_NOTHING
inside = REFINE
[]
[]
[]
[Variables]
[d]
[InitialCondition]
type = FunctionIC
function = 'if(y=0&x>=0&x<=5,1,0)'
[]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[disp_x]
[]
[disp_y]
[]
[strain_zz]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[ce]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[conditional]
type = ConditionalBoundsAux
variable = bounds_dummy
bounded_variable = d
fixed_bound_value = 0
threshold_value = 0.95
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[AuxKernels]
[get_ce]
type = ADMaterialRealAux
variable = ce
property = ce
[]
[]
[Kernels]
[diff]
type = ADPFFDiffusion
variable = d
fracture_toughness = Gc
regularization_length = l
normalization_constant = c0
[]
[source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[nuc_force]
type = ADCoefMatSource
variable = d
prop_names = 'ce'
[]
[]
[Materials]
[fracture_properties]
type = ADGenericConstantMaterial
prop_names = 'E K G lambda Gc l sigma_ts sigma_cs delta'
prop_values = '${E} ${K} ${G} ${Lambda} ${Gc} ${l} ${sigma_ts} ${sigma_cs} ${delta}'
[]
[degradation]
type = PowerDegradationFunction
property_name = g
expression = (1-d)^p*(1-eta)+eta
phase_field = d
parameter_names = 'p eta '
parameter_values = '2 0'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'g*psie_active+(Gc/c0/l)*alpha'
coupled_variables = 'd psie_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[kumar_material]
type = KLRNucleationMicroForce
phase_field = d
normalization_constant = c0
tensile_strength = sigma_ts
compressive_strength = sigma_cs
delta = delta
external_driving_force_name = ce
output_properties = 'ce'
[]
[strain]
type = ADComputePlaneSmallStrain
out_of_plane_strain = 'strain_zz'
displacements = 'disp_x disp_y'
[]
[elasticity]
type = SmallDeformationIsotropicElasticity
bulk_modulus = K
shear_modulus = G
phase_field = d
degradation_function = g
decomposition = NONE
[]
[stress]
type = ComputeSmallDeformationStress
elasticity_model = elasticity
output_properties = 'stress'
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -snes_type'
petsc_options_value = 'lu superlu_dist vinewtonrsls'
automatic_scaling = true
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/three_point_bending/fracture.i)
[Mesh]
[fmg]
type = FileMeshGenerator
file = ${mesh_file}
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[psip_active]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = 'bounds_dummy'
bounded_variable = 'd'
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = 'bounds_dummy'
bounded_variable = 'd'
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[diff]
type = ADPFFDiffusion
variable = d
fracture_toughness = Gc
regularization_length = l
normalization_constant = c0
[]
[source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[fracture_properties]
type = ADGenericConstantMaterial
prop_names = 'l Gc psic'
prop_values = '${l} ${Gc} ${psic}'
[]
[degradation]
type = ADDerivativeParsedMaterial
property_name = g
coupled_variables = d
expression = '(1-d)^2/(1+(0.5*Gc/c0/l/psic-1)*d)^2*(1-eta)+eta'
material_property_names = 'Gc c0 l psic'
constant_names = 'eta '
constant_expressions = '5e-3'
derivative_order = 1
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*(psie_active+psip_active)'
coupled_variables = 'd psie_active psip_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -snes_type'
petsc_options_value = 'lu superlu_dist vinewtonrsls'
nl_rel_tol = 1e-08
nl_abs_tol = 1e-10
nl_max_its = 50
automatic_scaling = true
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/homogeneous_cube/Hencky_J2_linearhardening/fracture.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
xmax = ${a}
ymax = ${a}
zmax = ${a}
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[psip_active]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[pff_diff]
type = ADPFFDiffusion
variable = d
[]
[pff_source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[bulk_properties]
type = ADGenericConstantMaterial
prop_names = 'l Gc psic'
prop_values = '${l} ${Gc} ${psic}'
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*(psie_active+psip_active)'
coupled_variables = 'd psie_active psip_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -snes_type'
petsc_options_value = 'lu vinewtonrsls'
nl_rel_tol = 1e-08
nl_abs_tol = 1e-10
nl_max_its = 50
automatic_scaling = true
abort_on_solve_fail = true
[]
[Outputs]
print_linear_residuals = false
[]
(test/tests/hardening_models/fracture.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
xmax = ${a}
ymax = ${a}
zmax = ${a}
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[psip_active]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[pff_diff]
type = ADPFFDiffusion
variable = d
[]
[pff_source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[bulk_properties]
type = ADGenericConstantMaterial
prop_names = 'l Gc psic'
prop_values = '${l} ${Gc} ${psic}'
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*(psie_active+psip_active)'
coupled_variables = 'd psie_active psip_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -snes_type'
petsc_options_value = 'lu vinewtonrsls'
nl_rel_tol = 1e-08
nl_abs_tol = 1e-10
nl_max_its = 50
automatic_scaling = true
abort_on_solve_fail = true
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/homogeneous_cube/Hencky_J2_arrheniuslawhardening/fracture.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
xmax = ${a}
ymax = ${a}
zmax = ${a}
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[psip_active]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[pff_diff]
type = ADPFFDiffusion
variable = d
[]
[pff_source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[bulk_properties]
type = ADGenericConstantMaterial
prop_names = 'l Gc psic'
prop_values = '${l} ${Gc} ${psic}'
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*(psie_active+psip_active)'
coupled_variables = 'd psie_active psip_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -snes_type'
petsc_options_value = 'lu vinewtonrsls'
nl_rel_tol = 1e-08
nl_abs_tol = 1e-10
nl_max_its = 50
automatic_scaling = true
abort_on_solve_fail = true
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/adaptivity/fracture.i)
[Mesh]
[top_half]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 15
ymin = 0
ymax = 0.5
boundary_id_offset = 0
boundary_name_prefix = top_half
[]
[top_stitch]
type = BoundingBoxNodeSetGenerator
input = top_half
new_boundary = top_stitch
bottom_left = '0.5 0 0'
top_right = '1 0 0'
[]
[bottom_half]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 15
ymin = -0.5
ymax = 0
boundary_id_offset = 5
boundary_name_prefix = bottom_half
[]
[bottom_stitch]
type = BoundingBoxNodeSetGenerator
input = bottom_half
new_boundary = bottom_stitch
bottom_left = '0.5 0 0'
top_right = '1 0 0'
[]
[stitch]
type = StitchedMeshGenerator
inputs = 'top_stitch bottom_stitch'
stitch_boundaries_pairs = 'top_stitch bottom_stitch'
[]
construct_side_list_from_node_list = true
[]
[Adaptivity]
marker = combo
max_h_level = 3
[Markers]
[combo]
type = ComboMarker
markers = 'damage_marker strain_energy_marker'
[]
[damage_marker]
type = ValueThresholdMarker
variable = d
refine = 0.5
[]
[strain_energy_marker]
type = ValueThresholdMarker
variable = psie
refine = '${fparse 0.8*psic}'
coarsen = '${fparse 0.8*psic}'
[]
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[psie]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[diff]
type = ADPFFDiffusion
variable = d
fracture_toughness = Gc
regularization_length = l
normalization_constant = c0
[]
[source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[fracture_properties]
type = ADGenericConstantMaterial
prop_names = 'Gc psic l'
prop_values = '${Gc} ${psic} ${l}'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*psie_active'
coupled_variables = 'd psie_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -snes_type'
petsc_options_value = 'lu superlu_dist vinewtonrsls'
automatic_scaling = true
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/surfing_boundary_problem/fracture.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = ${nx}
ny = ${ny}
xmax = 30
ymin = -5
ymax = 5
[]
[]
[Adaptivity]
marker = marker
initial_marker = marker
initial_steps = ${refine}
stop_time = 0
max_h_level = ${refine}
[Markers]
[marker]
type = BoxMarker
bottom_left = '0 -0.7 0'
top_right = '30 0.7 0'
outside = DO_NOTHING
inside = REFINE
[]
[]
[]
[Variables]
[d]
[InitialCondition]
type = FunctionIC
function = 'if(y=0&x>=0&x<=5,1,0)'
[]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[disp_x]
[]
[disp_y]
[]
[strain_zz]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[conditional]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[diff]
type = ADPFFDiffusion
variable = d
fracture_toughness = Gc_delta
regularization_length = l
normalization_constant = c0
[]
[source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[nuc_force]
type = ADCoefMatSource
variable = d
prop_names = 'ce'
coefficient = 1.0
[]
[]
[Materials]
[fracture_properties]
type = ADGenericConstantMaterial
prop_names = 'E K G lambda Gc l sigma_ts sigma_hs'
prop_values = '${E} ${K} ${G} ${Lambda} ${Gc} ${l} ${sigma_ts} ${sigma_hs}'
[]
[degradation]
type = PowerDegradationFunction
property_name = g
expression = (1-d)^p*(1-eta)+eta
phase_field = d
parameter_names = 'p eta '
parameter_values = '2 0'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'g*psie_active+(Gc*delta/c0/l)*alpha'
coupled_variables = 'd psie_active'
material_property_names = 'delta alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[nucleation_micro_force]
type = LDLNucleationMicroForce
phase_field = d
degradation_function = g
regularization_length = l
normalization_constant = c0
fracture_toughness = Gc
tensile_strength = sigma_ts
hydrostatic_strength = sigma_hs
delta = delta
h_correction = true
external_driving_force_name = ce
[]
[strain]
type = ADComputePlaneSmallStrain
out_of_plane_strain = 'strain_zz'
displacements = 'disp_x disp_y'
[]
[elasticity]
type = SmallDeformationIsotropicElasticity
bulk_modulus = K
shear_modulus = G
phase_field = d
degradation_function = g
decomposition = NONE
[]
[stress]
type = ComputeSmallDeformationStress
elasticity_model = elasticity
output_properties = 'stress'
[]
[Gc_delta]
type = ADParsedMaterial
property_name = Gc_delta
expression = 'Gc*delta'
material_property_names = 'Gc delta'
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -snes_type'
petsc_options_value = 'lu superlu_dist vinewtonrsls'
automatic_scaling = true
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/mode1_cohesive_fracture/fracture.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 15
ymax = 0.5
[]
[noncrack]
type = BoundingBoxNodeSetGenerator
input = gen
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
[]
construct_side_list_from_node_list = true
[]
[Adaptivity]
marker = marker
initial_marker = marker
initial_steps = 2
stop_time = 0
max_h_level = 2
[Markers]
[marker]
type = BoxMarker
bottom_left = '0.4 0 0'
top_right = '1 0.05 0'
outside = DO_NOTHING
inside = REFINE
[]
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[diff]
type = ADPFFDiffusion
variable = d
fracture_toughness = Gc
regularization_length = l
normalization_constant = c0
[]
[source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[fracture_properties]
type = ADGenericConstantMaterial
prop_names = 'Gc psic l'
prop_values = '${Gc} ${psic} ${l}'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*psie_active'
coupled_variables = 'd psie_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -snes_type'
petsc_options_value = 'lu superlu_dist vinewtonrsls'
automatic_scaling = true
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/soil_desiccation/fracture.i)
[Mesh]
[fmg]
type = FileMeshGenerator
file = 'gold/fields_refined.e'
use_for_exodus_restart = true
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[psii_active]
order = CONSTANT
family = MONOMIAL
[]
[bounds_dummy]
[]
[Gc]
initial_from_file_var = 'Gc'
[]
[psic]
initial_from_file_var = 'psic'
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[pff_diff]
type = ADPFFDiffusion
variable = d
[]
[pff_react]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[fracture_toughness]
type = ADParsedMaterial
property_name = Gc
coupled_variables = Gc
expression = 'Gc'
[]
[critial_fracture_energy]
type = ADParsedMaterial
property_name = psic
coupled_variables = psic
expression = 'psic'
[]
[length_scale]
type = ADGenericConstantMaterial
prop_names = 'l'
prop_values = '${l}'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
parameter_names = 'p a2 a3 eta '
parameter_values = '2 1 0 1e-6'
material_property_names = 'Gc psic xi c0 l '
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*(psie_active+psii_active)'
coupled_variables = 'd psie_active psii_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[BCs]
[Periodic]
[all]
variable = d
auto_direction = 'x y'
[]
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -snes_type'
petsc_options_value = 'lu superlu_dist vinewtonrsls'
nl_abs_tol = 1e-08
nl_rel_tol = 1e-06
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/quenching_bibeam/fracture.i)
[Problem]
kernel_coverage_check = false
material_coverage_check = false
[]
[Mesh]
[fmg]
type = FileMeshGenerator
file = 'gold/plate.msh'
[]
[]
[Adaptivity]
marker = marker
initial_marker = marker
initial_steps = 2
stop_time = 0
max_h_level = 2
[Markers]
[marker]
type = BoxMarker
bottom_left = '27 7 0'
top_right = '60 28 0'
inside = REFINE
outside = DO_NOTHING
[]
[]
[]
[Variables]
[d]
block = glass
[]
[]
[AuxVariables]
[bounds_dummy]
block = glass
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
block = glass
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
block = glass
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
block = glass
[]
[]
[Kernels]
[diff]
type = ADPFFDiffusion
variable = d
fracture_toughness = Gc
regularization_length = l
normalization_constant = c0
block = glass
[]
[source]
type = ADPFFSource
variable = d
free_energy = psi
block = glass
[]
[]
[Materials]
[fracture_properties]
type = ADGenericConstantMaterial
prop_names = 'Gc psic l'
prop_values = '${Gc} ${psic} ${l}'
block = glass
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
block = glass
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
block = glass
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*psie_active'
coupled_variables = 'd psie_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
block = glass
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -snes_type'
petsc_options_value = 'lu superlu_dist vinewtonrsls'
automatic_scaling = true
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/mode1_ductile_fracture/fracture.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 15
ymax = 0.5
[]
[noncrack]
type = BoundingBoxNodeSetGenerator
input = gen
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
[]
construct_side_list_from_node_list = true
[]
[Adaptivity]
marker = marker
initial_marker = marker
initial_steps = 2
stop_time = 0
max_h_level = 2
[Markers]
[marker]
type = OrientedBoxMarker
center = '0.75 0.25 0'
length = 0.8
width = 0.1
height = 1
length_direction = '1 1 0'
width_direction = '-1 1 0'
inside = REFINE
outside = DO_NOTHING
[]
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[psip_active]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[diff]
type = ADPFFDiffusion
variable = d
fracture_toughness = Gc
regularization_length = l
normalization_constant = c0
[]
[source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[fracture_properties]
type = ADGenericConstantMaterial
prop_names = 'Gc psic l'
prop_values = '${Gc} ${psic} ${l}'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*(psie_active+psip_active)'
coupled_variables = 'd psie_active psip_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -snes_type'
petsc_options_value = 'lu superlu_dist vinewtonrsls'
automatic_scaling = true
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/homogeneous_cube/Hencky_J2_arrheniuslawhardening_creep/fracture.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
xmax = ${a}
ymax = ${a}
zmax = ${a}
[]
[]
[Variables]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[psip_active]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[pff_diff]
type = ADPFFDiffusion
variable = d
[]
[pff_source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[bulk_properties]
type = ADGenericConstantMaterial
prop_names = 'l Gc psic'
prop_values = '${l} ${Gc} ${psic}'
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*(psie_active+psip_active)'
coupled_variables = 'd psie_active psip_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -snes_type'
petsc_options_value = 'lu vinewtonrsls'
nl_rel_tol = 1e-08
nl_abs_tol = 1e-10
nl_max_its = 50
automatic_scaling = true
abort_on_solve_fail = true
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/traction_separation/fracture.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmax = 200
ymax = 1
nx = ${nx}
ny = 1
[]
[]
[Variables]
[d]
[InitialCondition]
type = ConstantIC
boundary = left
value = 1e-3
[]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[psie_active]
order = CONSTANT
family = MONOMIAL
[]
[disp_x]
[]
[disp_y]
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[Kernels]
[diff]
type = ADPFFDiffusion
variable = d
fracture_toughness = Gc
regularization_length = l
normalization_constant = c0
[]
[source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[pressure]
type = ADPFFPressure
variable = d
displacements = 'disp_x disp_y'
pressure = p
indicator_function = I
[]
[]
[Materials]
[fracture_properties]
type = ADGenericConstantMaterial
prop_names = 'Gc psic l p'
prop_values = '${Gc} ${psic} ${l} ${p}'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = '2*d-d^2'
phase_field = d
[]
[indicator]
type = ADDerivativeParsedMaterial
property_name = I
coupled_variables = 'd'
expression = 'd^2'
derivative_order = 1
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+g*psie_active'
coupled_variables = 'd psie_active'
material_property_names = 'alpha(d) g(d) Gc c0 l'
derivative_order = 1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -snes_type'
petsc_options_value = 'lu superlu_dist vinewtonrsls'
automatic_scaling = true
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
[]
[Outputs]
print_linear_residuals = false
[]
(tutorials/homogeneous_cube/Hencky_J2_powerlawhardening/elastoplasticity_fracture.i)
a = 250
R = 4
psic = 15
Gc = 1.38e5
l = '${fparse R * a}'
E = 6.88e4
nu = 0.33
K = '${fparse E/3/(1-2*nu)}'
G = '${fparse E/2/(1+nu)}'
sigma_y = 320
n = 5
ep0 = 0.01
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
xmax = ${a}
ymax = ${a}
zmax = ${a}
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[d]
[]
[]
[AuxVariables]
[bounds_dummy]
[]
[stress]
order = CONSTANT
family = MONOMIAL
[]
[F]
order = CONSTANT
family = MONOMIAL
[]
[]
[Bounds]
[irreversibility]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = d
bound_type = lower
[]
[upper]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = d
bound_type = upper
bound_value = 1
[]
[]
[AuxKernels]
[stress]
type = ADRankTwoAux
variable = stress
rank_two_tensor = stress
index_i = 1
index_j = 1
[]
[F]
type = ADRankTwoAux
variable = F
rank_two_tensor = deformation_gradient
index_i = 1
index_j = 1
[]
[]
[Kernels]
[solid_x]
type = ADStressDivergenceTensors
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[solid_y]
type = ADStressDivergenceTensors
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[solid_z]
type = ADStressDivergenceTensors
variable = disp_z
component = 2
use_displaced_mesh = true
[]
[pff_diff]
type = ADPFFDiffusion
variable = d
[]
[pff_source]
type = ADPFFSource
variable = d
free_energy = psi
[]
[]
[Materials]
[bulk_properties]
type = ADGenericConstantMaterial
prop_names = 'K G l Gc psic'
prop_values = '${K} ${G} ${l} ${Gc} ${psic}'
[]
[degradation]
type = RationalDegradationFunction
property_name = g
expression = (1-d)^p/((1-d)^p+(Gc/psic*xi/c0/l)*d*(1+a2*d+a2*a3*d^2))*(1-eta)+eta
phase_field = d
material_property_names = 'Gc psic xi c0 l '
parameter_names = 'p a2 a3 eta '
parameter_values = '2 -0.5 0 1e-6'
[]
[crack_geometric]
type = CrackGeometricFunction
property_name = alpha
expression = 'd'
phase_field = d
[]
[defgrad]
type = ComputeDeformationGradient
[]
[hencky]
type = HenckyIsotropicElasticity
bulk_modulus = K
shear_modulus = G
phase_field = d
degradation_function = g
[]
[power_law_hardening]
type = PowerLawHardening
yield_stress = ${sigma_y}
exponent = ${n}
reference_plastic_strain = ${ep0}
phase_field = d
degradation_function = g
[]
[J2]
type = LargeDeformationJ2Plasticity
hardening_model = power_law_hardening
[]
[stress]
type = ComputeLargeDeformationStress
elasticity_model = hencky
plasticity_model = J2
[]
[psi]
type = ADDerivativeParsedMaterial
property_name = psi
expression = 'alpha*Gc/c0/l+psie+psip'
coupled_variables = d
material_property_names = 'alpha(d) g(d) Gc c0 l psie(d) psip(d)'
derivative_order = 1
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = 't'
preset = false
[]
[]
[Postprocessors]
[F]
type = ElementAverageValue
variable = F
[]
[stress]
type = ElementAverageValue
variable = stress
[]
[d]
type = ElementAverageValue
variable = d
[]
[ep]
type = ADElementAverageMaterialProperty
mat_prop = effective_plastic_strain
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -snes_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu vinewtonrsls NONZERO 1e-10'
line_search = none
nl_rel_tol = 1e-08
nl_abs_tol = 1e-10
nl_max_its = 50
dt = '${fparse 0.0001 * a}'
end_time = '${fparse 0.1 * a}'
automatic_scaling = true
abort_on_solve_fail = true
[]
[Outputs]
file_base = stress_deformation
print_linear_residuals = false
csv = true
exodus = true
[]