Krylov.jl
Krylov.jl: A Julia basket of hand-picked Krylov methods - Published in JOSS (2023)
Science Score: 100.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 5 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
✓Committers with academic emails
1 of 25 committers (4.0%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Keywords from Contributors
Repository
A Julia Basket of Hand-Picked Krylov Methods
Basic Info
- Host: GitHub
- Owner: JuliaSmoothOptimizers
- License: other
- Language: Julia
- Default Branch: main
- Size: 23.6 MB
Statistics
- Stars: 424
- Watchers: 8
- Forks: 63
- Open Issues: 59
- Releases: 46
Topics
Metadata Files
README.md
Krylov.jl: A Julia basket of hand-picked Krylov methods
| Documentation | CI | Coverage | DOI | Downloads |
|:-----------------:|:------:|:------------:|:-------:|:-------------:|
|
|
|
|
|
|
How to Cite
If you use Krylov.jl in your work, please cite it using the metadata given in CITATION.cff.
BibTeX
@article{montoison-orban-2023,
author = {Montoison, Alexis and Orban, Dominique},
title = {{Krylov.jl: A Julia basket of hand-picked Krylov methods}},
journal = {Journal of Open Source Software},
volume = {8},
number = {89},
pages = {5187},
year = {2023},
doi = {10.21105/joss.05187}
}
Content
This package provides implementations of certain of the most useful Krylov method for a variety of problems:
- Square or rectangular full-rank systems
Ax = b
should be solved when b lies in the range space of A. This situation occurs when * A is square and nonsingular, * A is tall and has full column rank and b lies in the range of A.
- Linear least-squares problems
minimize ‖b - Ax‖
should be solved when b is not in the range of A (inconsistent systems), regardless of the shape and rank of A. This situation mainly occurs when * A is square and singular, * A is tall and thin.
Underdetermined systems are less common but also occur.
If there are infinitely many such x (because A is column rank-deficient), one with minimum norm is identified
minimize ‖x‖ subject to x ∈ argmin ‖b - Ax‖.
- Linear least-norm problems
minimize ‖x‖ subject to Ax = b
should be solved when A is column rank-deficient but b is in the range of A (consistent systems), regardless of the shape of A. This situation mainly occurs when * A is square and singular, * A is short and wide.
Overdetermined systems are less common but also occur.
- Adjoint systems
Ax = b and Aᴴy = c
where A can have any shape.
- Saddle-point and Hermitian quasi-definite systems
[M A] [x] = [b]
[Aᴴ -N] [y] [c]
where A can have any shape.
- Generalized saddle-point and non-Hermitian partitioned systems
[M A] [x] = [b]
[B N] [y] [c]
where A can have any shape and B has the shape of Aᴴ. A, B, b and c must be all nonzero.
Krylov solvers are particularly appropriate in situations where such problems must be solved but a factorization is not possible, either because: * A is not available explicitly, * A would be dense or would consume an excessive amount of memory if it were materialized, * factors would consume an excessive amount of memory.
Iterative methods are recommended in either of the following situations: * the problem is sufficiently large that a factorization is not feasible or would be slow, * an effective preconditioner is known in cases where the problem has unfavorable spectral structure, * the operator can be represented efficiently as a sparse matrix, * the operator is fast, i.e., can be applied with better complexity than if it were materialized as a matrix. Certain fast operators would materialize as dense matrices.
Features
All solvers in Krylov.jl have in-place version, are compatible with GPU and work in any floating-point data type.
How to Install
Krylov can be installed and tested through the Julia package manager:
julia
julia> ]
pkg> add Krylov
pkg> test Krylov
Bug reports and discussions
If you think you found a bug, feel free to open an issue. Focused suggestions and requests can also be opened as issues. Before opening a pull request, start an issue or a discussion on the topic, please.
If you want to ask a question not suited for a bug report, feel free to start a discussion here. This forum is for general discussion about this repository and the JuliaSmoothOptimizers organization, so questions about any of our packages are welcome.
Owner
- Name: JuliaSmoothOptimizers
- Login: JuliaSmoothOptimizers
- Kind: organization
- Location: DOI: 10.5281/zenodo.2655082
- Website: https://juliasmoothoptimizers.github.io
- Repositories: 63
- Profile: https://github.com/JuliaSmoothOptimizers
Infrastructure and Solvers for Continuous Optimization in Julia
JOSS Publication
Krylov.jl: A Julia basket of hand-picked Krylov methods
Authors
Tags
linear algebra Krylov methods Krylov processes sparse linear systems GPU computingCitation (CITATION.cff)
cff-version: "1.2.0"
title: "Krylov.jl: A Julia basket of hand-picked Krylov methods"
message: "If you use this software, please cite our article in the Journal of Open Source Software."
type: software
authors:
- given-names: Alexis
family-names: Montoison
orcid: "https://orcid.org/0000-0002-3403-5450"
affiliation: "GERAD and Department of Mathematics and Industrial Engineering, Polytechnique Montréal, QC, Canada."
- given-names: Dominique
family-names: Orban
orcid: "https://orcid.org/0000-0002-8017-7687"
affiliation: "GERAD and Department of Mathematics and Industrial Engineering, Polytechnique Montréal, QC, Canada."
- given-names: contributors
contact:
- given-names: Alexis
family-names: Montoison
email: alexis.montoison@gerad.ca
orcid: "https://orcid.org/0000-0002-3403-5450"
identifiers:
- description: Zenodo archive
type: doi
value: 10.5281/zenodo.822073
- description: JOSS paper
type: doi
value: 10.21105/joss.05187
keywords:
- Julia
- linear algebra
- Krylov methods
- Krylov processes
- sparse linear systems
- GPU computing
license: MPL-2.0
repository-code: "https://github.com/JuliaSmoothOptimizers/Krylov.jl"
preferred-citation:
authors:
- given-names: Alexis
family-names: Montoison
orcid: "https://orcid.org/0000-0002-3403-5450"
- given-names: Dominique
family-names: Orban
orcid: "https://orcid.org/0000-0002-8017-7687"
date-published: "2023-09-26"
doi: 10.21105/joss.05187
issn: 2475-9066
issue: 89
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 5187
title: "Krylov.jl: A Julia basket of hand-picked Krylov methods"
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.05187"
volume: 8
GitHub Events
Total
- Create event: 29
- Commit comment event: 12
- Release event: 6
- Issues event: 83
- Watch event: 68
- Delete event: 47
- Issue comment event: 255
- Push event: 291
- Pull request review event: 113
- Pull request review comment event: 190
- Pull request event: 151
- Fork event: 11
Last Year
- Create event: 29
- Commit comment event: 12
- Release event: 6
- Issues event: 83
- Watch event: 68
- Delete event: 47
- Issue comment event: 255
- Push event: 291
- Pull request review event: 113
- Pull request review comment event: 190
- Pull request event: 151
- Fork event: 11
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Alexis Montoison | a****n@p****a | 946 |
| Dominique Orban | d****n@g****m | 220 |
| Geoffroy Leconte | g****0@g****m | 77 |
| tmigot | t****t@g****m | 37 |
| Abel Soares Siqueira | a****a@g****m | 30 |
| farhadrclass | 3****s | 11 |
| Xx-Alexis-xX | a****n@e****r | 9 |
| DahitoMA | m****o@p****a | 8 |
| Pawel Latawiec | p****l@m****m | 4 |
| Monssaf Toukal | t****f@g****m | 4 |
| AntoninKns | 4****s | 4 |
| Michael Friedlander | m****l@f****o | 2 |
| Alexander Seiler | s****x@g****m | 1 |
| Christopher Rackauckas | a****s@c****m | 1 |
| Jaroslav Lobačevski | j****b@g****m | 1 |
| Julia TagBot | 5****t | 1 |
| Mathieu Besançon | m****n@g****m | 1 |
| Tim Besard | t****d@g****m | 1 |
| dependabot[bot] | 4****] | 1 |
| fpacaud | f****8@g****m | 1 |
| github-actions[bot] | 4****] | 1 |
| pricklypointer | 1****r | 1 |
| Jean-Pierre Dussault | d****1@d****a | 1 |
| restrin | r****6@g****m | 1 |
| vepiteski | v****i@g****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 123
- Total pull requests: 308
- Average time to close issues: 5 months
- Average time to close pull requests: 22 days
- Total issue authors: 31
- Total pull request authors: 17
- Average comments per issue: 2.28
- Average comments per pull request: 2.26
- Merged pull requests: 250
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 49
- Pull requests: 137
- Average time to close issues: 30 days
- Average time to close pull requests: 6 days
- Issue authors: 12
- Pull request authors: 7
- Average comments per issue: 1.04
- Average comments per pull request: 1.77
- Merged pull requests: 120
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- amontoison (81)
- gdalle (7)
- rveltz (4)
- albertomercurio (3)
- farhadrclass (2)
- loiseaujc (1)
- JuliaTagBot (1)
- charleskawczynski (1)
- KlausC (1)
- abelsiqueira (1)
- alexQueue (1)
- lijas (1)
- ZhangFengshun (1)
- jonas-schulze (1)
- packquickly (1)
Pull Request Authors
- amontoison (293)
- abelsiqueira (22)
- farhadrclass (13)
- tmigot (9)
- gdalle (4)
- glwagner (2)
- dpo (2)
- oscardssmith (2)
- mpf (2)
- ChrisRackauckas (2)
- dependabot[bot] (1)
- pricklypointer (1)
- geoffroyleconte (1)
- goggle (1)
- paraynaud (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 5,505 total
- Total dependent packages: 26
- Total dependent repositories: 13
- Total versions: 45
juliahub.com: Krylov
A Julia Basket of Hand-Picked Krylov Methods
- Documentation: https://docs.juliahub.com/General/Krylov/stable/
- License: MPL-2.0
-
Latest release: 0.10.1
published 8 months ago
Rankings
Dependencies
- actions/checkout v3 composite
- julia-actions/setup-julia latest composite
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/download-artifact v3 composite
- actions/upload-artifact v3 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/setup-julia v1 composite
- actions/github-script v3.1.0 composite
- actions/github-script v6 composite
- julia-actions/setup-julia v1 composite
- actions/checkout v3 composite
- julia-actions/setup-julia latest composite
- actions/checkout v3 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-invalidations v1 composite
- julia-actions/setup-julia v1 composite
- JuliaRegistries/TagBot v1 composite
- actions/cache v3 composite
- actions/checkout v3 composite
- codecov/codecov-action v3 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite
