68 std::unique_ptr<MeshBase> initial_mesh = std::move(
_input);
69 if (!initial_mesh->is_replicated())
70 mooseError(
"This MeshGenerator is not implemented for distributed meshes");
71 std::unique_ptr<ReplicatedMesh>
mesh = dynamic_pointer_cast<ReplicatedMesh>(initial_mesh);
74 std::set<subdomain_id_type> sub_ids;
75 mesh->subdomain_ids(sub_ids);
77 for (
auto id : sub_ids)
80 bbox.union_with(sub_bbox);
83 _x_width = bbox.max()(0) - bbox.min()(0);
84 _y_width = bbox.max()(1) - bbox.min()(1);
85 _z_width = bbox.max()(2) - bbox.min()(2);
87 boundary_id_type left =
88 mesh->get_boundary_info().get_id_by_name(getParam<BoundaryName>(
"left_boundary"));
89 boundary_id_type right =
90 mesh->get_boundary_info().get_id_by_name(getParam<BoundaryName>(
"right_boundary"));
91 boundary_id_type top =
92 mesh->get_boundary_info().get_id_by_name(getParam<BoundaryName>(
"top_boundary"));
93 boundary_id_type bottom =
94 mesh->get_boundary_info().get_id_by_name(getParam<BoundaryName>(
"bottom_boundary"));
95 boundary_id_type front =
96 mesh->get_boundary_info().get_id_by_name(getParam<BoundaryName>(
"front_boundary"));
97 boundary_id_type back =
98 mesh->get_boundary_info().get_id_by_name(getParam<BoundaryName>(
"back_boundary"));
101 std::unique_ptr<MeshBase> clone =
mesh->clone();
104 for (
unsigned int i = 1; i < getParam<unsigned int>(
"x_tiles"); ++i)
106 MeshTools::Modification::translate(*clone,
_x_width, 0, 0);
107 mesh->stitch_meshes(
dynamic_cast<ReplicatedMesh &
>(*clone),
116 std::unique_ptr<MeshBase> clone =
mesh->clone();
119 for (
unsigned int i = 1; i < getParam<unsigned int>(
"y_tiles"); ++i)
121 MeshTools::Modification::translate(*clone, 0,
_y_width, 0);
122 mesh->stitch_meshes(
dynamic_cast<ReplicatedMesh &
>(*clone),
131 std::unique_ptr<MeshBase> clone =
mesh->clone();
134 for (
unsigned int i = 1; i < getParam<unsigned int>(
"z_tiles"); ++i)
136 MeshTools::Modification::translate(*clone, 0, 0,
_z_width);
137 mesh->stitch_meshes(
dynamic_cast<ReplicatedMesh &
>(*clone),
145 return dynamic_pointer_cast<MeshBase>(
mesh);