- variableThe variable this initial condition is supposed to provide values for.
C++ Type:VariableName
Description:The variable this initial condition is supposed to provide values for.
CrossIC

The CrossIC has not been documented. The content listed below should be used as a starting point for documenting the class, which includes the typical automatic documentation associated with a MooseObject; however, what is contained is ultimately determined by what is necessary to make the documentation clear for users.
# CrossIC
!syntax description /ICs/CrossIC
## Overview
!! Replace these lines with information regarding the CrossIC object.
## Example Input File Syntax
!! Describe and include an example of how to use the CrossIC object.
!syntax parameters /ICs/CrossIC
!syntax inputs /ICs/CrossIC
!syntax children /ICs/CrossIC
Cross-shaped initial condition
Input Parameters
- amplitude1The amplitude
Default:1
C++ Type:double
Options:
Description:The amplitude
- average0The average value
Default:0
C++ Type:double
Options:
Description:The average value
- blockThe list of block ids (SubdomainID) that this object will be applied
C++ Type:std::vector
Options:
Description:The list of block ids (SubdomainID) that this object will be applied
- boundaryThe list of boundary IDs from the mesh where this boundary condition applies
C++ Type:std::vector
Options:
Description:The list of boundary IDs from the mesh where this boundary condition applies
- buffer0.03125A small area between the max value and the interface
Default:0.03125
C++ Type:double
Options:
Description:A small area between the max value and the interface
- interface0.03125The interface width
Default:0.03125
C++ Type:double
Options:
Description:The interface width
- length0.75The length
Default:0.75
C++ Type:double
Options:
Description:The length
- width0.125The width
Default:0.125
C++ Type:double
Options:
Description:The width
- x10The x coordinate of the lower left-hand corner of the box
Default:0
C++ Type:double
Options:
Description:The x coordinate of the lower left-hand corner of the box
- x21The x coordinate of the upper right-hand corner of the box
Default:1
C++ Type:double
Options:
Description:The x coordinate of the upper right-hand corner of the box
- y10The y coordinate of the lower left-hand corner of the box
Default:0
C++ Type:double
Options:
Description:The y coordinate of the lower left-hand corner of the box
- y21The y coordinate of the upper right-hand corner of the box
Default:1
C++ Type:double
Options:
Description:The y coordinate of the upper right-hand corner of the box
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector
Options:
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Options:
Description:Set the enabled status of the MooseObject.
- ignore_uo_dependencyFalseWhen set to true, a UserObject retrieved by this IC will not be executed before the this IC
Default:False
C++ Type:bool
Options:
Description:When set to true, a UserObject retrieved by this IC will not be executed before the this IC
Advanced Parameters
Input Files
- modules/phase_field/test/tests/actions/conserved_split_1var.i
- modules/phase_field/test/tests/phase_field_kernels/CahnHilliard.i
- modules/phase_field/test/tests/anisotropic_mobility/diffusion.i
- modules/phase_field/test/tests/mobility_derivative/coupledmatdiffusion.i
- modules/phase_field/test/tests/phase_field_kernels/SimpleCHInterface.i
- modules/phase_field/test/tests/actions/conserved_split_1var_variable_mob.i
- modules/phase_field/test/tests/SplitCH/forward_split_math_test.i
- modules/phase_field/test/tests/mobility_derivative/mobility_derivative_split_coupled_test.i
- modules/phase_field/test/tests/free_energy_material/MathEBFreeEnergy_split.i
- modules/phase_field/test/tests/anisotropic_mobility/split.i
- modules/phase_field/test/tests/actions/conserved_split_1var_high_order.i
- modules/phase_field/test/tests/free_energy_material/MathFreeEnergy_split.i
- modules/phase_field/test/tests/mobility_derivative/matdiffusion.i
- modules/phase_field/test/tests/anisotropic_mobility/nonsplit.i
- modules/phase_field/test/tests/actions/conserved_direct_1var_variable_mob.i
- modules/phase_field/test/tests/anisotropic_mobility/ad_diffusion.i
- modules/phase_field/test/tests/mobility_derivative/mobility_derivative_test.i
- modules/phase_field/test/tests/initial_conditions/CrossIC.i
- modules/phase_field/test/tests/actions/conserved_forward_split_1var.i
- modules/phase_field/test/tests/SplitCH/split_math_test.i
- modules/phase_field/test/tests/actions/conserved_direct_1var.i
modules/phase_field/test/tests/actions/conserved_split_1var.i
#
# Test the conserved action with split solve and 1 variable
#
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 50
xmax = 50
ymax = 50
elem_type = QUAD
[]
[Modules]
[./PhaseField]
[./Conserved]
[./cv]
solve_type = REVERSE_SPLIT
free_energy = F
kappa = 2.0
mobility = 1.0
[../]
[../]
[../]
[]
[ICs]
[./InitialCondition]
type = CrossIC
x1 = 5.0
y1 = 5.0
x2 = 45.0
y2 = 45.0
variable = cv
[../]
[]
[Materials]
[./free_energy]
type = DerivativeParsedMaterial
f_name = F
args = 'cv'
function = '(1-cv)^2 * (1+cv)^2'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
l_max_its = 30
l_tol = 1.0e-5
nl_max_its = 10
nl_rel_tol = 1.0e-12
start_time = 0.0
num_steps = 5
dt = 0.7
[]
[Outputs]
exodus = true
[]
modules/phase_field/test/tests/phase_field_kernels/CahnHilliard.i
#
# Test the non-split parsed function free enery Cahn-Hilliard Bulk kernel
# The free energy used here has the same functional form as the CHPoly kernel
# If everything works, the output of this test should replicate the output
# of marmot/tests/chpoly_test/CHPoly_test.i (exodiff match)
#
[Mesh]
type = GeneratedMesh
dim = 2
nx = 16
ny = 16
xmax = 50
ymax = 50
elem_type = QUAD4
[]
[Variables]
[./cv]
order = THIRD
family = HERMITE
[../]
[]
[ICs]
[./InitialCondition]
type = CrossIC
x1 = 5.0
y1 = 5.0
x2 = 45.0
y2 = 45.0
variable = cv
[../]
[]
[Kernels]
[./ie_c]
type = TimeDerivative
variable = cv
[../]
[./CHSolid]
type = CahnHilliard
variable = cv
f_name = F
mob_name = M
[../]
[./CHInterface]
type = CHInterface
variable = cv
mob_name = M
kappa_name = kappa_c
[../]
[]
[Materials]
[./consts]
type = GenericConstantMaterial
prop_names = 'M kappa_c'
prop_values = '1 0.1'
[../]
[./free_energy]
type = DerivativeParsedMaterial
f_name = F
args = 'cv'
function = '(1-cv)^2 * (1+cv)^2'
[../]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 31'
l_max_its = 15
l_tol = 1.0e-4
nl_max_its = 10
nl_rel_tol = 1.0e-11
start_time = 0.0
num_steps = 2
dt = 0.7
[]
[Outputs]
[./out]
type = Exodus
refinements = 1
[../]
[]
modules/phase_field/test/tests/anisotropic_mobility/diffusion.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 15
ny = 15
xmax = 15.0
ymax = 15.0
[]
[Variables]
[./c]
[./InitialCondition]
type = CrossIC
x1 = 0.0
x2 = 30.0
y1 = 0.0
y2 = 30.0
[../]
[../]
[]
[Kernels]
[./cres]
type = MatAnisoDiffusion
diffusivity = D
variable = c
[../]
[./time]
type = TimeDerivative
variable = c
[../]
[]
[Materials]
[./D]
type = ConstantAnisotropicMobility
tensor = '0.1 0 0
0 1 0
0 0 0'
M_name = D
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = 'BDF2'
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 lu 1'
l_max_its = 30
l_tol = 1.0e-4
nl_max_its = 50
nl_rel_tol = 1.0e-10
dt = 10.0
num_steps = 2
[]
[Outputs]
exodus = true
print_linear_residuals = true
perf_graph = true
[]
modules/phase_field/test/tests/mobility_derivative/coupledmatdiffusion.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 15
ny = 15
xmax = 15.0
ymax = 15.0
elem_type = QUAD4
[]
[Variables]
[./c]
[./InitialCondition]
type = CrossIC
x1 = 0.0
x2 = 30.0
y1 = 0.0
y2 = 30.0
[../]
[../]
[./d]
[./InitialCondition]
type = SmoothCircleIC
x1 = 15
y1 = 15
radius = 8
int_width = 3
invalue = 2
outvalue = 0
[../]
[../]
[./u]
[../]
[./w]
[../]
[]
[Kernels]
[./ctime]
type = TimeDerivative
variable = c
[../]
[./umat]
type = MatReaction
variable = c
v = u
mob_name = 1
[../]
[./urxn]
type = Reaction
variable = u
[../]
[./cres]
type = MatDiffusion
variable = u
diffusivity = Dc
args = d
v = c
[../]
[./dtime]
type = TimeDerivative
variable = d
[../]
[./wmat]
type = MatReaction
variable = d
v = w
mob_name = 1
[../]
[./wrxn]
type = Reaction
variable = w
[../]
[./dres]
type = MatDiffusion
variable = w
diffusivity = Dd
args = c
v = d
[../]
[]
[Materials]
[./Dc]
type = DerivativeParsedMaterial
f_name = Dc
function = '0.01+c^2+d'
args = 'c d'
derivative_order = 1
[../]
[./Dd]
type = DerivativeParsedMaterial
f_name = Dd
function = 'd^2+c+1.5'
args = 'c d'
derivative_order = 1
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = 'BDF2'
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 lu 1'
dt = 1
num_steps = 2
[]
[Outputs]
exodus = true
[]
modules/phase_field/test/tests/phase_field_kernels/SimpleCHInterface.i
#
# Test the non-split parsed function free enery Cahn-Hilliard kernel
# The free energy used here has the same functional form as the CHPoly kernel
# If everything works, the output of this test should replicate the output
# of marmot/tests/chpoly_test/CHPoly_test.i (exodiff match)
#
[Mesh]
type = GeneratedMesh
dim = 2
nx = 16
ny = 16
xmax = 50
ymax = 50
elem_type = QUAD4
[]
[Variables]
[./cv]
order = THIRD
family = HERMITE
[../]
[]
[ICs]
[./InitialCondition]
type = CrossIC
x1 = 5.0
y1 = 5.0
x2 = 45.0
y2 = 45.0
variable = cv
[../]
[]
[Kernels]
[./ie_c]
type = TimeDerivative
variable = cv
[../]
[./CHSolid]
type = CahnHilliard
variable = cv
f_name = F
mob_name = M
[../]
[./CHInterface]
type = SimpleCHInterface
variable = cv
mob_name = M
kappa_name = kappa_c
[../]
[]
[Materials]
[./consts]
type = GenericConstantMaterial
prop_names = 'M kappa_c'
prop_values = '1 0.1'
[../]
[./free_energy]
type = DerivativeParsedMaterial
f_name = F
args = 'cv'
function = '(1-cv)^2 * (1+cv)^2'
[../]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 31'
l_max_its = 15
l_tol = 1.0e-4
nl_max_its = 10
nl_rel_tol = 1.0e-11
start_time = 0.0
num_steps = 2
dt = 0.7
[]
[Outputs]
[./out]
type = Exodus
refinements = 1
[../]
[]
modules/phase_field/test/tests/actions/conserved_split_1var_variable_mob.i
#
# Test the conserved action with split solve and 1 variable
#
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 50
xmax = 50
ymax = 50
elem_type = QUAD
[]
[Modules]
[./PhaseField]
[./Conserved]
[./cv]
solve_type = REVERSE_SPLIT
free_energy = F
kappa = 2.0
mobility = M
args = 'cv'
[../]
[../]
[../]
[]
[ICs]
[./InitialCondition]
type = CrossIC
x1 = 5.0
y1 = 5.0
x2 = 45.0
y2 = 45.0
variable = cv
[../]
[]
[Materials]
[./variable_mob]
type = DerivativeParsedMaterial
f_name = M
args = 'cv'
function = '0.1 + (1 + cv)/2'
outputs = exodus
[../]
[./free_energy]
type = DerivativeParsedMaterial
f_name = F
args = 'cv'
function = '(1-cv)^2 * (1+cv)^2'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
l_max_its = 30
l_tol = 1.0e-4
nl_max_its = 10
nl_rel_tol = 1.0e-10
start_time = 0.0
num_steps = 5
dt = 0.7
[]
[Outputs]
exodus = true
[]
modules/phase_field/test/tests/SplitCH/forward_split_math_test.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 30
ny = 30
xmax = 25.0
ymax = 25.0
elem_type = QUAD
[]
[Variables]
[./c]
[../]
[./w]
[../]
[]
[ICs]
[./c_IC]
type = CrossIC
variable = c
x1 = 0
x2 = 25
y1 = 0
y2 = 25
[../]
[]
[Kernels]
[./cdot]
type = TimeDerivative
variable = c
[../]
[./grad_w]
type = MatDiffusion
variable = c
v = w
diffusivity = 1.0
[../]
[./grad_c]
type = MatDiffusion
variable = w
v = c
diffusivity = 2.0
[../]
[./w2]
type = CoupledMaterialDerivative
variable = w
v = c
f_name = F
[../]
[./w3]
type = CoefReaction
variable = w
coefficient = -1.0
[../]
[]
[AuxVariables]
[./local_energy]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./local_energy]
type = TotalFreeEnergy
variable = local_energy
f_name = F
kappa_names = kappa_c
interfacial_vars = c
[../]
[]
[Materials]
[./kappa_c]
type = GenericConstantMaterial
prop_names = kappa_c
prop_values = 2.0
[../]
[./free_energy]
type = DerivativeParsedMaterial
args = c
function = '(1 - c)^2 * (1 + c)^2'
f_name = F
[../]
[]
[Postprocessors]
[./total_free_energy]
type = ElementIntegralVariablePostprocessor
variable = local_energy
[../]
[./total_c]
type = ElementIntegralVariablePostprocessor
variable = c
execute_on = 'initial TIMESTEP_END'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
l_max_its = 30
l_tol = 1.0e-4
nl_max_its = 10
nl_rel_tol = 1.0e-10
start_time = 0.0
num_steps = 5
dt = 0.7
[]
[Outputs]
exodus = true
[]
modules/phase_field/test/tests/mobility_derivative/mobility_derivative_split_coupled_test.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 30
ny = 30
xmax = 30.0
ymax = 30.0
elem_type = QUAD4
[]
[Variables]
[./c]
[../]
[./w]
[../]
[./d]
[../]
[]
[ICs]
[./c_IC]
type = CrossIC
x1 = 0.0
x2 = 30.0
y1 = 0.0
y2 = 30.0
variable = c
[../]
[./d_IC]
type = BoundingBoxIC
x1 = 0.0
x2 = 15.0
y1 = 0.0
y2 = 30.0
inside = 1.0
outside = 0.0
variable = d
[../]
[]
[Kernels]
[./cres]
type = SplitCHParsed
variable = c
kappa_name = kappa_c
w = w
f_name = F
[../]
[./wres]
type = SplitCHWRes
variable = w
mob_name = M
args = 'c d'
[../]
[./time]
type = CoupledTimeDerivative
variable = w
v = c
[../]
[./d_dot]
type = TimeDerivative
variable = d
[../]
[./d_diff]
type = MatDiffusion
variable = d
diffusivity = diffusivity
[../]
[]
[BCs]
[./Periodic]
[./all]
auto_direction = 'x y'
[../]
[../]
[]
[Materials]
[./kappa]
type = GenericConstantMaterial
prop_names = 'kappa_c'
prop_values = '2.0'
[../]
[./mob]
type = DerivativeParsedMaterial
f_name = M
args = 'c d'
function = 'if(d>0.001,d,0.001)*(1-0.5*c^2)'
outputs = exodus
derivative_order = 1
[../]
[./free_energy]
type = MathEBFreeEnergy
f_name = F
c = c
[../]
[./d_diff]
type = GenericConstantMaterial
prop_names = diffusivity
prop_values = 0.1
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = 'BDF2'
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 lu 1'
l_max_its = 30
l_tol = 1.0e-4
nl_max_its = 50
nl_rel_tol = 1.0e-10
dt = 10.0
num_steps = 2
[]
[Outputs]
exodus = true
[]
modules/phase_field/test/tests/free_energy_material/MathEBFreeEnergy_split.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 30
ny = 30
xmin = 0.0
xmax = 30.0
ymin = 0.0
ymax = 30.0
elem_type = QUAD4
[]
[Variables]
[./c]
[./InitialCondition]
type = CrossIC
x1 = 0.0
x2 = 30.0
y1 = 0.0
y2 = 30.0
[../]
[../]
[./w]
[../]
[]
[Preconditioning]
active = 'SMP'
[./PBP]
type = PBP
solve_order = 'w c'
preconditioner = 'AMG ASM'
off_diag_row = 'c '
off_diag_column = 'w '
[../]
[./SMP]
type = SMP
off_diag_row = 'w c'
off_diag_column = 'c w'
[../]
[]
[Kernels]
[./cres]
type = SplitCHParsed
variable = c
kappa_name = kappa_c
w = w
f_name = F
[../]
[./wres]
type = SplitCHWRes
variable = w
mob_name = M
[../]
[./time]
type = CoupledTimeDerivative
variable = w
v = c
[../]
[]
[BCs]
[./Periodic]
[./top_bottom]
primary = 0
secondary = 2
translation = '0 30.0 0'
[../]
[./left_right]
primary = 1
secondary = 3
translation = '-30.0 0 0'
[../]
[../]
[]
[Materials]
[./constant]
type = GenericConstantMaterial
prop_names = 'M kappa_c'
prop_values = '1.0 2.0'
[../]
[./free_energy]
type = MathEBFreeEnergy
f_name = F
c = c
[../]
[]
[Executioner]
type = Transient
scheme = 'BDF2'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 30
l_tol = 1.0e-3
nl_max_its = 50
nl_rel_tol = 1.0e-10
dt = 10.0
num_steps = 2
[]
[Outputs]
exodus = true
[]
modules/phase_field/test/tests/anisotropic_mobility/split.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 15
ny = 15
xmax = 15.0
ymax = 15.0
[]
[Variables]
[./c]
[./InitialCondition]
type = CrossIC
x1 = 0.0
x2 = 30.0
y1 = 0.0
y2 = 30.0
[../]
[../]
[./w]
[../]
[]
[Kernels]
[./cres]
type = SplitCHParsed
variable = c
kappa_name = kappa_c
w = w
f_name = F
[../]
[./wres]
type = SplitCHWResAniso
variable = w
mob_name = M
[../]
[./time]
type = CoupledTimeDerivative
variable = w
v = c
[../]
[]
[Materials]
[./kappa]
type = GenericConstantMaterial
prop_names = 'kappa_c'
prop_values = '2.0'
[../]
[./mob]
type = ConstantAnisotropicMobility
tensor = '0.1 0 0
0 1 0
0 0 0'
M_name = M
[../]
[./free_energy]
type = MathEBFreeEnergy
f_name = F
c = c
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = 'BDF2'
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 lu 1'
l_max_its = 30
l_tol = 1.0e-4
nl_max_its = 50
nl_rel_tol = 1.0e-10
dt = 10.0
num_steps = 2
[]
[Outputs]
exodus = true
print_linear_residuals = true
perf_graph = true
[]
modules/phase_field/test/tests/actions/conserved_split_1var_high_order.i
#
# Test the conserved action with split solve and 1 variable
#
[Mesh]
type = GeneratedMesh
dim = 2
nx = 25
ny = 25
xmax = 50
ymax = 50
elem_type = QUAD
second_order = true
[]
[Modules]
[./PhaseField]
[./Conserved]
[./cv]
solve_type = REVERSE_SPLIT
family = LAGRANGE
order = SECOND
free_energy = F
kappa = 2.0
mobility = 1.0
[../]
[../]
[../]
[]
[ICs]
[./InitialCondition]
type = CrossIC
x1 = 5.0
y1 = 5.0
x2 = 45.0
y2 = 45.0
variable = cv
[../]
[]
[Materials]
[./free_energy]
type = DerivativeParsedMaterial
f_name = F
args = 'cv'
function = '(1-cv)^2 * (1+cv)^2'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
l_max_its = 30
l_tol = 1.0e-5
nl_max_its = 10
nl_rel_tol = 1.0e-12
start_time = 0.0
num_steps = 5
dt = 0.7
[]
[Outputs]
exodus = true
[]
modules/phase_field/test/tests/free_energy_material/MathFreeEnergy_split.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 30
ny = 30
xmin = 0.0
xmax = 30.0
ymin = 0.0
ymax = 30.0
elem_type = QUAD4
[]
[Variables]
[./c]
[./InitialCondition]
type = CrossIC
x1 = 0.0
x2 = 30.0
y1 = 0.0
y2 = 30.0
[../]
[../]
[./w]
[../]
[]
[Preconditioning]
active = 'SMP'
[./PBP]
type = PBP
solve_order = 'w c'
preconditioner = 'AMG ASM'
off_diag_row = 'c '
off_diag_column = 'w '
[../]
[./SMP]
type = SMP
coupled_groups = 'c,w'
[../]
[]
[Kernels]
[./cres]
type = SplitCHParsed
variable = c
kappa_name = kappa_c
w = w
f_name = F
[../]
[./wres]
type = SplitCHWRes
variable = w
mob_name = M
[../]
[./time]
type = CoupledTimeDerivative
variable = w
v = c
[../]
[]
[BCs]
[./Periodic]
[./top_bottom]
primary = 0
secondary = 2
translation = '0 30.0 0'
[../]
[./left_right]
primary = 1
secondary = 3
translation = '-30.0 0 0'
[../]
[../]
[]
[Materials]
[./constant]
type = GenericConstantMaterial
prop_names = 'M kappa_c'
prop_values = '1.0 2.0'
[../]
[./free_energy]
type = MathFreeEnergy
f_name = F
c = c
derivative_order = 2
[../]
[]
[Executioner]
type = Transient
scheme = 'BDF2'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 30
l_tol = 1.0e-3
nl_max_its = 50
nl_rel_tol = 1.0e-10
dt = 10.0
num_steps = 2
[]
[Outputs]
exodus = true
[]
modules/phase_field/test/tests/mobility_derivative/matdiffusion.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 15
ny = 15
xmax = 15.0
ymax = 15.0
elem_type = QUAD4
[]
[Variables]
[./c]
[./InitialCondition]
type = CrossIC
x1 = 0.0
x2 = 30.0
y1 = 0.0
y2 = 30.0
[../]
[../]
[./d]
[./InitialCondition]
type = SmoothCircleIC
x1 = 15
y1 = 15
radius = 8
int_width = 3
invalue = 2
outvalue = 0
[../]
[../]
[]
[Kernels]
[./cres]
type = MatDiffusion
variable = c
diffusivity = Dc
args = d
[../]
[./ctime]
type = TimeDerivative
variable = c
[../]
[./dres]
type = MatDiffusion
variable = d
diffusivity = Dd
args = c
[../]
[./dtime]
type = TimeDerivative
variable = d
[../]
[]
[Materials]
[./Dc]
type = DerivativeParsedMaterial
f_name = Dc
function = '0.01+c^2+d'
args = 'c d'
derivative_order = 1
[../]
[./Dd]
type = DerivativeParsedMaterial
f_name = Dd
function = 'd^2+c+1.5'
args = 'c d'
derivative_order = 1
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = 'BDF2'
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 lu 1'
dt = 1
num_steps = 2
[]
[Outputs]
exodus = true
[]
modules/phase_field/test/tests/anisotropic_mobility/nonsplit.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 15
ny = 15
xmax = 15.0
ymax = 15.0
[]
[Variables]
[./c]
order = THIRD
family = HERMITE
[./InitialCondition]
type = CrossIC
x1 = 0.0
x2 = 30.0
y1 = 0.0
y2 = 30.0
[../]
[../]
[]
[Kernels]
[./cres]
type = CahnHilliardAniso
variable = c
mob_name = M
f_name = F
[../]
[./int]
type = CHInterfaceAniso
variable = c
kappa_name = kappa_c
mob_name = M
[../]
[./time]
type = TimeDerivative
variable = c
[../]
[]
[Materials]
[./kappa]
type = GenericConstantMaterial
prop_names = 'kappa_c'
prop_values = '2.0'
[../]
[./mob]
type = ConstantAnisotropicMobility
tensor = '0.1 0 0
0 1 0
0 0 0'
M_name = M
[../]
[./free_energy]
type = MathEBFreeEnergy
f_name = F
c = c
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = 'BDF2'
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 lu 1'
l_max_its = 30
l_tol = 1.0e-4
nl_max_its = 50
nl_rel_tol = 1.0e-10
dt = 10.0
num_steps = 2
[]
[Outputs]
exodus = true
print_linear_residuals = true
perf_graph = true
[]
modules/phase_field/test/tests/actions/conserved_direct_1var_variable_mob.i
#
# Test consreved action for direct solve
#
[Mesh]
type = GeneratedMesh
dim = 2
nx = 16
ny = 16
xmax = 50
ymax = 50
elem_type = QUAD
[]
[Modules]
[./PhaseField]
[./Conserved]
[./cv]
solve_type = direct
free_energy = F
kappa = 2.0
mobility = M
[../]
[../]
[../]
[]
[ICs]
[./InitialCondition]
type = CrossIC
x1 = 5.0
y1 = 5.0
x2 = 45.0
y2 = 45.0
variable = cv
[../]
[]
[Materials]
[./variable_mob]
type = DerivativeParsedMaterial
f_name = M
args = 'cv'
function = '0.1 + (1 + cv)/2'
[../]
[./free_energy]
type = DerivativeParsedMaterial
f_name = F
args = 'cv'
function = '(1-cv)^2 * (1+cv)^2'
[../]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
l_max_its = 30
l_tol = 1.0e-4
nl_max_its = 10
nl_rel_tol = 1.0e-10
start_time = 0.0
num_steps = 5
dt = 0.5
[]
[Outputs]
[./out]
type = Exodus
refinements = 2
[../]
[]
modules/phase_field/test/tests/anisotropic_mobility/ad_diffusion.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 15
ny = 15
xmax = 15.0
ymax = 15.0
[]
[Variables]
[./c]
[./InitialCondition]
type = CrossIC
x1 = 0.0
x2 = 30.0
y1 = 0.0
y2 = 30.0
[../]
[../]
[]
[Kernels]
[./cres]
type = ADMatAnisoDiffusion
diffusivity = D
variable = c
[../]
[./time]
type = ADTimeDerivative
variable = c
[../]
[]
[Materials]
[./D]
type = ConstantAnisotropicMobility
tensor = '0.1 0 0
0 1 0
0 0 0'
M_name = D
[../]
[]
[Executioner]
type = Transient
scheme = 'BDF2'
solve_type = 'NEWTON'
l_max_its = 30
l_tol = 1.0e-4
nl_max_its = 50
nl_rel_tol = 1.0e-10
dt = 10.0
num_steps = 2
[]
[Outputs]
exodus = true
print_linear_residuals = true
perf_graph = true
[]
modules/phase_field/test/tests/mobility_derivative/mobility_derivative_test.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 30
ny = 30
xmax = 30.0
ymax = 30.0
elem_type = QUAD4
[]
[Variables]
[./c]
[../]
[./w]
[../]
[]
[ICs]
[./c_IC]
type = CrossIC
x1 = 0.0
x2 = 30.0
y1 = 0.0
y2 = 30.0
variable = c
[../]
[]
[Kernels]
[./cres]
type = SplitCHParsed
variable = c
kappa_name = kappa_c
w = w
f_name = F
[../]
[./wres]
type = SplitCHWRes
variable = w
mob_name = M
args = c
[../]
[./time]
type = CoupledTimeDerivative
variable = w
v = c
[../]
[]
[BCs]
[./Periodic]
[./all]
auto_direction = 'x y'
[../]
[../]
[]
[Materials]
[./kappa]
type = GenericConstantMaterial
prop_names = 'kappa_c'
prop_values = '2.0'
[../]
[./mob]
type = DerivativeParsedMaterial
f_name = M
args = c
function = '1-0.9*c^2'
outputs = exodus
derivative_order = 1
[../]
[./free_energy]
type = MathEBFreeEnergy
f_name = F
c = c
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'w c'
off_diag_column = 'c w'
[../]
[]
[Executioner]
type = Transient
scheme = 'BDF2'
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 lu 1'
l_max_its = 30
l_tol = 1.0e-4
nl_max_its = 50
nl_rel_tol = 1.0e-10
dt = 10.0
num_steps = 2
[]
[Outputs]
exodus = true
[]
modules/phase_field/test/tests/initial_conditions/CrossIC.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 25
ny = 25
xmax = 50
ymax = 50
elem_type = QUAD4
[]
[Variables]
[./c]
order = THIRD
family = HERMITE
[../]
[]
[ICs]
[./c_IC]
type = CrossIC
x1 = 0.0
x2 = 50.0
y1 = 0.0
y2 = 50.0
variable = c
[../]
[]
[Kernels]
[./ie_c]
type = TimeDerivative
variable = c
[../]
[./CHSolid]
type = CHMath
variable = c
mob_name = M
[../]
[./CHInterface]
type = CHInterface
variable = c
kappa_name = kappa_c
mob_name = M
[../]
[]
[BCs]
[./Periodic]
[./all]
auto_direction = 'x y'
[../]
[../]
[]
[Materials]
[./constant]
type = GenericConstantMaterial
prop_names = 'M kappa_c'
prop_values = '1.0 2.0'
[../]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 31'
l_max_its = 15
l_tol = 1.0e-4
nl_max_its = 10
nl_rel_tol = 1.0e-8
start_time = 0.0
num_steps = 2
dt = 20.0
[]
[Outputs]
exodus = true
[]
modules/phase_field/test/tests/actions/conserved_forward_split_1var.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 30
ny = 30
xmax = 25.0
ymax = 25.0
elem_type = QUAD
[]
[Debug]
show_actions = true
[]
[Modules]
[./PhaseField]
[./Conserved]
[./c]
solve_type = FORWARD_SPLIT
mobility = 1.0
kappa = kappa_c
free_energy = F
[../]
[../]
[../]
[]
[ICs]
[./c_IC]
type = CrossIC
variable = c
x1 = 0.0
x2 = 25.0
y1 = 0.0
y2 = 25.0
[../]
[]
[AuxVariables]
[./local_energy]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./local_energy]
type = TotalFreeEnergy
variable = local_energy
f_name = F
kappa_names = kappa_c
interfacial_vars = c
[../]
[]
[Materials]
[./kappa_c]
type = GenericConstantMaterial
prop_names = kappa_c
prop_values = 2.0
[../]
[./free_energy]
type = DerivativeParsedMaterial
args = c
function = '(1 - c)^2 * (1 + c)^2'
f_name = F
[../]
[]
[Postprocessors]
[./total_free_energy]
type = ElementIntegralVariablePostprocessor
variable = local_energy
[../]
[./total_c]
type = ElementIntegralVariablePostprocessor
variable = c
execute_on = 'initial TIMESTEP_END'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
l_max_its = 30
l_tol = 1.0e-4
nl_max_its = 10
nl_rel_tol = 1.0e-10
start_time = 0.0
num_steps = 5
dt = 0.7
[]
[Outputs]
perf_graph = true
exodus = true
[]
modules/phase_field/test/tests/SplitCH/split_math_test.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 30
ny = 30
xmin = 0.0
xmax = 30.0
ymin = 0.0
ymax = 30.0
elem_type = QUAD4
[]
[Variables]
[./c]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = CrossIC
x1 = 0.0
x2 = 30.0
y1 = 0.0
y2 = 30.0
[../]
[../]
[./w]
order = FIRST
family = LAGRANGE
[../]
[]
[Preconditioning]
active = 'SMP'
[./PBP]
type = PBP
solve_order = 'w c'
preconditioner = 'AMG ASM'
off_diag_row = 'c '
off_diag_column = 'w '
[../]
[./SMP]
type = SMP
coupled_groups = 'c,w'
[../]
[]
[Kernels]
[./cres]
type = SplitCHMath
variable = c
kappa_name = kappa_c
w = w
[../]
[./wres]
type = SplitCHWRes
variable = w
mob_name = M
[../]
[./time]
type = CoupledTimeDerivative
variable = w
v = c
[../]
[]
[BCs]
[./Periodic]
[./top_bottom]
primary = 0
secondary = 2
translation = '0 30.0 0'
[../]
[./left_right]
primary = 1
secondary = 3
translation = '-30.0 0 0'
[../]
[../]
[]
[Materials]
[./constant]
type = GenericConstantMaterial
prop_names = 'M kappa_c'
prop_values = '1.0 2.0'
block = 0
[../]
[]
[Executioner]
type = Transient
scheme = 'BDF2'
#petsc_options = '-snes_mf'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 30
l_tol = 1.0e-3
nl_max_its = 50
nl_rel_tol = 1.0e-10
dt = 10.0
num_steps = 2
[]
[Outputs]
file_base = out
exodus = true
[]
modules/phase_field/test/tests/actions/conserved_direct_1var.i
#
# Test consreved action for direct solve
#
[Mesh]
type = GeneratedMesh
dim = 2
nx = 16
ny = 16
xmax = 50
ymax = 50
elem_type = QUAD
[]
[Modules]
[./PhaseField]
[./Conserved]
[./cv]
solve_type = direct
free_energy = F
kappa = 2.0
mobility = 1.0
[../]
[../]
[../]
[]
[ICs]
[./InitialCondition]
type = CrossIC
x1 = 5.0
y1 = 5.0
x2 = 45.0
y2 = 45.0
variable = cv
[../]
[]
[Materials]
[./free_energy]
type = DerivativeParsedMaterial
f_name = F
args = 'cv'
function = '(1-cv)^2 * (1+cv)^2'
[../]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
l_max_its = 30
l_tol = 1.0e-4
nl_max_its = 10
nl_rel_tol = 1.0e-10
start_time = 0.0
num_steps = 5
dt = 0.7
[]
[Outputs]
[./out]
type = Exodus
refinements = 2
[../]
[]