Hi Johannes,
regarding (i), the doc-string of the Mesh class states
| Refine(...)
| Refine(self: ngsolve.comp.Mesh, mark_surface_elements: bool = False, onlyonce: bool = False) -> None
|
| Local mesh refinement based on marked elements, uses element-bisection algorithm
regarding (iii) In the Navier-Stokes workshop materials from the third NGSolve User Meeting, there is a script wich implements barycentric mesh refinement in python. This may be a good starting point to implement your own mesh refinement routine.
Best wishes
Henry