20 params.
addClassDescription(
"Takes a 1D or 2D mesh and extrudes a selected sideset along the " 23 params.
addRequiredParam<MeshGeneratorName>(
"input",
"The mesh we want to modify");
25 "The direction and length of the extrusion as a vector");
26 params.
addParam<
unsigned int>(
"num_layers", 1,
"The number of layers in the extruded mesh");
27 params.
addRequiredParam<BoundaryName>(
"sideset",
"The sideset (boundary) that will be extruded");
34 _original_input(getParam<MeshGeneratorName>(
"input")),
36 _num_layers(getParam<unsigned
int>(
"num_layers")),
37 _sideset_name(getParam<BoundaryName>(
"sideset"))
44 const SubdomainName extruded_block_name =
"extruded_block_" +
name();
45 const BoundaryName sideset_to_stitch =
"to_be_stitched_" +
name();
52 params.set<SubdomainName>(
"new_block_name") = extruded_block_name;
53 params.set<std::vector<BoundaryName>>(
"sidesets") = {
_sideset_name};
62 params.
set<MeshGeneratorName>(
"input") =
name() +
"_lowerDgeneration";
63 params.set<std::vector<SubdomainName>>(
"target_blocks") = {extruded_block_name};
72 params.
set<MeshGeneratorName>(
"input") =
name() +
"_blockToMesh";
74 params.set<
unsigned int>(
"num_layers") =
_num_layers;
75 params.set<std::vector<BoundaryName>>(
"bottom_sideset") = {sideset_to_stitch};
88 params.set<std::vector<std::vector<std::string>>>(
"stitch_boundaries_pairs") = {
97 std::unique_ptr<MeshBase>
std::unique_ptr< MeshBase > & getMeshByName(const MeshGeneratorName &mesh_generator_name)
Like getMesh(), but takes the name of another MeshGenerator directly.
const RealVectorValue _extrusion_vector
Extrusion vector containing both the direction and the magnitude of the sideset extrusion.
InputParameters getValidParams(const std::string &name) const
Get valid parameters for the object.
const BoundaryName _sideset_name
Name of the sideset to extrude.
virtual const std::string & name() const
Get the name of the class.
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
std::unique_ptr< MeshBase > * _build_mesh
Mesh generated from each sub-generator.
void declareMeshForSub(const std::string ¶m_name)
Declares that a MeshGenerator referenced in the InputParameters is to be used as a dependency of a su...
void addMeshSubgenerator(const std::string &type, const std::string &name, Ts... extra_input_parameters)
Construct a "subgenerator", a different MeshGenerator subclass that will be added to the same MooseAp...
Extrude a sideset from a mesh in a given direction.
const MeshGeneratorName _original_input
Name of the base mesh containing the sideset to extruded.
MooseApp & _app
The MOOSE application this is associated with.
static InputParameters validParams()
SideSetExtruderGenerator(const InputParameters ¶meters)
registerMooseObject("MooseApp", SideSetExtruderGenerator)
static InputParameters validParams()
std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
MeshGenerators are objects that can modify or add to an existing mesh.
void ErrorVector unsigned int
const unsigned int _num_layers
Number of element layers in the direction of the extrusion when extruding.