@@ -411,16 +411,6 @@ def do_absorption_step_triangular(
411411
412412 smallest_S_list .append (smallest_S_T )
413413
414- proj_30 , proj_150 , proj_270 , smallest_S_T = calc_T_30_150_270_projectors (
415- * _get_triangular_ctmrg_2x2_structure (peps_tensors , view ), config , state
416- )
417-
418- T_30_projectors [(x , y )] = proj_30
419- T_150_projectors [(x , y )] = proj_150
420- T_270_projectors [(x , y )] = proj_270
421-
422- smallest_S_list .append (smallest_S_T )
423-
424414 for x , iter_rows in working_unitcell .iter_all_rows (only_unique = True ):
425415 for y , view in iter_rows :
426416 new_t = view [0 , 0 ][0 ][0 ].copy ()
@@ -442,69 +432,87 @@ def do_absorption_step_triangular(
442432 config ,
443433 )
444434
445- new_t .T2a = _post_process_CTM_tensors (
435+ new_t .T3a = _post_process_CTM_tensors (
446436 jnp .tensordot (
447- T_30_projectors .get_projector (x , y , - 1 , - 1 )[0 ],
448- new_t .T2a ,
437+ T_330_projectors .get_projector (x , y , - 1 , 0 )[0 ],
438+ new_t .T3a ,
449439 ((1 ,), (0 ,)),
450440 ),
451441 config ,
452442 )
453- new_t .T2b = _post_process_CTM_tensors (
443+ new_t .T3b = _post_process_CTM_tensors (
454444 jnp .tensordot (
455- new_t .T2b ,
456- T_30_projectors .get_projector (x , y , 0 , 0 )[1 ],
445+ new_t .T3b ,
446+ T_330_projectors .get_projector (x , y , 0 , 0 )[1 ],
457447 ((3 ,), (0 ,)),
458448 ),
459449 config ,
460450 )
461451
462- new_t .T3a = _post_process_CTM_tensors (
452+ new_t .T5a = _post_process_CTM_tensors (
463453 jnp .tensordot (
464- T_330_projectors .get_projector (x , y , - 1 , 0 )[0 ],
465- new_t .T3a ,
454+ T_210_projectors .get_projector (x , y , 0 , 0 )[0 ],
455+ new_t .T5a ,
466456 ((1 ,), (0 ,)),
467457 ),
468458 config ,
469459 )
470- new_t .T3b = _post_process_CTM_tensors (
460+ new_t .T5b = _post_process_CTM_tensors (
471461 jnp .tensordot (
472- new_t .T3b ,
473- T_330_projectors .get_projector (x , y , 0 , 0 )[1 ],
462+ new_t .T5b ,
463+ T_210_projectors .get_projector (x , y , - 1 , - 1 )[1 ],
474464 ((3 ,), (0 ,)),
475465 ),
476466 config ,
477467 )
478468
479- new_t .T4a = _post_process_CTM_tensors (
469+ view [0 , 0 ] = new_t
470+
471+ for x , iter_rows in working_unitcell .iter_all_rows (only_unique = True ):
472+ for y , view in iter_rows :
473+ proj_30 , proj_150 , proj_270 , smallest_S_T = calc_T_30_150_270_projectors (
474+ * _get_triangular_ctmrg_2x2_structure (peps_tensors , view ), config , state
475+ )
476+
477+ T_30_projectors [(x , y )] = proj_30
478+ T_150_projectors [(x , y )] = proj_150
479+ T_270_projectors [(x , y )] = proj_270
480+
481+ smallest_S_list .append (smallest_S_T )
482+
483+ for x , iter_rows in working_unitcell .iter_all_rows (only_unique = True ):
484+ for y , view in iter_rows :
485+ new_t = view [0 , 0 ][0 ][0 ].copy ()
486+
487+ new_t .T2a = _post_process_CTM_tensors (
480488 jnp .tensordot (
481- T_270_projectors .get_projector (x , y , 0 , 0 )[0 ],
482- new_t .T4a ,
489+ T_30_projectors .get_projector (x , y , - 1 , - 1 )[0 ],
490+ new_t .T2a ,
483491 ((1 ,), (0 ,)),
484492 ),
485493 config ,
486494 )
487- new_t .T4b = _post_process_CTM_tensors (
495+ new_t .T2b = _post_process_CTM_tensors (
488496 jnp .tensordot (
489- new_t .T4b ,
490- T_270_projectors .get_projector (x , y , 0 , - 1 )[1 ],
497+ new_t .T2b ,
498+ T_30_projectors .get_projector (x , y , 0 , 0 )[1 ],
491499 ((3 ,), (0 ,)),
492500 ),
493501 config ,
494502 )
495503
496- new_t .T5a = _post_process_CTM_tensors (
504+ new_t .T4a = _post_process_CTM_tensors (
497505 jnp .tensordot (
498- T_210_projectors .get_projector (x , y , 0 , 0 )[0 ],
499- new_t .T5a ,
506+ T_270_projectors .get_projector (x , y , 0 , 0 )[0 ],
507+ new_t .T4a ,
500508 ((1 ,), (0 ,)),
501509 ),
502510 config ,
503511 )
504- new_t .T5b = _post_process_CTM_tensors (
512+ new_t .T4b = _post_process_CTM_tensors (
505513 jnp .tensordot (
506- new_t .T5b ,
507- T_210_projectors .get_projector (x , y , - 1 , - 1 )[1 ],
514+ new_t .T4b ,
515+ T_270_projectors .get_projector (x , y , 0 , - 1 )[1 ],
508516 ((3 ,), (0 ,)),
509517 ),
510518 config ,
0 commit comments