Benhour,
Have a look at the implementation of GridGenerator::half_hyper_ball [1].
You probably just want to use the first 4 vertices and then
p,
p+Point<2>(0,-1) *(radius/std::sqrt(2.0)*a),
p+Point<2>(0,-1) *radius,
additionally.
Can you specify in formulas what symmetry boundary conditions mean for you?
Best,
Daniel