-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Summary
Refactor ripple solver to use sparse iterative methods directly for the full problem using a matrix-free approach, eliminating nested solver calls.
Background
Currently the ripple solver uses Arnoldi-Richardson iterations where each iteration requires solving a sparse linear system. We can reformulate to solve the entire problem with a single iterative solver using matrix-free methods.
Dependencies
- Depends on Add iterative solver methods to sparse solver module #48 (sparse iterative solvers) for base implementations
- Depends on Refactor ripple solver for testability and modularity #45 (ripple solver refactoring) for clean structure
- Depends on Add testing and code coverage infrastructure #50 (testing infrastructure)
Tasks
- Analyze current Arnoldi formulation to understand the full operator
- Implement matrix-free operator for the complete ripple problem
- Adapt BiCGSTAB for matrix-free operation
- Adapt GMRES for matrix-free operation
- Adapt IDR(s) for matrix-free operation
- Develop physics-aware preconditioners
- Compare convergence and performance with nested approach
- Ensure physics results remain identical
Implementation Strategy
- Build on iterative solvers from Add iterative solver methods to sparse solver module #48
- Instead of assembling sparse matrices, implement matrix-vector products directly
- The operator applies the full physics without intermediate linear solves
- Use Krylov methods with this matrix-free operator
- May need specialized preconditioners for convergence
Matrix-Free Approach
- No explicit matrix assembly
- Operator computes action of full ripple problem
- Leverages physics structure for efficiency
- Reduces memory requirements significantly
Expected Benefits
- Eliminate nested solver inefficiency
- Lower memory usage (no matrix storage)
- Better scalability
- More direct convergence control
- Potential for physics-based optimizations
Challenges
- Matrix-free preconditioners are more complex
- Need careful operator implementation
- Convergence may require problem-specific tuning
Testing Requirements
- Verify identical physics results
- Compare performance with current method
- Test convergence for various problem sizes
- Memory usage comparison
- Validate with golden records
Related Work
- Extends iterative solvers from Add iterative solver methods to sparse solver module #48 to matrix-free operation
- Alternative to Add iterative solver options (BiCGSTAB, GMRES, IDR(s)) to ripple solver #47 (which keeps Arnoldi structure)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels