- force_prepareFalseNormally all MeshModifiers run before the mesh is prepared for use. This flag can be set on an individual modifier to force preperation between modifiers where they might be needed.
Default:False
C++ Type:bool
Description:Normally all MeshModifiers run before the mesh is prepared for use. This flag can be set on an individual modifier to force preperation between modifiers where they might be needed.
- depends_onThe MeshModifiers that this modifier relies upon (i.e. must execute before this one)
C++ Type:std::vector
Description:The MeshModifiers that this modifier relies upon (i.e. must execute before this one)
- boundariesBoundaries to be broken. Default means to break all boundaries
C++ Type:std::vector
Description:Boundaries to be broken. Default means to break all boundaries
<!– MOOSE Documentation Stub: Remove this when content is added. –>
BreakBoundaryOnSubdomain
under construction:Undocumented Class

The BreakBoundaryOnSubdomain has not been documented. The content contained on this page 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.
Break boundaries based on the subdomains to which their sides are attached. Naming convention for the new boundaries will be the old boundary name plus "_to_" plus the subdomain name
Input 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.
Advanced Parameters
Input Files
- test/tests/interfacekernels/2d_interface/coupled_value_coupled_flux_dot.i
- test/tests/mesh_modifiers/break_boundary/break_bottom_interface_on_subdomain.i
- modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_2D_blocks.i
- test/tests/interfacekernels/adaptivity/adaptivity.i
- test/tests/interfacekernels/3d_interface/coupled_value_coupled_flux.i
- test/tests/mesh_modifiers/break_boundary/break_boundary_on_subdomain.i
- test/tests/tag/tag_interface_kernels.i
- test/tests/interfacekernels/2d_interface/coupled_value_coupled_flux.i
- test/tests/dgkernels/dg_block_restrict/2d_dg_diffusion_block_restrict.i
test/tests/interfacekernels/2d_interface/coupled_value_coupled_flux_dot.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
xmax = 2
ny = 2
ymax = 2
[]
[MeshModifiers]
[./subdomain1]
type = SubdomainBoundingBox
bottom_left = '0 0 0'
top_right = '1 1 0'
block_id = 1
[../]
[./interface]
type = SideSetsBetweenSubdomains
depends_on = subdomain1
master_block = '0'
paired_block = '1'
new_boundary = 'master0_interface'
[../]
[./break_boundary]
depends_on = interface
type = BreakBoundaryOnSubdomain
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./v]
order = FIRST
family = LAGRANGE
block = 1
[../]
[]
[Kernels]
[./diff_u]
type = CoeffParamDiffusion
variable = u
D = 2
block = 0
[../]
[./diff_v]
type = CoeffParamDiffusion
variable = v
D = 4
block = 1
[../]
[./source_u]
type = BodyForce
variable = u
function = 0.1*t
[../]
[]
[InterfaceKernels]
[./interface]
type = PenaltyInterfaceDiffusionDot
variable = u
neighbor_var = v
boundary = master0_interface
penalty = 1e6
[../]
[]
[BCs]
[./u]
type = VacuumBC
variable = u
boundary = 'left_to_0 bottom_to_0 right top'
[../]
[./v]
type = VacuumBC
variable = v
boundary = 'left_to_1 bottom_to_1'
[../]
[]
[Postprocessors]
[./u_int]
type = ElementIntegralVariablePostprocessor
variable = u
block = 0
[../]
[./v_int]
type = ElementIntegralVariablePostprocessor
variable = v
block = 1
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = TRUE
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist '
dt = 0.1
num_steps = 10
dtmin = 0.1
line_search = none
[]
[Outputs]
exodus = true
print_linear_residuals = true
[]
test/tests/mesh_modifiers/break_boundary/break_bottom_interface_on_subdomain.i
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
xmax = 2
ny = 2
ymax = 2
nz = 2
zmax = 2
[]
[MeshModifiers]
[./subdomain1]
type = SubdomainBoundingBox
bottom_left = '0 0 0'
top_right = '1 1 1'
block_id = 1
[../]
[./subdomain2]
type = SubdomainBoundingBox
bottom_left = '1 0 0'
top_right = '2 1 1'
block_id = 2
[../]
[./interface]
type = SideSetsBetweenSubdomains
depends_on = 'subdomain1 subdomain2'
master_block = '1 2'
paired_block = '0'
new_boundary = 'interface'
[../]
[./break_boundary]
depends_on = interface
type = BreakBoundaryOnSubdomain
boundaries = 'bottom interface'
[../]
[]
modules/porous_flow/test/tests/flux_limited_TVD_advection/fltvd_2D_blocks.i
# Using Flux-Limited TVD Advection ala Kuzmin and Turek
# 2D version with blocks
# Top block: tracer is defined here, with velocity = (0.1, 0, 0)
# Central block: tracer is not defined here
# Bottom block: tracer is defined here, with velocity = (-0.1, 0, 0)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
xmin = 0
xmax = 1
ny = 5
ymin = 0
ymax = 1
[]
[MeshModifiers]
[./top]
type = SubdomainBoundingBox
bottom_left = '0 0.6 0'
top_right = '1 1 0'
block_id = 1
[../]
[./center]
type = SubdomainBoundingBox
bottom_left = '0 0.4 0'
top_right = '1 0.6 0'
block_id = 2
[../]
[./bottom]
type = SubdomainBoundingBox
bottom_left = '0 0 0'
top_right = '1 0.6 0'
block_id = 3
[../]
[./split_bdys]
type = BreakBoundaryOnSubdomain
depends_on = 'top center bottom'
boundaries = 'left right'
[../]
[]
[GlobalParams]
block = '1 2 3'
[]
[Variables]
[./tracer]
block = '1 3'
[../]
[./dummy]
[../]
[]
[ICs]
[./tracer_top]
type = FunctionIC
variable = tracer
function = 'if(x<0.1 | x>0.3, 0, 1)'
block = '1'
[../]
[./tracer_bot]
type = FunctionIC
variable = tracer
function = 'if(x<0.7 | x > 0.9, 0, 1)'
block = '3'
[../]
[]
[Kernels]
[./mass_dot]
type = MassLumpedTimeDerivative
variable = tracer
block = '1 3'
[../]
[./flux_top]
type = FluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = fluo_top
block = '1'
[../]
[./flux_bot]
type = FluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = fluo_bot
block = '3'
[../]
[.dummy]
type = TimeDerivative
variable = dummy
[../]
[]
[UserObjects]
[./fluo_top]
type = AdvectiveFluxCalculatorConstantVelocity
flux_limiter_type = superbee
u = tracer
velocity = '0.1 0 0'
block = '1'
[../]
[./fluo_bot]
type = AdvectiveFluxCalculatorConstantVelocity
flux_limiter_type = superbee
u = tracer
velocity = '-0.1 0 0'
block = '3'
[../]
[]
[BCs]
[./no_tracer_on_left_top]
type = PresetBC
variable = tracer
value = 0
boundary = 'left_to_1'
[../]
[./remove_tracer_top]
# Ideally, an OutflowBC would be used, but that does not exist in the framework
# In 1D VacuumBC is the same as OutflowBC, with the alpha parameter being twice the velocity
type = VacuumBC
boundary = 'right_to_1'
alpha = 0.2 # 2 * velocity
variable = tracer
[../]
[./no_tracer_on_left_bot]
# Ideally, an OutflowBC would be used, but that does not exist in the framework
# In 1D VacuumBC is the same as OutflowBC, with the alpha parameter being twice the velocity
type = VacuumBC
boundary = 'left_to_3'
alpha = 0.2 # 2 * velocity
variable = tracer
[../]
[./remove_tracer_bot]
type = PresetBC
variable = tracer
value = 0
boundary = 'right_to_3'
[../]
[]
[Preconditioning]
active = basic
[./basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[../]
[./preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[../]
[]
[VectorPostprocessors]
[./tracer_bot]
type = LineValueSampler
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 11
sort_by = x
variable = tracer
[../]
[./tracer_top]
type = LineValueSampler
start_point = '0 1 0'
end_point = '1 1 0'
num_points = 11
sort_by = x
variable = tracer
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 6
dt = 6E-2
timestep_tolerance = 1E-3
[]
[Outputs]
print_linear_residuals = false
[./out]
type = CSV
execute_on = final
[../]
[]
test/tests/interfacekernels/adaptivity/adaptivity.i
# This input file is used for two tests:
# 1) Check that InterfaceKernels work with mesh adaptivity
# 2) Error out when InterfaceKernels are used with adaptivity
# and stateful material prpoerties
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
parallel_type = 'replicated'
[]
[MeshModifiers]
[./subdomain1]
type = SubdomainBoundingBox
bottom_left = '0.5 0 0'
top_right = '1 1 0'
block_id = 1
[../]
[./interface]
type = SideSetsBetweenSubdomains
depends_on = subdomain1
master_block = '0'
paired_block = '1'
new_boundary = 'master0_interface'
[../]
[./break_boundary]
depends_on = interface
type = BreakBoundaryOnSubdomain
[../]
[]
[Variables]
[./u]
[./InitialCondition]
type = ConstantIC
value = 1
[../]
block = 0
[../]
[./u_neighbor]
[./InitialCondition]
type = ConstantIC
value = 1
[../]
block = 1
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
value = (x*x*x)-6.0*x
[../]
[./bc_fn]
type = ParsedFunction
value = (x*x*x)
[../]
[]
[Kernels]
[./diff]
type = MatDiffusionTest
variable = u
prop_name = diffusivity
block = 0
[../]
[./abs]
type = Reaction
variable = u
block = 0
[../]
[./forcing]
type = BodyForce
variable = u
function = forcing_fn
block = 0
[../]
[./diffn]
type = MatDiffusionTest
variable = u_neighbor
prop_name = diffusivity
block = 1
[../]
[./absn]
type = Reaction
variable = u_neighbor
block = 1
[../]
[./forcingn]
type = BodyForce
variable = u_neighbor
function = forcing_fn
block = 1
[../]
[]
[InterfaceKernels]
[./flux_match]
type = PenaltyInterfaceDiffusion
variable = u
neighbor_var = u_neighbor
boundary = master0_interface
penalty = 1e6
[../]
[]
[BCs]
[./u]
type = FunctionDirichletBC
variable = u
boundary = 'left'
function = bc_fn
[../]
[./u_neighbor]
type = FunctionDirichletBC
variable = u_neighbor
boundary = 'right'
function = bc_fn
[../]
[]
[Materials]
active = 'constant'
[./stateful]
type = StatefulTest
prop_names = 'diffusivity'
prop_values = '1'
block = '0 1'
[../]
[./constant]
type = GenericConstantMaterial
prop_names = 'diffusivity'
prop_values = '1'
block = '0 1'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Steady
solve_type = 'NEWTON'
[]
[Adaptivity]
marker = 'marker'
steps = 1
[./Markers]
[./marker]
type = BoxMarker
bottom_left = '0 0 0'
top_right = '1 1 0'
inside = refine
outside = coarsen
[../]
[../]
[]
[Outputs]
exodus = true
[]
test/tests/interfacekernels/3d_interface/coupled_value_coupled_flux.i
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
xmax = 2
ny = 2
ymax = 2
nz = 2
zmax = 2
[]
[MeshModifiers]
[./subdomain1]
type = SubdomainBoundingBox
bottom_left = '0 0 0'
top_right = '1 1 1'
block_id = 1
[../]
[./break_boundary]
depends_on = subdomain1
type = BreakBoundaryOnSubdomain
[../]
[./interface]
type = SideSetsBetweenSubdomains
depends_on = break_boundary
master_block = '0'
paired_block = '1'
new_boundary = 'master0_interface'
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./v]
order = FIRST
family = LAGRANGE
block = 1
[../]
[]
[Kernels]
[./diff_u]
type = CoeffParamDiffusion
variable = u
D = 4
block = 0
[../]
[./diff_v]
type = CoeffParamDiffusion
variable = v
D = 2
block = 1
[../]
[./source_u]
type = BodyForce
variable = u
value = 1
[../]
[]
[InterfaceKernels]
[./interface]
type = PenaltyInterfaceDiffusion
variable = u
neighbor_var = v
boundary = master0_interface
penalty = 1e6
[../]
[]
[BCs]
[./u]
type = VacuumBC
variable = u
boundary = 'left_to_0 bottom_to_0 back_to_0 right top front'
[../]
[./v]
type = VacuumBC
variable = v
boundary = 'left_to_1 bottom_to_1 back_to_1'
[../]
[]
[Postprocessors]
[./u_int]
type = ElementIntegralVariablePostprocessor
variable = u
block = 0
[../]
[./v_int]
type = ElementIntegralVariablePostprocessor
variable = v
block = 1
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
exodus = true
print_linear_residuals = true
[]
test/tests/mesh_modifiers/break_boundary/break_boundary_on_subdomain.i
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
xmax = 2
ny = 2
ymax = 2
nz = 2
zmax = 2
[]
[MeshModifiers]
[./subdomain1]
type = SubdomainBoundingBox
bottom_left = '0 0 0'
top_right = '1 1 1'
block_id = 1
[../]
[./subdomain2]
type = SubdomainBoundingBox
bottom_left = '1 0 0'
top_right = '2 1 1'
block_id = 2
[../]
[./interface]
type = SideSetsBetweenSubdomains
depends_on = 'subdomain1 subdomain2'
master_block = '1 2'
paired_block = '0'
new_boundary = 'interface'
[../]
[./break_boundary]
depends_on = interface
type = BreakBoundaryOnSubdomain
[../]
[]
test/tests/tag/tag_interface_kernels.i
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
xmax = 2
ny = 2
ymax = 2
nz = 2
zmax = 2
[]
[MeshModifiers]
[./subdomain1]
type = SubdomainBoundingBox
bottom_left = '0 0 0'
top_right = '1 1 1'
block_id = 1
[../]
[./break_boundary]
depends_on = subdomain1
type = BreakBoundaryOnSubdomain
[../]
[./interface]
type = SideSetsBetweenSubdomains
depends_on = break_boundary
master_block = '0'
paired_block = '1'
new_boundary = 'master0_interface'
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./v]
order = FIRST
family = LAGRANGE
block = 1
[../]
[]
[Kernels]
[./diff_u]
type = CoeffParamDiffusion
variable = u
D = 4
block = 0
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./diff_v]
type = CoeffParamDiffusion
variable = v
D = 2
block = 1
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./source_u]
type = BodyForce
variable = u
value = 1
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[]
[InterfaceKernels]
[./interface]
type = PenaltyInterfaceDiffusion
variable = u
neighbor_var = v
boundary = master0_interface
penalty = 1e6
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[]
[BCs]
[./u]
type = VacuumBC
variable = u
boundary = 'left_to_0 bottom_to_0 back_to_0 right top front'
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./v]
type = VacuumBC
variable = v
boundary = 'left_to_1 bottom_to_1 back_to_1'
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[]
[AuxVariables]
[./tag_variable1]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./tag_variable2]
order = FIRST
family = LAGRANGE
block = 1
[../]
[]
[AuxKernels]
[./TagVectorAux1]
type = TagVectorAux
variable = tag_variable1
v = u
block = 0
vector_tag = vec_tag2
execute_on = timestep_end
[../]
[./TagVectorAux2]
type = TagMatrixAux
variable = tag_variable2
v = v
block = 1
matrix_tag = mat_tag2
execute_on = timestep_end
[../]
[]
[Postprocessors]
[./u_int]
type = ElementIntegralVariablePostprocessor
variable = u
block = 0
[../]
[./v_int]
type = ElementIntegralVariablePostprocessor
variable = v
block = 1
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Problem]
type = TagTestProblem
test_tag_vectors = 'nontime residual vec_tag1 vec_tag2'
test_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_vectors = 'vec_tag1 vec_tag2'
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
exodus = true
[]
test/tests/interfacekernels/2d_interface/coupled_value_coupled_flux.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
xmax = 2
ny = 2
ymax = 2
[]
[MeshModifiers]
[./subdomain1]
type = SubdomainBoundingBox
bottom_left = '0 0 0'
top_right = '1 1 0'
block_id = 1
[../]
[./interface]
type = SideSetsBetweenSubdomains
depends_on = subdomain1
master_block = '0'
paired_block = '1'
new_boundary = 'master0_interface'
[../]
[./break_boundary]
depends_on = interface
type = BreakBoundaryOnSubdomain
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./v]
order = FIRST
family = LAGRANGE
block = 1
[../]
[]
[Kernels]
[./diff_u]
type = CoeffParamDiffusion
variable = u
D = 4
block = 0
[../]
[./diff_v]
type = CoeffParamDiffusion
variable = v
D = 2
block = 1
[../]
[./source_u]
type = BodyForce
variable = u
value = 1
[../]
[]
[InterfaceKernels]
[./interface]
type = PenaltyInterfaceDiffusion
variable = u
neighbor_var = v
boundary = master0_interface
penalty = 1e6
[../]
[]
[BCs]
[./u]
type = VacuumBC
variable = u
boundary = 'left_to_0 bottom_to_0 right top'
[../]
[./v]
type = VacuumBC
variable = v
boundary = 'left_to_1 bottom_to_1'
[../]
[]
[Postprocessors]
[./u_int]
type = ElementIntegralVariablePostprocessor
variable = u
block = 0
[../]
[./v_int]
type = ElementIntegralVariablePostprocessor
variable = v
block = 1
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
exodus = true
print_linear_residuals = true
[]
test/tests/dgkernels/dg_block_restrict/2d_dg_diffusion_block_restrict.i
[Mesh]
type = GeneratedMesh
dim = 2
xmax = 2
nx = 10
ymax = 2
ny = 10
[]
[MeshModifiers]
[./subdomain1]
type = SubdomainBoundingBox
bottom_left = '0 0 0'
block_id = 1
top_right = '1 1 0'
[../]
[./interface]
type = SideSetsBetweenSubdomains
depends_on = subdomain1
master_block = '1'
paired_block = '0'
new_boundary = 'master1_interface'
[../]
[./boundaries]
depends_on = interface
type = BreakBoundaryOnSubdomain
boundaries = 'left bottom'
[../]
[]
[Problem]
kernel_coverage_check = false
[]
[Variables]
[./u]
order = FIRST
family = L2_LAGRANGE
block = 1
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./source]
type = BodyForce
variable = u
[../]
[]
[DGKernels]
[./dg_diffusion]
type = DGDiffusion
variable = u
sigma = 4
epsilon = 1
[../]
[]
[BCs]
[./vacuum]
type = VacuumBC
variable = u
boundary = 'left_to_1 bottom_to_1'
[../]
[./master1_inteface]
type = VacuumBC
variable = u
boundary = 'master1_interface'
[../]
[]
[Postprocessors]
[./norm]
type = ElementL2Norm
variable = u
block = 1
[../]
[]
[Executioner]
type = Steady
nl_abs_tol = 1e-12
[]
[Outputs]
exodus = true
[]