Releases: JuliaSmoothOptimizers/Krylov.jl
Releases · JuliaSmoothOptimizers/Krylov.jl
v0.10.6
Krylov v0.10.6
Merged pull requests:
- Add an implementation of USYMLQR (#886) (@amontoison)
- [documentation] Workspaces and solvers are now together (#1061) (@amontoison)
- [documentation] Add a reference for KrylovConstructor in the Krylov workspaces (#1062) (@amontoison)
- Improve interface.jl (#1063) (@amontoison)
- Add a function elapsed_allocation_time (#1064) (@amontoison)
- Fix the support of complex numbers in USYMLQR (#1065) (@amontoison)
- [USYMLQR] Remove the option transfer_to_usymcg (#1066) (@amontoison)
- [USYMLQR] Remove support for preconditioners (#1067) (@amontoison)
- Update a badge in README.md (#1069) (@amontoison)
- [documentation] Fix the docstring of USYMLQR (#1072) (@amontoison)
- Force inference of a type argument (#1074) (@timholy)
- Refactor allocate_if function to use type parameters (#1075) (@amontoison)
- Release 0.10.6 (#1077) (@amontoison)
Closed issues:
v0.10.5
Krylov v0.10.5
Merged pull requests:
- Reset stats when reusing Krylov solver workspaces (#1058) (@farhadrclass)
v0.10.4
Krylov v0.10.4
Merged pull requests:
- Allow vm and vn to be of different types (#1038) (@timholy)
- Improve inference for Double64 (#1045) (@timholy)
- Upgrade LNLQ (#1051) (@amontoison)
- fix typos (#1053) (@spaette)
- Update the workspaces to handle more storage types (#1056) (@amontoison)
Closed issues:
v0.10.3
Krylov v0.10.3
Merged pull requests:
- [CI] Test Krylov.jl on GPU for Julia 1.12 (#1031) (@amontoison)
- [CI] Test Krylov.jl on Mac x86_64 (#1032) (@amontoison)
- Use kmul! and kldiv! for Krylov methods and processes (#1035) (@amontoison)
- Fix warm-start of TriCG and TriMR (#1040) (@timholy)
Closed issues:
- Add kmul! and kldiv! (#1030)
v0.10.2
Krylov v0.10.2
Merged pull requests:
- Reuse the buffer for LAPACK routines on CPU (#940) (@amontoison)
- implementation Line Search with Negative Curvature Detection with direction for CR (#985) (@farhadrclass)
- implementation Line Search with Negative Curvature Detection with direction for CG (#1008) (@farhadrclass)
- implementation Line Search with Negative Curvature Detection with direction for MINRES (#1011) (@farhadrclass)
- Update the unit tests on Mac (#1016) (@amontoison)
- Update the link for the reference of bicgstab(l) (#1017) (@amontoison)
- [documentation] Update the example for the Poisson equation with halo regions (#1018) (@amontoison)
- [documentation] Additional modification in custom_workspaces.md (#1019) (@amontoison)
- Update make.jl (#1020) (@amontoison)
- Remove all allocations in the in-place version of block-MINRES (#1022) (@amontoison)
- Update ksizeof for workspaces of block-Krylov solvers (#1023) (@amontoison)
- Minres qlp npc (#1026) (@farhadrclass)
Closed issues:
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
Solveris nowWorkspace) - Unify the API for the workspaces (
memoryandwindowsare always kwargs for the constructors) - Ensure that
Sis 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_countandAtprod_count)
New features
- Add
kdiv!,kscalcopy!andkdivcopy!for the support of custom workspaces - Add a generic interface (
krylov_workspace,krylov_solveandkrylov_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: