@@ -48,28 +48,28 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
4848 bd_inner = cytnx .Bond (cytnx .BD_KET ,[[0 ],[- 2 ],[2 ],[0 ]],[1 ,1 ,1 ,1 ])
4949 bd_phys = cytnx .Bond (cytnx .BD_KET ,[[1 ],[- 1 ]],[1 ,1 ])
5050
51- M = cytnx .UniTensor ([bd_inner ,bd_inner .redirect (),bd_phys , bd_phys .redirect ()], rowrank = 2 )
51+ M = cytnx .UniTensor ([bd_inner ,bd_inner .redirect (),bd_phys , bd_phys .redirect ()]). set_rowrank_ ( 2 )
5252
5353 # I
54- M .set_elem ([0 ,0 ,0 ,0 ],1 );
55- M .set_elem ([0 ,0 ,1 ,1 ],1 );
56- M .set_elem ([3 ,3 ,0 ,0 ],1 );
57- M .set_elem ([3 ,3 ,1 ,1 ],1 );
54+ M .set_elem ([0 ,0 ,0 ,0 ],1 )
55+ M .set_elem ([0 ,0 ,1 ,1 ],1 )
56+ M .set_elem ([3 ,3 ,0 ,0 ],1 )
57+ M .set_elem ([3 ,3 ,1 ,1 ],1 )
5858
5959 # S-
60- M .set_elem ([0 ,1 ,1 ,0 ],2 ** 0.5 );
60+ M .set_elem ([0 ,1 ,1 ,0 ],2 ** 0.5 )
6161 # S+
62- M .set_elem ([0 ,2 ,0 ,1 ],2 ** 0.5 );
62+ M .set_elem ([0 ,2 ,0 ,1 ],2 ** 0.5 )
6363 # S+
64- M .set_elem ([1 ,3 ,0 ,1 ],2 ** 0.5 );
64+ M .set_elem ([1 ,3 ,0 ,1 ],2 ** 0.5 )
6565 # S-
66- M .set_elem ([2 ,3 ,1 ,0 ],2 ** 0.5 );
66+ M .set_elem ([2 ,3 ,1 ,0 ],2 ** 0.5 )
6767
6868 q = 0 # conserving glb Qn
6969 VbdL = cytnx .Bond (cytnx .BD_KET ,[[0 ]],[1 ])
7070 VbdR = cytnx .Bond (cytnx .BD_KET ,[[q ]],[1 ])
71- L0 = cytnx .UniTensor ([bd_inner .redirect (),VbdL .redirect (),VbdL ], rowrank = 1 ) #Left boundary
72- R0 = cytnx .UniTensor ([bd_inner ,VbdR ,VbdR .redirect ()], rowrank = 1 ) #Right boundary
71+ L0 = cytnx .UniTensor ([bd_inner .redirect (),VbdL .redirect (),VbdL ]). set_rowrank_ ( 1 ) #Left boundary
72+ R0 = cytnx .UniTensor ([bd_inner ,VbdR ,VbdR .redirect ()]). set_rowrank_ ( 1 ) #Right boundary
7373 L0 .set_elem ([0 ,0 ,0 ],1 )
7474 R0 .set_elem ([3 ,0 ,0 ],1 )
7575
@@ -81,21 +81,22 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
8181 cq = - 1
8282 qcntr += cq
8383
84- A [0 ] = cytnx .UniTensor ([VbdL ,bd_phys .redirect (),cytnx .Bond (cytnx .BD_BRA ,[[qcntr ]],[1 ])], rowrank = 2 )
84+ A [0 ] = cytnx .UniTensor ([VbdL ,bd_phys .redirect (),cytnx .Bond (cytnx .BD_BRA ,[[qcntr ]],[1 ])]). set_rowrank_ ( 2 )
8585 A [0 ].get_block_ ()[0 ] = 1
8686
8787 lbls = []
8888 lbls .append (["0" ,"1" ,"2" ]) # store the labels for later convinience.
8989 for k in range (1 ,Nsites ):
90- B1 = A [k - 1 ].bonds ()[2 ].redirect (); B2 = A [k - 1 ].bonds ()[1 ];
90+ B1 = A [k - 1 ].bonds ()[2 ].redirect ()
91+ B2 = A [k - 1 ].bonds ()[1 ]
9192 if qcntr <= q :
9293 cq = 1
9394 else :
9495 cq = - 1
9596 qcntr += cq
9697 B3 = cytnx .Bond (cytnx .BD_BRA ,[[qcntr ]],[1 ])
9798
98- A [k ] = cytnx .UniTensor ([B1 ,B2 ,B3 ], rowrank = 2 )
99+ A [k ] = cytnx .UniTensor ([B1 ,B2 ,B3 ]). set_rowrank_ ( 2 )
99100
100101 lbl = [str (2 * k ),str (2 * k + 1 ),str (2 * k + 2 )]
101102 A [k ].set_labels (lbl )
@@ -131,12 +132,12 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
131132
132133 psi .set_rowrank_ (2 ) # maintain rowrank to perform the svd
133134 s ,A [p ],A [p + 1 ] = cytnx .linalg .Svd_truncate (psi ,new_dim )
134- A [p + 1 ].relabels_ (lbls [p + 1 ]); # set the label back to be consistent
135+ A [p + 1 ].relabels_ (lbls [p + 1 ]) # set the label back to be consistent
135136
136137 s = s / s .Norm ().item () # normalize s
137138
138139 A [p ] = cytnx .Contract (A [p ],s ) # absorb s into next neighbor
139- A [p ].relabels_ (lbls [p ]); # set the label back to be consistent
140+ A [p ].relabels_ (lbls [p ]) # set the label back to be consistent
140141
141142 # update LR from right to left:
142143 anet = cytnx .Network ()
@@ -152,7 +153,7 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
152153
153154 A [0 ].set_rowrank_ (1 )
154155 _ ,A [0 ] = cytnx .linalg .Gesvd (A [0 ],is_U = False , is_vT = True )
155- A [0 ].relabels_ (lbls [0 ]); #set the label back to be consistent
156+ A [0 ].relabels_ (lbls [0 ]) #set the label back to be consistent
156157
157158 for p in range (Nsites - 1 ):
158159 dim_l = A [p ].shape ()[0 ]
@@ -165,12 +166,12 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
165166
166167 psi .set_rowrank_ (2 ) # maintain rowrank to perform the svd
167168 s ,A [p ],A [p + 1 ] = cytnx .linalg .Svd_truncate (psi ,new_dim )
168- A [p ].relabels_ (lbls [p ]); #set the label back to be consistent
169+ A [p ].relabels_ (lbls [p ]) #set the label back to be consistent
169170
170171 s = s / s .Norm ().item () # normalize s
171172
172173 A [p + 1 ] = cytnx .Contract (s ,A [p + 1 ]) ## absorb s into next neighbor.
173- A [p + 1 ].relabels_ (lbls [p + 1 ]); #set the label back to be consistent
174+ A [p + 1 ].relabels_ (lbls [p + 1 ]) #set the label back to be consistent
174175
175176 # update LR from left to right:
176177 anet = cytnx .Network ()
@@ -186,7 +187,7 @@ def optimize_psi(psi, functArgs, maxit=2, krydim=4):
186187
187188 A [- 1 ].set_rowrank_ (2 )
188189 _ ,A [- 1 ] = cytnx .linalg .Gesvd (A [- 1 ],is_U = True ,is_vT = False ) ## last one.
189- A [- 1 ].relabels_ (lbls [- 1 ]); #set the label back to be consistent
190+ A [- 1 ].relabels_ (lbls [- 1 ]) #set the label back to be consistent
190191
191192 return Ekeep
192193
0 commit comments