- block_idThe block to be deleted
C++ Type:unsigned short
Description:The block to be deleted
BlockDeletionGenerator
The BlockDeletionGenerator is used to remove elements from a mesh matching a user provided subdomain ID. While most mesh generation operations should be based on geometric operations, it is sometimes easier to remove discretized elements for certain problems.
Input Parameters
- depends_onThe MeshModifiers that this modifier relies upon (i.e. must execute before this one)
C++ Type:std::vector
Options:
Description:The MeshModifiers that this modifier relies upon (i.e. must execute before this one)
- force_prepareFalseNormally all MeshModifiers run before the mesh is prepared for use. This flag can be set on an individual modifier to force preparation between modifiers where they might be needed.
Default:False
C++ Type:bool
Options:
Description:Normally all MeshModifiers run before the mesh is prepared for use. This flag can be set on an individual modifier to force preparation between modifiers where they might be needed.
- new_boundaryoptional boundary name to assign to the cut surface
C++ Type:BoundaryName
Options:
Description:optional boundary name to assign to the cut surface
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.
Advanced Parameters
Input Files
- test/tests/mesh_modifiers/block_deleter/BlockDeleterTest10.i
- test/tests/mesh_modifiers/block_deleter/BlockDeleterTest3.i
- test/tests/mesh_modifiers/block_deleter/BlockDeleterTest1.i
- test/tests/mesh_modifiers/block_deleter/BlockDeleterTest11.i
- test/tests/mesh_modifiers/block_deleter/BlockDeleterTest8.i
- test/tests/mesh_modifiers/block_deleter/BlockDeleterTest7.i
- test/tests/mesh_modifiers/block_deleter/BlockDeleterTest4.i
- test/tests/mesh_modifiers/block_deleter/BlockDeleterTest5.i
- test/tests/mesh_modifiers/block_deleter/BlockDeleterTest2.i
- test/tests/mesh_modifiers/block_deleter/BlockDeleterTest9.i
- test/tests/mesh_modifiers/block_deleter/BlockDeleterTest6.i
- test/tests/mesh_modifiers/block_deleter/BlockDeleterTest12.i
test/tests/mesh_modifiers/block_deleter/BlockDeleterTest10.i
# 2D, removal of a block containing a sideset inside it
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
ny = 5
xmin = 0
xmax = 5
ymin = 0
ymax = 5
[]
[MeshModifiers]
[./left]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '2 2 0'
top_right = '3 3 1'
[../]
[./right]
type = SubdomainBoundingBox
block_id = 2
bottom_left = '3 2 0'
top_right = '4 3 1'
[../]
[./interior_sideset]
type = SideSetsBetweenSubdomains
master_block = 1
paired_block = 2
depends_on = 'left right'
new_boundary = interior_ss
[../]
[./new_block_number]
type = SubdomainBoundingBox
block_id = 3
bottom_left = '0 0 0'
top_right = '4 4 1'
depends_on = 'interior_sideset'
[../]
[./ed0]
type = BlockDeleter
block_id = 3
depends_on = 'new_block_number'
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dt]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./top]
type = DirichletBC
variable = u
boundary = bottom
value = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 10
dt = 10
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/mesh_modifiers/block_deleter/BlockDeleterTest3.i
# 2D, interior
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
xmin = 0
xmax = 4
ymin = 0
ymax = 4
[]
[MeshModifiers]
[./SubdomainBoundingBox]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '1 1 0'
top_right = '3 3 1'
[../]
[./ed0]
type = BlockDeleter
block_id = 1
depends_on = SubdomainBoundingBox
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dt]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./top]
type = DirichletBC
variable = u
boundary = bottom
value = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 10
dt = 10
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/mesh_modifiers/block_deleter/BlockDeleterTest1.i
# 2D, concave block
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
xmin = 0
xmax = 4
ymin = 0
ymax = 4
[]
[MeshModifiers]
[./SubdomainBoundingBox]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '0 0 0'
top_right = '3 3 3'
[../]
[./ed0]
type = BlockDeleter
block_id = 1
depends_on = SubdomainBoundingBox
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dt]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./top]
type = DirichletBC
variable = u
boundary = bottom
value = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 10
dt = 10
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/mesh_modifiers/block_deleter/BlockDeleterTest11.i
# tet elements
[Mesh]
type = FileMesh
file = pyramid.e
[]
[MeshModifiers]
[./sbb2]
type = SubdomainBoundingBox
block_id = 2
bottom_left = '-0.5 -0.5 -0.5'
top_right = '0.5 0.5 0.5'
[../]
[./swiss_cheese2]
type = BlockDeleter
block_id = 2
depends_on = 'sbb2'
[../]
[./sbb3]
type = SubdomainBoundingBox
block_id = 3
bottom_left = '-5 -5 -3'
top_right = '-2 -2 -1'
[../]
[./swiss_cheese3]
type = BlockDeleter
block_id = 3
depends_on = 'sbb3'
[../]
[./sbb4]
type = SubdomainBoundingBox
block_id = 4
bottom_left = '-1 2 -2'
top_right = '1 5 0'
[../]
[./swiss_cheese4]
type = BlockDeleter
block_id = 4
depends_on = 'sbb4'
[../]
[./sbb5]
type = OrientedSubdomainBoundingBox
block_id = 5
center = '2.4 -1.4 0.4'
height = 3
length = 8
length_direction = '-2 1 -1'
width = 3
width_direction = '1 2 0'
[../]
[./swiss_cheese5]
type = BlockDeleter
block_id = 5
depends_on = 'sbb5'
[../]
[./sbb6]
type = OrientedSubdomainBoundingBox
block_id = 6
center = '-1 0.4 2.2'
height = 1
length = 8
length_direction = '2 -1 -1'
width = 1
width_direction = '1 2 0'
[../]
[./swiss_cheese6]
type = BlockDeleter
block_id = 6
depends_on = 'sbb6'
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dt]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./top]
type = DirichletBC
variable = u
boundary = top
value = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 100
dt = 100
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/mesh_modifiers/block_deleter/BlockDeleterTest8.i
# 2D, removal of a block containing a nodeset inside it
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
ny = 5
xmin = 0
xmax = 5
ymin = 0
ymax = 5
[]
[MeshModifiers]
[./SubdomainBoundingBox1]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '0 0 0'
top_right = '4 4 1'
[../]
[./interior_nodeset]
type = BoundingBoxNodeSet
new_boundary = interior_ns
bottom_left = '2 2 0'
top_right = '3 3 1'
[../]
[./ed0]
type = BlockDeleter
block_id = 1
depends_on = 'SubdomainBoundingBox1 interior_nodeset'
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dt]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./top]
type = DirichletBC
variable = u
boundary = bottom
value = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 10
dt = 10
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/mesh_modifiers/block_deleter/BlockDeleterTest7.i
# 2D, removal of a union of disjoint pieces
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
xmin = 0
xmax = 4
ymin = 0
ymax = 4
[]
[MeshModifiers]
[./SubdomainBoundingBox1]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '0 0 0'
top_right = '1 1 1'
[../]
[./SubdomainBoundingBox2]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '2 2 0'
top_right = '3 3 1'
[../]
[./ed0]
type = BlockDeleter
block_id = 1
depends_on = 'SubdomainBoundingBox1 SubdomainBoundingBox2'
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dt]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./top]
type = DirichletBC
variable = u
boundary = bottom
value = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 10
dt = 10
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/mesh_modifiers/block_deleter/BlockDeleterTest4.i
# 3D, interior
[Mesh]
type = GeneratedMesh
dim = 3
nx = 4
ny = 4
nz = 1
xmin = 0
xmax = 4
ymin = 0
ymax = 4
zmin = 0
zmax = 1
[]
[MeshModifiers]
[./SubdomainBoundingBox]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '1 1 0'
top_right = '3 3 1'
[../]
[./ed0]
type = BlockDeleter
block_id = 1
depends_on = SubdomainBoundingBox
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dt]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./top]
type = DirichletBC
variable = u
boundary = bottom
value = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 10
dt = 10
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/mesh_modifiers/block_deleter/BlockDeleterTest5.i
# 2D, non-concave
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
xmin = 0
xmax = 4
ymin = 0
ymax = 4
[]
[MeshModifiers]
[./SubdomainBoundingBox1]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '0 0 0'
top_right = '1 2 1'
[../]
[./SubdomainBoundingBox2]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '1 1 0'
top_right = '3 3 1'
[../]
[./ed0]
type = BlockDeleter
block_id = 1
depends_on = 'SubdomainBoundingBox1 SubdomainBoundingBox2'
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dt]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./top]
type = DirichletBC
variable = u
boundary = bottom
value = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 10
dt = 10
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/mesh_modifiers/block_deleter/BlockDeleterTest2.i
# 3D, concave block
[Mesh]
type = GeneratedMesh
dim = 3
nx = 4
ny = 4
nz = 1
xmin = 0
xmax = 4
ymin = 0
ymax = 4
zmin = 0
zmax = 1
[]
[MeshModifiers]
[./SubdomainBoundingBox]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '0 0 0'
top_right = '3 3 1'
[../]
[./ed0]
type = BlockDeleter
block_id = 1
depends_on = SubdomainBoundingBox
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dt]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./top]
type = DirichletBC
variable = u
boundary = bottom
value = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 10
dt = 10
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/mesh_modifiers/block_deleter/BlockDeleterTest9.i
# 2D, removal of a block which should also completely remove a sideset
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
xmin = 0
xmax = 4
ymin = 0
ymax = 4
[]
[MeshModifiers]
[./SubdomainBoundingBox1]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '0 0 0'
top_right = '3 4 1'
[../]
[./ed0]
type = BlockDeleter
block_id = 1
depends_on = 'SubdomainBoundingBox1'
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dt]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./top]
type = DirichletBC
variable = u
boundary = bottom
value = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 10
dt = 10
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/mesh_modifiers/block_deleter/BlockDeleterTest6.i
# 3D, non-concave
[Mesh]
type = GeneratedMesh
dim = 3
nx = 4
ny = 4
nz = 2
xmin = 0
xmax = 4
ymin = 0
ymax = 4
zmin = 0
zmax = 2
[]
[MeshModifiers]
[./SubdomainBoundingBox1]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '0 0 0'
top_right = '1 2 1'
[../]
[./SubdomainBoundingBox2]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '1 1 0'
top_right = '3 3 1'
[../]
[./SubdomainBoundingBox3]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '2 2 1'
top_right = '3 3 2'
[../]
[./ed0]
type = BlockDeleter
block_id = 1
depends_on = 'SubdomainBoundingBox1 SubdomainBoundingBox2 SubdomainBoundingBox3'
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dt]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./top]
type = DirichletBC
variable = u
boundary = bottom
value = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 10
dt = 10
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
test/tests/mesh_modifiers/block_deleter/BlockDeleterTest12.i
# 2D, concave block
[Mesh]
type = GeneratedMesh
dim = 2
nx = 8
ny = 8
xmin = 0
xmax = 4
ymin = 0
ymax = 4
[]
[MeshModifiers]
[./mark]
type = SubdomainBoundingBox
block_id = 1
bottom_left = '0.9 0.9 0'
top_right = '3.1 3.1 0'
[../]
[./delete]
type = BlockDeleter
block_id = 1
depends_on = mark
new_boundary = cut_surface
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dt]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./outer]
type = DirichletBC
variable = u
boundary = 'top bottom left right'
value = 1
[../]
[./inner]
type = DirichletBC
variable = u
boundary = cut_surface
value = 0
[../]
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Outputs]
exodus = true
[]