diff --git a/Manifest.toml b/Manifest.toml index e2dfc214..be1d67dc 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.10.5" manifest_format = "2.0" -project_hash = "a8d39c98fbf089d5b72e82a89504c42d025cd3fe" +project_hash = "df083838dcb0ae9dcf03416445c6036591b3cd37" [[deps.ADTypes]] git-tree-sha1 = "eea5d80188827b35333801ef97a40c2ed653b081" @@ -211,9 +211,9 @@ version = "1.1.0" [[deps.CairoMakie]] deps = ["CRC32c", "Cairo", "Cairo_jll", "Colors", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"] -git-tree-sha1 = "2b04b60ed9d3e977f93e34952971b608c34b3401" +git-tree-sha1 = "7947d2b61995eda7d5ca50c697b12bb578b918e5" uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" -version = "0.12.13" +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"] @@ -505,9 +505,9 @@ version = "3.3.10+1" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] -git-tree-sha1 = "82d8afa92ecf4b52d78d869f038ebfb881267322" +git-tree-sha1 = "62ca0547a14c57e98154423419d8a342dca75ca9" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.16.3" +version = "1.16.4" [[deps.FilePaths]] deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"] @@ -841,9 +841,9 @@ version = "0.5.5" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] -git-tree-sha1 = "f389674c99bfcde17dc57454011aa44d5a260a40" +git-tree-sha1 = "be3dc50a92e5a386872a493a10050136d4703f9b" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.6.0" +version = "1.6.1" [[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] @@ -888,14 +888,9 @@ uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" version = "2.10.2+1" [[deps.LaTeXStrings]] -git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" -version = "1.3.1" - -[[deps.LambertW]] -git-tree-sha1 = "c5ffc834de5d61d00d2b0e18c96267cffc21f648" -uuid = "984bce1d-4616-540c-a9ee-88d1112d94c9" -version = "0.4.6" +version = "1.4.0" [[deps.Latexify]] deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] @@ -1039,9 +1034,9 @@ 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 = "50ebda951efaa11b6db0413c1128726b8eab3bf0" +git-tree-sha1 = "3df66da15ba7b37b34f6557b7e1c95a3ff5c670b" uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" -version = "0.21.13" +version = "0.21.14" [[deps.MakieCore]] deps = ["ColorTypes", "GeometryBasics", "IntervalSets", "Observables"] @@ -1102,15 +1097,15 @@ version = "2023.1.10" [[deps.MultivariatePolynomials]] deps = ["ChainRulesCore", "DataStructures", "LinearAlgebra", "MutableArithmetics"] -git-tree-sha1 = "5c1d1d9361e1417e5a065e1f84dc3686cbdaea21" +git-tree-sha1 = "8d39779e29f80aa6c071e7ac17101c6e31f075d7" uuid = "102ac46a-7ee4-5c85-9060-abc95bfdeaa3" -version = "0.5.6" +version = "0.5.7" [[deps.MutableArithmetics]] deps = ["LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "3eba928678787843e504c153a9b8e80d7d73ab17" +git-tree-sha1 = "90077f1e79de8c9c7c8a90644494411111f4e07b" uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" -version = "1.5.0" +version = "1.5.2" [[deps.NaNMath]] deps = ["OpenLibm_jll"] @@ -1264,10 +1259,10 @@ uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" version = "0.3.3" [[deps.PlotUtils]] -deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] -git-tree-sha1 = "7b1a9df27f072ac4c9c7cbe5efb198489258d1f5" +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "StableRNGs", "Statistics"] +git-tree-sha1 = "650a022b2ce86c7dcfbdecf00f78afeeb20e5655" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" -version = "1.4.1" +version = "1.4.2" [[deps.PolygonOps]] git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" @@ -1442,9 +1437,9 @@ version = "2024.5.8+0" [[deps.SciMLBase]] deps = ["ADTypes", "Accessors", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "Expronicon", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "d01eebc2dbd30c83a857ae8fcc7f12ea6bd5b10c" +git-tree-sha1 = "50ed64cd5ad79b0bef71fdb6a11d10c3448bfef0" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.56.0" +version = "2.56.1" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -1561,6 +1556,12 @@ 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" @@ -1635,9 +1636,9 @@ version = "7.2.1+1" [[deps.SymbolicIndexingInterface]] deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] -git-tree-sha1 = "0225f7c62f5f78db35aae6abb2e5cabe38ce578f" +git-tree-sha1 = "4bc96df5d71515b1cb86dd626915f06f4c0d46f5" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.31" +version = "0.3.33" [[deps.SymbolicLimits]] deps = ["SymbolicUtils"] @@ -1647,9 +1648,9 @@ version = "0.2.2" [[deps.SymbolicUtils]] deps = ["AbstractTrees", "ArrayInterface", "Bijections", "ChainRulesCore", "Combinatorics", "ConstructionBase", "DataStructures", "DocStringExtensions", "DynamicPolynomials", "IfElse", "LinearAlgebra", "MultivariatePolynomials", "NaNMath", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "TermInterface", "TimerOutputs", "Unityper"] -git-tree-sha1 = "3927e02dc7648a45ec6aa592bcd8374094a44740" +git-tree-sha1 = "04e9157537ba51dad58336976f8d04b9ab7122f0" uuid = "d1185830-fcd6-423d-90d6-eec64667417b" -version = "3.7.1" +version = "3.7.2" [deps.SymbolicUtils.extensions] SymbolicUtilsLabelledArraysExt = "LabelledArrays" @@ -1660,10 +1661,10 @@ version = "3.7.1" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" [[deps.Symbolics]] -deps = ["ADTypes", "ArrayInterface", "Bijections", "CommonWorldInvalidations", "ConstructionBase", "DataStructures", "DiffRules", "Distributions", "DocStringExtensions", "DomainSets", "DynamicPolynomials", "IfElse", "LaTeXStrings", "LambertW", "Latexify", "Libdl", "LinearAlgebra", "LogExpFunctions", "MacroTools", "Markdown", "NaNMath", "PrecompileTools", "Primes", "RecipesBase", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArraysCore", "SymbolicIndexingInterface", "SymbolicLimits", "SymbolicUtils", "TermInterface"] -git-tree-sha1 = "6a7c7cd9bd8c051877a5a29fb597b18362dbc4e4" +deps = ["ADTypes", "ArrayInterface", "Bijections", "CommonWorldInvalidations", "ConstructionBase", "DataStructures", "DiffRules", "Distributions", "DocStringExtensions", "DomainSets", "DynamicPolynomials", "IfElse", "LaTeXStrings", "Latexify", "Libdl", "LinearAlgebra", "LogExpFunctions", "MacroTools", "Markdown", "NaNMath", "PrecompileTools", "Primes", "RecipesBase", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArraysCore", "SymbolicIndexingInterface", "SymbolicLimits", "SymbolicUtils", "TermInterface"] +git-tree-sha1 = "aa3218c29b81384531631b2e5354fdf034a13ec2" uuid = "0c5d862f-8b57-4792-8d23-62f2024744c7" -version = "6.13.1" +version = "6.14.1" [deps.Symbolics.extensions] SymbolicsForwardDiffExt = "ForwardDiff" @@ -1731,15 +1732,15 @@ version = "1.0.0" [[deps.TiffImages]] deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "SIMD", "UUIDs"] -git-tree-sha1 = "bc7fd5c91041f44636b2c134041f7e5263ce58ae" +git-tree-sha1 = "38f139cc4abf345dd4f22286ec000728d5e8e097" uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" -version = "0.10.0" +version = "0.10.2" [[deps.TimerOutputs]] deps = ["ExprTools", "Printf"] -git-tree-sha1 = "5a13ae8a41237cff5ecf34f73eb1b8f42fff6531" +git-tree-sha1 = "3a6f063d690135f5c1ba351412c82bae4d1402bf" uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.24" +version = "0.5.25" [[deps.TrajectoryIndexingUtils]] git-tree-sha1 = "108da5f045005c9b57e6713ea84aca49d77fccaa" diff --git a/Project.toml b/Project.toml index 5feef8dc..b94c6830 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "QuantumCollocation" uuid = "0dc23a59-5ffb-49af-b6bd-932a8ae77adf" authors = ["Aaron Trowbridge and contributors"] -version = "0.3.0" +version = "0.3.1" [deps] BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" @@ -42,7 +42,7 @@ MathOptInterface = "1.31" NamedTrajectories = "0.2" ProgressMeter = "1.10" Reexport = "1.2" -Symbolics = "6.11" +Symbolics = "6.14" TestItemRunner = "1.0" TestItems = "1.0" TrajectoryIndexingUtils = "0.1" diff --git a/README.md b/README.md index 728b30a0..dc64b0dc 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,12 @@ Documentation is built using [Documenter.jl](https://github.com/JuliaDocs/Docume julia --project=docs ``` +Then run the following commands in the Julia REPL: + +``` +] instantiate +``` + Then (for ease of development) load the following packages: ```julia diff --git a/docs/Manifest.toml b/docs/Manifest.toml index b5a57e3d..ac3df053 100644 --- a/docs/Manifest.toml +++ b/docs/Manifest.toml @@ -5,9 +5,9 @@ manifest_format = "2.0" project_hash = "46fa82f4324d65b2cf462382aecded8067fca5f1" [[deps.ADTypes]] -git-tree-sha1 = "99a6f5d0ce1c7c6afdb759daa30226f71c54f6b0" +git-tree-sha1 = "eea5d80188827b35333801ef97a40c2ed653b081" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "1.7.1" +version = "1.9.0" [deps.ADTypes.extensions] ADTypesChainRulesCoreExt = "ChainRulesCore" @@ -221,21 +221,21 @@ version = "1.1.0" [[deps.CairoMakie]] deps = ["CRC32c", "Cairo", "Cairo_jll", "Colors", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"] -git-tree-sha1 = "4f827b38d3d9ffe6e3b01fbcf866c625fa259ca5" +git-tree-sha1 = "7947d2b61995eda7d5ca50c697b12bb578b918e5" uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" -version = "0.12.11" +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 = "a2f1c8c668c8e3cb4cca4e57a8efdb09067bb3fd" +git-tree-sha1 = "009060c9a6168704143100f36ab08f06c2af4642" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.18.0+2" +version = "1.18.2+1" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "71acdbf594aab5bbb2cec89b208c41b4c411e49f" +git-tree-sha1 = "3e4b134270b372f2ed4d4d0e936aabaefc1802bc" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.24.0" +version = "1.25.0" weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] @@ -392,10 +392,10 @@ deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" [[deps.DelaunayTriangulation]] -deps = ["AdaptivePredicates", "EnumX", "ExactPredicates", "Random"] -git-tree-sha1 = "94eb20e6621600f4315813b1d1fc9b8a5a6a34db" +deps = ["AdaptivePredicates", "EnumX", "ExactPredicates", "PrecompileTools", "Random"] +git-tree-sha1 = "668bb97ea6df5e654e6288d87d2243591fe68665" uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" -version = "1.4.0" +version = "1.6.0" [[deps.DiffResults]] deps = ["StaticArraysCore"] @@ -415,9 +415,9 @@ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[deps.Distributions]] deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] -git-tree-sha1 = "e6c693a0e4394f8fda0e51a5bdf5aef26f8235e9" +git-tree-sha1 = "d7477ecdafb813ddee2ae727afa94e9dcb5f3fb0" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.111" +version = "0.25.112" [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" @@ -533,15 +533,15 @@ version = "1.8.0" [[deps.FFTW_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" +git-tree-sha1 = "4d81ed14783ec49ce9f2e168208a12ce1815aa25" uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" -version = "3.3.10+0" +version = "3.3.10+1" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] -git-tree-sha1 = "82d8afa92ecf4b52d78d869f038ebfb881267322" +git-tree-sha1 = "62ca0547a14c57e98154423419d8a342dca75ca9" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.16.3" +version = "1.16.4" [[deps.FilePaths]] deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"] @@ -654,9 +654,9 @@ version = "0.4.2" [[deps.GeoInterface]] deps = ["Extents", "GeoFormatTypes"] -git-tree-sha1 = "5921fc0704e40c024571eca551800c699f86ceb4" +git-tree-sha1 = "2f6fce56cdb8373637a6614e14a5768a88450de2" uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" -version = "1.3.6" +version = "1.3.7" [[deps.GeometryBasics]] deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] @@ -678,15 +678,15 @@ version = "1.3.1" [[deps.Git_jll]] deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "d18fb8a1f3609361ebda9bf029b60fd0f120c809" +git-tree-sha1 = "ea372033d09e4552a04fd38361cd019f9003f4f4" uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb" -version = "2.44.0+2" +version = "2.46.2+0" [[deps.Glib_jll]] deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "7c82e6a6cd34e9d935e9aa4051b66c6ff3af59ba" +git-tree-sha1 = "674ff0db93fffcd11a3573986e550d66cd4fd71f" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.80.2+0" +version = "2.80.5+0" [[deps.Graphics]] deps = ["Colors", "LinearAlgebra", "NaNMath"] @@ -725,9 +725,9 @@ version = "8.3.1+0" [[deps.Hwloc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "5e19e1e4fa3e71b774ce746274364aef0234634e" +git-tree-sha1 = "dd3b49277ec2bb2c6b94eb1604d4d0616016f7a6" uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" -version = "2.11.1+0" +version = "2.11.2+0" [[deps.HypergeometricFunctions]] deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] @@ -825,9 +825,9 @@ weakdeps = ["Unitful"] [[deps.IntervalArithmetic]] deps = ["CRlibm_jll", "MacroTools", "RoundingEmulator"] -git-tree-sha1 = "fe30dec78e68f27fc416901629c6e24e9d5f057b" +git-tree-sha1 = "8e125d40cae3a9f4276cdfeb4fcdb1828888a4b3" uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" -version = "0.22.16" +version = "0.22.17" weakdeps = ["DiffRules", "ForwardDiff", "IntervalSets", "LinearAlgebra", "RecipesBase"] [deps.IntervalArithmetic.extensions] @@ -849,9 +849,9 @@ weakdeps = ["Random", "RecipesBase", "Statistics"] IntervalSetsStatisticsExt = "Statistics" [[deps.InverseFunctions]] -git-tree-sha1 = "2787db24f4e03daf859c6509ff87764e4182f7d1" +git-tree-sha1 = "a779299d77cd080bf77b97535acecd73e1c5e5cb" uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.16" +version = "0.1.17" weakdeps = ["Dates", "Test"] [deps.InverseFunctions.extensions] @@ -893,15 +893,15 @@ version = "1.0.0" [[deps.JLD2]] deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "PrecompileTools", "Requires", "TranscodingStreams"] -git-tree-sha1 = "1dbe274ad1c199490b19a153b60a9e46c5386f8d" +git-tree-sha1 = "aeab5c68eb2cf326619bf71235d8f4561c62fe22" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.5.1" +version = "0.5.5" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] -git-tree-sha1 = "f389674c99bfcde17dc57454011aa44d5a260a40" +git-tree-sha1 = "be3dc50a92e5a386872a493a10050136d4703f9b" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.6.0" +version = "1.6.1" [[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] @@ -917,9 +917,9 @@ version = "0.1.5" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "c84a835e1a09b289ffcd2271bf2a337bbdda6637" +git-tree-sha1 = "25ee0be4d43d0269027024d75a24c24d6c6e590c" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "3.0.3+0" +version = "3.0.4+0" [[deps.JuliaInterpreter]] deps = ["CodeTracking", "InteractiveUtils", "Random", "UUIDs"] @@ -947,19 +947,14 @@ version = "18.1.7+0" [[deps.LZO_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "70c5da094887fd2cae843b8db33920bac4b6f07d" +git-tree-sha1 = "854a9c268c43b77b0a27f22d7fab8d33cdb3a731" uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" -version = "2.10.2+0" +version = "2.10.2+1" [[deps.LaTeXStrings]] -git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" -version = "1.3.1" - -[[deps.LambertW]] -git-tree-sha1 = "c5ffc834de5d61d00d2b0e18c96267cffc21f648" -uuid = "984bce1d-4616-540c-a9ee-88d1112d94c9" -version = "0.4.6" +version = "1.4.0" [[deps.Latexify]] deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] @@ -1060,9 +1055,9 @@ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[deps.Literate]] deps = ["Base64", "IOCapture", "JSON", "REPL"] -git-tree-sha1 = "b9b38448af801760a608b7a7f895f7dcf166f4a5" +git-tree-sha1 = "4319d0117713e6c91a26a52485d9b89cdbc364c5" uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" -version = "2.19.1" +version = "2.20.0" [[deps.LiveServer]] deps = ["HTTP", "LoggingExtras", "MIMEs", "Pkg", "Sockets", "Test"] @@ -1097,9 +1092,9 @@ version = "1.0.3" [[deps.LoweredCodeUtils]] deps = ["JuliaInterpreter"] -git-tree-sha1 = "c2b5e92eaf5101404a58ce9c6083d595472361d6" +git-tree-sha1 = "260dc274c1bc2cb839e758588c63d9c8b5e639d1" uuid = "6f1432cf-f94c-5a45-995e-cdbf5db27b0b" -version = "3.0.2" +version = "3.0.5" [[deps.METIS_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1137,15 +1132,15 @@ 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 = "2281aaf0685e5e8a559982d32f17d617a949b9cd" +git-tree-sha1 = "3df66da15ba7b37b34f6557b7e1c95a3ff5c670b" uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" -version = "0.21.11" +version = "0.21.14" [[deps.MakieCore]] deps = ["ColorTypes", "GeometryBasics", "IntervalSets", "Observables"] -git-tree-sha1 = "22fed09860ca73537a36d4e5a9bce0d9e80ee8a8" +git-tree-sha1 = "4604f03e5b057e8e62a95a44929cafc9585b0fe9" uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" -version = "0.8.8" +version = "0.8.9" [[deps.MappedArrays]] git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e" @@ -1206,15 +1201,15 @@ version = "2023.1.10" [[deps.MultivariatePolynomials]] deps = ["ChainRulesCore", "DataStructures", "LinearAlgebra", "MutableArithmetics"] -git-tree-sha1 = "5c1d1d9361e1417e5a065e1f84dc3686cbdaea21" +git-tree-sha1 = "8d39779e29f80aa6c071e7ac17101c6e31f075d7" uuid = "102ac46a-7ee4-5c85-9060-abc95bfdeaa3" -version = "0.5.6" +version = "0.5.7" [[deps.MutableArithmetics]] deps = ["LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "d0a6b1096b584a2b88efb70a92f8cb8c881eb38a" +git-tree-sha1 = "90077f1e79de8c9c7c8a90644494411111f4e07b" uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" -version = "1.4.6" +version = "1.5.2" [[deps.NaNMath]] deps = ["OpenLibm_jll"] @@ -1294,9 +1289,9 @@ version = "1.4.3" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "1b35263570443fdd9e76c76b7062116e2f374ab8" +git-tree-sha1 = "7493f61f55a6cce7325f197443aa80d32554ba10" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.0.15+0" +version = "3.0.15+1" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -1374,10 +1369,10 @@ uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" version = "0.3.3" [[deps.PlotUtils]] -deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] -git-tree-sha1 = "7b1a9df27f072ac4c9c7cbe5efb198489258d1f5" +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "StableRNGs", "Statistics"] +git-tree-sha1 = "650a022b2ce86c7dcfbdecf00f78afeeb20e5655" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" -version = "1.4.1" +version = "1.4.2" [[deps.PolygonOps]] git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" @@ -1429,9 +1424,9 @@ version = "1.0.0" [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] -git-tree-sha1 = "1d587203cf851a51bf1ea31ad7ff89eff8d625ea" +git-tree-sha1 = "cda3b045cf9ef07a08ad46731f5a3165e56cf3da" uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" -version = "2.11.0" +version = "2.11.1" [deps.QuadGK.extensions] QuadGKEnzymeExt = "Enzyme" @@ -1443,7 +1438,7 @@ version = "2.11.0" deps = ["BenchmarkTools", "CairoMakie", "Distributions", "Einsum", "ExponentialAction", "ForwardDiff", "IJulia", "Interpolations", "Ipopt", "JLD2", "Libdl", "LinearAlgebra", "MathOptInterface", "NamedTrajectories", "ProgressMeter", "Random", "Reexport", "SparseArrays", "Symbolics", "TestItemRunner", "TestItems", "TrajectoryIndexingUtils"] path = ".." uuid = "0dc23a59-5ffb-49af-b6bd-932a8ae77adf" -version = "0.2.2" +version = "0.3.1" [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] @@ -1525,9 +1520,9 @@ version = "1.3.0" [[deps.Revise]] deps = ["CodeTracking", "Distributed", "FileWatching", "JuliaInterpreter", "LibGit2", "LoweredCodeUtils", "OrderedCollections", "REPL", "Requires", "UUIDs", "Unicode"] -git-tree-sha1 = "7b7850bb94f75762d567834d7e9802fc22d62f9c" +git-tree-sha1 = "7f4228017b83c66bd6aa4fddeb170ce487e53bc7" uuid = "295af30f-e4ad-537b-8983-00126c2a3abe" -version = "3.5.18" +version = "3.6.2" [[deps.Rmath]] deps = ["Random", "Rmath_jll"] @@ -1558,9 +1553,9 @@ version = "0.7.0" [[deps.SIMD]] deps = ["PrecompileTools"] -git-tree-sha1 = "2803cab51702db743f3fda07dd1745aadfbf43bd" +git-tree-sha1 = "98ca7c29edd6fc79cd74c61accb7010a4e7aee33" uuid = "fdea26ae-647d-5447-a871-4b548cad5224" -version = "3.5.0" +version = "3.6.0" [[deps.SPRAL_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "Libdl", "METIS_jll", "libblastrampoline_jll"] @@ -1570,9 +1565,9 @@ version = "2024.5.8+0" [[deps.SciMLBase]] deps = ["ADTypes", "Accessors", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "Expronicon", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "c96f81c3e98d5e2f0848fb42aba4383d772c3bb7" +git-tree-sha1 = "50ed64cd5ad79b0bef71fdb6a11d10c3448bfef0" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.53.1" +version = "2.56.1" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -1648,9 +1643,9 @@ uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" version = "0.4.0" [[deps.SimpleBufferStream]] -git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +git-tree-sha1 = "f305871d2f381d21527c770d4788c06c097c9bc1" uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" -version = "1.1.0" +version = "1.2.0" [[deps.SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] @@ -1694,6 +1689,12 @@ 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" @@ -1768,9 +1769,9 @@ version = "7.2.1+1" [[deps.SymbolicIndexingInterface]] deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] -git-tree-sha1 = "988e04b34a4c3b824fb656f542473df99a4f610d" +git-tree-sha1 = "4bc96df5d71515b1cb86dd626915f06f4c0d46f5" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.30" +version = "0.3.33" [[deps.SymbolicLimits]] deps = ["SymbolicUtils"] @@ -1780,9 +1781,9 @@ version = "0.2.2" [[deps.SymbolicUtils]] deps = ["AbstractTrees", "ArrayInterface", "Bijections", "ChainRulesCore", "Combinatorics", "ConstructionBase", "DataStructures", "DocStringExtensions", "DynamicPolynomials", "IfElse", "LinearAlgebra", "MultivariatePolynomials", "NaNMath", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "TermInterface", "TimerOutputs", "Unityper"] -git-tree-sha1 = "635cc663e7913678362a6e34bfab5f9b8feb97c4" +git-tree-sha1 = "04e9157537ba51dad58336976f8d04b9ab7122f0" uuid = "d1185830-fcd6-423d-90d6-eec64667417b" -version = "3.7.0" +version = "3.7.2" [deps.SymbolicUtils.extensions] SymbolicUtilsLabelledArraysExt = "LabelledArrays" @@ -1793,10 +1794,10 @@ version = "3.7.0" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" [[deps.Symbolics]] -deps = ["ADTypes", "ArrayInterface", "Bijections", "CommonWorldInvalidations", "ConstructionBase", "DataStructures", "DiffRules", "Distributions", "DocStringExtensions", "DomainSets", "DynamicPolynomials", "IfElse", "LaTeXStrings", "LambertW", "Latexify", "Libdl", "LinearAlgebra", "LogExpFunctions", "MacroTools", "Markdown", "NaNMath", "PrecompileTools", "Primes", "RecipesBase", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArraysCore", "SymbolicIndexingInterface", "SymbolicLimits", "SymbolicUtils", "TermInterface"] -git-tree-sha1 = "2226d810512c678d2ec9c2a9b2e227c2ebc43573" +deps = ["ADTypes", "ArrayInterface", "Bijections", "CommonWorldInvalidations", "ConstructionBase", "DataStructures", "DiffRules", "Distributions", "DocStringExtensions", "DomainSets", "DynamicPolynomials", "IfElse", "LaTeXStrings", "Latexify", "Libdl", "LinearAlgebra", "LogExpFunctions", "MacroTools", "Markdown", "NaNMath", "PrecompileTools", "Primes", "RecipesBase", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArraysCore", "SymbolicIndexingInterface", "SymbolicLimits", "SymbolicUtils", "TermInterface"] +git-tree-sha1 = "aa3218c29b81384531631b2e5354fdf034a13ec2" uuid = "0c5d862f-8b57-4792-8d23-62f2024744c7" -version = "6.11.0" +version = "6.14.1" [deps.Symbolics.extensions] SymbolicsForwardDiffExt = "ForwardDiff" @@ -1864,15 +1865,15 @@ version = "1.0.0" [[deps.TiffImages]] deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "SIMD", "UUIDs"] -git-tree-sha1 = "bc7fd5c91041f44636b2c134041f7e5263ce58ae" +git-tree-sha1 = "38f139cc4abf345dd4f22286ec000728d5e8e097" uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" -version = "0.10.0" +version = "0.10.2" [[deps.TimerOutputs]] deps = ["ExprTools", "Printf"] -git-tree-sha1 = "5a13ae8a41237cff5ecf34f73eb1b8f42fff6531" +git-tree-sha1 = "3a6f063d690135f5c1ba351412c82bae4d1402bf" uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.24" +version = "0.5.25" [[deps.TrajectoryIndexingUtils]] git-tree-sha1 = "108da5f045005c9b57e6713ea84aca49d77fccaa" @@ -1880,9 +1881,9 @@ uuid = "6dad8b7f-dd9a-4c28-9b70-85b9a079bfc8" version = "0.1.0" [[deps.TranscodingStreams]] -git-tree-sha1 = "e84b3a11b9bece70d14cce63406bbc79ed3464d2" +git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.11.2" +version = "0.11.3" [[deps.TriplotBase]] git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" @@ -2049,21 +2050,21 @@ version = "2.0.3+0" [[deps.libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "d7015d2e18a5fd9a4f47de711837e980519781a4" +git-tree-sha1 = "b70c870239dc3d7bc094eb2d6be9b73d27bef280" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.43+1" +version = "1.6.44+0" [[deps.libsixel_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] -git-tree-sha1 = "d4f63314c8aa1e48cd22aa0c17ed76cd1ae48c3c" +git-tree-sha1 = "7dfa0fd9c783d3d0cc43ea1af53d69ba45c447df" uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" -version = "1.10.3+0" +version = "1.10.3+1" [[deps.libsodium_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "848ab3d00fe39d6fbc2a8641048f8f272af1c51e" +git-tree-sha1 = "f76d682d87eefadd3f165d8d9fda436464213142" uuid = "a9144af2-ca23-56d9-984f-0d03f7b5ccf8" -version = "1.0.20+0" +version = "1.0.20+1" [[deps.libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] diff --git a/docs/literate/examples/two_qubit_gates.jl b/docs/literate/examples/two_qubit_gates.jl index c0cb6e0b..12557264 100644 --- a/docs/literate/examples/two_qubit_gates.jl +++ b/docs/literate/examples/two_qubit_gates.jl @@ -76,7 +76,7 @@ sys = QuantumSystem(H_drift, H_drives) ## Look at max eigenvalue of the generator (for deciding if Pade integrators are viable) maximum(abs.(eigvals(Δt_max * (H_drift + sum(a_bound .* H_drives))))) -# That this value above is greater than one means that we must use an exponential integrator for these problems. We can set the kwarg `integrator=:exponential` in `the PiccoloOptions` struct as follows. +# That this value above is greater than one means that we must use an exponential integrator for these problems. We can set the kwarg `integrator=:exponential` in the [`PiccoloOptions`](@ref) struct as follows. piccolo_options = PiccoloOptions( integrator=:exponential, diff --git a/docs/literate/man/losses.jl b/docs/literate/man/losses.jl deleted file mode 100644 index dc98cde1..00000000 --- a/docs/literate/man/losses.jl +++ /dev/null @@ -1,7 +0,0 @@ -# # Losses - -# ## Unitary Losses - -# ```@docs -# Losses.isovec_unitary_fidelity -# ``` diff --git a/docs/literate/man/utils.jl b/docs/literate/man/utils.jl deleted file mode 100644 index da5856da..00000000 --- a/docs/literate/man/utils.jl +++ /dev/null @@ -1,13 +0,0 @@ -# # Utilities - -# ## Gates - -# ## States - -# ## Operators - -# ## Isomorphisms - -# ## Measurements - -# ## Subspaces diff --git a/docs/make.jl b/docs/make.jl index 5c7e5b96..d56a1f17 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -14,8 +14,6 @@ pages = [ "Contribution Guide" => "contribution_guide.md", "Manual" => [ "Problem Templates" => "generated/man/problem_templates.md", - "Utilities" => "generated/man/utils.md", - "Losses" => "generated/man/losses.md", "Embedded Operators" => "generated/man/embedded_operators.md", ], "Examples" => [ @@ -28,7 +26,7 @@ pages = [ format = Documenter.HTML(; prettyurls=get(ENV, "CI", "false") == "true", - canonical="https://aarontrowbridge.github.io/QuantumCollocation.jl", + canonical="https://kestrelquantum.github.io/QuantumCollocation.jl", edit_link="main", assets=String[], mathengine = MathJax3(Dict( diff --git a/docs/src/generated/examples/two_qubit_gates.md b/docs/src/generated/examples/two_qubit_gates.md index da2cdd3b..8bf811bd 100644 --- a/docs/src/generated/examples/two_qubit_gates.md +++ b/docs/src/generated/examples/two_qubit_gates.md @@ -82,7 +82,7 @@ sys = QuantumSystem(H_drift, H_drives) maximum(abs.(eigvals(Δt_max * (H_drift + sum(a_bound .* H_drives))))) ```` -That this value above is greater than one means that we must use an exponential integrator for these problems. We can set the kwarg `integrator=:exponential` in `the PiccoloOptions` struct as follows. +That this value above is greater than one means that we must use an exponential integrator for these problems. We can set the kwarg `integrator=:exponential` in the [`PiccoloOptions`](@ref) struct as follows. ````@example two_qubit_gates piccolo_options = PiccoloOptions( diff --git a/docs/src/generated/man/losses.md b/docs/src/generated/man/losses.md deleted file mode 100644 index 9c5db3bd..00000000 --- a/docs/src/generated/man/losses.md +++ /dev/null @@ -1,16 +0,0 @@ -```@meta -EditURL = "../../../literate/man/losses.jl" -``` - -# Losses - -## Unitary Losses - -```@docs -Losses.isovec_unitary_fidelity -``` - ---- - -*This page was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).* - diff --git a/docs/src/generated/man/utils.md b/docs/src/generated/man/utils.md deleted file mode 100644 index 4693fd5d..00000000 --- a/docs/src/generated/man/utils.md +++ /dev/null @@ -1,22 +0,0 @@ -```@meta -EditURL = "../../../literate/man/utils.jl" -``` - -# Utilities - -## Gates - -## States - -## Operators - -## Isomorphisms - -## Measurements - -## Subspaces - ---- - -*This page was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).* - diff --git a/docs/src/index.md b/docs/src/index.md index c3a4c7af..e871525b 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -6,6 +6,14 @@ CurrentModule = QuantumCollocation *Direct Collocation for Quantum Optimal Control* ([arXiv](https://arxiv.org/abs/2305.03261)) +Check out our JuliaCon 2023 talk: + +```@raw html +
+ +
+``` + ## Motivation In quantum optimal control, we are interested in finding a pulse sequence $a_{1:T-1}$ to drive a quantum system and realize a target gate $U_{\text{goal}}$. We formulate this problem as a nonlinear program (NLP) of the form diff --git a/docs/src/release_notes.md b/docs/src/release_notes.md index 9c172f93..559b03a1 100644 --- a/docs/src/release_notes.md +++ b/docs/src/release_notes.md @@ -2,11 +2,29 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v0.3.1] - 2024-10-17 + +### Fixed + +- Fixed and added tests to [`RydbergChainSystem`](@ref) + +## [v0.3.0] - 2024-10-10 + +### Added + +- [`PiccoloOptions`] (@ref) to handle custome problem settings. + +## Changed + +- Refactored trajectory initialization functions +- Improved documentation +- Typo fixes + ## [v0.2.0] - 2024-02-22 ### Added -- `EmbeddedOperators` to handle subspace gate optimization and leakage suppression +- [`EmbeddedOperator`](@ref) to handle subspace gate optimization and leakage suppression - Plotting methods for unitary populations ### Changed diff --git a/src/QuantumCollocation.jl b/src/QuantumCollocation.jl index efaf4055..83b2e042 100644 --- a/src/QuantumCollocation.jl +++ b/src/QuantumCollocation.jl @@ -58,7 +58,7 @@ include("trajectory_initialization.jl") @reexport using .TrajectoryInitialization include("trajectory_interpolations.jl") -@reexport using .TrajectoryInterpolation +@reexport using .TrajectoryInterpolations include("problem_templates/_problem_templates.jl") @reexport using .ProblemTemplates diff --git a/src/options.jl b/src/options.jl index 39fe0f59..be15c839 100644 --- a/src/options.jl +++ b/src/options.jl @@ -55,7 +55,31 @@ end """ - Solver settings for Quantum Collocation. + PiccoloOptions + +Options for the Piccolo quantum optimal control library. + +# Fields +- `verbose::Bool = true`: Print verbose output +- `verbose_evaluator::Bool = false`: Print verbose output from the evaluator +- `free_time::Bool = true`: Allow free time optimization +- `timesteps_all_equal::Bool = true`: Use equal timesteps +- `integrator::Symbol = :pade`: Integrator to use +- `pade_order::Int = 4`: Order of the Pade approximation +- `rollout_integrator::Function = expv`: Integrator to use for rollout +- `jacobian_structure::Bool = integrator == :pade`: Use the integrator's Jacobian structure +- `eval_hessian::Bool = false`: Evaluate the Hessian +- `geodesic = true`: Use the geodesic to initialize the optimization. +- `blas_multithreading::Bool = true`: Use BLAS multithreading. +- `build_trajectory_constraints::Bool = true`: Build trajectory constraints. +- `complex_control_norm_constraint_name::Union{Nothing, Symbol} = nothing`: Name of the complex control norm constraint. +- `complex_control_norm_constraint_radius::Float64 = 1.0`: Radius of the complex control norm constraint. +- `bound_state::Bool = false`: Bound the state. +- `leakage_suppression::Bool = false`: Suppress leakage. +- `R_leakage::Float64 = 1.0`: Leakage suppression parameter. +- `free_phase_infidelity::Bool = false`: Free phase infidelity. +- `phase_operators::Union{Nothing, AbstractVector{<:AbstractMatrix{<:Complex}}} = nothing`: Phase operators. +- `phase_name::Symbol = :ϕ`: Name of the phase. """ @kwdef mutable struct PiccoloOptions <: AbstractOptions verbose::Bool = true @@ -64,9 +88,9 @@ end timesteps_all_equal::Bool = true integrator::Symbol = :pade pade_order::Int = 4 - eval_hessian::Bool = false jacobian_structure::Bool = integrator == :pade rollout_integrator::Function = expv + eval_hessian::Bool = false geodesic = true blas_multithreading::Bool = true build_trajectory_constraints::Bool = true diff --git a/src/problem_solvers.jl b/src/problem_solvers.jl index b407a5ba..d1e8e928 100644 --- a/src/problem_solvers.jl +++ b/src/problem_solvers.jl @@ -18,8 +18,12 @@ function solve!( max_iter::Int=prob.ipopt_options.max_iter, linear_solver::String=prob.ipopt_options.linear_solver, print_level::Int=prob.ipopt_options.print_level, - remove_slack_variables=false + remove_slack_variables::Bool=false, + # state_type::Symbol=:unitary, + # print_fidelity::Bool=false, ) + # @assert state_type in (:ket, :unitary, :density_matrix) "Invalid state type: $state_type must be one of :ket, :unitary, or :density_matrix" + prob.ipopt_options.max_iter = max_iter prob.ipopt_options.linear_solver = linear_solver prob.ipopt_options.print_level = print_level @@ -32,6 +36,15 @@ function solve!( set_trajectory!(prob) end + # if print_fidelity + # if state_type == :ket + # fids = fidelity(prob) + # println("\nInitial Fidelities: $fids") + # elseif state_type == :unitary + # fids = unitary_fidelity(prob) + # println("\nInitial Fidelity: $fids") + + MOI.optimize!(prob.optimizer) update_trajectory!(prob) diff --git a/src/problem_templates/quantum_state_smooth_pulse_problem.jl b/src/problem_templates/quantum_state_smooth_pulse_problem.jl index 027097b8..70623d96 100644 --- a/src/problem_templates/quantum_state_smooth_pulse_problem.jl +++ b/src/problem_templates/quantum_state_smooth_pulse_problem.jl @@ -3,6 +3,8 @@ export QuantumStateSmoothPulseProblem """ QuantumStateSmoothPulseProblem(system, ψ_inits, ψ_goals, T, Δt; kwargs...) + QuantumStateSmoothPulseProblem(system, ψ_init, ψ_goal, T, Δt; kwargs...) + QuantumStateSmoothPulseProblem(H_drift, H_drives, args...; kwargs...) Create a quantum state smooth pulse problem. The goal is to find a control pulse `a(t)` that drives all of the initial states `ψ_inits` to the corresponding @@ -10,11 +12,20 @@ target states `ψ_goals` using `T` timesteps of size `Δt`. This problem also co # Arguments - `system::AbstractQuantumSystem`: The quantum system. +or +- `H_drift::AbstractMatrix{<:Number}`: The drift Hamiltonian. +- `H_drives::Vector{<:AbstractMatrix{<:Number}}`: The control Hamiltonians. +with - `ψ_inits::Vector{<:AbstractVector{<:ComplexF64}}`: The initial states. - `ψ_goals::Vector{<:AbstractVector{<:ComplexF64}}`: The target states. +or +- `ψ_init::AbstractVector{<:ComplexF64}`: The initial state. +- `ψ_goal::AbstractVector{<:ComplexF64}`: The target state. +with - `T::Int`: The number of timesteps. - `Δt::Float64`: The timestep size. + # Keyword Arguments - `ipopt_options::IpoptOptions=IpoptOptions()`: The IPOPT options. - `piccolo_options::PiccoloOptions=PiccoloOptions()`: The Piccolo options. @@ -40,6 +51,8 @@ target states `ψ_goals` using `T` timesteps of size `Δt`. This problem also co - `leakage_operator::Union{Nothing, EmbeddedOperator}=nothing`: The leakage operator, if leakage suppression is desired. - `constraints::Vector{<:AbstractConstraint}=AbstractConstraint[]`: The constraints. """ +function QuantumStateSmoothPulseProblem end + function QuantumStateSmoothPulseProblem( system::AbstractQuantumSystem, ψ_inits::Vector{<:AbstractVector{<:ComplexF64}}, diff --git a/src/problem_templates/unitary_bang_bang_problem.jl b/src/problem_templates/unitary_bang_bang_problem.jl index ac05a252..5cdcee73 100644 --- a/src/problem_templates/unitary_bang_bang_problem.jl +++ b/src/problem_templates/unitary_bang_bang_problem.jl @@ -3,15 +3,16 @@ export UnitaryBangBangProblem @doc raw""" UnitaryBangBangProblem(system::QuantumSystem, operator, T, Δt; kwargs...) + UnitaryBangBangProblem(H_drift, H_drives, operator, T, Δt; kwargs...) Construct a `QuantumControlProblem` for a free-time unitary gate problem with bang-bang control pulses. ```math \begin{aligned} \underset{\vec{\tilde{U}}, a, \dot{a}, \Delta t}{\text{minimize}} & \quad -Q \cdot \ell\qty(\vec{\tilde{U}}_T, \vec{\tilde{U}}_{\text{goal}}) + \frac{1}{2} \sum_t \qty(R_a a_t^2 + R_{\dot{a}} \dot{a}_t^2) \\ +Q \cdot \ell\qty(\vec{\tilde{U}}_T, \vec{\tilde{U}}_{\text{goal}}) + R_{\text{bang-bang}} \cdot \sum_t |\dot{a}_t| \\ \text{ subject to } & \quad \vb{P}^{(n)}\qty(\vec{\tilde{U}}_{t+1}, \vec{\tilde{U}}_t, a_t, \Delta t_t) = 0 \\ -& a_{t+1} - a_t - \dot{a}_t \Delta t_t = 0 \\ +& \quad a_{t+1} - a_t - \dot{a}_t \Delta t_t = 0 \\ & \quad |a_t| \leq a_{\text{bound}} \\ & \quad |\dot{a}_t| \leq da_{\text{bound}} \\ & \quad \Delta t_{\text{min}} \leq \Delta t_t \leq \Delta t_{\text{max}} \\ @@ -63,10 +64,9 @@ with - `R_bang_bang::Union{Float64, Vector{Float64}}=1e-1`: the weight on the bang-bang regularization term - `global_data::Union{NamedTuple, Nothing}=nothing`: global data to be used in the problem - `constraints::Vector{<:AbstractConstraint}=AbstractConstraint[]`: the constraints to enforce - -TODO: control modulus norm, advanced feature, needs documentation - """ +function UnitaryBangBangProblem end + function UnitaryBangBangProblem( system::AbstractQuantumSystem, operator::OperatorType, @@ -193,19 +193,6 @@ function UnitaryBangBangProblem( ) end - -""" - UnitaryBangBangProblem( - H_drift::AbstractMatrix{<:Number}, - H_drives::Vector{<:AbstractMatrix{<:Number}}, - operator, - T, - Δt; - kwargs... - ) - -Constructor for a `UnitaryBangBangProblem` from a drift Hamiltonian and a set of control Hamiltonians. -""" function UnitaryBangBangProblem( H_drift::AbstractMatrix{<:Number}, H_drives::Vector{<:AbstractMatrix{<:Number}}, diff --git a/src/problem_templates/unitary_smooth_pulse_problem.jl b/src/problem_templates/unitary_smooth_pulse_problem.jl index f0d30f04..10986998 100644 --- a/src/problem_templates/unitary_smooth_pulse_problem.jl +++ b/src/problem_templates/unitary_smooth_pulse_problem.jl @@ -2,7 +2,8 @@ export UnitarySmoothPulseProblem @doc raw""" - UnitarySmoothPulseProblem(system, operator, T, Δt; kwargs...) + UnitarySmoothPulseProblem(system::AbstractQuantumSystem, operator, T, Δt; kwargs...) + UnitarySmoothPulseProblem(H_drift, H_drives, operator, T, Δt; kwargs...) Construct a `QuantumControlProblem` for a free-time unitary gate problem with smooth control pulses enforced by constraining the second derivative of the pulse trajectory, i.e., @@ -11,7 +12,7 @@ Construct a `QuantumControlProblem` for a free-time unitary gate problem with sm \underset{\vec{\tilde{U}}, a, \dot{a}, \ddot{a}, \Delta t}{\text{minimize}} & \quad Q \cdot \ell\qty(\vec{\tilde{U}}_T, \vec{\tilde{U}}_{\text{goal}}) + \frac{1}{2} \sum_t \qty(R_a a_t^2 + R_{\dot{a}} \dot{a}_t^2 + R_{\ddot{a}} \ddot{a}_t^2) \\ \text{ subject to } & \quad \vb{P}^{(n)}\qty(\vec{\tilde{U}}_{t+1}, \vec{\tilde{U}}_t, a_t, \Delta t_t) = 0 \\ -& a_{t+1} - a_t - \dot{a}_t \Delta t_t = 0 \\ +& \quad a_{t+1} - a_t - \dot{a}_t \Delta t_t = 0 \\ & \quad \dot{a}_{t+1} - \dot{a}_t - \ddot{a}_t \Delta t_t = 0 \\ & \quad |a_t| \leq a_{\text{bound}} \\ & \quad |\ddot{a}_t| \leq \ddot{a}_{\text{bound}} \\ @@ -30,10 +31,10 @@ is the *infidelity* objective function, $Q$ is a weight, $R_a$, $R_{\dot{a}}$, a # Arguments +- `system::AbstractQuantumSystem`: the system to be controlled +or - `H_drift::AbstractMatrix{<:Number}`: the drift hamiltonian - `H_drives::Vector{<:AbstractMatrix{<:Number}}`: the control hamiltonians -or -- `system::QuantumSystem`: the system to be controlled with - `operator::OperatorType`: the target unitary, either in the form of an `EmbeddedOperator` or a `Matrix{ComplexF64} - `T::Int`: the number of timesteps @@ -188,19 +189,6 @@ function UnitarySmoothPulseProblem( ) end - -""" - UnitarySmoothPulseProblem( - H_drift::AbstractMatrix{<:Number}, - H_drives::Vector{<:AbstractMatrix{<:Number}}, - operator, - T, - Δt; - kwargs... - ) - -Constructor for a `UnitarySmoothPulseProblem` from a drift Hamiltonian and a set of control Hamiltonians. -""" function UnitarySmoothPulseProblem( H_drift::AbstractMatrix{<:Number}, H_drives::Vector{<:AbstractMatrix{<:Number}}, diff --git a/src/quantum_object_utils.jl b/src/quantum_object_utils.jl index 08f12ec3..eb38a006 100644 --- a/src/quantum_object_utils.jl +++ b/src/quantum_object_utils.jl @@ -122,17 +122,17 @@ operator_from_string(operator::String; lookup::Dict{Symbol, AbstractMatrix}=PAUL function operator_from_string( operator::String; lookup::Dict{Symbol, <:AbstractMatrix}=PAULIS -) +)::Matrix{ComplexF64} # TODO: allow multi-character keys, ['(', ')'] # split string into keys and replace with operators characters = [Symbol(c) for c ∈ operator] operators = replace(characters, lookup...) - return Matrix{ComplexF64}(foldr(kron, operators)) + return foldr(kron, operators) end -function cavity_state(state::Int, levels::Int) +function cavity_state(state::Int, levels::Int)::Vector{ComplexF64} @assert state ≤ levels - 1 "Level $state is not allowed for $levels levels" ket = zeros(levels) ket[state + 1] = 1 @@ -158,7 +158,7 @@ function ket_from_string( levels::Vector{Int}; level_dict=Dict(:g => 0, :e => 1, :f => 2, :h => 2), return_states=false -) +)::Vector{ComplexF64} kets = [] for x ∈ split(ket, ['(', ')']) @@ -207,11 +207,11 @@ end Get the state vector for a qubit system given a ket string `ket` of 0s and 1s. """ -function ket_from_bitstring(ket::String) +function ket_from_bitstring(ket::String)::Vector{ComplexF64} cs = [c for c ∈ ket] @assert all(c ∈ "01" for c ∈ cs) states = [c == '0' ? [1, 0] : [0, 1] for c ∈ cs] - return Vector{ComplexF64}(foldr(kron, states)) + return foldr(kron, states) end ### diff --git a/src/trajectory_interpolations.jl b/src/trajectory_interpolations.jl index 317590d2..88ec1fad 100644 --- a/src/trajectory_interpolations.jl +++ b/src/trajectory_interpolations.jl @@ -1,4 +1,4 @@ -module TrajectoryInterpolation +module TrajectoryInterpolations export DataInterpolation