Releases: JuliaSmoothOptimizers/Krylov.jl
Releases Β· JuliaSmoothOptimizers/Krylov.jl
v0.10.1
Krylov v0.10.1
Merged pull requests:
- [documentation] Specify how to use krylov_workspace for each workspace (#1002) (@amontoison)
- [documentation] Tutorial on distributed Krylov solvers using MPI.jl (#1003) (@amontoison)
- [documentation] Update the routines for the support of MPI (#1004) (@amontoison)
- Add new methods for krylov_workspace and krylov_solve (#1005) (@amontoison)
v0.10.0
Krylov v0.10.0
Breaking changes
solve!
is replaced bykrylov_solve!
- Update the API for workspaces (the suffix
Solver
is nowWorkspace
) - Unify the API for the workspaces (
memory
andwindows
are always kwargs for the constructors) - Ensure that
S
is a concrete type in the workspaces (KrylovWorkspace{T, FC, S}
) - Update the API for workspace accessors (the functions are not exported anymore)
- Rename some workspace accessors (
iteration_count
,solution_count
,Aprod_count
andAtprod_count
)
New features
- Add
kdiv!
,kscalcopy!
andkdivcopy!
for the support of custom workspaces - Add a generic interface (
krylov_workspace
,krylov_solve
andkrylov_solve!
) - Add documentation on the generic API (see here)
- Add documentation on the workspace accessors (see here)
- Update the docstrings to add more cross-references
- Add a function
Krylov.elapsed_time
Other changes
- Krylov.jl now requires Julia 1.10
- Update the reference of MinAres and CAr
- Return a nice error if we detect that the preconditioner is not SPD in CG
Merged pull requests:
- Implement Line Search with Negative Curvature Detection for MINRES Based on Liu et al. (2022) (#969) (@farhadrclass)
- Update the reference of MinAres (#971) (@amontoison)
- Update the reference of MinAres and CAr (#972) (@amontoison)
- Don't export Krylov.solve! (#973) (@amontoison)
- Require Julia 1.10 (#974) (@amontoison)
- Update the API for workspaces (#975) (@amontoison)
- S should be a concrete type in the workspaces (#977) (@amontoison)
- Update Breakage.yml for PRs from a fork (#978) (@amontoison)
- Add kdiv! -- kscalcopy! -- kdivcopy! (#980) (@amontoison)
- Add a generic interface for Krylov.jl (#983) (@amontoison)
- Rename the files krylov_solve.jl and test_solvers.jl (#989) (@amontoison)
- Use the suffix Workspace instead of Solver (#990) (@amontoison)
- Return a nice error if we detect the preconditioner is not SPD in CG (#991) (@amontoison)
- Add references to the generic interface in the docstrings (#992) (@amontoison)
- krylov_solvers -> krylov_workspaces (#993) (@amontoison)
- [documentation] Add more cross-references to the in-place methods (#994) (@amontoison)
- Remove aliases (#995) (@amontoison)
- Add a function krylov_elapsed_time (#996) (@amontoison)
- Add a new file krylov_show.jl (#997) (@amontoison)
- Update the API for workspace accessors (#998) (@amontoison)
- Polish the API for workspace accessors (#1000) (@amontoison)
Closed issues:
- Improve the documentation of functions Aprod and Atprod (#488)
- GMRES Fails Silently From Stagnation (#729)
- StaticArrays support (#766)
- Remove broadcast in Krylov methods (#930)
- Unexport Krylov.solve! with the next major release (#934)
- Add a function to get the timer directly from a KrylovWorkspace (#936)
- nshifts and S should be the last argument in the Krylov solvers (#946)
- Require Julia 1.10 for the next major release (#964)
- Bug Report: CR and CG Solvers Fail with Float16 Precision (#968)
- Update breakage.yml for PRs from a fork (#976)
- Add a generic constructor for KrylovSolver and BlockKrylovSolver (#979)
- Rename the files krylov_solve.jl and test_solvers.jl (#984)
- Rename the suffix of the workspaces *Solver -> *Workspace (#987)
v0.9.10
Krylov v0.9.10
Merged pull requests:
- Use my new implementation of coytrito! in GPUArrays.jl (#950) (@amontoison)
- Use similar for dynamic allocations (#952) (@amontoison)
- [CI] Test Krylov.jl on Linux ARM (#953) (@amontoison)
- [documentation] Add an example with BlockArrays.jl (#954) (@amontoison)
- Add an option reorthogonalization in hermitian_lanczos (#957) (@amontoison)
- CR: Update iterate on first iteration for negative curvature with line search and when zero curvature is detected (#958) (@farhadrclass)
- Add more tests for the option warm-start (#961) (@amontoison)
Closed issues:
- Compatibility with BlockArrays (#605)
- [Benchmarks] Krylov.jl vs PETSc (#693)
- ComponentArrays support (#769)
- parallel gmres (#847)
- Add stationary methods (#904)
- scalar indexing error when using block_gmres on GPU (#913)
- How to solve Ax=b when A is a Sparse Array ? (#925)
- Add more advanced constructors for KrylovSolver (#933)
- Add a opnorm function (#942)
- [documentation] Add an example of preconditioned saddle point system with BlockArrays (#949)
- Use similar instead of S(undef, n) for dynamic allocations (#951)
v0.9.9
Krylov v0.9.9
Merged pull requests:
- Add an implementation of BLOCK-MINRES (#884) (@amontoison)
- Matrix-free example example with a PDE (#911) (@amontoison)
- Update nvidia.jl (#916) (@amontoison)
- [documentation] Improve the docstring of SimpleStats (#917) (@amontoison)
- Improve the docstrings of Krylov.jl (#918) (@amontoison)
- [documentation] Add comments in krylov_solve.jl (#919) (@amontoison)
- [documentation] Add a link for the paper of BiCGstab(β) (#920) (@amontoison)
- Update krylov_solve.jl (#921) (@amontoison)
- Fix a typo -- reflexion -> reflection (#922) (@amontoison)
- Use the infix operator to compute the timer (#923) (@amontoison)
- Update with JSOBestieTemplate for Krylov (#924) (@tmigot)
- Use rmul! instead of broadcast for kscal! (#926) (@amontoison)
- [documentation] Add a page about custom workspaces (#927) (@amontoison)
- Fix to_boundary for complex numbers (#928) (@amontoison)
- Remove broadcast in MINRES-QLP (#929) (@amontoison)
- Update trilqr.jl (#931) (@amontoison)
- Update with JSOBestieTemplate for Krylov (#938) (@tmigot)
- Upgrade TriCG, TriMR and GPMR (#943) (@amontoison)
- Upgrade the Krylov processes and detect breakdowns (#944) (@amontoison)
- Add a new constructor for all Krylov solvers (#947) (@amontoison)
Closed issues:
v0.9.8
Krylov v0.9.8
Merged pull requests:
- Remove old macros (#907) (@amontoison)
- Add a function knorm_elliptic (#909) (@amontoison)
- Improve the matrix-free example with FFT (#912) (@amontoison)
- Fix block_gmres on GPUs (#914) (@amontoison)
Closed issues:
v0.9.7
Krylov v0.9.7
Merged pull requests:
- Add
cgls-shift
algorithm (#853) (@tmigot) - Support preconditioners in BiLQ and QMR (#862) (@amontoison)
- Add tests with LinearOperators.jl (#863) (@amontoison)
- Don't use the macro @. (#864) (@amontoison)
- Fix copy_triangle for Julia 1.11 (#866) (@amontoison)
- Fix preconditioning in
cg
when optionalradius
argument is positive (#868) (@mpf) - Fix download count badge (#869) (@pricklypointer)
- Use GHA to test on Apple Silicon (#871) (@amontoison)
- Update test_allocations.jl (#872) (@amontoison)
- Update Aqua.yml (#873) (@amontoison)
- Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows (#874) (@dependabot[bot])
- Validate CITATION.cff (#875) (@tmigot)
- [Buildkite] Update pipeline.yml (#877) (@amontoison)
- Test block-GMRES on GPUs (#878) (@amontoison)
- Update the documentation (#879) (@amontoison)
- [documentation] Add an example with RandomizedPreconditioners.jl (#880) (@amontoison)
- [documentation] Update preconditioners.md (#881) (@amontoison)
- [documentation] Add a matrix-free example with FFTW.jl (#883) (@amontoison)
- Add a reference for USYMQR (#885) (@amontoison)
- Use metaprogramming to generate out-of-place methods (#887) (@amontoison)
- [documentation] Replace IncompleteLU.jl by KrylovPreconditioners.jl (#889) (@amontoison)
- Improve type inference of extract_parameters (#890) (@amontoison)
- Define cg_lanczos_shift with metaprogramming (#892) (@amontoison)
- Use metaprogramming to generate more out-of-place methods (#893) (@amontoison)
- Generate all out-of-place methods in krylov_solve.jl (#894) (@amontoison)
- [documentation] Improve the matrix-free example with FFT (#895) (@amontoison)
- Add a macro kfill! (#897) (@amontoison)
- Swap the arguments in the macro kcopy! (#898) (@amontoison)
- Use the macro kcopy! instead of broadcast (#899) (@amontoison)
- Improve the docstrings of block-Krylov processes (#900) (@amontoison)
- Specify that memory is an optional argument for some KrylovSolvers (#901) (@amontoison)
- [documentation] Improve the structure of matrix_free.md (#903) (@amontoison)
Closed issues:
- Use 5-argument mul! (#353)
- Add documentation about memory parameter (#521)
- convert function for solvers (#585)
- Use
Real
as FC instead ofAbstractFloat
? (#646) - ReshapedArrays support (#770)
- Download badge is broken (#851)
block_gmres
fails withLinearOperator
(#854)- Add tests with LinearOperators.jl (#861)
- Possible support for Dual types for Automatic Differentiation (#870)
- Use metaprogramming to generate all out-of-place methods (#888)
v0.9.6
Krylov v0.9.6
Merged pull requests:
- Add comments about using block-GMRES on GPUs (#844) (@amontoison)
- [documentation] KrylovOperator -- optimized sparse products on NVIDIA and AMD GPUs (#848) (@amontoison)
- Add copyto! for KrylovStats (#849) (@amontoison)
- Update CITATION.cff (#852) (@tmigot)
- Update ci.yml (#857) (@amontoison)
- Support ComponentArrays.jl in Krylov.jl (#859) (@amontoison)
Closed issues:
v0.9.5
Krylov v0.9.5
Merged pull requests:
- [documentation] AMDGPU.jl supports rocSPARSE (#781) (@amontoison)
- [MINARES] Fix warm-start (#794) (@amontoison)
- Fix a typo in test/gpu/amd.jl (#796) (@amontoison)
- [documentation] Update the section about AMD GPUs (#798) (@amontoison)
- Improve the function hermitian_lanczos (#799) (@amontoison)
- Block-Krylov processes (#800) (@amontoison)
- Add an option reorthogonalization for two processes (#803) (@amontoison)
- Update the pseudocode of the Krylov processes (#805) (@amontoison)
- [documentation] Explain the transpose-free variant of the non-Hermitian Lanczos process (#807) (@amontoison)
- Update paper.md (#809) (@danielskatz)
- Fix the issue with the adjoint in JOSS (#810) (@amontoison)
- [documentation] Update Documenter.jl (#811) (@amontoison)
- Update Krylov processes to return more arguments (#813) (@amontoison)
- [JOSS] Update CITATION.cff and DOI badge (#815) (@amontoison)
- [JOSS] Add a BibTeX entry (#817) (@amontoison)
- Update CITATION.cff (#818) (@amontoison)
- Add a DOI link for CAR and MINARES (#820) (@amontoison)
- Test view of AMD GPUs (#823) (@amontoison)
- Update pipeline.yml (#829) (@amontoison)
- [documentation] Add a reference for CRAIG (#834) (@amontoison)
- Add compat entries for Test and Random (#835) (@amontoison)
- Add an implementation of BLOCK-GMRES (#840) (@amontoison)
- Release 0.9.5 (#841) (@amontoison)
Closed issues:
- [documentation] Update GPU support (#627)
- Solve matrix-matrix problem (#759)
- Add an option reorthogonalization for the processes (#801)
- Question for GPU computation: lots of time on vector products (#822)
- Automatically promote
atol
andrtol
toeltype(b)
(#828) - Move Block-GMRES in Krylov.jl (#831)
- Add a reference for CRAIG (#833)
v0.9.4
Krylov v0.9.4
Closed issues:
- GPU Example is broken (#754)
- GMRES Convergence Without Meeting atol/rtol (#774)
- Add an example and a test for the CuSparseMatrixCOO format (#775)
Merged pull requests:
- [documentation] Update tips.md (#777) (@amontoison)
- [documentation] Improve preconditioners.md (#778) (@amontoison)
- [documentation] Add an example with CuSparseMatrixCOO (#779) (@amontoison)
- Update paper.md (#785) (@amontoison)
- An implementation of CAR (#786) (@amontoison)
- An implementation of MINARES (#787) (@amontoison)
- Remove .zenodo.json (#788) (@amontoison)
- Add an example for MINARES (#789) (@amontoison)
- Release 0.9.4 (#790) (@amontoison)
- CITATION.bib -> CITATION.cff (#791) (@amontoison)
v0.9.3
Krylov v0.9.3
Closed issues:
- GPU scalar indexing when using LsmrSolver (ERROR: LoadError: Scalar indexing is disallowed.) (#764)
Merged pull requests:
- [JOSS] Review comments of LeilaGhaffari (#765) (@amontoison)
- StaticArrays support (#768) (@amontoison)
- Release 0.9.3 (#772) (@amontoison)