@@ -21,33 +21,32 @@ This package is a work in progress. Here are some examples of the interface:
21
21
julia> using ITensors, ITensorMPS, ITensorInfiniteMPS
22
22
23
23
julia> 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" )
28
28
29
29
julia> ψ = InfiniteMPS (s) # Infinite MPS with 3-site unit cell
30
30
InfiniteMPS
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" ))
35
34
36
35
julia> ψ[2 ] == replacetags (ψ[5 ], " c=2" => " c=1" ) # Indexing outside of the unit cell gets tensors from other unit cells
37
36
true
38
37
39
38
julia> ψ₁ = ψ[1 : 3 ] # Create a finite MPS from the tensors of the first unit cell
40
39
MPS
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" ) )
44
43
45
44
46
45
julia> ψ₂ = ψ[4 : 6 ] # Create a finite MPS from the tensors of the second unit cell
47
46
MPS
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" ) )
51
50
```
52
51
Useful operations like gauging and optimization are in progress, so stay tuned!
53
52
0 commit comments