diff --git a/Manifest.toml b/Manifest.toml new file mode 100644 index 0000000..8ab17c3 --- /dev/null +++ b/Manifest.toml @@ -0,0 +1,780 @@ +[[AbstractFFTs]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "8d59c3b1463b5e0ad05a3698167f85fac90e184d" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "0.3.2" + +[[AbstractPlotting]] +deps = ["ColorBrewer", "ColorTypes", "Colors", "Contour", "FileIO", "FixedPointNumbers", "FreeType", "FreeTypeAbstraction", "GeometryTypes", "ImageMagick", "IntervalSets", "LinearAlgebra", "Markdown", "Observables", "Packing", "PlotUtils", "Printf", "Random", "Serialization", "Showoff", "SignedDistanceFields", "StaticArrays", "Statistics", "UnicodeFun"] +git-tree-sha1 = "abb51c89985aea3e6c62cf5534114863e6656078" +repo-rev = "master" +repo-url = "https://github.com/JuliaPlots/AbstractPlotting.jl.git" +uuid = "537997a7-5e4e-5d89-9595-2241ea00577e" +version = "0.9.5" + +[[Arpack]] +deps = ["BinaryProvider", "Libdl", "LinearAlgebra", "Random", "SparseArrays", "Test"] +git-tree-sha1 = "1ce1ce9984683f0b6a587d5bdbc688ecb480096f" +uuid = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97" +version = "0.3.0" + +[[AxisAlgorithms]] +deps = ["Compat", "WoodburyMatrices"] +git-tree-sha1 = "99dabbe853e4f641ab21a676131f2cf9fb29937e" +uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" +version = "0.3.0" + +[[AxisArrays]] +deps = ["Compat", "Dates", "IntervalSets", "IterTools", "Random", "RangeArrays", "Test"] +git-tree-sha1 = "2e2536e9e6f27c4f8d09d8442b61a7ae0b910c28" +uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" +version = "0.3.0" + +[[Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[BinDeps]] +deps = ["Compat", "Libdl", "SHA", "URIParser"] +git-tree-sha1 = "12093ca6cdd0ee547c39b1870e0c9c3f154d9ca9" +uuid = "9e28174c-4ba2-5203-b857-d8d62c4213ee" +version = "0.8.10" + +[[BinaryProvider]] +deps = ["Libdl", "Pkg", "SHA", "Test"] +git-tree-sha1 = "055eb2690182ebc31087859c3dd8598371d3ef9e" +uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232" +version = "0.5.3" + +[[CMake]] +deps = ["BinDeps", "Libdl", "Test"] +git-tree-sha1 = "6e39bef3cbb8321e8a464b18a5c20d7cef813938" +uuid = "631607c0-34d2-5d66-819e-eb0f9aa2061a" +version = "1.1.1" + +[[CMakeWrapper]] +deps = ["BinDeps", "CMake", "Libdl", "Parameters", "Test"] +git-tree-sha1 = "2b43d451639984e3571951cc687b8509b0a86c6d" +uuid = "d5fb7624-851a-54ee-a528-d3f3bac0b4a0" +version = "0.2.2" + +[[CSV]] +deps = ["CategoricalArrays", "DataFrames", "DataStreams", "Dates", "Mmap", "Parsers", "Profile", "Random", "Tables", "Test", "Unicode", "WeakRefStrings"] +git-tree-sha1 = "b92c6f626a044cc9619156d54994b94084d40abe" +uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +version = "0.4.3" + +[[Calculus]] +deps = ["Compat"] +git-tree-sha1 = "f60954495a7afcee4136f78d1d60350abd37a409" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.4.1" + +[[CategoricalArrays]] +deps = ["Compat", "Future", "Missings", "Printf", "Reexport", "Requires"] +git-tree-sha1 = "94d16e77dfacc59f6d6c1361866906dbb65b6f6b" +uuid = "324d7699-5711-5eae-9e2f-1d82baa6b597" +version = "0.5.2" + +[[Clustering]] +deps = ["Dates", "Distances", "LinearAlgebra", "NearestNeighbors", "Printf", "Random", "SparseArrays", "Statistics", "StatsBase", "Test"] +git-tree-sha1 = "c39b2cbf3ee27716f725e358bcb6952f3ac177b3" +uuid = "aaaa29a8-35af-508c-8bc3-b662a17a0fe5" +version = "0.12.2" + +[[CodecZlib]] +deps = ["BinaryProvider", "Libdl", "Test", "TranscodingStreams"] +git-tree-sha1 = "36bbf5374c661054d41410dc53ff752972583b9b" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.5.2" + +[[ColorBrewer]] +deps = ["Colors", "JSON", "Test"] +git-tree-sha1 = "61c5334f33d91e570e1d0c3eb5465835242582c4" +uuid = "a2cac450-b92f-5266-8821-25eda20663c8" +version = "0.4.0" + +[[ColorTypes]] +deps = ["FixedPointNumbers", "Random", "Test"] +git-tree-sha1 = "f73b0e10f2a5756de7019818a41654686da06b09" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.7.5" + +[[ColorVectorSpace]] +deps = ["ColorTypes", "Colors", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "StatsBase", "Test"] +git-tree-sha1 = "a890f08e61b40e9843d7177206da61229a3603c8" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.6.2" + +[[Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "InteractiveUtils", "Printf", "Reexport", "Test"] +git-tree-sha1 = "9f0a0210450acb91c730b730a994f8eef1d3d543" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.9.5" + +[[CommonSubexpressions]] +deps = ["Test"] +git-tree-sha1 = "efdaf19ab11c7889334ca247ff4c9f7c322817b0" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.2.0" + +[[Compat]] +deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] +git-tree-sha1 = "49269e311ffe11ac5b334681d212329002a9832a" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "1.5.1" + +[[Conda]] +deps = ["Compat", "JSON", "VersionParsing"] +git-tree-sha1 = "b625d802587c2150c279a40a646fba63f9bd8187" +uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d" +version = "1.2.0" + +[[Contour]] +deps = ["LinearAlgebra", "StaticArrays", "Test"] +git-tree-sha1 = "b974e164358fea753ef853ce7bad97afec15bb80" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.5.1" + +[[CoordinateTransformations]] +deps = ["Compat", "Rotations", "StaticArrays"] +git-tree-sha1 = "47f05d0b7f4999609f92e657147df000818c1f24" +uuid = "150eb455-5306-5404-9cee-2592286d6298" +version = "0.5.0" + +[[DataFrames]] +deps = ["CategoricalArrays", "CodecZlib", "Compat", "DataStreams", "Dates", "InteractiveUtils", "IteratorInterfaceExtensions", "LinearAlgebra", "Missings", "Printf", "Random", "Reexport", "SortingAlgorithms", "Statistics", "StatsBase", "TableTraits", "Tables", "Test", "TranscodingStreams", "Unicode", "WeakRefStrings"] +git-tree-sha1 = "9cfed75401d25d281076eb5d82de148ac2933f9e" +uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +version = "0.17.1" + +[[DataFramesMeta]] +deps = ["DataFrames", "Random", "Statistics", "Tables", "Test"] +git-tree-sha1 = "853109fcd1ac1a31c4fb757401a25f260e827aa1" +uuid = "1313f7d8-7da2-5740-9ea0-a2ca25f37964" +version = "0.4.1" + +[[DataStreams]] +deps = ["Dates", "Missings", "Test", "WeakRefStrings"] +git-tree-sha1 = "69c72a1beb4fc79490c361635664e13c8e4a9548" +uuid = "9a8bc11e-79be-5b39-94d7-1ccc349a1a85" +version = "0.4.1" + +[[DataStructures]] +deps = ["InteractiveUtils", "OrderedCollections", "Random", "Serialization", "Test"] +git-tree-sha1 = "ca971f03e146cf144a9e2f2ce59674f5bf0e8038" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.15.0" + +[[DataValues]] +deps = ["Dates", "InteractiveUtils", "LinearAlgebra", "Random", "Test"] +git-tree-sha1 = "05e4a87fe52a2af1b4a1ffd3ab2fc996c038b192" +uuid = "e7dc6d0d-1eca-5fa6-8ad6-5aecde8b7ea5" +version = "0.4.7" + +[[Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[DelimitedFiles]] +deps = ["Mmap"] +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" + +[[DiffEqDiffTools]] +deps = ["LinearAlgebra", "Test"] +git-tree-sha1 = "4b21dd83c341412a0607334ac64bb5593a4bd583" +uuid = "01453d9d-ee7c-5054-8395-0335cb756afa" +version = "0.8.0" + +[[DiffResults]] +deps = ["Compat", "StaticArrays"] +git-tree-sha1 = "34a4a1e8be7bc99bc9c611b895b5baf37a80584c" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "0.0.4" + +[[DiffRules]] +deps = ["Random", "Test"] +git-tree-sha1 = "dc0869fb2f5b23466b32ea799bd82c76480167f7" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "0.0.10" + +[[Distances]] +deps = ["LinearAlgebra", "Printf", "Random", "Statistics", "Test"] +git-tree-sha1 = "a135c7c062023051953141da8437ed74f89d767a" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.8.0" + +[[Distributed]] +deps = ["LinearAlgebra", "Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[Distributions]] +deps = ["Distributed", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Test"] +git-tree-sha1 = "c24e9b6500c037673f0241a2783472b8c3d080c7" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.16.4" + +[[FFTW]] +deps = ["AbstractFFTs", "BinaryProvider", "Compat", "Conda", "Libdl", "LinearAlgebra", "Reexport", "Test"] +git-tree-sha1 = "29cda58afbf62f35b1a094882ad6c745a47b2eaa" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "0.2.4" + +[[FileIO]] +deps = ["Pkg", "Random", "Test"] +git-tree-sha1 = "c94b0787956629036fb2b20fccde9e52b89d079a" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.0.5" + +[[FixedPointNumbers]] +deps = ["Test"] +git-tree-sha1 = "b8045033701c3b10bf2324d7203404be7aef88ba" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.5.3" + +[[ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "InteractiveUtils", "LinearAlgebra", "NaNMath", "Random", "SparseArrays", "SpecialFunctions", "StaticArrays", "Test"] +git-tree-sha1 = "4c4d727f1b7e0092134fabfab6396b8945c1ea5b" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.3" + +[[FreeType]] +deps = ["BinaryProvider", "Libdl", "Pkg", "Test"] +git-tree-sha1 = "06462b9d5aca708d764d16e5ba6a83ba7b753d57" +uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" +version = "2.1.1" + +[[FreeTypeAbstraction]] +deps = ["ColorVectorSpace", "Colors", "FreeType", "StaticArrays", "Test"] +git-tree-sha1 = "0128f0469d0ccb97cfaed51e39795ecfac073eb7" +uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" +version = "0.4.2" + +[[Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[GLFW]] +deps = ["BinDeps", "CMakeWrapper", "Homebrew", "Libdl", "Test"] +git-tree-sha1 = "035e2b5e9c335afae1e92ecfe532cf0620da869f" +uuid = "f7f18e0c-5ee9-5ccd-a5bf-e8befd85ed98" +version = "2.3.0" + +[[GLM]] +deps = ["Distributions", "LinearAlgebra", "Printf", "Random", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "StatsModels"] +git-tree-sha1 = "2b65aee2c201ac17a97a285e9bfdcb5026c4e220" +uuid = "38e38edf-8417-5370-95a0-9cbb8c7f171a" +version = "1.1.1" + +[[GLMakie]] +deps = ["AbstractPlotting", "AxisArrays", "ColorBrewer", "ColorTypes", "ColorVectorSpace", "Colors", "Contour", "FileIO", "FixedPointNumbers", "FreeType", "FreeTypeAbstraction", "GLFW", "GeometryTypes", "ImageAxes", "ImageCore", "ImageMagick", "ImageTransformations", "IndirectArrays", "IntervalSets", "IterTools", "LinearAlgebra", "Markdown", "ModernGL", "Observables", "PlotUtils", "Primes", "Printf", "QuartzImageIO", "Serialization", "Showoff", "StaticArrays", "UnicodeFun"] +git-tree-sha1 = "af72a331bfb02fc109a538099b2ccb49ffd677c0" +uuid = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" +version = "0.0.4" + +[[GR]] +deps = ["Base64", "DelimitedFiles", "LinearAlgebra", "Pkg", "Printf", "Random", "Serialization", "Sockets", "Test"] +git-tree-sha1 = "41bd911efffb56957b45366770eaaa443de3f782" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.38.1" + +[[GeometryTypes]] +deps = ["ColorTypes", "FixedPointNumbers", "IterTools", "LinearAlgebra", "StaticArrays", "Test"] +git-tree-sha1 = "28b193e14466beecf928449e0f8505ff6de3709d" +uuid = "4d00f742-c7ba-57c2-abde-4428a4b178cb" +version = "0.7.2" + +[[Graphics]] +deps = ["Colors", "Compat", "NaNMath"] +git-tree-sha1 = "e3ead4211073d4117a0d2ef7d1efc5c8092c8412" +uuid = "a2bd30eb-e257-5431-a919-1863eab51364" +version = "0.4.0" + +[[Homebrew]] +deps = ["BinDeps", "InteractiveUtils", "JSON", "Libdl", "Test", "Unicode"] +git-tree-sha1 = "f01fb2f34675f9839d55ba7238bab63ebd2e531e" +uuid = "d9be37ee-ecc9-5288-90f1-b9ca67657a75" +version = "0.7.1" + +[[IdentityRanges]] +deps = ["OffsetArrays", "Test"] +git-tree-sha1 = "b8c36c6083fd14e2a82c5974225702126e894f23" +uuid = "bbac6d45-d8f3-5730-bfe4-7a449cd117ca" +version = "0.3.0" + +[[ImageAxes]] +deps = ["AxisArrays", "Colors", "FixedPointNumbers", "ImageCore", "MappedArrays", "Reexport", "SimpleTraits", "Test"] +git-tree-sha1 = "5735ec90843acaa67a4624611921c686cdf4efbf" +uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" +version = "0.5.0" + +[[ImageCore]] +deps = ["ColorTypes", "Colors", "FFTW", "FixedPointNumbers", "Graphics", "MappedArrays", "OffsetArrays", "PaddedViews", "Random", "Statistics", "Test"] +git-tree-sha1 = "bd41f7febe7b4d7914c08c5b6d0a69dcd627e3b9" +uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" +version = "0.7.4" + +[[ImageMagick]] +deps = ["BinaryProvider", "ColorTypes", "FileIO", "FixedPointNumbers", "ImageCore", "InteractiveUtils", "Libdl", "Pkg", "Random", "Test"] +git-tree-sha1 = "0e4cc77fb131061b3525a97fd7d483b253c3aaad" +uuid = "6218d12a-5da1-5696-b52f-db25d2ecc6d1" +version = "0.7.1" + +[[ImageTransformations]] +deps = ["AxisAlgorithms", "ColorTypes", "ColorVectorSpace", "Colors", "CoordinateTransformations", "FixedPointNumbers", "IdentityRanges", "ImageCore", "Interpolations", "LinearAlgebra", "OffsetArrays", "StaticArrays", "Test"] +git-tree-sha1 = "e32d38356febdd2ab2cca6a3d14b5e5ffcbfb74c" +uuid = "02fcd773-0e25-5acc-982a-7f6622650795" +version = "0.7.2" + +[[IndirectArrays]] +deps = ["Compat", "Test"] +git-tree-sha1 = "b6e249be10a3381b2c72ac82f2d13d70067cb2bd" +uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" +version = "0.5.0" + +[[InteractiveUtils]] +deps = ["LinearAlgebra", "Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[Interpolations]] +deps = ["AxisAlgorithms", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "SharedArrays", "SparseArrays", "StaticArrays", "Test", "WoodburyMatrices"] +git-tree-sha1 = "e8d1c381b1dc5343e5b6d37265acbe1de493d512" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.11.2" + +[[IntervalSets]] +deps = ["Compat"] +git-tree-sha1 = "9dc556002f23740de13946e8c2e41798e09a9249" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.3.1" + +[[IterTools]] +deps = ["SparseArrays", "Test"] +git-tree-sha1 = "79246285c43602384e6f1943b3554042a3712056" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.1.1" + +[[IterableTables]] +deps = ["DataValues", "IteratorInterfaceExtensions", "Requires", "TableTraits", "TableTraitsUtils", "Test"] +git-tree-sha1 = "0eec91e8185899f3926f56db515559bfe95b9db7" +uuid = "1c8ee90f-4401-5389-894e-7a04a3dc0f4d" +version = "0.10.0" + +[[IteratorInterfaceExtensions]] +deps = ["Test"] +git-tree-sha1 = "5484e5ede2a4137b9643f4d646e8e7b87b794415" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "0.1.1" + +[[JSON]] +deps = ["Dates", "Distributed", "Mmap", "Sockets", "Test", "Unicode"] +git-tree-sha1 = "1f7a25b53ec67f5e9422f1f551ee216503f4a0fa" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.20.0" + +[[KernelDensity]] +deps = ["Distributions", "FFTW", "Interpolations", "Optim", "StatsBase", "Test"] +git-tree-sha1 = "c1048817fe5711f699abc8fabd47b1ac6ba4db04" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.5.1" + +[[LaTeXStrings]] +deps = ["Compat"] +git-tree-sha1 = "7ab9b8788cfab2bdde22adf9004bda7ad9954b6c" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.0.3" + +[[LibGit2]] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf", "Test"] +git-tree-sha1 = "54eb90e8dbe745d617c78dee1d6ae95c7f6f5779" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.0.1" + +[[LinearAlgebra]] +deps = ["Libdl"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[MacroTools]] +deps = ["Compat"] +git-tree-sha1 = "3fd1a3022952128935b449c33552eb65895380c1" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.4.5" + +[[Makie]] +deps = ["AbstractPlotting", "FileIO", "GLMakie", "ImageMagick", "Pkg", "QuartzImageIO"] +git-tree-sha1 = "c5043d8af3d43c7bce365d7287684959ed292e5e" +repo-rev = "master" +repo-url = "https://github.com/JuliaPlots/Makie.jl.git" +uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +version = "0.9.2" + +[[MappedArrays]] +deps = ["Test"] +git-tree-sha1 = "923441c5ac942b60bd3a842d5377d96646bcbf46" +uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" +version = "0.2.1" + +[[Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[Measures]] +deps = ["Test"] +git-tree-sha1 = "ddfd6d13e330beacdde2c80de27c1c671945e7d9" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.0" + +[[Missings]] +deps = ["Dates", "InteractiveUtils", "SparseArrays", "Test"] +git-tree-sha1 = "d1d2585677f2bd93a97cfeb8faa7a0de0f982042" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "0.4.0" + +[[Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[ModernGL]] +deps = ["Libdl"] +git-tree-sha1 = "f4f8fa8d04d3c1e7294f07fc37586c819466ad38" +uuid = "66fc600b-dfda-50eb-8b99-91cfa97b1301" +version = "1.0.0" + +[[NLSolversBase]] +deps = ["Calculus", "DiffEqDiffTools", "DiffResults", "Distributed", "ForwardDiff", "LinearAlgebra", "Random", "SparseArrays", "Test"] +git-tree-sha1 = "0c6f0e7f2178f78239cfb75310359eed10f2cacb" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.3.1" + +[[NaNMath]] +deps = ["Compat"] +git-tree-sha1 = "ce3b85e484a5d4c71dd5316215069311135fa9f2" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "0.3.2" + +[[NearestNeighbors]] +deps = ["Distances", "LinearAlgebra", "Mmap", "StaticArrays", "Test"] +git-tree-sha1 = "f47c5d97cf9a8caefa47e9fa9d99d8fda1a65154" +uuid = "b8a86587-4115-5ab1-83bc-aa920d37bbce" +version = "0.4.3" + +[[Observables]] +deps = ["Test"] +git-tree-sha1 = "dc02cec22747d1d10d9f70d8a1c03432b5bfbcd0" +uuid = "510215fc-4207-5dde-b226-833fc4488ee2" +version = "0.2.3" + +[[OffsetArrays]] +deps = ["DelimitedFiles", "Test"] +git-tree-sha1 = "e6893807f09c1d5517861ded8b203cb96cb7d44a" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "0.10.0" + +[[Optim]] +deps = ["Calculus", "DiffEqDiffTools", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "Random", "SparseArrays", "StatsBase", "Test"] +git-tree-sha1 = "0f2a6c6ff9db396cc7af15bb1cf057a26662ff17" +uuid = "429524aa-4258-5aef-a3af-852621145aeb" +version = "0.17.2" + +[[OrderedCollections]] +deps = ["Random", "Serialization", "Test"] +git-tree-sha1 = "85619a3f3e17bb4761fe1b1fd47f0e979f964d5b" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.0.2" + +[[PDMats]] +deps = ["Arpack", "LinearAlgebra", "SparseArrays", "SuiteSparse", "Test"] +git-tree-sha1 = "b6c91fc0ab970c0563cbbe69af18d741a49ce551" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.9.6" + +[[Packing]] +deps = ["GeometryTypes", "Test"] +git-tree-sha1 = "bc7c284233cf0518933bf9977e3e8234efcc1c30" +uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" +version = "0.3.0" + +[[PaddedViews]] +deps = ["OffsetArrays", "Test"] +git-tree-sha1 = "7da3e7e1a58cffbf10177553ae95f17b92516912" +uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" +version = "0.4.2" + +[[Parameters]] +deps = ["Markdown", "OrderedCollections", "REPL", "Test"] +git-tree-sha1 = "70bdbfb2bceabb15345c0b54be4544813b3444e4" +uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" +version = "0.10.3" + +[[Parsers]] +deps = ["Dates", "Mmap", "Test", "WeakRefStrings"] +git-tree-sha1 = "fa95f29a7dc171e896e6dd74e25dddbccee2e0a5" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "0.2.18" + +[[Pkg]] +deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" + +[[PlotThemes]] +deps = ["PlotUtils", "Requires", "Test"] +git-tree-sha1 = "f3afd2d58e1f6ac9be2cea46e4a9083ccc1d990b" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "0.3.0" + +[[PlotUtils]] +deps = ["Colors", "Dates", "Printf", "Random", "Reexport", "Test"] +git-tree-sha1 = "fd28f30a294a38ec847de95d8ac7ac916ccd7c06" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "0.5.5" + +[[Plots]] +deps = ["Base64", "Contour", "Dates", "FixedPointNumbers", "GR", "JSON", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "Reexport", "Requires", "Showoff", "SparseArrays", "StaticArrays", "Statistics", "StatsBase", "Test", "UUIDs"] +git-tree-sha1 = "c68a9ec8a13a5bdcb85c311378a86b7d7b9b0792" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "0.23.1" + +[[PositiveFactorizations]] +deps = ["LinearAlgebra", "Test"] +git-tree-sha1 = "86ae7329c4b5c266acf5c7c524a972300d991e1c" +uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" +version = "0.2.1" + +[[Primes]] +deps = ["Test"] +git-tree-sha1 = "ff1a2323cb468ec5f201838fcbe3c232266b1f95" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.4.0" + +[[Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[Profile]] +deps = ["Printf"] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" + +[[QuadGK]] +deps = ["DataStructures", "LinearAlgebra", "Test"] +git-tree-sha1 = "3ce467a8e76c6030d4c3786e7d3a73442017cdc0" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.0.3" + +[[QuartzImageIO]] +deps = ["ColorTypes", "ColorVectorSpace", "FileIO", "FixedPointNumbers", "ImageCore", "Libdl", "Random", "Test"] +git-tree-sha1 = "33dccde77cddfbbf3fe9dbf3b92d2459260368fa" +uuid = "dca85d43-d64c-5e67-8c65-017450d5d020" +version = "0.5.2" + +[[REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[Random]] +deps = ["Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[RangeArrays]] +deps = ["Compat"] +git-tree-sha1 = "d925adfd5b01cb46fde89dc9548d167b3b136f4a" +uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" +version = "0.3.1" + +[[Ratios]] +deps = ["Compat"] +git-tree-sha1 = "fd159bead0a24e6270fd0573a340312bd4645cc2" +uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" +version = "0.3.0" + +[[RecipesBase]] +deps = ["Random", "Test"] +git-tree-sha1 = "0b3cb370ee4dc00f47f1193101600949f3dcf884" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "0.6.0" + +[[Reexport]] +deps = ["Pkg"] +git-tree-sha1 = "7b1d07f411bc8ddb7977ec7f377b97b158514fe0" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "0.2.0" + +[[Requires]] +deps = ["Test"] +git-tree-sha1 = "f6fbf4ba64d295e146e49e021207993b6b48c7d1" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "0.5.2" + +[[Rmath]] +deps = ["BinaryProvider", "Libdl", "Random", "Statistics", "Test"] +git-tree-sha1 = "9a6c758cdf73036c3239b0afbea790def1dabff9" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.5.0" + +[[Rotations]] +deps = ["LinearAlgebra", "Random", "StaticArrays", "Statistics", "Test"] +git-tree-sha1 = "dfb3ceb177a59f25fee4e2f26c1aeb92b73d3a0e" +uuid = "6038ab10-8711-5258-84ad-4b1120ba62dc" +version = "0.11.1" + +[[SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" + +[[Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[Showoff]] +deps = ["Compat"] +git-tree-sha1 = "276b24f3ace98bec911be7ff2928d497dc759085" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "0.2.1" + +[[SignedDistanceFields]] +deps = ["Random", "Statistics", "Test"] +git-tree-sha1 = "d263a08ec505853a5ff1c1ebde2070419e3f28e9" +uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" +version = "0.4.0" + +[[SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools", "Test"] +git-tree-sha1 = "c0a542b8d5e369b179ccd296b2ca987f6da5da0a" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.8.0" + +[[Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[SortingAlgorithms]] +deps = ["DataStructures", "Random", "Test"] +git-tree-sha1 = "03f5898c9959f8115e30bc7226ada7d0df554ddd" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "0.3.1" + +[[SparseArrays]] +deps = ["LinearAlgebra", "Random"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[SpecialFunctions]] +deps = ["BinDeps", "BinaryProvider", "Libdl", "Test"] +git-tree-sha1 = "0b45dc2e45ed77f445617b99ff2adf0f5b0f23ea" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "0.7.2" + +[[StaticArrays]] +deps = ["InteractiveUtils", "LinearAlgebra", "Random", "Statistics", "Test"] +git-tree-sha1 = "3841b39ed5f047db1162627bf5f80a9cd3e39ae2" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "0.10.3" + +[[Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[[StatsBase]] +deps = ["DataStructures", "DelimitedFiles", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "Test"] +git-tree-sha1 = "8f68351fc2600bab59e68406b980b13b2100c472" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.28.1" + +[[StatsFuns]] +deps = ["Rmath", "SpecialFunctions", "Test"] +git-tree-sha1 = "b3a4e86aa13c732b8a8c0ba0c3d3264f55e6bb3e" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "0.8.0" + +[[StatsModels]] +deps = ["Compat", "DataFrames", "StatsBase", "Test"] +git-tree-sha1 = "b5a735dcd2be05f0af86709750d4d5f62ca4a25d" +uuid = "3eaba693-59b7-5ba5-a881-562e759f1c8d" +version = "0.5.0" + +[[StatsPlots]] +deps = ["Clustering", "DataStructures", "DataValues", "Distributions", "IterableTables", "KernelDensity", "Observables", "Plots", "RecipesBase", "Reexport", "StatsBase", "TableTraits", "TableTraitsUtils", "Test", "Widgets"] +git-tree-sha1 = "d722a2d4293ded61124654aae6696c68d7946a95" +uuid = "f3b207a7-027a-5e70-b257-86293d7955fd" +version = "0.10.2" + +[[SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[TableTraits]] +deps = ["IteratorInterfaceExtensions", "Test"] +git-tree-sha1 = "eba4b1d0a82bdd773307d652c6e5f8c82104c676" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "0.4.1" + +[[TableTraitsUtils]] +deps = ["DataValues", "IteratorInterfaceExtensions", "Missings", "TableTraits", "Test"] +git-tree-sha1 = "55133a5476b61ec31060e555ffe12da27ac13682" +uuid = "382cd787-c1b6-5bf2-a167-d5b971a19bda" +version = "0.4.0" + +[[Tables]] +deps = ["IteratorInterfaceExtensions", "LinearAlgebra", "Requires", "TableTraits", "Test"] +git-tree-sha1 = "5aa45584645393c1717e0cc1f0362c2ea81470a9" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "0.1.17" + +[[Test]] +deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[TranscodingStreams]] +deps = ["Pkg", "Random", "Test"] +git-tree-sha1 = "8a032ceb5cf7a28bf1bdb77746b250b9e9fda565" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.9.0" + +[[URIParser]] +deps = ["Test", "Unicode"] +git-tree-sha1 = "6ddf8244220dfda2f17539fa8c9de20d6c575b69" +uuid = "30578b45-9adc-5946-b283-645ec420af67" +version = "0.4.0" + +[[UUIDs]] +deps = ["Random"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[UnicodeFun]] +deps = ["Test"] +git-tree-sha1 = "63cbbd00217fc9aafedf055b60459c1ae7e01ecc" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.0" + +[[VersionParsing]] +deps = ["Compat"] +git-tree-sha1 = "c9d5aa108588b978bd859554660c8a5c4f2f7669" +uuid = "81def892-9a0e-5fdd-b105-ffc91e053289" +version = "1.1.3" + +[[WeakRefStrings]] +deps = ["Missings", "Random", "Test"] +git-tree-sha1 = "cf70c71939e621a3fac4156a8bfb3c80d745794a" +uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" +version = "0.5.7" + +[[Widgets]] +deps = ["Colors", "Dates", "Observables", "OrderedCollections", "Test"] +git-tree-sha1 = "f48ee34d9495924aba50eeb328d83b0034b787f5" +uuid = "cc8bc4a8-27d6-5769-a93b-9d913e69aa62" +version = "0.5.0" + +[[WoodburyMatrices]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "Test"] +git-tree-sha1 = "21772c33b447757ec7d3e61fcdfb9ea5c47eedcf" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "0.4.1" diff --git a/Project.toml b/Project.toml new file mode 100644 index 0000000..38a8f92 --- /dev/null +++ b/Project.toml @@ -0,0 +1,18 @@ +name = "Ising" +authors = ["Stephan Kleinboelting "] +version = "0.1.0" + +[deps] +AbstractPlotting = "537997a7-5e4e-5d89-9595-2241ea00577e" +CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +DataFramesMeta = "1313f7d8-7da2-5740-9ea0-a2ca25f37964" +Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" +GLM = "38e38edf-8417-5370-95a0-9cbb8c7f171a" +GeometryTypes = "4d00f742-c7ba-57c2-abde-4428a4b178cb" +LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +Observables = "510215fc-4207-5dde-b226-833fc4488ee2" +Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +StatsPlots = "f3b207a7-027a-5e70-b257-86293d7955fd" diff --git a/README.md b/README.md index 80c3581..d6bd9c9 100644 --- a/README.md +++ b/README.md @@ -2,35 +2,72 @@ This package implements Markov-chain-Monte-Carlo methods (MCMC) to study the equilibrium thermodynamic behavior of the Ising model on a square lattice. Currently it implements the classical Metropolis algorithm as well as Wolff's cluster algorithm. -You'll find a source file with all the simulation routines and a notebook that ties them together into parametric studies, produces nice plots and so on. -Also included is a notebook for visualizing the dynamics See __"Live visualization"__ below. +You'll find a source file with all the simulation routines and a notebook that ties them together into parametric studies, produces nice plots and so on. +To watch the algorithms in action, a visualization app based on [Makie](http://makie.juliaplots.org/stable/index.html) is included. ![visualization](img/window.png) + It is mainly intended for students of statistical physics learning about phase transitions and critical phenomena. -For now the simulation is restricted to a square lattice with constant couplings and external fields. It should however be quite easy to extend the code to cover more general systems. +For now the simulation is restricted to a square lattice with constant couplings and external fields. It should however be easy to extend the code to cover more general systems. -__If you spot an error or are missing a feature, please feel free to open an issue or a pull request!__ +__If you spot an error or miss a feature, please feel free to open an issue or a pull request!__ -## Installation +## Compatibility and Installation +Julia >= 1.0 is required. -### Compatibility -Julia >= 0.6 is required for the simulation and data analysis portion of the notebook. +The simulation routines assembled in `src/mcmc.jl` use base Julia only. -At the moment the live-visualization requires Julia 0.6 and is not (yet) compatible with Julia 0.7. +The analysis notebook utilizes various packages. Install them once with +`]add Plots LaTeXStrings StatsPlots GLM DataFrames DataFramesMeta CSV Distributions` -### Setup +The visualization uses Makie and requires +`]add Makie AbstractPlotting Colors Observables` -Clone the files to your computer -```bash - git clone https://github.com/skleinbo/Ising.git -``` +Clone the repository to your computer +`git clone https://github.com/skleinbo/Ising.git` -The simulation routines assembled in `src/mcmc.jl` use base Julia only. +## Usage +Load the MCMC methods with `include(src/mcmc.jl)`. -If you want to follow along the analysis in the accompanying notebook, a few packages need to be installed. -Run `src/build.jl` once to install any missing packages. +Help is available +```julia +help?> run_metropolis +search: run_metropolis _run_metropolis! -## Usage + run_metropolis(L, beta, h;Tmax=1, sweep=0, sample_interval=1) + + Sets up a random state and runs the Metropolis algorithm for a given set of parameters. Samples in defined intervals along the Markov-Chain. + + An initial thermal sweep to go to equilibrium may be specified. + + Returns an array of averaged observables: [E, E^2, m, m^2, m^4] with total energy E and magnetisation per spin m. + + Arguments + ≡≡≡≡≡≡≡≡≡≡≡ + + • L::Integer: Linear system size + + • beta::Float: Inverse temperature + + • h::Float: External field + + • Tmax::Integer: Number of steps + + • sweep::Integer: Length of the initial sweep + + • sample_interval::Integer: sample interval + + Example + ≡≡≡≡≡≡≡≡≡ + + julia> run_metropolis(50, 0., 0.;Tmax=50*10^3*50^2,sample_interval=10*50^2,sweep=10^3*50^2) + 5-element Array{Float64,1}: + -39.9664 # + 1753.5168 # + 0.010382079999999908 # + 0.00011572633600000021 # + 1.6924325969920386e-8 # +``` Look around the source code to see which methods are available. Here's a minimal example to get you going: @@ -51,11 +88,17 @@ julia> run_metropolis(L, 1/2.26, 0.; Tmax=25*10^3*L^2,sample_interval=10*L^2,swe 1.0010325963705214e-10 ``` -Admittedly the notebook is not that simple to understand if you hadn't had much exposure to Julia and DataFrames. Write your own routines! +Admittedly the notebook may not be simple to understand if you hadn't had much exposure to Julia and DataFrames. And even if, it's not well documentes. __Write your own routines!__ ### Live Visualization -
- -A few more packages are need to give us interactivity and render a scene. They will be installed automatically once you load `src/visualization.jl`. - -If you execute the cells at the end of the notebook in order, two things should happen. You should be presented with three sliders inside the notebook that allow you to control temperature, field strength, and simulation speed. A window should open in which the system is presented as a checker board. +`include("Visual_Ising.jl")` opens a window with sliders and buttons to adjust +parameters on the left, and a depiction of the current state on the right. Zoom in +and out with the mouse wheel. "Speed" +determines how many steps the algorithm takes per frame, i.e a value of `-2.0` means +`1/100*L^2` updates per frame (default: 60fps; change with `BASE_FPS[]=$fps`). + +* _To change the system size (default 128x128):_ `g_L[]=_linear system size_` +* Press p to run/pause the simulation +* Reset the state by pressing r +* Speed up/slow down with = / - (QWERTY layout) +* Reset the view with c diff --git a/Visual_Ising.jl b/Visual_Ising.jl new file mode 100644 index 0000000..f24310f --- /dev/null +++ b/Visual_Ising.jl @@ -0,0 +1,121 @@ +using Makie +using GeometryTypes, AbstractPlotting, Colors +import Observables +using Observables: AbstractObservable, on, off, async_latest + +include("src/mcmc.jl"); +include("src/visualization.jl") + +### GUI +color1 = colorant"black" +color2 = colorant"cornflowerblue" +# s1, g_L = AbstractPlotting.textslider(16:16:512, "L") +s2, g_mult = AbstractPlotting.textslider(-3.0:0.1:+2.0, start=-2.0, "speed [log]") + +s3, g_h = AbstractPlotting.textslider(-5f0:0.1f0:5f0, start=0f0,"field") +s4, g_T = AbstractPlotting.textslider(0f0:0.005f0:5f0, "temperature") + +b1 = AbstractPlotting.button(Theme(raw = true, camera = campixel!),"Pause/Play" ) +b2 = AbstractPlotting.button(Theme(raw = true, camera = campixel!),"Metropolis" ) + +b1_click = on(b1[end][:clicks]) do c + run_signal[] = !run_signal[] +end + +b2_click = on(b2[end][:clicks]) do c + if algorithm[] == :metropolis + algorithm[] = :wolff + b2[end].input_args[end][] = "Wolff" + else + algorithm[] = :metropolis + b2[end].input_args[end][] = "Metropolis" + end +end + +### Logic + +algorithm = Node(:metropolis) + +# Timey-Wimey +frame_node = Node(0) +run_signal = Node(false) +BASE_FPS = Node(60) + + +g_L = Node(128) +# L = async_latest(g_L,1) # + + +positions, square = get_primitives(g_L[]) +config0 = frustratedConfiguration(g_L[]); +cluster = zeros(Bool, g_L[],g_L[]); + +color_node = Node([RGB(0.,0.,0.) for j in 1:g_L[]^2]) + +render_map = lift(run_signal) do rs + global simtask = @async begin + if !rs + @info "Render task ended." + return nothing + end + while run_signal[] + t1 = time() + if algorithm[] == :metropolis + metropolis_sweep!(config0, round(Int,10^g_mult[] * g_L[]^2), 1/g_T.val,g_h.val) + elseif algorithm[] == :wolff + wolff_sweep!(round(Int,10^g_mult[] * g_L[]^2), config0, cluster, 1/g_T[], g_h[]) + end + color_node[] = reshape(color_gen(config0, color1, color2),g_L[]^2) + t2 = time() + if (t2-t1) < 1/BASE_FPS[] + sleep(1/BASE_FPS[] - (t2-t1)) + end + nothing + end + end +end + +init_map = lift(g_L) do L + run_signal[] = false + + global positions,square = get_primitives(L) + global config0 = frustratedConfiguration(L); + global cluster = zeros(Bool, L,L); + + empty!(color_node.listeners) + color_node[] = reshape(color_gen(config0,color1, color2),L^2) + + global state_plot = Makie.meshscatter(reshape(positions,L^2); color=color_node, + markersize=1,marker=GLNormalMesh(square), axis_type=axis2d!, camera=cam2d!, + raw=true, shading=false + ) + # state_plot.attributes[:padding][] = [0f0, 0f0, 0f0] + # cam = cameracontrols(state_plot) + # cam.area[] = HyperRectangle(-1.05f0, -1.05f0, 2.1f0,2.1f0) + state_plot.theme.attributes[:backgroundcolor][] = :gray + update_cam!(state_plot, FRect(-1,-1,2,2)) + state_plot[end][:light] = Vec{3,Float32}[[1.0, 1.0, 1.0], [0.1, 0.1, 0.1], [0.9, 0.9, 0.9], [0.0, 0.0, -20.0]] + + global scene = vbox(hbox(s2,s3,s4,b2,b1),state_plot, parent=Scene(windowtitle="Ising")) + on(scene.events.keyboardbuttons) do buttons + if ispressed(scene, Keyboard.p) + run_signal[] = !run_signal[] + elseif ispressed(scene, Keyboard.c) + update_cam!(state_plot, FRect(-1,-1,2,2)) + elseif ispressed(scene, Keyboard.r) + config0 = frustratedConfiguration(g_L[]); + cluster = zeros(Bool, g_L[],g_L[]); + elseif ispressed(scene, Keyboard.equal) + g_mult[] = min(g_mult[]+0.1, 2.0) + elseif ispressed(scene, Keyboard.minus) + g_mult[] = max(g_mult[]-0.1, -3.0) + end + end + on(scene.events.window_area) do wa + update_cam!(state_plot, FRect(-1,-1,2,2)) + end + display(scene); + # push!(run_signal, true) + nothing +end +# diff --git a/img/slider.png b/img/slider.png deleted file mode 100644 index 423171d..0000000 Binary files a/img/slider.png and /dev/null differ diff --git a/img/window.png b/img/window.png index 32ce5e1..de1ebca 100644 Binary files a/img/window.png and b/img/window.png differ diff --git a/src/build.jl b/src/build.jl deleted file mode 100644 index 7b9734b..0000000 --- a/src/build.jl +++ /dev/null @@ -1,9 +0,0 @@ -for package in ["GLM","Plots","LaTeXStrings", "StatPlots", "DataFrames", "DataFramesMeta","Interact","CSV"] - try - sp = Symbol(package) - @eval import $sp - catch err - info("Package $package not installed. Trying to...") - Pkg.add(package) - end -end diff --git a/src/mcmc.jl b/src/mcmc.jl index 237c1f6..fbc92e8 100644 --- a/src/mcmc.jl +++ b/src/mcmc.jl @@ -71,11 +71,11 @@ function metropolis_step!(state::Matrix{Int8},beta,h) end """ - sweep!(state,n,beta,h) + metropolis_sweep!(state,n,beta,h) Perform n Metropolis steps. """ -function sweep!(state,n,beta,h) +function metropolis_sweep!(state,n,beta,h) for _ in 1:n metropolis_step!(state,beta,h) end @@ -90,7 +90,7 @@ Setup a configuration with `LxL` spins and perform an intial thermal sweep of function init(L,beta,h,sweep) state = randomConfiguration(L) # Initial sweep to get into the steady state - sweep!(state,sweep,beta,h) + metropolis_sweep!(state,sweep,beta,h) return state end @@ -153,7 +153,7 @@ function _run_metropolis!(state::Matrix{Int8},beta,h;Tmax::Int=1,sample_interval while(t