@@ -21,33 +21,32 @@ This package is a work in progress. Here are some examples of the interface:
2121julia> using ITensors, ITensorMPS, ITensorInfiniteMPS
2222
2323julia> s = siteinds (" S=1/2" , 3 )
24- 3 - element Array {Index{Int64}, 1 }:
25- (dim= 2 | id= 652 | " S=1/2,Site,n=1" )
26- (dim= 2 | id= 984 | " S=1/2,Site,n=2" )
27- (dim= 2 | id= 569 | " S=1/2,Site,n=3" )
24+ 3 - element Vector {Index{Int64}}:
25+ (dim= 2 | id= 988 | " S=1/2,Site,n=1" )
26+ (dim= 2 | id= 220 | " S=1/2,Site,n=2" )
27+ (dim= 2 | id= 650 | " S=1/2,Site,n=3" )
2828
2929julia> ψ = InfiniteMPS (s) # Infinite MPS with 3-site unit cell
3030InfiniteMPS
31- [1 ] IndexSet{3 } (dim= 1 | id= 317 | " Link,c=0,l=3" ) (dim= 2 | id= 652 | " S=1/2,Site,c=1,n=1" ) (dim= 1 | id= 77 | " Link,c=1,l=1" )
32- [2 ] IndexSet{3 } (dim= 1 | id= 77 | " Link,c=1,l=1" ) (dim= 2 | id= 984 | " S=1/2,Site,c=1,n=2" ) (dim= 1 | id= 868 | " Link,c=1,l=2" )
33- [3 ] IndexSet{3 } (dim= 1 | id= 868 | " Link,c=1,l=2" ) (dim= 2 | id= 569 | " S=1/2,Site,c=1,n=3" ) (dim= 1 | id= 317 | " Link,c=1,l=3" )
34-
31+ [1 ] ((dim= 1 | id= 108 | " Link,c=0,l=3" ), (dim= 2 | id= 988 | " S=1/2,Site,c=1,n=1" ), (dim= 1 | id= 112 | " Link,c=1,l=1" ))
32+ [2 ] ((dim= 1 | id= 112 | " Link,c=1,l=1" ), (dim= 2 | id= 220 | " S=1/2,Site,c=1,n=2" ), (dim= 1 | id= 429 | " Link,c=1,l=2" ))
33+ [3 ] ((dim= 1 | id= 429 | " Link,c=1,l=2" ), (dim= 2 | id= 650 | " S=1/2,Site,c=1,n=3" ), (dim= 1 | id= 108 | " Link,c=1,l=3" ))
3534
3635julia> ψ[2 ] == replacetags (ψ[5 ], " c=2" => " c=1" ) # Indexing outside of the unit cell gets tensors from other unit cells
3736true
3837
3938julia> ψ₁ = ψ[1 : 3 ] # Create a finite MPS from the tensors of the first unit cell
4039MPS
41- [1 ] IndexSet{ 3 } ( dim= 1 | id= 317 | " Link,c=0,l=3" ) (dim= 2 | id= 652 | " S=1/2,Site,c=1,n=1" ) (dim= 1 | id= 77 | " Link,c=1,l=1" )
42- [2 ] IndexSet{ 3 } ( dim= 1 | id= 77 | " Link,c=1,l=1" ) (dim= 2 | id= 984 | " S=1/2,Site,c=1,n=2" ) (dim= 1 | id= 868 | " Link,c=1,l=2" )
43- [3 ] IndexSet{ 3 } ( dim= 1 | id= 868 | " Link,c=1,l=2" ) (dim= 2 | id= 569 | " S=1/2,Site,c=1,n=3" ) (dim= 1 | id= 317 | " Link,c=1,l=3" )
40+ [1 ] (( dim= 1 | id= 108 | " Link,c=0,l=3" ), (dim= 2 | id= 988 | " S=1/2,Site,c=1,n=1" ), (dim= 1 | id= 112 | " Link,c=1,l=1" ) )
41+ [2 ] (( dim= 1 | id= 112 | " Link,c=1,l=1" ), (dim= 2 | id= 220 | " S=1/2,Site,c=1,n=2" ), (dim= 1 | id= 429 | " Link,c=1,l=2" ) )
42+ [3 ] (( dim= 1 | id= 429 | " Link,c=1,l=2" ), (dim= 2 | id= 650 | " S=1/2,Site,c=1,n=3" ), (dim= 1 | id= 108 | " Link,c=1,l=3" ) )
4443
4544
4645julia> ψ₂ = ψ[4 : 6 ] # Create a finite MPS from the tensors of the second unit cell
4746MPS
48- [1 ] IndexSet{ 3 } ( dim= 1 | id= 317 | " Link,c=1,l=3" ) (dim= 2 | id= 652 | " S=1/2,Site,c=2,n=1" ) (dim= 1 | id= 77 | " Link,c=2,l=1" )
49- [2 ] IndexSet{ 3 } ( dim= 1 | id= 77 | " Link,c=2,l=1" ) (dim= 2 | id= 984 | " S=1/2,Site,c=2,n=2" ) (dim= 1 | id= 868 | " Link,c=2,l=2" )
50- [3 ] IndexSet{ 3 } ( dim= 1 | id= 868 | " Link,c=2,l=2" ) (dim= 2 | id= 569 | " S=1/2,Site,c=2,n=3" ) (dim= 1 | id= 317 | " Link,c=2,l=3" )
47+ [1 ] (( dim= 1 | id= 108 | " Link,c=1,l=3" ), (dim= 2 | id= 988 | " S=1/2,Site,c=2,n=1" ), (dim= 1 | id= 112 | " Link,c=2,l=1" ) )
48+ [2 ] (( dim= 1 | id= 112 | " Link,c=2,l=1" ), (dim= 2 | id= 220 | " S=1/2,Site,c=2,n=2" ), (dim= 1 | id= 429 | " Link,c=2,l=2" ) )
49+ [3 ] (( dim= 1 | id= 429 | " Link,c=2,l=2" ), (dim= 2 | id= 650 | " S=1/2,Site,c=2,n=3" ), (dim= 1 | id= 108 | " Link,c=2,l=3" ) )
5150```
5251Useful operations like gauging and optimization are in progress, so stay tuned!
5352
0 commit comments