14 #include "libmesh/mesh_generation.h" 26 std::unique_ptr<MeshBase>
generate()
override;
46 std::vector<unsigned int> layers,
47 const std::vector<unsigned int> & new_ids,
48 unsigned int num_layers);
55 std::map<unsigned int, std::map<SubdomainID, unsigned int>>
_layer_data;
62 void changeID(MeshBase & mesh,
const std::vector<BoundaryName> & names,
BoundaryID old_id);
Extrude a 1D or 2D mesh to a 2D or 3D mesh respectively.
QueryElemSubdomainID(const std::vector< SubdomainID > &existing_subdomains, std::vector< unsigned int > layers, const std::vector< unsigned int > &new_ids, unsigned int num_layers)
std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
virtual subdomain_id_type get_subdomain_for_layer(const Elem *old_elem, unsigned int layer)
The override from the base class for obtaining a new id based on the old (original) element and the s...
This class is used during the mesh construction (extrusion) to set element ids as they are created...
static InputParameters validParams()
boundary_id_type BoundaryID
void changeID(MeshBase &mesh, const std::vector< BoundaryName > &names, BoundaryID old_id)
std::vector< unsigned int > _layers
std::unique_ptr< MeshBase > & _input
Mesh that comes from another generator.
std::map< unsigned int, std::map< SubdomainID, unsigned int > > _layer_data
Data structure for holding the old -> new id mapping based on the layer number.
const RealVectorValue _extrusion_vector
std::vector< SubdomainID > _existing_subdomains
const InputParameters & parameters() const
Get the parameters of the object.
MeshExtruderGenerator(const InputParameters ¶meters)
MeshGenerators are objects that can modify or add to an existing mesh.
std::vector< unsigned int > _new_ids
unsigned int _num_layers
The total number of layers in the extrusion.