FewBodyDB.jl
FewBodyDB is a database of reference results for few-body systems. It is intended for validating numerical solvers in JuliaFewBody projects.
Usage
db returns a typed DatabaseEntry, including the result's provenance and state metadata.
julia> using FewBodyDBjulia> entry = db(:Bubin2005Jan, Symbol("HD⁺"), :energy, (J = 0, v = 0))DatabaseEntry{@NamedTuple{J::Int64, v::Int64}, Float64}(:Bubin2005Jan, :HD⁺, :energy, (J = 0, v = 0), -0.5978979685)julia> entry.value-0.5978979685julia> entry.state(J = 0, v = 0)julia> println(bib(entry))@article{Bubin2005Jan, title = {Charge asymmetry in HD+}, volume = {122}, ISSN = {1089-7690}, url = {http://dx.doi.org/10.1063/1.1850905}, DOI = {10.1063/1.1850905}, number = {4}, journal = {The Journal of Chemical Physics}, publisher = {AIP Publishing}, author = {Bubin, Sergiy and Bednarz, Eugeniusz and Adamowicz, Ludwik}, year = {2005}, month = jan }
A slash-separated key returned by dbkeys can also be used directly:
julia> using FewBodyDBjulia> db("Bubin2005Jan/HD⁺/energy/(J = 0, v = 0)").value-0.5978979685
The old @get and @bib macros remain available as compatibility wrappers, but function calls are preferred for new code.
Data
| key | value | reference |
|---|---|---|
Bubin2005Jan/HD⁺/energy/(J = 0, v = 0) | -0.5978979685 | Bubin2005Jan |
Bubin2005Jan/HD⁺/energy/(J = 0, v = 1) | -0.5891818291 | Bubin2005Jan |
Bubin2005Jan/HD⁺/energy/(J = 0, v = 2) | -0.5809037001 | Bubin2005Jan |
Karr2006Apr/HD⁺/energy/(J = 0, v = 0) | -0.59789796860903 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 1) | -0.58918182955696 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 10) | -0.52923363556611 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 11) | -0.52451091017174 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 12) | -0.52017114777622 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 13) | -0.51621870996171 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 14) | -0.5126601922527 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 15) | -0.50950465133511 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 16) | -0.5067638778173 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 17) | -0.50445269886425 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 18) | -0.50258923378925 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 19) | -0.50119479911831 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 2) | -0.58090370021837 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 20) | -0.50029245420662 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 21) | -0.49991036147003 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 22) | -0.4998657785 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 3) | -0.57305054655187 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 4) | -0.56561104207681 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 5) | -0.55857552082556 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 6) | -0.55193594895682 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 7) | -0.54568591529293 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 8) | -0.53982064154582 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 0, v = 9) | -0.53433701356127 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 0) | -0.59769812819221 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 1) | -0.58899111199204 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 10) | -0.52911665292566 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 11) | -0.52440184594275 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 12) | -0.52007010037534 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 13) | -0.5161258334232 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 14) | -0.51257570550594 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 15) | -0.50942885109613 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 16) | -0.5066971569796 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 17) | -0.50439557371086 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 18) | -0.50254238629066 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 19) | -0.50115914795876 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 2) | -0.58072182812093 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 20) | -0.50026932312565 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 21) | -0.4999027831355 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 22) | -0.499864342 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 3) | -0.57287727709421 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 4) | -0.56544616627757 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 5) | -0.55841886325887 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 6) | -0.55178736790852 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 7) | -0.54554530340943 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 8) | -0.53968792704413 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 1, v = 9) | -0.53421216210065 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 0) | -0.59729964335178 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 1) | -0.58861082938979 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 10) | -0.52888354391503 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 11) | -0.52418455220494 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 12) | -0.51986882186127 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 13) | -0.51594088194548 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 14) | -0.51240752360873 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 15) | -0.50927803835031 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 16) | -0.50656450765298 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 17) | -0.5042821328684 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 18) | -0.502449537962 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 19) | -0.501088766606 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 2) | -0.58035919519988 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 20) | -0.5002241584 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 21) | -0.499889109 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 3) | -0.57253181032597 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 4) | -0.56511744976374 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 5) | -0.55810654817382 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 6) | -0.55149117284 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 7) | -0.54526501568956 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 8) | -0.53942340521103 | Karr2006Apr |
Karr2006Apr/HD⁺/energy/(J = 2, v = 9) | -0.53396333969469 | Karr2006Apr |
Suzuki2003Jul/He/energy/³Fᵒ | -2.031255168403 | Suzuki2003Jul |
Suzuki2003Jul/He/energy/³Gᵉ | -2.020000710925 | Suzuki2003Jul |
Suzuki2003Jul/He/energy/³Pᵒ | -2.123843086498 | Suzuki2003Jul |
Suzuki2003Jul/He/energy/³Sᵉ | -2.175293782367 | Suzuki2003Jul |
Suzuki2003Jul/He/energy/¹Dᵉ | -2.055620732852 | Suzuki2003Jul |
Suzuki2003Jul/He/energy/¹Fᵒ | -2.031255144382 | Suzuki2003Jul |
Suzuki2003Jul/He/energy/¹Gᵉ | -2.020000710898 | Suzuki2003Jul |
Suzuki2003Jul/He/energy/¹Sᵉ | -2.903724372437 | Suzuki2003Jul |
Suzuki2003Jul/H⁻/energy/³Pᵉ | -0.1252865 | Suzuki2003Jul |
Suzuki2003Jul/Ps⁻/energy/¹Sᵉ | -0.2620050702328 | Suzuki2003Jul |
Suzuki2003Jul/p̄He⁺/energy/L=31 | -3.50763486 | Suzuki2003Jul |
Suzuki2003Jul/tdμ/energy/¹Dᵉ | -103.408481 | Suzuki2003Jul |
Suzuki2003Jul/tdμ/energy/¹Pᵒ | -108.179385 | Suzuki2003Jul |
Suzuki2003Jul/tdμ/energy/¹Sᵉ | -111.364511474 | Suzuki2003Jul |
Suzuki2003Jul/ttμ/energy/¹Dᵉ | -105.98293 | Suzuki2003Jul |
Suzuki2003Jul/ttμ/energy/¹Fᵒ | -101.43 | Suzuki2003Jul |
Suzuki2003Jul/ttμ/energy/¹Pᵒ | -110.2621165 | Suzuki2003Jul |
Suzuki2003Jul/ttμ/energy/¹Sᵉ | -112.9730179 | Suzuki2003Jul |
Suzuki2003Jul/∞He/energy/³Dᵉ | -2.055338993337 | Suzuki2003Jul |
Suzuki2003Jul/∞He/energy/¹Sᵉ | -2.903724376984 | Suzuki2003Jul |
Suzuki2003Jul/∞H⁻/energy/¹Sᵉ | -0.527751016523 | Suzuki2003Jul |
Suzuki2003Jul/∞Li/energy/¹Sᵉ | -7.279913 | Suzuki2003Jul |
Bibliography
@article{Bubin2005Jan,
title = {Charge asymmetry in HD+},
volume = {122},
ISSN = {1089-7690},
url = {http://dx.doi.org/10.1063/1.1850905},
DOI = {10.1063/1.1850905},
number = {4},
journal = {The Journal of Chemical Physics},
publisher = {AIP Publishing},
author = {Bubin, Sergiy and Bednarz, Eugeniusz and Adamowicz, Ludwik},
year = {2005},
month = jan
}
@article{Karr2006Apr,
title = {High accuracy results for the energy levels of the molecular ions H+2, D+2and HD+, up toJ= 2},
volume = {39},
ISSN = {1361-6455},
url = {http://dx.doi.org/10.1088/0953-4075/39/8/024},
DOI = {10.1088/0953-4075/39/8/024},
number = {8},
journal = {Journal of Physics B: Atomic, Molecular and Optical Physics},
publisher = {IOP Publishing},
author = {Karr, J Ph and Hilico, L},
year = {2006},
month = apr,
pages = {2095–2105}
}
@book{Suzuki2003Jul,
title={Stochastic variational approach to quantum-mechanical few-body problems},
volume = {54},
ISSN = {0940-7677},
url = {https://doi.org/10.1007/3-540-49541-X},
DOI = {10.1007/3-540-49541-X},
author={Suzuki, Yasuyuki and Varga, K{'a}lm{'a}n},
year={2002},
month = july,
publisher={Springer},
}Citation
Please use CITATION.bib if you need to cite this package.
println(read("../../CITATION.bib", String))@misc{FewBodyDB.jl,
author = {Shuhei Ohno, Martin Mikkelsen},
title = {FewBodyDB.jl},
url = {https://github.com/JuliaFewBody/FewBodyDB.jl},
version = {v0.0.3},
year = {2025},
month = {9}
}API reference
FewBodyDB.DatabaseEntry — Type
DatabaseEntry(reference, system, observable, state, value)A benchmark result stored in the database. reference identifies its bibliographic source, while system, observable, and state describe the calculation. value retains the concrete numeric type used by the source.
Base.put! — Method
put!(reference, system, observable, state, value) -> DatabaseEntryAdd a benchmark result to the database. The first three arguments may be symbols or strings, reference must already exist in the bundled bibliography, and value must be real. Registering the same result twice throws an ArgumentError.
FewBodyDB.bib — Method
bib(key::Union{Symbol,AbstractString}) -> String
bib(entry::DatabaseEntry) -> StringReturn the BibTeX source associated with a reference key or database entry.
FewBodyDB.db — Method
db(key::Union{Symbol,AbstractString}) -> DatabaseEntry
db(reference, system, observable, state) -> DatabaseEntryReturn a benchmark result. A result can be addressed by its slash-separated key or by its four structured key components. The returned entry is independent of the stored value and can safely be modified if its state is mutable.
Examples
entry = db(:Bubin2005Jan, Symbol("HD⁺"), :energy, (J = 0, v = 0))
entry.value == -0.5978979685
db("Bubin2005Jan/HD⁺/energy/(J = 0, v = 0)").valueFewBodyDB.dbkeys — Method
dbkeys() -> Vector{String}Return all database keys in deterministic order.