Skip to content

WIP Unitcell #8

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 43 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
0db90c3
Implement differentiable trg using einsum and Zygote
under-Peter Jun 5, 2019
14d218b
add more tests about result
GiggleLiu Jun 6, 2019
88a0991
add the basic CTMRG system test
GiggleLiu Jun 6, 2019
22d29cc
Add manifest.toml to check whether tests pass
under-Peter Jun 6, 2019
652d8ba
Change repository URLs to maybe get travis to pass
under-Peter Jun 6, 2019
dc8931c
Update LinalgBackwards for julia 1.0 compatibility
under-Peter Jun 6, 2019
1f4f70b
Working draft of ctmrg
under-Peter Jun 10, 2019
53fc5bf
Test ctmrg by comparing with analytical results
under-Peter Jun 10, 2019
9e93c77
Fix AD in ctmrg
under-Peter Jun 11, 2019
af67a99
Change to BackwardsLinalg
under-Peter Jun 17, 2019
cacc354
Fix ctmrg test due to using isapprox with 0
under-Peter Jun 17, 2019
72c7192
Update package dependencies
under-Peter Jun 21, 2019
a76f540
Integrate with OMEinsum
under-Peter Jun 21, 2019
296e3b7
Merge branch 'trg' into ctmrg
under-Peter Jun 21, 2019
aa22bf9
Change to string-specification
under-Peter Jun 21, 2019
a02bc40
Remove custom einsum in favor of OMEinsum
under-Peter Jun 22, 2019
f363a87
Move ising-stuff to its own folder and fix general things
under-Peter Jun 22, 2019
1be274d
Rename variables and clean up in trg
under-Peter Jun 22, 2019
49d7816
Add trg argument `tol` and use OMEinsum v0.1
under-Peter Jun 25, 2019
6297888
Fix AD
under-Peter Jun 25, 2019
1331222
Implement and test gradient based energy minimisation
under-Peter Jun 26, 2019
abd5af4
Add progressmeter for information during runtest
under-Peter Jun 26, 2019
978150b
Implement and test variationalipeps for tfising model
under-Peter Jun 27, 2019
ff0cf33
Implement and test variationalpeps for heisenberg model
under-Peter Jun 27, 2019
7d0145d
Fix random seed for tests to pass
under-Peter Jun 27, 2019
dbc3ea4
Improve progressmeter
under-Peter Jun 28, 2019
c8caad6
Add tests for rotational symmetry functions and gradient
under-Peter Jul 2, 2019
cb934e8
Add progressmeter and gradient-tests (currently broken)
under-Peter Jul 2, 2019
3c72c63
Seed random for gradient-check to pass
under-Peter Jul 2, 2019
3689f04
Calculate lnZ per site directly to avoid exponential growth of value
under-Peter Jul 3, 2019
282fb9a
Provide keyword-arg to forward options to optimize
under-Peter Jul 4, 2019
4448e0b
Add option to change method of optimiseipeps
under-Peter Jul 4, 2019
e24b2fb
Change defaults, improve tests
under-Peter Jul 5, 2019
58778fb
Introduce random and nonrandom initial condition for ctmrg
under-Peter Jul 9, 2019
fc150d8
Fix test
under-Peter Jul 9, 2019
968a332
Change ctmrg to use a fixedpoint interface
under-Peter Jul 10, 2019
382ac87
Change to pairwise contractions
under-Peter Jul 18, 2019
eac4cbf
Implement custom fixed-point-method backpropagation for ctmrg
under-Peter Jul 19, 2019
bcf7bc0
Remove tests of removed function
under-Peter Jul 19, 2019
9a4ed97
Fix tests
under-Peter Jul 19, 2019
10d0e59
Minor fixes for potential complex inputs
under-Peter Jul 22, 2019
f290163
Get complex tensors to work
under-Peter Jul 25, 2019
f21532e
WIP start implementation
under-Peter Jul 30, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
198 changes: 159 additions & 39 deletions Manifest.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# This file is machine-generated - editing it directly is not advised

