13 #include "libmesh/unstructured_mesh.h" 21 params.
addRequiredParam<MeshGeneratorName>(
"input",
"The mesh we want to modify");
23 "stitch_boundaries_pair",
24 "Pair of boundaries to be stitched together.");
34 paramError(
"stitch_boundaries_pair",
"Can only stitch two boundaries together.");
37 std::unique_ptr<MeshBase>
40 std::unique_ptr<UnstructuredMesh>
mesh =
43 const bool use_binary_search = (
_algorithm ==
"BINARY");
46 mesh->get_boundary_info().build_node_list_from_side_list();
53 mesh->stitch_surfaces(first_bid,
57 getParam<bool>(
"verbose_stitching"),
59 getParam<Real>(
"stitching_hmin_tolerance_factor"));
61 mesh->set_isnt_prepared();
Allows a pair of boundaries to be "stitched" together.
boundary_id_type getBoundaryIdToStitch(const MeshBase &mesh, const std::string &input_mg_name, const BoundaryName &bname) const
Get the boundary id from the name of a boundary to stitch.
void paramError(const std::string ¶m, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
std::unique_ptr< T_DEST, T_DELETER > dynamic_pointer_cast(std::unique_ptr< T_SRC, T_DELETER > &src)
These are reworked from https://stackoverflow.com/a/11003103.
const bool _clear_stitched_boundary_ids
Whether or not to clear (remove) the stitched boundary IDs.
static InputParameters validParams()
const std::string & name() const
Get the name of the class.
static InputParameters validParams()
A base class for mesh generators that stitch boundaries together.
StitchBoundaryMeshGenerator(const InputParameters ¶meters)
const MooseEnum _algorithm
Type of algorithm used to find matching nodes (binary or exhaustive)
std::unique_ptr< MeshBase > & _input
the input mesh
std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
registerMooseObject("MooseApp", StitchBoundaryMeshGenerator)
const std::vector< std::vector< std::string > > _stitch_boundaries_pairs
A transformed version of _stitch_boundaries into a more logical "pairwise" structure.