kryst
Krylov subspace and preconditioned iterative solvers for dense and sparse linear systems, with shared and distributed memory parallelism.
Features
- GMRES, CG, BiCGStab, MINRES, and other Krylov solvers
- Preconditioners: Jacobi, ILU, Chebyshev, AMG, Additive Schwarz, and more
- Dense and sparse matrix support
- Shared-memory parallelism via Rayon
- Distributed-memory parallelism via MPI (optional)
- Block and pipelined communication-avoiding variants
- Extensible trait-based design for custom matrices and preconditioners
Usage
Add to your Cargo.toml:
[]
= "0.5"
Enable parallel or MPI features as needed:
[]
= ["rayon"]
= ["dep:mpi"]
Example
use GmresSolver;
// ... set up your matrix A and vectors b, x ...
let mut solver = new;
let stats = solver.solve.unwrap;
println!;
Documentation
License
MIT
Contributing
Contributions, bug reports, and feature requests are welcome! Open an issue or pull request on GitHub.