[[AbstractFFTs]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "380e36c66edfa099cd90116b24c1ce8cafccac40"
uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c"
version = "0.4.1"

[[BackwardsLinalg]]
deps = ["LinearAlgebra", "Random", "Requires", "Zygote"]
path = "/home/andreas/.julia/dev/BackwardsLinalg"
uuid = "442b4e1a-8b9d-11e9-03b0-f14b31742153"
version = "0.1.0"

[[Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"

Expand All @@ -16,16 +28,28 @@ uuid = "9e28174c-4ba2-5203-b857-d8d62c4213ee"
version = "0.8.10"

[[BinaryProvider]]
deps = ["Libdl", "SHA"]
deps = ["Libdl", "Logging", "SHA"]
git-tree-sha1 = "c7361ce8a2129f20b0e05a89f7070820cfed6648"
uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232"
version = "0.5.4"
version = "0.5.6"

[[CSTParser]]
deps = ["LibGit2", "Test", "Tokenize"]
git-tree-sha1 = "437c93bc191cd55957b3f8dee7794b6131997c56"
deps = ["Tokenize"]
git-tree-sha1 = "0ff80f68f55fcde2ed98d7b24d7abaf20727f3f8"
uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f"
version = "0.5.2"
version = "0.6.1"

[[Calculus]]
deps = ["Compat"]
git-tree-sha1 = "f60954495a7afcee4136f78d1d60350abd37a409"
uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9"
version = "0.4.1"

[[Combinatorics]]
deps = ["LinearAlgebra", "Polynomials", "Test"]
git-tree-sha1 = "50b3ae4d643dc27eaff69fb6be06ee094d5500c9"
uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa"
version = "0.7.0"

[[CommonSubexpressions]]
deps = ["Test"]
Expand All @@ -39,17 +63,23 @@ git-tree-sha1 = "84aa74986c5b9b898b0d1acaf3258741ee64754f"
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
version = "2.1.0"

[[Conda]]
deps = ["JSON", "VersionParsing"]
git-tree-sha1 = "9a11d428dcdc425072af4aea19ab1e8c3e01c032"
uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d"
version = "1.3.0"

[[Crayons]]
deps = ["Test"]
git-tree-sha1 = "f621b8ef51fd2004c7cf157ea47f027fdeac5523"
uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f"
version = "4.0.0"

[[DataStructures]]
deps = ["InteractiveUtils", "OrderedCollections", "Random", "Serialization", "Test"]
git-tree-sha1 = "ca971f03e146cf144a9e2f2ce59674f5bf0e8038"
deps = ["InteractiveUtils", "OrderedCollections"]
git-tree-sha1 = "0809951a1774dc724da22d26e4289bbaab77809a"
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
version = "0.15.0"
version = "0.17.0"

[[Dates]]
deps = ["Printf"]
Expand All @@ -59,6 +89,12 @@ uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
deps = ["Mmap"]
uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab"

[[DiffEqDiffTools]]
deps = ["LinearAlgebra", "SparseArrays", "StaticArrays"]
git-tree-sha1 = "b992345a39b4d9681342ae795a8dacc100730182"
uuid = "01453d9d-ee7c-5054-8395-0335cb756afa"
version = "0.14.0"

[[DiffResults]]
deps = ["Compat", "StaticArrays"]
git-tree-sha1 = "34a4a1e8be7bc99bc9c611b895b5baf37a80584c"
Expand All @@ -75,6 +111,12 @@ version = "0.0.10"
deps = ["Random", "Serialization", "Sockets"]
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"

[[FFTW]]
deps = ["AbstractFFTs", "BinaryProvider", "Compat", "Conda", "Libdl", "LinearAlgebra", "Reexport", "Test"]
git-tree-sha1 = "29cda58afbf62f35b1a094882ad6c745a47b2eaa"
uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341"
version = "0.2.4"

[[FillArrays]]
deps = ["LinearAlgebra", "Random", "SparseArrays", "Test"]
git-tree-sha1 = "9ab8f76758cbabba8d7f103c51dce7f73fcf8e92"
Expand All @@ -89,35 +131,38 @@ version = "0.10.3"

[[IRTools]]
deps = ["InteractiveUtils", "MacroTools", "Test"]
git-tree-sha1 = "4d0c6647aa89b3678d03967ca11c8a5cdc83d2b5"
git-tree-sha1 = "41a26a81a043808a5eb7da44a2f9ef86ec7ed905"
repo-rev = "master"
repo-url = "https://github.com/MikeInnes/IRTools.jl.git"
uuid = "7869d1d1-7146-5819-86e3-90919afe41df"
version = "0.2.1"
version = "0.2.2"

[[InteractiveUtils]]
deps = ["Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"

[[IterTools]]
git-tree-sha1 = "2ebe60d7343962966d1779a74a760f13217a6901"
uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e"
version = "1.2.0"

[[JSON]]
deps = ["Dates", "Distributed", "Mmap", "Sockets", "Test", "Unicode"]
git-tree-sha1 = "1f7a25b53ec67f5e9422f1f551ee216503f4a0fa"
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
git-tree-sha1 = "b34d7cef7b337321e97d22242c3c2b91f476748e"
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
version = "0.20.0"
version = "0.21.0"

[[LibGit2]]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"

[[Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"

[[LinalgBackwards]]
deps = ["LinearAlgebra", "Random", "Zygote"]
git-tree-sha1 = "fed67af4bbc3cb33f287bc2673366774ba4cf589"
repo-rev = "master"
repo-url = "https://github.com/GiggleLiu/LinalgBackwards.jl.git"
uuid = "8dad3b0d-1a4d-5faa-9471-8c404674cf7c"
version = "0.1.1"
[[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"]
Expand All @@ -127,18 +172,30 @@ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"

[[MacroTools]]
deps = ["CSTParser", "Compat", "DataStructures", "Test"]
git-tree-sha1 = "daecd9e452f38297c686eba90dba2a6d5da52162"
deps = ["CSTParser", "Compat", "DataStructures", "Test", "Tokenize"]
git-tree-sha1 = "d6e9dedb8c92c3465575442da456aec15a89ff76"
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
version = "0.5.0"
version = "0.5.1"

[[Markdown]]
deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"

[[Missings]]
deps = ["SparseArrays", "Test"]
git-tree-sha1 = "f0719736664b4358aa9ec173077d4285775f8007"
uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28"
version = "0.4.1"

[[Mmap]]
uuid = "a63ad114-7e13-5084-954f-fe012c677804"

[[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"

[[NNlib]]
deps = ["Libdl", "LinearAlgebra", "Requires", "Statistics", "TimerOutputs"]
git-tree-sha1 = "0c667371391fc6bb31f7f12f96a56a17098b3de8"
Expand All @@ -152,38 +209,66 @@ uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
version = "0.3.2"

[[OMEinsum]]
deps = ["IRTools", "PkgBenchmark", "TupleTools", "Zygote"]
git-tree-sha1 = "7689a992f08f32ec5db07067939bccbc7389e846"
repo-rev = "master"
repo-url = "https://github.com/under-Peter/OMEinsum.jl.git"
deps = ["Combinatorics", "IRTools", "PkgBenchmark", "TensorOperations", "TupleTools", "Zygote"]
git-tree-sha1 = "4f315c18035bd8d9cf38abc522302d9077f4cac3"
uuid = "ebe7aa44-baf0-506c-a96f-8464559b3922"
version = "0.1.0"

[[Optim]]
deps = ["Calculus", "DiffEqDiffTools", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "Random", "SparseArrays", "StatsBase"]
git-tree-sha1 = "05efd63b639afdd3425909cd3af73fe9c1373cf3"
uuid = "429524aa-4258-5aef-a3af-852621145aeb"
version = "0.19.1"

[[OrderedCollections]]
deps = ["Random", "Serialization", "Test"]
git-tree-sha1 = "c4c13474d23c60d20a67b217f1d7f22a40edf8f1"
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
version = "1.1.0"

[[Parameters]]
deps = ["Markdown", "OrderedCollections", "REPL", "Test"]
git-tree-sha1 = "70bdbfb2bceabb15345c0b54be4544813b3444e4"
uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a"
version = "0.10.3"

[[Parsers]]
deps = ["Dates", "Test"]
git-tree-sha1 = "db2b35dedab3c0e46dc15996d170af07a5ab91c9"
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
version = "0.3.6"

[[Pkg]]
deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"

[[PkgBenchmark]]
deps = ["BenchmarkTools", "Dates", "InteractiveUtils", "JSON", "LibGit2", "Pkg", "Printf", "ProgressMeter", "Random", "Statistics", "Test"]
git-tree-sha1 = "cf641fb115ca4c97ce0a20bdddc3ba973724c61e"
deps = ["BenchmarkTools", "Dates", "InteractiveUtils", "JSON", "LibGit2", "Pkg", "Printf", "ProgressMeter"]
git-tree-sha1 = "6ec2e9ab9f35005bf73704ca48ccda0c963b0a68"
uuid = "32113eaa-f34f-5b0d-bd6c-c81e245fc73d"
version = "0.2.1"
version = "0.2.2"

[[Polynomials]]
deps = ["LinearAlgebra", "SparseArrays", "Test"]
git-tree-sha1 = "62142bd65d3f8aeb2226ec64dd8493349147df94"
uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45"
version = "0.5.2"

[[PositiveFactorizations]]
deps = ["LinearAlgebra", "Test"]
git-tree-sha1 = "957c3dd7c33895469760ce873082fbb6b3620641"
uuid = "85a6dd25-e78a-55b7-8502-1745935b8125"
version = "0.2.2"

[[Printf]]
deps = ["Unicode"]
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"

[[ProgressMeter]]
deps = ["Distributed", "Printf", "Random", "Test"]
git-tree-sha1 = "48058bc11607676e5bbc0b974af79106c6200787"
deps = ["Distributed", "Printf"]
git-tree-sha1 = "0f08e0e74e5b160ca20d3962a2620038b75881c7"
uuid = "92933f4c-e287-5a05-a399-4b506db050ca"
version = "0.9.0"
version = "1.0.0"

[[REPL]]
deps = ["InteractiveUtils", "Markdown", "Sockets"]
Expand All @@ -193,6 +278,12 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
deps = ["Serialization"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"

[[Reexport]]
deps = ["Pkg"]
git-tree-sha1 = "7b1d07f411bc8ddb7977ec7f377b97b158514fe0"
uuid = "189a3867-3050-52da-a836-e630ba90ab69"
version = "0.2.0"

[[Requires]]
deps = ["Test"]
git-tree-sha1 = "f6fbf4ba64d295e146e49e021207993b6b48c7d1"
Expand All @@ -212,6 +303,12 @@ uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383"
[[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"
Expand All @@ -232,6 +329,24 @@ version = "0.11.0"
deps = ["LinearAlgebra", "SparseArrays"]
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"

[[StatsBase]]
deps = ["DataStructures", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics"]
git-tree-sha1 = "2b6ca97be7ddfad5d9f16a13fe277d29f3d11c23"
uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
version = "0.31.0"

[[Strided]]
deps = ["LinearAlgebra", "TupleTools"]
git-tree-sha1 = "b929f81ca5e78362a4c1e935bb5e7bee27dc2279"
uuid = "5e0ebb24-38b0-5f93-81fe-25c709ecae67"
version = "0.3.1"

[[TensorOperations]]
deps = ["LinearAlgebra", "Strided", "TupleTools"]
git-tree-sha1 = "2804781ab5e899a0e4c61a4d655e4dea88553710"
uuid = "6aa20fa7-93e2-5fca-9bc0-fbd0db3c71a2"
version = "1.1.0"

[[Test]]
deps = ["Distributed", "InteractiveUtils", "Logging", "Random"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Expand All @@ -243,10 +358,9 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"
version = "0.5.0"

[[Tokenize]]
deps = ["Printf", "Test"]
git-tree-sha1 = "3e83f60b74911d3042d3550884ca2776386a02b8"
git-tree-sha1 = "c8a8b00ae44a94950814ff77850470711a360225"
uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624"
version = "0.5.3"
version = "0.5.5"

[[TupleTools]]
deps = ["Random", "Test"]
Expand All @@ -267,10 +381,16 @@ uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
[[Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"

[[VersionParsing]]
deps = ["Compat"]
git-tree-sha1 = "c9d5aa108588b978bd859554660c8a5c4f2f7669"
uuid = "81def892-9a0e-5fdd-b105-ffc91e053289"
version = "1.1.3"

[[Zygote]]
deps = ["DiffRules", "FillArrays", "ForwardDiff", "IRTools", "InteractiveUtils", "LinearAlgebra", "MacroTools", "NNlib", "NaNMath", "Random", "Requires", "SpecialFunctions", "Statistics"]
git-tree-sha1 = "4b9c0799b296c73b60397ed167b6455c31820d06"
deps = ["DiffRules", "FFTW", "FillArrays", "ForwardDiff", "IRTools", "InteractiveUtils", "LinearAlgebra", "MacroTools", "NNlib", "NaNMath", "Random", "Requires", "SpecialFunctions", "Statistics"]
git-tree-sha1 = "3e024f0c5e23c37206418fac6343c149604124d0"
repo-rev = "master"
repo-url = "https://github.com/FluxML/Zygote.jl.git"
uuid = "e88e6eb3-aa80-5325-afca-941959d7151f"
version = "0.3.1"
version = "0.3.2"
8 changes: 7 additions & 1 deletion Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,15 @@ authors = ["Andreas Peter <andreas.peter.ch@gmail.com>"]
version = "0.1.0"

[deps]
BackwardsLinalg = "442b4e1a-8b9d-11e9-03b0-f14b31742153"
IRTools = "7869d1d1-7146-5819-86e3-90919afe41df"
LinalgBackwards = "8dad3b0d-1a4d-5faa-9471-8c404674cf7c"
IterTools = "c8e1da08-722c-5040-9ed9-7db0dc04731e"
LineSearches = "d3d80556-e9d4-5f37-9878-2ab0fcc64255"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
OMEinsum = "ebe7aa44-baf0-506c-a96f-8464559b3922"
Optim = "429524aa-4258-5aef-a3af-852621145aeb"
ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
TupleTools = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6"
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"

Expand Down
10 changes: 8 additions & 2 deletions src/TensorNetworkAD.jl
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
module TensorNetworkAD
using Zygote, LinalgBackwards
using Zygote, BackwardsLinalg
using OMEinsum

export trg, num_grad
export ctmrg
export optimiseipeps
export heisenberghamiltonian, isinghamiltonian, isingtensor

include("einsum.jl")
include("trg.jl")
include("fixedpoint.jl")
include("ctmrg.jl")
include("autodiff.jl")
include("variationalipeps.jl")
include("exampletensors.jl")

end # module
Loading