diff --git a/framework/src/meshgenerators/SymmetryTransformGenerator.C b/framework/src/meshgenerators/SymmetryTransformGenerator.C index 79926743a51e..94c96a61b723 100644 --- a/framework/src/meshgenerators/SymmetryTransformGenerator.C +++ b/framework/src/meshgenerators/SymmetryTransformGenerator.C @@ -59,9 +59,23 @@ SymmetryTransformGenerator::SymmetryTransformGenerator(const InputParameters & p const auto norm = _mirror_normal_vector.norm(); if (!MooseUtils::absoluteFuzzyEqual(norm, 1)) mooseInfo("Input normal plane vector was not normalized, normalization was performed"); - _mirror_normal_vector = - _mirror_normal_vector / norm; // _mirror_normal_vector[0] / norm, _mirror_normal_vector[1] / - // norm, _mirror_normal_vector[2] / norm; + _mirror_normal_vector = _mirror_normal_vector / norm; + + // Add stitch sub mesh generator if stitching is requested + if (_stitch_boundaries_pairs.size() > 0) + { + auto params = _app.getFactory().getValidParams("StitchedMeshGenerator"); + + // order of vector elements matters for this generator + // here order by: original mesh first, our custom mesh second + params.set>("inputs") = {getParam("input"), + name()}; + params.set>>("stitch_boundaries_pairs") = + _stitch_boundaries_pairs; + + // stitch the mirrored mesh and the original mesh + addMeshSubgenerator("StitchedMeshGenerator", name() + "_stitchedMeshGenerator", params); + } } std::unique_ptr @@ -95,21 +109,5 @@ SymmetryTransformGenerator::generate() // Fix flipped orientation from the symmetry MeshTools::Modification::orient_elements(*mesh); - if (_stitch_boundaries_pairs.size() > 0) - { - auto params = _app.getFactory().getValidParams("StitchedMeshGenerator"); - - // order of vector elements matters for this generator - // here order by: original mesh first, our custom mesh second - params.set>("inputs") = {getParam("input"), - name()}; - params.set>>("stitch_boundaries_pairs") = - _stitch_boundaries_pairs; - - // stitch the newly made high-dimensional mesh back to the original mesh - return dynamic_pointer_cast( - addMeshSubgenerator("StitchedMeshGenerator", name() + "_stitchedMeshGenerator", params)); - } - return mesh; } diff --git a/test/tests/meshgenerators/symmetry_transform_generator/simple.i b/test/tests/meshgenerators/symmetry_transform_generator/simple.i index 8d10afb2db24..63f3d91d422a 100644 --- a/test/tests/meshgenerators/symmetry_transform_generator/simple.i +++ b/test/tests/meshgenerators/symmetry_transform_generator/simple.i @@ -12,6 +12,7 @@ input = file mirror_point = "0 1 0" mirror_normal_vector = "0 1 0" + symmetry_stitch_sideset = "top top" [] [stitch] type = StitchedMeshGenerator