diff --git a/.entangled/build/Makefile b/.entangled/build/Makefile new file mode 100644 index 0000000..79ec941 --- /dev/null +++ b/.entangled/build/Makefile @@ -0,0 +1,37 @@ + +# This Makefile is generated by Entangled. Modifications will be overwritten. + +.RECIPEPREFIX = > +.PHONY = all + +all: docs/src/fig/tanh.svg docs/src/fig/b13-fig2.svg data/bs92-sealevel-curve.csv docs/src/fig/bs92-fig8.png docs/src/fig/b13-fig3.png docs/src/fig/b13-long-term.png data/caps-osc.h5 docs/src/fig/b13-capsosc-crosssection.png data/ca-prod-slope.h5 docs/src/fig/b13-crosssection.png + +docs/src/fig/tanh.svg: examples/plot-tanh.gnuplot +> gnuplot examples/plot-tanh.gnuplot > $@ + +docs/src/fig/b13-fig2.svg: examples/burgess2013-fig2.gnuplot +> gnuplot examples/burgess2013-fig2.gnuplot > $@ + +data/bs92-sealevel-curve.csv: src/BS92/fig8-sealevel.jl data/bs92-sealevel-input.png +> julia --project=. --startup-file=no -e 'using DaemonMode; runargs()' src/BS92/fig8-sealevel.jl + +docs/src/fig/bs92-fig8.png: examples/bosscher-schlager-1992.jl data/bs92-sealevel-curve.csv +> julia --project=. --startup-file=no -e 'using DaemonMode; runargs()' examples/bosscher-schlager-1992.jl + +docs/src/fig/b13-fig3.png: examples/ca/burgess-2013.jl +> julia --project=. --startup-file=no -e 'using DaemonMode; runargs()' examples/ca/burgess-2013.jl + +docs/src/fig/b13-long-term.png: examples/ca/long-term.jl +> julia --project=. --startup-file=no -e 'using DaemonMode; runargs()' examples/ca/long-term.jl + +data/caps-osc.h5: examples/caps-osc.jl +> julia --project=. --startup-file=no -e 'using DaemonMode; runargs()' examples/caps-osc.jl + +docs/src/fig/b13-capsosc-crosssection.png: examples/plot-caps-osc.jl data/caps-osc.h5 +> julia --project=. --startup-file=no -e 'using DaemonMode; runargs()' examples/plot-caps-osc.jl + +data/ca-prod-slope.h5: examples/cap-slope.jl +> julia --project=. --startup-file=no -e 'using DaemonMode; runargs()' examples/cap-slope.jl + +docs/src/fig/b13-crosssection.png: examples/plot-cap-slope.jl data/ca-prod-slope.h5 +> julia --project=. --startup-file=no -e 'using DaemonMode; runargs()' examples/plot-cap-slope.jl diff --git a/.entangled/filedb.json b/.entangled/filedb.json index 19f2dcc..25aa978 100644 --- a/.entangled/filedb.json +++ b/.entangled/filedb.json @@ -1,39 +1,21 @@ { - "version": "2.0.0b3", + "version": "2.0.0b4", "files": [ { "path": "src/Stencil.jl", "deps": [ "docs/src/stencils.md" ], - "modified": "2023-08-29T13:12:36.899671", - "hexdigest": "1709f203aa758a0383beb1d5d020fa05b8a04a41d398040a69f94b58c50366cb" + "modified": "2023-09-23T12:43:44.264279", + "hexdigest": "28c4df483d74e690d71de3fe65696da6646843394b27ec2f6faf0f28656fb35b" }, { "path": "src/Burgess2013.jl", "deps": [ - "docs/src/carbocat-cpt.md", - "docs/src/carbocat.md", - "docs/src/carbocat-transport.md" - ], - "modified": "2023-08-29T13:12:36.900671", - "hexdigest": "83265fdcf582328e29fcf69fc32528b2bffb928955530f03facdc50a147219c0" - }, - { - "path": "src/examples/game-of-life.jl", - "deps": [ - "docs/src/stencils.md" - ], - "modified": "2023-08-29T15:11:50.987826", - "hexdigest": "d378124f2bbe29d42da234deddd9a7572679085163d400a125bd57103969cddc" - }, - { - "path": "src/examples/convolution.jl", - "deps": [ - "docs/src/stencils.md" + "docs/src/carbocat.md" ], - "modified": "2023-08-29T15:11:32.917681", - "hexdigest": "169719c18341e7ef4fb5fa7351408b24f11a2c83d2fc44ce5ce93c6ac49167f7" + "modified": "2023-09-26T17:08:18.700257", + "hexdigest": "e0ef5d570daaa253347a188b7f3e4739e461cf86f19ea943590daf5eef6743be" }, { "path": "src/Burgess2013/Production.jl", @@ -41,16 +23,16 @@ "docs/src/bosscher-1992.md", "docs/src/carbocat.md" ], - "modified": "2023-08-29T13:12:36.900671", - "hexdigest": "e6e86dea89740e3ed8219afe5380c1f1dac2546c9d57440286c5e69a6f222f66" + "modified": "2023-09-21T14:46:07.061696", + "hexdigest": "a8a68a613cab71d93658bce1f772eb468193f68bb2d66e3dfcebf81c326d89f7" }, { "path": "src/BS92/fig8-sealevel.jl", "deps": [ "docs/src/bosscher-1992.md" ], - "modified": "2023-08-29T13:12:36.900671", - "hexdigest": "394727994fe89d95b0b98d3a2fe1ede0b0f05c61e0baad6ca5bee00afba221ef" + "modified": "2023-10-02T15:25:19.531727", + "hexdigest": "4aa34253b8561069bba9096666736c2a5ddb70845571cdf4901356813fc181d0" }, { "path": "src/BS92.jl", @@ -73,40 +55,16 @@ "deps": [ "docs/src/carbocat-ca.md" ], - "modified": "2023-08-29T15:13:12.707484", - "hexdigest": "b2b99f2a6218de036366667ddcbed727d6315bf69316517af704724fa74984c9" + "modified": "2023-09-21T14:46:07.061696", + "hexdigest": "0640cd71d6c509421530fe9e2074e0415cd2e6c471f85e46bb0cc0741bc7acb3" }, { "path": "src/Burgess2013/Config.jl", "deps": [ "docs/src/carbocat.md" ], - "modified": "2023-08-29T13:12:36.901671", - "hexdigest": "3f41801c47dacf0a1990b59b11455a45d796993214d28d86491801e60c27c62f" - }, - { - "path": "src/examples/eca.jl", - "deps": [ - "docs/src/stencils.md" - ], - "modified": "2023-09-18T12:06:28.502239", - "hexdigest": "dc95e7134c3653136f6122f2c6c14b29dc38d22865fd7c5ce618b37fbf5f1cfc" - }, - { - "path": "src/figures/plot-tanh.gnuplot", - "deps": [ - "docs/src/bosscher-1992.md" - ], - "modified": "2023-08-29T13:12:36.901671", - "hexdigest": "e0c382f4f003f89140b8b7acd4e0edc315fbdfc351b92c2722d5ba4af03fef63" - }, - { - "path": "src/figures/burgess2013-fig2.gnuplot", - "deps": [ - "docs/src/bosscher-1992.md" - ], - "modified": "2023-08-29T13:12:36.901671", - "hexdigest": "a81f054500d4019090524dfb979f063f4e5fb53bfd6733cf1e42096f64a2034c" + "modified": "2023-09-21T14:46:07.061696", + "hexdigest": "737fa732bc412e538eadeeaca81ef4c98170bcb600415a1387a723e55adabf1b" }, { "path": "src/Burgess2013/Transport.jl", @@ -119,20 +77,14 @@ { "path": "docs/src/bosscher-1992.md", "deps": null, - "modified": "2023-09-14T11:16:21.454131", - "hexdigest": "1d99ef509ad40c6b6a8a7dd21507854cd36190f9b30d6c715929642699f1f340" + "modified": "2023-10-02T15:39:55.603059", + "hexdigest": "620785caa7221b21d426e296c27cfee3d98239d569745f050d1ee317e209a07e" }, { "path": "docs/src/carbocat-ca.md", "deps": null, - "modified": "2023-09-18T13:49:08.806617", - "hexdigest": "97c0dc835ad97687b8bb518f735536d06cf631cf29828c7c1eb5534af226b215" - }, - { - "path": "docs/src/carbocat-cpt.md", - "deps": null, - "modified": "2023-08-02T16:14:17.873762", - "hexdigest": "ba20abb2536af9114f91dc2ffd7e6fc2c0351fbeb85fe5ff3186e351d51b43ea" + "modified": "2023-10-03T10:04:32.241545", + "hexdigest": "88546f4503e9d893ff4c75b15bd5b27e7262fcab76db97a0ba737214e6c5b931" }, { "path": "docs/src/carbocat-transport.md", @@ -143,14 +95,14 @@ { "path": "docs/src/carbocat.md", "deps": null, - "modified": "2023-08-29T15:53:12.470753", - "hexdigest": "033c6a5685fe26a62e34411dad3008b338668f5dd76bbf116609fb0e6275b2a2" + "modified": "2023-09-26T20:23:17.219092", + "hexdigest": "0eaad0c9dbc3f9ee76ca5806f2fb0e15f9c440c11d0cecf4b7faebe906d0095f" }, { "path": "docs/src/stencils.md", "deps": null, - "modified": "2023-09-18T12:06:28.532240", - "hexdigest": "2d808f8be9a20287b8a0046c192098184f04b2fbf1f7d1f2d7b0dab565328d3d" + "modified": "2023-09-23T17:12:49.121904", + "hexdigest": "1add42b5aaf27027505482565444f681f7f69eb6ce936d067e67edab516c1872" }, { "path": "docs/src/utility.md", @@ -161,8 +113,8 @@ { "path": "docs/src/index.md", "deps": null, - "modified": "2023-08-29T15:06:53.972437", - "hexdigest": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" + "modified": "2023-10-03T01:11:11.180020", + "hexdigest": "1a7b5a209f1ef1475c31271c8d98f5d1fc881c2cc5f1b34cdd81ff2190ce77c3" }, { "path": "docs/src/bs92-w-erosion.md", @@ -183,36 +135,136 @@ "deps": [ "docs/src/bosscher-1992.md" ], - "modified": "2023-09-14T11:16:21.467131", - "hexdigest": "8ee1cafbbc9cc83699031014346d5492934e402048701e9f8b6e7754f31653cb" + "modified": "2023-10-02T15:25:19.530726", + "hexdigest": "d991dec5a36f5da4b3eadae7c151a954abfd253b945e9ac52677016a960f6eca" + }, + { + "path": "docs/src/ca-with-production.md", + "deps": null, + "modified": "2023-10-02T16:25:27.448153", + "hexdigest": "d20c13c8c9ff86ad534c5fef6a07f0c0db11a690b593b0da2ac0a158d082612a" + }, + { + "path": "src/CaProd.jl", + "deps": [ + "docs/src/ca-with-production.md" + ], + "modified": "2023-10-02T14:56:42.676298", + "hexdigest": "def8c814ae9e2e228c6f0e1587c1a72beba009e78cf4e8b66cd503637e523f52" + }, + { + "path": "examples/ca-with-prod.jl", + "deps": [ + "docs/src/ca-with-production.md" + ], + "modified": "2023-10-02T14:54:04.277255", + "hexdigest": "2131293d9ea8cddfc793b1c76482da14ce9a327a5ef33b54b70f1404b9ff6702" + }, + { + "path": "examples/cap-slope.jl", + "deps": [ + "docs/src/ca-with-production.md" + ], + "modified": "2023-10-02T14:52:19.554566", + "hexdigest": "595c5634298f38033d94e27d23f3f59b5c35cb41ed8e1fcb7383fce4fac3079a" }, { - "path": "examples/burgess-2013-ca.jl", + "path": "examples/caps-osc.jl", + "deps": [ + "docs/src/ca-with-production.md" + ], + "modified": "2023-10-02T14:54:42.153505", + "hexdigest": "e5051ca2816f8847be744ec5ca6ed7f8640661e5c80c39c53aa4b442d1413d6e" + }, + { + "path": "examples/ca/burgess-2013.jl", + "deps": [ + "docs/src/carbocat-ca.md" + ], + "modified": "2023-10-03T10:04:32.261546", + "hexdigest": "80a5958e45e38675153c44165ccac4ec55d400642191358256bff0532bbe9e8b" + }, + { + "path": "examples/ca/parameter-scan.jl", + "deps": [ + "docs/src/carbocat-ca.md" + ], + "modified": "2023-10-03T09:56:34.200804", + "hexdigest": "fe2b19db957bac68eb1a2210fe9910fb1fc23761c715f13ff7f99c3358e65576" + }, + { + "path": "examples/ca/long-term.jl", "deps": [ "docs/src/carbocat-ca.md" ], - "modified": "2023-09-18T13:49:08.788617", - "hexdigest": "8db8b8432753257c0ce90cff4fad9614aed1952031216c4dd1c41da88f2e5d73" + "modified": "2023-10-03T09:56:04.632635", + "hexdigest": "01aa376aa9537ff9df502b858593d3fb9d5305dd6e831c172570eae3b5b5144e" + }, + { + "path": "src/Visualization.jl", + "deps": [ + "docs/src/ca-with-production.md" + ], + "modified": "2023-09-27T23:50:02.823684", + "hexdigest": "01ec959008e05f5f1b711c1eca17ed61de7922208276e0d30118251bdcec40f9" + }, + { + "path": "examples/plot-cap-slope.jl", + "deps": [ + "docs/src/ca-with-production.md" + ], + "modified": "2023-10-02T14:51:31.947252", + "hexdigest": "59c52a8d8a7f8d2e7f18b624ef0b85536aea57131d4afda5626dd2076d0aa123" + }, + { + "path": "examples/plot-caps-osc.jl", + "deps": [ + "docs/src/ca-with-production.md" + ], + "modified": "2023-10-02T14:55:05.324657", + "hexdigest": "eb81b5a1d94e6119bb171471fb270d8ccfbb10c3e391137680e097c156c13137" + }, + { + "path": "examples/burgess2013-fig2.gnuplot", + "deps": [ + "docs/src/bosscher-1992.md" + ], + "modified": "2023-10-02T15:25:19.531727", + "hexdigest": "7f642540e05f33ecb649d42dd6274f1469096c51b43e318066ddd6f5e8f6cd0d" + }, + { + "path": "examples/plot-tanh.gnuplot", + "deps": [ + "docs/src/bosscher-1992.md" + ], + "modified": "2023-10-02T15:25:19.532727", + "hexdigest": "a6c9bb54a265e4fb31ebabcecaebe2973a2fc180b0314013274fd78de4129857" } ], "source": [], "target": [ - "src/examples/eca.jl", - "src/Burgess2013/Config.jl", + "src/Utility.jl", + "src/Burgess2013/Production.jl", + "src/Burgess2013/CA.jl", + "examples/caps-osc.jl", + "examples/ca-with-prod.jl", + "examples/bosscher-schlager-1992.jl", "src/Erosion.jl", - "src/BS92.jl", + "examples/plot-cap-slope.jl", + "examples/ca/long-term.jl", + "examples/burgess2013-fig2.gnuplot", + "examples/cap-slope.jl", + "examples/plot-tanh.gnuplot", "src/BS92/fig8-sealevel.jl", - "src/Utility.jl", - "src/examples/convolution.jl", - "src/figures/burgess2013-fig2.gnuplot", - "src/Burgess2013/Transport.jl", - "src/figures/plot-tanh.gnuplot", + "examples/plot-caps-osc.jl", + "src/Visualization.jl", + "examples/ca/parameter-scan.jl", + "src/BS92.jl", + "examples/ca/burgess-2013.jl", "src/Burgess2013.jl", - "examples/bosscher-schlager-1992.jl", "src/Stencil.jl", - "src/Burgess2013/CA.jl", - "src/Burgess2013/Production.jl", - "examples/burgess-2013-ca.jl", - "src/examples/game-of-life.jl" + "src/Burgess2013/Config.jl", + "src/CaProd.jl", + "src/Burgess2013/Transport.jl" ] } \ No newline at end of file diff --git a/.gitignore b/.gitignore index b8bc1fe..78c16d1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ docs/build +data/*.h5 +.vscode diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..d5c26e8 --- /dev/null +++ b/Makefile @@ -0,0 +1,11 @@ +.PHONY: run-daemon figures serve-docs + +figures: + make -f .entangled/build/Makefile + +run-daemon: + julia --project=. --startup-file=no -e 'using Revise; using DaemonMode; serve()' + +serve-docs: + julia --project=docs -e 'using LiveServer; servedocs()' + diff --git a/Manifest.toml b/Manifest.toml index 9d0e29b..17c4dbc 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,12 +2,12 @@ julia_version = "1.9.3" manifest_format = "2.0" -project_hash = "1310ff504f4055afdb8c9e90edafdb2842b8b6db" +project_hash = "a481b395ca86de9007cbbc893007c0ac6f8aec95" [[deps.ADTypes]] -git-tree-sha1 = "a4c8e0f8c09d4aa708289c1a5fc23e2d1970017a" +git-tree-sha1 = "5d2e21d7b0d8c22f67483ef95ebdc39c0e6b6003" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.2.1" +version = "0.2.4" [[deps.AbstractFFTs]] deps = ["LinearAlgebra"] @@ -20,6 +20,16 @@ weakdeps = ["ChainRulesCore", "Test"] AbstractFFTsChainRulesCoreExt = "ChainRulesCore" AbstractFFTsTestExt = "Test" +[[deps.AbstractLattices]] +git-tree-sha1 = "f35684b7349da49fcc8a9e520e30e45dbb077166" +uuid = "398f06c4-4d28-53ec-89ca-5b2656b7603d" +version = "0.2.1" + +[[deps.AbstractTrees]] +git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.4" + [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] git-tree-sha1 = "76289dc51920fdc6e0013c872ba9551d54961c24" @@ -30,6 +40,12 @@ weakdeps = ["StaticArrays"] [deps.Adapt.extensions] AdaptStaticArraysExt = "StaticArrays" +[[deps.Animations]] +deps = ["Colors"] +git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d" +uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" +version = "0.4.1" + [[deps.ArgCheck]] git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" @@ -75,9 +91,9 @@ version = "0.1.29" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra"] -git-tree-sha1 = "dcda7e0ac618210eabf43751d5cafde100dd539b" +git-tree-sha1 = "0d61921af2799487b80453a44abb57db7a0c1381" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.3.0" +version = "1.4.1" weakdeps = ["SparseArrays"] [deps.ArrayLayouts.extensions] @@ -92,6 +108,12 @@ git-tree-sha1 = "b25e88db7944f98789130d7b503276bc34bc098e" uuid = "bf4720bc-e11a-5d0c-854e-bdca1663c893" version = "0.1.0" +[[deps.Automa]] +deps = ["TranscodingStreams"] +git-tree-sha1 = "ef9997b3d5547c48b41c7bd8899e812a917b409d" +uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" +version = "0.8.4" + [[deps.AxisAlgorithms]] deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] git-tree-sha1 = "66771c8d21c8ff5e3a93379480a2307ac36863f7" @@ -142,6 +164,12 @@ git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" uuid = "9718e550-a3fa-408a-8086-8db961cd8217" version = "0.1.1" +[[deps.BenchmarkTools]] +deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "d9a9701b899b30332bbcb3e1679c41cce81fb0e8" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.3.2" + [[deps.BitFlags]] git-tree-sha1 = "43b1a4a8f797c1cddadf60499a8a077d4af2cd2d" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" @@ -178,15 +206,24 @@ version = "0.4.2" [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] -git-tree-sha1 = "89e0654ed8c7aebad6d5ad235d6242c2d737a928" +git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.3" +version = "0.2.4" + +[[deps.CRC32c]] +uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc" -[[deps.CSTParser]] -deps = ["Tokenize"] -git-tree-sha1 = "3ddd48d200eb8ddf9cb3e0189fc059fd49b97c1f" -uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f" -version = "3.3.6" +[[deps.CRlibm]] +deps = ["CRlibm_jll"] +git-tree-sha1 = "32abd86e3c2025db5172aa182b982debed519834" +uuid = "96374032-68de-5a5b-8d9e-752f78720389" +version = "1.0.1" + +[[deps.CRlibm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e329286945d0cfc04456972ea732551869af1cfc" +uuid = "4e9b3aee-d8a1-5a3d-ad8b-7d824db253f0" +version = "1.0.1+0" [[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] @@ -194,6 +231,18 @@ git-tree-sha1 = "44dbf560808d49041989b8a96cae4cffbeb7966a" uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" version = "0.10.11" +[[deps.Cairo]] +deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] +git-tree-sha1 = "d0b3f8b4ad16cb0a2988c6788646a5e6a17b6b1b" +uuid = "159f3aea-2a34-519c-b102-8c37f9878175" +version = "1.0.5" + +[[deps.CairoMakie]] +deps = ["Base64", "Cairo", "Colors", "FFTW", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools", "SHA"] +git-tree-sha1 = "696e7931bd6f5c773418452cbe5fd241cb85ac2a" +uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +version = "0.10.9" + [[deps.Cairo_jll]] deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" @@ -236,6 +285,12 @@ git-tree-sha1 = "02aa26a4cf76381be7f66e020a3eddeb27b0a092" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" version = "0.7.2" +[[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 = "d9a8f86737b665e15a9641ecbac64deef9ce6724" @@ -249,14 +304,10 @@ uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" version = "0.11.4" [[deps.ColorVectorSpace]] -deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] -git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"] +git-tree-sha1 = "600cc5508d66b78aae350f7accdb58763ac18589" uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" -version = "0.10.0" -weakdeps = ["SpecialFunctions"] - - [deps.ColorVectorSpace.extensions] - SpecialFunctionsExt = "SpecialFunctions" +version = "0.9.10" [[deps.Colors]] deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] @@ -264,11 +315,10 @@ git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" version = "0.12.10" -[[deps.CommonMark]] -deps = ["Crayons", "JSON", "PrecompileTools", "URIs"] -git-tree-sha1 = "532c4185d3c9037c0237546d817858b23cf9e071" -uuid = "a80b9123-70ca-4bc0-993e-6e3bcb318db6" -version = "0.8.12" +[[deps.Combinatorics]] +git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" +uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" +version = "1.0.2" [[deps.CommonSolve]] git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" @@ -318,11 +368,17 @@ git-tree-sha1 = "5372dbbf8f0bdb8c700db5367132925c0771ef7e" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" version = "2.2.1" +[[deps.Configurations]] +deps = ["ExproniconLite", "OrderedCollections", "TOML"] +git-tree-sha1 = "434f446dbf89d08350e83bf57c0fc86f5d3ffd4e" +uuid = "5218b696-f38b-4ac9-8b61-a12ec717816d" +version = "0.17.5" + [[deps.ConstructionBase]] deps = ["LinearAlgebra"] -git-tree-sha1 = "fe2838a593b5f776e1597e086dcd47560d94e816" +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.3" +version = "1.5.4" weakdeps = ["IntervalSets", "StaticArrays"] [deps.ConstructionBase.extensions] @@ -356,6 +412,12 @@ git-tree-sha1 = "1a3f97f907e6dd8983b744d2642651bb162a3f7a" uuid = "dc8bdbbb-1ca9-579f-8c36-e416f6a65cce" version = "1.0.2" +[[deps.DaemonMode]] +deps = ["Crayons", "Sockets"] +git-tree-sha1 = "8aee56d540665a9386b067cecc65db0982704421" +uuid = "d749ddd5-2b29-4920-8305-6ff5a704e36e" +version = "0.1.2" + [[deps.DataAPI]] git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" @@ -387,6 +449,12 @@ git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" version = "0.1.2" +[[deps.DelaunayTriangulation]] +deps = ["DataStructures", "EnumX", "ExactPredicates", "Random", "SimpleGraphs"] +git-tree-sha1 = "bea7984f7e09aeb28a3b071c420a0186cb4fabad" +uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" +version = "0.8.8" + [[deps.DelayDiffEq]] deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SimpleUnPack"] git-tree-sha1 = "89f3fbfe78f9d116d1ed0721d65b0b2cf9b36169" @@ -400,10 +468,10 @@ uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" version = "1.9.1" [[deps.DiffEqBase]] -deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] -git-tree-sha1 = "df8638dbfa03d1b336c410e23a9dfbf89cb53937" +deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] +git-tree-sha1 = "0d9982e8dee851d519145857e79a17ee33ede154" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.128.2" +version = "6.130.0" [deps.DiffEqBase.extensions] DiffEqBaseDistributionsExt = "Distributions" @@ -428,10 +496,10 @@ version = "6.128.2" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [[deps.DiffEqCallbacks]] -deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "9c7d3a84264d935f6981504388b202a770113faa" +deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "42424e81924d4f463c6f8db8ce2978d51ba0aeaf" uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "2.29.1" +version = "2.30.0" weakdeps = ["OrdinaryDiffEq", "Sundials"] [[deps.DiffEqNoiseProcess]] @@ -509,11 +577,34 @@ git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" version = "0.6.8" +[[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.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.ErrorfreeArithmetic]] +git-tree-sha1 = "d6863c556f1142a061532e79f611aa46be201686" +uuid = "90fa49ef-747e-5e6f-a989-263ba693cf1a" +version = "0.5.2" + +[[deps.ExactPredicates]] +deps = ["IntervalArithmetic", "Random", "StaticArraysCore", "Test"] +git-tree-sha1 = "276e83bc8b21589b79303b9985c321024ffdf59c" +uuid = "429591f6-91af-11e9-00e2-59fbe8cec110" +version = "2.2.5" + [[deps.ExceptionUnwrapping]] deps = ["Test"] git-tree-sha1 = "e90caa41f5a86296e014e148ee061bd6c3edec96" @@ -527,16 +618,27 @@ uuid = "2e619515-83b5-522b-bb60-26c02a35a201" version = "2.5.0+0" [[deps.ExponentialUtilities]] -deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "Printf", "SnoopPrecompile", "SparseArrays", "libblastrampoline_jll"] -git-tree-sha1 = "fb7dbef7d2631e2d02c49e2750f7447648b0ec9b" +deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] +git-tree-sha1 = "602e4585bcbd5a25bc06f514724593d13ff9e862" uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" -version = "1.24.0" +version = "1.25.0" [[deps.ExprTools]] git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" version = "0.1.10" +[[deps.ExproniconLite]] +deps = ["Pkg", "TOML"] +git-tree-sha1 = "d80b5d5990071086edf5de9018c6c69c83937004" +uuid = "55351af7-c7e9-48d6-89ff-24e801d99491" +version = "0.10.3" + +[[deps.Extents]] +git-tree-sha1 = "5e1e4c53fa39afe63a7d356e30452249365fba99" +uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" +version = "0.1.1" + [[deps.FFMPEG]] deps = ["FFMPEG_jll"] git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" @@ -584,6 +686,12 @@ git-tree-sha1 = "b12f05108e405dadcc2aff0008db7f831374e051" uuid = "29a986be-02c6-4525-aec4-84b980013641" version = "2.0.0" +[[deps.FastRounding]] +deps = ["ErrorfreeArithmetic", "LinearAlgebra"] +git-tree-sha1 = "6344aa18f654196be82e62816935225b3b9abe44" +uuid = "fa42c844-2597-5d31-933b-ebd51ab2693f" +version = "0.3.1" + [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673" @@ -654,12 +762,24 @@ weakdeps = ["StaticArrays"] [deps.ForwardDiff.extensions] ForwardDiffStaticArraysExt = "StaticArrays" +[[deps.FreeType]] +deps = ["CEnum", "FreeType2_jll"] +git-tree-sha1 = "50351f83f95282cf903e968d7c6e8d44a5f83d0b" +uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" +version = "4.1.0" + [[deps.FreeType2_jll]] deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" version = "2.13.1+0" +[[deps.FreeTypeAbstraction]] +deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] +git-tree-sha1 = "38a92e40157100e796690421e34a11c107205c86" +uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" +version = "0.10.0" + [[deps.FriBidi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" @@ -683,16 +803,40 @@ git-tree-sha1 = "04cb9cfaa6ba5311973994fe3496ddec19b6292a" uuid = "de31a74c-ac4f-5751-b3fd-e18cd04993ca" version = "0.5.0" +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + [[deps.Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" +[[deps.FuzzyCompletions]] +deps = ["REPL"] +git-tree-sha1 = "001bd0eefc8c532660676725bed56b696321dfd2" +uuid = "fb4132e2-a121-4a70-b8a1-d5b831dcdcc2" +version = "0.5.2" + +[[deps.GLFW]] +deps = ["GLFW_jll"] +git-tree-sha1 = "35dbc482f0967d8dceaa7ce007d16f9064072166" +uuid = "f7f18e0c-5ee9-5ccd-a5bf-e8befd85ed98" +version = "3.4.1" + [[deps.GLFW_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] git-tree-sha1 = "d972031d28c8c8d9d7b41a536ad7bb0c2579caca" uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" version = "3.3.8+0" +[[deps.GLMakie]] +deps = ["ColorTypes", "Colors", "FileIO", "FixedPointNumbers", "FreeTypeAbstraction", "GLFW", "GeometryBasics", "LinearAlgebra", "Makie", "Markdown", "MeshIO", "ModernGL", "Observables", "PrecompileTools", "Printf", "ShaderAbstractions", "StaticArrays"] +git-tree-sha1 = "a92cc6b1fb1b6233818aab02e88293b07cf445e5" +uuid = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" +version = "0.8.9" + [[deps.GPUArraysCore]] deps = ["Adapt"] git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" @@ -717,6 +861,18 @@ git-tree-sha1 = "fb69b2a645fa69ba5f474af09221b9308b160ce6" uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" version = "0.5.3" +[[deps.GeoInterface]] +deps = ["Extents"] +git-tree-sha1 = "bb198ff907228523f3dee1070ceee63b9359b6ab" +uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" +version = "1.3.1" + +[[deps.GeometryBasics]] +deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "424a5a6ce7c5d97cca7bcc4eac551b97294c54af" +uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +version = "0.4.9" + [[deps.Gettext_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" @@ -724,15 +880,10 @@ 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", "Pkg", "Zlib_jll"] -git-tree-sha1 = "d3b3624125c1474292d0d8ed0f65554ac37ddb23" +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.74.0+2" - -[[deps.Glob]] -git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" -uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" -version = "1.3.1" +version = "2.76.5+0" [[deps.GnuplotLite]] git-tree-sha1 = "17337ed2faf970a7af883c8af86c2f6aff4417b0" @@ -757,16 +908,40 @@ git-tree-sha1 = "1cf1d7dcb4bc32d7b4a5add4232db3750c27ecb4" uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" version = "1.8.0" +[[deps.GridLayoutBase]] +deps = ["GeometryBasics", "InteractiveUtils", "Observables"] +git-tree-sha1 = "f57a64794b336d4990d90f80b147474b869b1bc4" +uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" +version = "0.9.2" + [[deps.Grisu]] git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" version = "1.0.2" +[[deps.HDF5]] +deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] +git-tree-sha1 = "ec7df74b7b2022e8252a8bfd4ec23411491adc3b" +uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" +version = "0.17.0" + + [deps.HDF5.extensions] + MPIExt = "MPI" + + [deps.HDF5.weakdeps] + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + +[[deps.HDF5_jll]] +deps = ["Artifacts", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenSSL_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "4cc2bb72df6ff40b055295fdef6d92955f9dede8" +uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" +version = "1.12.2+2" + [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "cb56ccdd481c0dd7f975ad2b3b62d9eda088f7e2" +git-tree-sha1 = "5eab648309e2e060198b45820af1a37182de3cce" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.9.14" +version = "1.10.0" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -798,6 +973,12 @@ git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" version = "0.3.23" +[[deps.HypertextLiteral]] +deps = ["Tricks"] +git-tree-sha1 = "c47c5fa4c5308f27ccaac35504858d8914e102f9" +uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" +version = "0.9.4" + [[deps.IfElse]] git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" @@ -811,9 +992,9 @@ version = "0.6.11" [[deps.ImageBase]] deps = ["ImageCore", "Reexport"] -git-tree-sha1 = "eb49b82c172811fd2c86759fa0553a2221feb909" +git-tree-sha1 = "b51bb8cae22c66d0f6357e3bcb6363145ef20835" uuid = "c817782e-172a-44cc-b673-b171935fbb9e" -version = "0.1.7" +version = "0.1.5" [[deps.ImageBinarization]] deps = ["HistogramThresholding", "ImageCore", "LinearAlgebra", "Polynomials", "Reexport", "Statistics"] @@ -828,10 +1009,10 @@ uuid = "f332f351-ec65-5f6a-b3d1-319c6670881a" version = "0.3.12" [[deps.ImageCore]] -deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "PrecompileTools", "Reexport"] -git-tree-sha1 = "fc5d1d3443a124fde6e92d0260cd9e064eba69f8" +deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Graphics", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "Reexport"] +git-tree-sha1 = "acf614720ef026d38400b3817614c45882d75500" uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" -version = "0.10.1" +version = "0.9.4" [[deps.ImageCorners]] deps = ["ImageCore", "ImageFiltering", "PrecompileTools", "StaticArrays", "StatsBase"] @@ -847,9 +1028,9 @@ version = "0.2.17" [[deps.ImageFiltering]] deps = ["CatIndices", "ComputationalResources", "DataStructures", "FFTViews", "FFTW", "ImageBase", "ImageCore", "LinearAlgebra", "OffsetArrays", "PrecompileTools", "Reexport", "SparseArrays", "StaticArrays", "Statistics", "TiledIteration"] -git-tree-sha1 = "432ae2b430a18c58eb7eca9ef8d0f2db90bc749c" +git-tree-sha1 = "3447781d4c80dbe6d71d239f7cfb1f8049d4c84f" uuid = "6a3955dd-da59-5b1f-98d4-e7296123deb5" -version = "0.7.8" +version = "0.7.6" [[deps.ImageIO]] deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] @@ -889,9 +1070,9 @@ version = "0.3.7" [[deps.ImageSegmentation]] deps = ["Clustering", "DataStructures", "Distances", "Graphs", "ImageCore", "ImageFiltering", "ImageMorphology", "LinearAlgebra", "MetaGraphs", "RegionTrees", "SimpleWeightedGraphs", "StaticArrays", "Statistics"] -git-tree-sha1 = "3ff0ca203501c3eedde3c6fa7fd76b703c336b5f" +git-tree-sha1 = "44664eea5408828c03e5addb84fa4f916132fc26" uuid = "80713f31-8817-5129-9cf8-209ff8fb23e1" -version = "1.8.2" +version = "1.8.1" [[deps.ImageShow]] deps = ["Base64", "ColorSchemes", "FileIO", "ImageBase", "ImageCore", "OffsetArrays", "StackViews"] @@ -938,6 +1119,11 @@ git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" version = "1.4.0" +[[deps.IntegerMathUtils]] +git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" +uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" +version = "0.1.2" + [[deps.IntegralArrays]] deps = ["ColorTypes", "FixedPointNumbers", "IntervalSets"] git-tree-sha1 = "be8e690c3973443bec584db3346ddc904d4884eb" @@ -960,6 +1146,12 @@ git-tree-sha1 = "721ec2cf720536ad005cb38f50dbba7b02419a15" uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" version = "0.14.7" +[[deps.IntervalArithmetic]] +deps = ["CRlibm", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "RoundingEmulator", "SetRounding", "StaticArrays"] +git-tree-sha1 = "5ab7744289be503d76a944784bac3f2df7b809af" +uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" +version = "0.20.9" + [[deps.IntervalSets]] deps = ["Dates", "Random"] git-tree-sha1 = "8e59ea773deee525c99a8018409f64f19fb719e6" @@ -980,6 +1172,12 @@ 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 = "4ced6667f9974fc5c5943fa5e2ef1ca43ea9e450" uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" @@ -992,9 +1190,9 @@ version = "1.0.0" [[deps.JLD2]] deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "aa6ffef1fd85657f4999030c52eaeec22a279738" +git-tree-sha1 = "773125c999b4ebfe31e679593c8af7f43f401f1c" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.33" +version = "0.4.34" [[deps.JLFzf]] deps = ["Pipe", "REPL", "Random", "fzf_jll"] @@ -1020,12 +1218,6 @@ git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" version = "0.21.4" -[[deps.JSONRPC]] -deps = ["JSON", "UUIDs"] -git-tree-sha1 = "2756e5ffc7d46857e310a461aa366bbf7bbb673a" -uuid = "b9b8584e-8fd3-41f9-ad0c-7255d428e418" -version = "1.3.6" - [[deps.JpegTurbo]] deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] git-tree-sha1 = "327713faef2a3e5c80f96bf38d1fa26f7a6ae29e" @@ -1038,23 +1230,21 @@ git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" version = "2.1.91+0" -[[deps.JuliaFormatter]] -deps = ["CSTParser", "CommonMark", "DataStructures", "Glob", "Pkg", "PrecompileTools", "Tokenize"] -git-tree-sha1 = "2aa8cb5410821365a87f326631d7f6ce07db8882" -uuid = "98e50ef6-434e-11e9-1051-2b60c6c9e899" -version = "1.0.36" - [[deps.JumpProcesses]] deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "Markdown", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays", "TreeViews", "UnPack"] -git-tree-sha1 = "add0bfe9091a0148a358dc8c52d5ac60806da76c" +git-tree-sha1 = "61068b4df1e434c26ff8b876fbaf2be3e3e44d27" uuid = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5" -version = "9.7.2" +version = "9.7.3" +weakdeps = ["FastBroadcast"] + + [deps.JumpProcesses.extensions] + JumpProcessFastBroadcastExt = "FastBroadcast" [[deps.KLU]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] -git-tree-sha1 = "764164ed65c30738750965d55652db9c94c59bfe" +git-tree-sha1 = "884c2968c2e8e7e6bf5956af88cb46aa745c854b" uuid = "ef3ab10e-7fda-4108-b977-705223b18434" -version = "0.4.0" +version = "0.4.1" [[deps.Kaleido_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1062,11 +1252,17 @@ git-tree-sha1 = "43032da5832754f58d14a91ffbe86d5f176acda9" uuid = "f7e6163d-2fa5-5f23-b69c-1db539e41963" version = "0.2.1+0" +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] +git-tree-sha1 = "90442c50e202a5cdf21a7899c66b240fdef14035" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.7" + [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "fbda7c58464204d92f3b158578fb0b3d4224cea5" +git-tree-sha1 = "17e462054b42dcdda73e9a9ba0c67754170c88ae" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.9.3" +version = "0.9.4" [[deps.LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1097,12 +1293,6 @@ git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" version = "1.3.0" -[[deps.LanguageServer]] -deps = ["CSTParser", "JSON", "JSONRPC", "JuliaFormatter", "Logging", "Markdown", "Pkg", "PrecompileTools", "REPL", "StaticLint", "SymbolServer", "TestItemDetection", "Tokenize", "URIs", "UUIDs"] -path = "/home/johannes/.julia/dev/LanguageServer" -uuid = "2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7" -version = "4.4.1-DEV" - [[deps.Latexify]] deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" @@ -1123,6 +1313,11 @@ git-tree-sha1 = "88b8f66b604da079a627b6fb2860d3704a6729a1" uuid = "10f19ff3-798f-405d-979b-55457f8fc047" version = "0.1.14" +[[deps.LazilyInitializedFields]] +git-tree-sha1 = "410fe4739a4b092f2ffe36fcb0dcc3ab12648ce1" +uuid = "0e77f7df-68c5-4e49-93ce-4cd80f5598bf" +version = "1.2.1" + [[deps.Lazy]] deps = ["MacroTools"] git-tree-sha1 = "1370f8202dac30758f3c345f9909b97f53d87d3f" @@ -1191,10 +1386,10 @@ uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" version = "1.42.0+0" [[deps.Libiconv_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c7cb1f5d892775ba13767a87c7ada0b980ea0a71" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" -version = "1.16.1+2" +version = "1.17.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1214,6 +1409,12 @@ git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" version = "2.36.0+0" +[[deps.LightXML]] +deps = ["Libdl", "XML2_jll"] +git-tree-sha1 = "e129d9391168c677cd4800f5c0abb1ed8cb3794f" +uuid = "9c8b4983-aa76-5018-a973-4c85ecc9e179" +version = "0.9.0" + [[deps.LineSearches]] deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" @@ -1224,6 +1425,12 @@ version = "7.2.0" deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +[[deps.LinearAlgebraX]] +deps = ["LinearAlgebra", "Mods", "Permutations", "Primes", "SimplePolynomials"] +git-tree-sha1 = "558a338f1eeabe933f9c2d4052aa7c2c707c3d52" +uuid = "9b3f67b0-2d00-526e-9884-9e4938f8fb88" +version = "0.1.12" + [[deps.LinearSolve]] deps = ["ArrayInterface", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "Libdl", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] git-tree-sha1 = "69cbd612e6e67ba2f8121bc8725bc9d04d803599" @@ -1269,9 +1476,9 @@ uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[deps.LoggingExtras]] deps = ["Dates", "Logging"] -git-tree-sha1 = "a03c77519ab45eb9a34d3cfe2ca223d79c064323" +git-tree-sha1 = "0d097476b6c381ab7906460ef1ef1638fbce1d91" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" -version = "1.0.1" +version = "1.0.2" [[deps.LoopVectorization]] deps = ["ArrayInterface", "ArrayInterfaceCore", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] @@ -1284,18 +1491,41 @@ weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] SpecialFunctionsExt = "SpecialFunctions" +[[deps.MIMEs]] +git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" +uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" +version = "0.1.4" + [[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] git-tree-sha1 = "eb006abbd7041c28e0d16260e50a24f8f9104913" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" version = "2023.2.0+0" +[[deps.MPIPreferences]] +deps = ["Libdl", "Preferences"] +git-tree-sha1 = "781916a2ebf2841467cda03b6f1af43e23839d85" +uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" +version = "0.1.9" + [[deps.MacroTools]] deps = ["Markdown", "Random"] git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" version = "0.5.11" +[[deps.Makie]] +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FixedPointNumbers", "Formatting", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "Match", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Setfield", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "StableHashTraits", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun"] +git-tree-sha1 = "ecc334efc4a8a68800776b0d85ab7bb2fff63f7a" +uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +version = "0.19.9" + +[[deps.MakieCore]] +deps = ["Observables"] +git-tree-sha1 = "1efb1166dd9398f2ccf6d728f896658c9c84733e" +uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" +version = "0.6.6" + [[deps.ManualMemory]] git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" @@ -1310,6 +1540,17 @@ version = "0.4.2" deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" +[[deps.Match]] +git-tree-sha1 = "1d9bc5c1a6e7ee24effb93f175c9342f9154d97f" +uuid = "7eb4fadd-790c-5f42-8a69-bfa0b872bfbf" +version = "1.2.0" + +[[deps.MathTeXEngine]] +deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "Test", "UnicodeFun"] +git-tree-sha1 = "8f52dbaa1351ce4cb847d95568cb29e62a307d93" +uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" +version = "0.5.6" + [[deps.MbedTLS]] deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"] git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b" @@ -1326,6 +1567,12 @@ git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" version = "0.3.2" +[[deps.MeshIO]] +deps = ["ColorTypes", "FileIO", "GeometryBasics", "Printf"] +git-tree-sha1 = "8be09d84a2d597c7c0c34d7d604c039c9763e48c" +uuid = "7269a6da-0436-5bbc-96c2-40638cbb6118" +version = "0.4.10" + [[deps.MetaGraphs]] deps = ["Graphs", "JLD2", "Random"] git-tree-sha1 = "1130dbe1d5276cb656f6e1094ce97466ed700e5a" @@ -1347,6 +1594,17 @@ version = "1.1.0" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" +[[deps.ModernGL]] +deps = ["Libdl"] +git-tree-sha1 = "b76ea40b5c0f45790ae09492712dd326208c28b2" +uuid = "66fc600b-dfda-50eb-8b99-91cfa97b1301" +version = "1.1.7" + +[[deps.Mods]] +git-tree-sha1 = "61be59e4daffff43a8cec04b5e0dc773cbb5db3a" +uuid = "7475f97c-0381-53b1-977b-4c60186c8d62" +version = "1.3.3" + [[deps.MosaicViews]] deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe" @@ -1357,11 +1615,22 @@ version = "0.3.4" uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2022.10.11" +[[deps.MsgPack]] +deps = ["Serialization"] +git-tree-sha1 = "fc8c15ca848b902015bd4a745d350f02cf791c2a" +uuid = "99f44e22-a591-53d1-9472-aa23ef4bd671" +version = "1.2.0" + [[deps.MuladdMacro]] git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" version = "0.2.4" +[[deps.Multisets]] +git-tree-sha1 = "8d852646862c96e226367ad10c8af56099b4047e" +uuid = "3b2b4ff1-bcff-5658-a3ee-dbcf1ce5ac09" +version = "0.4.4" + [[deps.Mustache]] deps = ["Printf", "Tables"] git-tree-sha1 = "821e918c170ead5298ff84bffee41dd28929a681" @@ -1410,9 +1679,9 @@ version = "1.2.0" [[deps.NonlinearSolve]] deps = ["ArrayInterface", "DiffEqBase", "EnumX", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "PrecompileTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "UnPack"] -git-tree-sha1 = "23dabe80f8ebec9a68b0db4cd02f2d2cdbc4f653" +git-tree-sha1 = "ee53089df81a6bdf3c06c17cf674e90931b10a73" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "1.9.0" +version = "1.10.0" [[deps.Observables]] git-tree-sha1 = "6862738f9796b3edc1c09d0890afce4eca9e7e93" @@ -1461,9 +1730,9 @@ version = "1.4.1" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "bbb5c2115d63c2f1451cb70e5ef75e8fe4707019" +git-tree-sha1 = "a12e56c72edee3ce6b96667745e6cbbe5498f200" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "1.1.22+0" +version = "1.1.23+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -1517,12 +1786,24 @@ uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" version = "1.0.1" weakdeps = ["Requires", "TOML"] +[[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 = "4745216e94f71cb768d58330b059c9b76f32cb66" +uuid = "36c8627f-9965-5494-a995-c6b170f724f3" +version = "1.50.14+0" + [[deps.Parameters]] deps = ["OrderedCollections", "UnPack"] git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" @@ -1535,6 +1816,12 @@ git-tree-sha1 = "716e24b21538abc91f6205fd1d8363f39b442851" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" version = "2.7.2" +[[deps.Permutations]] +deps = ["Combinatorics", "LinearAlgebra", "Random"] +git-tree-sha1 = "25e2bb0973689836bf164ecb960762f1bb8794dd" +uuid = "2ae35dd2-176d-5d53-8349-f30d82d94d4f" +version = "0.4.17" + [[deps.Pidfile]] deps = ["FileWatching", "Test"] git-tree-sha1 = "2d8aaf8ee10df53d0dfb9b8ee44ae7c04ced2b03" @@ -1607,6 +1894,12 @@ version = "1.38.17" ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" +[[deps.Pluto]] +deps = ["Base64", "Configurations", "Dates", "Distributed", "FileWatching", "FuzzyCompletions", "HTTP", "HypertextLiteral", "InteractiveUtils", "Logging", "LoggingExtras", "MIMEs", "Markdown", "MsgPack", "Pkg", "PrecompileSignatures", "PrecompileTools", "REPL", "RegistryInstances", "RelocatableFolders", "Sockets", "TOML", "Tables", "URIs", "UUIDs"] +git-tree-sha1 = "06fec2244568a4641e3352d20d0a0a608df6fa92" +uuid = "c3e4b0f8-55cb-11ea-2926-15256bba5781" +version = "0.19.27" + [[deps.PoissonRandom]] deps = ["Random"] git-tree-sha1 = "a0f1159c33f846aa77c3f30ebbc69795e5327152" @@ -1615,9 +1908,9 @@ version = "0.4.4" [[deps.Polyester]] deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "3d811babe092a6e7b130beee84998fe7663348b6" +git-tree-sha1 = "d4c9ebdc6528a4aaf7cfcf43b482e927267b400d" uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.5" +version = "0.7.6" [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] @@ -1625,6 +1918,11 @@ git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" version = "0.2.1" +[[deps.PolygonOps]] +git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" +uuid = "647866c9-e3ac-4575-94e7-e3d426903924" +version = "0.1.2" + [[deps.Polynomials]] deps = ["LinearAlgebra", "RecipesBase"] git-tree-sha1 = "3aa2bb4982e575acd7583f01531f241af077b163" @@ -1643,9 +1941,9 @@ version = "3.2.13" [[deps.PooledArrays]] deps = ["DataAPI", "Future"] -git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7" +git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" -version = "1.4.2" +version = "1.4.3" [[deps.PositiveFactorizations]] deps = ["LinearAlgebra"] @@ -1665,6 +1963,11 @@ version = "0.4.12" [deps.PreallocationTools.weakdeps] ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" +[[deps.PrecompileSignatures]] +git-tree-sha1 = "18ef344185f25ee9d51d80e179f8dad33dc48eb1" +uuid = "91cefc8d-f054-46dc-8f8c-26e11d7c5411" +version = "3.0.3" + [[deps.PrecompileTools]] deps = ["Preferences"] git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" @@ -1673,9 +1976,9 @@ version = "1.2.0" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "7eb1686b4f04b82f96ed7a4ea5890a4f0c7a09f1" +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.0" +version = "1.4.1" [[deps.PrettyTables]] deps = ["Crayons", "LaTeXStrings", "Markdown", "Printf", "Reexport", "StringManipulation", "Tables"] @@ -1683,15 +1986,25 @@ git-tree-sha1 = "ee094908d720185ddbdc58dbe0c1cbe35453ec7a" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" version = "2.2.7" +[[deps.Primes]] +deps = ["IntegerMathUtils"] +git-tree-sha1 = "4c9f306e5d6603ae203c2000dd460d81a5251489" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.5.4" + [[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" +[[deps.Profile]] +deps = ["Printf"] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" + [[deps.ProgressMeter]] deps = ["Distributed", "Printf"] -git-tree-sha1 = "ae36206463b2395804f2787ffe172f44452b538d" +git-tree-sha1 = "00099623ffee15972c16111bcf84c58a0051257c" uuid = "92933f4c-e287-5a05-a399-4b506db050ca" -version = "1.8.0" +version = "1.9.0" [[deps.QOI]] deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] @@ -1707,9 +2020,9 @@ version = "5.15.3+2" [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] -git-tree-sha1 = "6ec7ac8412e83d57e313393220879ede1740f9ee" +git-tree-sha1 = "eeab25344bf9901146c0200a7ca64ea479f8bf5c" uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" -version = "2.8.2" +version = "2.9.0" [[deps.Quaternions]] deps = ["LinearAlgebra", "Random", "RealDot"] @@ -1772,17 +2085,19 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "Requires", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "7ed35fb5f831aaf09c2d7c8736d44667a1afdcb0" +git-tree-sha1 = "d7087c013e8a496ff396bae843b1e16d9a30ede8" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "2.38.7" +version = "2.38.10" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsMeasurementsExt = "Measurements" + RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" RecursiveArrayToolsTrackerExt = "Tracker" RecursiveArrayToolsZygoteExt = "Zygote" [deps.RecursiveArrayTools.weakdeps] Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" @@ -1803,6 +2118,12 @@ git-tree-sha1 = "4618ed0da7a251c7f92e869ae1a19c74a7d2a7f9" uuid = "dee08c22-ab7f-5625-9660-a9af2021b33f" version = "0.3.2" +[[deps.RegistryInstances]] +deps = ["LazilyInitializedFields", "Pkg", "TOML", "Tar"] +git-tree-sha1 = "ffd19052caf598b8653b99404058fce14828be51" +uuid = "2792f1a3-b283-48e8-9a74-f99dce5104f3" +version = "0.1.0" + [[deps.RelocatableFolders]] deps = ["SHA", "Scratch"] git-tree-sha1 = "90bc7a7c96410424509e4263e277e43250c05691" @@ -1821,6 +2142,12 @@ git-tree-sha1 = "256eeeec186fa7f26f2801732774ccf277f05db9" uuid = "ae5879a3-cd67-5da8-be7f-38c6eb64a37b" version = "1.1.1" +[[deps.RingLists]] +deps = ["Random"] +git-tree-sha1 = "f39da63aa6d2d88e0c1bd20ed6a3ff9ea7171ada" +uuid = "286e9d63-9694-5540-9e3c-4e6708fa07b2" +version = "0.2.8" + [[deps.Rmath]] deps = ["Random", "Rmath_jll"] git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" @@ -1835,9 +2162,14 @@ version = "0.4.0+0" [[deps.Rotations]] deps = ["LinearAlgebra", "Quaternions", "Random", "StaticArrays"] -git-tree-sha1 = "54ccb4dbab4b1f69beb255a2c0ca5f65a9c82f08" +git-tree-sha1 = "0783924e4a332493f72490253ba4e668aeba1d73" uuid = "6038ab10-8711-5258-84ad-4b1120ba62dc" -version = "1.5.1" +version = "1.6.0" + +[[deps.RoundingEmulator]] +git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" +uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" +version = "0.2.1" [[deps.RuntimeGeneratedFunctions]] deps = ["ExprTools", "SHA", "Serialization"] @@ -1861,10 +2193,10 @@ uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" version = "0.6.39" [[deps.SciMLBase]] -deps = ["ADTypes", "ArrayInterface", "ChainRulesCore", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces", "ZygoteRules"] -git-tree-sha1 = "a1e295a85fd6fae9a7b2072dd4577001210f512d" +deps = ["ADTypes", "ArrayInterface", "ChainRulesCore", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces", "ZygoteRules"] +git-tree-sha1 = "916b8a94c0d61fa5f7c5295649d3746afb866aff" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "1.95.0" +version = "1.98.1" [deps.SciMLBase.extensions] ZygoteExt = "Zygote" @@ -1899,12 +2231,23 @@ version = "1.4.0" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +[[deps.SetRounding]] +git-tree-sha1 = "d7a25e439d07a17b7cdf97eecee504c50fedf5f6" +uuid = "3cc68bcd-71a2-5612-b932-767ffbe40ab0" +version = "0.2.1" + [[deps.Setfield]] deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" version = "1.1.1" +[[deps.ShaderAbstractions]] +deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "0d15c3e7b2003f4451714f08ffec2b77badc2dc4" +uuid = "65257c39-d410-5151-9873-9b3e5be5013e" +version = "0.3.0" + [[deps.SharedArrays]] deps = ["Distributed", "Mmap", "Random", "Serialization"] uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" @@ -1915,11 +2258,23 @@ 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.SimpleBufferStream]] git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" version = "1.1.0" +[[deps.SimpleGraphs]] +deps = ["AbstractLattices", "Combinatorics", "DataStructures", "IterTools", "LightXML", "LinearAlgebra", "LinearAlgebraX", "Optim", "Primes", "Random", "RingLists", "SimplePartitions", "SimplePolynomials", "SimpleRandom", "SparseArrays", "Statistics"] +git-tree-sha1 = "b608903049d11cc557c45e03b3a53e9260579c19" +uuid = "55797a34-41de-5266-9ec1-32ac4eb504d3" +version = "0.8.4" + [[deps.SimpleNonlinearSolve]] deps = ["ArrayInterface", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "PackageExtensionCompat", "PrecompileTools", "Reexport", "SciMLBase", "StaticArraysCore"] git-tree-sha1 = "20aa9831d654bab67ed561e78917047143ecb9bf" @@ -1932,6 +2287,24 @@ version = "0.1.19" [deps.SimpleNonlinearSolve.weakdeps] NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" +[[deps.SimplePartitions]] +deps = ["AbstractLattices", "DataStructures", "Permutations"] +git-tree-sha1 = "dcc02923a53f316ab97da8ef3136e80b4543dbf1" +uuid = "ec83eff0-a5b5-5643-ae32-5cbf6eedec9d" +version = "0.3.0" + +[[deps.SimplePolynomials]] +deps = ["Mods", "Multisets", "Polynomials", "Primes"] +git-tree-sha1 = "d537c31cf9995236166e3e9afc424a5a1c59ff9d" +uuid = "cc47b68c-3164-5771-a705-2bc0097375a0" +version = "0.2.14" + +[[deps.SimpleRandom]] +deps = ["Distributions", "LinearAlgebra", "Random"] +git-tree-sha1 = "3a6fb395e37afab81aeea85bae48a4db5cd7244a" +uuid = "a6525b86-64cd-54fa-8f65-62fc48bdc0e8" +version = "0.3.1" + [[deps.SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" @@ -1976,9 +2349,9 @@ uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [[deps.SparseDiffTools]] deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "UnPack", "VertexSafeGraphs"] -git-tree-sha1 = "e080a6eea9dce295161cd31af829ebe252524c25" +git-tree-sha1 = "42d131931906bf4f0af97a7113c8456d0a8aff9d" uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" -version = "2.5.0" +version = "2.6.0" [deps.SparseDiffTools.extensions] SparseDiffToolsEnzymeExt = "Enzyme" @@ -2012,6 +2385,12 @@ git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" uuid = "171d559e-b47b-412a-8079-5efa626c420e" version = "0.1.15" +[[deps.StableHashTraits]] +deps = ["Compat", "SHA", "Tables", "TupleTools"] +git-tree-sha1 = "19df33ca14f24a3ad2df9e89124bd5f5cc8467a2" +uuid = "c5dd0088-6c3f-4803-b00e-f31a60c170fa" +version = "1.0.1" + [[deps.StackViews]] deps = ["OffsetArrays"] git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" @@ -2037,9 +2416,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "Random", "StaticArraysCore"] -git-tree-sha1 = "9cabadf6e7cd2349b6cf49f1915ad2028d65e881" +git-tree-sha1 = "51621cca8651d9e334a659443a74ce50a3b6dfab" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.6.2" +version = "1.6.3" weakdeps = ["Statistics"] [deps.StaticArrays.extensions] @@ -2050,12 +2429,6 @@ git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" version = "1.4.2" -[[deps.StaticLint]] -deps = ["CSTParser", "Serialization", "SymbolServer"] -git-tree-sha1 = "1152934b19a8a296db95ef6e1d454d4acc2aa79d" -uuid = "b3cc710f-9c33-5bdb-a03d-a94903873e97" -version = "8.1.0" - [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" @@ -2063,9 +2436,9 @@ version = "1.9.0" [[deps.StatsAPI]] deps = ["LinearAlgebra"] -git-tree-sha1 = "45a7769a04a3cf80da1c1c7c60caf932e6f4c9f7" +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" -version = "1.6.0" +version = "1.7.0" [[deps.StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] @@ -2106,9 +2479,16 @@ uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" version = "0.4.17" [[deps.StringManipulation]] -git-tree-sha1 = "46da2434b41f41ac3594ee9816ce5541c6096123" +deps = ["PrecompileTools"] +git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" -version = "0.3.0" +version = "0.3.4" + +[[deps.StructArrays]] +deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] +git-tree-sha1 = "0a3db38e4cce3c54fe7a71f831cd7b6194a54213" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.16" [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] @@ -2121,9 +2501,9 @@ version = "5.10.1+6" [[deps.Sundials]] deps = ["CEnum", "DataStructures", "DiffEqBase", "Libdl", "LinearAlgebra", "Logging", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "Sundials_jll"] -git-tree-sha1 = "4931f9013c53128337ce8df54a2d38c79fe58d4c" +git-tree-sha1 = "deea053391e5b352594030ac95bbc3be52855a69" uuid = "c3572dad-4567-51f8-b174-8c6c989267f4" -version = "4.19.3" +version = "4.19.5" [[deps.Sundials_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "OpenBLAS_jll", "Pkg", "SuiteSparse_jll"] @@ -2131,12 +2511,6 @@ git-tree-sha1 = "04777432d74ec5bc91ca047c9e0e0fd7f81acdb6" uuid = "fb77eaff-e24c-56d4-86b1-d163f2edb164" version = "5.2.1+0" -[[deps.SymbolServer]] -deps = ["InteractiveUtils", "LibGit2", "Markdown", "Pkg", "REPL", "SHA", "Serialization", "Sockets", "UUIDs"] -git-tree-sha1 = "d675e3a860523660421b1ca33543c06db2783a9b" -uuid = "cf896787-08d5-524d-9de7-132aaa0cb996" -version = "7.2.1" - [[deps.SymbolicIndexingInterface]] deps = ["DocStringExtensions"] git-tree-sha1 = "f8ab052bfcbdb9b48fad2c80c873aa0d0344dfe5" @@ -2155,10 +2529,10 @@ uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" version = "1.0.1" [[deps.Tables]] -deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits", "Test"] -git-tree-sha1 = "1544b926975372da01227b382066ab70e574a3ec" +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "a1f34829d5ac0ef499f6d84428bd6b4c71f02ead" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.10.1" +version = "1.11.0" [[deps.Tar]] deps = ["ArgTools", "SHA"] @@ -2175,12 +2549,6 @@ version = "0.1.1" deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" -[[deps.TestItemDetection]] -deps = ["CSTParser"] -git-tree-sha1 = "c63abb8bf01ba3f0e5421760454d578ee9bd12ca" -uuid = "76b0de8b-5c4b-48ef-a724-914b33ca988d" -version = "0.2.0" - [[deps.ThreadingUtilities]] deps = ["ManualMemory"] git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" @@ -2189,9 +2557,9 @@ version = "0.5.2" [[deps.TiffImages]] deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] -git-tree-sha1 = "8621f5c499a8aa4aa970b1ae381aae0ef1576966" +git-tree-sha1 = "3c4535892eff963d14acee719df445287c2d8f98" uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" -version = "0.6.4" +version = "0.6.5" [[deps.TiledIteration]] deps = ["OffsetArrays", "StaticArrayInterface"] @@ -2199,11 +2567,6 @@ git-tree-sha1 = "1176cc31e867217b06928e2f140c90bd1bc88283" uuid = "06e1c1a7-607b-532d-9fad-de7d9aa2abac" version = "0.5.0" -[[deps.Tokenize]] -git-tree-sha1 = "90538bf898832b6ebd900fa40f223e695970e3a5" -uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624" -version = "0.5.25" - [[deps.TranscodingStreams]] deps = ["Random", "Test"] git-tree-sha1 = "9a6ae7ed916312b41236fcef7e0af564ef934769" @@ -2247,12 +2610,22 @@ git-tree-sha1 = "aadb748be58b492045b4f56166b5188aa63ce549" uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" version = "0.1.7" +[[deps.TriplotBase]] +git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" +uuid = "981d1d27-644d-49a2-9326-4793e63143c3" +version = "0.1.0" + [[deps.TruncatedStacktraces]] deps = ["InteractiveUtils", "MacroTools", "Preferences"] git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" uuid = "781d530d-4396-4725-bb49-402e4bee1e77" version = "1.4.0" +[[deps.TupleTools]] +git-tree-sha1 = "155515ed4c4236db30049ac1495e2969cc06be9d" +uuid = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6" +version = "1.4.3" + [[deps.URIs]] git-tree-sha1 = "b7a5e99f24892b6824a954199a45e9ffcc1c70f0" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" @@ -2314,10 +2687,10 @@ uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" version = "0.2.0" [[deps.Wayland_jll]] -deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] -git-tree-sha1 = "ed8d92d9774b077c53e1da50fd81a36af3744c1c" +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" -version = "1.21.0+0" +version = "1.21.0+1" [[deps.Wayland_protocols_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -2361,10 +2734,10 @@ uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" version = "1.6.1" [[deps.XML2_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "93c41695bc1c08c46c5899f4fe06d6ead504bb73" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "04a51d15436a572301b5abbb9d099713327e9fc4" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.10.3+0" +version = "2.10.4+0" [[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] @@ -2521,6 +2894,12 @@ git-tree-sha1 = "868e669ccb12ba16eaf50cb2957ee2ff61261c56" uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" version = "0.29.0+0" +[[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", "Pkg"] git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" @@ -2586,6 +2965,6 @@ version = "3.5.0+0" [[deps.xkbcommon_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] -git-tree-sha1 = "9ebfc140cc56e8c2156a15ceac2f0302e327ac0a" +git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" -version = "1.4.1+0" +version = "1.4.1+1" diff --git a/Project.toml b/Project.toml index 41a9c22..c9598d5 100644 --- a/Project.toml +++ b/Project.toml @@ -4,13 +4,20 @@ authors = ["Johan Hidding "] version = "0.1.0" [deps] +BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +DaemonMode = "d749ddd5-2b29-4920-8305-6ff5a704e36e" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" +GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" +GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" GnuplotLite = "d23aac74-fdd5-4749-9733-a7e65d8a2269" +HDF5 = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" Interpolations = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" -LanguageServer = "2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7" +Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" PlotlyJS = "f0f68f2c-4968-5e81-91da-67840de0976a" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +Pluto = "c3e4b0f8-55cb-11ea-2926-15256bba5781" Transducers = "28d57a85-8fef-5791-bfe6-a80928e7c999" diff --git a/README.md b/README.md index ae5eb04..78a1998 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,41 @@ # CarboKitten - **Modeling Carbonate Platforms in Julia** +[![Entangled badge](https://img.shields.io/badge/entangled-Use%20the%20source!-%2300aeff)](https://entangled.github.io/) + +## Project layout + +``` +. +├── data # data files +├── docs # documentation +│   ├── make.jl # docs build script +│   ├── Manifest.toml # +│   ├── Project.toml # dependencies for building docs +│   └── src # markdown source for docs +├── entangled.toml # entangled config +├── examples # example scripts +├── Makefile # command-line short hands +├── Manifest.toml # +├── Project.toml # project dependencies +├── README.md # +└── src # tangled library source +``` + ## Running -Start the Julia REPL, and get into Pkg mode by pressing `]`. +Start the Julia REPL, and get into Pkg mode by pressing `]`. You may activate the package environment using `activate .` and then install the dependencies using `instantiate`. These steps only need to be run once. ```julia +pkg> activate . pkg> instantiate ``` -more documentation to appear soon. +If you want to start a REPL with the correct environment already activated, use the `--project=.` flag. Use the `-t` flag to enable processing in multiple threads. + +```shell +julia --project=. -t 4 +``` ### Examples @@ -29,14 +54,37 @@ julia --project=. or start the REPL from VS Code. In the REPL you can run ```julia -include("examples/bosscher-sclager-1992.jl") +include("examples/bosscher-schlager-1992.jl") ``` After that, you may edit an example and rerun. -## License +## Development +While developing, you'll need to run the Entangled watch daemon to keep Markdown and Julia code synchronized. + +```shell +entangled watch +``` + +The documentation is generated using `Documenter.jl`. The most efficient way to serve this documentation and have it update upon changes, is to run `LiveServer` from the Julia REPL or + +```shell +make serve-docs +``` + +To generate the more expensive figures (actually resulting from simulation etc.), you need to run a `DaemonMode` process in the background. + +```shell +make run-daemon +``` -Copyright University of Utrecht and Netherlands eScience Center 2023. This repository is licensed under the Apache v2 license, see LICENSE. +After that, you can run + +```shell +make figures +``` + +To run simulations and plot figures depending on those. ## References @@ -44,3 +92,59 @@ Code in this repository is based on - Burgess 2013 - Bosscher and Schlager 1992 + +## Authors + +Lead engineer: __Johan Hidding__ +Netherlands eScience Center +email: j.hidding [at] esciencecenter.nl +Web page: [www.esciencecenter.nl/team/johan-hidding-msc/](https://www.esciencecenter.nl/team/johan-hidding-msc/) +ORCID: [0000-0002-7550-1796](https://orcid.org/0000-0002-7550-1796) + +Original author: __Peter Burgess__ +University of Liverpool +Web page: [www.liverpool.ac.uk/environmental-sciences/staff/peter-burgess](https://www.liverpool.ac.uk/environmental-sciences/staff/peter-burgess/) + +Project lead: __Emilia Jarochowska__ +Utrecht University +email: e.b.jarochowska [at] uu.nl +Web page: [www.uu.nl/staff/EBJarochowska](https://www.uu.nl/staff/EBJarochowska) +ORCID: [0000-0001-8937-9405](https://orcid.org/0000-0001-8937-9405) + +**Other team members:** + +__Niklas Hohmann__ +Utrecht University +email: n.h.hohmann [at] uu.nl +Web page: [www.uu.nl/staff/NHohmann](https://www.uu.nl/staff/NHHohmann) +ORCID: [0000-0003-1559-1838](https://orcid.org/0000-0003-1559-1838) + +__Xianyi Liu__ +Utrecht University +email: x.liu6 [at] uu.nl +Web page: [www.uu.nl/staff/XLiu6](https://www.uu.nl/staff/XLiu6) +ORCID: + +__Hanno Spreeuw__ +Netherlands eScience Center +email: h.spreeuw [at] esciencecenter.nl +Web page: [www.esciencecenter.nl/team/dr-hanno-spreeuw/](https://www.esciencecenter.nl/team/dr-hanno-spreeuw) +ORCID: [0000-0002-5057-0322](https://orcid.org/0000-0002-5057-0322) + +__David De Vleeschouwer__ +Westfälische Wilhelms-Universität Münster +Web page: [www.uni-muenster.de/GeoPalaeontologie/erdsystemforschung/staff/DeVleeschouwer](https://www.uni-muenster.de/GeoPalaeontologie/erdsystemforschung/staff/DeVleeschouwer.html) +ORCID: [0000-0002-3323-807X](https://orcid.org/0000-0002-3323-807X) + +## Copyright + +Copyright 2023 Netherlands eScience Center and Utrecht University + +## License + +Apache 2.0 License, see LICENSE file for license text. + +## Funding information + +Funded by the European Union (ERC, MindTheGap, StG project no 101041077). Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Research Council. Neither the European Union nor the granting authority can be held responsible for them. + diff --git a/docs/Manifest.toml b/docs/Manifest.toml index 0ad0849..3439e9f 100644 --- a/docs/Manifest.toml +++ b/docs/Manifest.toml @@ -2,7 +2,12 @@ julia_version = "1.9.3" manifest_format = "2.0" -project_hash = "0317041e003fc0379139cc7404c011b89ba8c678" +project_hash = "d053c6399a70188652171b0335ff95adb5cda1c5" + +[[deps.ADTypes]] +git-tree-sha1 = "5d2e21d7b0d8c22f67483ef95ebdc39c0e6b6003" +uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +version = "0.2.4" [[deps.ANSIColoredPrinters]] git-tree-sha1 = "574baf8110975760d391c710b6341da1afa48d8c" @@ -20,6 +25,16 @@ weakdeps = ["ChainRulesCore", "Test"] AbstractFFTsChainRulesCoreExt = "ChainRulesCore" AbstractFFTsTestExt = "Test" +[[deps.AbstractLattices]] +git-tree-sha1 = "f35684b7349da49fcc8a9e520e30e45dbb077166" +uuid = "398f06c4-4d28-53ec-89ca-5b2656b7603d" +version = "0.2.1" + +[[deps.AbstractTrees]] +git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.4" + [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] git-tree-sha1 = "76289dc51920fdc6e0013c872ba9551d54961c24" @@ -30,6 +45,17 @@ weakdeps = ["StaticArrays"] [deps.Adapt.extensions] AdaptStaticArraysExt = "StaticArrays" +[[deps.Animations]] +deps = ["Colors"] +git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d" +uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" +version = "0.4.1" + +[[deps.ArgCheck]] +git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" +uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" +version = "2.3.0" + [[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" version = "1.1.1" @@ -68,6 +94,16 @@ git-tree-sha1 = "e5f08b5689b1aad068e01751889f2f615c7db36d" uuid = "30b0a656-2188-435a-8636-2ec0e6a096e2" version = "0.1.29" +[[deps.ArrayLayouts]] +deps = ["FillArrays", "LinearAlgebra"] +git-tree-sha1 = "0d61921af2799487b80453a44abb57db7a0c1381" +uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" +version = "1.4.1" +weakdeps = ["SparseArrays"] + + [deps.ArrayLayouts.extensions] + ArrayLayoutsSparseArraysExt = "SparseArrays" + [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" @@ -77,6 +113,12 @@ git-tree-sha1 = "b25e88db7944f98789130d7b503276bc34bc098e" uuid = "bf4720bc-e11a-5d0c-854e-bdca1663c893" version = "0.1.0" +[[deps.Automa]] +deps = ["TranscodingStreams"] +git-tree-sha1 = "ef9997b3d5547c48b41c7bd8899e812a917b409d" +uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" +version = "0.8.4" + [[deps.AxisAlgorithms]] deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] git-tree-sha1 = "66771c8d21c8ff5e3a93379480a2307ac36863f7" @@ -89,9 +131,44 @@ git-tree-sha1 = "16351be62963a67ac4083f748fdb3cca58bfd52f" uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" version = "0.4.7" +[[deps.BandedMatrices]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] +git-tree-sha1 = "0b816941273b5b162be122a6c94d706e3b3125ca" +uuid = "aae01518-5342-5314-be14-df237901396f" +version = "0.17.38" +weakdeps = ["SparseArrays"] + + [deps.BandedMatrices.extensions] + BandedMatricesSparseArraysExt = "SparseArrays" + +[[deps.BangBang]] +deps = ["Compat", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables"] +git-tree-sha1 = "e28912ce94077686443433c2800104b061a827ed" +uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" +version = "0.3.39" + + [deps.BangBang.extensions] + BangBangChainRulesCoreExt = "ChainRulesCore" + BangBangDataFramesExt = "DataFrames" + BangBangStaticArraysExt = "StaticArrays" + BangBangStructArraysExt = "StructArrays" + BangBangTypedTablesExt = "TypedTables" + + [deps.BangBang.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" + [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" +[[deps.Baselet]] +git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" +uuid = "9718e550-a3fa-408a-8086-8db961cd8217" +version = "0.1.1" + [[deps.BitFlags]] git-tree-sha1 = "43b1a4a8f797c1cddadf60499a8a077d4af2cd2d" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" @@ -109,6 +186,12 @@ git-tree-sha1 = "b1c61fd7e757c7e5ca6521ef41df8d929f41e3af" uuid = "ad839575-38b3-5650-b840-f874b8c74a25" version = "0.12.8" +[[deps.BoundaryValueDiffEq]] +deps = ["ArrayInterface", "BandedMatrices", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "NonlinearSolve", "Reexport", "SciMLBase", "Setfield", "SparseArrays", "TruncatedStacktraces", "UnPack"] +git-tree-sha1 = "f7392ce20e6dafa8fee406142b1764de7d7cd911" +uuid = "764a87c0-6b3e-53db-9096-fe964310641d" +version = "4.0.1" + [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" @@ -122,9 +205,30 @@ version = "0.4.2" [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] -git-tree-sha1 = "89e0654ed8c7aebad6d5ad235d6242c2d737a928" +git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.3" +version = "0.2.4" + +[[deps.CRC32c]] +uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc" + +[[deps.CRlibm]] +deps = ["CRlibm_jll"] +git-tree-sha1 = "32abd86e3c2025db5172aa182b982debed519834" +uuid = "96374032-68de-5a5b-8d9e-752f78720389" +version = "1.0.1" + +[[deps.CRlibm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e329286945d0cfc04456972ea732551869af1cfc" +uuid = "4e9b3aee-d8a1-5a3d-ad8b-7d824db253f0" +version = "1.0.1+0" + +[[deps.CSTParser]] +deps = ["Tokenize"] +git-tree-sha1 = "3ddd48d200eb8ddf9cb3e0189fc059fd49b97c1f" +uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f" +version = "3.3.6" [[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] @@ -132,15 +236,33 @@ git-tree-sha1 = "44dbf560808d49041989b8a96cae4cffbeb7966a" uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" version = "0.10.11" +[[deps.Cairo]] +deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] +git-tree-sha1 = "d0b3f8b4ad16cb0a2988c6788646a5e6a17b6b1b" +uuid = "159f3aea-2a34-519c-b102-8c37f9878175" +version = "1.0.5" + +[[deps.CairoMakie]] +deps = ["Base64", "Cairo", "Colors", "FFTW", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools", "SHA"] +git-tree-sha1 = "696e7931bd6f5c773418452cbe5fd241cb85ac2a" +uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +version = "0.10.9" + [[deps.Cairo_jll]] deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" version = "1.16.1+1" +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + [[deps.CarboKitten]] -deps = ["CSV", "DataFrames", "Images", "PlotlyJS", "Plots"] -git-tree-sha1 = "af0fd7b7bf80e33964acf6755e2c225fd2efe19b" +deps = ["CSV", "DataFrames", "DifferentialEquations", "GnuplotLite", "Images", "Interpolations", "LanguageServer", "PlotlyJS", "Plots", "Transducers"] +git-tree-sha1 = "15a9536c086a634287094717478d0e70e3aad2e8" repo-rev = "main" repo-url = ".." uuid = "690c6d5c-626a-429f-a06b-981a1dae1c19" @@ -176,6 +298,12 @@ git-tree-sha1 = "02aa26a4cf76381be7f66e020a3eddeb27b0a092" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" version = "0.7.2" +[[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 = "d9a8f86737b665e15a9641ecbac64deef9ce6724" @@ -189,16 +317,10 @@ uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" version = "0.11.4" [[deps.ColorVectorSpace]] -deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] -git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"] +git-tree-sha1 = "600cc5508d66b78aae350f7accdb58763ac18589" uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" -version = "0.10.0" - - [deps.ColorVectorSpace.extensions] - SpecialFunctionsExt = "SpecialFunctions" - - [deps.ColorVectorSpace.weakdeps] - SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "0.9.10" [[deps.Colors]] deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] @@ -206,6 +328,28 @@ git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" version = "0.12.10" +[[deps.Combinatorics]] +git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" +uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" +version = "1.0.2" + +[[deps.CommonMark]] +deps = ["Crayons", "JSON", "PrecompileTools", "URIs"] +git-tree-sha1 = "532c4185d3c9037c0237546d817858b23cf9e071" +uuid = "a80b9123-70ca-4bc0-993e-6e3bcb318db6" +version = "0.8.12" + +[[deps.CommonSolve]] +git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" +uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" +version = "0.2.4" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.0" + [[deps.Compat]] deps = ["UUIDs"] git-tree-sha1 = "e460f044ca8b99be31d35fe54fc33a5c33dd8ed7" @@ -221,6 +365,17 @@ deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" version = "1.0.5+0" +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + + [deps.CompositionsBase.weakdeps] + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + [[deps.ComputationalResources]] git-tree-sha1 = "52cb3ec90e8a8bea0e62e275ba577ad0f74821f7" uuid = "ed09eef8-17a6-5b46-8889-db040fac31e3" @@ -232,6 +387,17 @@ git-tree-sha1 = "5372dbbf8f0bdb8c700db5367132925c0771ef7e" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" version = "2.2.1" +[[deps.ConstructionBase]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.4" +weakdeps = ["IntervalSets", "StaticArrays"] + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseStaticArraysExt = "StaticArrays" + [[deps.Contour]] git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" @@ -285,12 +451,94 @@ version = "1.0.0" deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" +[[deps.DefineSingletons]] +git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" +uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" +version = "0.1.2" + +[[deps.DelaunayTriangulation]] +deps = ["DataStructures", "EnumX", "ExactPredicates", "Random", "SimpleGraphs"] +git-tree-sha1 = "bea7984f7e09aeb28a3b071c420a0186cb4fabad" +uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" +version = "0.8.8" + +[[deps.DelayDiffEq]] +deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SimpleUnPack"] +git-tree-sha1 = "89f3fbfe78f9d116d1ed0721d65b0b2cf9b36169" +uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" +version = "5.42.0" + [[deps.DelimitedFiles]] deps = ["Mmap"] git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" version = "1.9.1" +[[deps.DiffEqBase]] +deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] +git-tree-sha1 = "0d9982e8dee851d519145857e79a17ee33ede154" +uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" +version = "6.130.0" + + [deps.DiffEqBase.extensions] + DiffEqBaseDistributionsExt = "Distributions" + DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated" + DiffEqBaseMPIExt = "MPI" + DiffEqBaseMeasurementsExt = "Measurements" + DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" + DiffEqBaseReverseDiffExt = "ReverseDiff" + DiffEqBaseTrackerExt = "Tracker" + DiffEqBaseUnitfulExt = "Unitful" + DiffEqBaseZygoteExt = "Zygote" + + [deps.DiffEqBase.weakdeps] + Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" + GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.DiffEqCallbacks]] +deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "42424e81924d4f463c6f8db8ce2978d51ba0aeaf" +uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" +version = "2.30.0" +weakdeps = ["OrdinaryDiffEq", "Sundials"] + +[[deps.DiffEqNoiseProcess]] +deps = ["DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] +git-tree-sha1 = "6b02e9c9d0d4cacf2b20f36c33710b8b415c5194" +uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" +version = "5.18.0" + + [deps.DiffEqNoiseProcess.extensions] + DiffEqNoiseProcessReverseDiffExt = "ReverseDiff" + + [deps.DiffEqNoiseProcess.weakdeps] + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.15.1" + +[[deps.DifferentialEquations]] +deps = ["BoundaryValueDiffEq", "DelayDiffEq", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "JumpProcesses", "LinearAlgebra", "LinearSolve", "NonlinearSolve", "OrdinaryDiffEq", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "SteadyStateDiffEq", "StochasticDiffEq", "Sundials"] +git-tree-sha1 = "c3d11164d1b08c379bc3c6abae45fcd7250e8e35" +uuid = "0c46a032-eb83-5123-abaf-570d42b7fbaa" +version = "7.9.1" + [[deps.Distances]] deps = ["LinearAlgebra", "Statistics", "StatsAPI"] git-tree-sha1 = "b6def76ffad15143924a2199f72a5cd883a2e8a9" @@ -305,6 +553,20 @@ weakdeps = ["SparseArrays"] deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "Test"] +git-tree-sha1 = "938fe2981db009f531b6332e31c58e9584a2f9bd" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.100" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + [[deps.DocStringExtensions]] deps = ["LibGit2"] git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" @@ -322,6 +584,40 @@ deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[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.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.ErrorfreeArithmetic]] +git-tree-sha1 = "d6863c556f1142a061532e79f611aa46be201686" +uuid = "90fa49ef-747e-5e6f-a989-263ba693cf1a" +version = "0.5.2" + +[[deps.ExactPredicates]] +deps = ["IntervalArithmetic", "Random", "StaticArraysCore", "Test"] +git-tree-sha1 = "276e83bc8b21589b79303b9985c321024ffdf59c" +uuid = "429591f6-91af-11e9-00e2-59fbe8cec110" +version = "2.2.5" + [[deps.ExceptionUnwrapping]] deps = ["Test"] git-tree-sha1 = "e90caa41f5a86296e014e148ee061bd6c3edec96" @@ -334,6 +630,22 @@ git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" version = "2.5.0+0" +[[deps.ExponentialUtilities]] +deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] +git-tree-sha1 = "602e4585bcbd5a25bc06f514724593d13ff9e862" +uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" +version = "1.25.0" + +[[deps.ExprTools]] +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.10" + +[[deps.Extents]] +git-tree-sha1 = "5e1e4c53fa39afe63a7d356e30452249365fba99" +uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" +version = "0.1.1" + [[deps.FFMPEG]] deps = ["FFMPEG_jll"] git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" @@ -364,6 +676,29 @@ git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" version = "3.3.10+0" +[[deps.FastBroadcast]] +deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] +git-tree-sha1 = "aa9925a229d45fe3018715238956766fa21804d1" +uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" +version = "0.2.6" + +[[deps.FastClosures]] +git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" +uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" +version = "0.3.2" + +[[deps.FastLapackInterface]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "b12f05108e405dadcc2aff0008db7f831374e051" +uuid = "29a986be-02c6-4525-aec4-84b980013641" +version = "2.0.0" + +[[deps.FastRounding]] +deps = ["ErrorfreeArithmetic", "LinearAlgebra"] +git-tree-sha1 = "6344aa18f654196be82e62816935225b3b9abe44" +uuid = "fa42c844-2597-5d31-933b-ebd51ab2693f" +version = "0.3.1" + [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673" @@ -379,6 +714,33 @@ version = "0.9.20" [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "a20eaa3ad64254c61eeb5f230d9306e937405434" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.6.1" +weakdeps = ["SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FiniteDiff]] +deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] +git-tree-sha1 = "c6e4a1fbe73b31a3dea94b1da449503b8830c306" +uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" +version = "2.21.1" + + [deps.FiniteDiff.extensions] + FiniteDiffBandedMatricesExt = "BandedMatrices" + FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffStaticArraysExt = "StaticArrays" + + [deps.FiniteDiff.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + [[deps.FixedPointNumbers]] deps = ["Statistics"] git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" @@ -397,24 +759,63 @@ git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" version = "0.4.2" +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.36" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FreeType]] +deps = ["CEnum", "FreeType2_jll"] +git-tree-sha1 = "50351f83f95282cf903e968d7c6e8d44a5f83d0b" +uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" +version = "4.1.0" + [[deps.FreeType2_jll]] deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" version = "2.13.1+0" +[[deps.FreeTypeAbstraction]] +deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] +git-tree-sha1 = "38a92e40157100e796690421e34a11c107205c86" +uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" +version = "0.10.0" + [[deps.FriBidi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" uuid = "559328eb-81f9-559d-9380-de523a88c83c" version = "1.0.10+0" +[[deps.FunctionWrappers]] +git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" +uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" +version = "1.1.3" + +[[deps.FunctionWrappersWrappers]] +deps = ["FunctionWrappers"] +git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" +uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" +version = "0.1.3" + [[deps.FunctionalCollections]] deps = ["Test"] git-tree-sha1 = "04cb9cfaa6ba5311973994fe3496ddec19b6292a" uuid = "de31a74c-ac4f-5751-b3fd-e18cd04993ca" version = "0.5.0" +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + [[deps.Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" @@ -425,6 +826,12 @@ git-tree-sha1 = "d972031d28c8c8d9d7b41a536ad7bb0c2579caca" uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" version = "3.3.8+0" +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.5" + [[deps.GR]] deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] git-tree-sha1 = "8e2d86e06ceb4580110d9e716be26658effc5bfd" @@ -437,6 +844,24 @@ git-tree-sha1 = "da121cbdc95b065da07fbb93638367737969693f" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" version = "0.72.8+0" +[[deps.GenericSchur]] +deps = ["LinearAlgebra", "Printf"] +git-tree-sha1 = "fb69b2a645fa69ba5f474af09221b9308b160ce6" +uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" +version = "0.5.3" + +[[deps.GeoInterface]] +deps = ["Extents"] +git-tree-sha1 = "bb198ff907228523f3dee1070ceee63b9359b6ab" +uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" +version = "1.3.1" + +[[deps.GeometryBasics]] +deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "424a5a6ce7c5d97cca7bcc4eac551b97294c54af" +uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +version = "0.4.9" + [[deps.Gettext_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" @@ -444,10 +869,20 @@ 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", "Pkg", "Zlib_jll"] -git-tree-sha1 = "d3b3624125c1474292d0d8ed0f65554ac37ddb23" +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.74.0+2" +version = "2.76.5+0" + +[[deps.Glob]] +git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" +uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" +version = "1.3.1" + +[[deps.GnuplotLite]] +git-tree-sha1 = "17337ed2faf970a7af883c8af86c2f6aff4417b0" +uuid = "d23aac74-fdd5-4749-9733-a7e65d8a2269" +version = "0.1.2" [[deps.Graphics]] deps = ["Colors", "LinearAlgebra", "NaNMath"] @@ -467,16 +902,40 @@ git-tree-sha1 = "1cf1d7dcb4bc32d7b4a5add4232db3750c27ecb4" uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" version = "1.8.0" +[[deps.GridLayoutBase]] +deps = ["GeometryBasics", "InteractiveUtils", "Observables"] +git-tree-sha1 = "f57a64794b336d4990d90f80b147474b869b1bc4" +uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" +version = "0.9.2" + [[deps.Grisu]] git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" version = "1.0.2" +[[deps.HDF5]] +deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] +git-tree-sha1 = "ec7df74b7b2022e8252a8bfd4ec23411491adc3b" +uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" +version = "0.17.0" + + [deps.HDF5.extensions] + MPIExt = "MPI" + + [deps.HDF5.weakdeps] + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + +[[deps.HDF5_jll]] +deps = ["Artifacts", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenSSL_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "4cc2bb72df6ff40b055295fdef6d92955f9dede8" +uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" +version = "1.12.2+2" + [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "cb56ccdd481c0dd7f975ad2b3b62d9eda088f7e2" +git-tree-sha1 = "5eab648309e2e060198b45820af1a37182de3cce" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.9.14" +version = "1.10.0" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -490,18 +949,18 @@ git-tree-sha1 = "6187bb2d5fcbb2007c39e7ac53308b0d371124bd" uuid = "9fb69e20-1954-56bb-a84f-559cc56a8ff7" version = "0.2.2" -[[deps.HistogramThresholding]] -deps = ["ImageBase", "LinearAlgebra", "MappedArrays"] -git-tree-sha1 = "7194dfbb2f8d945abdaf68fa9480a965d6661e69" -uuid = "2c695a8d-9458-5d45-9878-1b8a99cf7853" -version = "0.3.1" - [[deps.HostCPUFeatures]] deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] git-tree-sha1 = "eb8fed28f4994600e29beef49744639d985a04b2" uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" version = "0.1.16" +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + [[deps.IOCapture]] deps = ["Logging", "Random"] git-tree-sha1 = "d75853a0bdbfb1ac815478bacd89cd27b550ace6" @@ -521,15 +980,9 @@ version = "0.6.11" [[deps.ImageBase]] deps = ["ImageCore", "Reexport"] -git-tree-sha1 = "eb49b82c172811fd2c86759fa0553a2221feb909" +git-tree-sha1 = "b51bb8cae22c66d0f6357e3bcb6363145ef20835" uuid = "c817782e-172a-44cc-b673-b171935fbb9e" -version = "0.1.7" - -[[deps.ImageBinarization]] -deps = ["HistogramThresholding", "ImageCore", "LinearAlgebra", "Polynomials", "Reexport", "Statistics"] -git-tree-sha1 = "f5356e7203c4a9954962e3757c08033f2efe578a" -uuid = "cbc4b850-ae4b-5111-9e64-df94c024a13d" -version = "0.3.0" +version = "0.1.5" [[deps.ImageContrastAdjustment]] deps = ["ImageBase", "ImageCore", "ImageTransformations", "Parameters"] @@ -538,16 +991,10 @@ uuid = "f332f351-ec65-5f6a-b3d1-319c6670881a" version = "0.3.12" [[deps.ImageCore]] -deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "PrecompileTools", "Reexport"] -git-tree-sha1 = "fc5d1d3443a124fde6e92d0260cd9e064eba69f8" +deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Graphics", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "Reexport"] +git-tree-sha1 = "acf614720ef026d38400b3817614c45882d75500" uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" -version = "0.10.1" - -[[deps.ImageCorners]] -deps = ["ImageCore", "ImageFiltering", "PrecompileTools", "StaticArrays", "StatsBase"] -git-tree-sha1 = "24c52de051293745a9bad7d73497708954562b79" -uuid = "89d5987c-236e-4e32-acd0-25bd6bd87b70" -version = "0.1.3" +version = "0.9.4" [[deps.ImageDistances]] deps = ["Distances", "ImageCore", "ImageMorphology", "LinearAlgebra", "Statistics"] @@ -557,9 +1004,9 @@ version = "0.2.17" [[deps.ImageFiltering]] deps = ["CatIndices", "ComputationalResources", "DataStructures", "FFTViews", "FFTW", "ImageBase", "ImageCore", "LinearAlgebra", "OffsetArrays", "PrecompileTools", "Reexport", "SparseArrays", "StaticArrays", "Statistics", "TiledIteration"] -git-tree-sha1 = "432ae2b430a18c58eb7eca9ef8d0f2db90bc749c" +git-tree-sha1 = "3447781d4c80dbe6d71d239f7cfb1f8049d4c84f" uuid = "6a3955dd-da59-5b1f-98d4-e7296123deb5" -version = "0.7.8" +version = "0.7.6" [[deps.ImageIO]] deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] @@ -586,10 +1033,10 @@ uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" version = "0.9.9" [[deps.ImageMorphology]] -deps = ["DataStructures", "ImageCore", "LinearAlgebra", "LoopVectorization", "OffsetArrays", "Requires", "TiledIteration"] -git-tree-sha1 = "6f0a801136cb9c229aebea0df296cdcd471dbcd1" +deps = ["ImageCore", "LinearAlgebra", "Requires", "TiledIteration"] +git-tree-sha1 = "e7c68ab3df4a75511ba33fc5d8d9098007b579a8" uuid = "787d08f9-d448-5407-9aad-5290dd7ab264" -version = "0.4.5" +version = "0.3.2" [[deps.ImageQualityIndexes]] deps = ["ImageContrastAdjustment", "ImageCore", "ImageDistances", "ImageFiltering", "LazyModules", "OffsetArrays", "PrecompileTools", "Statistics"] @@ -599,9 +1046,9 @@ version = "0.3.7" [[deps.ImageSegmentation]] deps = ["Clustering", "DataStructures", "Distances", "Graphs", "ImageCore", "ImageFiltering", "ImageMorphology", "LinearAlgebra", "MetaGraphs", "RegionTrees", "SimpleWeightedGraphs", "StaticArrays", "Statistics"] -git-tree-sha1 = "3ff0ca203501c3eedde3c6fa7fd76b703c336b5f" +git-tree-sha1 = "44664eea5408828c03e5addb84fa4f916132fc26" uuid = "80713f31-8817-5129-9cf8-209ff8fb23e1" -version = "1.8.2" +version = "1.8.1" [[deps.ImageShow]] deps = ["Base64", "ColorSchemes", "FileIO", "ImageBase", "ImageCore", "OffsetArrays", "StackViews"] @@ -610,16 +1057,16 @@ uuid = "4e3cecfd-b093-5904-9786-8bbb286a6a31" version = "0.3.8" [[deps.ImageTransformations]] -deps = ["AxisAlgorithms", "CoordinateTransformations", "ImageBase", "ImageCore", "Interpolations", "OffsetArrays", "Rotations", "StaticArrays"] -git-tree-sha1 = "7ec124670cbce8f9f0267ba703396960337e54b5" +deps = ["AxisAlgorithms", "ColorVectorSpace", "CoordinateTransformations", "ImageBase", "ImageCore", "Interpolations", "OffsetArrays", "Rotations", "StaticArrays"] +git-tree-sha1 = "8717482f4a2108c9358e5c3ca903d3a6113badc9" uuid = "02fcd773-0e25-5acc-982a-7f6622650795" -version = "0.10.0" +version = "0.9.5" [[deps.Images]] -deps = ["Base64", "FileIO", "Graphics", "ImageAxes", "ImageBase", "ImageBinarization", "ImageContrastAdjustment", "ImageCore", "ImageCorners", "ImageDistances", "ImageFiltering", "ImageIO", "ImageMagick", "ImageMetadata", "ImageMorphology", "ImageQualityIndexes", "ImageSegmentation", "ImageShow", "ImageTransformations", "IndirectArrays", "IntegralArrays", "Random", "Reexport", "SparseArrays", "StaticArrays", "Statistics", "StatsBase", "TiledIteration"] -git-tree-sha1 = "d438268ed7a665f8322572be0dabda83634d5f45" +deps = ["Base64", "FileIO", "Graphics", "ImageAxes", "ImageBase", "ImageContrastAdjustment", "ImageCore", "ImageDistances", "ImageFiltering", "ImageIO", "ImageMagick", "ImageMetadata", "ImageMorphology", "ImageQualityIndexes", "ImageSegmentation", "ImageShow", "ImageTransformations", "IndirectArrays", "IntegralArrays", "Random", "Reexport", "SparseArrays", "StaticArrays", "Statistics", "StatsBase", "TiledIteration"] +git-tree-sha1 = "5fa9f92e1e2918d9d1243b1131abe623cdf98be7" uuid = "916415d5-f1e6-5110-898d-aaa5f9f070e0" -version = "0.26.0" +version = "0.25.3" [[deps.Imath_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -637,12 +1084,22 @@ git-tree-sha1 = "5cd07aab533df5170988219191dfad0519391428" uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" version = "0.1.3" +[[deps.InitialValues]] +git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" +uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" +version = "0.3.1" + [[deps.InlineStrings]] deps = ["Parsers"] git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" version = "1.4.0" +[[deps.IntegerMathUtils]] +git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" +uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" +version = "0.1.2" + [[deps.IntegralArrays]] deps = ["ColorTypes", "FixedPointNumbers", "IntervalSets"] git-tree-sha1 = "be8e690c3973443bec584db3346ddc904d4884eb" @@ -665,6 +1122,12 @@ git-tree-sha1 = "721ec2cf720536ad005cb38f50dbba7b02419a15" uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" version = "0.14.7" +[[deps.IntervalArithmetic]] +deps = ["CRlibm", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "RoundingEmulator", "SetRounding", "StaticArrays"] +git-tree-sha1 = "5ab7744289be503d76a944784bac3f2df7b809af" +uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" +version = "0.20.9" + [[deps.IntervalSets]] deps = ["Dates", "Random"] git-tree-sha1 = "8e59ea773deee525c99a8018409f64f19fb719e6" @@ -685,6 +1148,12 @@ 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 = "4ced6667f9974fc5c5943fa5e2ef1ca43ea9e450" uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" @@ -697,9 +1166,9 @@ version = "1.0.0" [[deps.JLD2]] deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "aa6ffef1fd85657f4999030c52eaeec22a279738" +git-tree-sha1 = "773125c999b4ebfe31e679593c8af7f43f401f1c" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.33" +version = "0.4.34" [[deps.JLFzf]] deps = ["Pipe", "REPL", "Random", "fzf_jll"] @@ -725,6 +1194,12 @@ git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" version = "0.21.4" +[[deps.JSONRPC]] +deps = ["JSON", "UUIDs"] +git-tree-sha1 = "2756e5ffc7d46857e310a461aa366bbf7bbb673a" +uuid = "b9b8584e-8fd3-41f9-ad0c-7255d428e418" +version = "1.3.6" + [[deps.JpegTurbo]] deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] git-tree-sha1 = "327713faef2a3e5c80f96bf38d1fa26f7a6ae29e" @@ -737,12 +1212,46 @@ git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" version = "2.1.91+0" +[[deps.JuliaFormatter]] +deps = ["CSTParser", "CommonMark", "DataStructures", "Glob", "Pkg", "PrecompileTools", "Tokenize"] +git-tree-sha1 = "2aa8cb5410821365a87f326631d7f6ce07db8882" +uuid = "98e50ef6-434e-11e9-1051-2b60c6c9e899" +version = "1.0.36" + +[[deps.JumpProcesses]] +deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "Markdown", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays", "TreeViews", "UnPack"] +git-tree-sha1 = "61068b4df1e434c26ff8b876fbaf2be3e3e44d27" +uuid = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5" +version = "9.7.3" +weakdeps = ["FastBroadcast"] + + [deps.JumpProcesses.extensions] + JumpProcessFastBroadcastExt = "FastBroadcast" + +[[deps.KLU]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] +git-tree-sha1 = "884c2968c2e8e7e6bf5956af88cb46aa745c854b" +uuid = "ef3ab10e-7fda-4108-b977-705223b18434" +version = "0.4.1" + [[deps.Kaleido_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "43032da5832754f58d14a91ffbe86d5f176acda9" uuid = "f7e6163d-2fa5-5f23-b69c-1db539e41963" version = "0.2.1+0" +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] +git-tree-sha1 = "90442c50e202a5cdf21a7899c66b240fdef14035" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.7" + +[[deps.Krylov]] +deps = ["LinearAlgebra", "Printf", "SparseArrays"] +git-tree-sha1 = "17e462054b42dcdda73e9a9ba0c67754170c88ae" +uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" +version = "0.9.4" + [[deps.LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" @@ -772,6 +1281,12 @@ git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" version = "1.3.0" +[[deps.LanguageServer]] +deps = ["CSTParser", "JSON", "JSONRPC", "JuliaFormatter", "Markdown", "Pkg", "REPL", "StaticLint", "SymbolServer", "TestItemDetection", "Tokenize", "URIs", "UUIDs"] +git-tree-sha1 = "435e26f5767a756861bea4e406a109bee2442254" +uuid = "2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7" +version = "4.4.0" + [[deps.Latexify]] deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" @@ -807,6 +1322,12 @@ git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e" version = "0.3.1" +[[deps.LevyArea]] +deps = ["LinearAlgebra", "Random", "SpecialFunctions"] +git-tree-sha1 = "56513a09b8e0ae6485f34401ea9e2f31357958ec" +uuid = "2d8b4e74-eb68-11e8-0fb9-d5eb67b50637" +version = "1.0.0" + [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" @@ -854,10 +1375,10 @@ uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" version = "1.42.0+0" [[deps.Libiconv_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c7cb1f5d892775ba13767a87c7ada0b980ea0a71" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" -version = "1.16.1+2" +version = "1.17.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -877,10 +1398,52 @@ git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" version = "2.36.0+0" +[[deps.LightXML]] +deps = ["Libdl", "XML2_jll"] +git-tree-sha1 = "e129d9391168c677cd4800f5c0abb1ed8cb3794f" +uuid = "9c8b4983-aa76-5018-a973-4c85ecc9e179" +version = "0.9.0" + +[[deps.LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] +git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.2.0" + [[deps.LinearAlgebra]] deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +[[deps.LinearAlgebraX]] +deps = ["LinearAlgebra", "Mods", "Permutations", "Primes", "SimplePolynomials"] +git-tree-sha1 = "558a338f1eeabe933f9c2d4052aa7c2c707c3d52" +uuid = "9b3f67b0-2d00-526e-9884-9e4938f8fb88" +version = "0.1.12" + +[[deps.LinearSolve]] +deps = ["ArrayInterface", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "Libdl", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] +git-tree-sha1 = "69cbd612e6e67ba2f8121bc8725bc9d04d803599" +uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" +version = "2.5.1" + + [deps.LinearSolve.extensions] + LinearSolveCUDAExt = "CUDA" + LinearSolveHYPREExt = "HYPRE" + LinearSolveIterativeSolversExt = "IterativeSolvers" + LinearSolveKrylovKitExt = "KrylovKit" + LinearSolveMKLExt = "MKL_jll" + LinearSolveMetalExt = "Metal" + LinearSolvePardisoExt = "Pardiso" + + [deps.LinearSolve.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" + IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" + KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" + MKL_jll = "856f044c-d86e-5d09-b602-aeab76dc8ba7" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" + [[deps.LiveServer]] deps = ["HTTP", "LoggingExtras", "MIMEs", "Pkg", "Sockets", "Test"] git-tree-sha1 = "24d05efe53436b22a42bf2ae459f47c48b0c2603" @@ -908,25 +1471,21 @@ uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[deps.LoggingExtras]] deps = ["Dates", "Logging"] -git-tree-sha1 = "a03c77519ab45eb9a34d3cfe2ca223d79c064323" +git-tree-sha1 = "0d097476b6c381ab7906460ef1ef1638fbce1d91" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" -version = "1.0.1" +version = "1.0.2" [[deps.LoopVectorization]] deps = ["ArrayInterface", "ArrayInterfaceCore", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] git-tree-sha1 = "c88a4afe1703d731b1c4fdf4e3c7e77e3b176ea2" uuid = "bdcacae8-1622-11e9-2a5c-532679323890" version = "0.12.165" +weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] [deps.LoopVectorization.extensions] ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] SpecialFunctionsExt = "SpecialFunctions" - [deps.LoopVectorization.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" - [[deps.MIMEs]] git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" @@ -938,12 +1497,30 @@ git-tree-sha1 = "eb006abbd7041c28e0d16260e50a24f8f9104913" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" version = "2023.2.0+0" +[[deps.MPIPreferences]] +deps = ["Libdl", "Preferences"] +git-tree-sha1 = "781916a2ebf2841467cda03b6f1af43e23839d85" +uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" +version = "0.1.9" + [[deps.MacroTools]] deps = ["Markdown", "Random"] git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" version = "0.5.11" +[[deps.Makie]] +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FixedPointNumbers", "Formatting", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "Match", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Setfield", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "StableHashTraits", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun"] +git-tree-sha1 = "ecc334efc4a8a68800776b0d85ab7bb2fff63f7a" +uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +version = "0.19.9" + +[[deps.MakieCore]] +deps = ["Observables"] +git-tree-sha1 = "1efb1166dd9398f2ccf6d728f896658c9c84733e" +uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" +version = "0.6.6" + [[deps.ManualMemory]] git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" @@ -958,6 +1535,17 @@ version = "0.4.2" deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" +[[deps.Match]] +git-tree-sha1 = "1d9bc5c1a6e7ee24effb93f175c9342f9154d97f" +uuid = "7eb4fadd-790c-5f42-8a69-bfa0b872bfbf" +version = "1.2.0" + +[[deps.MathTeXEngine]] +deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "Test", "UnicodeFun"] +git-tree-sha1 = "8f52dbaa1351ce4cb847d95568cb29e62a307d93" +uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" +version = "0.5.6" + [[deps.MbedTLS]] deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"] git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b" @@ -980,6 +1568,12 @@ git-tree-sha1 = "1130dbe1d5276cb656f6e1094ce97466ed700e5a" uuid = "626554b9-1ddb-594c-aa3c-2596fe9399a5" version = "0.7.2" +[[deps.MicroCollections]] +deps = ["BangBang", "InitialValues", "Setfield"] +git-tree-sha1 = "629afd7d10dbc6935ec59b32daeb33bc4460a42e" +uuid = "128add7d-3638-4c79-886c-908ea0c25c34" +version = "0.1.4" + [[deps.Missings]] deps = ["DataAPI"] git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" @@ -989,6 +1583,11 @@ version = "1.1.0" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" +[[deps.Mods]] +git-tree-sha1 = "61be59e4daffff43a8cec04b5e0dc773cbb5db3a" +uuid = "7475f97c-0381-53b1-977b-4c60186c8d62" +version = "1.3.3" + [[deps.MosaicViews]] deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe" @@ -999,6 +1598,16 @@ version = "0.3.4" uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2022.10.11" +[[deps.MuladdMacro]] +git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" +uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +version = "0.2.4" + +[[deps.Multisets]] +git-tree-sha1 = "8d852646862c96e226367ad10c8af56099b4047e" +uuid = "3b2b4ff1-bcff-5658-a3ee-dbcf1ce5ac09" +version = "0.4.4" + [[deps.Mustache]] deps = ["Printf", "Tables"] git-tree-sha1 = "821e918c170ead5298ff84bffee41dd28929a681" @@ -1011,6 +1620,18 @@ git-tree-sha1 = "0bdaa479939d2a1f85e2f93e38fbccfcb73175a5" uuid = "a975b10e-0019-58db-a62f-e48ff68538c9" version = "1.0.1" +[[deps.NLSolversBase]] +deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] +git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.8.3" + +[[deps.NLsolve]] +deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] +git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" +uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" +version = "4.5.1" + [[deps.NaNMath]] deps = ["OpenLibm_jll"] git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" @@ -1033,6 +1654,12 @@ version = "1.1.1" uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" +[[deps.NonlinearSolve]] +deps = ["ArrayInterface", "DiffEqBase", "EnumX", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "PrecompileTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "UnPack"] +git-tree-sha1 = "ee53089df81a6bdf3c06c17cf674e90931b10a73" +uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" +version = "1.10.0" + [[deps.Observables]] git-tree-sha1 = "6862738f9796b3edc1c09d0890afce4eca9e7e93" uuid = "510215fc-4207-5dde-b226-833fc4488ee2" @@ -1080,9 +1707,21 @@ version = "1.4.1" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "bbb5c2115d63c2f1451cb70e5ef75e8fe4707019" +git-tree-sha1 = "a12e56c72edee3ce6b96667745e6cbbe5498f200" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "1.1.22+0" +version = "1.1.23+0" + +[[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.Optim]] +deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] +git-tree-sha1 = "963b004d15216f8129f6c0f7d187efa136570be0" +uuid = "429524aa-4258-5aef-a3af-852621145aeb" +version = "1.7.7" [[deps.Opus_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1095,23 +1734,53 @@ git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" version = "1.6.2" +[[deps.OrdinaryDiffEq]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLNLSolve", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] +git-tree-sha1 = "ba3ed480f991b846cf9a8118d3370d9752e7166d" +uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +version = "6.55.0" + [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" version = "10.42.0+0" +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "67eae2738d63117a196f497d7db789821bce61d1" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.17" + [[deps.PNGFiles]] deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] git-tree-sha1 = "9b02b27ac477cad98114584ff964e3052f656a0f" uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" version = "0.4.0" +[[deps.PackageExtensionCompat]] +git-tree-sha1 = "f9b1e033c2b1205cf30fd119f4e50881316c1923" +uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" +version = "1.0.1" +weakdeps = ["Requires", "TOML"] + +[[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 = "4745216e94f71cb768d58330b059c9b76f32cb66" +uuid = "36c8627f-9965-5494-a995-c6b170f724f3" +version = "1.50.14+0" + [[deps.Parameters]] deps = ["OrderedCollections", "UnPack"] git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" @@ -1124,6 +1793,12 @@ git-tree-sha1 = "716e24b21538abc91f6205fd1d8363f39b442851" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" version = "2.7.2" +[[deps.Permutations]] +deps = ["Combinatorics", "LinearAlgebra", "Random"] +git-tree-sha1 = "25e2bb0973689836bf164ecb960762f1bb8794dd" +uuid = "2ae35dd2-176d-5d53-8349-f30d82d94d4f" +version = "0.4.17" + [[deps.Pidfile]] deps = ["FileWatching", "Test"] git-tree-sha1 = "2d8aaf8ee10df53d0dfb9b8ee44ae7c04ced2b03" @@ -1178,9 +1853,9 @@ version = "0.18.10" [[deps.Plots]] deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] -git-tree-sha1 = "9f8675a55b37a70aa23177ec110f6e3f4dd68466" +git-tree-sha1 = "ccee59c6e48e6f2edf8a5b64dc817b6729f99eb5" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.38.17" +version = "1.39.0" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -1196,33 +1871,70 @@ version = "1.38.17" ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" +[[deps.PoissonRandom]] +deps = ["Random"] +git-tree-sha1 = "a0f1159c33f846aa77c3f30ebbc69795e5327152" +uuid = "e409e4f3-bfea-5376-8464-e040bb5c01ab" +version = "0.4.4" + +[[deps.Polyester]] +deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] +git-tree-sha1 = "d4c9ebdc6528a4aaf7cfcf43b482e927267b400d" +uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" +version = "0.7.6" + [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" version = "0.2.1" +[[deps.PolygonOps]] +git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" +uuid = "647866c9-e3ac-4575-94e7-e3d426903924" +version = "0.1.2" + [[deps.Polynomials]] -deps = ["LinearAlgebra", "RecipesBase"] -git-tree-sha1 = "3aa2bb4982e575acd7583f01531f241af077b163" +deps = ["LinearAlgebra", "RecipesBase", "Setfield", "SparseArrays"] +git-tree-sha1 = "ea78a2764f31715093de7ab495e12c0187f231d1" uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" -version = "3.2.13" +version = "4.0.4" [deps.Polynomials.extensions] PolynomialsChainRulesCoreExt = "ChainRulesCore" + PolynomialsFFTWExt = "FFTW" PolynomialsMakieCoreExt = "MakieCore" PolynomialsMutableArithmeticsExt = "MutableArithmetics" [deps.Polynomials.weakdeps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" MakieCore = "20f20a25-4f0e-4fdf-b5d1-57303727442b" MutableArithmetics = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" [[deps.PooledArrays]] deps = ["DataAPI", "Future"] -git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7" +git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" -version = "1.4.2" +version = "1.4.3" + +[[deps.PositiveFactorizations]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" +uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" +version = "0.2.4" + +[[deps.PreallocationTools]] +deps = ["Adapt", "ArrayInterface", "ForwardDiff", "Requires"] +git-tree-sha1 = "f739b1b3cc7b9949af3b35089931f2b58c289163" +uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" +version = "0.4.12" + + [deps.PreallocationTools.extensions] + PreallocationToolsReverseDiffExt = "ReverseDiff" + + [deps.PreallocationTools.weakdeps] + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" [[deps.PrecompileTools]] deps = ["Preferences"] @@ -1232,9 +1944,9 @@ version = "1.2.0" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "7eb1686b4f04b82f96ed7a4ea5890a4f0c7a09f1" +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.0" +version = "1.4.1" [[deps.PrettyTables]] deps = ["Crayons", "LaTeXStrings", "Markdown", "Printf", "Reexport", "StringManipulation", "Tables"] @@ -1242,15 +1954,21 @@ git-tree-sha1 = "ee094908d720185ddbdc58dbe0c1cbe35453ec7a" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" version = "2.2.7" +[[deps.Primes]] +deps = ["IntegerMathUtils"] +git-tree-sha1 = "4c9f306e5d6603ae203c2000dd460d81a5251489" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.5.4" + [[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" [[deps.ProgressMeter]] deps = ["Distributed", "Printf"] -git-tree-sha1 = "ae36206463b2395804f2787ffe172f44452b538d" +git-tree-sha1 = "00099623ffee15972c16111bcf84c58a0051257c" uuid = "92933f4c-e287-5a05-a399-4b506db050ca" -version = "1.8.0" +version = "1.9.0" [[deps.QOI]] deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] @@ -1264,6 +1982,12 @@ git-tree-sha1 = "0c03844e2231e12fda4d0086fd7cbe4098ee8dc5" uuid = "ea2cea3b-5b76-57ae-a6ef-0a8af62496e1" version = "5.15.3+2" +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "eeab25344bf9901146c0200a7ca64ea479f8bf5c" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.0" + [[deps.Quaternions]] deps = ["LinearAlgebra", "Random", "RealDot"] git-tree-sha1 = "da095158bdc8eaccb7890f9884048555ab771019" @@ -1278,6 +2002,18 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" deps = ["SHA", "Serialization"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +[[deps.Random123]] +deps = ["Random", "RandomNumbers"] +git-tree-sha1 = "552f30e847641591ba3f39fd1bed559b9deb0ef3" +uuid = "74087812-796a-5b5d-8853-05524746bad3" +version = "1.6.1" + +[[deps.RandomNumbers]] +deps = ["Random", "Requires"] +git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" +uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" +version = "1.5.3" + [[deps.RangeArrays]] git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" @@ -1311,6 +2047,30 @@ git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" version = "0.6.12" +[[deps.RecursiveArrayTools]] +deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "Requires", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] +git-tree-sha1 = "d7087c013e8a496ff396bae843b1e16d9a30ede8" +uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" +version = "2.38.10" + + [deps.RecursiveArrayTools.extensions] + RecursiveArrayToolsMeasurementsExt = "Measurements" + RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" + RecursiveArrayToolsTrackerExt = "Tracker" + RecursiveArrayToolsZygoteExt = "Zygote" + + [deps.RecursiveArrayTools.weakdeps] + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.RecursiveFactorization]] +deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "PrecompileTools", "StrideArraysCore", "TriangularSolve"] +git-tree-sha1 = "2b6d4a40339aa02655b1743f4cd7c03109f520c1" +uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" +version = "0.2.20" + [[deps.Reexport]] git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" @@ -1334,11 +2094,46 @@ git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.3.0" +[[deps.ResettableStacks]] +deps = ["StaticArrays"] +git-tree-sha1 = "256eeeec186fa7f26f2801732774ccf277f05db9" +uuid = "ae5879a3-cd67-5da8-be7f-38c6eb64a37b" +version = "1.1.1" + +[[deps.RingLists]] +deps = ["Random"] +git-tree-sha1 = "f39da63aa6d2d88e0c1bd20ed6a3ff9ea7171ada" +uuid = "286e9d63-9694-5540-9e3c-4e6708fa07b2" +version = "0.2.8" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + [[deps.Rotations]] deps = ["LinearAlgebra", "Quaternions", "Random", "StaticArrays"] -git-tree-sha1 = "54ccb4dbab4b1f69beb255a2c0ca5f65a9c82f08" +git-tree-sha1 = "0783924e4a332493f72490253ba4e668aeba1d73" uuid = "6038ab10-8711-5258-84ad-4b1120ba62dc" -version = "1.5.1" +version = "1.6.0" + +[[deps.RoundingEmulator]] +git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" +uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" +version = "0.2.1" + +[[deps.RuntimeGeneratedFunctions]] +deps = ["ExprTools", "SHA", "Serialization"] +git-tree-sha1 = "6aacc5eefe8415f47b3e34214c1d79d2674a0ba2" +uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" +version = "0.5.12" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" @@ -1355,6 +2150,30 @@ git-tree-sha1 = "4b8586aece42bee682399c4c4aee95446aa5cd19" uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" version = "0.6.39" +[[deps.SciMLBase]] +deps = ["ADTypes", "ArrayInterface", "ChainRulesCore", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces", "ZygoteRules"] +git-tree-sha1 = "916b8a94c0d61fa5f7c5295649d3746afb866aff" +uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +version = "1.98.1" + + [deps.SciMLBase.extensions] + ZygoteExt = "Zygote" + + [deps.SciMLBase.weakdeps] + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.SciMLNLSolve]] +deps = ["DiffEqBase", "LineSearches", "NLsolve", "Reexport", "SciMLBase"] +git-tree-sha1 = "9dfc8e9e3d58c0c74f1a821c762b5349da13eccf" +uuid = "e9a6253c-8580-4d32-9898-8661bb511710" +version = "0.1.8" + +[[deps.SciMLOperators]] +deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] +git-tree-sha1 = "65c2e6ced6f62ea796af251eb292a0e131a3613b" +uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" +version = "0.3.6" + [[deps.Scratch]] deps = ["Dates"] git-tree-sha1 = "30449ee12237627992a99d5e30ae63e4d78cd24a" @@ -1370,6 +2189,23 @@ version = "1.4.0" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +[[deps.SetRounding]] +git-tree-sha1 = "d7a25e439d07a17b7cdf97eecee504c50fedf5f6" +uuid = "3cc68bcd-71a2-5612-b932-767ffbe40ab0" +version = "0.2.1" + +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + +[[deps.ShaderAbstractions]] +deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "0d15c3e7b2003f4451714f08ffec2b77badc2dc4" +uuid = "65257c39-d410-5151-9873-9b3e5be5013e" +version = "0.3.0" + [[deps.SharedArrays]] deps = ["Distributed", "Mmap", "Random", "Serialization"] uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" @@ -1380,17 +2216,64 @@ 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.SimpleBufferStream]] git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" version = "1.1.0" +[[deps.SimpleGraphs]] +deps = ["AbstractLattices", "Combinatorics", "DataStructures", "IterTools", "LightXML", "LinearAlgebra", "LinearAlgebraX", "Optim", "Primes", "Random", "RingLists", "SimplePartitions", "SimplePolynomials", "SimpleRandom", "SparseArrays", "Statistics"] +git-tree-sha1 = "b608903049d11cc557c45e03b3a53e9260579c19" +uuid = "55797a34-41de-5266-9ec1-32ac4eb504d3" +version = "0.8.4" + +[[deps.SimpleNonlinearSolve]] +deps = ["ArrayInterface", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "PackageExtensionCompat", "PrecompileTools", "Reexport", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "20aa9831d654bab67ed561e78917047143ecb9bf" +uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" +version = "0.1.19" + + [deps.SimpleNonlinearSolve.extensions] + SimpleNonlinearSolveNNlibExt = "NNlib" + + [deps.SimpleNonlinearSolve.weakdeps] + NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" + +[[deps.SimplePartitions]] +deps = ["AbstractLattices", "DataStructures", "Permutations"] +git-tree-sha1 = "dcc02923a53f316ab97da8ef3136e80b4543dbf1" +uuid = "ec83eff0-a5b5-5643-ae32-5cbf6eedec9d" +version = "0.3.0" + +[[deps.SimplePolynomials]] +deps = ["Mods", "Multisets", "Polynomials", "Primes"] +git-tree-sha1 = "d537c31cf9995236166e3e9afc424a5a1c59ff9d" +uuid = "cc47b68c-3164-5771-a705-2bc0097375a0" +version = "0.2.14" + +[[deps.SimpleRandom]] +deps = ["Distributions", "LinearAlgebra", "Random"] +git-tree-sha1 = "3a6fb395e37afab81aeea85bae48a4db5cd7244a" +uuid = "a6525b86-64cd-54fa-8f65-62fc48bdc0e8" +version = "0.3.1" + [[deps.SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" version = "0.9.4" +[[deps.SimpleUnPack]] +git-tree-sha1 = "58e6353e72cde29b90a69527e56df1b5c3d8c437" +uuid = "ce78b400-467f-4804-87d8-8f486da07d0a" +version = "1.1.0" + [[deps.SimpleWeightedGraphs]] deps = ["Graphs", "LinearAlgebra", "Markdown", "SparseArrays"] git-tree-sha1 = "4b33e0e081a825dbfaf314decf58fa47e53d6acb" @@ -1422,6 +2305,50 @@ version = "1.1.1" deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +[[deps.SparseDiffTools]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "UnPack", "VertexSafeGraphs"] +git-tree-sha1 = "42d131931906bf4f0af97a7113c8456d0a8aff9d" +uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" +version = "2.6.0" + + [deps.SparseDiffTools.extensions] + SparseDiffToolsEnzymeExt = "Enzyme" + SparseDiffToolsSymbolicsExt = "Symbolics" + SparseDiffToolsZygoteExt = "Zygote" + + [deps.SparseDiffTools.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Sparspak]] +deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] +git-tree-sha1 = "342cf4b449c299d8d1ceaf00b7a49f4fbc7940e7" +uuid = "e56a9233-b9d6-4f03-8d0f-1825330902ac" +version = "0.3.9" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.SplittablesBase]] +deps = ["Setfield", "Test"] +git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" +uuid = "171d559e-b47b-412a-8079-5efa626c420e" +version = "0.1.15" + +[[deps.StableHashTraits]] +deps = ["Compat", "SHA", "Tables", "TupleTools"] +git-tree-sha1 = "19df33ca14f24a3ad2df9e89124bd5f5cc8467a2" +uuid = "c5dd0088-6c3f-4803-b00e-f31a60c170fa" +version = "1.0.1" + [[deps.StackViews]] deps = ["OffsetArrays"] git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" @@ -1447,9 +2374,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "Random", "StaticArraysCore"] -git-tree-sha1 = "9cabadf6e7cd2349b6cf49f1915ad2028d65e881" +git-tree-sha1 = "51621cca8651d9e334a659443a74ce50a3b6dfab" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.6.2" +version = "1.6.3" weakdeps = ["Statistics"] [deps.StaticArrays.extensions] @@ -1460,6 +2387,12 @@ git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" version = "1.4.2" +[[deps.StaticLint]] +deps = ["CSTParser", "Serialization", "SymbolServer"] +git-tree-sha1 = "1152934b19a8a296db95ef6e1d454d4acc2aa79d" +uuid = "b3cc710f-9c33-5bdb-a03d-a94903873e97" +version = "8.1.0" + [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" @@ -1467,9 +2400,9 @@ version = "1.9.0" [[deps.StatsAPI]] deps = ["LinearAlgebra"] -git-tree-sha1 = "45a7769a04a3cf80da1c1c7c60caf932e6f4c9f7" +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" -version = "1.6.0" +version = "1.7.0" [[deps.StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] @@ -1477,10 +2410,49 @@ git-tree-sha1 = "75ebe04c5bed70b91614d684259b661c9e6274a4" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" version = "0.34.0" +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.0" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.SteadyStateDiffEq]] +deps = ["DiffEqBase", "DiffEqCallbacks", "LinearAlgebra", "NLsolve", "Reexport", "SciMLBase"] +git-tree-sha1 = "6e801d0da4c81d9cd6a05d97340404f9892fba85" +uuid = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" +version = "1.16.0" + +[[deps.StochasticDiffEq]] +deps = ["Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqNoiseProcess", "DocStringExtensions", "FillArrays", "FiniteDiff", "ForwardDiff", "JumpProcesses", "LevyArea", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "OrdinaryDiffEq", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] +git-tree-sha1 = "b341540a647b39728b6d64eaeda82178e848f76e" +uuid = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" +version = "6.62.0" + +[[deps.StrideArraysCore]] +deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] +git-tree-sha1 = "f02eb61eb5c97b48c153861c72fbbfdddc607e06" +uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" +version = "0.4.17" + [[deps.StringManipulation]] -git-tree-sha1 = "46da2434b41f41ac3594ee9816ce5541c6096123" +deps = ["PrecompileTools"] +git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" -version = "0.3.0" +version = "0.3.4" + +[[deps.StructArrays]] +deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] +git-tree-sha1 = "0a3db38e4cce3c54fe7a71f831cd7b6194a54213" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.16" [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] @@ -1491,6 +2463,30 @@ deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" version = "5.10.1+6" +[[deps.Sundials]] +deps = ["CEnum", "DataStructures", "DiffEqBase", "Libdl", "LinearAlgebra", "Logging", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "Sundials_jll"] +git-tree-sha1 = "deea053391e5b352594030ac95bbc3be52855a69" +uuid = "c3572dad-4567-51f8-b174-8c6c989267f4" +version = "4.19.5" + +[[deps.Sundials_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "OpenBLAS_jll", "Pkg", "SuiteSparse_jll"] +git-tree-sha1 = "04777432d74ec5bc91ca047c9e0e0fd7f81acdb6" +uuid = "fb77eaff-e24c-56d4-86b1-d163f2edb164" +version = "5.2.1+0" + +[[deps.SymbolServer]] +deps = ["InteractiveUtils", "LibGit2", "Markdown", "Pkg", "REPL", "SHA", "Serialization", "Sockets", "UUIDs"] +git-tree-sha1 = "d675e3a860523660421b1ca33543c06db2783a9b" +uuid = "cf896787-08d5-524d-9de7-132aaa0cb996" +version = "7.2.1" + +[[deps.SymbolicIndexingInterface]] +deps = ["DocStringExtensions"] +git-tree-sha1 = "f8ab052bfcbdb9b48fad2c80c873aa0d0344dfe5" +uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" +version = "0.2.2" + [[deps.TOML]] deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" @@ -1503,10 +2499,10 @@ uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" version = "1.0.1" [[deps.Tables]] -deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits", "Test"] -git-tree-sha1 = "1544b926975372da01227b382066ab70e574a3ec" +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "a1f34829d5ac0ef499f6d84428bd6b4c71f02ead" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.10.1" +version = "1.11.0" [[deps.Tar]] deps = ["ArgTools", "SHA"] @@ -1523,6 +2519,12 @@ version = "0.1.1" deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +[[deps.TestItemDetection]] +deps = ["CSTParser"] +git-tree-sha1 = "c63abb8bf01ba3f0e5421760454d578ee9bd12ca" +uuid = "76b0de8b-5c4b-48ef-a724-914b33ca988d" +version = "0.2.0" + [[deps.ThreadingUtilities]] deps = ["ManualMemory"] git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" @@ -1531,15 +2533,20 @@ version = "0.5.2" [[deps.TiffImages]] deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] -git-tree-sha1 = "8621f5c499a8aa4aa970b1ae381aae0ef1576966" +git-tree-sha1 = "3c4535892eff963d14acee719df445287c2d8f98" uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" -version = "0.6.4" +version = "0.6.5" [[deps.TiledIteration]] -deps = ["OffsetArrays", "StaticArrayInterface"] -git-tree-sha1 = "1176cc31e867217b06928e2f140c90bd1bc88283" +deps = ["OffsetArrays"] +git-tree-sha1 = "5683455224ba92ef59db72d10690690f4a8dc297" uuid = "06e1c1a7-607b-532d-9fad-de7d9aa2abac" -version = "0.5.0" +version = "0.3.1" + +[[deps.Tokenize]] +git-tree-sha1 = "90538bf898832b6ebd900fa40f223e695970e3a5" +uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624" +version = "0.5.25" [[deps.TranscodingStreams]] deps = ["Random", "Test"] @@ -1547,6 +2554,59 @@ git-tree-sha1 = "9a6ae7ed916312b41236fcef7e0af564ef934769" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" version = "0.9.13" +[[deps.Transducers]] +deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] +git-tree-sha1 = "53bd5978b182fa7c57577bdb452c35e5b4fb73a5" +uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" +version = "0.4.78" + + [deps.Transducers.extensions] + TransducersBlockArraysExt = "BlockArrays" + TransducersDataFramesExt = "DataFrames" + TransducersLazyArraysExt = "LazyArrays" + TransducersOnlineStatsBaseExt = "OnlineStatsBase" + TransducersReferenceablesExt = "Referenceables" + + [deps.Transducers.weakdeps] + BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" + OnlineStatsBase = "925886fa-5bf2-5e8e-b522-a9147a512338" + Referenceables = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" + +[[deps.TreeViews]] +deps = ["Test"] +git-tree-sha1 = "8d0d7a3fe2f30d6a7f833a5f19f7c7a5b396eae6" +uuid = "a2a6695c-b41b-5b7d-aed9-dbfdeacea5d7" +version = "0.3.0" + +[[deps.TriangularSolve]] +deps = ["CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "LoopVectorization", "Polyester", "Static", "VectorizationBase"] +git-tree-sha1 = "31eedbc0b6d07c08a700e26d31298ac27ef330eb" +uuid = "d5829a12-d9aa-46ab-831f-fb7c9ab06edf" +version = "0.1.19" + +[[deps.Tricks]] +git-tree-sha1 = "aadb748be58b492045b4f56166b5188aa63ce549" +uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" +version = "0.1.7" + +[[deps.TriplotBase]] +git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" +uuid = "981d1d27-644d-49a2-9326-4793e63143c3" +version = "0.1.0" + +[[deps.TruncatedStacktraces]] +deps = ["InteractiveUtils", "MacroTools", "Preferences"] +git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" +uuid = "781d530d-4396-4725-bb49-402e4bee1e77" +version = "1.4.0" + +[[deps.TupleTools]] +git-tree-sha1 = "155515ed4c4236db30049ac1495e2969cc06be9d" +uuid = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6" +version = "1.4.3" + [[deps.URIs]] git-tree-sha1 = "b7a5e99f24892b6824a954199a45e9ffcc1c70f0" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" @@ -1601,11 +2661,17 @@ git-tree-sha1 = "b182207d4af54ac64cbc71797765068fdeff475d" uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" version = "0.21.64" +[[deps.VertexSafeGraphs]] +deps = ["Graphs"] +git-tree-sha1 = "8351f8d73d7e880bfc042a8b6922684ebeafb35c" +uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" +version = "0.2.0" + [[deps.Wayland_jll]] -deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] -git-tree-sha1 = "ed8d92d9774b077c53e1da50fd81a36af3744c1c" +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" -version = "1.21.0+0" +version = "1.21.0+1" [[deps.Wayland_protocols_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1649,10 +2715,10 @@ uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" version = "1.6.1" [[deps.XML2_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "93c41695bc1c08c46c5899f4fe06d6ead504bb73" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "04a51d15436a572301b5abbb9d099713327e9fc4" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.10.3+0" +version = "2.10.4+0" [[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] @@ -1797,12 +2863,24 @@ git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" version = "1.5.5+0" +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "977aed5d006b840e2e40c0b48984f7463109046d" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.3" + [[deps.fzf_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "868e669ccb12ba16eaf50cb2957ee2ff61261c56" uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" version = "0.29.0+0" +[[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", "Pkg"] git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" @@ -1868,6 +2946,6 @@ version = "3.5.0+0" [[deps.xkbcommon_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] -git-tree-sha1 = "9ebfc140cc56e8c2156a15ceac2f0302e327ac0a" +git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" -version = "1.4.1+0" +version = "1.4.1+1" diff --git a/docs/Project.toml b/docs/Project.toml index c103040..690d15c 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -1,4 +1,10 @@ [deps] +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" CarboKitten = "690c6d5c-626a-429f-a06b-981a1dae1c19" +DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +HDF5 = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" LiveServer = "16fef848-5104-11e9-1b77-fb7a48bbb589" +PlotlyJS = "f0f68f2c-4968-5e81-91da-67840de0976a" +Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" diff --git a/docs/make.jl b/docs/make.jl index 377c02b..f965640 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,16 +1,73 @@ using Documenter, CarboKitten +module Entangled + using DataStructures: DefaultDict + + function transpile_md(src) + counts = DefaultDict(0) + Channel{String}() do ch + for line in src + if (m = match(r"``` *{[^#}]*#([a-zA-Z0-9\-_]+)[^}]*\}", line)) !== nothing + term = counts[m[1]] == 0 ? "≣" : "⊞" + put!(ch, "```@raw html") + put!(ch, "
⪡" * m[1] * "⪢" * term * "
") + put!(ch, "```") + put!(ch, line) + counts[m[1]] += 1 + elseif (m = match(r"``` *{[^}]*file=([a-zA-Z0-9\-_\.\/\\]+)[^}]*}", line)) !== nothing + put!(ch, "```@raw html") + put!(ch, "
file:" * m[1] * "
") + put!(ch, "```") + put!(ch, line) + else + put!(ch, line) + end + end + end + end + + function transpile_file(src, target_path) + mkpath(joinpath(target_path, dirname(src))) + content = open(readlines, src, "r") + open(joinpath(target_path, basename(src)), "w") do fout + join(fout, transpile_md(content), "\n") + end + end +end + +function copydir(src, dst) + for (path, subdir, files) in walkdir(src) + mkpath(joinpath(dst, subdir...)) + for f in files + cp(joinpath(path, subdir..., f), joinpath(dst, subdir..., f)) + end + end +end + +is_markdown(path) = splitext(path)[2] == ".md" +sources = filter(is_markdown, readdir(joinpath(@__DIR__, "src"), join=true)) +path = mktempdir() +Entangled.transpile_file.(sources, path) +copydir("docs/src/fig", joinpath(path, "fig")) + makedocs( + source=path, sitename="CarboKitten", pages = [ + "Introduction" => "index.md", "Bosscher and Schlager 1992" => "bosscher-1992.md", "CarboCAT" => [ - "summary" => "carbocat.md", - "cellular automaton" => "carbocat-ca.md", - "sediment transport" => "carbocat-transport.md" + "Summary" => "carbocat.md", + "Cellular Automaton" => "carbocat-ca.md", + "Model with CA and Production" => "ca-with-production.md", + "Sediment Transport" => "carbocat-transport.md" ], "Algorithms" => [ - "stencils" => "stencils.md", - "utility" => "utility.md" + "Stencils" => "stencils.md", + "Utility" => "utility.md" ] ]) + +deploydocs( + repo = "github.com/MindTheGap-ERC/CarboKitten.git" +) diff --git a/docs/src/bosscher-1992.md b/docs/src/bosscher-1992.md index 240aaa9..23c7b0b 100644 --- a/docs/src/bosscher-1992.md +++ b/docs/src/bosscher-1992.md @@ -1,23 +1,20 @@ ---- -title: Carbonate Production -subtitle: reproducing Bosscher 1992 -bibliography: [docs/ref.bib] ---- +# Carbonate Production +**reproducing Bosscher & Schlager 1992** The paper by @Bosscher1992 is an early computer model for simulating reef growth. This paper contains some of the essential ingredients that we find back in CarboCAT. Here we will try to reproduce their results. ## Parameters -> - $G_m$ maximum growth rate. The maximum rate of reef growth is in the range of $10-15 {\rm mm\ yr^{-1}}$ (Macintyre etal., 1977; Adey, 1978; Davies, 1983). -> - $k$ extinction coefficient. This is a measure of the extinction of photosynthetically active radiation (PAR), i.e. light with a wavelength of 400-700 nm. The value of k for oceanic waters ranges from $0.04$ to $0.16\ {\rm m^{-1}}$ (Jerlov, 1976); reported values for reef waters also lie within this range (Brakel, 1979; Van den Hoek et al., 1975; Weinberg, 1976; Chalker, 1981; Porter, 1985). -> - $I_0$ surface light intensity. The light intensity at the water surface at midday in the tropics lies in the range of $2000-2250\ {\rm \mu E\ m^{-2}s^{-1}}$. -> - $I_k$ saturating light intensity. Light saturating intensities are in the range $50-450\ {\rm \mu E\ m^{-2}s^{-1}}$, depending on species and water depth (Chalker, 1981; Wyman et al., 1987). Photoadaptation of reef-building corals has not been taken into account. More generally, light does not become a limiting factor for coral growth until it reaches roughly 10% of its surface value (B. E. Chalker, in Done, 1983). +> * Maximum growth rate $G_m$. The maximum rate of reef growth is in the range of $10-15 {\rm mm\ yr^{-1}}$ (Macintyre etal., 1977; Adey, 1978; Davies, 1983). +> * Extinction coefficient $k$. This is a measure of the extinction of photosynthetically active radiation (PAR), i.e. light with a wavelength of 400-700 nm. The value of k for oceanic waters ranges from $0.04$ to $0.16\ {\rm m^{-1}}$ (Jerlov, 1976); reported values for reef waters also lie within this range (Brakel, 1979; Van den Hoek et al., 1975; Weinberg, 1976; Chalker, 1981; Porter, 1985). +> * Surface light intensity $I_0$. The light intensity at the water surface at midday in the tropics lies in the range of $2000-2250\ {\rm \mu E\ m^{-2}s^{-1}}$. +> * Saturating light intensity $I_k$. Light saturating intensities are in the range $50-450\ {\rm \mu E\ m^{-2}s^{-1}}$, depending on species and water depth (Chalker, 1981; Wyman et al., 1987). Photoadaptation of reef-building corals has not been taken into account. More generally, light does not become a limiting factor for coral growth until it reaches roughly 10% of its surface value (B. E. Chalker, in Done, 1983). *from BS92* ## Growth Rate The growth rate is -[$$g(w) = g_m \tanh\left({{I_0 e^{-kw}} \over {I_k}}\right),$$]{#eq:growth-function} +$$g(w) = g_m \tanh\left({{I_0 e^{-kw}} \over {I_k}}\right),$$ ``` {.julia #carbonate-production} g(gₘ, I₀, Iₖ, k, w) = gₘ * tanh(I₀/Iₖ * exp(-w * k)) @@ -46,11 +43,13 @@ Notice that the numbers inside the exponential need to be unit-free, so does the To reproduce Figure 2 in B13, I had to change the values for $g_m$ to 500, 250, and 125 respectively, the other values from Table 2 remained the same. I guess this was done for illustration purposes. -![](fig/burgess2013-fig2.svg) +![](fig/b13-fig2.svg) +```@raw html
Plotting code +``` -``` {.gnuplot file=src/figures/plot-tanh.gnuplot} +``` {.gnuplot .build file=examples/plot-tanh.gnuplot target=docs/src/fig/tanh.svg} set term svg size 700, 300 font "sans serif, 14" linewidth 1.5 set xrange [-5:10] set yrange [-0.1:1.1] @@ -61,7 +60,7 @@ set ylabel "y" plot tanh(exp(-x)) lc rgb 'black', tanh(exp(4)*exp(-x)), tanh(exp(-0.5*x)) ``` -``` {.gnuplot file=src/figures/burgess2013-fig2.gnuplot} +``` {.gnuplot .build file=examples/burgess2013-fig2.gnuplot target=docs/src/fig/b13-fig2.svg} set term svg size 500, 600 font "sans serif,14" linewidth 1.5 set trange [0:100] set yrange [100:0] @@ -76,22 +75,9 @@ plot 500*tanh(6.7 * exp(-0.8 * t)), t title 'Carbonate factory 1', \ 125*tanh(6.7 * exp(-0.005 * t)), t title 'Carbonate factory 3' ``` -``` {.make .build-artifact #plot-tanh} -.RECIPEPREFIX = > -.PHONY: all - -all: docs/fig/burgess2013-fig2.svg docs/fig/tanh.svg - -docs/fig/burgess2013-fig2.svg: src/figures/burgess2013-fig2.gnuplot -> @mkdir -p $(@D) -> gnuplot $< > $@ - -docs/fig/tanh.svg: src/figures/plot-tanh.gnuplot -> @mkdir -p $(@D) -> gnuplot $< > $@ -``` - +```@raw html
+``` ## Depth Evolution @@ -114,30 +100,36 @@ It seems Eq. 5 in BS92 (the most important equation in the paper mind you!) is m ## Crosssection The most impressive result in BS92 is the last figure. They show an input curve for $s(t)$ but give no functional description. The curve starts with a linear drop from 0 to 120m depth over a time of 20000 years, then slowly rises with $s(t) = a + bt + A \sin(2\pi t / P)$, with a period $P = \sim 15-20 {\rm kyr}$, amplitude $A = \sim 40 {\rm m}$. It might be easiest to take a screenshot of the PDF and convert the graph into a table. -:::details -### Extracting Sealevel Curve from an image - -``` {.julia file=src/BS92/fig8-sealevel.jl} -using Images -using DataFrames -using CSV +```@raw html +
Extracting Sealevel Curve from an image +``` -function main() - img = load("data/bs92-sealevel-input.png") - img_gray = Gray.(img) - signal = 1.0 .- channelview(img_gray) - signal ./= sum(signal; dims=[1]) - (n_y, n_x) = size(signal) - y = sum(signal .* (1:n_y); dims=[1]) / n_y * 200.0 - df = DataFrame( - time = LinRange(0.0, 80_000.0, n_x), - depth = y[1, :]) - CSV.write("data/bs92-sealevel-curve.csv", df) +``` {.julia .build file=src/BS92/fig8-sealevel.jl target=data/bs92-sealevel-curve.csv deps="data/bs92-sealevel-input.png"} +module Script + using Images + using DataFrames + using CSV + + function main() + img = load("data/bs92-sealevel-input.png") + img_gray = Gray.(img) + signal = 1.0 .- channelview(img_gray) + signal ./= sum(signal; dims=[1]) + (n_y, n_x) = size(signal) + y = sum(signal .* (1:n_y); dims=[1]) / n_y * 200.0 + df = DataFrame( + time = LinRange(0.0, 80_000.0, n_x), + depth = y[1, :]) + CSV.write("data/bs92-sealevel-curve.csv", df) + end end -main() +Script.main() +``` + +```@raw html +
``` -::: Using `DifferentialEquations.jl` we can integrate Equation @eq:growth-eqn. Interestingly, the only integrator that gave me noise free results is `Euler`. This may be due to the sudden shut-down of production at $w = 0$. @@ -174,48 +166,53 @@ end Finally, we can try to reproduce figure 8 in BS92. -!include docs/fig/bs92-fig8.html +![](fig/bs92-fig8.png) Note the simplicity of this result: there is no dependency on space, only on the initial depth $h_0$. -:::details -### Plotting code - -``` {.julia file=examples/bosscher-schlager-1992.jl} -using CarboKitten.BS92 -using Plots - -function main() - h0 = LinRange(0, 200, 101) - result = hcat([BS92.model(BS92.SCENARIO_A, h).u for h in h0]...) - t = LinRange(0, 80_000, 81) - - plotlyjs() - - plot(h0, result', - xaxis=("initial depth (m)"), - yaxis=("depth (m)", :flip), - legend_position=:none, lc=:steelblue, - size=(700, 700), fontfamily="Merriweather,serif") - - plot!(t, BS92.SCENARIO_A.sealevel(t), - title="sea level curve", titlelocation=:left, - titlefontsize=12, - xaxis=("time (years)"), - yaxis=("depth (m)", :flip), - guidefontsize=10, - legend_position=:none, - lc=:steelblue, - inset=(1, bbox(0.11, 0.60, 0.45, 0.28)), - subplot=2, - framestyle=:box) - - mkpath("docs/src/fig") - savefig("docs/src/fig/bs92-fig8.html") +```@raw html +
Plotting code +``` + +``` {.julia .build file=examples/bosscher-schlager-1992.jl target=docs/src/fig/bs92-fig8.png deps=data/bs92-sealevel-curve.csv} +module Script + using CarboKitten.BS92 + using Plots + + function main() + h0 = LinRange(0, 200, 101) + result = hcat([BS92.model(BS92.SCENARIO_A, h).u for h in h0]...) + t = LinRange(0, 80_000, 81) + + plotlyjs() + + plot(h0, result', + xaxis=("initial depth (m)"), + yaxis=("depth (m)", :flip), + legend_position=:none, lc=:steelblue, + size=(700, 700), fontfamily="Merriweather,serif") + + plot!(t, BS92.SCENARIO_A.sealevel(t), + title="sea level curve", titlelocation=:left, + titlefontsize=12, + xaxis=("time (years)"), + yaxis=("depth (m)", :flip), + guidefontsize=10, + legend_position=:none, + lc=:steelblue, + inset=(1, bbox(0.11, 0.60, 0.45, 0.28)), + subplot=2, + framestyle=:box) + + mkpath("docs/src/fig") + savefig("docs/src/fig/bs92-fig8.png") + end end -main() +Script.main() +``` + +```@raw html +
``` -::: -## References diff --git a/docs/src/ca-with-production.md b/docs/src/ca-with-production.md new file mode 100644 index 0000000..8d63c44 --- /dev/null +++ b/docs/src/ca-with-production.md @@ -0,0 +1,395 @@ +# Combining CA with production +This model combines BS92 production with the B13 cellular automaton. + +## Complete example +This example is running for 10000 steps to 1Myr on a 100 $\times$ 50 grid, starting with a sloped height down to 50m. The `sea_level`, and `initial_depth` arguments are functions. The `phys_scale` argument translate pixels on the grid into physical metres. The `write_interval` indicates to write output every 10 iterations, summing the production over that range. You may copy paste the following code into your own script or notebook, and play around with input values. + +``` {.julia .build file=examples/caps-osc.jl target=data/caps-osc.h5} +using CarboKitten.CaProd + +DEFAULT_INPUT = CaProd.Input( + sea_level = t -> 4 * sin(2π * t / 0.2), + subsidence_rate = 50.0, + initial_depth = x -> x / 2, + grid_size = (50, 100), + phys_scale = 1.0, + Δt = 0.0001, + write_interval = 10, + time_steps = 10000, + facies = [ + CaProd.Facies((4, 10), (6, 10), 500.0, 0.8, 300), + CaProd.Facies((4, 10), (6, 10), 400.0, 0.1, 300), + CaProd.Facies((4, 10), (6, 10), 100.0, 0.005, 300) + ], + insolation = 2000.0 +) + +CaProd.main(DEFAULT_INPUT, "data/caps-osc.h5") +``` + +This writes output to an HDF5 file that you may use for further analysis and visualization. + +``` {.julia .build file=examples/plot-caps-osc.jl target=docs/src/fig/b13-capsosc-crosssection.png deps=data/caps-osc.h5} +module Script + using CarboKitten.Visualization + using GLMakie + + function main() + f = Figure() + plot_crosssection(f[1,1], "data/caps-osc.h5") + save("docs/src/fig/b13-capsosc-crosssection.png", f) + end +end + +Script.main() +``` + +![](fig/b13-capsosc-crosssection.png) + +## Input + +- initial depth (function of space) +- sea-level curve (function of time) +- subsidence (function of time) +- facies types + +These should all behave as a functions, but could also be some interpolated data. The signs of these quantities should be such that the following equation holds: + +$$T + E = S + W$$ + +Saying Tectonic subsidence plus Eustatic sea-level change equals Sedimentation plus change in Water depth. + +``` {.julia #ca-prod-input} +@kwdef struct Input + sea_level + subsidence_rate + initial_depth + + grid_size::NTuple{2,Int} + phys_scale::Float64 + Δt::Float64 + + time_steps::Int + write_interval::Int + + facies::Vector{Facies} + insolation::Float64 +end +``` + +In the case `write_interval` is not one, we will sum production rates over several iterations of the model before writing to output. In that case sediment production per written frame is no longer limited to a single facies. + +## Output + +Each iteration of the model, we produce a `Frame`. + +``` {.julia #ca-prod-frame} +struct Frame + production::Array{Float64,3} +end +``` + +The frame is used to update a *state* $S$. The frame should be considered a delta for the state. So, we can reproduce the height at each step from the frames. + +``` {.julia #ca-prod-state} +mutable struct State + time::Float64 + height::Array{Float64,2} +end +``` + +The output is principally all frames produced in the simulation, in a 4-dimensional array. The first two dimensions are x, y positions on the grid, the third is the facies and the fourth dimension is time. We store the output in HDF5, having an `input` group where we store the input data, and a `sediment` dataset containing the aforementioned 4-dimensional output data. Note that these are *production rates*, so to reconstruct the sea floor depth at any time, you need to multiply by $\Delta t * n_w$, where $n_w$ is the `write_interval` and take a cumulative sum. + +## Logic + +From a dynamical modeling point of view, CarboCAT operates analogous to a forward Euler integration scheme, where some components are actually a discrete model. This means we have one function that generates a `Frame` from a `State`, called the *propagator* $P$ (this is our own nomenclature), + +$$P_i: S \to \Delta.$$ + +The suffix $i$ here is used to indicate that the propagator depends on the input. We'll have a second function $U$ that *updates* the state with the given frame, + +$$U: (S, \Delta) \to S.$$ + +In practice however, the update function changes the state in-place. + +## Init + +We fill the height map with the initial depth function. It is assumed that the height only depends on the second index. + +``` {.julia #ca-prod-model} +function initial_state(input::Input) # -> State + height = zeros(Float64, input.grid_size...) + for i in CartesianIndices(height) + height[i] = input.initial_depth(i[2] * input.phys_scale) + end + return State(0.0, height) +end +``` + +## Propagator +The propagator computes the production rates (and also erosion) given the state of the model. + +``` {.julia #ca-prod-model} +function propagator(input::Input) + <> + function (s::State) # -> Frame + <> + end +end +``` + +The propagator keeps the cellular automaton as an internal state, but this may also be considered to be an input function. This may change when you'd want to influence the CA with environmental factors. Then the CA becomes an integral component of the dynamical model. The CA would then have to keep state in the `State` variable. We burn the first 20 iterations of the CA to start with a realistic pattern. + +``` {.julia #ca-prod-init-propagator} +n_facies = length(input.facies) +ca_init = rand(0:n_facies, input.grid_size...) +ca = drop(run_ca(Periodic{2}, input.facies, ca_init, 3), 20) + +function water_depth(s::State) + s.height .- input.sea_level(s.time) +end +``` + +Now, to generate a production from a given state, we advance the CA by one step and compute the production accordingly. + +``` {.julia #ca-prod-propagate} +result = zeros(Float64, input.grid_size..., n_facies) +facies_map, ca = peel(ca) +w = water_depth(s) +Threads.@threads for idx in CartesianIndices(facies_map) + f = facies_map[idx] + if f == 0 + continue + end + result[Tuple(idx)..., f] = production_rate(input.insolation, input.facies[f], w[idx]) +end +return Frame(result) +``` + +## Updater +Every iteration we update the height variable with the subsidence rate, and add sediments to the height. + +``` {.julia #ca-prod-model} +function updater(input::Input) + n_facies = length(input.facies) + function (s::State, Δ::Frame) + s.height .-= sum(Δ.production; dims=3) .* input.Δt + s.height .+= input.subsidence_rate * input.Δt + s.time += input.Δt + end +end +``` + +## Loop + +``` {.julia #ca-prod-model} +function run_model(input::Input) + Channel{Frame}() do ch + s = initial_state(input) + p = propagator(input) + u = updater(input) + + while true + Δ = p(s) + put!(ch, Δ) + u(s, Δ) + end + end +end +``` + +``` {.julia file=src/CaProd.jl} +module CaProd + +using CarboKitten +using CarboKitten.Stencil: Periodic +using CarboKitten.Utility +using CarboKitten.BS92: sealevel_curve +using CarboKitten.Stencil +using CarboKitten.Burgess2013 + +using HDF5 +using .Iterators: drop, peel, partition, map, take + +<> +<> +<> +<> + +function stack_frames(fs::Vector{Frame}) # -> Frame + Frame(sum(f.production for f in fs)) +end + +function main(input::Input, output::String) + x_axis = (0:(input.grid_size[2]-1)) .* input.phys_scale + y_axis = (0:(input.grid_size[1]-1)) .* input.phys_scale + initial_height = input.initial_depth.(x_axis) + n_writes = input.time_steps ÷ input.write_interval + + h5open(output, "w") do fid + gid = create_group(fid, "input") + gid["x"] = collect(x_axis) + gid["y"] = collect(y_axis) + gid["height"] = collect(initial_height) + gid["t"] = collect((0:(n_writes-1)) .* (input.Δt * input.write_interval)) + attr = attributes(gid) + attr["delta_t"] = input.Δt + attr["write_interval"] = input.write_interval + attr["time_steps"] = input.time_steps + attr["subsidence_rate"] = input.subsidence_rate + + n_facies = length(input.facies) + ds = create_dataset(fid, "sediment", datatype(Float64), + dataspace(input.grid_size..., n_facies, input.time_steps), + chunk=(input.grid_size..., n_facies, 1)) + + results = map(stack_frames, partition(run_model(input), input.write_interval)) + for (step, frame) in enumerate(take(results, n_writes)) + ds[:, :, :, step] = frame.production + end + end +end + +end # CaProd +``` + +## Case 1 +The first case uses the same settings as Burgess 2013: an initial depth of 2m, subsidence rate of 50 m/Myr and constant sea level. + +``` {.julia file=examples/ca-with-prod.jl} +using CarboKitten.CaProd + +DEFAULT_INPUT = CaProd.Input( + sea_level=_ -> 0.0, + subsidence_rate=50.0, + initial_depth=_ -> 2.0, + grid_size=(50, 50), + phys_scale=1.0, + Δt=0.001, + write_interval=1, + time_steps=1000, + facies=[ + CaProd.Facies((4, 10), (6, 10), 500.0, 0.8, 300), + CaProd.Facies((4, 10), (6, 10), 400.0, 0.1, 300), + CaProd.Facies((4, 10), (6, 10), 100.0, 0.005, 300) + ], + insolation=2000.0 +) + +CaProd.main(DEFAULT_INPUT, "data/ca-prod.h5") +``` + +## Case 2 +For the second case, we start with a slope. + +``` {.julia .build file=examples/cap-slope.jl target=data/ca-prod-slope.h5} +using CarboKitten.CaProd + +DEFAULT_INPUT = CaProd.Input( + sea_level=_ -> 0.0, + subsidence_rate=50.0, + initial_depth=x -> x / 2.0, + grid_size=(50, 100), + phys_scale=1.0, + Δt=0.001, + write_interval=1, + time_steps=1000, + facies=[ + CaProd.Facies((4, 10), (6, 10), 500.0, 0.8, 300), + CaProd.Facies((4, 10), (6, 10), 400.0, 0.1, 300), + CaProd.Facies((4, 10), (6, 10), 100.0, 0.005, 300) + ], + insolation=2000.0 +) + +CaProd.main(DEFAULT_INPUT, "data/ca-prod-slope.h5") +``` + +``` {.julia .build file=examples/plot-cap-slope.jl target=docs/src/fig/b13-crosssection.png deps=data/ca-prod-slope.h5} +module Script +using CarboKitten.Visualization +using GLMakie + +function main() + f = Figure() + plot_crosssection(f[1, 1], "data/ca-prod-slope.h5") + save("docs/src/fig/b13-crosssection.png", f) +end +end + +Script.main() +``` + +![](fig/b13-crosssection.png) + +# Visualizing output + +``` {.julia file=src/Visualization.jl} +module Visualization + +export plot_crosssection + +using HDF5 +using GLMakie +using GeometryBasics + +function plot_crosssection(pos, datafile) + # x: 1-d array with x-coordinates + # t: 1-d array with time-coordinates (n_steps + 1) + # h[x, t]: height fn, monotonic increasing in time + # p[x, facies, t]: production rate + # taken at y = y_max / 2, h[x, 1] is initial height + n_facies, x, t, h, p = h5open(datafile,"r") do fid + attr = HDF5.attributes(fid["input"]) + Δt = attr["delta_t"][] + subsidence_rate = attr["subsidence_rate"][] + t_end = fid["input/t"][end-1] + total_subsidence = subsidence_rate * t_end + total_sediment = sum(fid["sediment"][]; dims=3) + initial_height = fid["input/height"][] + center = div(size(total_sediment)[1], 2) + elevation = cumsum(total_sediment; dims=4)[center,:,1,:] .* Δt .- initial_height .- total_subsidence + t = fid["input/t"][] + n_facies = size(fid["sediment"])[3] + + return n_facies, + fid["input/x"][], + [t; Δt*attr["time_steps"][]], + hcat(.- initial_height .- total_subsidence, elevation), + fid["sediment"][center,:,:,:] + end + + pts = vec(Point{2,Float64}.(x, h[:,2:end])) + c = vec(argmax(p; dims=2)[:,1,:] .|> (c -> c[2])) + rect = Rect2(0.0, 0.0, 1.0, 1.0) + m_tmp = GeometryBasics.mesh(Tesselation(rect, (100, 1000))) + m = GeometryBasics.Mesh(pts, faces(m_tmp)) + + # pts = vec(Point{2,Float64}.(x, h)) + # c = argmax(p; dims=2)[:,1,:] .|> (c -> c[2]) + # w = size(x)[1] + + # face(idx) = let k = idx[1] + idx[2]*w + # TriangleFace(k, k+1, k+1+w), TriangleFace(k+1+w, k+w, k) + # end + + ax = Axis(pos, xlabel="location", ylabel="depth", limits=((-12,x[end]), nothing)) + # for f in 1:n_facies + # locs = CartesianIndices((size(x)[1], size(t)[1] - 1))[c .== f] + # triangles = collect(Iterators.flatten(face.(locs))) + # m = GeometryBasics.Mesh(pts, triangles) + # mesh!(ax, m) + # end + + mesh!(ax, m, color=c, alpha=0.7) + for idx in [1,501,1001] + lines!(ax, x, h[:, idx], color=:black) + text!(ax, -2.0, h[1, idx]; text="$(t[idx]) Myr", align=(:right, :center)) + end + for idx in [250,750] + lines!(ax, x, h[:, idx], color=:black, linewidth=0.5) + end +end + +end +``` diff --git a/docs/src/carbocat-ca.md b/docs/src/carbocat-ca.md index 218f6ba..6ee735b 100644 --- a/docs/src/carbocat-ca.md +++ b/docs/src/carbocat-ca.md @@ -14,20 +14,38 @@ cycle_permutation(n_species::Int) = The `stencil` function has an `args...` variadic arguments that are forwarded to the given rule. This means we can create a `rules` function that we pass the preference order as a second argument. ``` {.julia #burgess2013-rules} -function rules(neighbourhood::Matrix{Int}, order::Vector{Int}) - cell_species = neighbourhood[3, 3] - neighbour_count(species) = sum(neighbourhood .== species) - if cell_species == 0 - for species in order - n = neighbour_count(species) - if 6 <= n && n <= 10 - return species +function rules(facies::Vector{Facies}) + function (neighbourhood::Matrix{Int}, order::Vector{Int}) + cell_facies = neighbourhood[3, 3] + neighbour_count(f) = sum(neighbourhood .== f) + if cell_facies == 0 + for f in order + n = neighbour_count(f) + (a, b) = facies[f].activation_range + if a <= n && n <= b + return f + end end + 0 + else + n = neighbour_count(cell_facies) - 1 + (a, b) = facies[cell_facies].viability_range + (a <= n && n <= b ? cell_facies : 0) + end + end +end + +function run_ca(::Type{B}, facies::Vector{Facies}, init::Matrix{Int}, n_species::Int) where {B <: Boundary{2}} + r = rules(facies) + Channel{Matrix{Int}}() do ch + target = Matrix{Int}(undef, size(init)) + put!(ch, init) + stencil_op = stencil(Int, B, (5, 5), r) + for perm in cycle_permutation(n_species) + stencil_op(init, target, perm) + init, target = target, init + put!(ch, init) end - 0 - else - n = neighbour_count(cell_species) - 1 - (4 <= n && n <= 10 ? cell_species : 0) end end ``` @@ -40,38 +58,87 @@ The paper talks about a 50x50 grid initialized with uniform random values. module CA using ...Stencil +using ..Config: Facies + +export run_ca <> <> -function run(::Type{B}, init::Matrix{Int}, n_species::Int) where {B <: Boundary{2}} - Channel{Matrix{Int}}() do ch - target = Matrix{Int}(undef, size(init)) - put!(ch, init) - stencil_op = stencil(Int, B, (5, 5), rules) - for perm in cycle_permutation(n_species) - stencil_op(init, target, perm) - init, target = target, init - put!(ch, init) - end - end -end - end ``` First, let us reproduce Figure 3 in Burgess 2013. -![First 8 generations](burgess-fig3.svg) +![First 8 generations](fig/b13-fig3.png) -By eye comparison seems to indicate that this CA is working the same. I'm curious to the behaviour after more iterations. Let's try 10, 100, 1000 and so on. +By eye comparison seems to indicate that this CA is working the same. I'm curious to the behaviour after more iterations. Let's try 10, 100, 10000 and so on. -![Assymptotic behaviour](burgess-long.svg) +![Assymptotic behaviour](fig/b13-long-term.png) The little qualitative change between 100 and 1000 iterations would indicate that this CA remains "interesting" for a long time. On my laptop I can run about 150 iterations per second with current code. When using periodic boundaries, I get to 1500 iterations per second, which is peculiar. A lot can still be optimized. +```@raw html +
Plotting code +``` + +``` {.julia .build file=examples/ca/burgess-2013.jl target="docs/src/fig/b13-fig3.png"} +module Script + using .Iterators: flatten + using CarboKitten + using CarboKitten.Burgess2013 + using CarboKitten.Stencil: Reflected + using CarboKitten.Utility + using GLMakie + + function main() + init = rand(0:3, 50, 50) + ca = run_ca(Reflected{2}, MODEL1, init, 3) + + fig = Figure(resolution=(1000, 500)) + axis_indices = flatten(eachrow(CartesianIndices((2, 4)))) + for (i, st) in zip(axis_indices, ca) + ax = Axis(fig[Tuple(i)...], aspect=AxisAspect(1)) + heatmap!(ax, st) + end + save("docs/src/fig/b13-fig3.png", fig) + end +end + +Script.main() +``` + + +``` {.julia .build file=examples/ca/long-term.jl target="docs/src/fig/b13-long-term.png"} +module Script + using CarboKitten + using CarboKitten.Burgess2013 + using CarboKitten.Stencil + using CarboKitten.Utility + using GLMakie + + function main() + init = rand(0:3, 50, 50) + result = select(run_ca(Periodic{2}, MODEL1, init, 3), [10, 100, 10000]) + + fig = Figure(resolution=(1000, 333)) + for (i, st) in enumerate(result) + ax = Axis(fig[1, i], aspect=AxisAspect(1)) + heatmap!(ax, st) + end + save("docs/src/fig/b13-long-term.png", fig) + end +end + +Script.main() +``` + +```@raw html +
+``` + ## Howto run We start with randomized initial conditions on a 50x50 grid. @@ -95,43 +162,45 @@ plot((heatmap(r, colorbar=:none) for r in result)..., layout=(2, 4)) What this says is: create a `heatmap` for each of our eight results, then expand those into a function call to `plot` (as in `plot(hm1, hm2, ..., hm8, layout=(2, 4))`). -
Plotting code +## Parameter scan + +``` {.julia file=examples/ca/parameter-scan.jl} +module Script -``` {.julia file=examples/burgess-2013-ca.jl} using CarboKitten -using CarboKitten.Burgess2013.CA -using CarboKitten.Stencil: Reflected +using CarboKitten.Burgess2013 +using CarboKitten.Stencil using CarboKitten.Utility -using Plots +using GLMakie +using .Iterators: peel, drop function main() - plotlyjs() - l = @layout([a b c d; e f g h]) - - init = rand(0:3, 50, 50) - result = Iterators.take(CA.run(Reflected{2}, init, 3), 8) - - plot((heatmap(r, colorbar=:none, - aspect_ratio=1, - xlims=(0, 50), - ylims=(0, 50)) for r in result)..., - layout=(2, 4), - size=(800, 400)) - savefig("docs/src/fig/b13-first-8-iterations.html") -end - - -# plot("burgess-fig3.svg") - -function plot_long_times(output::String) - init = rand(0:3, 50, 50) - result = select(CA.run(Reflected{2}, init, 3), [10, 100, 1000]) + fig = Figure(resolution=(2000, 2000)) + for i in 4:12 + for j in (i+1):12 + print(".") + gl = fig[i, j] = GridLayout() + for k in i:j + # for l in k:j + let l = j + init = rand(0:3, 50, 50) + facies = [ + Facies((i, j), (k, l), 0, 0, 0), + Facies((i, j), (k, l), 0, 0, 0), + Facies((i, j), (k, l), 0, 0, 0), + ] + (result, _) = peel(drop(run_ca(Periodic{2}, facies, init, 3), 10)) + + ax = Axis(gl[k-i, l-k], aspect=AxisAspect(1), xticksvisible=false, yticksvisible=false) + heatmap!(ax, result) + end + end + end + end + save("docs/src/fig/parameter-scan.png", fig) end -# plot_long_times("burgess-long.svg") +end # module Script -main() +Script.main() ``` - -
- diff --git a/docs/src/carbocat-cpt.md b/docs/src/carbocat-cpt.md deleted file mode 100644 index 4582ef5..0000000 --- a/docs/src/carbocat-cpt.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: CarboKitten composite model -subtitle: CA + production + transport ---- - -``` {.julia #carbocat-composite} -function run() - # Run the CA for 10 generations as a warm-up - species = Iterators.drop(CA.run(Reflected{2}, rand(0:3, 50, 50), 3), 10) - # Initial depth runs from 0 to 150 - height = repeat(collect(0:49) .* 3.0, 1, 50) - sealevel(t) = 0.0 - Δt = 1000.0 - - for (time_index, gen) in enumerate(species) - t = time_index * Δt - production = Δt .* Production.production_rate(2000.0, Config.model1, height .- sealevel(t)) - - end -end -``` diff --git a/docs/src/carbocat.md b/docs/src/carbocat.md index d6464da..45626c0 100644 --- a/docs/src/carbocat.md +++ b/docs/src/carbocat.md @@ -21,15 +21,13 @@ By itself, a sediment production model is enough to model a cross-section of a c where $h$ is the depth of the sea floor, $g_m$ is the maximum growth rate, $I_0$ the surface light intensity, $I_k$ the saturating light intensity, $k$ the extinction coefficient, and $s$ the (extrinsic) sea-level. In one example given by BS92, we arrived at the following profile. -!include docs/fig/bs92-fig8.html - ## Species habitation These species can be anything, just remember that they are the progenitor of some (limestone) facies type. In the original 2013 model, this stage is implemented by a celullar automaton (or CA). The CA has the nice property of giving pseudo-random output with at least some degree of coherence. There is no physical basis to the CA model, but neither is there very much data to test a physical model against. We have [implemented the CA used in Burgess 2013](carbocat-ca.md). Using three species with identical 4-6-10-10 rules (survival between 4 to 10 neighbours, birth between 6-10 live neighbours). -![](fig/burgess2013-fig3.svg) +![](fig/b13-fig3.png) An interesting question is under what rules is this CA stable (i.e. keeps evolving)? @@ -45,16 +43,16 @@ The minimal Carbocat model would consist of only species habitation and producti ``` {.julia file=src/Burgess2013.jl} module Burgess2013 -module Types - <> -end - include("Burgess2013/Config.jl") include("Burgess2013/CA.jl") include("Burgess2013/Production.jl") include("Burgess2013/Transport.jl") -<> +using .CA +using .Config +using .Production + +export production_rate, run_ca, Facies, MODEL1 end ``` @@ -73,7 +71,9 @@ Base.zero(::Type{Product}) = Product(0, 0.0) ``` {.julia file=src/Burgess2013/Config.jl} module Config -struct Species +export Facies, MODEL1 + +struct Facies viability_range::Tuple{Int, Int} activation_range::Tuple{Int, Int} @@ -82,14 +82,10 @@ struct Species saturation_intensity::Float64 end -Iₖ(s::Species) = s.saturation_intensity -k(s::Species) = s.extinction_coefficient -gₘ(s::Species) = s.maximum_growth_rate - -model1 = [ - Species((4, 10), (6, 10), 500, 0.8, 300), - Species((4, 10), (6, 10), 400, 0.1, 300), - Species((4, 10), (6, 10), 100, 0.005, 300) +MODEL1 = [ + Facies((4, 10), (6, 10), 500, 0.8, 300), + Facies((4, 10), (6, 10), 400, 0.1, 300), + Facies((4, 10), (6, 10), 100, 0.005, 300) ] end @@ -100,16 +96,19 @@ end ``` {.julia file=src/Burgess2013/Production.jl} module Production -using ..Config: Species, Iₖ, k, gₘ +export production_rate -<> +using ..Config: Facies -function production_rate(I₀::Float64, s::Species, w::Float64) - w > 0.0 ? g(gₘ(s), I₀, Iₖ(s), k(s), w) : 0.0 -end +<> -function production_rate(I₀::Float64, specs::Vector{Species}, spec_map::Matrix{Int}, w::Matrix{Float64}) - production_rate.(I₀, Iterators.map(i -> specs[i], spec_map), w) +function production_rate(insolation::Float64, facies::Facies, water_depth::Float64) + gₘ = facies.maximum_growth_rate + I₀ = insolation + Iₖ = facies.saturation_intensity + w = water_depth + k = facies.extinction_coefficient + return w > 0.0 ? gₘ * tanh(I₀/Iₖ * exp(-w * k)) : 0.0 end end diff --git a/docs/src/fig/b13-capsosc-crosssection.png b/docs/src/fig/b13-capsosc-crosssection.png new file mode 100644 index 0000000..4143e02 Binary files /dev/null and b/docs/src/fig/b13-capsosc-crosssection.png differ diff --git a/docs/src/fig/b13-crosssection.png b/docs/src/fig/b13-crosssection.png new file mode 100644 index 0000000..9c20751 Binary files /dev/null and b/docs/src/fig/b13-crosssection.png differ diff --git a/docs/src/fig/b13-fig2.svg b/docs/src/fig/b13-fig2.svg new file mode 100644 index 0000000..067c58d --- /dev/null +++ b/docs/src/fig/b13-fig2.svg @@ -0,0 +1,291 @@ + + + +Gnuplot +Produced by GNUPLOT 5.4 patchlevel 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 40 + + + + + + + + + + + + + 60 + + + + + + + + + + + + + 80 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 100 + + + + + + + + + + + + + 200 + + + + + + + + + + + + + 300 + + + + + + + + + + + + + 400 + + + + + + + + + + + + + 500 + + + + + + + + + Water depth (m) + + + + + Production rates + + + + + Carbonate factory 1 + + + Carbonate factory 1 + + + + + + Carbonate factory 2 + + + Carbonate factory 2 + + + + + + Carbonate factory 3 + + + Carbonate factory 3 + + + + + + + + + + + + + + + + + + diff --git a/docs/src/fig/b13-fig3.png b/docs/src/fig/b13-fig3.png new file mode 100644 index 0000000..ddc08d5 Binary files /dev/null and b/docs/src/fig/b13-fig3.png differ diff --git a/docs/src/fig/b13-first-8-iterations.html b/docs/src/fig/b13-first-8-iterations.html deleted file mode 100644 index 102430d..0000000 --- a/docs/src/fig/b13-first-8-iterations.html +++ /dev/null @@ -1,30894 +0,0 @@ -
- diff --git a/docs/src/fig/b13-long-term.png b/docs/src/fig/b13-long-term.png new file mode 100644 index 0000000..44abfd3 Binary files /dev/null and b/docs/src/fig/b13-long-term.png differ diff --git a/docs/src/fig/bs92-fig8.html b/docs/src/fig/bs92-fig8.html deleted file mode 100644 index 94861ee..0000000 --- a/docs/src/fig/bs92-fig8.html +++ /dev/null @@ -1,18817 +0,0 @@ -
- diff --git a/docs/src/fig/bs92-fig8.png b/docs/src/fig/bs92-fig8.png new file mode 100644 index 0000000..2a4c309 Binary files /dev/null and b/docs/src/fig/bs92-fig8.png differ diff --git a/docs/src/fig/parameter-scan.png b/docs/src/fig/parameter-scan.png new file mode 100644 index 0000000..63305d0 Binary files /dev/null and b/docs/src/fig/parameter-scan.png differ diff --git a/docs/src/fig/tanh.svg b/docs/src/fig/tanh.svg new file mode 100644 index 0000000..74539f4 --- /dev/null +++ b/docs/src/fig/tanh.svg @@ -0,0 +1,317 @@ + + + +Gnuplot +Produced by GNUPLOT 5.4 patchlevel 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 0.2 + + + + + + + + + + + + + 0.4 + + + + + + + + + + + + + 0.6 + + + + + + + + + + + + + 0.8 + + + + + + + + + + + + + 1 + + + + + + + + + + + + + -4 + + + + + + + + + + + + + -2 + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 2 + + + + + + + + + + + + + 4 + + + + + + + + + + + + + 6 + + + + + + + + + + + + + 8 + + + + + + + + + + + + + 10 + + + + + + + + + y + + + + + x + + + + + tanh(exp(-x)) + + + tanh(exp(-x)) + + + + + + tanh(exp(4)*exp(-x)) + + + tanh(exp(4)*exp(-x)) + + + + + + tanh(exp(-0.5*x)) + + + tanh(exp(-0.5*x)) + + + + + + + + + + + + + + + + + + diff --git a/docs/src/index.md b/docs/src/index.md index 8b13789..58b8e7b 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -1 +1,198 @@ +# CarboKitten +**Modeling Carbonate Platforms in Julia** + +[![Entangled badge](https://img.shields.io/badge/entangled-Use%20the%20source!-%2300aeff)](https://entangled.github.io/) + +## About +CarboKitten is a clone of Peter Burgess' CarboCAT, a model for growing carbonate platforms. + +![](fig/b13-capsosc-crosssection.png) + +## Julia Quickstarter + +This code is written in [Julia](https://julia-lang.org/). You may want to check out the following references: + +- [Julia Documentation](https://docs.julialang.org/en/v1/) +- [Tutorial on Julia for Science and Engineering](https://www.matecdev.com/posts/julia-tutorial-science-engineering.html) + +There are several ways to work with Julia that may be a bit different from what you're used to, if that is Matlab, Python or R. + +### Installing Julia +The best way to install Julia is to use `juliaup` at [github.com/JuliaLang/juliaup](https://github.com/JuliaLang/juliaup). + +### REPL +The most basic way to work in Julia, is to start the REPL (Read Eval Print Loop). + +```shell +$ julia + _ + _ _ _(_)_ | Documentation: https://docs.julialang.org + (_) | (_) (_) | + _ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help. + | | | | | | |/ _` | | + | | |_| | | | (_| | | Version 1.9.3 (2023-08-24) + _/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release +|__/ | + +julia> +``` + +From here you may use CarboKitten `using CarboKitten` and run any of the code inside. To work with CarboKitten efficiently, you may want to load `Revise`. Revise auto-detects changes to loaded code and makes it easy to rerun. + +Additionally you should learn how to work with Julia packages. If you want to experiment with things, try to create a new environment in an empty folder and add CarboKitten as a `dev` dependency: + +``` +pkg> dev +``` + +### VS Code +VSCode has very good support for working with Julia. Install the official Julia plugin and you should be good to go. Explore options by pressing `Ctrl+Shift+P` and type Julia to see what you can do. For example: start a REPL, run current script etc. + +### Jupyter +You can run Julia code from Jupyter if you install the Julia kernel. Press `]` in the REPL to get into Pkg-mode, the prompt will change + +```shell +(CarboKitten) pkg> +``` + +You may install the `IJulia` kernel with `add IJulia`. + +### Pluto +An alternative notebook interface is called `Pluto`. + +- Pluto is **reactive**: changes to code cells automatically update downstream dependencies. +- Pluto notebooks are written to regular Julia files and can be run independent from Pluto. +- The user interface of Pluto is slightly less mature than Jupyter + +In Pkg-mode say `add Pluto`. + +```shell +julia> using Pluto + +julia> Pluto.run() +[ Info: Loading... +┌ Info: +└ Opening http://localhost:1234/?secret=xyzxyzzy in your default browser... ~ have fun! +┌ Info: +│ Press Ctrl+C in this terminal to stop Pluto +└ +``` + +### Plotting +The most used library to do plotting in Julia is called `Plots`. However, this library comes with a fair share of problems: there are a number of back-ends for which the generated plots may look slightly different. Here "back-end" means some plotting library written in a different language than Julia. + +A nicer plotting library that also happens to be a bit more versatile is `Makie`. This has three back-ends that are `CairoMakie`, `GLMakie` and `WGLMakie`. These are all written in Julia, but they focus on different kinds of results. `CairoMakie` is usually slow but results in publication quality vector graphics: `SVG` or `PDF`. `GLMakie` is very fast, renders on your graphics card, but only produces raster images, say `PNG`. Then `WGLMakie` does a similar thing, but through the web-browser. + +Some plots in the documentation were rendered using Gnuplot. At some point these should be phased out for `CairoMakie` ones. + +## Entangled +The documentation for CarboKitten is using [Entangled](https://entangled.github.io) for Literate Programming. This means that code blocks in the documentation contribute to the actual functioning code in the library. When you develop the library code, you should have the Entangled daemon running to keep the documentation synchronized. + +```shell +entangled watch +``` + +Entangled is still under development and it may occur that the daemon complains about not knowing wether to `tangle` or `stitch`, for example when you've accidentally written both markdown and source code. If this happens you may manually `entangled tangle` or `entangled stitch` with the `--force` argument to decide the issue. It may be worth saving your work in version control before doing so. + +### Building +The following currently works only on Linux and MacOS, mainly because usually there is no GNU Make installed on Windows. Support for Windows (probably through `nmake`) will happen in the future. + +To recreate the plots in the documentation, Entangled creates a `Makefile` in `.entangled/build`. This will run a workflow writing intermediate data in HDF5 format to the `data` folder and final plots end up in `docs/src/fig`. To run this you should first start the Julia `DaemonMode` daemon, + +```shell +make run-daemon +``` + +And then create the figures in a different shell. + +```shell +make figures +``` + +This may seem like a complication, and it is, but it also significantly speeds up creating all the figures. Once you have all the intermediate data in place, running `make figures` will only do something if some of the scripts involved have changed. + +The documentation can be rendered with `Documenter.jl`. + +```shell +make serve-docs +``` + +## Project structure + +``` +. +├── data # data files +├── docs # documentation +│   ├── make.jl # docs build script +│   ├── Manifest.toml # +│   ├── Project.toml # dependencies for building docs +│   └── src # markdown source for docs +├── entangled.toml # entangled config +├── examples # example scripts +├── Makefile # command-line short hands +├── Manifest.toml # +├── Project.toml # project dependencies +├── README.md # +└── src # tangled library source +``` + +## Authors + +Lead engineer: __Johan Hidding__ +Netherlands eScience Center +email: j.hidding [at] esciencecenter.nl +Web page: [www.esciencecenter.nl/team/johan-hidding-msc/](https://www.esciencecenter.nl/team/johan-hidding-msc/) +ORCID: [0000-0002-7550-1796](https://orcid.org/0000-0002-7550-1796) + +Original author: __Peter Burgess__ +University of Liverpool +Web page: [www.liverpool.ac.uk/environmental-sciences/staff/peter-burgess](https://www.liverpool.ac.uk/environmental-sciences/staff/peter-burgess/) + +Project lead: __Emilia Jarochowska__ +Utrecht University +email: e.b.jarochowska [at] uu.nl +Web page: [www.uu.nl/staff/EBJarochowska](https://www.uu.nl/staff/EBJarochowska) +ORCID: [0000-0001-8937-9405](https://orcid.org/0000-0001-8937-9405) + +**Other team members:** + +__Niklas Hohmann__ +Utrecht University +email: n.h.hohmann [at] uu.nl +Web page: [www.uu.nl/staff/NHohmann](https://www.uu.nl/staff/NHHohmann) +ORCID: [0000-0003-1559-1838](https://orcid.org/0000-0003-1559-1838) + +__Xianyi Liu__ +Utrecht University +email: x.liu6 [at] uu.nl +Web page: [www.uu.nl/staff/XLiu6](https://www.uu.nl/staff/XLiu6) +ORCID: + +__Hanno Spreeuw__ +Netherlands eScience Center +email: h.spreeuw [at] esciencecenter.nl +Web page: [www.esciencecenter.nl/team/dr-hanno-spreeuw/](https://www.esciencecenter.nl/team/dr-hanno-spreeuw) +ORCID: [0000-0002-5057-0322](https://orcid.org/0000-0002-5057-0322) + +__David De Vleeschouwer__ +Westfälische Wilhelms-Universität Münster +Web page: [www.uni-muenster.de/GeoPalaeontologie/erdsystemforschung/staff/DeVleeschouwer](https://www.uni-muenster.de/GeoPalaeontologie/erdsystemforschung/staff/DeVleeschouwer.html) +ORCID: [0000-0002-3323-807X](https://orcid.org/0000-0002-3323-807X) + +## Copyright + +Copyright 2023 Netherlands eScience Center and Utrecht University + +## License + +Apache 2.0 License, see LICENSE file for license text. + +## Funding information + +Funded by the European Union (ERC, MindTheGap, StG project no 101041077). Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Research Council. Neither the European Union nor the granting authority can be held responsible for them. + +## Contents + +```@contents +``` diff --git a/docs/src/stencils.md b/docs/src/stencils.md index 029f4e8..08dce62 100644 --- a/docs/src/stencils.md +++ b/docs/src/stencils.md @@ -1,8 +1,3 @@ ---- -title: CarboKitten -subtitle: stencil operations in Julia ---- - # Stencil operations A *stencil* is the common term for computing many-to-one operations on grids. Examples of applications are: @@ -56,7 +51,7 @@ function offset_value(::Type{Constant{dim, value}}, z::AbstractArray, i::Cartesi end ``` -## Stencil implementation +## Implementation Using these helper functions we can now define a *stencil* operation. Given the boundary trait, a stencil size and a response function, we can transform an array to a next generation. ``` {.julia #stencil-operation} @@ -68,7 +63,7 @@ function stencil(::Type{T}, ::Type{BT}, n::NTuple{dim,Int}, f::Function) where { function(z_in::AbstractArray{T, dim}, z_out::AbstractArray{T, dim}, args...) @assert (size(z_in) == size(z_out)) "sizes of arrays need to be equal" shape = size(z_in) - for i in CartesianIndices(shape) + Threads.@threads for i in CartesianIndices(shape) for (k, Δi) in enumerate(CartesianIndices(stencil_shape)) stencil[k] = offset_value(BT, z_in, i, Δi) end @@ -106,12 +101,13 @@ end ``` -## Elementary Cellular Automata +## Examples +### Elementary Cellular Automata An Elementary Cellular Automata is a one-dimensional CA with two states. Every next generation depends on the direct neighbourhood of three cells. Since there are $2^3 = 8$ patterns and two outcomes for every pattern, there are $2^8 = 256$ possible ECA. -``` {.julia file=src/examples/eca.jl} +```@example using CarboKitten.Stencil -using GnuplotLite +using Plots rule(i::Int) = function (foo::AbstractVector{T}) where T <: Integer d = foo[1]*4 + foo[2]*2 + foo[3] @@ -120,7 +116,8 @@ end function eca(r::Int, n::Int, iter::Int) y = Array{Int}(undef, n, iter) - y[:, 1] = rand(0:1, n) + y[:, 1] = zeros(Int, n) + y[div(n, 2), 1] = 1 stencil_op = stencil(Int, Periodic{1}, (3,), rule(r)) for i in 2:iter stencil_op(view(y, :, i-1), view(y, :, i)) @@ -128,91 +125,33 @@ function eca(r::Int, n::Int, iter::Int) y end -<> -``` +plot_eca(r::Int, n::Int, iter::Int) = + heatmap(eca(r, n, iter)', colorbar=:none, aspect_ratio=1, + xlim=(1, 256), ylim=(1, 128), + yflip=true, c=:Blues, title="rule $(r)") -:::tabs -:::: {.tab #rule-18 title="Rule 18"} -![](fig/rule18.svg) -:::: -:::: {.tab #rule-30 title="Rule 30"} -![](fig/rule30.svg) -:::: -:::: {.tab #rule-60 title="Rule 60"} -![](fig/rule60.svg) -:::: -:::: {.tab #rule-110 title="Rule 110"} -![](fig/rule110.svg) -:::: -::: +plot((plot_eca(r, 256, 128) for r in [18, 30, 110])..., layout=(3, 1), size=(600, 900)) +``` Even these one-dimensional CA show highly complex behaviour. For instance, it has been shown that rule 110 is Turing complete. -```@raw html -
Plotting code -``` +### Game of Life +Perhaps the most famous CA is Conway's Game of Life. This is a two-dimensional two-state (dead/alive) CA, with the following rules: a cell is alive in the next generation if it is alive and has two neighbours or if it has three neighbours; in all other cases the cell is dead. ```@example +using CarboKitten.Stencil +using Plots +using .Iterators: take -``` - -``` {.julia #eca-plot} -function plot_eca(output::String, r::Int, n::Int, iter::Int) - plot_width = 700 - plot_height = plot_width * iter ÷ n + 100 - gnuplot() do g - g |> - send("set term svg size $(plot_width), $(plot_height)") |> - send("set output '$(output)'") |> - send("data" => (x=0:n-1, y=0:iter-1, z=eca(r, n, iter)')) |> - send("set title 'rule $(r)'") |> - send("set xrange [0:$(n)]; set yrange [$(iter):0] reverse") |> - send("set xlabel 'space'") |> - send("set ylabel 'iterations'") |> - send("set size ratio -1") |> - send("unset colorbox; set palette gray") |> - send("plot \$data nonuniform matrix u (\$1+0.5):(\$2+0.5):3 with image") - end -end -``` - -``` {.make .build-artifact #build-eca-plots} -.RECIPEPREFIX = > -.PHONY: all - -fig := docs/fig - -all: $(fig)/rule18.svg $(fig)/rule30.svg $(fig)/rule60.svg $(fig)/rule110.svg - -$(fig)/rule%.svg: src/examples/eca.jl -> @mkdir -p $(@D) -> julia --project=. -e 'include("./src/examples/eca.jl"); plot_eca("$@", $(*F), 256, 100)' -``` - -```@raw html -
-``` - -## Game of Life -Perhaps the most famous CA is Conway's Game of Life. This is a two-dimensional two-state (dead/alive) CA, with the following rules: a cell is alive in the next generation if it is alive and has two neighbours or if it has three neighbours; in all other cases the cell is dead. - -``` {.julia #game-of-life-rules} "x is a 3x3 region around the cell at x[2,2]." rules(x) = let c = x[2, 2], s = sum(x) - c c && s == 2 || s == 3 end -``` - -``` {.julia file=src/examples/game-of-life.jl} -using CarboKitten.Stencil -using GnuplotLite function game_of_life(w, h) y1 = rand(Bool, (w, h)) y2 = Array{Bool}(undef, w, h) - <> - op = stencil(Bool, Periodic{2}, (3, 3), rules) Channel() do ch put!(ch, y1) @@ -224,56 +163,23 @@ function game_of_life(w, h) end end -<> +@gif for frame in take(game_of_life(50, 50), 150) + heatmap(frame, aspect_ratio=1, colorbar=:none, xlim=(0.5, 50.5), ylim=(0.5, 50.5)) +end fps=10 ``` -![](fig/game-of-life.svg) - -
Plotting code - -``` {.julia #life-plot} -function plot_life(output::String, w::Int, h::Int) - (z, _) = Iterators.peel(Iterators.drop(game_of_life(w, h), 50)) - plot_width = 700 - plot_height = plot_width * h ÷ w + 100 - gnuplot() do g - g |> - send("set term svg size $(plot_width), $(plot_height)") |> - send("set output '$(output)'") |> - send("data" => Matrix{Int}(z')) |> - send("set title 'game of life'") |> - send("set xrange [0:$(w)]; set yrange [0:$(h)]") |> - send("set size ratio -1") |> - send("unset colorbox; set palette gray negative") |> - send("plot \$data matrix u (\$1+0.5):(\$2+0.5):3 with image pixels") - end -end -``` - -``` {.make .build-artifact #make-life-plot} -.RECIPEPREFIX = > - -docs/fig/game-of-life.svg: src/examples/game-of-life.jl -> @mkdir -p $(@D) -> julia --project=. -e 'include("$<"); plot_life("$@", 128, 128)' -``` - -
- -## Testing boundaries with a convolution +### Testing boundaries with a convolution To test the different boundary types, lets try the following setup. We take a 16x16 image with all zeros except the bottom left gets a value of 1 and the top right pixel gets a value of 2. Now convolve with a Gaussian and see what happens. For the constant boundary, I've set the value to 0.1, to see the effect. -![](fig/boundary_types.svg) +![](boundary_types.png) Notice, that for the periodic boundaries, the bottom left and top right are neighbouring. So there the two pixels appear as a single peak. In the reflected case we see a clear distinction between the two corners. -
Source code for plotting boundary types - -``` {.julia file=src/examples/convolution.jl} +```@example using CarboKitten.Stencil -using GnuplotLite +using Plots -function plot_boundary_types(output::String) +function plot_boundary_types() n = 16 y0 = zeros(Float64, n, n) y0[1, 1] = 1 @@ -289,37 +195,17 @@ function plot_boundary_types(output::String) y_constant = Array{Float64}(undef, n, n) convolution(Constant{2, 0.1}, k)(y0, y_constant) - gnuplot() do g - g |> - send("load 'data/moreland.pal'") |> - send("periodic" => y_periodic) |> - send("reflected" => y_reflected) |> - send("constant" => y_constant) |> - send("set term svg size 700, 300") |> - send("set output '$(output)'") |> - send("set multiplot layout 1, 3") |> - send("set size square") |> - send("set xrange [0:$(n)]; set yrange [0:$(n)]") |> - send("unset colorbox") |> - # send("set colorbox horiz user origin graph 0,screen .04 size graph 1,screen .04") |> - send("unset xtics; unset ytics") |> - send("set title 'periodic'") |> - send("plot \$periodic matrix u (\$1+0.5):(\$2+0.5):3 t'' w image") |> - send("set title 'reflected'") |> - send("plot \$reflected matrix u (\$1+0.5):(\$2+0.5):3 t'' w image") |> - send("set title 'constant (0.1)'") |> - send("plot \$constant matrix u (\$1+0.5):(\$2+0.5):3 t'' w image") |> - send("unset multiplot") - end -end -``` + args = Dict(:colorbar => :none, :aspect_ratio => 1, :xlim => (0.5, 16.5), :ylim => (0.5, 16.5)) + plot( + heatmap(y_periodic; args...), + heatmap(y_reflected; args...), + heatmap(y_constant; args...), + layout=(1, 3), + size=(900, 300) + ) -``` {.make .build-artifact #make-bounds-plot} -.RECIPEPREFIX = > + savefig("boundary_types.png") +end -docs/fig/boundary_types.svg: src/examples/convolution.jl -> @mkdir -p $(@D) -> julia --project=. -e 'include("$<"); plot_boundary_types("$@")' +plot_boundary_types() ; nothing # hide ``` - -
diff --git a/entangled.toml b/entangled.toml index c142b99..6c0e67e 100644 --- a/entangled.toml +++ b/entangled.toml @@ -1,3 +1,10 @@ version="2.0" watch_list=["docs/src/*.md"] +hooks=["build"] + +[hook.build.runners] +# Daemon should be running: +# julia --startup-file=no -e 'using DaemonMode; serve()' +Julia = "julia --project=. --startup-file=no -e 'using DaemonMode; runargs()' {script}" +Gnuplot = "gnuplot {script} > $@" diff --git a/examples/bosscher-schlager-1992.jl b/examples/bosscher-schlager-1992.jl index e22b9d4..e8c6997 100644 --- a/examples/bosscher-schlager-1992.jl +++ b/examples/bosscher-schlager-1992.jl @@ -1,35 +1,37 @@ # ~/~ begin <>[init] -using CarboKitten.BS92 -using Plots +module Script + using CarboKitten.BS92 + using Plots -function main() - h0 = LinRange(0, 200, 101) - result = hcat([BS92.model(BS92.SCENARIO_A, h).u for h in h0]...) - t = LinRange(0, 80_000, 81) + function main() + h0 = LinRange(0, 200, 101) + result = hcat([BS92.model(BS92.SCENARIO_A, h).u for h in h0]...) + t = LinRange(0, 80_000, 81) - plotlyjs() + plotlyjs() - plot(h0, result', - xaxis=("initial depth (m)"), - yaxis=("depth (m)", :flip), - legend_position=:none, lc=:steelblue, - size=(700, 700), fontfamily="Merriweather,serif") + plot(h0, result', + xaxis=("initial depth (m)"), + yaxis=("depth (m)", :flip), + legend_position=:none, lc=:steelblue, + size=(700, 700), fontfamily="Merriweather,serif") - plot!(t, BS92.SCENARIO_A.sealevel(t), - title="sea level curve", titlelocation=:left, - titlefontsize=12, - xaxis=("time (years)"), - yaxis=("depth (m)", :flip), - guidefontsize=10, - legend_position=:none, - lc=:steelblue, - inset=(1, bbox(0.11, 0.60, 0.45, 0.28)), - subplot=2, - framestyle=:box) + plot!(t, BS92.SCENARIO_A.sealevel(t), + title="sea level curve", titlelocation=:left, + titlefontsize=12, + xaxis=("time (years)"), + yaxis=("depth (m)", :flip), + guidefontsize=10, + legend_position=:none, + lc=:steelblue, + inset=(1, bbox(0.11, 0.60, 0.45, 0.28)), + subplot=2, + framestyle=:box) - mkpath("docs/src/fig") - savefig("docs/src/fig/bs92-fig8.html") + mkpath("docs/src/fig") + savefig("docs/src/fig/bs92-fig8.png") + end end -main() +Script.main() # ~/~ end \ No newline at end of file diff --git a/examples/burgess-2013-ca.jl b/examples/burgess-2013-ca.jl deleted file mode 100644 index a0a43f8..0000000 --- a/examples/burgess-2013-ca.jl +++ /dev/null @@ -1,35 +0,0 @@ -# ~/~ begin <>[init] -using CarboKitten -using CarboKitten.Burgess2013.CA -using CarboKitten.Stencil: Reflected -using CarboKitten.Utility -using Plots - -function main() - plotlyjs() - l = @layout([a b c d; e f g h]) - - init = rand(0:3, 50, 50) - result = Iterators.take(CA.run(Reflected{2}, init, 3), 8) - - plot((heatmap(r, colorbar=:none, - aspect_ratio=1, - xlims=(0, 50), - ylims=(0, 50)) for r in result)..., - layout=(2, 4), - size=(800, 400)) - savefig("docs/src/fig/b13-first-8-iterations.html") -end - - -# plot("burgess-fig3.svg") - -function plot_long_times(output::String) - init = rand(0:3, 50, 50) - result = select(CA.run(Reflected{2}, init, 3), [10, 100, 1000]) -end - -# plot_long_times("burgess-long.svg") - -main() -# ~/~ end \ No newline at end of file diff --git a/src/figures/burgess2013-fig2.gnuplot b/examples/burgess2013-fig2.gnuplot similarity index 83% rename from src/figures/burgess2013-fig2.gnuplot rename to examples/burgess2013-fig2.gnuplot index a0fbc19..303b603 100644 --- a/src/figures/burgess2013-fig2.gnuplot +++ b/examples/burgess2013-fig2.gnuplot @@ -1,4 +1,4 @@ -# ~/~ begin <>[init] +# ~/~ begin <>[init] set term svg size 500, 600 font "sans serif,14" linewidth 1.5 set trange [0:100] set yrange [100:0] diff --git a/examples/ca-with-prod.jl b/examples/ca-with-prod.jl new file mode 100644 index 0000000..a3e8e52 --- /dev/null +++ b/examples/ca-with-prod.jl @@ -0,0 +1,22 @@ +# ~/~ begin <>[init] +using CarboKitten.CaProd + +DEFAULT_INPUT = CaProd.Input( + sea_level=_ -> 0.0, + subsidence_rate=50.0, + initial_depth=_ -> 2.0, + grid_size=(50, 50), + phys_scale=1.0, + Δt=0.001, + write_interval=1, + time_steps=1000, + facies=[ + CaProd.Facies((4, 10), (6, 10), 500.0, 0.8, 300), + CaProd.Facies((4, 10), (6, 10), 400.0, 0.1, 300), + CaProd.Facies((4, 10), (6, 10), 100.0, 0.005, 300) + ], + insolation=2000.0 +) + +CaProd.main(DEFAULT_INPUT, "data/ca-prod.h5") +# ~/~ end \ No newline at end of file diff --git a/examples/ca/burgess-2013.jl b/examples/ca/burgess-2013.jl new file mode 100644 index 0000000..0b685e0 --- /dev/null +++ b/examples/ca/burgess-2013.jl @@ -0,0 +1,25 @@ +# ~/~ begin <>[init] +module Script + using .Iterators: flatten + using CarboKitten + using CarboKitten.Burgess2013 + using CarboKitten.Stencil: Reflected + using CarboKitten.Utility + using GLMakie + + function main() + init = rand(0:3, 50, 50) + ca = run_ca(Reflected{2}, MODEL1, init, 3) + + fig = Figure(resolution=(1000, 500)) + axis_indices = flatten(eachrow(CartesianIndices((2, 4)))) + for (i, st) in zip(axis_indices, ca) + ax = Axis(fig[Tuple(i)...], aspect=AxisAspect(1)) + heatmap!(ax, st) + end + save("docs/src/fig/b13-fig3.png", fig) + end +end + +Script.main() +# ~/~ end \ No newline at end of file diff --git a/examples/ca/long-term.jl b/examples/ca/long-term.jl new file mode 100644 index 0000000..03b5141 --- /dev/null +++ b/examples/ca/long-term.jl @@ -0,0 +1,23 @@ +# ~/~ begin <>[init] +module Script + using CarboKitten + using CarboKitten.Burgess2013 + using CarboKitten.Stencil + using CarboKitten.Utility + using GLMakie + + function main() + init = rand(0:3, 50, 50) + result = select(run_ca(Periodic{2}, MODEL1, init, 3), [10, 100, 10000]) + + fig = Figure(resolution=(1000, 333)) + for (i, st) in enumerate(result) + ax = Axis(fig[1, i], aspect=AxisAspect(1)) + heatmap!(ax, st) + end + save("docs/src/fig/b13-long-term.png", fig) + end +end + +Script.main() +# ~/~ end \ No newline at end of file diff --git a/examples/ca/parameter-scan.jl b/examples/ca/parameter-scan.jl new file mode 100644 index 0000000..63c3b45 --- /dev/null +++ b/examples/ca/parameter-scan.jl @@ -0,0 +1,40 @@ +# ~/~ begin <>[init] +module Script + +using CarboKitten +using CarboKitten.Burgess2013 +using CarboKitten.Stencil +using CarboKitten.Utility +using GLMakie +using .Iterators: peel, drop + +function main() + fig = Figure(resolution=(2000, 2000)) + for i in 4:12 + for j in (i+1):12 + print(".") + gl = fig[i, j] = GridLayout() + for k in i:j + # for l in k:j + let l = j + init = rand(0:3, 50, 50) + facies = [ + Facies((i, j), (k, l), 0, 0, 0), + Facies((i, j), (k, l), 0, 0, 0), + Facies((i, j), (k, l), 0, 0, 0), + ] + (result, _) = peel(drop(run_ca(Periodic{2}, facies, init, 3), 10)) + + ax = Axis(gl[k-i, l-k], aspect=AxisAspect(1), xticksvisible=false, yticksvisible=false) + heatmap!(ax, result) + end + end + end + end + save("docs/src/fig/parameter-scan.png", fig) +end + +end # module Script + +Script.main() +# ~/~ end \ No newline at end of file diff --git a/examples/cap-slope.jl b/examples/cap-slope.jl new file mode 100644 index 0000000..6a57d6c --- /dev/null +++ b/examples/cap-slope.jl @@ -0,0 +1,22 @@ +# ~/~ begin <>[init] +using CarboKitten.CaProd + +DEFAULT_INPUT = CaProd.Input( + sea_level=_ -> 0.0, + subsidence_rate=50.0, + initial_depth=x -> x / 2.0, + grid_size=(50, 100), + phys_scale=1.0, + Δt=0.001, + write_interval=1, + time_steps=1000, + facies=[ + CaProd.Facies((4, 10), (6, 10), 500.0, 0.8, 300), + CaProd.Facies((4, 10), (6, 10), 400.0, 0.1, 300), + CaProd.Facies((4, 10), (6, 10), 100.0, 0.005, 300) + ], + insolation=2000.0 +) + +CaProd.main(DEFAULT_INPUT, "data/ca-prod-slope.h5") +# ~/~ end \ No newline at end of file diff --git a/examples/caps-osc.jl b/examples/caps-osc.jl new file mode 100644 index 0000000..17f90fe --- /dev/null +++ b/examples/caps-osc.jl @@ -0,0 +1,22 @@ +# ~/~ begin <>[init] +using CarboKitten.CaProd + +DEFAULT_INPUT = CaProd.Input( + sea_level = t -> 4 * sin(2π * t / 0.2), + subsidence_rate = 50.0, + initial_depth = x -> x / 2, + grid_size = (50, 100), + phys_scale = 1.0, + Δt = 0.0001, + write_interval = 10, + time_steps = 10000, + facies = [ + CaProd.Facies((4, 10), (6, 10), 500.0, 0.8, 300), + CaProd.Facies((4, 10), (6, 10), 400.0, 0.1, 300), + CaProd.Facies((4, 10), (6, 10), 100.0, 0.005, 300) + ], + insolation = 2000.0 +) + +CaProd.main(DEFAULT_INPUT, "data/caps-osc.h5") +# ~/~ end \ No newline at end of file diff --git a/examples/crosssection.png b/examples/crosssection.png new file mode 100644 index 0000000..4211713 Binary files /dev/null and b/examples/crosssection.png differ diff --git a/examples/notebook.jl b/examples/notebook.jl new file mode 100644 index 0000000..de05492 --- /dev/null +++ b/examples/notebook.jl @@ -0,0 +1,1744 @@ +### A Pluto.jl notebook ### +# v0.19.27 + +using Markdown +using InteractiveUtils + +# ╔═╡ 1b1d9efa-1b42-475d-ad94-7c357521b95b +using GLMakie + +# ╔═╡ 4683a8f4-3ca9-4996-81b7-d96af3f53dd2 +using HDF5 + +# ╔═╡ c1819c71-2c1b-4eab-bf0a-00d3ffbb683c +using GeometryBasics + +# ╔═╡ 87dad1f7-b8fb-4e56-95ba-394d511914d3 +let + f = Figure() + ax = Axis(f[1, 1]) + x = [1, 2, 1.5, 2] + y = [1, 2, 0.5, 1.5] + pts = Point{2,Float64}.(x, y) + faces = [TriangleFace(1, 2, 3), TriangleFace(3, 2, 4)] + m = GeometryBasics.Mesh(pts, faces) + mesh!(ax, m, color=[1, 2, 3, 4]) + f +end + +# ╔═╡ 06ca199e-642c-4d4e-a465-85589e268fe0 +x, t, h, p = h5open("../data/caps-osc.h5","r") do fid + attr = HDF5.attributes(fid["input"]) + Δt = attr["delta_t"][] + subsidence_rate = attr["subsidence_rate"][] + t_end = fid["input/t"][end-1] + total_subsidence = subsidence_rate * t_end + total_sediment = sum(fid["sediment"][]; dims=3) + initial_height = fid["input/height"][] + elevation = cumsum(total_sediment; dims=4)[25,:,1,:] .* Δt .- initial_height .- total_subsidence + t = fid["input/t"][] + return fid["input/x"][], [t; Δt*attr["time_steps"][]], hcat(.- initial_height .- total_subsidence, elevation), fid["sediment"][25,:,:,:] +end + +# ╔═╡ f8969a09-426c-4670-8756-12802711ed33 + + +# ╔═╡ bd05564a-3cf9-4c8d-aec6-84d9c9ad75c4 +let + pts = vec(Point{2,Float64}.(x, h[:,2:end])) + c = vec(argmax(p; dims=2)[:,1,:] .|> (c -> c[2])) + rect = Rect2(0.0, 0.0, 1.0, 1.0) + m_tmp = GeometryBasics.mesh(Tesselation(rect, (100, 1000))) + m = GeometryBasics.Mesh(pts, faces(m_tmp)) + + f = Figure() + ax = Axis(f[1, 1], xlabel="location", ylabel="depth", limits=((-12,100), nothing)) + mesh!(ax, m, color=c, alpha=0.7) + for idx in [1,501,1001] + lines!(ax, x, h[:, idx], color=:black) + text!(ax, -2.0, h[1, idx]; text="$(t[idx]) Myr", align=(:right, :center)) + end + for idx in [250,750] + lines!(ax, x, h[:, idx], color=:black, linewidth=0.5) + end + save("crosssection.png", f) + f +end + +# ╔═╡ 62bb362a-bd7e-4a4d-b9cf-4ff0dd3ea9f7 +t + +# ╔═╡ 00000000-0000-0000-0000-000000000001 +PLUTO_PROJECT_TOML_CONTENTS = """ +[deps] +GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" +GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +HDF5 = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" + +[compat] +GLMakie = "~0.8.9" +GeometryBasics = "~0.4.9" +HDF5 = "~0.17.0" +""" + +# ╔═╡ 00000000-0000-0000-0000-000000000002 +PLUTO_MANIFEST_TOML_CONTENTS = """ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.9.3" +manifest_format = "2.0" +project_hash = "fc513dd084616257e0ef3e4ab9174e4608c143f6" + +[[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.AbstractLattices]] +git-tree-sha1 = "f35684b7349da49fcc8a9e520e30e45dbb077166" +uuid = "398f06c4-4d28-53ec-89ca-5b2656b7603d" +version = "0.2.1" + +[[deps.AbstractTrees]] +git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.4" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "76289dc51920fdc6e0013c872ba9551d54961c24" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "3.6.2" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[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.1" + +[[deps.ArrayInterface]] +deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "f83ec24f76d4c8f525099b2ac475fc098138ec31" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "7.4.11" + + [deps.ArrayInterface.extensions] + ArrayInterfaceBandedMatricesExt = "BandedMatrices" + ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" + ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" + ArrayInterfaceTrackerExt = "Tracker" + + [deps.ArrayInterface.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Automa]] +deps = ["TranscodingStreams"] +git-tree-sha1 = "ef9997b3d5547c48b41c7bd8899e812a917b409d" +uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" +version = "0.8.4" + +[[deps.AxisAlgorithms]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] +git-tree-sha1 = "66771c8d21c8ff5e3a93379480a2307ac36863f7" +uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" +version = "1.0.1" + +[[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" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+0" + +[[deps.CEnum]] +git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.4.2" + +[[deps.CRC32c]] +uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc" + +[[deps.CRlibm]] +deps = ["CRlibm_jll"] +git-tree-sha1 = "32abd86e3c2025db5172aa182b982debed519834" +uuid = "96374032-68de-5a5b-8d9e-752f78720389" +version = "1.0.1" + +[[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_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "e30f2f4e20f7f186dc36529910beaedc60cfa644" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.16.0" + +[[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 = "d9a8f86737b665e15a9641ecbac64deef9ce6724" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.23.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"] +git-tree-sha1 = "600cc5508d66b78aae350f7accdb58763ac18589" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.9.10" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.Combinatorics]] +git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" +uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" +version = "1.0.2" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.0" + +[[deps.Compat]] +deps = ["UUIDs"] +git-tree-sha1 = "e460f044ca8b99be31d35fe54fc33a5c33dd8ed7" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.9.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+0" + +[[deps.ConstructionBase]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.4" +weakdeps = ["IntervalSets", "StaticArrays"] + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseStaticArraysExt = "StaticArrays" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.DataAPI]] +git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.15.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.15" + +[[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" + +[[deps.DelaunayTriangulation]] +deps = ["DataStructures", "EnumX", "ExactPredicates", "Random", "SimpleGraphs"] +git-tree-sha1 = "bea7984f7e09aeb28a3b071c420a0186cb4fabad" +uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" +version = "0.8.8" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.15.1" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "Test"] +git-tree-sha1 = "938fe2981db009f531b6332e31c58e9584a2f9bd" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.100" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + +[[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.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[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.ErrorfreeArithmetic]] +git-tree-sha1 = "d6863c556f1142a061532e79f611aa46be201686" +uuid = "90fa49ef-747e-5e6f-a989-263ba693cf1a" +version = "0.5.2" + +[[deps.ExactPredicates]] +deps = ["IntervalArithmetic", "Random", "StaticArraysCore", "Test"] +git-tree-sha1 = "276e83bc8b21589b79303b9985c321024ffdf59c" +uuid = "429591f6-91af-11e9-00e2-59fbe8cec110" +version = "2.2.5" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.Extents]] +git-tree-sha1 = "5e1e4c53fa39afe63a7d356e30452249365fba99" +uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" +version = "0.1.1" + +[[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 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.4+1" + +[[deps.FFTW]] +deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] +git-tree-sha1 = "b4fbdd20c889804969571cc589900803edda16b7" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "1.7.1" + +[[deps.FFTW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" +uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" +version = "3.3.10+0" + +[[deps.FastRounding]] +deps = ["ErrorfreeArithmetic", "LinearAlgebra"] +git-tree-sha1 = "6344aa18f654196be82e62816935225b3b9abe44" +uuid = "fa42c844-2597-5d31-933b-ebd51ab2693f" +version = "0.3.1" + +[[deps.FileIO]] +deps = ["Pkg", "Requires", "UUIDs"] +git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.16.1" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "a20eaa3ad64254c61eeb5f230d9306e937405434" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.6.1" +weakdeps = ["SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FiniteDiff]] +deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] +git-tree-sha1 = "c6e4a1fbe73b31a3dea94b1da449503b8830c306" +uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" +version = "2.21.1" + + [deps.FiniteDiff.extensions] + FiniteDiffBandedMatricesExt = "BandedMatrices" + FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffStaticArraysExt = "StaticArrays" + + [deps.FiniteDiff.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.36" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FreeType]] +deps = ["CEnum", "FreeType2_jll"] +git-tree-sha1 = "50351f83f95282cf903e968d7c6e8d44a5f83d0b" +uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" +version = "4.1.0" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FreeTypeAbstraction]] +deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] +git-tree-sha1 = "38a92e40157100e796690421e34a11c107205c86" +uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" +version = "0.10.0" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[deps.GLFW]] +deps = ["GLFW_jll"] +git-tree-sha1 = "35dbc482f0967d8dceaa7ce007d16f9064072166" +uuid = "f7f18e0c-5ee9-5ccd-a5bf-e8befd85ed98" +version = "3.4.1" + +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] +git-tree-sha1 = "d972031d28c8c8d9d7b41a536ad7bb0c2579caca" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.8+0" + +[[deps.GLMakie]] +deps = ["ColorTypes", "Colors", "FileIO", "FixedPointNumbers", "FreeTypeAbstraction", "GLFW", "GeometryBasics", "LinearAlgebra", "Makie", "Markdown", "MeshIO", "ModernGL", "Observables", "PrecompileTools", "Printf", "ShaderAbstractions", "StaticArrays"] +git-tree-sha1 = "a92cc6b1fb1b6233818aab02e88293b07cf445e5" +uuid = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" +version = "0.8.9" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.5" + +[[deps.GeoInterface]] +deps = ["Extents"] +git-tree-sha1 = "bb198ff907228523f3dee1070ceee63b9359b6ab" +uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" +version = "1.3.1" + +[[deps.GeometryBasics]] +deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "424a5a6ce7c5d97cca7bcc4eac551b97294c54af" +uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +version = "0.4.9" + +[[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 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.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 = "f57a64794b336d4990d90f80b147474b869b1bc4" +uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" +version = "0.9.2" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HDF5]] +deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] +git-tree-sha1 = "ec7df74b7b2022e8252a8bfd4ec23411491adc3b" +uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" +version = "0.17.0" + + [deps.HDF5.extensions] + MPIExt = "MPI" + + [deps.HDF5.weakdeps] + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + +[[deps.HDF5_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] +git-tree-sha1 = "38c8874692d48d5440d5752d6c74b0c6b0b60739" +uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" +version = "1.14.2+1" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[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 = "b51bb8cae22c66d0f6357e3bcb6363145ef20835" +uuid = "c817782e-172a-44cc-b673-b171935fbb9e" +version = "0.1.5" + +[[deps.ImageCore]] +deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Graphics", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "Reexport"] +git-tree-sha1 = "acf614720ef026d38400b3817614c45882d75500" +uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" +version = "0.9.4" + +[[deps.ImageIO]] +deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] +git-tree-sha1 = "bca20b2f5d00c4fbc192c3212da8fa79f4688009" +uuid = "82e4d734-157c-48bb-816b-45c225c6df19" +version = "0.6.7" + +[[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 = "3d09a9f60edf77f8a4d99f9e015e8fbf9989605d" +uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" +version = "3.1.7+0" + +[[deps.IndirectArrays]] +git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" +uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" +version = "1.0.0" + +[[deps.Inflate]] +git-tree-sha1 = "5cd07aab533df5170988219191dfad0519391428" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.3" + +[[deps.IntegerMathUtils]] +git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" +uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" +version = "0.1.2" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ad37c091f7d7daf900963171600d7c1c5c3ede32" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2023.2.0+0" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.Interpolations]] +deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "721ec2cf720536ad005cb38f50dbba7b02419a15" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.14.7" + +[[deps.IntervalArithmetic]] +deps = ["CRlibm", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "RoundingEmulator", "SetRounding", "StaticArrays"] +git-tree-sha1 = "5ab7744289be503d76a944784bac3f2df7b809af" +uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" +version = "0.20.9" + +[[deps.IntervalSets]] +deps = ["Dates", "Random"] +git-tree-sha1 = "8e59ea773deee525c99a8018409f64f19fb719e6" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.7.7" +weakdeps = ["Statistics"] + + [deps.IntervalSets.extensions] + IntervalSetsStatisticsExt = "Statistics" + +[[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 = "4ced6667f9974fc5c5943fa5e2ef1ca43ea9e450" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.8.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 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[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 = "327713faef2a3e5c80f96bf38d1fa26f7a6ae29e" +uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" +version = "0.1.3" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "2.1.91+0" + +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] +git-tree-sha1 = "90442c50e202a5cdf21a7899c66b240fdef14035" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.7" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f689897ccbe049adb19a065c495e75f372ecd42b" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.4+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.0" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[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.3" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "7.84.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.10.2+0" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[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", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.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", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LightXML]] +deps = ["Libdl", "XML2_jll"] +git-tree-sha1 = "e129d9391168c677cd4800f5c0abb1ed8cb3794f" +uuid = "9c8b4983-aa76-5018-a973-4c85ecc9e179" +version = "0.9.0" + +[[deps.LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] +git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.2.0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.LinearAlgebraX]] +deps = ["LinearAlgebra", "Mods", "Permutations", "Primes", "SimplePolynomials"] +git-tree-sha1 = "558a338f1eeabe933f9c2d4052aa7c2c707c3d52" +uuid = "9b3f67b0-2d00-526e-9884-9e4938f8fb88" +version = "0.1.12" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.26" + + [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" + +[[deps.MKL_jll]] +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] +git-tree-sha1 = "eb006abbd7041c28e0d16260e50a24f8f9104913" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2023.2.0+0" + +[[deps.MPICH_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "8a5b4d2220377d1ece13f49438d71ad20cf1ba83" +uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" +version = "4.1.2+0" + +[[deps.MPIPreferences]] +deps = ["Libdl", "Preferences"] +git-tree-sha1 = "781916a2ebf2841467cda03b6f1af43e23839d85" +uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" +version = "0.1.9" + +[[deps.MPItrampoline_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "6979eccb6a9edbbb62681e158443e79ecc0d056a" +uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" +version = "5.3.1+0" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.11" + +[[deps.Makie]] +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FixedPointNumbers", "Formatting", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "Match", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Setfield", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "StableHashTraits", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun"] +git-tree-sha1 = "ecc334efc4a8a68800776b0d85ab7bb2fff63f7a" +uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +version = "0.19.9" + +[[deps.MakieCore]] +deps = ["Observables"] +git-tree-sha1 = "1efb1166dd9398f2ccf6d728f896658c9c84733e" +uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" +version = "0.6.6" + +[[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" + +[[deps.Match]] +git-tree-sha1 = "1d9bc5c1a6e7ee24effb93f175c9342f9154d97f" +uuid = "7eb4fadd-790c-5f42-8a69-bfa0b872bfbf" +version = "1.2.0" + +[[deps.MathTeXEngine]] +deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "Test", "UnicodeFun"] +git-tree-sha1 = "8f52dbaa1351ce4cb847d95568cb29e62a307d93" +uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" +version = "0.5.6" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+0" + +[[deps.MeshIO]] +deps = ["ColorTypes", "FileIO", "GeometryBasics", "Printf"] +git-tree-sha1 = "8be09d84a2d597c7c0c34d7d604c039c9763e48c" +uuid = "7269a6da-0436-5bbc-96c2-40638cbb6118" +version = "0.4.10" + +[[deps.MicrosoftMPI_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "a8027af3d1743b3bfae34e54872359fdebb31422" +uuid = "9237b28f-5490-5468-be7b-bb81f5f5e6cf" +version = "10.1.3+4" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.ModernGL]] +deps = ["Libdl"] +git-tree-sha1 = "b76ea40b5c0f45790ae09492712dd326208c28b2" +uuid = "66fc600b-dfda-50eb-8b99-91cfa97b1301" +version = "1.1.7" + +[[deps.Mods]] +git-tree-sha1 = "61be59e4daffff43a8cec04b5e0dc773cbb5db3a" +uuid = "7475f97c-0381-53b1-977b-4c60186c8d62" +version = "1.3.3" + +[[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 = "2022.10.11" + +[[deps.Multisets]] +git-tree-sha1 = "8d852646862c96e226367ad10c8af56099b4047e" +uuid = "3b2b4ff1-bcff-5658-a3ee-dbcf1ce5ac09" +version = "0.4.4" + +[[deps.NLSolversBase]] +deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] +git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.8.3" + +[[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 = "6862738f9796b3edc1c09d0890afce4eca9e7e93" +uuid = "510215fc-4207-5dde-b226-833fc4488ee2" +version = "0.5.4" + +[[deps.OffsetArrays]] +deps = ["Adapt"] +git-tree-sha1 = "2ac17d29c523ce1cd38e27785a7d23024853a4bb" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.12.10" + +[[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.21+4" + +[[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 = "a4ca623df1ae99d09bc9868b008262d0c0ac1e4f" +uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" +version = "3.1.4+0" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+0" + +[[deps.OpenMPI_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "f3080f4212a8ba2ceb10a34b938601b862094314" +uuid = "fe0851c0-eecd-5654-98d4-656369965a5c" +version = "4.1.5+0" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e78db7bd5c26fc5a6911b50a47ee302219157ea8" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.10+0" + +[[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.Optim]] +deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] +git-tree-sha1 = "963b004d15216f8129f6c0f7d187efa136570be0" +uuid = "429524aa-4258-5aef-a3af-852621145aeb" +version = "1.7.7" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.2" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+0" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "67eae2738d63117a196f497d7db789821bce61d1" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.17" + +[[deps.PNGFiles]] +deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] +git-tree-sha1 = "9b02b27ac477cad98114584ff964e3052f656a0f" +uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" +version = "0.4.0" + +[[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.Parameters]] +deps = ["OrderedCollections", "UnPack"] +git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" +uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" +version = "0.12.3" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "716e24b21538abc91f6205fd1d8363f39b442851" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.7.2" + +[[deps.Permutations]] +deps = ["Combinatorics", "LinearAlgebra", "Random"] +git-tree-sha1 = "25e2bb0973689836bf164ecb960762f1bb8794dd" +uuid = "2ae35dd2-176d-5d53-8349-f30d82d94d4f" +version = "0.4.17" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.9.2" + +[[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", "Statistics"] +git-tree-sha1 = "f92e1315dadf8c46561fb9396e525f7200cdc227" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.3.5" + +[[deps.PolygonOps]] +git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" +uuid = "647866c9-e3ac-4575-94e7-e3d426903924" +version = "0.1.2" + +[[deps.Polynomials]] +deps = ["LinearAlgebra", "RecipesBase", "Setfield", "SparseArrays"] +git-tree-sha1 = "ea78a2764f31715093de7ab495e12c0187f231d1" +uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" +version = "4.0.4" + + [deps.Polynomials.extensions] + PolynomialsChainRulesCoreExt = "ChainRulesCore" + PolynomialsFFTWExt = "FFTW" + PolynomialsMakieCoreExt = "MakieCore" + PolynomialsMutableArithmeticsExt = "MutableArithmetics" + + [deps.Polynomials.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" + MakieCore = "20f20a25-4f0e-4fdf-b5d1-57303727442b" + MutableArithmetics = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" + +[[deps.PositiveFactorizations]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" +uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" +version = "0.2.4" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.Primes]] +deps = ["IntegerMathUtils"] +git-tree-sha1 = "4c9f306e5d6603ae203c2000dd460d81a5251489" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.5.4" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.ProgressMeter]] +deps = ["Distributed", "Printf"] +git-tree-sha1 = "00099623ffee15972c16111bcf84c58a0051257c" +uuid = "92933f4c-e287-5a05-a399-4b506db050ca" +version = "1.9.0" + +[[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 = "eeab25344bf9901146c0200a7ca64ea479f8bf5c" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.0" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA", "Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[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.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "90bc7a7c96410424509e4263e277e43250c05691" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.0" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.RingLists]] +deps = ["Random"] +git-tree-sha1 = "f39da63aa6d2d88e0c1bd20ed6a3ff9ea7171ada" +uuid = "286e9d63-9694-5540-9e3c-4e6708fa07b2" +version = "0.2.8" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+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.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "30449ee12237627992a99d5e30ae63e4d78cd24a" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.0" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.SetRounding]] +git-tree-sha1 = "d7a25e439d07a17b7cdf97eecee504c50fedf5f6" +uuid = "3cc68bcd-71a2-5612-b932-767ffbe40ab0" +version = "0.2.1" + +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + +[[deps.ShaderAbstractions]] +deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "0d15c3e7b2003f4451714f08ffec2b77badc2dc4" +uuid = "65257c39-d410-5151-9873-9b3e5be5013e" +version = "0.3.0" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[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.SimpleGraphs]] +deps = ["AbstractLattices", "Combinatorics", "DataStructures", "IterTools", "LightXML", "LinearAlgebra", "LinearAlgebraX", "Optim", "Primes", "Random", "RingLists", "SimplePartitions", "SimplePolynomials", "SimpleRandom", "SparseArrays", "Statistics"] +git-tree-sha1 = "b608903049d11cc557c45e03b3a53e9260579c19" +uuid = "55797a34-41de-5266-9ec1-32ac4eb504d3" +version = "0.8.4" + +[[deps.SimplePartitions]] +deps = ["AbstractLattices", "DataStructures", "Permutations"] +git-tree-sha1 = "dcc02923a53f316ab97da8ef3136e80b4543dbf1" +uuid = "ec83eff0-a5b5-5643-ae32-5cbf6eedec9d" +version = "0.3.0" + +[[deps.SimplePolynomials]] +deps = ["Mods", "Multisets", "Polynomials", "Primes"] +git-tree-sha1 = "d537c31cf9995236166e3e9afc424a5a1c59ff9d" +uuid = "cc47b68c-3164-5771-a705-2bc0097375a0" +version = "0.2.14" + +[[deps.SimpleRandom]] +deps = ["Distributions", "LinearAlgebra", "Random"] +git-tree-sha1 = "3a6fb395e37afab81aeea85bae48a4db5cd7244a" +uuid = "a6525b86-64cd-54fa-8f65-62fc48bdc0e8" +version = "0.3.1" + +[[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" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "c60ec5c62180f27efea3ba2908480f8055e17cee" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.1.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.StableHashTraits]] +deps = ["Compat", "SHA", "Tables", "TupleTools"] +git-tree-sha1 = "19df33ca14f24a3ad2df9e89124bd5f5cc8467a2" +uuid = "c5dd0088-6c3f-4803-b00e-f31a60c170fa" +version = "1.0.1" + +[[deps.StackViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" +uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" +version = "0.1.1" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "Random", "StaticArraysCore"] +git-tree-sha1 = "51621cca8651d9e334a659443a74ce50a3b6dfab" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.6.3" +weakdeps = ["Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.2" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.9.0" + +[[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 = "75ebe04c5bed70b91614d684259b661c9e6274a4" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.0" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.0" + + [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 = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] +git-tree-sha1 = "0a3db38e4cce3c54fe7a71f831cd7b6194a54213" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.16" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "5.10.1+6" + +[[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", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "a1f34829d5ac0ef499f6d84428bd6b4c71f02ead" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.11.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" + +[[deps.TiffImages]] +deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] +git-tree-sha1 = "3c4535892eff963d14acee719df445287c2d8f98" +uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" +version = "0.6.5" + +[[deps.TranscodingStreams]] +deps = ["Random", "Test"] +git-tree-sha1 = "9a6ae7ed916312b41236fcef7e0af564ef934769" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.9.13" + +[[deps.TriplotBase]] +git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" +uuid = "981d1d27-644d-49a2-9326-4793e63143c3" +version = "0.1.0" + +[[deps.TupleTools]] +git-tree-sha1 = "155515ed4c4236db30049ac1495e2969cc06be9d" +uuid = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6" +version = "1.4.3" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.UnPack]] +git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" +uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" +version = "1.0.2" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.WoodburyMatrices]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "de67fa59e33ad156a590055375a30b23c40299d3" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "0.5.5" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "04a51d15436a572301b5abbb9d099713327e9fc4" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.10.4+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+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_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[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", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.2+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[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 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.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+0" + +[[deps.isoband_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" +uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4" +version = "0.2.3+0" + +[[deps.libaec_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "eddd19a8dea6b139ea97bdc8a0e2667d4b661720" +uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" +version = "1.0.6+1" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.38+0" + +[[deps.libsixel_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] +git-tree-sha1 = "d4f63314c8aa1e48cd22aa0c17ed76cd1ae48c3c" +uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" +version = "1.10.3+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.48.0+0" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+0" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" +""" + +# ╔═╡ Cell order: +# ╠═1b1d9efa-1b42-475d-ad94-7c357521b95b +# ╠═4683a8f4-3ca9-4996-81b7-d96af3f53dd2 +# ╠═c1819c71-2c1b-4eab-bf0a-00d3ffbb683c +# ╠═87dad1f7-b8fb-4e56-95ba-394d511914d3 +# ╠═06ca199e-642c-4d4e-a465-85589e268fe0 +# ╠═f8969a09-426c-4670-8756-12802711ed33 +# ╠═bd05564a-3cf9-4c8d-aec6-84d9c9ad75c4 +# ╠═62bb362a-bd7e-4a4d-b9cf-4ff0dd3ea9f7 +# ╟─00000000-0000-0000-0000-000000000001 +# ╟─00000000-0000-0000-0000-000000000002 diff --git a/examples/plot-cap-slope.jl b/examples/plot-cap-slope.jl new file mode 100644 index 0000000..1664811 --- /dev/null +++ b/examples/plot-cap-slope.jl @@ -0,0 +1,14 @@ +# ~/~ begin <>[init] +module Script +using CarboKitten.Visualization +using GLMakie + +function main() + f = Figure() + plot_crosssection(f[1, 1], "data/ca-prod-slope.h5") + save("docs/src/fig/b13-crosssection.png", f) +end +end + +Script.main() +# ~/~ end \ No newline at end of file diff --git a/examples/plot-caps-osc.jl b/examples/plot-caps-osc.jl new file mode 100644 index 0000000..589abf6 --- /dev/null +++ b/examples/plot-caps-osc.jl @@ -0,0 +1,14 @@ +# ~/~ begin <>[init] +module Script + using CarboKitten.Visualization + using GLMakie + + function main() + f = Figure() + plot_crosssection(f[1,1], "data/caps-osc.h5") + save("docs/src/fig/b13-capsosc-crosssection.png", f) + end +end + +Script.main() +# ~/~ end \ No newline at end of file diff --git a/src/figures/plot-tanh.gnuplot b/examples/plot-tanh.gnuplot similarity index 75% rename from src/figures/plot-tanh.gnuplot rename to examples/plot-tanh.gnuplot index 2632e4f..75b46f2 100644 --- a/src/figures/plot-tanh.gnuplot +++ b/examples/plot-tanh.gnuplot @@ -1,4 +1,4 @@ -# ~/~ begin <>[init] +# ~/~ begin <>[init] set term svg size 700, 300 font "sans serif, 14" linewidth 1.5 set xrange [-5:10] set yrange [-0.1:1.1] diff --git a/src/BS92/fig8-sealevel.jl b/src/BS92/fig8-sealevel.jl index 731d4a1..af41eb8 100644 --- a/src/BS92/fig8-sealevel.jl +++ b/src/BS92/fig8-sealevel.jl @@ -1,20 +1,22 @@ # ~/~ begin <>[init] -using Images -using DataFrames -using CSV +module Script + using Images + using DataFrames + using CSV -function main() - img = load("data/bs92-sealevel-input.png") - img_gray = Gray.(img) - signal = 1.0 .- channelview(img_gray) - signal ./= sum(signal; dims=[1]) - (n_y, n_x) = size(signal) - y = sum(signal .* (1:n_y); dims=[1]) / n_y * 200.0 - df = DataFrame( - time = LinRange(0.0, 80_000.0, n_x), - depth = y[1, :]) - CSV.write("data/bs92-sealevel-curve.csv", df) + function main() + img = load("data/bs92-sealevel-input.png") + img_gray = Gray.(img) + signal = 1.0 .- channelview(img_gray) + signal ./= sum(signal; dims=[1]) + (n_y, n_x) = size(signal) + y = sum(signal .* (1:n_y); dims=[1]) / n_y * 200.0 + df = DataFrame( + time = LinRange(0.0, 80_000.0, n_x), + depth = y[1, :]) + CSV.write("data/bs92-sealevel-curve.csv", df) + end end -main() +Script.main() # ~/~ end \ No newline at end of file diff --git a/src/Burgess2013.jl b/src/Burgess2013.jl index 422ce7a..575c237 100644 --- a/src/Burgess2013.jl +++ b/src/Burgess2013.jl @@ -1,48 +1,16 @@ # ~/~ begin <>[init] module Burgess2013 -module Types - # ~/~ begin <>[init] - struct Deposit{N} - amount::NTuple{N, Float64} - end - - Base.zero(::Type{Deposit{N}}) where {N} = - Deposit{N}(ntuple(_ -> zero(Float64), N)) - # ~/~ end - # ~/~ begin <>[0] - export Product - - struct Product - species::Int - amount::Float64 - end - - Base.zero(::Type{Product}) = Product(0, 0.0) - # ~/~ end -end - include("Burgess2013/Config.jl") include("Burgess2013/CA.jl") include("Burgess2013/Production.jl") include("Burgess2013/Transport.jl") -# ~/~ begin <>[init] -function run() - # Run the CA for 10 generations as a warm-up - species = Iterators.drop(CA.run(Reflected{2}, rand(0:3, 50, 50), 3), 10) - # Initial depth runs from 0 to 150 - height = repeat(collect(0:49) .* 3.0, 1, 50) - sealevel(t) = 0.0 - Δt = 1000.0 - - for (time_index, gen) in enumerate(species) - t = time_index * Δt - production = Δt .* Production.production_rate(2000.0, Config.model1, height .- sealevel(t)) +using .CA +using .Config +using .Production - end -end -# ~/~ end +export production_rate, run_ca, Facies, MODEL1 end # ~/~ end \ No newline at end of file diff --git a/src/Burgess2013/CA.jl b/src/Burgess2013/CA.jl index 5925b18..b913462 100644 --- a/src/Burgess2013/CA.jl +++ b/src/Burgess2013/CA.jl @@ -2,35 +2,42 @@ module CA using ...Stencil +using ..Config: Facies + +export run_ca # ~/~ begin <>[init] cycle_permutation(n_species::Int) = (circshift(1:n_species, x) for x in Iterators.countfrom(0)) # ~/~ end # ~/~ begin <>[init] -function rules(neighbourhood::Matrix{Int}, order::Vector{Int}) - cell_species = neighbourhood[3, 3] - neighbour_count(species) = sum(neighbourhood .== species) - if cell_species == 0 - for species in order - n = neighbour_count(species) - if 6 <= n && n <= 10 - return species +function rules(facies::Vector{Facies}) + function (neighbourhood::Matrix{Int}, order::Vector{Int}) + cell_facies = neighbourhood[3, 3] + neighbour_count(f) = sum(neighbourhood .== f) + if cell_facies == 0 + for f in order + n = neighbour_count(f) + (a, b) = facies[f].activation_range + if a <= n && n <= b + return f + end end + 0 + else + n = neighbour_count(cell_facies) - 1 + (a, b) = facies[cell_facies].viability_range + (a <= n && n <= b ? cell_facies : 0) end - 0 - else - n = neighbour_count(cell_species) - 1 - (4 <= n && n <= 10 ? cell_species : 0) - end + end end -# ~/~ end -function run(::Type{B}, init::Matrix{Int}, n_species::Int) where {B <: Boundary{2}} +function run_ca(::Type{B}, facies::Vector{Facies}, init::Matrix{Int}, n_species::Int) where {B <: Boundary{2}} + r = rules(facies) Channel{Matrix{Int}}() do ch target = Matrix{Int}(undef, size(init)) put!(ch, init) - stencil_op = stencil(Int, B, (5, 5), rules) + stencil_op = stencil(Int, B, (5, 5), r) for perm in cycle_permutation(n_species) stencil_op(init, target, perm) init, target = target, init @@ -38,6 +45,7 @@ function run(::Type{B}, init::Matrix{Int}, n_species::Int) where {B <: Boundary{ end end end +# ~/~ end end # ~/~ end \ No newline at end of file diff --git a/src/Burgess2013/Config.jl b/src/Burgess2013/Config.jl index 4d6d949..a8312f5 100644 --- a/src/Burgess2013/Config.jl +++ b/src/Burgess2013/Config.jl @@ -1,7 +1,9 @@ # ~/~ begin <>[init] module Config -struct Species +export Facies, MODEL1 + +struct Facies viability_range::Tuple{Int, Int} activation_range::Tuple{Int, Int} @@ -10,14 +12,10 @@ struct Species saturation_intensity::Float64 end -Iₖ(s::Species) = s.saturation_intensity -k(s::Species) = s.extinction_coefficient -gₘ(s::Species) = s.maximum_growth_rate - -model1 = [ - Species((4, 10), (6, 10), 500, 0.8, 300), - Species((4, 10), (6, 10), 400, 0.1, 300), - Species((4, 10), (6, 10), 100, 0.005, 300) +MODEL1 = [ + Facies((4, 10), (6, 10), 500, 0.8, 300), + Facies((4, 10), (6, 10), 400, 0.1, 300), + Facies((4, 10), (6, 10), 100, 0.005, 300) ] end diff --git a/src/Burgess2013/Production.jl b/src/Burgess2013/Production.jl index a17b73c..de199d4 100644 --- a/src/Burgess2013/Production.jl +++ b/src/Burgess2013/Production.jl @@ -1,18 +1,21 @@ # ~/~ begin <>[init] module Production -using ..Config: Species, Iₖ, k, gₘ +export production_rate + +using ..Config: Facies # ~/~ begin <>[init] g(gₘ, I₀, Iₖ, k, w) = gₘ * tanh(I₀/Iₖ * exp(-w * k)) # ~/~ end -function production_rate(I₀::Float64, s::Species, w::Float64) - w > 0.0 ? g(gₘ(s), I₀, Iₖ(s), k(s), w) : 0.0 -end - -function production_rate(I₀::Float64, specs::Vector{Species}, spec_map::Matrix{Int}, w::Matrix{Float64}) - production_rate.(I₀, Iterators.map(i -> specs[i], spec_map), w) +function production_rate(insolation::Float64, facies::Facies, water_depth::Float64) + gₘ = facies.maximum_growth_rate + I₀ = insolation + Iₖ = facies.saturation_intensity + w = water_depth + k = facies.extinction_coefficient + return w > 0.0 ? gₘ * tanh(I₀/Iₖ * exp(-w * k)) : 0.0 end end diff --git a/src/CaProd.jl b/src/CaProd.jl new file mode 100644 index 0000000..a87f0a6 --- /dev/null +++ b/src/CaProd.jl @@ -0,0 +1,140 @@ +# ~/~ begin <>[init] +module CaProd + +using CarboKitten +using CarboKitten.Stencil: Periodic +using CarboKitten.Utility +using CarboKitten.BS92: sealevel_curve +using CarboKitten.Stencil +using CarboKitten.Burgess2013 + +using HDF5 +using .Iterators: drop, peel, partition, map, take + +# ~/~ begin <>[init] +@kwdef struct Input + sea_level + subsidence_rate + initial_depth + + grid_size::NTuple{2,Int} + phys_scale::Float64 + Δt::Float64 + + time_steps::Int + write_interval::Int + + facies::Vector{Facies} + insolation::Float64 +end +# ~/~ end +# ~/~ begin <>[init] +struct Frame + production::Array{Float64,3} +end +# ~/~ end +# ~/~ begin <>[init] +mutable struct State + time::Float64 + height::Array{Float64,2} +end +# ~/~ end +# ~/~ begin <>[init] +function initial_state(input::Input) # -> State + height = zeros(Float64, input.grid_size...) + for i in CartesianIndices(height) + height[i] = input.initial_depth(i[2] * input.phys_scale) + end + return State(0.0, height) +end +# ~/~ end +# ~/~ begin <>[1] +function propagator(input::Input) + # ~/~ begin <>[init] + n_facies = length(input.facies) + ca_init = rand(0:n_facies, input.grid_size...) + ca = drop(run_ca(Periodic{2}, input.facies, ca_init, 3), 20) + + function water_depth(s::State) + s.height .- input.sea_level(s.time) + end + # ~/~ end + function (s::State) # -> Frame + # ~/~ begin <>[init] + result = zeros(Float64, input.grid_size..., n_facies) + facies_map, ca = peel(ca) + w = water_depth(s) + Threads.@threads for idx in CartesianIndices(facies_map) + f = facies_map[idx] + if f == 0 + continue + end + result[Tuple(idx)..., f] = production_rate(input.insolation, input.facies[f], w[idx]) + end + return Frame(result) + # ~/~ end + end +end +# ~/~ end +# ~/~ begin <>[2] +function updater(input::Input) + n_facies = length(input.facies) + function (s::State, Δ::Frame) + s.height .-= sum(Δ.production; dims=3) .* input.Δt + s.height .+= input.subsidence_rate * input.Δt + s.time += input.Δt + end +end +# ~/~ end +# ~/~ begin <>[3] +function run_model(input::Input) + Channel{Frame}() do ch + s = initial_state(input) + p = propagator(input) + u = updater(input) + + while true + Δ = p(s) + put!(ch, Δ) + u(s, Δ) + end + end +end +# ~/~ end + +function stack_frames(fs::Vector{Frame}) # -> Frame + Frame(sum(f.production for f in fs)) +end + +function main(input::Input, output::String) + x_axis = (0:(input.grid_size[2]-1)) .* input.phys_scale + y_axis = (0:(input.grid_size[1]-1)) .* input.phys_scale + initial_height = input.initial_depth.(x_axis) + n_writes = input.time_steps ÷ input.write_interval + + h5open(output, "w") do fid + gid = create_group(fid, "input") + gid["x"] = collect(x_axis) + gid["y"] = collect(y_axis) + gid["height"] = collect(initial_height) + gid["t"] = collect((0:(n_writes-1)) .* (input.Δt * input.write_interval)) + attr = attributes(gid) + attr["delta_t"] = input.Δt + attr["write_interval"] = input.write_interval + attr["time_steps"] = input.time_steps + attr["subsidence_rate"] = input.subsidence_rate + + n_facies = length(input.facies) + ds = create_dataset(fid, "sediment", datatype(Float64), + dataspace(input.grid_size..., n_facies, input.time_steps), + chunk=(input.grid_size..., n_facies, 1)) + + results = map(stack_frames, partition(run_model(input), input.write_interval)) + for (step, frame) in enumerate(take(results, n_writes)) + ds[:, :, :, step] = frame.production + end + end +end + +end # CaProd +# ~/~ end \ No newline at end of file diff --git a/src/CarboKitten.jl b/src/CarboKitten.jl index 4007b25..951dda1 100644 --- a/src/CarboKitten.jl +++ b/src/CarboKitten.jl @@ -1,10 +1,10 @@ module CarboKitten -greet() = print("Hello World!") - include("./Stencil.jl") include("./Burgess2013.jl") include("./Utility.jl") include("./BS92.jl") +include("./CaProd.jl") +include("./Visualization.jl") end # module CarboKitten diff --git a/src/Stencil.jl b/src/Stencil.jl index c8f7bd8..5f04042 100644 --- a/src/Stencil.jl +++ b/src/Stencil.jl @@ -42,7 +42,7 @@ function stencil(::Type{T}, ::Type{BT}, n::NTuple{dim,Int}, f::Function) where { function(z_in::AbstractArray{T, dim}, z_out::AbstractArray{T, dim}, args...) @assert (size(z_in) == size(z_out)) "sizes of arrays need to be equal" shape = size(z_in) - for i in CartesianIndices(shape) + Threads.@threads for i in CartesianIndices(shape) for (k, Δi) in enumerate(CartesianIndices(stencil_shape)) stencil[k] = offset_value(BT, z_in, i, Δi) end diff --git a/src/Visualization.jl b/src/Visualization.jl new file mode 100644 index 0000000..2d03086 --- /dev/null +++ b/src/Visualization.jl @@ -0,0 +1,69 @@ +# ~/~ begin <>[init] +module Visualization + +export plot_crosssection + +using HDF5 +using GLMakie +using GeometryBasics + +function plot_crosssection(pos, datafile) + # x: 1-d array with x-coordinates + # t: 1-d array with time-coordinates (n_steps + 1) + # h[x, t]: height fn, monotonic increasing in time + # p[x, facies, t]: production rate + # taken at y = y_max / 2, h[x, 1] is initial height + n_facies, x, t, h, p = h5open(datafile,"r") do fid + attr = HDF5.attributes(fid["input"]) + Δt = attr["delta_t"][] + subsidence_rate = attr["subsidence_rate"][] + t_end = fid["input/t"][end-1] + total_subsidence = subsidence_rate * t_end + total_sediment = sum(fid["sediment"][]; dims=3) + initial_height = fid["input/height"][] + center = div(size(total_sediment)[1], 2) + elevation = cumsum(total_sediment; dims=4)[center,:,1,:] .* Δt .- initial_height .- total_subsidence + t = fid["input/t"][] + n_facies = size(fid["sediment"])[3] + + return n_facies, + fid["input/x"][], + [t; Δt*attr["time_steps"][]], + hcat(.- initial_height .- total_subsidence, elevation), + fid["sediment"][center,:,:,:] + end + + pts = vec(Point{2,Float64}.(x, h[:,2:end])) + c = vec(argmax(p; dims=2)[:,1,:] .|> (c -> c[2])) + rect = Rect2(0.0, 0.0, 1.0, 1.0) + m_tmp = GeometryBasics.mesh(Tesselation(rect, (100, 1000))) + m = GeometryBasics.Mesh(pts, faces(m_tmp)) + + # pts = vec(Point{2,Float64}.(x, h)) + # c = argmax(p; dims=2)[:,1,:] .|> (c -> c[2]) + # w = size(x)[1] + + # face(idx) = let k = idx[1] + idx[2]*w + # TriangleFace(k, k+1, k+1+w), TriangleFace(k+1+w, k+w, k) + # end + + ax = Axis(pos, xlabel="location", ylabel="depth", limits=((-12,x[end]), nothing)) + # for f in 1:n_facies + # locs = CartesianIndices((size(x)[1], size(t)[1] - 1))[c .== f] + # triangles = collect(Iterators.flatten(face.(locs))) + # m = GeometryBasics.Mesh(pts, triangles) + # mesh!(ax, m) + # end + + mesh!(ax, m, color=c, alpha=0.7) + for idx in [1,501,1001] + lines!(ax, x, h[:, idx], color=:black) + text!(ax, -2.0, h[1, idx]; text="$(t[idx]) Myr", align=(:right, :center)) + end + for idx in [250,750] + lines!(ax, x, h[:, idx], color=:black, linewidth=0.5) + end +end + +end +# ~/~ end \ No newline at end of file diff --git a/src/examples/convolution.jl b/src/examples/convolution.jl deleted file mode 100644 index 9bec6fd..0000000 --- a/src/examples/convolution.jl +++ /dev/null @@ -1,44 +0,0 @@ -# ~/~ begin <>[init] -using CarboKitten.Stencil -using GnuplotLite - -function plot_boundary_types(output::String) - n = 16 - y0 = zeros(Float64, n, n) - y0[1, 1] = 1 - y0[n, n] = 2 - x = collect(-2:0.25:2) - k = exp.(-(x.^2 .+ x'.^2)) - k ./= sum(k) - - y_periodic = Array{Float64}(undef, n, n) - convolution(Periodic{2}, k)(y0, y_periodic) - y_reflected = Array{Float64}(undef, n, n) - convolution(Reflected{2}, k)(y0, y_reflected) - y_constant = Array{Float64}(undef, n, n) - convolution(Constant{2, 0.1}, k)(y0, y_constant) - - gnuplot() do g - g |> - send("load 'data/moreland.pal'") |> - send("periodic" => y_periodic) |> - send("reflected" => y_reflected) |> - send("constant" => y_constant) |> - send("set term svg size 700, 300") |> - send("set output '$(output)'") |> - send("set multiplot layout 1, 3") |> - send("set size square") |> - send("set xrange [0:$(n)]; set yrange [0:$(n)]") |> - send("unset colorbox") |> - # send("set colorbox horiz user origin graph 0,screen .04 size graph 1,screen .04") |> - send("unset xtics; unset ytics") |> - send("set title 'periodic'") |> - send("plot \$periodic matrix u (\$1+0.5):(\$2+0.5):3 t'' w image") |> - send("set title 'reflected'") |> - send("plot \$reflected matrix u (\$1+0.5):(\$2+0.5):3 t'' w image") |> - send("set title 'constant (0.1)'") |> - send("plot \$constant matrix u (\$1+0.5):(\$2+0.5):3 t'' w image") |> - send("unset multiplot") - end -end -# ~/~ end \ No newline at end of file diff --git a/src/examples/eca.jl b/src/examples/eca.jl deleted file mode 100644 index 1e38f1f..0000000 --- a/src/examples/eca.jl +++ /dev/null @@ -1,39 +0,0 @@ -# ~/~ begin <>[init] -using CarboKitten.Stencil -using GnuplotLite - -rule(i::Int) = function (foo::AbstractVector{T}) where T <: Integer - d = foo[1]*4 + foo[2]*2 + foo[3] - i & (1 << d) == 0 ? 0 : 1 -end - -function eca(r::Int, n::Int, iter::Int) - y = Array{Int}(undef, n, iter) - y[:, 1] = rand(0:1, n) - stencil_op = stencil(Int, Periodic{1}, (3,), rule(r)) - for i in 2:iter - stencil_op(view(y, :, i-1), view(y, :, i)) - end - y -end - -# ~/~ begin <>[init] -function plot_eca(output::String, r::Int, n::Int, iter::Int) - plot_width = 700 - plot_height = plot_width * iter ÷ n + 100 - gnuplot() do g - g |> - send("set term svg size $(plot_width), $(plot_height)") |> - send("set output '$(output)'") |> - send("data" => (x=0:n-1, y=0:iter-1, z=eca(r, n, iter)')) |> - send("set title 'rule $(r)'") |> - send("set xrange [0:$(n)]; set yrange [$(iter):0] reverse") |> - send("set xlabel 'space'") |> - send("set ylabel 'iterations'") |> - send("set size ratio -1") |> - send("unset colorbox; set palette gray") |> - send("plot \$data nonuniform matrix u (\$1+0.5):(\$2+0.5):3 with image") - end -end -# ~/~ end -# ~/~ end \ No newline at end of file diff --git a/src/examples/game-of-life.jl b/src/examples/game-of-life.jl deleted file mode 100644 index 7024a8d..0000000 --- a/src/examples/game-of-life.jl +++ /dev/null @@ -1,45 +0,0 @@ -# ~/~ begin <>[init] -using CarboKitten.Stencil -using GnuplotLite - -function game_of_life(w, h) - y1 = rand(Bool, (w, h)) - y2 = Array{Bool}(undef, w, h) - - # ~/~ begin <>[init] - "x is a 3x3 region around the cell at x[2,2]." - rules(x) = let c = x[2, 2], s = sum(x) - c - c && s == 2 || s == 3 - end - # ~/~ end - - op = stencil(Bool, Periodic{2}, (3, 3), rules) - Channel() do ch - put!(ch, y1) - while true - op(y1, y2) - (y1, y2) = (y2, y1) - put!(ch, y1) - end - end -end - -# ~/~ begin <>[init] -function plot_life(output::String, w::Int, h::Int) - (z, _) = Iterators.peel(Iterators.drop(game_of_life(w, h), 50)) - plot_width = 700 - plot_height = plot_width * h ÷ w + 100 - gnuplot() do g - g |> - send("set term svg size $(plot_width), $(plot_height)") |> - send("set output '$(output)'") |> - send("data" => Matrix{Int}(z')) |> - send("set title 'game of life'") |> - send("set xrange [0:$(w)]; set yrange [0:$(h)]") |> - send("set size ratio -1") |> - send("unset colorbox; set palette gray negative") |> - send("plot \$data matrix u (\$1+0.5):(\$2+0.5):3 with image pixels") - end -end -# ~/~ end -# ~/~ end \ No newline at end of file