2D Multigrid Cycle Analyzer

Description
This project is a from-scratch Julia testbed for studying geometric multigrid in two dimensions through the lens of numerical behavior rather than production solver packaging. It solves a finite-difference Poisson problem on the unit square and exposes direct control over cycle topology, smoother selection, and relaxation parameters so that convergence mechanisms and failure modes can be examined explicitly.
The code supports multilevel cycle experimentation, classical smoothers, and an interactive GLMakie frontend for visualization and exploration. Beyond standard residual monitoring, the project emphasizes spectral interpretation through FFT-based diagnostics, making it a controlled environment for understanding how multigrid components act on different frequency modes and why some configurations converge more effectively than others.
- Implemented a 2D geometric multigrid framework in Julia with uniform-grid coarsening for finite-difference Poisson problems.
- Built support for F-cycles and W-cycles, with Weighted Jacobi, Gauss-Seidel, Red-Black Gauss-Seidel, and SOR smoothers.
- Added FFT-based analysis tools to study frequency-domain damping and spectral behavior across cycle configurations.
- Created a GLMakie frontend for solution visualization, residual-history inspection, cross-sections, and rapid parameter sweeps.
- Designed the code as a numerical laboratory focused on transparency, algorithmic control, and visibility into convergence and failure modes.
Highlights and Learning Experiences
Cycle and smoother exploration
Interactive exploration of F-cycle and W-cycle behavior under different smoother choices, relaxation parameters, and grid hierarchies.
Residual and spectral diagnostics
Residual-history tracking, cross-section plots, and FFT-based views used to study convergence behavior and frequency damping.
GLMakie analysis frontend
A Julia-native GUI for parameter changes, solution inspection, and fast numerical experimentation.