How scicompmod/gmgpolar works
GMGPolar is a geometric multigrid solver for polar and curvilinear-domain problems. The principal workflow is to configure a grid and problem, select geometry, coefficients, source and boundary data, then solve to convergence using multigrid or PCG. The graph also shows grid transfer, level operations and linear algebra as internal layers, plus documented cycle, extrapolation and FMG capabilities. Several subsystem links rely on the README and tree because their implementation was not sampled; uncertain call paths are omitted.
Main entry points: solver.h GMGPolar solver · level.h Grid levels · config_parser.cpp Config parser · MultigridMethods Multigrid cycles
Components 20
Configuration
- Config parser
src/ConfigParser/config_parser.cpp - Polar grid
src/PolarGrid/polargrid.cpp
Problem definition
- Domain geometry
src/InputFunctions/DomainGeometry - Profile coefficients
src/InputFunctions/DensityProfileCoefficients - Source terms
src/InputFunctions/SourceTerms - Boundary conditions
src/InputFunctions/BoundaryConditions - Exact solutions
src/InputFunctions/ExactSolution
Solver runtime
- Solver interface
include/GMGPolar/igmgpolar.h - GMGPolar solver
include/GMGPolar/solver.h - Multigrid cycles
include/GMGPolar/MultigridMethods - Grid levels
include/Level/level.h - Solution and output
include/GMGPolar/solver.h
Numerical components
- Grid transfer
src/Interpolation - Residual
include/Residual/residual.h - Smoothers
include/Smoother/smoother.h - Extrapolated smoothing
include/ExtrapolatedSmoother/extrapolatedSmoother.h - Coarse solver
include/DirectSolver/directSolver.h - Linear algebra
include/LinearAlgebra
Other components
- User
- MUMPS
Connections 26
- User → Config parser: sets parameters
- Config parser → Polar grid: configures grid
- Config parser → Domain geometry: selects geometry
- Config parser → Profile coefficients: selects coefficients
- Config parser → Solver interface: configures solver
- Config parser → GMGPolar solver: starts solve
- GMGPolar solver → Domain geometry: uses geometry
- GMGPolar solver → Profile coefficients: uses coefficients
- GMGPolar solver → Source terms: uses source
- GMGPolar solver → Boundary conditions: uses boundary data
- GMGPolar solver → Exact solutions: checks error
- GMGPolar solver → Multigrid cycles: runs cycles
- GMGPolar solver → Grid levels: operates on levels
- Multigrid cycles → Grid levels: updates levels
- Grid levels → Polar grid: uses grid
- Grid levels → Residual: computes residual
- Grid levels → Smoothers: smooths level
- Grid levels → Extrapolated smoothing: smooths extrapolated
- Grid levels → Coarse solver: solves coarse system
- Multigrid cycles → Grid transfer: transfers corrections
- GMGPolar solver → Grid transfer: interpolates FMG
- Residual → Linear algebra: uses vectors
- Coarse solver → Linear algebra: uses matrices
- Coarse solver → MUMPS: factorizes with MUMPS
- GMGPolar solver → Solution and output: produces solution
- Solution and output → User: returns solution