-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Summary
Add iterative solver options (BiCGSTAB, GMRES, IDR(s)) to the sparse solver module as alternatives to direct methods for solving Ax=b systems.
Background
Currently the sparse solver only supports direct methods (UMFPACK/SuperLU). Iterative methods can be more efficient for certain problem types and sizes.
Dependencies
- Depends on Refactor sparse solver modules for better modularity and testability #44 (sparse solver refactoring) for clean modular structure
- Depends on Add testing and code coverage infrastructure #50 (testing infrastructure) for proper test coverage
Tasks
- Add BiCGSTAB implementation for sparse linear systems
- Add GMRES implementation for sparse linear systems
- Add IDR(s) implementation for sparse linear systems
- Add ILU(0) and ILU(k) preconditioning
- Create solver selection interface
- Add convergence monitoring
- Comprehensive testing of each method
- Performance benchmarking vs direct methods
Implementation Strategy
- Build on top of Refactor sparse solver modules for better modularity and testability #44 (modular sparse solver structure)
- Add iterative methods one at a time with full test coverage
- Each method should be drop-in replacement for direct solver
- Use same sparse matrix format and interface
- Add solver selection parameter
Benefits
- More efficient for large sparse systems
- Better memory scaling
- User can choose best method for their problem
- Foundation for using these methods in ripple solver (Add iterative solver options (BiCGSTAB, GMRES, IDR(s)) to ripple solver #47, Replace nested sparse solver calls in ripple solver with direct iterative methods #49)
Testing Requirements
- Unit tests for each iterative method
- Convergence tests with different matrix types
- Accuracy comparison with direct methods
- Performance benchmarks
- Code coverage > 90%
Related Work
- Work can be extracted from bicgstab branch (iterative solver implementations)
- Will be used by Add iterative solver options (BiCGSTAB, GMRES, IDR(s)) to ripple solver #47 and Replace nested sparse solver calls in ripple solver with direct iterative methods #49 for ripple solver
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels