From 14c95f3b509ea649494adf82c36bad34552ae831 Mon Sep 17 00:00:00 2001 From: Samuel Badr Date: Sun, 20 Oct 2024 21:50:58 +0200 Subject: [PATCH] almost done (add plots, intro, outro, titlepage) --- docs/makepdf.jl | 6 +- docs/src/assets/img/result.pdf | Bin 0 -> 29038 bytes docs/src/assets/img/u_basis.pdf | Bin 0 -> 43911 bytes docs/src/assets/img/uhat_basis.pdf | Bin 0 -> 25450 bytes docs/src/assets/img/v_basis.pdf | Bin 0 -> 47057 bytes docs/src/assets/result-plot.jl | 1672 ++++++++++++++++++++++ docs/src/assets/result.pdf | Bin 0 -> 29033 bytes docs/src/assets/titlepage_sparseirjl.pdf | Bin 0 -> 41877 bytes docs/src/guide.md | 187 ++- docs/src/refs.bib | 255 ++-- 10 files changed, 1930 insertions(+), 190 deletions(-) create mode 100644 docs/src/assets/img/result.pdf create mode 100644 docs/src/assets/img/u_basis.pdf create mode 100644 docs/src/assets/img/uhat_basis.pdf create mode 100644 docs/src/assets/img/v_basis.pdf create mode 100644 docs/src/assets/result-plot.jl create mode 100644 docs/src/assets/result.pdf create mode 100644 docs/src/assets/titlepage_sparseirjl.pdf diff --git a/docs/makepdf.jl b/docs/makepdf.jl index 5f86bc9..4b01a47 100644 --- a/docs/makepdf.jl +++ b/docs/makepdf.jl @@ -11,8 +11,12 @@ bib = CitationBibliography( makedocs(; modules = [SparseIR], authors = "Samuel Badr", - sitename = "SparseIR.jl Guide", + sitename = "SparseIRjl example", format = Documenter.LaTeX(; platform="tectonic"), pages = ["Guide" => "guide.md"], plugins = [bib] ) + +pdffile = joinpath(@__DIR__, "build", "SparseIRjlexample.pdf") +titlepage = joinpath(@__DIR__, "src", "assets", "titlepage_sparseirjl.pdf") +run(`cpdf -merge $titlepage $pdffile 4-end -o $pdffile`) \ No newline at end of file diff --git a/docs/src/assets/img/result.pdf b/docs/src/assets/img/result.pdf new file mode 100644 index 0000000000000000000000000000000000000000..518c918e6d2da3adbd1605f02cef47c1815b0fd9 GIT binary patch literal 29038 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 cpLMBv-R|D*xkT{$tjFzNG?nc|AGt`;30h@ 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 literal 0 HcmV?d00001 diff --git a/docs/src/assets/img/u_basis.pdf b/docs/src/assets/img/u_basis.pdf new file mode 100644 index 0000000000000000000000000000000000000000..02660b600e036dd98e610323dd71c1fe31ccd10d GIT binary patch literal 43911 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 literal 0 HcmV?d00001 diff --git a/docs/src/assets/img/uhat_basis.pdf b/docs/src/assets/img/uhat_basis.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cf7f946a2cd3c352b85b08a7f919aeab92b038c7 GIT binary patch literal 25450 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 aN{_SF=(FBvAWBd;1PZ3)=U38Jru+|OkL>^e literal 0 HcmV?d00001 diff --git a/docs/src/assets/img/v_basis.pdf b/docs/src/assets/img/v_basis.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ab720fe662b44b59716929c055a934c5a02e50a0 GIT binary patch literal 47057 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 z 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 ZHxm~(4;PrN*g3gi<;^rS5=xS2{{yo?Co2E| literal 0 HcmV?d00001 diff --git a/docs/src/assets/result-plot.jl b/docs/src/assets/result-plot.jl new file mode 100644 index 0000000..bb61e8e --- /dev/null +++ b/docs/src/assets/result-plot.jl @@ -0,0 +1,1672 @@ +### A Pluto.jl notebook ### +# v0.20.0 + +using Markdown +using InteractiveUtils + +# ╔═╡ 5d462555-664b-4de5-b076-5ee2078d6ff7 +using SparseIR, CairoMakie + +# ╔═╡ 2d5d27c2-e77e-4bfc-88f4-6e7d85f6fd13 +function compute(; β=10, ωmax=8, ε=1e-6) + # Construct the IR basis and sparse sampling for fermionic propagators + basis = FiniteTempBasis{Fermionic}(β, ωmax, ε) + sτ = TauSampling(basis) + siω = MatsubaraSampling(basis; positive_only=true) + + # Solve the single impurity Anderson model coupled to a bath with a + # semicircular density of states with unit half bandwidth. + U = 1.2 + ρ₀(ω) = 2 / π * √(1 - clamp(ω, -1, +1)^2) + + # Compute the IR basis coefficients for the non-interacting propagator + ρ₀l = overlap.(basis.v, ρ₀) + G₀l = -basis.s .* ρ₀l + + # Self-consistency loop: alternate between second-order expression for the + # self-energy and the Dyson equation until convergence. + Gl = copy(G₀l) + Gl_prev = zero(Gl) + G₀iω = evaluate(siω, G₀l) + Σl = 0 + while !isapprox(Gl, Gl_prev; rtol=ε) + Gl_prev = copy(Gl) + Gτ = evaluate(sτ, Gl) + Στ = @. U^2 * Gτ^3 + Σl = fit(sτ, Στ) + Σiω = evaluate(siω, Σl) + Giω = @. (G₀iω^-1 - Σiω)^-1 + Gl = fit(siω, Giω) + end + basis, siω, Gl, Σl, β +end + +# ╔═╡ bc15f8ab-ded8-4a62-b7de-9f0a2230e7d6 +function make_plot(basis, siω, Gl, Σl, β, filename) + box = FermionicFreq.(1:2:79) + siω_box = MatsubaraSampling(basis; sampling_points=box); + Σiω_box = evaluate(siω_box, Σl) + + iω = sampling_points(siω) + isinbox = in.(iω, Ref(box)) + iω = iω[isinbox] + Σiω = evaluate(siω, Σl)[isinbox] + + + fig = Figure() + + ax = Axis(fig[1,1]; + xlabel=L"Matsubara frequency $\omega\;[\pi/\beta]$", + ylabel=L"\mathrm{Im}\;\hat\Sigma\,(\mathrm{i}\omega)", + limits=(nothing, (-0.13, 0.0)) + ) + scatterlines!(ax, Int.(box), imag(Σiω_box); + marker=:+, + linestyle=:dot, + ) + scatter!(ax, Int.(iω), imag(Σiω); + marker=:x, + label=L"Sampling points$$", + color=:red, + markersize=15, + ) + axislegend(ax; position=:lt) + + ax_inset = Axis(fig[1,1]; + xlabel=L"Expansion order $\ell$", + yminorticksvisible=true, + yticks=LogTicks(WilkinsonTicks(4)), + yminorticks=IntervalsBetween(9), + limits=(nothing, (1e-6, 1.5)), + yscale=log10, + width=Relative(0.5), + height=Relative(0.5), + halign=0.93, + valign=0.3, + ) + translate!(ax_inset.scene, 0, 0, 10) + translate!(ax_inset.elements[:background], 0, 0, 9) + scatterlines!(ax_inset, eachindex(Gl)[1:2:end], abs.(Gl[1:2:end] / first(Gl)); + label=L"\left| G_\ell / G_1 \right|", + marker=:+, + markersize=13, + linestyle=:dash) + scatterlines!(ax_inset, eachindex(Σl)[1:2:end], abs.(Σl[1:2:end] / first(Σl)); + label=L"\left|\Sigma_\ell / \Sigma_1\right|", + marker=:x, + markersize=13, + linestyle=:dash) + scatterlines!(ax_inset, eachindex(basis.s), basis.s / first(basis.s); + label=L"S_\ell / S_1", + marker=:+, + markersize=8, + linestyle=:dot) + axislegend(ax_inset) + save(filename, fig) + fig +end + +# ╔═╡ 2e8e225d-8e72-4b36-9975-a0c44e271f8a +basis, siω, Gl, Σl, β = compute() + +# ╔═╡ 61e1df2f-54f2-4f39-8f3a-ee70a471b125 +let + ωs = FermionicFreq.(-15:2:15) + fig = Figure(size=(600, 600)) + ax = Axis(fig[1,1]; + xticksvisible=false, + xticklabelsvisible=false, + ylabel=L"\mathrm{Im}\;\hat{U}_\ell\,(\mathrm{i}\omega)") + ls = 1:2:7 + for l in ls + scatterlines!(ax, Int.(ωs), imag(basis.uhat[l].(ωs)); + color = RGBf(l / last(ls), 0.0, 1 - l / last(ls)), + linestyle=:dot, label=string(l) + ) + end + Legend(fig[1,2], ax, L"\ell"; framevisible=false) + ax = Axis(fig[2,1]; + xlabel=L"Matsubara frequency $\omega\;[\pi/\beta]$", + ylabel=L"\mathrm{Re}\;\hat{U}_\ell\,(\mathrm{i}\omega)") + ls = 2:2:8 + for l in ls + scatterlines!(ax, Int.(ωs), real(basis.uhat[l].(ωs)); + color = RGBf(l / last(ls), 0.0, 1 - l / last(ls)), + linestyle=:dot, label=string(l) + ) + end + Legend(fig[2,2], ax, L"\ell"; framevisible=false) + save("img/uhat_basis.pdf", fig) + fig +end + +# ╔═╡ b5bb004e-3ceb-41d9-8a30-3822d18a8c3b +let + ωs = range(-5, 5; length=1000) + fig = Figure(size=(600, 300)) + ax = Axis(fig[1,1]; + xlabel=L"Frequency $\omega$", + ylabel=L"V_\ell\,(\omega)") + ls = 1:6 + for l in ls + lines!(ax, ωs, basis.v[l].(ωs); + color = RGBf(l / last(ls), 0.0, 1 - l / last(ls)), + label=string(l) + ) + end + Legend(fig[1,2], ax, L"\ell"; framevisible=false) + save("img/v_basis.pdf", fig) + fig +end + +# ╔═╡ 9e5840ab-a480-4527-b938-1eac8cbe0330 +let + τs = range(0, 10; length=1000) + fig = Figure(size=(600, 300)) + ax = Axis(fig[1,1]; + xlabel=L"Imaginary time $\tau$", + ylabel=L"U_\ell\,(\tau)") + ls = 1:6 + for l in ls + lines!(ax, τs, basis.u[l].(τs); + color = RGBf(l / last(ls), 0.0, 1 - l / last(ls)), + label=string(l) + ) + end + Legend(fig[1,2], ax, L"\ell"; framevisible=false) + save("img/u_basis.pdf", fig) + fig +end + +# ╔═╡ c39a2c55-af9b-43ed-b11f-c89bcc3a1d00 +make_plot(basis, siω, Gl, Σl, β, "img/result.pdf") + +# ╔═╡ 00000000-0000-0000-0000-000000000001 +PLUTO_PROJECT_TOML_CONTENTS = """ +[deps] +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +SparseIR = "4fe2279e-80f0-4adb-8463-ee114ff56b7d" + +[compat] +CairoMakie = "~0.12.14" +SparseIR = "~1.0.18" +""" + +# ╔═╡ 00000000-0000-0000-0000-000000000002 +PLUTO_MANIFEST_TOML_CONTENTS = """ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.11.1" +manifest_format = "2.0" +project_hash = "8388f4e7586e27cdd3147342d380ad4cb027d31d" + +[[deps.AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.5.0" +weakdeps = ["ChainRulesCore", "Test"] + + [deps.AbstractFFTs.extensions] + AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + AbstractFFTsTestExt = "Test" + +[[deps.AbstractTrees]] +git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.5" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "6a55b747d1812e699320963ffde36f1ebdda4099" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "4.0.4" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[deps.AdaptivePredicates]] +git-tree-sha1 = "7e651ea8d262d2d74ce75fdf47c4d63c07dba7a6" +uuid = "35492f91-a3bd-45ad-95db-fcad7dcfedb7" +version = "1.2.0" + +[[deps.AliasTables]] +deps = ["PtrArrays", "Random"] +git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff" +uuid = "66dad0bd-aa9a-41b7-9441-69ab47430ed8" +version = "1.1.3" + +[[deps.Animations]] +deps = ["Colors"] +git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d" +uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" +version = "0.4.1" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.2" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" +version = "1.11.0" + +[[deps.Automa]] +deps = ["PrecompileTools", "SIMD", "TranscodingStreams"] +git-tree-sha1 = "a8f503e8e1a5f583fbef15a8440c8c7e32185df2" +uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" +version = "1.1.0" + +[[deps.AxisAlgorithms]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] +git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712" +uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" +version = "1.1.0" + +[[deps.AxisArrays]] +deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] +git-tree-sha1 = "16351be62963a67ac4083f748fdb3cca58bfd52f" +uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" +version = "0.4.7" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" +version = "1.11.0" + +[[deps.Bessels]] +git-tree-sha1 = "4435559dc39793d53a9e3d278e185e920b4619ef" +uuid = "0e736298-9ec6-45e8-9647-e4fc86a2fe38" +version = "0.2.8" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+1" + +[[deps.CEnum]] +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.5.0" + +[[deps.CRC32c]] +uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc" +version = "1.11.0" + +[[deps.CRlibm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e329286945d0cfc04456972ea732551869af1cfc" +uuid = "4e9b3aee-d8a1-5a3d-ad8b-7d824db253f0" +version = "1.0.1+0" + +[[deps.Cairo]] +deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] +git-tree-sha1 = "7b6ad8c35f4bc3bca8eb78127c8b99719506a5fb" +uuid = "159f3aea-2a34-519c-b102-8c37f9878175" +version = "1.1.0" + +[[deps.CairoMakie]] +deps = ["CRC32c", "Cairo", "Cairo_jll", "Colors", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"] +git-tree-sha1 = "7947d2b61995eda7d5ca50c697b12bb578b918e5" +uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +version = "0.12.14" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "009060c9a6168704143100f36ab08f06c2af4642" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.18.2+1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "3e4b134270b372f2ed4d4d0e936aabaefc1802bc" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.25.0" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.ColorBrewer]] +deps = ["Colors", "JSON", "Test"] +git-tree-sha1 = "61c5334f33d91e570e1d0c3eb5465835242582c4" +uuid = "a2cac450-b92f-5266-8821-25eda20663c8" +version = "0.4.0" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "b5278586822443594ff615963b0c09755771b3e0" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.26.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "b10d0b65641d57b8b4d5e234446582de5047050d" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.5" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "362a287c3aa50601b0bc359053d5c2468f0e7ce0" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.11" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "8ae8d32e09f0dcf42a36b90d4e17f5dd2e4c4215" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.16.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.1.1+0" + +[[deps.ConstructionBase]] +git-tree-sha1 = "76219f1ed5771adbb096743bff43fb5fdd4c1157" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.8" +weakdeps = ["IntervalSets", "LinearAlgebra", "StaticArrays"] + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseLinearAlgebraExt = "LinearAlgebra" + ConstructionBaseStaticArraysExt = "StaticArrays" + +[[deps.Contour]] +git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.3" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.20" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" +version = "1.11.0" + +[[deps.DelaunayTriangulation]] +deps = ["AdaptivePredicates", "EnumX", "ExactPredicates", "PrecompileTools", "Random"] +git-tree-sha1 = "89df54fbe66e5872d91d8c2cd3a375f660c3fd64" +uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" +version = "1.6.1" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" +version = "1.11.0" + +[[deps.Distributions]] +deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "d7477ecdafb813ddee2ae727afa94e9dcb5f3fb0" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.112" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.EarCut_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e3290f2d49e661fbd94046d7e3726ffcb2d41053" +uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" +version = "2.2.4+0" + +[[deps.EnumX]] +git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.4" + +[[deps.ExactPredicates]] +deps = ["IntervalArithmetic", "Random", "StaticArrays"] +git-tree-sha1 = "b3f2ff58735b5f024c392fde763f29b057e4b025" +uuid = "429591f6-91af-11e9-00e2-59fbe8cec110" +version = "2.2.8" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.6.2+0" + +[[deps.Extents]] +git-tree-sha1 = "81023caa0021a41712685887db1fc03db26f41f5" +uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" +version = "0.1.4" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "8cc47f299902e13f90405ddb5bf87e5d474c0d38" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "6.1.2+0" + +[[deps.FFTW]] +deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] +git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "1.8.0" + +[[deps.FFTW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4d81ed14783ec49ce9f2e168208a12ce1815aa25" +uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" +version = "3.3.10+1" + +[[deps.FileIO]] +deps = ["Pkg", "Requires", "UUIDs"] +git-tree-sha1 = "62ca0547a14c57e98154423419d8a342dca75ca9" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.16.4" + +[[deps.FilePaths]] +deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"] +git-tree-sha1 = "919d9412dbf53a2e6fe74af62a73ceed0bce0629" +uuid = "8fc22ac5-c921-52a6-82fd-178b2807b824" +version = "0.8.3" + +[[deps.FilePathsBase]] +deps = ["Compat", "Dates"] +git-tree-sha1 = "7878ff7172a8e6beedd1dea14bd27c3c6340d361" +uuid = "48062228-2e41-5def-b9a4-89aafe57970f" +version = "0.9.22" +weakdeps = ["Mmap", "Test"] + + [deps.FilePathsBase.extensions] + FilePathsBaseMmapExt = "Mmap" + FilePathsBaseTestExt = "Test" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" +version = "1.11.0" + +[[deps.FillArrays]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "6a70198746448456524cb442b8af316927ff3e1a" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.13.0" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.5" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] +git-tree-sha1 = "db16beca600632c95fc8aca29890d83788dd8b23" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.96+0" + +[[deps.Format]] +git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" +uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" +version = "1.3.7" + +[[deps.FreeType]] +deps = ["CEnum", "FreeType2_jll"] +git-tree-sha1 = "907369da0f8e80728ab49c1c7e09327bf0d6d999" +uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" +version = "4.1.1" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "5c1d8ae0efc6c2e7b1fc502cbe25def8f661b7bc" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.2+0" + +[[deps.FreeTypeAbstraction]] +deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] +git-tree-sha1 = "2493cdfd0740015955a8e46de4ef28f49460d8bc" +uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" +version = "0.10.3" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1ed150b39aebcc805c26b93a8d0122c940f64ce2" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.14+0" + +[[deps.GenericLinearAlgebra]] +deps = ["LinearAlgebra", "Printf", "Random", "libblastrampoline_jll"] +git-tree-sha1 = "f47136cac29a9b7a8a88dbce1195394978091edb" +uuid = "14197337-ba66-59df-a3e3-ca00e7dcff7a" +version = "0.3.13" + +[[deps.GeoFormatTypes]] +git-tree-sha1 = "59107c179a586f0fe667024c5eb7033e81333271" +uuid = "68eda718-8dee-11e9-39e7-89f7f65f511f" +version = "0.4.2" + +[[deps.GeoInterface]] +deps = ["Extents", "GeoFormatTypes"] +git-tree-sha1 = "2f6fce56cdb8373637a6614e14a5768a88450de2" +uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" +version = "1.3.7" + +[[deps.GeometryBasics]] +deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "b62f2b2d76cee0d61a2ef2b3118cd2a3215d3134" +uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +version = "0.4.11" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "674ff0db93fffcd11a3573986e550d66cd4fd71f" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.80.5+0" + +[[deps.Graphics]] +deps = ["Colors", "LinearAlgebra", "NaNMath"] +git-tree-sha1 = "d61890399bc535850c4bf08e4e0d3a7ad0f21cbd" +uuid = "a2bd30eb-e257-5431-a919-1863eab51364" +version = "1.1.2" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.GridLayoutBase]] +deps = ["GeometryBasics", "InteractiveUtils", "Observables"] +git-tree-sha1 = "fc713f007cff99ff9e50accba6373624ddd33588" +uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" +version = "0.11.0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll"] +git-tree-sha1 = "401e4f3f30f43af2c8478fc008da50096ea5240f" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "8.3.1+0" + +[[deps.HypergeometricFunctions]] +deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "7c4195be1649ae622304031ed46a2f4df989f1eb" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.24" + +[[deps.ImageAxes]] +deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"] +git-tree-sha1 = "2e4520d67b0cef90865b3ef727594d2a58e0e1f8" +uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" +version = "0.6.11" + +[[deps.ImageBase]] +deps = ["ImageCore", "Reexport"] +git-tree-sha1 = "eb49b82c172811fd2c86759fa0553a2221feb909" +uuid = "c817782e-172a-44cc-b673-b171935fbb9e" +version = "0.1.7" + +[[deps.ImageCore]] +deps = ["ColorVectorSpace", "Colors", "FixedPointNumbers", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "PrecompileTools", "Reexport"] +git-tree-sha1 = "b2a7eaa169c13f5bcae8131a83bc30eff8f71be0" +uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" +version = "0.10.2" + +[[deps.ImageIO]] +deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] +git-tree-sha1 = "437abb322a41d527c197fa800455f79d414f0a3c" +uuid = "82e4d734-157c-48bb-816b-45c225c6df19" +version = "0.6.8" + +[[deps.ImageMetadata]] +deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"] +git-tree-sha1 = "355e2b974f2e3212a75dfb60519de21361ad3cb7" +uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" +version = "0.9.9" + +[[deps.Imath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "0936ba688c6d201805a83da835b55c61a180db52" +uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" +version = "3.1.11+0" + +[[deps.IndirectArrays]] +git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" +uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" +version = "1.0.0" + +[[deps.Inflate]] +git-tree-sha1 = "d1b1b796e47d94588b3757fe84fbf65a5ec4a80d" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.5" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "10bd689145d2c3b2a9844005d01087cc1194e79e" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2024.2.1+0" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +version = "1.11.0" + +[[deps.Interpolations]] +deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "88a101217d7cb38a7b481ccd50d21876e1d1b0e0" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.15.1" +weakdeps = ["Unitful"] + + [deps.Interpolations.extensions] + InterpolationsUnitfulExt = "Unitful" + +[[deps.IntervalArithmetic]] +deps = ["CRlibm_jll", "MacroTools", "RoundingEmulator"] +git-tree-sha1 = "8e125d40cae3a9f4276cdfeb4fcdb1828888a4b3" +uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" +version = "0.22.17" + + [deps.IntervalArithmetic.extensions] + IntervalArithmeticDiffRulesExt = "DiffRules" + IntervalArithmeticForwardDiffExt = "ForwardDiff" + IntervalArithmeticIntervalSetsExt = "IntervalSets" + IntervalArithmeticLinearAlgebraExt = "LinearAlgebra" + IntervalArithmeticRecipesBaseExt = "RecipesBase" + + [deps.IntervalArithmetic.weakdeps] + DiffRules = "b552c78f-8df3-52c6-915a-8e097449b14b" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" + +[[deps.IntervalSets]] +git-tree-sha1 = "dba9ddf07f77f60450fe5d2e2beb9854d9a49bd0" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.7.10" + + [deps.IntervalSets.extensions] + IntervalSetsRandomExt = "Random" + IntervalSetsRecipesBaseExt = "RecipesBase" + IntervalSetsStatisticsExt = "Statistics" + + [deps.IntervalSets.weakdeps] + Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" + Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.Isoband]] +deps = ["isoband_jll"] +git-tree-sha1 = "f9b6d97355599074dc867318950adaa6f9946137" +uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4" +version = "0.1.1" + +[[deps.IterTools]] +git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.10.0" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "be3dc50a92e5a386872a493a10050136d4703f9b" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.6.1" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo]] +deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] +git-tree-sha1 = "fa6d0bcff8583bac20f1ffa708c3913ca605c611" +uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" +version = "0.1.5" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "25ee0be4d43d0269027024d75a24c24d6c6e590c" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.4+0" + +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] +git-tree-sha1 = "7d703202e65efa1369de1279c162b915e245eed1" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.9" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "170b660facf5df5de098d866564877e119141cbd" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.2+0" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "78211fb6cbc872f77cad3fc0b6cf647d923f4929" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "18.1.7+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "854a9c268c43b77b0a27f22d7fab8d33cdb3a731" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.2+1" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.4.0" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" +version = "1.11.0" + +[[deps.LazyModules]] +git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" +uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e" +version = "0.3.1" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.6.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" +version = "1.11.0" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.7.2+0" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" +version = "1.11.0" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll"] +git-tree-sha1 = "9fd170c4bbfd8b935fdc5f8b7aa33532c991a673" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.11+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "fbb1f2bef882392312feb1ede3615ddc1e9b99ed" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.49.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "0c4f9c4f1a50d8f35048fa0532dabbadf702f81e" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.40.1+0" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5ee6203157c120d79034c748a2acba45b82b8807" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.40.1+0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +version = "1.11.0" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "a2d09619db4e765091ee5c6ffe8872849de0feea" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.28" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" +version = "1.11.0" + +[[deps.MKL_jll]] +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] +git-tree-sha1 = "f046ccd0c6db2832a9f639e2c669c6fe867e5f4f" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2024.2.0+0" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.13" + +[[deps.Makie]] +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageBase", "ImageIO", "InteractiveUtils", "Interpolations", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"] +git-tree-sha1 = "3df66da15ba7b37b34f6557b7e1c95a3ff5c670b" +uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +version = "0.21.14" + +[[deps.MakieCore]] +deps = ["ColorTypes", "GeometryBasics", "IntervalSets", "Observables"] +git-tree-sha1 = "4604f03e5b057e8e62a95a44929cafc9585b0fe9" +uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" +version = "0.8.9" + +[[deps.MappedArrays]] +git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e" +uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" +version = "0.4.2" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" +version = "1.11.0" + +[[deps.MathTeXEngine]] +deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "UnicodeFun"] +git-tree-sha1 = "e1641f32ae592e415e3dbae7f4a188b5316d4b62" +uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" +version = "0.6.1" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.6+0" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.2.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" +version = "1.11.0" + +[[deps.MosaicViews]] +deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] +git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe" +uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389" +version = "0.3.4" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.12.12" + +[[deps.MultiFloats]] +deps = ["LinearAlgebra", "Printf", "Random", "SIMD"] +git-tree-sha1 = "39ffa6286f40544ecea725d8031c615e79d88d45" +uuid = "bdf0d083-296b-4888-a5b6-7498122e68a5" +version = "2.3.0" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.Netpbm]] +deps = ["FileIO", "ImageCore", "ImageMetadata"] +git-tree-sha1 = "d92b107dbb887293622df7697a2223f9f8176fcd" +uuid = "f09324ee-3d7c-5217-9330-fc30815ba969" +version = "1.1.1" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.Observables]] +git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225" +uuid = "510215fc-4207-5dde-b226-833fc4488ee2" +version = "0.5.5" + +[[deps.OffsetArrays]] +git-tree-sha1 = "1a27764e945a152f7ca7efa04de513d473e9542e" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.14.1" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.27+1" + +[[deps.OpenEXR]] +deps = ["Colors", "FileIO", "OpenEXR_jll"] +git-tree-sha1 = "327f53360fdb54df7ecd01e96ef1983536d1e633" +uuid = "52e1d378-f018-4a11-a4be-720524705ac7" +version = "0.3.2" + +[[deps.OpenEXR_jll]] +deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "8292dd5c8a38257111ada2174000a33745b06d4e" +uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" +version = "3.2.4+0" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+2" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7493f61f55a6cce7325f197443aa80d32554ba10" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.15+1" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6703a85cb3781bd5909d48730a67205f3f31a575" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.3+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.PNGFiles]] +deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] +git-tree-sha1 = "67186a2bc9a90f9f85ff3cc8277868961fb57cbd" +uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" +version = "0.4.3" + +[[deps.Packing]] +deps = ["GeometryBasics"] +git-tree-sha1 = "ec3edfe723df33528e085e632414499f26650501" +uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" +version = "0.5.0" + +[[deps.PaddedViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "0fac6313486baae819364c52b4f483450a9d793f" +uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" +version = "0.5.12" + +[[deps.Pango_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e127b609fb9ecba6f201ba7ab753d5a605d53801" +uuid = "36c8627f-9965-5494-a995-c6b170f724f3" +version = "1.54.1+0" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "35621f10a7531bc8fa58f74610b1bfb70a3cfc6b" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.43.4+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.11.0" +weakdeps = ["REPL"] + + [deps.Pkg.extensions] + REPLExt = "REPL" + +[[deps.PkgVersion]] +deps = ["Pkg"] +git-tree-sha1 = "f9501cc0430a26bc3d156ae1b5b0c1b47af4d6da" +uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" +version = "0.3.3" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "StableRNGs", "Statistics"] +git-tree-sha1 = "650a022b2ce86c7dcfbdecf00f78afeeb20e5655" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.2" + +[[deps.PolygonOps]] +git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" +uuid = "647866c9-e3ac-4575-94e7-e3d426903924" +version = "0.1.2" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.1" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.3" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" +version = "1.11.0" + +[[deps.ProgressMeter]] +deps = ["Distributed", "Printf"] +git-tree-sha1 = "8f6bc219586aef8baf0ff9a5fe16ee9c70cb65e4" +uuid = "92933f4c-e287-5a05-a399-4b506db050ca" +version = "1.10.2" + +[[deps.PtrArrays]] +git-tree-sha1 = "77a42d78b6a92df47ab37e177b2deac405e1c88f" +uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" +version = "1.2.1" + +[[deps.QOI]] +deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] +git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" +uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" +version = "1.0.0" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "cda3b045cf9ef07a08ad46731f5a3165e56cf3da" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.11.1" + + [deps.QuadGK.extensions] + QuadGKEnzymeExt = "Enzyme" + + [deps.QuadGK.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "StyledStrings", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +version = "1.11.0" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +version = "1.11.0" + +[[deps.RangeArrays]] +git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" +uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" +version = "0.3.2" + +[[deps.Ratios]] +deps = ["Requires"] +git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" +uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" +version = "0.4.5" +weakdeps = ["FixedPointNumbers"] + + [deps.Ratios.extensions] + RatiosFixedPointNumbersExt = "FixedPointNumbers" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "852bd0f55565a9e973fcfee83a84413270224dc4" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.8.0" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "58cdd8fb2201a6267e1db87ff148dd6c1dbd8ad8" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.5.1+0" + +[[deps.RoundingEmulator]] +git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" +uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" +version = "0.2.1" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.SIMD]] +deps = ["PrecompileTools"] +git-tree-sha1 = "98ca7c29edd6fc79cd74c61accb7010a4e7aee33" +uuid = "fdea26ae-647d-5447-a871-4b548cad5224" +version = "3.6.0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +version = "1.11.0" + +[[deps.ShaderAbstractions]] +deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "79123bc60c5507f035e6d1d9e563bb2971954ec8" +uuid = "65257c39-d410-5151-9873-9b3e5be5013e" +version = "0.4.1" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" +version = "1.11.0" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SignedDistanceFields]] +deps = ["Random", "Statistics", "Test"] +git-tree-sha1 = "d263a08ec505853a5ff1c1ebde2070419e3f28e9" +uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" +version = "0.4.0" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.Sixel]] +deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"] +git-tree-sha1 = "2da10356e31327c7096832eb9cd86307a50b1eb6" +uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" +version = "0.1.3" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" +version = "1.11.0" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.11.0" + +[[deps.SparseIR]] +deps = ["Bessels", "GenericLinearAlgebra", "LinearAlgebra", "MultiFloats", "PrecompileTools", "QuadGK"] +git-tree-sha1 = "9e81b62a652a93ed0b64e65a6fe860ddf4ac8768" +uuid = "4fe2279e-80f0-4adb-8463-ee114ff56b7d" +version = "1.0.18" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "2f5d4697f21388cbe1ff299430dd169ef97d7e14" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.4.0" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.StableRNGs]] +deps = ["Random"] +git-tree-sha1 = "83e6cce8324d49dfaf9ef059227f91ed4441a8e5" +uuid = "860ef19b-820b-49d6-a774-d7a799459cd3" +version = "1.0.2" + +[[deps.StackViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" +uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" +version = "0.1.1" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "eeafab08ae20c62c44c8399ccb9354a04b80db50" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.9.7" +weakdeps = ["ChainRulesCore", "Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "192954ef1208c7019899fbf8049e717f92959682" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.3" + +[[deps.Statistics]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0" +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.11.1" +weakdeps = ["SparseArrays"] + + [deps.Statistics.extensions] + SparseArraysExt = ["SparseArrays"] + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "5cf7606d6cef84b543b483848d4ae08ad9832b21" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.3" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "b423576adc27097764a90e163157bcfc9acf0f46" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.2" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.StructArrays]] +deps = ["ConstructionBase", "DataAPI", "Tables"] +git-tree-sha1 = "f4dc295e983502292c4c3f951dbb4e985e35b3be" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.18" + + [deps.StructArrays.extensions] + StructArraysAdaptExt = "Adapt" + StructArraysGPUArraysCoreExt = "GPUArraysCore" + StructArraysSparseArraysExt = "SparseArrays" + StructArraysStaticArraysExt = "StaticArrays" + + [deps.StructArrays.weakdeps] + Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.StyledStrings]] +uuid = "f489334b-da3d-4c2e-b8f0-e476e12c162b" +version = "1.11.0" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.7.0+0" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "598cd7c1f68d1e205689b1c2fe65a9f85846f297" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.12.0" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +version = "1.11.0" + +[[deps.TiffImages]] +deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "SIMD", "UUIDs"] +git-tree-sha1 = "38f139cc4abf345dd4f22286ec000728d5e8e097" +uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" +version = "0.10.2" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.11.3" + +[[deps.TriplotBase]] +git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" +uuid = "981d1d27-644d-49a2-9326-4793e63143c3" +version = "0.1.0" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" +version = "1.11.0" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" +version = "1.11.0" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "d95fe458f26209c66a187b1114df96fd70839efd" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.21.0" + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.WoodburyMatrices]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "1.0.0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "1165b0443d0eca63ac1e32b8c0eb69ed2f4f8127" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.13.3+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "a54ee957f4c86b526460a720dbc882fa5edcbefc" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.41+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "d2d1a5c49fae4ba39983f63de6afcbea47194e85" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.6+0" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "47e45cd78224c53109495b3e324df0c37bb61fbe" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.11+0" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "bcd466676fef0878338c61e655629fa7bbc69d8e" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.17.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+1" + +[[deps.isoband_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" +uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4" +version = "0.2.3+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1827acba325fdcdf1d2647fc8d5301dd9ba43a9d" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.9.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "e17c115d55c5fbb7e52ebedb427a0dca79d4484e" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.2+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.11.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8a22cf860a7d27e4f3498a0fe0811a7957badb38" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.3+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "b70c870239dc3d7bc094eb2d6be9b73d27bef280" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.44+0" + +[[deps.libsixel_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] +git-tree-sha1 = "7dfa0fd9c783d3d0cc43ea1af53d69ba45c447df" +uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" +version = "1.10.3+1" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "490376214c4721cdaca654041f635213c6165cb3" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+2" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.59.0+0" + +[[deps.oneTBB_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7d0ea0f4895ef2f5cb83645fa689e52cb55cf493" +uuid = "1317d2d5-d96f-522e-a858-c73665f53c3e" +version = "2021.12.0+0" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+2" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "35976a1216d6c066ea32cba2150c4fa682b276fc" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "10164.0.0+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "dcc541bb19ed5b0ede95581fb2e41ecf179527d2" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.6.0+0" +""" + +# ╔═╡ Cell order: +# ╠═5d462555-664b-4de5-b076-5ee2078d6ff7 +# ╠═2d5d27c2-e77e-4bfc-88f4-6e7d85f6fd13 +# ╠═61e1df2f-54f2-4f39-8f3a-ee70a471b125 +# ╠═b5bb004e-3ceb-41d9-8a30-3822d18a8c3b +# ╠═9e5840ab-a480-4527-b938-1eac8cbe0330 +# ╠═bc15f8ab-ded8-4a62-b7de-9f0a2230e7d6 +# ╠═2e8e225d-8e72-4b36-9975-a0c44e271f8a +# ╠═c39a2c55-af9b-43ed-b11f-c89bcc3a1d00 +# ╟─00000000-0000-0000-0000-000000000001 +# ╟─00000000-0000-0000-0000-000000000002 diff --git a/docs/src/assets/result.pdf b/docs/src/assets/result.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b1e01afccedbfdc83f0e79ee80296660370ff7c8 GIT binary patch literal 29033 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 cpLMBv-R|D*xkT{$tjFzNG?nc|AGt`;30h@ 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%0DA3Y^mM(;3m&O@bzu=i(ug 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 Let us perform self-consistent second-order perturbation theory for the single impurity Anderson model at finite temperature. > Its Hamiltonian is given by > ```math @@ -12,51 +19,49 @@ We will explain the inner workings of `SparseIR.jl` by means of an example use c > where ``U`` is the electron interaction strength, ``c_\sigma`` annihilates an electron on the impurity, ``f_{p\sigma}`` annihilates an electron in the bath, ``\dagger`` denotes the Hermitian conjugate, ``p\in\mathbb R`` is bath momentum, and ``\sigma\in\{\uparrow, \downarrow\}`` is spin. > The hybridization strength ``V_{p\sigma}`` and bath energies ``\epsilon_p`` are chosen such that the non-interacting density of states is semi-elliptic with a half-bandwidth of one, ``\rho_0(\omega) = \frac2\pi\sqrt{1-\omega^2}``, ``U=1.2``, ``\beta=10``, and the system is assumed to be half-filled. -## Treatment - -### Outline +## [Outline](@id outline) To provide an overview, we first give the full code used to solve the problem with `SparseIR.jl`. ```julia using SparseIR -function main(ε = 1e-6) - β = 10.0 - ωmax = 8.0 - - # Construct the IR basis and sparse sampling for fermionic propagators - basis = FiniteTempBasis{Fermionic}(β, ωmax, ε) - sτ = TauSampling(basis) - siω = MatsubaraSampling(basis; positive_only=true) - - # Solve the single impurity Anderson model coupled to a bath with a - # semicircular density of states with unit half bandwidth. - U = 1.2 - ρ₀(ω) = 2/π * √(1 - clamp(ω, -1, +1)^2) - - # Compute the IR basis coefficients for the non-interacting propagator - ρ₀l = overlap.(basis.v, ρ₀) - G₀l = -basis.s .* ρ₀l - - # Self-consistency loop: alternate between second-order expression for the - # self-energy and the Dyson equation until convergence. - Gl = copy(G₀l) - Gl_prev = zero(Gl) - G₀iω = evaluate(siω, G₀l) - while !isapprox(Gl, Gl_prev, atol=ε) - Gl_prev = copy(Gl) - Gτ = evaluate(sτ, Gl) - Στ = @. U^2 * Gτ^3 - Σl = fit(sτ, Στ) - Σiω = evaluate(siω, Σl) - Giω = @. (G₀iω^-1 - Σiω)^-1 - Gl = fit(siω, Giω) - end +β = 10.0; ωmax = 8.0; ε = 1e-6; + +# Construct the IR basis and sparse sampling for fermionic propagators +basis = FiniteTempBasis{Fermionic}(β, ωmax, ε) +sτ = TauSampling(basis) +siω = MatsubaraSampling(basis; positive_only=true) + +# Solve the single impurity Anderson model coupled to a bath with a +# semicircular density of states with unit half bandwidth. +U = 1.2 +ρ₀(ω) = 2/π * √(1 - clamp(ω, -1, +1)^2) + +# Compute the IR basis coefficients for the non-interacting propagator +ρ₀l = overlap.(basis.v, ρ₀) +G₀l = -basis.s .* ρ₀l + +# Self-consistency loop: alternate between second-order expression for the +# self-energy and the Dyson equation until convergence. +Gl = copy(G₀l) +Σl = zero(Gl) +Gl_prev = zero(Gl) +G₀iω = evaluate(siω, G₀l) +while !isapprox(Gl, Gl_prev, rtol=ε) + Gl_prev = copy(Gl) + Gτ = evaluate(sτ, Gl) + Στ = @. U^2 * Gτ^3 + Σl = fit(sτ, Στ) + Σiω = evaluate(siω, Σl) + Giω = @. (G₀iω^-1 - Σiω)^-1 + Gl = fit(siω, Giω) end ``` The following is a detailed explanation of what happens here. -### Basis construction +# Treatment + +## Basis construction We first import `SparseIR` and construct an appropriate basis (``\omega_\mathrm{max} = 8`` should be more than enough for this example): ```julia-repl @@ -94,11 +99,9 @@ Because we did not specify otherwise, the constructor chose the analytic continu ``` for us, where 80.0 is the value of the scale parameter ``\Lambda = \beta\omega_\mathrm{max}``. This kernel is visualized below. -```@raw html -Logistic Kernel -``` +![Logistic kernel used to construct the basis in our problem treatment.](assets/img/kernel.png) -#### Singular value expansion +### Singular value expansion Central is the _singular value expansion_'s (SVE) computation, which is handled by the function `SVEResult`: Its purpose is to construct the decomposition @@ -134,9 +137,9 @@ Here and in what follows, unless otherwise indicated, integrals are taken to be ``` To get an idea regarding the distribution of these sampling points, refer to following figure, which shows ``\{x_i\} \times \{y_j\}`` for ``\Lambda = 80``: - ![Sampling point distribution](assets/img/sve_grid.png) + ![Sampling point distribution resulting from a Cartesian product of Gauss integration rules.](assets/img/sve_grid.png) - ##### Note: + #### Note: The points do not cover ``[-1, 1] × [-1, 1]`` but only ``[0, 1] × [0, 1]``. This is actually a special case as we exploit the kernel's centrosymmetry, i.e. ``K(x, y) = K(-x, -y)``. It is straightforward to show that the left/right singular vectors then can be chosen as either odd or even functions. @@ -146,7 +149,7 @@ Here and in what follows, unless otherwise indicated, integrals are taken to be K^\mathrm{red}_\pm(x, y) = K(x, y) \pm K(x, -y) ``` It is these reduced kernels we will actually sample from, gaining a 4-fold speedup in constructing the SVE. - ![abc](assets/img/kernel_red.png) + ![The reduced kernels.](assets/img/kernel_red.png) Using the integration rules allows us to approximate ```math @@ -198,8 +201,8 @@ Here and in what follows, unless otherwise indicated, integrals are taken to be !!! info Special care is taken here to avoid FP-arithmetic cancellation around ``x = -1`` and ``x = +1``. - ![Kernel matrices](assets/img/kernel_red_matrices.png) - Note that in the plot, the matrices are rotated 90 degrees to the left to make the connection with the (subregion ``[0, 1] \times [0, 1]`` of the) previous figure more obvious. + ![Kernel matrices.](assets/img/kernel_red_matrices.png) + Note that in the plot, the matrices are rotated 90 degrees counterclockwise to make the connection with the (subregion ``[0, 1] \times [0, 1]`` of the) previous figure more obvious. Thus we can see how the choice of sampling points has magnified and brought to the matrices' centers the regions of interest. Furthermore, elements with absolute values smaller than ``10\%`` of the maximum have been omitted to emphasize the structure; this should however not be taken to mean that there is any sparsity to speak of we could exploit in the next step. @@ -214,7 +217,7 @@ Here and in what follows, unless otherwise indicated, integrals are taken to be 6. Finally, we need a postprocessing step implemented in `postprocess` which performs some technical manipulation to turn the SVD result into the SVE we actually want. The functions are represented as piecewise Legendre polynomials, which model a function on the interval ``[x_\mathrm{min}, x_\mathrm{max}]`` as a set of segments on the intervals ``[a_i, a_{i+1}]``, where on each interval the function is expanded in scaled Legendre polynomials. -#### The finishing touches +### The finishing touches The difficult part of constructing the `FiniteTempBasis` is now over. Next we truncate the left and right singular functions by discarding ``U_\ell`` and ``V_\ell`` with indices ``\ell > L`` to match the ``S_\ell``. @@ -223,10 +226,17 @@ The functions are now scaled to imaginary time and frequency according to \tau = \beta/2 (x + 1) \qand \omega = \omega_\mathrm{max} y ``` and to match them, the singular values are multiplied by ``\sqrt{(\beta/2)\omega}``. -We also add to our basis ``\hat{U}_\ell(i\omega)``, the Fourier transforms of the left singular functions, defined on the fermionic Matsubara frequencies ``i\omega = i(2n+1)\beta/\pi`` (with integer ``n``). +We also add to our basis ``\hat{U}_\ell(\mathrm{i}\omega)``, the Fourier transforms of the left singular functions, defined on the fermionic Matsubara frequencies ``\mathrm{i}\omega = \mathrm{i}(2n+1)\beta/\pi`` (with integer ``n``). This is particularly simple, because the Legendre polynomials' Fourier transforms are known analytically and given by spherical Bessel functions, for which we can rely on `Bessels.jl` [Helton2022](@cite). -### Constructing the samplers +We can now take a look at our basis functions to get a feel for them: +![The first 6 left singular basis functions on the imaginary time axis.](assets/img/u_basis.pdf) +![The first 6 right singular basis functions on the frequency axis.](assets/img/v_basis.pdf) +Looking back at the image of the kernel ``K(x,y)`` we can imagine how it is reconstructed by multiplying and summing (including a factor ``S_\ell``) ``U_\ell(\tau)`` and ``V_\ell(\omega)``. +![The first 8 Fourier transformed basis functions on the Matsubara frequency axis.](assets/img/uhat_basis.pdf) +As for the Matsubara basis functions, we plot only the non-zero components, i.e. ``\mathrm{Im}\;\hat U_\ell\,(\mathrm{i}\omega)`` with odd ``\ell`` and ``\mathrm{Re}\;\hat U_\ell\,(\mathrm{i}\omega)`` with even ``\ell``. + +## Constructing the samplers With our basis complete, we construct sparse sampling objects for fermionic propagators on the imaginary time axis and on the Matsubara frequency axis. ```julia-repl @@ -269,11 +279,11 @@ MatsubaraSampling{FermionicFreq, ComplexF64, SparseIR.SplitSVD{Float64}} with sa Both functions first determine a suitable set of sampling points on their respective axis. In the case of `TauSampling`, the sampling points ``\{\tau_i\}`` are chosen as the extrema of the highest-order basis function in imaginary time. This turns out to be close to optimal with respect to conditioning for this size (within a few percent). -Similarly, `MatsubaraSampling` chooses sampling points ``\{i\omega_n\}`` as the (discrete) extrema of the highest-order basis function in Matsubara. +Similarly, `MatsubaraSampling` chooses sampling points ``\{\mathrm{i}\omega_n\}`` as the (discrete) extrema of the highest-order basis function in Matsubara. By setting `positive_only=true`, one assumes that functions to be fitted are symmetric in Matsubara frequency, i.e.: ```math - \hat G(i\omega) = \qty(\hat G(-i\omega))^* + \hat G(\mathrm{i}\omega) = \qty(\hat G(-\mathrm{i}\omega))^* ``` or equivalently, that they are purely real in imaginary time. In this case, sparse sampling is performed over non-negative frequencies only, cutting away half of the necessary sampling space, so we get only 10 sampling points instead of the 20 in the imaginary time case. @@ -281,17 +291,16 @@ In this case, sparse sampling is performed over non-negative frequencies only, c Then, both compute design matrices by ``E^\tau_{i\ell} = u_\ell(\tau_i)`` and ``E^\omega_{n\ell} = \hat{u}_\ell(i\omega_n)`` as well as their SVDs. We are now able to get the IR basis coefficients of a function that is known on the imaginary time sampling points by solving the fitting problem ```math -\DeclareMathOperator*{\argmin}{arg\,min} - G_\ell = \argmin_{G_\ell} \sum_i \norm{G(\tau_i) - \sum_\ell E^\tau_{i\ell} G_\ell}^2, + G_\ell = \mathrm{arg}\,\mathrm{min}_{G_\ell} \sum_i \norm{G(\tau_i) - \sum_\ell E^\tau_{i\ell} G_\ell}^2, ``` which can be done efficiently once the SVD is known. The same can be done on the Matsubara axis ```math - G_\ell = \argmin_{G_\ell} \sum_n \norm{\hat{G}(i\omega_n) - \sum_\ell E^\omega_{n\ell} G_\ell}^2 + G_\ell = \mathrm{arg}\,\mathrm{min}_{G_\ell} \sum_n \norm{\hat{G}(\mathrm{i}\omega_n) - \sum_\ell E^\omega_{n\ell} G_\ell}^2 ``` and taken together we now have a way of moving efficiently between both. -### Initializing the iteration +## Initializing the iteration Because the non-interacting density of states is given ``\rho_0(\omega) = \frac{2}{\pi}\sqrt{1 - \omega^2}``, we can easily get the IR basis coefficients for the non-interacting propagater ```math @@ -336,6 +345,14 @@ julia> Gl = copy(G₀l) 2.816974873845819e-7 -3.924512839631511e-24 +julia> Σl = zero(Gl) +20-element Vector{ComplexF64}: + 0.0 + 0.0im + 0.0 + 0.0im + ⋮ + 0.0 + 0.0im + 0.0 + 0.0im + julia> Gl_prev = zero(Gl) 20-element Vector{Float64}: 0.0 @@ -353,7 +370,7 @@ julia> G₀iω = evaluate(siω, G₀l) 6.134766817544449e-19 - 0.020802317001514643im ``` -### Self-consistency loop +## Self-consistency loop If we take the second-order expression for the self-energy ```math @@ -361,13 +378,13 @@ If we take the second-order expression for the self-energy ``` and the Dyson equation ```math - \hat G(i\omega) = \pqty{\pqty{\hat G_0(i\omega)}^{-1} - \Sigma(i\omega)}^{-1} + \hat G(\mathrm{i}\omega) = \pqty{\pqty{\hat G_0(\mathrm{i}\omega)}^{-1} - \Sigma(\mathrm{i}\omega)}^{-1} ``` we have a system of two coupled equations. -The first one is diagonal in ``\tau`` and the second is diagonal in ``i\omega``, so we employ the IR basis to efficiently convert between the two bases. +The first one is diagonal in ``\tau`` and the second is diagonal in ``\mathrm{i}\omega``, so we employ the IR basis to efficiently convert between the two bases. Starting with our approximation to ``G_\ell`` we evaluate in the ``\tau``-basis to get ``G(\tau)``, from which we can compute the self-energy on the sampling points ``\Sigma(\tau)`` according to the first equation. -This can now be fitted to the ``\tau``-basis to get ``\Sigma_\ell``, and from there ``\hat\Sigma(i\omega)`` via evaluation in the ``i\omega``-basis. -Now the Dyson equation is used to get ``\hat G(i\omega)`` on the sampling frequencies, which is then fitted to the ``i\omega``-basis yielding ``G_\ell`` and completing the loop. +This can now be fitted to the ``\tau``-basis to get ``\Sigma_\ell``, and from there ``\hat\Sigma(\mathrm{i}\omega)`` via evaluation in the ``\mathrm{i}\omega``-basis. +Now the Dyson equation is used to get ``\hat G(\mathrm{i}\omega)`` on the sampling frequencies, which is then fitted to the ``\mathrm{i}\omega``-basis yielding ``G_\ell`` and completing the loop. This is now performed until convergence. ```julia-repl julia> while !isapprox(Gl, Gl_prev, atol=ε) @@ -381,7 +398,51 @@ julia> while !isapprox(Gl, Gl_prev, atol=ε) end ``` -## References +The entire script, as presented in [Outline](@ref outline), takes around 60ms to run and allocates roughly 19MiB on a laptop CPU from 2019. + +## Visualizing the solution + +To plot our solution for the self-energy, we create a `MatsubaraSampling` object on a dense box of sampling frequencies. +In this case, the fact that the sampling matrix of such a frequency set is badly conditioned does not matter, because we only need it for expanding, i.e. multiplying a vector. +```julia-repl +julia> box = FermionicFreq.(1:2:79) +40-element Vector{FermionicFreq}: + π/β + 3π/β + ⋮ + 77π/β + 79π/β + +julia> siω_box = MatsubaraSampling(basis; sampling_points=box); +┌ Warning: Sampling matrix is poorly conditioned (cond = 2.668196257523898e15). +└ @ SparseIR ~/.julia/dev/SparseIR/src/sampling.jl:87 + +julia> Σiω_box = evaluate(siω_box, Σl) +40-element Vector{ComplexF64}: + -6.067770915322836e-17 - 0.09325923974719101im + 2.0279596075077236e-17 - 0.1225916020773678im + ⋮ + -6.624594477591435e-17 - 0.014786512975659354im + -7.08391512971528e-17 - 0.01441676347590391im +``` +We are now in a position to visualize the results of our calculation: +- In the main plot, the imaginary part of the self-energy in Matsubara alongside the sampling points on which it was computed. + This illustrates very nicely one of the main advantages of our method: During the entire course of the iteration we only ever need to store and calculate with the values of all functions on the sparse set of sampling points and are still able to expand the result the a dense frequency set in the end. +- In the inset, the IR basis coefficients of the self-energy and of the propagator, along with the basis singular values. + We only plot the nonvanishing basis coefficients, which are those at odd values of ``\ell`` because the real parts of ``\hat G(\mathrm{i}\omega)`` and ``\hat \Sigma(\mathrm{i}\omega)`` are almost zero. +![Self-energy calculated in the self-consistency iteration. The inset shows the IR basis coefficients corresponding to the self-energy and the propagator.](assets/img/result.pdf) + +# Summary and outlook + +We introduced `SparseIR.jl`, a full featured implementation of the intermediate representation in the Julia programming language. +By means of a worked example, we explained in detail how to use it and the way it works internally. +In this example, we solved an Anderson impurity model with elliptical density of states to second order via a self-consistent loop. +We successfully obtained the self-energy (accurate to second order) with minimal computational effort. + +Regarding further work, perhaps the single most obvious direction is the extension to multi-particle quantities; And indeed, [Shinaoka2018,Wallerberger2021](@cite) did exactly this, with Markus Wallerberger writing the as of yet unpublished Julia library `OvercompleteIR.jl` which builds on top of `SparseIR.jl`. + + +# References ```@bibliography ``` diff --git a/docs/src/refs.bib b/docs/src/refs.bib index 87b18a7..8006428 100644 --- a/docs/src/refs.bib +++ b/docs/src/refs.bib @@ -1,25 +1,25 @@ @article{Krien2022, author = {Krien, Friedrich and Kauch, Anna}, date = {2022-04-21}, - journal = {The European Physical Journal B}, title = {The plain and simple parquet approximation: single-and multi-boson exchange in the two-dimensional Hubbard model}, doi = {10.1140/epjb/s10051-022-00329-6}, issn = {1434-6036}, number = {4}, pages = {69}, volume = {95}, - day = {21} + day = {21}, + journal = {The European Physical Journal B} } @article{Wallerberger2023, author = {Wallerberger, Markus and Badr, Samuel and Hoshino, Shintaro and Huber, Sebastian and Kakizawa, Fumiya and Koretsune, Takashi and Nagai, Yuki and Nogaki, Kosuke and Nomoto, Takuya and Mori, Hitoshi and Otsuki, Junya and Ozaki, Soshun and Plaikner, Thomas and Sakurai, Rihito and Vogel, Constanze and Witt, Niklas and Yoshimi, Kazuyoshi and Shinaoka, Hiroshi}, date = {2023-02}, - journal = {SoftwareX}, title = {sparse-ir: Optimal compression and sparse sampling of many-body propagators}, doi = {10.1016/j.softx.2022.101266}, issn = {2352-7110}, pages = {101266}, volume = {21}, + journal = {SoftwareX}, publisher = {Elsevier BV} } @@ -34,13 +34,13 @@ @misc{Mangott2022 @article{Aryasetiawan1998, author = {Aryasetiawan, F. and Gunnarsson, O.}, date = {1998-03}, - journal = {Reports On Progress in Physics}, title = {The GW method}, doi = {10.1088/0034-4885/61/3/002}, issn = {1361-6633}, number = {3}, pages = {237–312}, volume = {61}, + journal = {Reports On Progress in Physics}, publisher = {IOP Publishing} } @@ -57,14 +57,13 @@ @book{Ring1980 @article{Taranto2014, author = {Taranto, C. and Andergassen, S. and Bauer, J. and Held, K. and Katanin, A. and Metzner, W. and Rohringer, G. and Toschi, A.}, date = {2014-05}, - journal = {Physical Review Letters}, title = {From Infinite to Two Dimensions through the Functional Renormalization Group}, doi = {10.1103/PhysRevLett.112.196402}, issn = {1079-7114}, number = {19}, - number = {19}, pages = {196402}, volume = {112}, + journal = {Physical Review Letters}, numpages = {5}, publisher = {American Physical Society} } @@ -73,25 +72,25 @@ @article{Taranto2014 @article{Maris2006, author = {Maris, P. and Tandy, P.C.}, date = {2006}, - journal = {Nuclear Physics B - Proceedings Supplements}, title = {QCD modeling of hadron physics}, doi = {10.1016/j.nuclphysbps.2006.08.012}, issn = {0920-5632}, pages = {136–152}, url = {http://www.sciencedirect.com/science/article/pii/S0920563206004919}, volume = {161}, + journal = {Nuclear Physics B - Proceedings Supplements}, publisher = {Elsevier BV} } @article{Brambilla1996, author = {Brambilla, N. and Montaldi, E. and Prosperi, G. M.}, date = {1996-09}, - journal = {Physical Review D: Particles and Fields}, title = {Bethe–Salpeter equation in QCD in a Wilson loop context}, doi = {10.1103/PhysRevD.54.3506}, number = {5}, pages = {3506–3525}, volume = {54}, + journal = {Physical Review D: Particles and Fields}, numpages = {0}, publisher = {American Physical Society} } @@ -100,12 +99,12 @@ @article{Brambilla1996 @article{Eckhardt2020, author = {Eckhardt, Christian J. and Honerkamp, Carsten and Held, Karsten and Kauch, Anna}, date = {2020-04}, - journal = {Physical Review B}, title = {Truncated unity parquet solver}, doi = {10.1103/PhysRevB.101.155104}, number = {15}, pages = {155104}, volume = {101}, + journal = {Physical Review B}, numpages = {17}, publisher = {American Physical Society} } @@ -113,12 +112,12 @@ @article{Eckhardt2020 @article{Eckhardt2018, author = {Eckhardt, C. J. and Schober, G. A. H. and Ehrlich, J. and Honerkamp, C.}, date = {2018-08}, - journal = {Physical Review B}, title = {Truncated-unity parquet equations: Application to the repulsive Hubbard model}, doi = {10.1103/PhysRevB.98.075143}, number = {7}, pages = {075143}, volume = {98}, + journal = {Physical Review B}, numpages = {12}, publisher = {American Physical Society} } @@ -126,12 +125,12 @@ @article{Eckhardt2018 @article{Kaufmann2019, author = {Kaufmann, J. and Gunacker, P. and Kowalski, A. and Sangiovanni, G. and Held, K.}, date = {2019-08}, - journal = {Physical Review B}, title = {Symmetric improved estimators for continuous-time quantum Monte Carlo}, doi = {10.1103/PhysRevB.100.075119}, number = {7}, pages = {075119}, volume = {100}, + journal = {Physical Review B}, numpages = {15}, publisher = {American Physical Society} } @@ -140,12 +139,12 @@ @article{Kaufmann2019 @article{Hille2020, author = {Hille, Cornelia and Kugler, Fabian B. and Eckhardt, Christian J. and He, Yuan-Yao and Kauch, Anna and Honerkamp, Carsten and Toschi, Alessandro and Andergassen, Sabine}, date = {2020-09}, - journal = {Physical Review Research}, title = {Quantitative functional renormalization group description of the two-dimensional Hubbard model}, doi = {10.1103/PhysRevResearch.2.033372}, number = {3}, pages = {033372}, volume = {2}, + journal = {Physical Review Research}, numpages = {19}, publisher = {American Physical Society} } @@ -154,12 +153,12 @@ @article{Hille2020 @article{Schaefer2021, author = {Schäfer, Thomas and al, et.}, date = {2021-03}, - journal = {Physical Review X}, title = {Tracking the Footprints of Spin Fluctuations: A MultiMethod, MultiMessenger Study of the Two-Dimensional Hubbard Model}, doi = {10.1103/PhysRevX.11.011058}, number = {1}, pages = {011058}, volume = {11}, + journal = {Physical Review X}, numpages = {53}, publisher = {American Physical Society} } @@ -168,12 +167,12 @@ @article{Schaefer2021 @article{Chalupa2018, author = {Chalupa, P. and Gunacker, P. and Schäfer, T. and Held, K. and Toschi, A.}, date = {2018-06}, - journal = {Physical Review B}, title = {Divergences of the irreducible vertex functions in correlated metallic systems: Insights from the Anderson impurity model}, doi = {10.1103/PhysRevB.97.245136}, number = {24}, pages = {245136}, volume = {97}, + journal = {Physical Review B}, numpages = {15}, publisher = {American Physical Society} } @@ -191,25 +190,25 @@ @misc{Chalupa2020 @article{Blase2020, author = {Blase, Xavier and Duchemin, Ivan and Jacquemin, Denis and Loos, Pierre-François}, date = {2020-09-03}, - journal = {Journal of Physical Chemistry Letters}, title = {The Bethe–Salpeter Equation Formalism: From Physics to Chemistry}, doi = {10.1021/acs.jpclett.0c01875}, number = {17}, pages = {7371–7382}, volume = {11}, day = {03}, + journal = {Journal of Physical Chemistry Letters}, publisher = {American Chemical Society} } @article{Takada2001, author = {Takada, Yasutami}, date = {2001-11}, - journal = {Physical Review Letters}, title = {Inclusion of Vertex Corrections in the Self-Consistent Calculation of Quasiparticles in Metals}, doi = {10.1103/PhysRevLett.87.226402}, number = {22}, pages = {226402}, volume = {87}, + journal = {Physical Review Letters}, numpages = {4}, publisher = {American Physical Society} } @@ -217,7 +216,6 @@ @article{Takada2001 @article{Maggio2017, author = {Maggio, Emanuele and Kresse, Georg}, date = {2017-10-10}, - journal = {Journal of Chemical Theory and Computation}, title = {GW Vertex Corrected Calculations for Molecular Systems}, doi = {10.1021/acs.jctc.7b00586}, issn = {1549-9618}, @@ -225,18 +223,19 @@ @article{Maggio2017 pages = {4765–4778}, volume = {13}, day = {10}, + journal = {Journal of Chemical Theory and Computation}, publisher = {American Chemical Society} } @article{Esirgen1997, author = {Esirgen, Gökhan and Bickers, N. E.}, date = {1997-01}, - journal = {Physical Review B}, title = {Fluctuation-exchange theory for general lattice Hamiltonians}, doi = {10.1103/PhysRevB.55.2122}, number = {4}, pages = {2122–2143}, volume = {55}, + journal = {Physical Review B}, numpages = {0}, publisher = {American Physical Society} } @@ -245,12 +244,12 @@ @article{Esirgen1997 @article{Kugler2018, author = {Kugler, Fabian B. and von Delft, Jan}, date = {2018-01}, - journal = {Physical Review Letters}, title = {Multiloop Functional Renormalization Group That Sums Up All Parquet Diagrams}, doi = {10.1103/PhysRevLett.120.057403}, number = {5}, pages = {057403}, volume = {120}, + journal = {Physical Review Letters}, numpages = {6}, publisher = {American Physical Society} } @@ -258,12 +257,12 @@ @article{Kugler2018 @article{Metzner2012, author = {Metzner, Walter and Salmhofer, Manfred and Honerkamp, Carsten and Meden, Volker and Schönhammer, Kurt}, date = {2012-03}, - journal = {Reviews of Modern Physics}, title = {Functional renormalization group approach to correlated fermion systems}, doi = {10.1103/RevModPhys.84.299}, number = {1}, pages = {299–352}, volume = {84}, + journal = {Reviews of Modern Physics}, numpages = {0}, publisher = {American Physical Society} } @@ -271,12 +270,12 @@ @article{Metzner2012 @article{Salpeter1951, author = {Salpeter, E. E. and Bethe, H. A.}, date = {1951-12}, - journal = {Physical Review}, title = {A Relativistic Equation for Bound-State Problems}, doi = {10.1103/PhysRev.84.1232}, number = {6}, pages = {1232–1242}, volume = {84}, + journal = {Physical Review}, numpages = {0}, publisher = {American Physical Society} } @@ -284,12 +283,12 @@ @article{Salpeter1951 @article{GellMann1951, author = {Gell-Mann, Murray and Low, Francis}, date = {1951-10}, - journal = {Physical Review}, title = {Bound States in Quantum Field Theory}, doi = {10.1103/PhysRev.84.350}, number = {2}, pages = {350–354}, volume = {84}, + journal = {Physical Review}, numpages = {0}, publisher = {American Physical Society} } @@ -297,12 +296,12 @@ @article{GellMann1951 @article{Georges1996, author = {Georges, Antoine and Kotliar, Gabriel and Krauth, Werner and Rozenberg, Marcelo J.}, date = {1996-01}, - journal = {Reviews of Modern Physics}, title = {Dynamical mean-field theory of strongly correlated fermion systems and the limit of infinite dimensions}, doi = {10.1103/RevModPhys.68.13}, number = {1}, pages = {13–125}, volume = {68}, + journal = {Reviews of Modern Physics}, numpages = {0}, publisher = {American Physical Society} } @@ -310,39 +309,39 @@ @article{Georges1996 @article{Bergli2011, author = {Elise Bergli and Morten Hjorth-Jensen}, date = {2011}, - journal = {Annals of Physics}, title = {Summation of Parquet diagrams as an ab initio method in nuclear structure calculations}, doi = {10.1016/j.aop.2010.09.015}, issn = {0003-4916}, number = {5}, pages = {1125–1160}, url = {http://www.sciencedirect.com/science/article/pii/S0003491611000303}, - volume = {326} + volume = {326}, + journal = {Annals of Physics} } @article{Vilk1997, author = {Vilk, Y. M. and Tremblay, A.-M.S.}, date = {1997}, - journal = {Journal de Physique I}, title = {Non-Perturbative Many-Body Approach to the Hubbard Model and Single-Particle Pseudogap}, doi = {10.1051/jp1:1997135}, issn = {1286-4862}, number = {11}, pages = {1309–1368}, volume = {7}, + journal = {Journal de Physique I}, publisher = {EDP Sciences} } @article{Zantout2019, author = {Zantout, Karim and Backes, Steffen and Valentı́, Roser}, date = {2019-12}, - journal = {Physical Review Letters}, title = {Effect of Nonlocal Correlations on the Electronic Structure of LiFeAs}, doi = {10.1103/PhysRevLett.123.256401}, number = {25}, pages = {256401}, volume = {123}, + journal = {Physical Review Letters}, numpages = {6}, publisher = {American Physical Society} } @@ -350,12 +349,12 @@ @article{Zantout2019 @article{Lin2012, author = {Lin, Nan and Gull, Emanuel and Millis, Andrew J.}, date = {2012-09}, - journal = {Physical Review Letters}, title = {Two-Particle Response in Cluster Dynamical Mean-Field Theory: Formalism and Application to the Raman Response of High-Temperature Superconductors}, doi = {10.1103/PhysRevLett.109.106401}, number = {10}, pages = {106401}, volume = {109}, + journal = {Physical Review Letters}, numpages = {5}, publisher = {American Physical Society} } @@ -363,13 +362,13 @@ @article{Lin2012 @article{Shinaoka2018, author = {Shinaoka, Hiroshi and Otsuki, Junya and Haule, Kristjan and Wallerberger, Markus and Gull, Emanuel and Yoshimi, Kazuyoshi and Ohzeki, Masayuki}, date = {2018-05}, - journal = {Physical Review B}, title = {Overcomplete compact representation of two-particle Green's functions}, doi = {10.1103/PhysRevB.97.205111}, issn = {2469-9969}, number = {20}, pages = {205111}, - volume = {97} + volume = {97}, + journal = {Physical Review B} } @book{Hansen2010, @@ -385,46 +384,46 @@ @book{Hansen2010 @article{Rokhlin1996, author = {Rokhlin, Vladimir and Yarvin, Norman}, date = {1996-05}, - journal = {SIAM Journal on Scientific Computing}, title = {Generalized Gaussian Quadratures and Singular Value Decompositions of Integral Operators}, doi = {10.1137/S1064827596310779}, pages = {44}, - volume = {20} + volume = {20}, + journal = {SIAM Journal on Scientific Computing} } @article{Shinaoka2017, author = {Shinaoka, Hiroshi and Otsuki, Junya and Ohzeki, Masayuki and Yoshimi, Kazuyoshi}, date = {2017}, - journal = {Physical Review B}, title = {Compressing Green's function using intermediate representation between imaginary-time and real-frequency domains}, doi = {10.1103/PhysRevB.96.035147}, issn = {2469-9969}, number = {3}, pages = {35147}, volume = {96}, + journal = {Physical Review B}, publisher = {APS} } @article{Ha1982, author = {Chung-Wei Ha}, date = {1982}, - journal = {SIAM Journal on Mathematical Analysis}, title = {Eigenvalues of Differentiable Positive Definite Kernels}, doi = {10.1137/0517031}, number = {2}, pages = {415–419}, - volume = {17} + volume = {17}, + journal = {SIAM Journal on Mathematical Analysis} } @article{Chikano2018, author = {Chikano, Naoya and Otsuki, Junya and Shinaoka, Hiroshi}, date = {2018-07}, - journal = {Physical Review B}, title = {Performance analysis of a physically constructed orthogonal representation of imaginary-time Green's function}, doi = {10.1103/PhysRevB.98.035104}, number = {3}, pages = {035104}, volume = {98}, + journal = {Physical Review B}, publisher = {American Physical Society}, uri = {\url{papers3://publication/doi/10.1103/PhysRevB.98.035104}} } @@ -455,12 +454,12 @@ @incollection{Bickers2004 @article{Pavlyukh2020, author = {Pavlyukh, Y. and Stefanucci, G. and van Leeuwen, R.}, date = {2020-07}, - journal = {Physical Review B}, title = {Dynamically screened vertex correction to GW}, doi = {10.1103/PhysRevB.102.045121}, number = {4}, pages = {045121}, volume = {102}, + journal = {Physical Review B}, numpages = {22}, publisher = {American Physical Society} } @@ -468,12 +467,12 @@ @article{Pavlyukh2020 @article{Vilk1994, author = {Vilk, Y. M. and Chen, Liang and Tremblay, A.-M. S.}, date = {1994-05}, - journal = {Physical Review B}, title = {Theory of spin and charge fluctuations in the Hubbard model}, doi = {10.1103/PhysRevB.49.13267}, number = {18}, pages = {13267–13270}, volume = {49}, + journal = {Physical Review B}, numpages = {0}, publisher = {American Physical Society} } @@ -481,24 +480,24 @@ @article{Vilk1994 @article{Schober2018, author = {Schober, Giulio A. H. and Ehrlich, Jannis and Reckling, Timo and Honerkamp, Carsten}, date = {2018}, - journal = {Frontiers in Physics}, title = {Truncated-Unity Functional Renormalization Group for Multiband Systems With Spin-Orbit Coupling}, doi = {10.3389/fphy.2018.00032}, issn = {2296-424X}, pages = {32}, - volume = {6} + volume = {6}, + journal = {Frontiers in Physics} } @article{Li2019, author = {Gang Li and Anna Kauch and Petra Pudleiner and Karsten Held}, date = {2019}, - journal = {Computer Physics Communications}, title = {The victory project v1.0: An efficient parquet equations solver}, doi = {10.1016/j.cpc.2019.03.008}, issn = {0010-4655}, pages = {146–154}, url = {http://www.sciencedirect.com/science/article/pii/S0010465519300864}, volume = {241}, + journal = {Computer Physics Communications}, keywords = {Strongly correlated electron systems,Many body theory,Parquet equations,Hubbard model,Two-particle vertex} } @@ -506,12 +505,12 @@ @article{Li2019 @article{Otsuki2014, author = {Otsuki, Junya and Hafermann, Hartmut and Lichtenstein, Alexander I.}, date = {2014-12}, - journal = {Physical Review B}, title = {Superconductivity, antiferromagnetism, and phase separation in the two-dimensional Hubbard model: A dual-fermion approach}, doi = {10.1103/PhysRevB.90.235132}, number = {23}, pages = {235132}, volume = {90}, + journal = {Physical Review B}, numpages = {12}, publisher = {American Physical Society} } @@ -520,12 +519,12 @@ @article{Otsuki2014 @article{Hafermann2014, author = {Hafermann, Hartmut and van Loon, Erik G. C. P. and Katsnelson, Mikhail I. and Lichtenstein, Alexander I. and Parcollet, Olivier}, date = {2014-12}, - journal = {Physical Review B}, title = {Collective charge excitations of strongly correlated electrons, vertex corrections, and gauge invariance}, doi = {10.1103/PhysRevB.90.235105}, number = {23}, pages = {235105}, volume = {90}, + journal = {Physical Review B}, numpages = {19}, publisher = {American Physical Society} } @@ -545,12 +544,12 @@ @book{Vasilev1998 @article{Onida2002, author = {Onida, Giovanni and Reining, Lucia and Rubio, Angel}, date = {2002-06}, - journal = {Reviews of Modern Physics}, title = {Electronic excitations: density-functional versus many-body Green's-function approaches}, doi = {10.1103/RevModPhys.74.601}, number = {2}, pages = {601–659}, volume = {74}, + journal = {Reviews of Modern Physics}, numpages = {0}, publisher = {American Physical Society} } @@ -559,12 +558,12 @@ @article{Onida2002 @article{Lichtenstein2014, author = {Lichtenstein, J. and Maier, S. A. and Honerkamp, C. and Platt, C. and Thomale, R. and Andersen, O. K. and Boeri, L.}, date = {2014-06}, - journal = {Physical Review B}, title = {Functional renormalization group study of an eight-band model for the iron arsenides}, doi = {10.1103/PhysRevB.89.214514}, number = {21}, pages = {214514}, volume = {89}, + journal = {Physical Review B}, numpages = {11}, publisher = {American Physical Society} } @@ -573,12 +572,12 @@ @article{Lichtenstein2014 @article{Galler2017, author = {Anna Galler and Patrik Thunström and Patrik Gunacker and Jan M. Tomczak and K. Held}, date = {2017-03}, - journal = {Physical Review B}, title = {Ab initio dynamical vertex approximation}, doi = {10.1103/PhysRevB.95.115107}, number = {11}, pages = {115107}, volume = {95}, + journal = {Physical Review B}, numpages = {13}, publisher = {American Physical Society} } @@ -587,12 +586,12 @@ @article{Galler2017 @article{Rohringer2018, author = {Rohringer, G. and Hafermann, H. and Toschi, A. and Katanin, A. A. and Antipov, A. E. and Katsnelson, M. I. and Lichtenstein, A. I. and Rubtsov, A. N. and Held, K.}, date = {2018-05}, - journal = {Reviews of Modern Physics}, title = {Diagrammatic routes to nonlocal correlations beyond dynamical mean field theory}, doi = {10.1103/RevModPhys.90.025003}, number = {2}, pages = {025003}, volume = {90}, + journal = {Reviews of Modern Physics}, numpages = {53}, publisher = {American Physical Society} } @@ -600,12 +599,12 @@ @article{Rohringer2018 @article{Wentzell2020, author = {Wentzell, Nils and Li, Gang and Tagliavini, Agnese and Taranto, Ciro and Rohringer, Georg and Held, Karsten and Toschi, Alessandro and Andergassen, Sabine}, date = {2020-08}, - journal = {Physical Review B}, title = {High-frequency asymptotics of the vertex function: Diagrammatic parametrization and algorithmic implementation}, doi = {10.1103/PhysRevB.102.085106}, number = {8}, pages = {085106}, volume = {102}, + journal = {Physical Review B}, numpages = {24}, publisher = {American Physical Society} } @@ -613,12 +612,12 @@ @article{Wentzell2020 @article{Li2016, author = {Li, Gang and Wentzell, Nils and Pudleiner, Petra and Thunström, Patrik and Held, Karsten}, date = {2016-04}, - journal = {Physical Review B}, title = {Efficient implementation of the parquet equations: Role of the reducible vertex function and its kernel approximation}, doi = {10.1103/PhysRevB.93.165103}, number = {16}, pages = {165103}, volume = {93}, + journal = {Physical Review B}, numpages = {13}, publisher = {American Physical Society} } @@ -626,12 +625,12 @@ @article{Li2016 @article{Krien2019, author = {Krien, Friedrich}, date = {2019-06}, - journal = {Physical Review B}, title = {Efficient evaluation of the polarization function in dynamical mean-field theory}, doi = {10.1103/PhysRevB.99.235106}, number = {23}, pages = {235106}, volume = {99}, + journal = {Physical Review B}, numpages = {14}, publisher = {American Physical Society} } @@ -639,12 +638,12 @@ @article{Krien2019 @article{Kunes2011, author = {Kuneš, Jan}, date = {2011-02}, - journal = {Physical Review B}, title = {Efficient treatment of two-particle vertices in dynamical mean-field theory}, doi = {10.1103/PhysRevB.83.085102}, number = {8}, pages = {085102}, volume = {83}, + journal = {Physical Review B}, numpages = {8}, publisher = {American Physical Society} } @@ -652,36 +651,36 @@ @article{Kunes2011 @article{Li2020, author = {Li, Jia and Wallerberger, Markus and Chikano, Naoya and Yeh, Chia-Nan and Gull, Emanuel and Shinaoka, Hiroshi}, date = {2020}, - journal = {Physical Review B}, title = {Sparse sampling approach to efficient ab initio calculations at finite temperature}, doi = {10.1103/physrevb.101.035144}, number = {3}, pages = {035144}, - volume = {101} + volume = {101}, + journal = {Physical Review B} } @article{Shinaoka2020, author = {Shinaoka, Hiroshi and Geffroy, Dominique and Wallerberger, Markus and Otsuki, Junya and Yoshimi, Kazuyoshi and Gull, Emanuel and Kuneš, Jan}, date = {2020}, - journal = {SciPost Physics}, title = {Sparse sampling and tensor network representation of two-particle Green's functions}, doi = {10.21468/scipostphys.8.1.012}, issn = {2542-4653}, number = {1}, pages = {012–23}, url = {https://scipost.org/SciPostPhys.8.1.012/pdf}, - volume = {8} + volume = {8}, + journal = {SciPost Physics} } @article{Rohringer2012, author = {Rohringer, G. and Valli, A. and Toschi, A.}, date = {2012-09}, - journal = {Physical Review B}, title = {Local electronic correlation at the two-particle level}, doi = {10.1103/PhysRevB.86.125114}, number = {12}, pages = {125114}, volume = {86}, + journal = {Physical Review B}, numpages = {26}, publisher = {American Physical Society} } @@ -690,12 +689,12 @@ @article{Rohringer2012 @article{Schaefer2013, author = {Schäfer, T. and Rohringer, G. and Gunnarsson, O. and Ciuchi, S. and Sangiovanni, G. and Toschi, A.}, date = {2013-06}, - journal = {Physical Review Letters}, title = {Divergent Precursors of the Mott–Hubbard Transition at the Two-Particle Level}, doi = {10.1103/PhysRevLett.110.246405}, number = {24}, pages = {246405}, volume = {110}, + journal = {Physical Review Letters}, numpages = {5}, publisher = {American Physical Society} } @@ -703,12 +702,12 @@ @article{Schaefer2013 @article{Schaefer2016, author = {Schäfer, T. and Ciuchi, S. and Wallerberger, M. and Thunström, P. and Gunnarsson, O. and Sangiovanni, G. and Rohringer, G. and Toschi, A.}, date = {2016-12}, - journal = {Physical Review B}, title = {Nonperturbative landscape of the Mott–Hubbard transition: Multiple divergence lines around the critical endpoint}, doi = {10.1103/PhysRevB.94.235108}, number = {23}, pages = {235108}, volume = {94}, + journal = {Physical Review B}, numpages = {25}, publisher = {American Physical Society} } @@ -716,12 +715,12 @@ @article{Schaefer2016 @article{Krien2019a, author = {Krien, Friedrich and Valli, Angelo and Capone, Massimo}, date = {2019-10}, - journal = {Physical Review B}, title = {Single-boson exchange decomposition of the vertex function}, doi = {10.1103/PhysRevB.100.155149}, number = {15}, pages = {155149}, volume = {100}, + journal = {Physical Review B}, numpages = {15}, publisher = {American Physical Society} } @@ -729,12 +728,12 @@ @article{Krien2019a @article{Thunstroem2018, author = {Thunström, P. and Gunnarsson, O. and Ciuchi, Sergio and Rohringer, G.}, date = {2018-12}, - journal = {Physical Review B}, title = {Analytical investigation of singularities in two-particle irreducible vertex functions of the Hubbard atom}, doi = {10.1103/PhysRevB.98.235107}, number = {23}, pages = {235107}, volume = {98}, + journal = {Physical Review B}, numpages = {16}, publisher = {American Physical Society} } @@ -743,12 +742,12 @@ @article{Thunstroem2018 @article{Fong2011, author = {David Chin-Lung Fong and Michael Saunders}, date = {2011}, - journal = {SIAM Journal on Scientific Computing}, title = {LSMR: An Iterative Algorithm for Sparse Least-Squares Problems}, doi = {10.1137/10079687X}, number = {5}, pages = {2950–2971}, - volume = {33} + volume = {33}, + journal = {SIAM Journal on Scientific Computing} } @book{Saad2003, @@ -764,12 +763,12 @@ @book{Saad2003 @article{Chikano2019, author = {Naoya Chikano and Kazuyoshi Yoshimi and Junya Otsuki and Hiroshi Shinaoka}, date = {2019}, - journal = {Computer Physics Communications}, title = {irbasis: Open-source database and software for inter\mediate-representation basis functions of imaginary-time Green's function}, doi = {10.1016/j.cpc.2019.02.006}, pages = {181–188}, url = {https://www.sciencedirect.com/science/article/pii/S001046551930058X}, - volume = {240} + volume = {240}, + journal = {Computer Physics Communications} } @book{Mahan2000, @@ -782,74 +781,74 @@ @book{Mahan2000 @article{Nomoto2020, author = {Nomoto, Takuya and Koretsune, Takashi and Arita, Ryotaro}, date = {2020}, - journal = {Physical Review Letters}, title = {Formation Mechanism of the Helical Q Structure in Gd-Based Skyr\-mion Materials}, doi = {10.1103/physrevlett.125.117204}, issn = {0031-9007}, number = {11}, pages = {117204}, volume = {125}, + journal = {Physical Review Letters}, pmid = {32975986} } @article{Nomoto2020a, author = {Nomoto, Takuya and Koretsune, Takashi and Arita, Ryotaro}, date = {2020}, - journal = {Physical Review B}, title = {Local force method for the ab initio tight-binding model: Effect of spin-dependent hopping on exchange interactions}, doi = {10.1103/physrevb.102.014444}, eprint = {2003.11162}, issn = {2469-9950}, number = {1}, pages = {014444}, - volume = {102} + volume = {102}, + journal = {Physical Review B} } @article{Nomura2020, author = {Nomura, Yusuke and Nomoto, Takuya and Hirayama, Motoaki and Arita, Ryotaro}, date = {2020}, - journal = {Physical Review Research}, title = {Magnetic exchange coupling in cuprate-analog d9 nickelates}, doi = {10.1103/physrevresearch.2.043144}, eprint = {2006.16943}, number = {4}, pages = {043144}, - volume = {2} + volume = {2}, + journal = {Physical Review Research} } @article{Iskakov2020, author = {Iskakov, Sergei and Yeh, Chia-Nan and Gull, Emanuel and Zgid, Dominika}, date = {2020}, - journal = {Physical Review B}, title = {Ab initio self-energy embedding for the photoemission spectra of NiO and MnO}, doi = {10.1103/physrevb.102.085105}, eprint = {2003.04440}, issn = {2469-9950}, number = {8}, pages = {085105}, - volume = {102} + volume = {102}, + journal = {Physical Review B} } @article{Otsuki2020, author = {Otsuki, Junya and Ohzeki, Masayuki and Shinaoka, Hiroshi and Yoshimi, Kazuyoshi}, date = {2020}, - journal = {Journal of the Physical Society of Japan}, title = {Sparse Modeling in Quantum Many-Body Problems}, doi = {10.7566/jpsj.89.012001}, number = {1}, pages = {012001}, - volume = {89} + volume = {89}, + journal = {Journal of the Physical Society of Japan} } @article{Krien2020, author = {Krien, Friedrich and Valli, Angelo and Chalupa, Patrick and Capone, Massimo and Lichtenstein, Alexander I. and Toschi, Alessandro}, date = {2020-11}, - journal = {Physical Review B}, title = {Boson-exchange parquet solver for dual fermions}, doi = {10.1103/PhysRevB.102.195131}, number = {19}, pages = {195131}, volume = {102}, + journal = {Physical Review B}, numpages = {17}, publisher = {American Physical Society} } @@ -858,12 +857,12 @@ @article{Krien2020 @article{Krien2021, author = {Krien, Friedrich and Kauch, Anna and Held, Karsten}, date = {2021-02}, - journal = {Physical Review Research}, title = {Tiling with triangles: parquet and $GW\ensuremath{\gamma}$ methods unified}, doi = {10.1103/PhysRevResearch.3.013149}, number = {1}, pages = {013149}, volume = {3}, + journal = {Physical Review Research}, numpages = {12}, publisher = {American Physical Society} } @@ -871,12 +870,12 @@ @article{Krien2021 @article{Astleithner2020, author = {Astleithner, K. and Kauch, A. and Ribic, T. and Held, K.}, date = {2020-04}, - journal = {Physical Review B}, title = {Parquet dual fermion approach for the Falicov-Kimball model}, doi = {10.1103/PhysRevB.101.165101}, number = {16}, pages = {165101}, volume = {101}, + journal = {Physical Review B}, numpages = {10}, publisher = {American Physical Society} } @@ -895,12 +894,12 @@ @misc{Kauch2019 @article{Pudleiner2019a, author = {Pudleiner, P. and Thunström, P. and Valli, A. and Kauch, A. and Li, G. and Held, K.}, date = {2019-03}, - journal = {Physical Review B}, title = {Parquet approximation for molecules: Spectrum and optical conductivity of the Pariser-Parr-Pople model}, doi = {10.1103/PhysRevB.99.125111}, number = {12}, pages = {125111}, volume = {99}, + journal = {Physical Review B}, numpages = {12}, publisher = {American Physical Society} } @@ -909,41 +908,38 @@ @article{Pudleiner2019a @article{Pudleiner2019, author = {Pudleiner, Petra and Kauch, Anna and Held, Karsten and Li, Gang}, date = {2019-08}, - journal = {Physical Review B}, title = {Competition between antiferromagnetic and charge density wave fluctuations in the extended Hubbard model}, doi = {10.1103/PhysRevB.100.075108}, number = {7}, pages = {075108}, volume = {100}, + journal = {Physical Review B}, numpages = {10}, publisher = {American Physical Society} } - - @article{Wallerberger2021, author = {Wallerberger, Markus and Shinaoka, Hiroshi and Kauch, Anna}, date = {2021-08}, - journal = {Physical Review Research}, title = {Solving the Bethe-Salpeter equation with exponential convergence}, doi = {10.1103/PhysRevResearch.3.033168}, number = {3}, pages = {033168}, volume = {3}, + journal = {Physical Review Research}, numpages = {18}, publisher = {American Physical Society} } - @article{Kaufmann2021, author = {Kaufmann, Josef and Eckhardt, Christian and Pickem, Matthias and Kitatani, Motoharu and Kauch, Anna and Held, Karsten}, date = {2021-01}, - journal = {Physical Review B}, title = {Self-consistent ladder dynamical vertex approximation}, doi = {10.1103/PhysRevB.103.035120}, number = {3}, pages = {035120}, volume = {103}, + journal = {Physical Review B}, numpages = {19}, publisher = {American Physical Society} } @@ -952,26 +948,25 @@ @article{Kaufmann2021 @article{Kaye2021, author = {Jason Kaye and Denis Golež}, date = {2021}, - journal = {SciPost Physics}, title = {Low rank compression in the numerical solution of the nonequilibrium Dyson equation}, doi = {10.21468/SciPostPhys.10.4.091}, number = {4}, pages = {91}, volume = {10}, + journal = {SciPost Physics}, publisher = {SciPost} } @article{Kaltak2020, author = {Kaltak, Merzuk and Kresse, Georg}, date = {2020-05}, - journal = {Physical Review B}, title = {Minimax isometry method: A compressive sensing approach for Matsubara summation in many-body perturbation theory}, doi = {10.1103/PhysRevB.101.205145}, issn = {2469-9969}, number = {20}, - number = {20}, pages = {205145}, volume = {101}, + journal = {Physical Review B}, numpages = {17}, publisher = {American Physical Society} } @@ -979,23 +974,23 @@ @article{Kaltak2020 @article{Dong2020, author = {Dong,Xinyang and Zgid,Dominika and Gull,Emanuel and Strand,Hugo U. R.}, date = {2020}, - journal = {The Journal of Chemical Physics}, title = {Legendre-spectral Dyson equation solver with super-exponential convergence}, doi = {10.1063/5.0003145}, number = {13}, pages = {134107}, - volume = {152} + volume = {152}, + journal = {The Journal of Chemical Physics} } @article{Boehnke2011, author = {Boehnke, Lewin and Hafermann, Hartmut and Ferrero, Michel and Lechermann, Frank and Parcollet, Olivier}, date = {2011-08}, - journal = {Physical Review B}, title = {Orthogonal polynomial representation of imaginary-time Green's functions}, doi = {10.1103/PhysRevB.84.075145}, number = {7}, pages = {075145}, volume = {84}, + journal = {Physical Review B}, numpages = {13}, publisher = {American Physical Society} } @@ -1003,12 +998,12 @@ @article{Boehnke2011 @article{Gull2018, author = {Gull, Emanuel and Iskakov, Sergei and Krivenko, Igor and Rusakov, Alexander A. and Zgid, Dominika}, date = {2018-08}, - journal = {Physical Review B}, title = {Chebyshev polynomial representation of imaginary-time response functions}, doi = {10.1103/PhysRevB.98.075127}, number = {7}, pages = {075127}, volume = {98}, + journal = {Physical Review B}, numpages = {10}, publisher = {American Physical Society} } @@ -1016,12 +1011,12 @@ @article{Gull2018 @article{Kaltak2014, author = {Kaltak, Merzuk and Klime\ifmmode \check{s}\else \v{s}\fi{}, Ji\ifmmode \check{r}\else \v{r}\fi{}\'{\i} and Kresse, Georg}, date = {2014-08}, - journal = {Physical Review B}, title = {Cubic scaling algorithm for the random phase approximation: Self-interstitials and vacancies in Si}, doi = {10.1103/PhysRevB.90.054115}, number = {5}, pages = {054115}, volume = {90}, + journal = {Physical Review B}, numpages = {11}, publisher = {American Physical Society} } @@ -1029,12 +1024,12 @@ @article{Kaltak2014 @article{Ku2002, author = {Ku, Wei and Eguiluz, Adolfo G.}, date = {2002-08}, - journal = {Physical Review Letters}, title = {Band-Gap Problem in Semiconductors Revisited: Effects of Core States and Many-Body Self-Consistency}, doi = {10.1103/PhysRevLett.89.126401}, number = {12}, pages = {126401}, volume = {89}, + journal = {Physical Review Letters}, numpages = {4}, publisher = {American Physical Society} } @@ -1043,12 +1038,12 @@ @article{Ku2002 @article{Witt2021, author = {Witt, Niklas and van Loon, Erik G. C. P. and Nomoto, Takuya and Arita, Ryotaro and Wehling, Tim O.}, date = {2021-05}, - journal = {Physical Review B}, title = {Efficient fluctuation-exchange approach to low-temperature spin fluctuations and superconductivity: From the Hubbard model to ${\mathrm{Na}}_{x}{\mathrm{CoO}}_{2}\ifmmode\cdot\else\textperiodcentered\fi{}{y\mathrm{H}}_{2}\mathrm{O}$}, doi = {10.1103/PhysRevB.103.205148}, number = {20}, pages = {205148}, volume = {103}, + journal = {Physical Review B}, numpages = {12}, publisher = {American Physical Society} } @@ -1056,35 +1051,35 @@ @article{Witt2021 @article{DeDominicis1964, author = {De Dominicis,Cyrano and Martin,Paul C.}, date = {1964}, - journal = {Journal of Mathematical Physics}, title = {Stationary Entropy Principle and Renormalization in Normal and Superfluid Systems. II. Diagrammatic Formulation}, doi = {10.1063/1.1704064}, number = {1}, pages = {31–59}, - volume = {5} + volume = {5}, + journal = {Journal of Mathematical Physics} } @article{Diatlov1957, author = {Diatlov, I T and Sudakov, V V and Ter-Martirosian, K A}, date = {1957-11}, - journal = {Soviet Phys. JETP}, title = {ASYMPTOTIC MESON-MESON SCATTERING THEORY}, url = {https://www.osti.gov/biblio/4338008}, volume = {5}, + journal = {Soviet Phys. JETP}, place = {Country unknown/Code not available} } @article{Wallerberger2019, author = {Markus Wallerberger and Andreas Hausoel and Patrik Gunacker and Alexander Kowalski and Nicolaus Parragh and Florian Goth and Karsten Held and Giorgio Sangiovanni}, date = {2019}, - journal = {Computer Physics Communications}, title = {w2dynamics: Local one- and two-particle quantities from dynamical mean field theory}, doi = {10.1016/j.cpc.2018.09.007}, issn = {0010-4655}, pages = {388–399}, url = {http://www.sciencedirect.com/science/article/pii/S0010465518303217}, volume = {235}, + journal = {Computer Physics Communications}, keywords = {(continuous-time) quantum Monte Carlo, Anderson impurity model, Dynamical mean field theory, Green\textquoterights functions} } @@ -1093,12 +1088,12 @@ @article{Wallerberger2019 @article{Shinaoka2021, author = {Hiroshi Shinaoka and Junya Otsuki and Mitsuaki Kawamura and Nayuta Takemori and Kazuyoshi Yoshimi}, date = {2021}, - journal = {SciPost Physics}, title = {DCore: Integrated DMFT software for correlated electrons}, doi = {10.21468/SciPostPhys.10.5.117}, number = {5}, pages = {117}, volume = {10}, + journal = {SciPost Physics}, publisher = {SciPost} } @@ -1106,13 +1101,13 @@ @article{Shinaoka2021 @article{Schwarz2002, author = {K. Schwarz and P. Blaha and G. K. H. Madsen}, date = {2002}, - journal = {Computer Physics Communications}, title = {Electronic structure calculations of solids using the WIEN2k package for material sciences}, doi = {10.1016/S0010-4655(02)00206-0}, issn = {0010-4655}, pages = {71–76}, url = {http://www.sciencedirect.com/science/article/B6TJ5-45HWTK3-1/2/587e362e22aaa2e8e66c005aef5b2571}, volume = {147}, + journal = {Computer Physics Communications}, keywords = {Density functional theory}, owner = {georg}, timestamp = {2013.10.01} @@ -1121,7 +1116,6 @@ @article{Schwarz2002 @article{Kunes2010, author = {Jan Kuneš and Ryotaro Arita and Philipp Wissgott and Alessandro Toschi and Hiroaki Ikeda and Karsten Held}, date = {2010}, - journal = {Computer Physics Communications}, title = {Wien2wannier: From linearized augmented plane waves to maximally localized Wannier functions}, doi = {10.1016/j.cpc.2010.08.005}, issn = {0010-4655}, @@ -1129,18 +1123,19 @@ @article{Kunes2010 pages = {1888–1895}, url = {http://www.sciencedirect.com/science/article/pii/S0010465510002948}, volume = {181}, + journal = {Computer Physics Communications}, keywords = {Electronic structure, Density functional theory, Wannier functions, Augmented plane waves, Wien2K, Wannier90} } @article{Bauer2011, author = {B Bauer and L D Carr and H G Evertz and A Feiguin and J Freire and S Fuchs and L Gamper and J Gukelberger and E Gull and S Guertler and A Hehn and R Igarashi and S V Isakov and D Koop and P N Ma and P Mates and H Matsuo and O Parcollet and G Pawłowski and J D Picon and L Pollet and E Santos and V W Scarola and U Schollwöck and C Silva and B Surer and S Todo and S Trebst and M Troyer and M L Wall and P Werner and S Wessel}, date = {2011-05}, - journal = {Journal of Statistical Mechanics: Theory and Experiment}, title = {The ALPS project release 2.0: open source software for strongly correlated systems}, doi = {10.1088/1742-5468/2011/05/p05001}, number = {05}, pages = {P05001}, volume = {2011}, + journal = {Journal of Statistical Mechanics: Theory and Experiment}, publisher = {IOP Publishing} } @@ -1148,12 +1143,12 @@ @article{Bauer2011 @article{Valli2015, author = {Valli, A. and Schäfer, T. and Thunström, P. and Rohringer, G. and Andergassen, S. and Sangiovanni, G. and Held, K. and Toschi, A.}, date = {2015-03}, - journal = {Physical Review B}, title = {Dynamical vertex approximation in its parquet implementation: Application to Hubbard nanorings}, doi = {10.1103/PhysRevB.91.115115}, number = {11}, pages = {115115}, volume = {91}, + journal = {Physical Review B}, numpages = {13}, publisher = {American Physical Society} } @@ -1161,18 +1156,17 @@ @article{Valli2015 @article{Hohenstein2012, author = {Hohenstein,Edward G. and Parrish,Robert M. and Martínez,Todd J.}, date = {2012}, - journal = {The Journal of Chemical Physics}, title = {Tensor hypercontraction density fitting. I. Quartic scaling second- and third-order Møller-Plesset perturbation theory}, doi = {10.1063/1.4732310}, number = {4}, pages = {044103}, - volume = {137} + volume = {137}, + journal = {The Journal of Chemical Physics} } @article{Schollwoeck2011, author = {Ulrich Schollwöck}, date = {2011}, - journal = {Annals of Physics}, title = {The density-matrix renormalization group in the age of matrix product states}, doi = {10.1016/j.aop.2010.09.012}, issn = {0003-4916}, @@ -1180,25 +1174,25 @@ @article{Schollwoeck2011 number = {1}, pages = {96–192}, url = {https://www.sciencedirect.com/science/article/pii/S0003491610001752}, - volume = {326} + volume = {326}, + journal = {Annals of Physics} } @article{Hubbard1963, author = {Hubbard, J. and Flowers, Brian Hilton}, date = {1963}, - journal = {Proceedings of the Royal Society of London. Series A. Mathematical and Physical Sciences}, title = {Electron correlations in narrow energy bands}, doi = {10.1098/rspa.1963.0204}, number = {1365}, pages = {238–257}, volume = {276}, + journal = {Proceedings of the Royal Society of London. Series A. Mathematical and Physical Sciences}, ranking = {rank2} } @article{Anderson1965, author = {Anderson, Donald G.}, date = {1965-10}, - journal = {Journal of the ACM}, title = {Iterative Procedures for Nonlinear Integral Equations}, doi = {10.1145/321296.321305}, issn = {0004-5411}, @@ -1206,6 +1200,7 @@ @article{Anderson1965 pages = {547–560}, volume = {12}, issue_date = {Oct. 1965}, + journal = {Journal of the ACM}, location = {New York, NY, USA}, numpages = {14}, publisher = {Association for Computing Machinery} @@ -1214,23 +1209,23 @@ @article{Anderson1965 @article{Walker2011, author = {Walker, Homer F. and Ni, Peng}, date = {2011}, - journal = {SIAM Journal on Numerical Analysis}, title = {Anderson Acceleration for Fixed-Point Iterations}, doi = {10.1137/10078356X}, number = {4}, pages = {1715–1735}, - volume = {49} + volume = {49}, + journal = {SIAM Journal on Numerical Analysis} } @article{Monkhorst1976, author = {Monkhorst, Hendrik J. and Pack, James D.}, date = {1976-06}, - journal = {Physical Review B}, title = {Special points for Brillouin-zone integrations}, doi = {10.1103/PhysRevB.13.5188}, number = {12}, pages = {5188–5192}, volume = {13}, + journal = {Physical Review B}, numpages = {0}, publisher = {American Physical Society} } @@ -1247,7 +1242,6 @@ @book{Ashcroft1976 @article{Weideman2002, author = {J. A. C. Weideman}, date = {2002}, - journal = {The American Mathematical Monthly}, title = {Numerical Integration of Periodic Functions: A Few Examples}, issn = {00029890, 19300972}, number = {1}, @@ -1255,6 +1249,7 @@ @article{Weideman2002 url = {http://www.jstor.org/stable/2695765}, urldate = {2024-05-06}, volume = {109}, + journal = {The American Mathematical Monthly}, publisher = {Mathematical Association of America} } @@ -1280,8 +1275,8 @@ @misc{Kelley2022 @article{Chen2016, author = {Chen, Jiahao and Revels, Jarrett}, date = {2016}, - journal = {arXiv preprint arXiv:1608.04295}, - title = {Robust benchmarking in noisy environments} + title = {Robust benchmarking in noisy environments}, + journal = {arXiv preprint arXiv:1608.04295} } @book{Negele1988, @@ -1298,24 +1293,24 @@ @book{Negele1988 @article{Bezanson2017, author = {Bezanson, Jeff and Edelman, Alan and Karpinski, Stefan and Shah, Viral B}, date = {2017}, - journal = {SIAM review}, title = {Julia: A fresh approach to numerical computing}, doi = {10.1137/141000671}, number = {1}, pages = {65–98}, volume = {59}, + journal = {SIAM review}, publisher = {SIAM} } @article{Shinaoka2023, author = {Shinaoka, Hiroshi and Wallerberger, Markus and Murakami, Yuta and Nogaki, Kosuke and Sakurai, Rihito and Werner, Philipp and Kauch, Anna}, date = {2023-04}, - journal = {Physical Review X}, title = {Multiscale Space-Time Ansatz for Correlation Functions of Quantum Systems Based on Quantics Tensor Trains}, doi = {10.1103/PhysRevX.13.021015}, number = {2}, pages = {021015}, volume = {13}, + journal = {Physical Review X}, numpages = {27}, publisher = {American Physical Society} } @@ -1323,14 +1318,13 @@ @article{Shinaoka2023 @article{Ritter2024, author = {Ritter, Marc K. and Núñez Fernández, Yuriel and Wallerberger, Markus and von Delft, Jan and Shinaoka, Hiroshi and Waintal, Xavier}, date = {2024-01}, - journal = {Physical Review Letters}, title = {Quantics Tensor Cross Interpolation for High-Resolution Parsimonious Representations of Multivariate Functions}, doi = {10.1103/PhysRevLett.132.056501}, issn = {1079-7114}, number = {5}, - number = {5}, pages = {056501}, volume = {132}, + journal = {Physical Review Letters}, numpages = {6}, publisher = {American Physical Society} } @@ -1338,12 +1332,12 @@ @article{Ritter2024 @article{NunezFernandez2022, author = {Núñez Fernández, Yuriel and Jeannin, Matthieu and Dumitrescu, Philipp T. and Kloss, Thomas and Kaye, Jason and Parcollet, Olivier and Waintal, Xavier}, date = {2022-11}, - journal = {Physical Review X}, title = {Learning Feynman Diagrams with Tensor Trains}, doi = {10.1103/PhysRevX.12.041018}, number = {4}, pages = {041018}, volume = {12}, + journal = {Physical Review X}, numpages = {30}, publisher = {American Physical Society} } @@ -1357,14 +1351,13 @@ @unpublished{Michalek2024 @article{Wang2020, author = {Wang, Tianchun and Nomoto, Takuya and Nomura, Yusuke and Shinaoka, Hiroshi and Otsuki, Junya and Koretsune, Takashi and Arita, Ryotaro}, date = {2020-10}, - journal = {Physical Review B}, title = {Efficient ab initio Migdal–Eliashberg calculation considering the retardation effect in phonon-mediated superconductors}, doi = {10.1103/physrevb.102.134503}, issn = {2469-9950}, number = {13}, - number = {13}, pages = {134503}, volume = {102}, + journal = {Physical Review B}, numpages = {8}, publisher = {American Physical Society} } @@ -1372,12 +1365,12 @@ @article{Wang2020 @article{Kauch2020, author = {Kauch, A. and Pudleiner, P. and Astleithner, K. and Thunström, P. and Ribic, T. and Held, K.}, date = {2020-01}, - journal = {Physical Review Letters}, title = {Generic Optical Excitations of Correlated Systems: $\pi$-tons}, doi = {10.1103/PhysRevLett.124.047401}, number = {4}, pages = {047401}, volume = {124}, + journal = {Physical Review Letters}, numpages = {6}, publisher = {American Physical Society} } @@ -1385,12 +1378,12 @@ @article{Kauch2020 @article{Astretsov2020, author = {Astretsov, Grigory V. and Rohringer, Georg and Rubtsov, Alexey N.}, date = {2020-02}, - journal = {Physical Review B}, title = {Dual parquet scheme for the two-dimensional Hubbard model: Modeling low-energy physics of high-$T_c$ cuprates with high momentum resolution}, doi = {10.1103/PhysRevB.101.075109}, number = {7}, pages = {075109}, volume = {101}, + journal = {Physical Review B}, numpages = {17}, publisher = {American Physical Society} } @@ -1398,12 +1391,12 @@ @article{Astretsov2020 @article{Kitatani2019, author = {Kitatani, Motoharu and Schäfer, Thomas and Aoki, Hideo and Held, Karsten}, date = {2019-01}, - journal = {Physical Review B}, title = {Why the critical temperature of high-$T_c$ cuprate superconductors is so low: The importance of the dynamical vertex structure}, doi = {10.1103/PhysRevB.99.041115}, number = {4}, pages = {041115}, volume = {99}, + journal = {Physical Review B}, numpages = {6}, publisher = {American Physical Society} } @@ -1411,11 +1404,11 @@ @article{Kitatani2019 @article{CruzUribe2002, author = {Cruz-Uribe, David and Neugebauer, Christoph J}, date = {2002}, - journal = {J. Inequal. Pure Appl. Math}, title = {Sharp error bounds for the trapezoidal rule and Simpson's rule}, number = {4}, pages = {1--22}, - volume = {3} + volume = {3}, + journal = {J. Inequal. Pure Appl. Math} } @misc{Helton2022, @@ -1425,4 +1418,14 @@ @misc{Helton2022 url = {https://github.com/JuliaMath/Bessels.jl} } +@article{Shinaoka2022, + author = {Shinaoka, Hiroshi and Chikano, Naoya and Gull, Emanuel and Li, Jia and Nomoto, Takuya and Otsuki, Junya and Wallerberger, Markus and Wang, Tianchun and Yoshimi, Kazuyoshi}, + date = {2022-09}, + journaltitle = {SciPost Physics Lecture Notes}, + title = {Efficient ab initio many-body calculations based on sparse modeling of Matsubara Green’s function}, + doi = {10.21468/scipostphyslectnotes.63}, + issn = {2590-1990}, + publisher = {Stichting SciPost} +} + @Comment{jabref-meta: databaseType:biblatex;}