Flexible Multigrid Solver Implementation
- Add FlexibleMultigridSolver class that allows arbitrary cycling i.e. takes in a list of inputs for cycle structure, smoother types, relaxation weights, etc.
- Add SolverType enumeration for existing solvers/smoothers.
- Add template argument in FullMultigridSolver class, to choose between a GeometricMultigridSolver or FlexibleMultigridSolver.
- Add an app '2024-parthasarathy-mgoptimisation' to demonstrate these flexible cycles.