Definitions for contractions (varipeps.contractions.Definitions)

class varipeps.contractions.Definitions[source]

Bases: object

Class to define the contractions used along in this package.

The convention used for the ordering of the tensors is for a single PEPS tensor:

single = [PEPS tensor, relevant CTM tensors starting at C1 and then clockwise]

which is repeated for each PEPS tensor and its environment in the ordering fixed x and all corresponding y values in increasing order and then the next x value in increasing order. For example for a quadratic four site the structure would look like:

 (x, y)  -  (x, y+1)
   |           |
(x+1, y) - (x+1, y+1)

tensors = [single(x, y), single(x, y+1), single(x+1, y), single(x+1, y+1)]

Using this convention each contraction is specified in the format:

contraction_name = {
  "tensors": [
    [Relevant elements for first single PEPS tensors incl. env],
    [Relevant elements for second single PEPS tensors incl. env],
    ...,
    "Optional string elements indicating additional non-PEPS tensors (e.g. gates)"
  ],
  "network": [
    [
      (Axes for first element of the tensors for first PEPS Tensor),
      (Axes for second element of the tensors for first PEPS Tensor)
    ],
    [
      (Axes for first element of the tensors for second PEPS Tensor),
      (Axes for second element of the tensors for second PEPS Tensor)
    ],
    ...,
    (Axes for additional non-PEPS tensors)
  ]
}

The axes are hereby specified in the ncon format where positive numbers describes the axes to be contracted and negative number the open axes after the contraction. The elements are strings indicating the elements of the PEPS tensor object elements. Hereby the special element “tensor_conj” describes the conjugated and transposed PEPS tensor.

corrlength_absorb_one_column: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['vec'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1', 'T3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(3), np.int64(8), np.int64(2), np.int64(-2), np.int64(4), np.int64(5), np.int64(9), np.int64(2), np.int64(-3), np.int64(6), np.int64(1), np.int64(4), np.int64(6), np.int64(-1), np.int64(7), np.int64(-4), np.int64(9), np.int64(8), np.int64(1), np.int64(3), np.int64(5), np.int64(7)), 'ncon_network': [(3, 8, 2, -2, 4), (5, 9, 2, -3, 6), (1, 4, 6, -1), (7, -4, 9, 8), [1, 3, 5, 7]], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(3, 8, 2, -2, 4), (5, 9, 2, -3, 6), (1, 4, 6, -1), (7, -4, 9, 8)], [1, 3, 5, 7]], 'network_additional_tensors': [[1, 3, 5, 7]], 'network_peps_tensors': [[(3, 8, 2, -2, 4), (5, 9, 2, -3, 6), (1, 4, 6, -1), (7, -4, 9, 8)]], 'tensors': [['tensor', 'tensor_conj', 'T1', 'T3'], 'vec']}
corrlength_absorb_one_row: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['vec'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T4', 'T2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(4), np.int64(-2), np.int64(2), np.int64(8), np.int64(3), np.int64(6), np.int64(-3), np.int64(2), np.int64(9), np.int64(5), np.int64(-1), np.int64(6), np.int64(4), np.int64(1), np.int64(8), np.int64(9), np.int64(-4), np.int64(7), np.int64(1), np.int64(3), np.int64(5), np.int64(7)), 'ncon_network': [(4, -2, 2, 8, 3), (6, -3, 2, 9, 5), (-1, 6, 4, 1), (8, 9, -4, 7), [1, 3, 5, 7]], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(4, -2, 2, 8, 3), (6, -3, 2, 9, 5), (-1, 6, 4, 1), (8, 9, -4, 7)], [1, 3, 5, 7]], 'network_additional_tensors': [[1, 3, 5, 7]], 'network_peps_tensors': [[(4, -2, 2, 8, 3), (6, -3, 2, 9, 5), (-1, 6, 4, 1), (8, 9, -4, 7)]], 'tensors': [['tensor', 'tensor_conj', 'T4', 'T2'], 'vec']}
corrlength_transfer_bottom: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T4', 'T2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5)), 'ncon_flat_network': (np.int64(2), np.int64(-6), np.int64(1), np.int64(4), np.int64(-2), np.int64(3), np.int64(-7), np.int64(1), np.int64(5), np.int64(-3), np.int64(-5), np.int64(3), np.int64(2), np.int64(-1), np.int64(4), np.int64(5), np.int64(-8), np.int64(-4)), 'ncon_network': [(2, -6, 1, 4, -2), (3, -7, 1, 5, -3), (-5, 3, 2, -1), (4, 5, -8, -4)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7), np.int64(-8)), 'ncon_sizes': (5, 5, 4, 4), 'network': [[(2, -6, 1, 4, -2), (3, -7, 1, 5, -3), (-5, 3, 2, -1), (4, 5, -8, -4)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(2, -6, 1, 4, -2), (3, -7, 1, 5, -3), (-5, 3, 2, -1), (4, 5, -8, -4)]], 'tensors': [['tensor', 'tensor_conj', 'T4', 'T2']]}
corrlength_transfer_right: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1', 'T3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5)), 'ncon_flat_network': (np.int64(-2), np.int64(4), np.int64(1), np.int64(-6), np.int64(2), np.int64(-3), np.int64(5), np.int64(1), np.int64(-7), np.int64(3), np.int64(-1), np.int64(2), np.int64(3), np.int64(-5), np.int64(-4), np.int64(-8), np.int64(5), np.int64(4)), 'ncon_network': [(-2, 4, 1, -6, 2), (-3, 5, 1, -7, 3), (-1, 2, 3, -5), (-4, -8, 5, 4)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7), np.int64(-8)), 'ncon_sizes': (5, 5, 4, 4), 'network': [[(-2, 4, 1, -6, 2), (-3, 5, 1, -7, 3), (-1, 2, 3, -5), (-4, -8, 5, 4)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-2, 4, 1, -6, 2), (-3, 5, 1, -7, 3), (-1, 2, 3, -5), (-4, -8, 5, 4)]], 'tensors': [['tensor', 'tensor_conj', 'T1', 'T3']]}
corrlength_vector_bottom: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['C4', 'T3', 'C3']], 'ncon_con_order': (np.int64(1), np.int64(2)), 'ncon_flat_network': (np.int64(1), np.int64(-1), np.int64(1), np.int64(2), np.int64(-3), np.int64(-2), np.int64(2), np.int64(-4)), 'ncon_network': [(1, -1), (1, 2, -3, -2), (2, -4)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (2, 4, 2), 'network': [[(1, -1), (1, 2, -3, -2), (2, -4)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(1, -1), (1, 2, -3, -2), (2, -4)]], 'tensors': [['C4', 'T3', 'C3']]}
corrlength_vector_left: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['C1', 'T4', 'C4']], 'ncon_con_order': (np.int64(1), np.int64(2)), 'ncon_flat_network': (np.int64(1), np.int64(-1), np.int64(2), np.int64(-3), np.int64(-2), np.int64(1), np.int64(-4), np.int64(2)), 'ncon_network': [(1, -1), (2, -3, -2, 1), (-4, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (2, 4, 2), 'network': [[(1, -1), (2, -3, -2, 1), (-4, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(1, -1), (2, -3, -2, 1), (-4, 2)]], 'tensors': [['C1', 'T4', 'C4']]}
corrlength_vector_right: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['C2', 'T2', 'C3']], 'ncon_con_order': (np.int64(1), np.int64(2)), 'ncon_flat_network': (np.int64(-1), np.int64(1), np.int64(-2), np.int64(-3), np.int64(2), np.int64(1), np.int64(-4), np.int64(2)), 'ncon_network': [(-1, 1), (-2, -3, 2, 1), (-4, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (2, 4, 2), 'network': [[(-1, 1), (-2, -3, 2, 1), (-4, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-1, 1), (-2, -3, 2, 1), (-4, 2)]], 'tensors': [['C2', 'T2', 'C3']]}
corrlength_vector_top: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['C1', 'T1', 'C2']], 'ncon_con_order': (np.int64(1), np.int64(2)), 'ncon_flat_network': (np.int64(-1), np.int64(1), np.int64(1), np.int64(-2), np.int64(-3), np.int64(2), np.int64(2), np.int64(-4)), 'ncon_network': [(-1, 1), (1, -2, -3, 2), (2, -4)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (2, 4, 2), 'network': [[(-1, 1), (1, -2, -3, 2), (2, -4)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-1, 1), (1, -2, -3, 2), (2, -4)]], 'tensors': [['C1', 'T1', 'C2']]}
ctmrg_absorption_bottom_C3: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_bottom_left'], 'filter_peps_tensors': [['T2', 'C3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(3), np.int64(4), np.int64(1), np.int64(-2), np.int64(2), np.int64(1), np.int64(2), np.int64(4), np.int64(3), np.int64(-1)), 'ncon_network': [(3, 4, 1, -2), (2, 1), (2, 4, 3, -1)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (4, 2, 4), 'network': [[(3, 4, 1, -2), (2, 1)], (2, 4, 3, -1)], 'network_additional_tensors': [(2, 4, 3, -1)], 'network_peps_tensors': [[(3, 4, 1, -2), (2, 1)]], 'tensors': [['T2', 'C3'], 'projector_bottom_left']}
Contraction for C3 during bottom absorption with contraction order shown.

Contraction for C3 during bottom absorption.

ctmrg_absorption_bottom_C3_phase_1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_bottom_left'], 'filter_peps_tensors': [['T2', 'C3_phase']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(3), np.int64(4), np.int64(1), np.int64(-2), np.int64(2), np.int64(1), np.int64(2), np.int64(4), np.int64(3), np.int64(-1)), 'ncon_network': [(3, 4, 1, -2), (2, 1), (2, 4, 3, -1)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (4, 2, 4), 'network': [[(3, 4, 1, -2), (2, 1)], (2, 4, 3, -1)], 'network_additional_tensors': [(2, 4, 3, -1)], 'network_peps_tensors': [[(3, 4, 1, -2), (2, 1)]], 'tensors': [['T2', 'C3_phase'], 'projector_bottom_left']}
Contraction for C3 during bottom absorption with contraction order shown.

Contraction for C3 during bottom absorption. Here C3 is the tensor with structure factor phase included which is grown by a normal T2 tensor.

ctmrg_absorption_bottom_C3_phase_2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_bottom_left'], 'filter_peps_tensors': [['T2_phase', 'C3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(3), np.int64(4), np.int64(1), np.int64(-2), np.int64(2), np.int64(1), np.int64(2), np.int64(4), np.int64(3), np.int64(-1)), 'ncon_network': [(3, 4, 1, -2), (2, 1), (2, 4, 3, -1)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (4, 2, 4), 'network': [[(3, 4, 1, -2), (2, 1)], (2, 4, 3, -1)], 'network_additional_tensors': [(2, 4, 3, -1)], 'network_peps_tensors': [[(3, 4, 1, -2), (2, 1)]], 'tensors': [['T2_phase', 'C3'], 'projector_bottom_left']}
Contraction for C3 during bottom absorption with contraction order shown.

Contraction for C3 during bottom absorption. Here C3 is the tensor with structure factor phase not included yet which is grown by a T2 tensor which includes a phase already.

ctmrg_absorption_bottom_C4: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_bottom_right'], 'filter_peps_tensors': [['C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(2), np.int64(1), np.int64(1), np.int64(4), np.int64(3), np.int64(-2), np.int64(-1), np.int64(2), np.int64(4), np.int64(3)), 'ncon_network': [(2, 1), (1, 4, 3, -2), (-1, 2, 4, 3)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 4, 4), 'network': [[(2, 1), (1, 4, 3, -2)], (-1, 2, 4, 3)], 'network_additional_tensors': [(-1, 2, 4, 3)], 'network_peps_tensors': [[(2, 1), (1, 4, 3, -2)]], 'tensors': [['C4', 'T4'], 'projector_bottom_right']}
Contraction for C4 during bottom absorption with contraction order shown.

Contraction for C4 during bottom absorption.

ctmrg_absorption_bottom_C4_phase_1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_bottom_right'], 'filter_peps_tensors': [['C4_phase', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(2), np.int64(1), np.int64(1), np.int64(4), np.int64(3), np.int64(-2), np.int64(-1), np.int64(2), np.int64(4), np.int64(3)), 'ncon_network': [(2, 1), (1, 4, 3, -2), (-1, 2, 4, 3)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 4, 4), 'network': [[(2, 1), (1, 4, 3, -2)], (-1, 2, 4, 3)], 'network_additional_tensors': [(-1, 2, 4, 3)], 'network_peps_tensors': [[(2, 1), (1, 4, 3, -2)]], 'tensors': [['C4_phase', 'T4'], 'projector_bottom_right']}
Contraction for C4 during bottom absorption with contraction order shown.

Contraction for C4 during bottom absorption. Here C4 is the tensor with structure factor phase included which is grown by a normal T4 tensor.

ctmrg_absorption_bottom_C4_phase_2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_bottom_right'], 'filter_peps_tensors': [['C4', 'T4_phase']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(2), np.int64(1), np.int64(1), np.int64(4), np.int64(3), np.int64(-2), np.int64(-1), np.int64(2), np.int64(4), np.int64(3)), 'ncon_network': [(2, 1), (1, 4, 3, -2), (-1, 2, 4, 3)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 4, 4), 'network': [[(2, 1), (1, 4, 3, -2)], (-1, 2, 4, 3)], 'network_additional_tensors': [(-1, 2, 4, 3)], 'network_peps_tensors': [[(2, 1), (1, 4, 3, -2)]], 'tensors': [['C4', 'T4_phase'], 'projector_bottom_right']}
Contraction for C4 during bottom absorption with contraction order shown.

Contraction for C4 during bottom absorption. Here C4 is the tensor with structure factor phase not included yet which is grown by a T4 tensor which includes a phase already.

ctmrg_absorption_bottom_T3: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_bottom_left', 'projector_bottom_right'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(3), np.int64(2), np.int64(6), np.int64(8), np.int64(-4), np.int64(5), np.int64(4), np.int64(6), np.int64(9), np.int64(-3), np.int64(1), np.int64(7), np.int64(4), np.int64(2), np.int64(1), np.int64(5), np.int64(3), np.int64(-1), np.int64(-2), np.int64(7), np.int64(9), np.int64(8)), 'ncon_network': [(3, 2, 6, 8, -4), (5, 4, 6, 9, -3), (1, 7, 4, 2), (1, 5, 3, -1), (-2, 7, 9, 8)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(3, 2, 6, 8, -4), (5, 4, 6, 9, -3), (1, 7, 4, 2)], (1, 5, 3, -1), (-2, 7, 9, 8)], 'network_additional_tensors': [(1, 5, 3, -1), (-2, 7, 9, 8)], 'network_peps_tensors': [[(3, 2, 6, 8, -4), (5, 4, 6, 9, -3), (1, 7, 4, 2)]], 'tensors': [['tensor', 'tensor_conj', 'T3'], 'projector_bottom_left', 'projector_bottom_right']}
Contraction for T3 during bottom absorption with contraction order shown.

Contraction for T3 during bottom absorption.

ctmrg_absorption_bottom_T3_large_d: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_bottom_left', 'projector_bottom_right'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(4), np.int64(3), np.int64(2), np.int64(8), np.int64(-4), np.int64(6), np.int64(5), np.int64(2), np.int64(9), np.int64(-3), np.int64(1), np.int64(7), np.int64(5), np.int64(3), np.int64(1), np.int64(6), np.int64(4), np.int64(-1), np.int64(-2), np.int64(7), np.int64(9), np.int64(8)), 'ncon_network': [(4, 3, 2, 8, -4), (6, 5, 2, 9, -3), (1, 7, 5, 3), (1, 6, 4, -1), (-2, 7, 9, 8)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(4, 3, 2, 8, -4), (6, 5, 2, 9, -3), (1, 7, 5, 3)], (1, 6, 4, -1), (-2, 7, 9, 8)], 'network_additional_tensors': [(1, 6, 4, -1), (-2, 7, 9, 8)], 'network_peps_tensors': [[(4, 3, 2, 8, -4), (6, 5, 2, 9, -3), (1, 7, 5, 3)]], 'tensors': [['tensor', 'tensor_conj', 'T3'], 'projector_bottom_left', 'projector_bottom_right']}
ctmrg_absorption_bottom_T3_large_d_phase_1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_bottom_left', 'projector_bottom_right'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T3_phase']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(4), np.int64(3), np.int64(2), np.int64(8), np.int64(-4), np.int64(6), np.int64(5), np.int64(2), np.int64(9), np.int64(-3), np.int64(1), np.int64(7), np.int64(5), np.int64(3), np.int64(1), np.int64(6), np.int64(4), np.int64(-1), np.int64(-2), np.int64(7), np.int64(9), np.int64(8)), 'ncon_network': [(4, 3, 2, 8, -4), (6, 5, 2, 9, -3), (1, 7, 5, 3), (1, 6, 4, -1), (-2, 7, 9, 8)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(4, 3, 2, 8, -4), (6, 5, 2, 9, -3), (1, 7, 5, 3)], (1, 6, 4, -1), (-2, 7, 9, 8)], 'network_additional_tensors': [(1, 6, 4, -1), (-2, 7, 9, 8)], 'network_peps_tensors': [[(4, 3, 2, 8, -4), (6, 5, 2, 9, -3), (1, 7, 5, 3)]], 'tensors': [['tensor', 'tensor_conj', 'T3_phase'], 'projector_bottom_left', 'projector_bottom_right']}
ctmrg_absorption_bottom_T3_large_d_phase_2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_bottom_left', 'projector_bottom_right', 'structure_factor_gate'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10)), 'ncon_flat_network': (np.int64(5), np.int64(4), np.int64(2), np.int64(9), np.int64(-4), np.int64(7), np.int64(6), np.int64(3), np.int64(10), np.int64(-3), np.int64(1), np.int64(8), np.int64(6), np.int64(4), np.int64(1), np.int64(7), np.int64(5), np.int64(-1), np.int64(-2), np.int64(8), np.int64(10), np.int64(9), np.int64(2), np.int64(3)), 'ncon_network': [(5, 4, 2, 9, -4), (7, 6, 3, 10, -3), (1, 8, 6, 4), (1, 7, 5, -1), (-2, 8, 10, 9), (2, 3)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4, 2), 'network': [[(5, 4, 2, 9, -4), (7, 6, 3, 10, -3), (1, 8, 6, 4)], (1, 7, 5, -1), (-2, 8, 10, 9), (2, 3)], 'network_additional_tensors': [(1, 7, 5, -1), (-2, 8, 10, 9), (2, 3)], 'network_peps_tensors': [[(5, 4, 2, 9, -4), (7, 6, 3, 10, -3), (1, 8, 6, 4)]], 'tensors': [['tensor', 'tensor_conj', 'T3'], 'projector_bottom_left', 'projector_bottom_right', 'structure_factor_gate']}
ctmrg_absorption_left_C1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_left_bottom'], 'filter_peps_tensors': [['C1', 'T1']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(2), np.int64(1), np.int64(1), np.int64(3), np.int64(4), np.int64(-2), np.int64(-1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_network': [(2, 1), (1, 3, 4, -2), (-1, 2, 3, 4)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 4, 4), 'network': [[(2, 1), (1, 3, 4, -2)], (-1, 2, 3, 4)], 'network_additional_tensors': [(-1, 2, 3, 4)], 'network_peps_tensors': [[(2, 1), (1, 3, 4, -2)]], 'tensors': [['C1', 'T1'], 'projector_left_bottom']}
Contraction for C1 during left absorption with contraction order shown.

Contraction for C1 during left absorption.

ctmrg_absorption_left_C1_phase_1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_left_bottom'], 'filter_peps_tensors': [['C1_phase', 'T1']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(2), np.int64(1), np.int64(1), np.int64(3), np.int64(4), np.int64(-2), np.int64(-1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_network': [(2, 1), (1, 3, 4, -2), (-1, 2, 3, 4)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 4, 4), 'network': [[(2, 1), (1, 3, 4, -2)], (-1, 2, 3, 4)], 'network_additional_tensors': [(-1, 2, 3, 4)], 'network_peps_tensors': [[(2, 1), (1, 3, 4, -2)]], 'tensors': [['C1_phase', 'T1'], 'projector_left_bottom']}
Contraction for C1 during left absorption with contraction order shown.

Contraction for C1 during left absorption. Here C1 is the tensor with structure factor phase included which is grown by a normal T1 tensor.

ctmrg_absorption_left_C1_phase_2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_left_bottom'], 'filter_peps_tensors': [['C1', 'T1_phase']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(2), np.int64(1), np.int64(1), np.int64(3), np.int64(4), np.int64(-2), np.int64(-1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_network': [(2, 1), (1, 3, 4, -2), (-1, 2, 3, 4)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 4, 4), 'network': [[(2, 1), (1, 3, 4, -2)], (-1, 2, 3, 4)], 'network_additional_tensors': [(-1, 2, 3, 4)], 'network_peps_tensors': [[(2, 1), (1, 3, 4, -2)]], 'tensors': [['C1', 'T1_phase'], 'projector_left_bottom']}
Contraction for C1 during left absorption with contraction order shown.

Contraction for C1 during left absorption. Here C1 is the tensor with structure factor phase not included yet which is grown by a T1 tensor which includes a phase already.

ctmrg_absorption_left_C4: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_left_top'], 'filter_peps_tensors': [['T3', 'C4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(1), np.int64(-1), np.int64(4), np.int64(3), np.int64(1), np.int64(2), np.int64(2), np.int64(3), np.int64(4), np.int64(-2)), 'ncon_network': [(1, -1, 4, 3), (1, 2), (2, 3, 4, -2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (4, 2, 4), 'network': [[(1, -1, 4, 3), (1, 2)], (2, 3, 4, -2)], 'network_additional_tensors': [(2, 3, 4, -2)], 'network_peps_tensors': [[(1, -1, 4, 3), (1, 2)]], 'tensors': [['T3', 'C4'], 'projector_left_top']}
Contraction for C4 during left absorption with contraction order shown.

Contraction for C4 during left absorption.

ctmrg_absorption_left_C4_phase_1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_left_top'], 'filter_peps_tensors': [['T3', 'C4_phase']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(1), np.int64(-1), np.int64(4), np.int64(3), np.int64(1), np.int64(2), np.int64(2), np.int64(3), np.int64(4), np.int64(-2)), 'ncon_network': [(1, -1, 4, 3), (1, 2), (2, 3, 4, -2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (4, 2, 4), 'network': [[(1, -1, 4, 3), (1, 2)], (2, 3, 4, -2)], 'network_additional_tensors': [(2, 3, 4, -2)], 'network_peps_tensors': [[(1, -1, 4, 3), (1, 2)]], 'tensors': [['T3', 'C4_phase'], 'projector_left_top']}
Contraction for C4 during left absorption with contraction order shown.

Contraction for C4 during left absorption. Here C4 is the tensor with structure factor phase included which is grown by a normal T3 tensor.

ctmrg_absorption_left_C4_phase_2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_left_top'], 'filter_peps_tensors': [['T3_phase', 'C4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(1), np.int64(-1), np.int64(4), np.int64(3), np.int64(1), np.int64(2), np.int64(2), np.int64(3), np.int64(4), np.int64(-2)), 'ncon_network': [(1, -1, 4, 3), (1, 2), (2, 3, 4, -2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (4, 2, 4), 'network': [[(1, -1, 4, 3), (1, 2)], (2, 3, 4, -2)], 'network_additional_tensors': [(2, 3, 4, -2)], 'network_peps_tensors': [[(1, -1, 4, 3), (1, 2)]], 'tensors': [['T3_phase', 'C4'], 'projector_left_top']}
Contraction for C4 during left absorption with contraction order shown.

Contraction for C4 during left absorption. Here C3 is the tensor with structure factor phase not included yet which is grown by a T3 tensor which includes a phase already.

ctmrg_absorption_left_T4: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_left_top', 'projector_left_bottom'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(3), np.int64(8), np.int64(6), np.int64(-3), np.int64(2), np.int64(4), np.int64(9), np.int64(6), np.int64(-2), np.int64(5), np.int64(7), np.int64(4), np.int64(3), np.int64(1), np.int64(1), np.int64(2), np.int64(5), np.int64(-4), np.int64(-1), np.int64(7), np.int64(8), np.int64(9)), 'ncon_network': [(3, 8, 6, -3, 2), (4, 9, 6, -2, 5), (7, 4, 3, 1), (1, 2, 5, -4), (-1, 7, 8, 9)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(3, 8, 6, -3, 2), (4, 9, 6, -2, 5), (7, 4, 3, 1)], (1, 2, 5, -4), (-1, 7, 8, 9)], 'network_additional_tensors': [(1, 2, 5, -4), (-1, 7, 8, 9)], 'network_peps_tensors': [[(3, 8, 6, -3, 2), (4, 9, 6, -2, 5), (7, 4, 3, 1)]], 'tensors': [['tensor', 'tensor_conj', 'T4'], 'projector_left_top', 'projector_left_bottom']}
Contraction for T4 during left absorption with contraction order shown.

Contraction for T4 during left absorption.

ctmrg_absorption_left_T4_large_d: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_left_top', 'projector_left_bottom'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(4), np.int64(8), np.int64(2), np.int64(-3), np.int64(3), np.int64(5), np.int64(9), np.int64(2), np.int64(-2), np.int64(6), np.int64(7), np.int64(5), np.int64(4), np.int64(1), np.int64(1), np.int64(3), np.int64(6), np.int64(-4), np.int64(-1), np.int64(7), np.int64(8), np.int64(9)), 'ncon_network': [(4, 8, 2, -3, 3), (5, 9, 2, -2, 6), (7, 5, 4, 1), (1, 3, 6, -4), (-1, 7, 8, 9)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(4, 8, 2, -3, 3), (5, 9, 2, -2, 6), (7, 5, 4, 1)], (1, 3, 6, -4), (-1, 7, 8, 9)], 'network_additional_tensors': [(1, 3, 6, -4), (-1, 7, 8, 9)], 'network_peps_tensors': [[(4, 8, 2, -3, 3), (5, 9, 2, -2, 6), (7, 5, 4, 1)]], 'tensors': [['tensor', 'tensor_conj', 'T4'], 'projector_left_top', 'projector_left_bottom']}
ctmrg_absorption_left_T4_large_d_phase_1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_left_top', 'projector_left_bottom'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T4_phase']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(4), np.int64(8), np.int64(2), np.int64(-3), np.int64(3), np.int64(5), np.int64(9), np.int64(2), np.int64(-2), np.int64(6), np.int64(7), np.int64(5), np.int64(4), np.int64(1), np.int64(1), np.int64(3), np.int64(6), np.int64(-4), np.int64(-1), np.int64(7), np.int64(8), np.int64(9)), 'ncon_network': [(4, 8, 2, -3, 3), (5, 9, 2, -2, 6), (7, 5, 4, 1), (1, 3, 6, -4), (-1, 7, 8, 9)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(4, 8, 2, -3, 3), (5, 9, 2, -2, 6), (7, 5, 4, 1)], (1, 3, 6, -4), (-1, 7, 8, 9)], 'network_additional_tensors': [(1, 3, 6, -4), (-1, 7, 8, 9)], 'network_peps_tensors': [[(4, 8, 2, -3, 3), (5, 9, 2, -2, 6), (7, 5, 4, 1)]], 'tensors': [['tensor', 'tensor_conj', 'T4_phase'], 'projector_left_top', 'projector_left_bottom']}
ctmrg_absorption_left_T4_large_d_phase_2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_left_top', 'projector_left_bottom', 'structure_factor_gate'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10)), 'ncon_flat_network': (np.int64(5), np.int64(9), np.int64(2), np.int64(-3), np.int64(4), np.int64(6), np.int64(10), np.int64(3), np.int64(-2), np.int64(7), np.int64(8), np.int64(6), np.int64(5), np.int64(1), np.int64(1), np.int64(4), np.int64(7), np.int64(-4), np.int64(-1), np.int64(8), np.int64(9), np.int64(10), np.int64(2), np.int64(3)), 'ncon_network': [(5, 9, 2, -3, 4), (6, 10, 3, -2, 7), (8, 6, 5, 1), (1, 4, 7, -4), (-1, 8, 9, 10), (2, 3)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4, 2), 'network': [[(5, 9, 2, -3, 4), (6, 10, 3, -2, 7), (8, 6, 5, 1)], (1, 4, 7, -4), (-1, 8, 9, 10), (2, 3)], 'network_additional_tensors': [(1, 4, 7, -4), (-1, 8, 9, 10), (2, 3)], 'network_peps_tensors': [[(5, 9, 2, -3, 4), (6, 10, 3, -2, 7), (8, 6, 5, 1)]], 'tensors': [['tensor', 'tensor_conj', 'T4'], 'projector_left_top', 'projector_left_bottom', 'structure_factor_gate']}
ctmrg_absorption_right_C2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_right_bottom'], 'filter_peps_tensors': [['T1', 'C2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(-1), np.int64(3), np.int64(4), np.int64(1), np.int64(1), np.int64(2), np.int64(2), np.int64(4), np.int64(3), np.int64(-2)), 'ncon_network': [(-1, 3, 4, 1), (1, 2), (2, 4, 3, -2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (4, 2, 4), 'network': [[(-1, 3, 4, 1), (1, 2)], (2, 4, 3, -2)], 'network_additional_tensors': [(2, 4, 3, -2)], 'network_peps_tensors': [[(-1, 3, 4, 1), (1, 2)]], 'tensors': [['T1', 'C2'], 'projector_right_bottom']}
Contraction for C2 during right absorption with contraction order shown.

Contraction for C2 during right absorption.

ctmrg_absorption_right_C2_phase_1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_right_bottom'], 'filter_peps_tensors': [['T1', 'C2_phase']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(-1), np.int64(3), np.int64(4), np.int64(1), np.int64(1), np.int64(2), np.int64(2), np.int64(4), np.int64(3), np.int64(-2)), 'ncon_network': [(-1, 3, 4, 1), (1, 2), (2, 4, 3, -2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (4, 2, 4), 'network': [[(-1, 3, 4, 1), (1, 2)], (2, 4, 3, -2)], 'network_additional_tensors': [(2, 4, 3, -2)], 'network_peps_tensors': [[(-1, 3, 4, 1), (1, 2)]], 'tensors': [['T1', 'C2_phase'], 'projector_right_bottom']}
Contraction for C2 during right absorption with contraction order shown.

Contraction for C2 during right absorption. Here C2 is the tensor with structure factor phase included which is grown by a normal T1 tensor.

ctmrg_absorption_right_C2_phase_2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_right_bottom'], 'filter_peps_tensors': [['T1_phase', 'C2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(-1), np.int64(3), np.int64(4), np.int64(1), np.int64(1), np.int64(2), np.int64(2), np.int64(4), np.int64(3), np.int64(-2)), 'ncon_network': [(-1, 3, 4, 1), (1, 2), (2, 4, 3, -2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (4, 2, 4), 'network': [[(-1, 3, 4, 1), (1, 2)], (2, 4, 3, -2)], 'network_additional_tensors': [(2, 4, 3, -2)], 'network_peps_tensors': [[(-1, 3, 4, 1), (1, 2)]], 'tensors': [['T1_phase', 'C2'], 'projector_right_bottom']}
Contraction for C2 during right absorption with contraction order shown.

Contraction for C2 during right absorption. Here C2 is the tensor with structure factor phase not included yet which is grown by a T1 tensor which includes a phase already.

ctmrg_absorption_right_C3: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_right_top'], 'filter_peps_tensors': [['C3', 'T3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(1), np.int64(2), np.int64(-1), np.int64(1), np.int64(4), np.int64(3), np.int64(-2), np.int64(2), np.int64(4), np.int64(3)), 'ncon_network': [(1, 2), (-1, 1, 4, 3), (-2, 2, 4, 3)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 4, 4), 'network': [[(1, 2), (-1, 1, 4, 3)], (-2, 2, 4, 3)], 'network_additional_tensors': [(-2, 2, 4, 3)], 'network_peps_tensors': [[(1, 2), (-1, 1, 4, 3)]], 'tensors': [['C3', 'T3'], 'projector_right_top']}
Contraction for C3 during right absorption with contraction order shown.

Contraction for C3 during right absorption.

ctmrg_absorption_right_C3_phase_1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_right_top'], 'filter_peps_tensors': [['C3_phase', 'T3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(1), np.int64(2), np.int64(-1), np.int64(1), np.int64(4), np.int64(3), np.int64(-2), np.int64(2), np.int64(4), np.int64(3)), 'ncon_network': [(1, 2), (-1, 1, 4, 3), (-2, 2, 4, 3)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 4, 4), 'network': [[(1, 2), (-1, 1, 4, 3)], (-2, 2, 4, 3)], 'network_additional_tensors': [(-2, 2, 4, 3)], 'network_peps_tensors': [[(1, 2), (-1, 1, 4, 3)]], 'tensors': [['C3_phase', 'T3'], 'projector_right_top']}
Contraction for C3 during right absorption with contraction order shown.

Contraction for C3 during right absorption. Here C3 is the tensor with structure factor phase included which is grown by a normal T3 tensor.

ctmrg_absorption_right_C3_phase_2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_right_top'], 'filter_peps_tensors': [['C3', 'T3_phase']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(1), np.int64(2), np.int64(-1), np.int64(1), np.int64(4), np.int64(3), np.int64(-2), np.int64(2), np.int64(4), np.int64(3)), 'ncon_network': [(1, 2), (-1, 1, 4, 3), (-2, 2, 4, 3)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 4, 4), 'network': [[(1, 2), (-1, 1, 4, 3)], (-2, 2, 4, 3)], 'network_additional_tensors': [(-2, 2, 4, 3)], 'network_peps_tensors': [[(1, 2), (-1, 1, 4, 3)]], 'tensors': [['C3', 'T3_phase'], 'projector_right_top']}
Contraction for C3 during right absorption with contraction order shown.

Contraction for C3 during right absorption. Here C3 is the tensor with structure factor phase not included yet which is grown by a T3 tensor which includes a phase already.

ctmrg_absorption_right_T2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_right_top', 'projector_right_bottom'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(-1), np.int64(8), np.int64(6), np.int64(3), np.int64(2), np.int64(-2), np.int64(9), np.int64(6), np.int64(5), np.int64(4), np.int64(3), np.int64(5), np.int64(7), np.int64(1), np.int64(-4), np.int64(1), np.int64(4), np.int64(2), np.int64(7), np.int64(9), np.int64(8), np.int64(-3)), 'ncon_network': [(-1, 8, 6, 3, 2), (-2, 9, 6, 5, 4), (3, 5, 7, 1), (-4, 1, 4, 2), (7, 9, 8, -3)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(-1, 8, 6, 3, 2), (-2, 9, 6, 5, 4), (3, 5, 7, 1)], (-4, 1, 4, 2), (7, 9, 8, -3)], 'network_additional_tensors': [(-4, 1, 4, 2), (7, 9, 8, -3)], 'network_peps_tensors': [[(-1, 8, 6, 3, 2), (-2, 9, 6, 5, 4), (3, 5, 7, 1)]], 'tensors': [['tensor', 'tensor_conj', 'T2'], 'projector_right_top', 'projector_right_bottom']}
Contraction for T2 during right absorption with contraction order shown.

Contraction for T2 during right absorption.

ctmrg_absorption_right_T2_large_d: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_right_top', 'projector_right_bottom'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(-1), np.int64(8), np.int64(2), np.int64(4), np.int64(3), np.int64(-2), np.int64(9), np.int64(2), np.int64(6), np.int64(5), np.int64(4), np.int64(6), np.int64(7), np.int64(1), np.int64(-4), np.int64(1), np.int64(5), np.int64(3), np.int64(7), np.int64(9), np.int64(8), np.int64(-3)), 'ncon_network': [(-1, 8, 2, 4, 3), (-2, 9, 2, 6, 5), (4, 6, 7, 1), (-4, 1, 5, 3), (7, 9, 8, -3)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(-1, 8, 2, 4, 3), (-2, 9, 2, 6, 5), (4, 6, 7, 1)], (-4, 1, 5, 3), (7, 9, 8, -3)], 'network_additional_tensors': [(-4, 1, 5, 3), (7, 9, 8, -3)], 'network_peps_tensors': [[(-1, 8, 2, 4, 3), (-2, 9, 2, 6, 5), (4, 6, 7, 1)]], 'tensors': [['tensor', 'tensor_conj', 'T2'], 'projector_right_top', 'projector_right_bottom']}
ctmrg_absorption_right_T2_large_d_phase_1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_right_top', 'projector_right_bottom'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T2_phase']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(-1), np.int64(8), np.int64(2), np.int64(4), np.int64(3), np.int64(-2), np.int64(9), np.int64(2), np.int64(6), np.int64(5), np.int64(4), np.int64(6), np.int64(7), np.int64(1), np.int64(-4), np.int64(1), np.int64(5), np.int64(3), np.int64(7), np.int64(9), np.int64(8), np.int64(-3)), 'ncon_network': [(-1, 8, 2, 4, 3), (-2, 9, 2, 6, 5), (4, 6, 7, 1), (-4, 1, 5, 3), (7, 9, 8, -3)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(-1, 8, 2, 4, 3), (-2, 9, 2, 6, 5), (4, 6, 7, 1)], (-4, 1, 5, 3), (7, 9, 8, -3)], 'network_additional_tensors': [(-4, 1, 5, 3), (7, 9, 8, -3)], 'network_peps_tensors': [[(-1, 8, 2, 4, 3), (-2, 9, 2, 6, 5), (4, 6, 7, 1)]], 'tensors': [['tensor', 'tensor_conj', 'T2_phase'], 'projector_right_top', 'projector_right_bottom']}
ctmrg_absorption_right_T2_large_d_phase_2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_right_top', 'projector_right_bottom', 'structure_factor_gate'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10)), 'ncon_flat_network': (np.int64(-1), np.int64(9), np.int64(2), np.int64(5), np.int64(4), np.int64(-2), np.int64(10), np.int64(3), np.int64(7), np.int64(6), np.int64(5), np.int64(7), np.int64(8), np.int64(1), np.int64(-4), np.int64(1), np.int64(6), np.int64(4), np.int64(8), np.int64(10), np.int64(9), np.int64(-3), np.int64(2), np.int64(3)), 'ncon_network': [(-1, 9, 2, 5, 4), (-2, 10, 3, 7, 6), (5, 7, 8, 1), (-4, 1, 6, 4), (8, 10, 9, -3), (2, 3)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4, 2), 'network': [[(-1, 9, 2, 5, 4), (-2, 10, 3, 7, 6), (5, 7, 8, 1)], (-4, 1, 6, 4), (8, 10, 9, -3), (2, 3)], 'network_additional_tensors': [(-4, 1, 6, 4), (8, 10, 9, -3), (2, 3)], 'network_peps_tensors': [[(-1, 9, 2, 5, 4), (-2, 10, 3, 7, 6), (5, 7, 8, 1)]], 'tensors': [['tensor', 'tensor_conj', 'T2'], 'projector_right_top', 'projector_right_bottom', 'structure_factor_gate']}
ctmrg_absorption_top_C1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_top_right'], 'filter_peps_tensors': [['T4', 'C1']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(-1), np.int64(4), np.int64(3), np.int64(1), np.int64(1), np.int64(2), np.int64(2), np.int64(3), np.int64(4), np.int64(-2)), 'ncon_network': [(-1, 4, 3, 1), (1, 2), (2, 3, 4, -2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (4, 2, 4), 'network': [[(-1, 4, 3, 1), (1, 2)], (2, 3, 4, -2)], 'network_additional_tensors': [(2, 3, 4, -2)], 'network_peps_tensors': [[(-1, 4, 3, 1), (1, 2)]], 'tensors': [['T4', 'C1'], 'projector_top_right']}
Contraction for C1 during top absorption with contraction order shown.

Contraction for C1 during top absorption.

ctmrg_absorption_top_C1_phase_1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_top_right'], 'filter_peps_tensors': [['T4', 'C1_phase']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(-1), np.int64(4), np.int64(3), np.int64(1), np.int64(1), np.int64(2), np.int64(2), np.int64(3), np.int64(4), np.int64(-2)), 'ncon_network': [(-1, 4, 3, 1), (1, 2), (2, 3, 4, -2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (4, 2, 4), 'network': [[(-1, 4, 3, 1), (1, 2)], (2, 3, 4, -2)], 'network_additional_tensors': [(2, 3, 4, -2)], 'network_peps_tensors': [[(-1, 4, 3, 1), (1, 2)]], 'tensors': [['T4', 'C1_phase'], 'projector_top_right']}
Contraction for C1 during top absorption with contraction order shown.

Contraction for C1 during top absorption. Here C1 is the tensor with structure factor phase included which is grown by a normal T4 tensor.

ctmrg_absorption_top_C1_phase_2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_top_right'], 'filter_peps_tensors': [['T4_phase', 'C1']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(-1), np.int64(4), np.int64(3), np.int64(1), np.int64(1), np.int64(2), np.int64(2), np.int64(3), np.int64(4), np.int64(-2)), 'ncon_network': [(-1, 4, 3, 1), (1, 2), (2, 3, 4, -2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (4, 2, 4), 'network': [[(-1, 4, 3, 1), (1, 2)], (2, 3, 4, -2)], 'network_additional_tensors': [(2, 3, 4, -2)], 'network_peps_tensors': [[(-1, 4, 3, 1), (1, 2)]], 'tensors': [['T4_phase', 'C1'], 'projector_top_right']}
Contraction for C1 during top absorption with contraction order shown.

Contraction for C1 during top absorption. Here C1 is the tensor with structure factor phase not included yet which is grown by a T4 tensor which includes a phase already.

ctmrg_absorption_top_C2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_top_left'], 'filter_peps_tensors': [['C2', 'T2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(2), np.int64(1), np.int64(3), np.int64(4), np.int64(-2), np.int64(1), np.int64(-1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_network': [(2, 1), (3, 4, -2, 1), (-1, 2, 3, 4)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 4, 4), 'network': [[(2, 1), (3, 4, -2, 1)], (-1, 2, 3, 4)], 'network_additional_tensors': [(-1, 2, 3, 4)], 'network_peps_tensors': [[(2, 1), (3, 4, -2, 1)]], 'tensors': [['C2', 'T2'], 'projector_top_left']}
Contraction for C2 during top absorption with contraction order shown.

Contraction for C2 during top absorption.

ctmrg_absorption_top_C2_phase_1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_top_left'], 'filter_peps_tensors': [['C2_phase', 'T2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(2), np.int64(1), np.int64(3), np.int64(4), np.int64(-2), np.int64(1), np.int64(-1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_network': [(2, 1), (3, 4, -2, 1), (-1, 2, 3, 4)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 4, 4), 'network': [[(2, 1), (3, 4, -2, 1)], (-1, 2, 3, 4)], 'network_additional_tensors': [(-1, 2, 3, 4)], 'network_peps_tensors': [[(2, 1), (3, 4, -2, 1)]], 'tensors': [['C2_phase', 'T2'], 'projector_top_left']}
Contraction for C2 during top absorption with contraction order shown.

Contraction for C2 during top absorption. Here C2 is the tensor with structure factor phase included which is grown by a normal T2 tensor.

ctmrg_absorption_top_C2_phase_2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_top_left'], 'filter_peps_tensors': [['C2', 'T2_phase']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(2), np.int64(1), np.int64(3), np.int64(4), np.int64(-2), np.int64(1), np.int64(-1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_network': [(2, 1), (3, 4, -2, 1), (-1, 2, 3, 4)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 4, 4), 'network': [[(2, 1), (3, 4, -2, 1)], (-1, 2, 3, 4)], 'network_additional_tensors': [(-1, 2, 3, 4)], 'network_peps_tensors': [[(2, 1), (3, 4, -2, 1)]], 'tensors': [['C2', 'T2_phase'], 'projector_top_left']}
Contraction for C2 during top absorption with contraction order shown.

Contraction for C2 during top absorption. Here C2 is the tensor with structure factor phase not included yet which is grown by a T2 tensor which includes a phase already.

ctmrg_absorption_top_T1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_top_left', 'projector_top_right'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(3), np.int64(-2), np.int64(6), np.int64(8), np.int64(2), np.int64(5), np.int64(-3), np.int64(6), np.int64(9), np.int64(4), np.int64(1), np.int64(2), np.int64(4), np.int64(7), np.int64(-1), np.int64(1), np.int64(3), np.int64(5), np.int64(7), np.int64(8), np.int64(9), np.int64(-4)), 'ncon_network': [(3, -2, 6, 8, 2), (5, -3, 6, 9, 4), (1, 2, 4, 7), (-1, 1, 3, 5), (7, 8, 9, -4)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(3, -2, 6, 8, 2), (5, -3, 6, 9, 4), (1, 2, 4, 7)], (-1, 1, 3, 5), (7, 8, 9, -4)], 'network_additional_tensors': [(-1, 1, 3, 5), (7, 8, 9, -4)], 'network_peps_tensors': [[(3, -2, 6, 8, 2), (5, -3, 6, 9, 4), (1, 2, 4, 7)]], 'tensors': [['tensor', 'tensor_conj', 'T1'], 'projector_top_left', 'projector_top_right']}
Contraction for T1 during top absorption with contraction order shown.

Contraction for T1 during top absorption.

ctmrg_absorption_top_T1_large_d: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_top_left', 'projector_top_right'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(4), np.int64(-2), np.int64(2), np.int64(8), np.int64(3), np.int64(6), np.int64(-3), np.int64(2), np.int64(9), np.int64(5), np.int64(1), np.int64(3), np.int64(5), np.int64(7), np.int64(-1), np.int64(1), np.int64(4), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(-4)), 'ncon_network': [(4, -2, 2, 8, 3), (6, -3, 2, 9, 5), (1, 3, 5, 7), (-1, 1, 4, 6), (7, 8, 9, -4)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(4, -2, 2, 8, 3), (6, -3, 2, 9, 5), (1, 3, 5, 7)], (-1, 1, 4, 6), (7, 8, 9, -4)], 'network_additional_tensors': [(-1, 1, 4, 6), (7, 8, 9, -4)], 'network_peps_tensors': [[(4, -2, 2, 8, 3), (6, -3, 2, 9, 5), (1, 3, 5, 7)]], 'tensors': [['tensor', 'tensor_conj', 'T1'], 'projector_top_left', 'projector_top_right']}
ctmrg_absorption_top_T1_large_d_phase_1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_top_left', 'projector_top_right'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1_phase']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_flat_network': (np.int64(4), np.int64(-2), np.int64(2), np.int64(8), np.int64(3), np.int64(6), np.int64(-3), np.int64(2), np.int64(9), np.int64(5), np.int64(1), np.int64(3), np.int64(5), np.int64(7), np.int64(-1), np.int64(1), np.int64(4), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(-4)), 'ncon_network': [(4, -2, 2, 8, 3), (6, -3, 2, 9, 5), (1, 3, 5, 7), (-1, 1, 4, 6), (7, 8, 9, -4)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4), 'network': [[(4, -2, 2, 8, 3), (6, -3, 2, 9, 5), (1, 3, 5, 7)], (-1, 1, 4, 6), (7, 8, 9, -4)], 'network_additional_tensors': [(-1, 1, 4, 6), (7, 8, 9, -4)], 'network_peps_tensors': [[(4, -2, 2, 8, 3), (6, -3, 2, 9, 5), (1, 3, 5, 7)]], 'tensors': [['tensor', 'tensor_conj', 'T1_phase'], 'projector_top_left', 'projector_top_right']}
ctmrg_absorption_top_T1_large_d_phase_2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['projector_top_left', 'projector_top_right', 'structure_factor_gate'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10)), 'ncon_flat_network': (np.int64(5), np.int64(-2), np.int64(2), np.int64(9), np.int64(4), np.int64(7), np.int64(-3), np.int64(3), np.int64(10), np.int64(6), np.int64(1), np.int64(4), np.int64(6), np.int64(8), np.int64(-1), np.int64(1), np.int64(5), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(-4), np.int64(2), np.int64(3)), 'ncon_network': [(5, -2, 2, 9, 4), (7, -3, 3, 10, 6), (1, 4, 6, 8), (-1, 1, 5, 7), (8, 9, 10, -4), (2, 3)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 4, 4, 2), 'network': [[(5, -2, 2, 9, 4), (7, -3, 3, 10, 6), (1, 4, 6, 8)], (-1, 1, 5, 7), (8, 9, 10, -4), (2, 3)], 'network_additional_tensors': [(-1, 1, 5, 7), (8, 9, 10, -4), (2, 3)], 'network_peps_tensors': [[(5, -2, 2, 9, 4), (7, -3, 3, 10, 6), (1, 4, 6, 8)]], 'tensors': [['tensor', 'tensor_conj', 'T1'], 'projector_top_left', 'projector_top_right', 'structure_factor_gate']}
ctmrg_bottom_left: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7)), 'ncon_flat_network': (np.int64(3), np.int64(4), np.int64(7), np.int64(-3), np.int64(-5), np.int64(5), np.int64(6), np.int64(7), np.int64(-2), np.int64(-6), np.int64(2), np.int64(-1), np.int64(6), np.int64(4), np.int64(2), np.int64(1), np.int64(1), np.int64(5), np.int64(3), np.int64(-4)), 'ncon_network': [(3, 4, 7, -3, -5), (5, 6, 7, -2, -6), (2, -1, 6, 4), (2, 1), (1, 5, 3, -4)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (5, 5, 4, 2, 4), 'network': [[(3, 4, 7, -3, -5), (5, 6, 7, -2, -6), (2, -1, 6, 4), (2, 1), (1, 5, 3, -4)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(3, 4, 7, -3, -5), (5, 6, 7, -2, -6), (2, -1, 6, 4), (2, 1), (1, 5, 3, -4)]], 'tensors': [['tensor', 'tensor_conj', 'T3', 'C4', 'T4']]}
Contraction for bottom left CTM corner with contraction order shown.

Contraction for bottom left CTM corner.

ctmrg_bottom_left_large_d: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7)), 'ncon_flat_network': (np.int64(4), np.int64(5), np.int64(3), np.int64(-3), np.int64(-5), np.int64(6), np.int64(7), np.int64(3), np.int64(-2), np.int64(-6), np.int64(2), np.int64(-1), np.int64(7), np.int64(5), np.int64(2), np.int64(1), np.int64(1), np.int64(6), np.int64(4), np.int64(-4)), 'ncon_network': [(4, 5, 3, -3, -5), (6, 7, 3, -2, -6), (2, -1, 7, 5), (2, 1), (1, 6, 4, -4)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (5, 5, 4, 2, 4), 'network': [[(4, 5, 3, -3, -5), (6, 7, 3, -2, -6), (2, -1, 7, 5), (2, 1), (1, 6, 4, -4)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(4, 5, 3, -3, -5), (6, 7, 3, -2, -6), (2, -1, 7, 5), (2, 1), (1, 6, 4, -4)]], 'tensors': [['tensor', 'tensor_conj', 'T3', 'C4', 'T4']]}
Contraction for bottom left CTM corner for high dimensions with contraction order shown.

Contraction for bottom left CTM corner for high physical dimensions.

ctmrg_bottom_right: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T2', 'T3', 'C3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7)), 'ncon_flat_network': (np.int64(-6), np.int64(3), np.int64(7), np.int64(4), np.int64(-3), np.int64(-5), np.int64(5), np.int64(7), np.int64(6), np.int64(-2), np.int64(4), np.int64(6), np.int64(2), np.int64(-1), np.int64(-4), np.int64(1), np.int64(5), np.int64(3), np.int64(1), np.int64(2)), 'ncon_network': [(-6, 3, 7, 4, -3), (-5, 5, 7, 6, -2), (4, 6, 2, -1), (-4, 1, 5, 3), (1, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (5, 5, 4, 4, 2), 'network': [[(-6, 3, 7, 4, -3), (-5, 5, 7, 6, -2), (4, 6, 2, -1), (-4, 1, 5, 3), (1, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-6, 3, 7, 4, -3), (-5, 5, 7, 6, -2), (4, 6, 2, -1), (-4, 1, 5, 3), (1, 2)]], 'tensors': [['tensor', 'tensor_conj', 'T2', 'T3', 'C3']]}
Contraction for bottom right CTM corner with contraction order shown.

Contraction for bottom right CTM corner.

ctmrg_bottom_right_large_d: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T2', 'T3', 'C3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7)), 'ncon_flat_network': (np.int64(-6), np.int64(4), np.int64(3), np.int64(5), np.int64(-3), np.int64(-5), np.int64(6), np.int64(3), np.int64(7), np.int64(-2), np.int64(5), np.int64(7), np.int64(2), np.int64(-1), np.int64(-4), np.int64(1), np.int64(6), np.int64(4), np.int64(1), np.int64(2)), 'ncon_network': [(-6, 4, 3, 5, -3), (-5, 6, 3, 7, -2), (5, 7, 2, -1), (-4, 1, 6, 4), (1, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (5, 5, 4, 4, 2), 'network': [[(-6, 4, 3, 5, -3), (-5, 6, 3, 7, -2), (5, 7, 2, -1), (-4, 1, 6, 4), (1, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-6, 4, 3, 5, -3), (-5, 6, 3, 7, -2), (5, 7, 2, -1), (-4, 1, 6, 4), (1, 2)]], 'tensors': [['tensor', 'tensor_conj', 'T2', 'T3', 'C3']]}
Contraction for bottom right CTM corner for high dimensions with contraction order shown.

Contraction for bottom right CTM corner for high physical dimensions.

ctmrg_gauge_fix_C2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['left_unitary', 'bottom_unitary'], 'filter_peps_tensors': [['C2']], 'ncon_con_order': (np.int64(1), np.int64(2)), 'ncon_flat_network': (np.int64(1), np.int64(2), np.int64(-1), np.int64(1), np.int64(-2), np.int64(2)), 'ncon_network': [(1, 2), (-1, 1), (-2, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 2, 2), 'network': [[(1, 2)], (-1, 1), (-2, 2)], 'network_additional_tensors': [(-1, 1), (-2, 2)], 'network_peps_tensors': [[(1, 2)]], 'tensors': [['C2'], 'left_unitary', 'bottom_unitary']}
ctmrg_gauge_fix_C4: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['top_unitary', 'right_unitary'], 'filter_peps_tensors': [['C4']], 'ncon_con_order': (np.int64(1), np.int64(2)), 'ncon_flat_network': (np.int64(1), np.int64(2), np.int64(2), np.int64(-2), np.int64(1), np.int64(-1)), 'ncon_network': [(1, 2), (2, -2), (1, -1)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (2, 2, 2), 'network': [[(1, 2)], (2, -2), (1, -1)], 'network_additional_tensors': [(2, -2), (1, -1)], 'network_peps_tensors': [[(1, 2)]], 'tensors': [['C4'], 'top_unitary', 'right_unitary']}
ctmrg_gauge_fix_T1: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['left_unitary', 'right_unitary'], 'filter_peps_tensors': [['T1']], 'ncon_con_order': (np.int64(1), np.int64(2)), 'ncon_flat_network': (np.int64(1), np.int64(-2), np.int64(-3), np.int64(2), np.int64(-1), np.int64(1), np.int64(-4), np.int64(2)), 'ncon_network': [(1, -2, -3, 2), (-1, 1), (-4, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (4, 2, 2), 'network': [[(1, -2, -3, 2)], (-1, 1), (-4, 2)], 'network_additional_tensors': [(-1, 1), (-4, 2)], 'network_peps_tensors': [[(1, -2, -3, 2)]], 'tensors': [['T1'], 'left_unitary', 'right_unitary']}
ctmrg_gauge_fix_T2: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['top_unitary', 'bottom_unitary'], 'filter_peps_tensors': [['T2']], 'ncon_con_order': (np.int64(1), np.int64(2)), 'ncon_flat_network': (np.int64(-1), np.int64(-2), np.int64(1), np.int64(2), np.int64(-4), np.int64(2), np.int64(-3), np.int64(1)), 'ncon_network': [(-1, -2, 1, 2), (-4, 2), (-3, 1)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (4, 2, 2), 'network': [[(-1, -2, 1, 2)], (-4, 2), (-3, 1)], 'network_additional_tensors': [(-4, 2), (-3, 1)], 'network_peps_tensors': [[(-1, -2, 1, 2)]], 'tensors': [['T2'], 'top_unitary', 'bottom_unitary']}
ctmrg_gauge_fix_T3: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['left_unitary', 'right_unitary'], 'filter_peps_tensors': [['T3']], 'ncon_con_order': (np.int64(1), np.int64(2)), 'ncon_flat_network': (np.int64(1), np.int64(2), np.int64(-3), np.int64(-4), np.int64(1), np.int64(-1), np.int64(2), np.int64(-2)), 'ncon_network': [(1, 2, -3, -4), (1, -1), (2, -2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (4, 2, 2), 'network': [[(1, 2, -3, -4)], (1, -1), (2, -2)], 'network_additional_tensors': [(1, -1), (2, -2)], 'network_peps_tensors': [[(1, 2, -3, -4)]], 'tensors': [['T3'], 'left_unitary', 'right_unitary']}
ctmrg_gauge_fix_T4: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['top_unitary', 'bottom_unitary'], 'filter_peps_tensors': [['T4']], 'ncon_con_order': (np.int64(1), np.int64(2)), 'ncon_flat_network': (np.int64(1), np.int64(-2), np.int64(-3), np.int64(2), np.int64(2), np.int64(-4), np.int64(1), np.int64(-1)), 'ncon_network': [(1, -2, -3, 2), (2, -4), (1, -1)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (4, 2, 2), 'network': [[(1, -2, -3, 2)], (2, -4), (1, -1)], 'network_additional_tensors': [(2, -4), (1, -1)], 'network_peps_tensors': [[(1, -2, -3, 2)]], 'tensors': [['T4'], 'top_unitary', 'bottom_unitary']}
ctmrg_top_left: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T4', 'C1', 'T1']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7)), 'ncon_flat_network': (np.int64(3), np.int64(-2), np.int64(7), np.int64(-5), np.int64(4), np.int64(5), np.int64(-3), np.int64(7), np.int64(-6), np.int64(6), np.int64(-1), np.int64(5), np.int64(3), np.int64(1), np.int64(1), np.int64(2), np.int64(2), np.int64(4), np.int64(6), np.int64(-4)), 'ncon_network': [(3, -2, 7, -5, 4), (5, -3, 7, -6, 6), (-1, 5, 3, 1), (1, 2), (2, 4, 6, -4)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (5, 5, 4, 2, 4), 'network': [[(3, -2, 7, -5, 4), (5, -3, 7, -6, 6), (-1, 5, 3, 1), (1, 2), (2, 4, 6, -4)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(3, -2, 7, -5, 4), (5, -3, 7, -6, 6), (-1, 5, 3, 1), (1, 2), (2, 4, 6, -4)]], 'tensors': [['tensor', 'tensor_conj', 'T4', 'C1', 'T1']]}
Contraction for top left CTM corner with contraction order shown.

Contraction for top left CTM corner.

ctmrg_top_left_large_d = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T4', 'C1', 'T1']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7)), 'ncon_flat_network': (np.int64(4), np.int64(-2), np.int64(3), np.int64(-5), np.int64(5), np.int64(6), np.int64(-3), np.int64(3), np.int64(-6), np.int64(7), np.int64(-1), np.int64(6), np.int64(4), np.int64(1), np.int64(1), np.int64(2), np.int64(2), np.int64(5), np.int64(7), np.int64(-4)), 'ncon_network': [(4, -2, 3, -5, 5), (6, -3, 3, -6, 7), (-1, 6, 4, 1), (1, 2), (2, 5, 7, -4)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (5, 5, 4, 2, 4), 'network': [[(4, -2, 3, -5, 5), (6, -3, 3, -6, 7), (-1, 6, 4, 1), (1, 2), (2, 5, 7, -4)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(4, -2, 3, -5, 5), (6, -3, 3, -6, 7), (-1, 6, 4, 1), (1, 2), (2, 5, 7, -4)]], 'tensors': [['tensor', 'tensor_conj', 'T4', 'C1', 'T1']]}
Contraction for top left CTM corner for high dimensions with contraction order shown.

Contraction for top left CTM corner for high physical dimensions.

ctmrg_top_right: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7)), 'ncon_flat_network': (np.int64(-2), np.int64(-6), np.int64(7), np.int64(4), np.int64(3), np.int64(-3), np.int64(-5), np.int64(7), np.int64(6), np.int64(5), np.int64(-1), np.int64(3), np.int64(5), np.int64(1), np.int64(1), np.int64(2), np.int64(4), np.int64(6), np.int64(-4), np.int64(2)), 'ncon_network': [(-2, -6, 7, 4, 3), (-3, -5, 7, 6, 5), (-1, 3, 5, 1), (1, 2), (4, 6, -4, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (5, 5, 4, 2, 4), 'network': [[(-2, -6, 7, 4, 3), (-3, -5, 7, 6, 5), (-1, 3, 5, 1), (1, 2), (4, 6, -4, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-2, -6, 7, 4, 3), (-3, -5, 7, 6, 5), (-1, 3, 5, 1), (1, 2), (4, 6, -4, 2)]], 'tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2']]}
Contraction for top right CTM corner with contraction order shown.

Contraction for top right CTM corner.

ctmrg_top_right_large_d: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7)), 'ncon_flat_network': (np.int64(-2), np.int64(-6), np.int64(3), np.int64(5), np.int64(4), np.int64(-3), np.int64(-5), np.int64(3), np.int64(7), np.int64(6), np.int64(-1), np.int64(4), np.int64(6), np.int64(1), np.int64(1), np.int64(2), np.int64(5), np.int64(7), np.int64(-4), np.int64(2)), 'ncon_network': [(-2, -6, 3, 5, 4), (-3, -5, 3, 7, 6), (-1, 4, 6, 1), (1, 2), (5, 7, -4, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (5, 5, 4, 2, 4), 'network': [[(-2, -6, 3, 5, 4), (-3, -5, 3, 7, 6), (-1, 4, 6, 1), (1, 2), (5, 7, -4, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-2, -6, 3, 5, 4), (-3, -5, 3, 7, 6), (-1, 4, 6, 1), (1, 2), (5, 7, -4, 2)]], 'tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2']]}
Contraction for top right CTM corner for high dimensions with contraction order shown.

Contraction for top right CTM corner for high physical dimensions.

density_matrix_four_sites_bottom_left: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6)), 'ncon_flat_network': (np.int64(3), np.int64(4), np.int64(-1), np.int64(-5), np.int64(-7), np.int64(5), np.int64(6), np.int64(-2), np.int64(-4), np.int64(-8), np.int64(2), np.int64(-3), np.int64(6), np.int64(4), np.int64(2), np.int64(1), np.int64(1), np.int64(5), np.int64(3), np.int64(-6)), 'ncon_network': [(3, 4, -1, -5, -7), (5, 6, -2, -4, -8), (2, -3, 6, 4), (2, 1), (1, 5, 3, -6)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7), np.int64(-8)), 'ncon_sizes': (5, 5, 4, 2, 4), 'network': [[(3, 4, -1, -5, -7), (5, 6, -2, -4, -8), (2, -3, 6, 4), (2, 1), (1, 5, 3, -6)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(3, 4, -1, -5, -7), (5, 6, -2, -4, -8), (2, -3, 6, 4), (2, 1), (1, 5, 3, -6)]], 'tensors': [['tensor', 'tensor_conj', 'T3', 'C4', 'T4']]}
density_matrix_four_sites_bottom_right: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T2', 'T3', 'C3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6)), 'ncon_flat_network': (np.int64(-8), np.int64(3), np.int64(-1), np.int64(4), np.int64(-5), np.int64(-7), np.int64(5), np.int64(-2), np.int64(6), np.int64(-4), np.int64(4), np.int64(6), np.int64(2), np.int64(-3), np.int64(-6), np.int64(1), np.int64(5), np.int64(3), np.int64(1), np.int64(2)), 'ncon_network': [(-8, 3, -1, 4, -5), (-7, 5, -2, 6, -4), (4, 6, 2, -3), (-6, 1, 5, 3), (1, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7), np.int64(-8)), 'ncon_sizes': (5, 5, 4, 4, 2), 'network': [[(-8, 3, -1, 4, -5), (-7, 5, -2, 6, -4), (4, 6, 2, -3), (-6, 1, 5, 3), (1, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-8, 3, -1, 4, -5), (-7, 5, -2, 6, -4), (4, 6, 2, -3), (-6, 1, 5, 3), (1, 2)]], 'tensors': [['tensor', 'tensor_conj', 'T2', 'T3', 'C3']]}
density_matrix_four_sites_top_left: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T4', 'C1', 'T1']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6)), 'ncon_flat_network': (np.int64(3), np.int64(-4), np.int64(-1), np.int64(-7), np.int64(4), np.int64(5), np.int64(-5), np.int64(-2), np.int64(-8), np.int64(6), np.int64(-3), np.int64(5), np.int64(3), np.int64(1), np.int64(1), np.int64(2), np.int64(2), np.int64(4), np.int64(6), np.int64(-6)), 'ncon_network': [(3, -4, -1, -7, 4), (5, -5, -2, -8, 6), (-3, 5, 3, 1), (1, 2), (2, 4, 6, -6)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7), np.int64(-8)), 'ncon_sizes': (5, 5, 4, 2, 4), 'network': [[(3, -4, -1, -7, 4), (5, -5, -2, -8, 6), (-3, 5, 3, 1), (1, 2), (2, 4, 6, -6)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(3, -4, -1, -7, 4), (5, -5, -2, -8, 6), (-3, 5, 3, 1), (1, 2), (2, 4, 6, -6)]], 'tensors': [['tensor', 'tensor_conj', 'T4', 'C1', 'T1']]}
density_matrix_four_sites_top_right: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6)), 'ncon_flat_network': (np.int64(-4), np.int64(-8), np.int64(-1), np.int64(4), np.int64(3), np.int64(-5), np.int64(-7), np.int64(-2), np.int64(6), np.int64(5), np.int64(-3), np.int64(3), np.int64(5), np.int64(1), np.int64(1), np.int64(2), np.int64(4), np.int64(6), np.int64(-6), np.int64(2)), 'ncon_network': [(-4, -8, -1, 4, 3), (-5, -7, -2, 6, 5), (-3, 3, 5, 1), (1, 2), (4, 6, -6, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7), np.int64(-8)), 'ncon_sizes': (5, 5, 4, 2, 4), 'network': [[(-4, -8, -1, 4, 3), (-5, -7, -2, 6, 5), (-3, 3, 5, 1), (1, 2), (4, 6, -6, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-4, -8, -1, 4, 3), (-5, -7, -2, 6, 5), (-3, 3, 5, 1), (1, 2), (4, 6, -6, 2)]], 'tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2']]}
density_matrix_one_site: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'C3', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12), np.int64(13), np.int64(14), np.int64(15), np.int64(16)), 'ncon_flat_network': (np.int64(6), np.int64(7), np.int64(-1), np.int64(10), np.int64(9), np.int64(13), np.int64(14), np.int64(-2), np.int64(15), np.int64(16), np.int64(2), np.int64(12), np.int64(12), np.int64(9), np.int64(16), np.int64(3), np.int64(3), np.int64(8), np.int64(10), np.int64(15), np.int64(4), np.int64(8), np.int64(11), np.int64(4), np.int64(1), np.int64(11), np.int64(14), np.int64(7), np.int64(1), np.int64(5), np.int64(5), np.int64(13), np.int64(6), np.int64(2)), 'ncon_network': [(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (5, 5, 2, 4, 2, 4, 2, 4, 2, 4), 'network': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'C3', 'T3', 'C4', 'T4']]}
density_matrix_one_site_C1_phase: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1_phase', 'T1', 'C2', 'T2', 'C3', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12), np.int64(13), np.int64(14), np.int64(15), np.int64(16)), 'ncon_flat_network': (np.int64(6), np.int64(7), np.int64(-1), np.int64(10), np.int64(9), np.int64(13), np.int64(14), np.int64(-2), np.int64(15), np.int64(16), np.int64(2), np.int64(12), np.int64(12), np.int64(9), np.int64(16), np.int64(3), np.int64(3), np.int64(8), np.int64(10), np.int64(15), np.int64(4), np.int64(8), np.int64(11), np.int64(4), np.int64(1), np.int64(11), np.int64(14), np.int64(7), np.int64(1), np.int64(5), np.int64(5), np.int64(13), np.int64(6), np.int64(2)), 'ncon_network': [(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (5, 5, 2, 4, 2, 4, 2, 4, 2, 4), 'network': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'tensors': [['tensor', 'tensor_conj', 'C1_phase', 'T1', 'C2', 'T2', 'C3', 'T3', 'C4', 'T4']]}
density_matrix_one_site_C2_phase: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2_phase', 'T2', 'C3', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12), np.int64(13), np.int64(14), np.int64(15), np.int64(16)), 'ncon_flat_network': (np.int64(6), np.int64(7), np.int64(-1), np.int64(10), np.int64(9), np.int64(13), np.int64(14), np.int64(-2), np.int64(15), np.int64(16), np.int64(2), np.int64(12), np.int64(12), np.int64(9), np.int64(16), np.int64(3), np.int64(3), np.int64(8), np.int64(10), np.int64(15), np.int64(4), np.int64(8), np.int64(11), np.int64(4), np.int64(1), np.int64(11), np.int64(14), np.int64(7), np.int64(1), np.int64(5), np.int64(5), np.int64(13), np.int64(6), np.int64(2)), 'ncon_network': [(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (5, 5, 2, 4, 2, 4, 2, 4, 2, 4), 'network': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2_phase', 'T2', 'C3', 'T3', 'C4', 'T4']]}
density_matrix_one_site_C3_phase: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'C3_phase', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12), np.int64(13), np.int64(14), np.int64(15), np.int64(16)), 'ncon_flat_network': (np.int64(6), np.int64(7), np.int64(-1), np.int64(10), np.int64(9), np.int64(13), np.int64(14), np.int64(-2), np.int64(15), np.int64(16), np.int64(2), np.int64(12), np.int64(12), np.int64(9), np.int64(16), np.int64(3), np.int64(3), np.int64(8), np.int64(10), np.int64(15), np.int64(4), np.int64(8), np.int64(11), np.int64(4), np.int64(1), np.int64(11), np.int64(14), np.int64(7), np.int64(1), np.int64(5), np.int64(5), np.int64(13), np.int64(6), np.int64(2)), 'ncon_network': [(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (5, 5, 2, 4, 2, 4, 2, 4, 2, 4), 'network': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'C3_phase', 'T3', 'C4', 'T4']]}
density_matrix_one_site_C4_phase: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'C3', 'T3', 'C4_phase', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12), np.int64(13), np.int64(14), np.int64(15), np.int64(16)), 'ncon_flat_network': (np.int64(6), np.int64(7), np.int64(-1), np.int64(10), np.int64(9), np.int64(13), np.int64(14), np.int64(-2), np.int64(15), np.int64(16), np.int64(2), np.int64(12), np.int64(12), np.int64(9), np.int64(16), np.int64(3), np.int64(3), np.int64(8), np.int64(10), np.int64(15), np.int64(4), np.int64(8), np.int64(11), np.int64(4), np.int64(1), np.int64(11), np.int64(14), np.int64(7), np.int64(1), np.int64(5), np.int64(5), np.int64(13), np.int64(6), np.int64(2)), 'ncon_network': [(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (5, 5, 2, 4, 2, 4, 2, 4, 2, 4), 'network': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'C3', 'T3', 'C4_phase', 'T4']]}
density_matrix_one_site_T1_phase: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1_phase', 'C2', 'T2', 'C3', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12), np.int64(13), np.int64(14), np.int64(15), np.int64(16)), 'ncon_flat_network': (np.int64(6), np.int64(7), np.int64(-1), np.int64(10), np.int64(9), np.int64(13), np.int64(14), np.int64(-2), np.int64(15), np.int64(16), np.int64(2), np.int64(12), np.int64(12), np.int64(9), np.int64(16), np.int64(3), np.int64(3), np.int64(8), np.int64(10), np.int64(15), np.int64(4), np.int64(8), np.int64(11), np.int64(4), np.int64(1), np.int64(11), np.int64(14), np.int64(7), np.int64(1), np.int64(5), np.int64(5), np.int64(13), np.int64(6), np.int64(2)), 'ncon_network': [(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (5, 5, 2, 4, 2, 4, 2, 4, 2, 4), 'network': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1_phase', 'C2', 'T2', 'C3', 'T3', 'C4', 'T4']]}
density_matrix_one_site_T2_phase: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2_phase', 'C3', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12), np.int64(13), np.int64(14), np.int64(15), np.int64(16)), 'ncon_flat_network': (np.int64(6), np.int64(7), np.int64(-1), np.int64(10), np.int64(9), np.int64(13), np.int64(14), np.int64(-2), np.int64(15), np.int64(16), np.int64(2), np.int64(12), np.int64(12), np.int64(9), np.int64(16), np.int64(3), np.int64(3), np.int64(8), np.int64(10), np.int64(15), np.int64(4), np.int64(8), np.int64(11), np.int64(4), np.int64(1), np.int64(11), np.int64(14), np.int64(7), np.int64(1), np.int64(5), np.int64(5), np.int64(13), np.int64(6), np.int64(2)), 'ncon_network': [(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (5, 5, 2, 4, 2, 4, 2, 4, 2, 4), 'network': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2_phase', 'C3', 'T3', 'C4', 'T4']]}
density_matrix_one_site_T3_phase: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'C3', 'T3_phase', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12), np.int64(13), np.int64(14), np.int64(15), np.int64(16)), 'ncon_flat_network': (np.int64(6), np.int64(7), np.int64(-1), np.int64(10), np.int64(9), np.int64(13), np.int64(14), np.int64(-2), np.int64(15), np.int64(16), np.int64(2), np.int64(12), np.int64(12), np.int64(9), np.int64(16), np.int64(3), np.int64(3), np.int64(8), np.int64(10), np.int64(15), np.int64(4), np.int64(8), np.int64(11), np.int64(4), np.int64(1), np.int64(11), np.int64(14), np.int64(7), np.int64(1), np.int64(5), np.int64(5), np.int64(13), np.int64(6), np.int64(2)), 'ncon_network': [(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (5, 5, 2, 4, 2, 4, 2, 4, 2, 4), 'network': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'C3', 'T3_phase', 'C4', 'T4']]}
density_matrix_one_site_T4_phase: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'C3', 'T3', 'C4', 'T4_phase']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12), np.int64(13), np.int64(14), np.int64(15), np.int64(16)), 'ncon_flat_network': (np.int64(6), np.int64(7), np.int64(-1), np.int64(10), np.int64(9), np.int64(13), np.int64(14), np.int64(-2), np.int64(15), np.int64(16), np.int64(2), np.int64(12), np.int64(12), np.int64(9), np.int64(16), np.int64(3), np.int64(3), np.int64(8), np.int64(10), np.int64(15), np.int64(4), np.int64(8), np.int64(11), np.int64(4), np.int64(1), np.int64(11), np.int64(14), np.int64(7), np.int64(1), np.int64(5), np.int64(5), np.int64(13), np.int64(6), np.int64(2)), 'ncon_network': [(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2)), 'ncon_sizes': (5, 5, 2, 4, 2, 4, 2, 4, 2, 4), 'network': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(6, 7, -1, 10, 9), (13, 14, -2, 15, 16), (2, 12), (12, 9, 16, 3), (3, 8), (10, 15, 4, 8), (11, 4), (1, 11, 14, 7), (1, 5), (5, 13, 6, 2)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'C3', 'T3', 'C4', 'T4_phase']]}
density_matrix_three_sites_triangle_without_top_left: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['top-left', 'top-right', 'bottom-left', 'bottom-right'], 'filter_peps_tensors': [], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12)), 'ncon_flat_network': (np.int64(10), np.int64(11), np.int64(12), np.int64(1), np.int64(2), np.int64(3), np.int64(-1), np.int64(-4), np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(-2), np.int64(-5), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12), np.int64(-3), np.int64(-6), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9)), 'ncon_network': [(10, 11, 12, 1, 2, 3), (-1, -4, 1, 2, 3, 4, 5, 6), (-2, -5, 7, 8, 9, 10, 11, 12), (-3, -6, 4, 5, 6, 7, 8, 9)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (6, 8, 8, 8), 'network': [(10, 11, 12, 1, 2, 3), (-1, -4, 1, 2, 3, 4, 5, 6), (-2, -5, 7, 8, 9, 10, 11, 12), (-3, -6, 4, 5, 6, 7, 8, 9)], 'network_additional_tensors': [(10, 11, 12, 1, 2, 3), (-1, -4, 1, 2, 3, 4, 5, 6), (-2, -5, 7, 8, 9, 10, 11, 12), (-3, -6, 4, 5, 6, 7, 8, 9)], 'network_peps_tensors': [], 'tensors': ['top-left', 'top-right', 'bottom-left', 'bottom-right']}
density_matrix_two_sites_bottom: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T2', 'C3', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10)), 'ncon_flat_network': (np.int64(4), np.int64(5), np.int64(-5), np.int64(8), np.int64(-2), np.int64(6), np.int64(7), np.int64(-6), np.int64(9), np.int64(-3), np.int64(8), np.int64(9), np.int64(2), np.int64(-4), np.int64(10), np.int64(2), np.int64(1), np.int64(10), np.int64(7), np.int64(5), np.int64(1), np.int64(3), np.int64(3), np.int64(6), np.int64(4), np.int64(-1)), 'ncon_network': [(4, 5, -5, 8, -2), (6, 7, -6, 9, -3), (8, 9, 2, -4), (10, 2), (1, 10, 7, 5), (1, 3), (3, 6, 4, -1)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (5, 5, 4, 2, 4, 2, 4), 'network': [[(4, 5, -5, 8, -2), (6, 7, -6, 9, -3), (8, 9, 2, -4), (10, 2), (1, 10, 7, 5), (1, 3), (3, 6, 4, -1)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(4, 5, -5, 8, -2), (6, 7, -6, 9, -3), (8, 9, 2, -4), (10, 2), (1, 10, 7, 5), (1, 3), (3, 6, 4, -1)]], 'tensors': [['tensor', 'tensor_conj', 'T2', 'C3', 'T3', 'C4', 'T4']]}
density_matrix_two_sites_horizontal_rectangle: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['top_left', 'top_right', 'bottom_left', 'bottom_right'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1'], ['tensor', 'tensor_conj', 'T3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12), np.int64(13), np.int64(14), np.int64(15), np.int64(16), np.int64(17), np.int64(18), np.int64(19), np.int64(20), np.int64(21), np.int64(22), np.int64(23), np.int64(24), np.int64(25), np.int64(26)), 'ncon_flat_network': (np.int64(5), np.int64(11), np.int64(9), np.int64(19), np.int64(6), np.int64(7), np.int64(13), np.int64(9), np.int64(20), np.int64(8), np.int64(4), np.int64(6), np.int64(8), np.int64(18), np.int64(10), np.int64(16), np.int64(14), np.int64(25), np.int64(11), np.int64(12), np.int64(17), np.int64(14), np.int64(26), np.int64(13), np.int64(15), np.int64(24), np.int64(17), np.int64(16), np.int64(-1), np.int64(-3), np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(7), np.int64(18), np.int64(19), np.int64(20), np.int64(21), np.int64(22), np.int64(23), np.int64(15), np.int64(12), np.int64(10), np.int64(1), np.int64(2), np.int64(3), np.int64(-2), np.int64(-4), np.int64(21), np.int64(22), np.int64(23), np.int64(24), np.int64(26), np.int64(25)), 'ncon_network': [(5, 11, 9, 19, 6), (7, 13, 9, 20, 8), (4, 6, 8, 18), (10, 16, 14, 25, 11), (12, 17, 14, 26, 13), (15, 24, 17, 16), (-1, -3, 1, 2, 3, 4, 5, 7), (18, 19, 20, 21, 22, 23), (15, 12, 10, 1, 2, 3), (-2, -4, 21, 22, 23, 24, 26, 25)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 5, 5, 4, 8, 6, 6, 8), 'network': [[(5, 11, 9, 19, 6), (7, 13, 9, 20, 8), (4, 6, 8, 18)], [(10, 16, 14, 25, 11), (12, 17, 14, 26, 13), (15, 24, 17, 16)], (-1, -3, 1, 2, 3, 4, 5, 7), (18, 19, 20, 21, 22, 23), (15, 12, 10, 1, 2, 3), (-2, -4, 21, 22, 23, 24, 26, 25)], 'network_additional_tensors': [(-1, -3, 1, 2, 3, 4, 5, 7), (18, 19, 20, 21, 22, 23), (15, 12, 10, 1, 2, 3), (-2, -4, 21, 22, 23, 24, 26, 25)], 'network_peps_tensors': [[(5, 11, 9, 19, 6), (7, 13, 9, 20, 8), (4, 6, 8, 18)], [(10, 16, 14, 25, 11), (12, 17, 14, 26, 13), (15, 24, 17, 16)]], 'tensors': [['tensor', 'tensor_conj', 'T1'], ['tensor', 'tensor_conj', 'T3'], 'top_left', 'top_right', 'bottom_left', 'bottom_right']}
density_matrix_two_sites_left: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10)), 'ncon_flat_network': (np.int64(5), np.int64(9), np.int64(-1), np.int64(-4), np.int64(4), np.int64(7), np.int64(10), np.int64(-2), np.int64(-5), np.int64(6), np.int64(1), np.int64(3), np.int64(3), np.int64(4), np.int64(6), np.int64(-3), np.int64(2), np.int64(-6), np.int64(10), np.int64(9), np.int64(2), np.int64(8), np.int64(8), np.int64(7), np.int64(5), np.int64(1)), 'ncon_network': [(5, 9, -1, -4, 4), (7, 10, -2, -5, 6), (1, 3), (3, 4, 6, -3), (2, -6, 10, 9), (2, 8), (8, 7, 5, 1)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (5, 5, 2, 4, 4, 2, 4), 'network': [[(5, 9, -1, -4, 4), (7, 10, -2, -5, 6), (1, 3), (3, 4, 6, -3), (2, -6, 10, 9), (2, 8), (8, 7, 5, 1)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(5, 9, -1, -4, 4), (7, 10, -2, -5, 6), (1, 3), (3, 4, 6, -3), (2, -6, 10, 9), (2, 8), (8, 7, 5, 1)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'T3', 'C4', 'T4']]}
density_matrix_two_sites_right: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2', 'T3', 'C3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10)), 'ncon_flat_network': (np.int64(-2), np.int64(8), np.int64(-5), np.int64(5), np.int64(4), np.int64(-3), np.int64(9), np.int64(-6), np.int64(7), np.int64(6), np.int64(-1), np.int64(4), np.int64(6), np.int64(3), np.int64(3), np.int64(1), np.int64(5), np.int64(7), np.int64(10), np.int64(1), np.int64(-4), np.int64(2), np.int64(9), np.int64(8), np.int64(2), np.int64(10)), 'ncon_network': [(-2, 8, -5, 5, 4), (-3, 9, -6, 7, 6), (-1, 4, 6, 3), (3, 1), (5, 7, 10, 1), (-4, 2, 9, 8), (2, 10)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (5, 5, 4, 2, 4, 4, 2), 'network': [[(-2, 8, -5, 5, 4), (-3, 9, -6, 7, 6), (-1, 4, 6, 3), (3, 1), (5, 7, 10, 1), (-4, 2, 9, 8), (2, 10)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-2, 8, -5, 5, 4), (-3, 9, -6, 7, 6), (-1, 4, 6, 3), (3, 1), (5, 7, 10, 1), (-4, 2, 9, 8), (2, 10)]], 'tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2', 'T3', 'C3']]}
density_matrix_two_sites_top: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10)), 'ncon_flat_network': (np.int64(8), np.int64(-4), np.int64(-1), np.int64(4), np.int64(5), np.int64(9), np.int64(-5), np.int64(-2), np.int64(6), np.int64(7), np.int64(2), np.int64(10), np.int64(10), np.int64(5), np.int64(7), np.int64(1), np.int64(1), np.int64(3), np.int64(4), np.int64(6), np.int64(-6), np.int64(3), np.int64(-3), np.int64(9), np.int64(8), np.int64(2)), 'ncon_network': [(8, -4, -1, 4, 5), (9, -5, -2, 6, 7), (2, 10), (10, 5, 7, 1), (1, 3), (4, 6, -6, 3), (-3, 9, 8, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (5, 5, 2, 4, 2, 4, 4), 'network': [[(8, -4, -1, 4, 5), (9, -5, -2, 6, 7), (2, 10), (10, 5, 7, 1), (1, 3), (4, 6, -6, 3), (-3, 9, 8, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(8, -4, -1, 4, 5), (9, -5, -2, 6, 7), (2, 10), (10, 5, 7, 1), (1, 3), (4, 6, -6, 3), (-3, 9, 8, 2)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'T4']]}
density_matrix_two_sites_vertical_rectangle: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['top_left', 'top_right', 'bottom_left', 'bottom_right'], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T4'], ['tensor', 'tensor_conj', 'T2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12), np.int64(13), np.int64(14), np.int64(15), np.int64(16), np.int64(17), np.int64(18), np.int64(19), np.int64(20), np.int64(21), np.int64(22), np.int64(23), np.int64(24), np.int64(25), np.int64(26)), 'ncon_flat_network': (np.int64(6), np.int64(19), np.int64(9), np.int64(11), np.int64(5), np.int64(8), np.int64(20), np.int64(9), np.int64(13), np.int64(7), np.int64(18), np.int64(8), np.int64(6), np.int64(4), np.int64(11), np.int64(22), np.int64(14), np.int64(16), np.int64(10), np.int64(13), np.int64(23), np.int64(14), np.int64(17), np.int64(12), np.int64(16), np.int64(17), np.int64(21), np.int64(15), np.int64(-1), np.int64(-3), np.int64(4), np.int64(5), np.int64(7), np.int64(1), np.int64(2), np.int64(3), np.int64(1), np.int64(2), np.int64(3), np.int64(15), np.int64(12), np.int64(10), np.int64(24), np.int64(25), np.int64(26), np.int64(18), np.int64(19), np.int64(20), np.int64(-2), np.int64(-4), np.int64(21), np.int64(23), np.int64(22), np.int64(24), np.int64(25), np.int64(26)), 'ncon_network': [(6, 19, 9, 11, 5), (8, 20, 9, 13, 7), (18, 8, 6, 4), (11, 22, 14, 16, 10), (13, 23, 14, 17, 12), (16, 17, 21, 15), (-1, -3, 4, 5, 7, 1, 2, 3), (1, 2, 3, 15, 12, 10), (24, 25, 26, 18, 19, 20), (-2, -4, 21, 23, 22, 24, 25, 26)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 5, 5, 4, 8, 6, 6, 8), 'network': [[(6, 19, 9, 11, 5), (8, 20, 9, 13, 7), (18, 8, 6, 4)], [(11, 22, 14, 16, 10), (13, 23, 14, 17, 12), (16, 17, 21, 15)], (-1, -3, 4, 5, 7, 1, 2, 3), (1, 2, 3, 15, 12, 10), (24, 25, 26, 18, 19, 20), (-2, -4, 21, 23, 22, 24, 25, 26)], 'network_additional_tensors': [(-1, -3, 4, 5, 7, 1, 2, 3), (1, 2, 3, 15, 12, 10), (24, 25, 26, 18, 19, 20), (-2, -4, 21, 23, 22, 24, 25, 26)], 'network_peps_tensors': [[(6, 19, 9, 11, 5), (8, 20, 9, 13, 7), (18, 8, 6, 4)], [(11, 22, 14, 16, 10), (13, 23, 14, 17, 12), (16, 17, 21, 15)]], 'tensors': [['tensor', 'tensor_conj', 'T4'], ['tensor', 'tensor_conj', 'T2'], 'top_left', 'top_right', 'bottom_left', 'bottom_right']}
honeycomb_density_matrix_bottom: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T2', 'C3', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11)), 'ncon_flat_network': (np.int64(4), np.int64(5), np.int64(11), np.int64(-5), np.int64(8), np.int64(-2), np.int64(6), np.int64(7), np.int64(11), np.int64(-6), np.int64(9), np.int64(-3), np.int64(8), np.int64(9), np.int64(2), np.int64(-4), np.int64(10), np.int64(2), np.int64(1), np.int64(10), np.int64(7), np.int64(5), np.int64(1), np.int64(3), np.int64(3), np.int64(6), np.int64(4), np.int64(-1)), 'ncon_network': [(4, 5, 11, -5, 8, -2), (6, 7, 11, -6, 9, -3), (8, 9, 2, -4), (10, 2), (1, 10, 7, 5), (1, 3), (3, 6, 4, -1)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (6, 6, 4, 2, 4, 2, 4), 'network': [[(4, 5, 11, -5, 8, -2), (6, 7, 11, -6, 9, -3), (8, 9, 2, -4), (10, 2), (1, 10, 7, 5), (1, 3), (3, 6, 4, -1)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(4, 5, 11, -5, 8, -2), (6, 7, 11, -6, 9, -3), (8, 9, 2, -4), (10, 2), (1, 10, 7, 5), (1, 3), (3, 6, 4, -1)]], 'tensors': [['tensor', 'tensor_conj', 'T2', 'C3', 'T3', 'C4', 'T4']]}
honeycomb_density_matrix_left: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11)), 'ncon_flat_network': (np.int64(5), np.int64(9), np.int64(11), np.int64(-1), np.int64(-4), np.int64(4), np.int64(7), np.int64(10), np.int64(11), np.int64(-2), np.int64(-5), np.int64(6), np.int64(1), np.int64(3), np.int64(3), np.int64(4), np.int64(6), np.int64(-3), np.int64(2), np.int64(-6), np.int64(10), np.int64(9), np.int64(2), np.int64(8), np.int64(8), np.int64(7), np.int64(5), np.int64(1)), 'ncon_network': [(5, 9, 11, -1, -4, 4), (7, 10, 11, -2, -5, 6), (1, 3), (3, 4, 6, -3), (2, -6, 10, 9), (2, 8), (8, 7, 5, 1)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (6, 6, 2, 4, 4, 2, 4), 'network': [[(5, 9, 11, -1, -4, 4), (7, 10, 11, -2, -5, 6), (1, 3), (3, 4, 6, -3), (2, -6, 10, 9), (2, 8), (8, 7, 5, 1)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(5, 9, 11, -1, -4, 4), (7, 10, 11, -2, -5, 6), (1, 3), (3, 4, 6, -3), (2, -6, 10, 9), (2, 8), (8, 7, 5, 1)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'T3', 'C4', 'T4']]}
honeycomb_density_matrix_right: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2', 'T3', 'C3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11)), 'ncon_flat_network': (np.int64(-2), np.int64(8), np.int64(-5), np.int64(11), np.int64(5), np.int64(4), np.int64(-3), np.int64(9), np.int64(-6), np.int64(11), np.int64(7), np.int64(6), np.int64(-1), np.int64(4), np.int64(6), np.int64(3), np.int64(3), np.int64(1), np.int64(5), np.int64(7), np.int64(10), np.int64(1), np.int64(-4), np.int64(2), np.int64(9), np.int64(8), np.int64(2), np.int64(10)), 'ncon_network': [(-2, 8, -5, 11, 5, 4), (-3, 9, -6, 11, 7, 6), (-1, 4, 6, 3), (3, 1), (5, 7, 10, 1), (-4, 2, 9, 8), (2, 10)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (6, 6, 4, 2, 4, 4, 2), 'network': [[(-2, 8, -5, 11, 5, 4), (-3, 9, -6, 11, 7, 6), (-1, 4, 6, 3), (3, 1), (5, 7, 10, 1), (-4, 2, 9, 8), (2, 10)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-2, 8, -5, 11, 5, 4), (-3, 9, -6, 11, 7, 6), (-1, 4, 6, 3), (3, 1), (5, 7, 10, 1), (-4, 2, 9, 8), (2, 10)]], 'tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2', 'T3', 'C3']]}
honeycomb_density_matrix_top: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11)), 'ncon_flat_network': (np.int64(8), np.int64(-4), np.int64(-1), np.int64(11), np.int64(4), np.int64(5), np.int64(9), np.int64(-5), np.int64(-2), np.int64(11), np.int64(6), np.int64(7), np.int64(2), np.int64(10), np.int64(10), np.int64(5), np.int64(7), np.int64(1), np.int64(1), np.int64(3), np.int64(4), np.int64(6), np.int64(-6), np.int64(3), np.int64(-3), np.int64(9), np.int64(8), np.int64(2)), 'ncon_network': [(8, -4, -1, 11, 4, 5), (9, -5, -2, 11, 6, 7), (2, 10), (10, 5, 7, 1), (1, 3), (4, 6, -6, 3), (-3, 9, 8, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6)), 'ncon_sizes': (6, 6, 2, 4, 2, 4, 4), 'network': [[(8, -4, -1, 11, 4, 5), (9, -5, -2, 11, 6, 7), (2, 10), (10, 5, 7, 1), (1, 3), (4, 6, -6, 3), (-3, 9, 8, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(8, -4, -1, 11, 4, 5), (9, -5, -2, 11, 6, 7), (2, 10), (10, 5, 7, 1), (1, 3), (4, 6, -6, 3), (-3, 9, 8, 2)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'T4']]}
kagome_downward_triangle_bottom_left: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8)), 'ncon_flat_network': (np.int64(3), np.int64(4), np.int64(7), np.int64(8), np.int64(-1), np.int64(-5), np.int64(-7), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(-2), np.int64(-4), np.int64(-8), np.int64(2), np.int64(-3), np.int64(6), np.int64(4), np.int64(2), np.int64(1), np.int64(1), np.int64(5), np.int64(3), np.int64(-6)), 'ncon_network': [(3, 4, 7, 8, -1, -5, -7), (5, 6, 7, 8, -2, -4, -8), (2, -3, 6, 4), (2, 1), (1, 5, 3, -6)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7), np.int64(-8)), 'ncon_sizes': (7, 7, 4, 2, 4), 'network': [[(3, 4, 7, 8, -1, -5, -7), (5, 6, 7, 8, -2, -4, -8), (2, -3, 6, 4), (2, 1), (1, 5, 3, -6)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(3, 4, 7, 8, -1, -5, -7), (5, 6, 7, 8, -2, -4, -8), (2, -3, 6, 4), (2, 1), (1, 5, 3, -6)]], 'tensors': [['tensor', 'tensor_conj', 'T3', 'C4', 'T4']]}
kagome_downward_triangle_bottom_right: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T2', 'T3', 'C3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8)), 'ncon_flat_network': (np.int64(-8), np.int64(3), np.int64(-1), np.int64(7), np.int64(8), np.int64(4), np.int64(-5), np.int64(-7), np.int64(5), np.int64(-2), np.int64(7), np.int64(8), np.int64(6), np.int64(-4), np.int64(4), np.int64(6), np.int64(2), np.int64(-3), np.int64(-6), np.int64(1), np.int64(5), np.int64(3), np.int64(1), np.int64(2)), 'ncon_network': [(-8, 3, -1, 7, 8, 4, -5), (-7, 5, -2, 7, 8, 6, -4), (4, 6, 2, -3), (-6, 1, 5, 3), (1, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7), np.int64(-8)), 'ncon_sizes': (7, 7, 4, 4, 2), 'network': [[(-8, 3, -1, 7, 8, 4, -5), (-7, 5, -2, 7, 8, 6, -4), (4, 6, 2, -3), (-6, 1, 5, 3), (1, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-8, 3, -1, 7, 8, 4, -5), (-7, 5, -2, 7, 8, 6, -4), (4, 6, 2, -3), (-6, 1, 5, 3), (1, 2)]], 'tensors': [['tensor', 'tensor_conj', 'T2', 'T3', 'C3']]}
kagome_downward_triangle_top_left: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T4', 'C1', 'T1']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8)), 'ncon_flat_network': (np.int64(3), np.int64(-4), np.int64(7), np.int64(8), np.int64(-1), np.int64(-7), np.int64(4), np.int64(5), np.int64(-5), np.int64(7), np.int64(8), np.int64(-2), np.int64(-8), np.int64(6), np.int64(-3), np.int64(5), np.int64(3), np.int64(1), np.int64(1), np.int64(2), np.int64(2), np.int64(4), np.int64(6), np.int64(-6)), 'ncon_network': [(3, -4, 7, 8, -1, -7, 4), (5, -5, 7, 8, -2, -8, 6), (-3, 5, 3, 1), (1, 2), (2, 4, 6, -6)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7), np.int64(-8)), 'ncon_sizes': (7, 7, 4, 2, 4), 'network': [[(3, -4, 7, 8, -1, -7, 4), (5, -5, 7, 8, -2, -8, 6), (-3, 5, 3, 1), (1, 2), (2, 4, 6, -6)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(3, -4, 7, 8, -1, -7, 4), (5, -5, 7, 8, -2, -8, 6), (-3, 5, 3, 1), (1, 2), (2, 4, 6, -6)]], 'tensors': [['tensor', 'tensor_conj', 'T4', 'C1', 'T1']]}
kagome_downward_triangle_top_right: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8)), 'ncon_flat_network': (np.int64(-4), np.int64(-8), np.int64(7), np.int64(-1), np.int64(8), np.int64(4), np.int64(3), np.int64(-5), np.int64(-7), np.int64(7), np.int64(-2), np.int64(8), np.int64(6), np.int64(5), np.int64(-3), np.int64(3), np.int64(5), np.int64(1), np.int64(1), np.int64(2), np.int64(4), np.int64(6), np.int64(-6), np.int64(2)), 'ncon_network': [(-4, -8, 7, -1, 8, 4, 3), (-5, -7, 7, -2, 8, 6, 5), (-3, 3, 5, 1), (1, 2), (4, 6, -6, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7), np.int64(-8)), 'ncon_sizes': (7, 7, 4, 2, 4), 'network': [[(-4, -8, 7, -1, 8, 4, 3), (-5, -7, 7, -2, 8, 6, 5), (-3, 3, 5, 1), (1, 2), (4, 6, -6, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-4, -8, 7, -1, 8, 4, 3), (-5, -7, 7, -2, 8, 6, 5), (-3, 3, 5, 1), (1, 2), (4, 6, -6, 2)]], 'tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2']]}
kagome_pess3_single_site_mapping: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['up_simplex', 'down_simplex', 'site1', 'site2', 'site3'], 'filter_peps_tensors': [], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(1), np.int64(2), np.int64(3), np.int64(-1), np.int64(-7), np.int64(4), np.int64(4), np.int64(-3), np.int64(1), np.int64(-2), np.int64(-4), np.int64(2), np.int64(-6), np.int64(-5), np.int64(3)), 'ncon_network': [(1, 2, 3), (-1, -7, 4), (4, -3, 1), (-2, -4, 2), (-6, -5, 3)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7)), 'ncon_sizes': (3, 3, 3, 3, 3), 'network': [(1, 2, 3), (-1, -7, 4), (4, -3, 1), (-2, -4, 2), (-6, -5, 3)], 'network_additional_tensors': [(1, 2, 3), (-1, -7, 4), (4, -3, 1), (-2, -4, 2), (-6, -5, 3)], 'network_peps_tensors': [], 'tensors': ['up_simplex', 'down_simplex', 'site1', 'site2', 'site3']}
kagome_pess_mapping_upper_triangle: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['up', 'down', 'site_1', 'site_2', 'site_3'], 'filter_peps_tensors': [], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(1), np.int64(2), np.int64(3), np.int64(-1), np.int64(4), np.int64(-2), np.int64(-7), np.int64(-3), np.int64(1), np.int64(4), np.int64(-4), np.int64(2), np.int64(-6), np.int64(-5), np.int64(3)), 'ncon_network': [[1, 2, 3], [-1, 4, -2], [-7, -3, 1], [4, -4, 2], [-6, -5, 3]], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7)), 'ncon_sizes': (3, 3, 3, 3, 3), 'network': [[1, 2, 3], [-1, 4, -2], [-7, -3, 1], [4, -4, 2], [-6, -5, 3]], 'network_additional_tensors': [[1, 2, 3], [-1, 4, -2], [-7, -3, 1], [4, -4, 2], [-6, -5, 3]], 'network_peps_tensors': [], 'tensors': ['up', 'down', 'site_1', 'site_2', 'site_3']}
maple_leaf_pess_mapping: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['t1', 't2', 't3', 'up', 'down'], 'filter_peps_tensors': [], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4)), 'ncon_flat_network': (np.int64(-3), np.int64(-1), np.int64(1), np.int64(-4), np.int64(-2), np.int64(2), np.int64(-5), np.int64(4), np.int64(3), np.int64(1), np.int64(2), np.int64(4), np.int64(3), np.int64(-7), np.int64(-6)), 'ncon_network': [(-3, -1, 1), (-4, -2, 2), (-5, 4, 3), (1, 2, 4), (3, -7, -6)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7)), 'ncon_sizes': (3, 3, 3, 3, 3), 'network': [(-3, -1, 1), (-4, -2, 2), (-5, 4, 3), (1, 2, 4), (3, -7, -6)], 'network_additional_tensors': [(-3, -1, 1), (-4, -2, 2), (-5, 4, 3), (1, 2, 4), (3, -7, -6)], 'network_peps_tensors': [], 'tensors': ['t1', 't2', 't3', 'up', 'down']}
square_kagome_pess_mapping: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['t1', 't2', 't3', 't4', 't5', 't6', 'simplex_left', 'simplex_top', 'simplex_right', 'simplex_bottom'], 'filter_peps_tensors': [], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10)), 'ncon_flat_network': (np.int64(-2), np.int64(-3), np.int64(9), np.int64(7), np.int64(-4), np.int64(1), np.int64(5), np.int64(-5), np.int64(2), np.int64(6), np.int64(-6), np.int64(3), np.int64(8), np.int64(-7), np.int64(4), np.int64(-9), np.int64(-8), np.int64(10), np.int64(-1), np.int64(5), np.int64(1), np.int64(-10), np.int64(8), np.int64(2), np.int64(10), np.int64(6), np.int64(4), np.int64(9), np.int64(7), np.int64(3)), 'ncon_network': [(-2, -3, 9), (7, -4, 1), (5, -5, 2), (6, -6, 3), (8, -7, 4), (-9, -8, 10), (-1, 5, 1), (-10, 8, 2), (10, 6, 4), (9, 7, 3)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5), np.int64(-6), np.int64(-7), np.int64(-8), np.int64(-9), np.int64(-10)), 'ncon_sizes': (3, 3, 3, 3, 3, 3, 3, 3, 3, 3), 'network': [(-2, -3, 9), (7, -4, 1), (5, -5, 2), (6, -6, 3), (8, -7, 4), (-9, -8, 10), (-1, 5, 1), (-10, 8, 2), (10, 6, 4), (9, 7, 3)], 'network_additional_tensors': [(-2, -3, 9), (7, -4, 1), (5, -5, 2), (6, -6, 3), (8, -7, 4), (-9, -8, 10), (-1, 5, 1), (-10, 8, 2), (10, 6, 4), (9, 7, 3)], 'network_peps_tensors': [], 'tensors': ['t1', 't2', 't3', 't4', 't5', 't6', 'simplex_left', 'simplex_top', 'simplex_right', 'simplex_bottom']}
triangular_pess_mapping: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': ['site', 'simplex'], 'filter_peps_tensors': [], 'ncon_con_order': (np.int64(1),), 'ncon_flat_network': (np.int64(-1), np.int64(1), np.int64(-2), np.int64(-3), np.int64(-5), np.int64(1), np.int64(-4)), 'ncon_network': [(-1, 1, -2, -3), (-5, 1, -4)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4), np.int64(-5)), 'ncon_sizes': (4, 3), 'network': [(-1, 1, -2, -3), (-5, 1, -4)], 'network_additional_tensors': [(-1, 1, -2, -3), (-5, 1, -4)], 'network_peps_tensors': [], 'tensors': ['site', 'simplex']}
unitcell_bond_dim_change_bottom: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T2', 'C3', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11)), 'ncon_flat_network': (np.int64(4), np.int64(5), np.int64(11), np.int64(8), np.int64(-1), np.int64(6), np.int64(7), np.int64(11), np.int64(9), np.int64(-4), np.int64(8), np.int64(9), np.int64(2), np.int64(-3), np.int64(10), np.int64(2), np.int64(1), np.int64(10), np.int64(7), np.int64(5), np.int64(1), np.int64(3), np.int64(3), np.int64(6), np.int64(4), np.int64(-2)), 'ncon_network': [(4, 5, 11, 8, -1), (6, 7, 11, 9, -4), (8, 9, 2, -3), (10, 2), (1, 10, 7, 5), (1, 3), (3, 6, 4, -2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 2, 4, 2, 4), 'network': [[(4, 5, 11, 8, -1), (6, 7, 11, 9, -4), (8, 9, 2, -3), (10, 2), (1, 10, 7, 5), (1, 3), (3, 6, 4, -2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(4, 5, 11, 8, -1), (6, 7, 11, 9, -4), (8, 9, 2, -3), (10, 2), (1, 10, 7, 5), (1, 3), (3, 6, 4, -2)]], 'tensors': [['tensor', 'tensor_conj', 'T2', 'C3', 'T3', 'C4', 'T4']]}
unitcell_bond_dim_change_left: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'T3', 'C4', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11)), 'ncon_flat_network': (np.int64(5), np.int64(9), np.int64(11), np.int64(-4), np.int64(4), np.int64(7), np.int64(10), np.int64(11), np.int64(-3), np.int64(6), np.int64(1), np.int64(3), np.int64(3), np.int64(4), np.int64(6), np.int64(-1), np.int64(2), np.int64(-2), np.int64(10), np.int64(9), np.int64(2), np.int64(8), np.int64(8), np.int64(7), np.int64(5), np.int64(1)), 'ncon_network': [(5, 9, 11, -4, 4), (7, 10, 11, -3, 6), (1, 3), (3, 4, 6, -1), (2, -2, 10, 9), (2, 8), (8, 7, 5, 1)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 2, 4, 4, 2, 4), 'network': [[(5, 9, 11, -4, 4), (7, 10, 11, -3, 6), (1, 3), (3, 4, 6, -1), (2, -2, 10, 9), (2, 8), (8, 7, 5, 1)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(5, 9, 11, -4, 4), (7, 10, 11, -3, 6), (1, 3), (3, 4, 6, -1), (2, -2, 10, 9), (2, 8), (8, 7, 5, 1)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'T3', 'C4', 'T4']]}
unitcell_bond_dim_change_right: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2', 'T3', 'C3']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11)), 'ncon_flat_network': (np.int64(-1), np.int64(8), np.int64(11), np.int64(5), np.int64(4), np.int64(-4), np.int64(9), np.int64(11), np.int64(7), np.int64(6), np.int64(-2), np.int64(4), np.int64(6), np.int64(3), np.int64(3), np.int64(1), np.int64(5), np.int64(7), np.int64(10), np.int64(1), np.int64(-3), np.int64(2), np.int64(9), np.int64(8), np.int64(2), np.int64(10)), 'ncon_network': [(-1, 8, 11, 5, 4), (-4, 9, 11, 7, 6), (-2, 4, 6, 3), (3, 1), (5, 7, 10, 1), (-3, 2, 9, 8), (2, 10)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 4, 2, 4, 4, 2), 'network': [[(-1, 8, 11, 5, 4), (-4, 9, 11, 7, 6), (-2, 4, 6, 3), (3, 1), (5, 7, 10, 1), (-3, 2, 9, 8), (2, 10)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(-1, 8, 11, 5, 4), (-4, 9, 11, 7, 6), (-2, 4, 6, 3), (3, 1), (5, 7, 10, 1), (-3, 2, 9, 8), (2, 10)]], 'tensors': [['tensor', 'tensor_conj', 'T1', 'C2', 'T2', 'T3', 'C3']]}
unitcell_bond_dim_change_top: Dict[str, List[List[str | List[str]] | List[Tuple[int] | List[Tuple[int]]]]] = {'filter_additional_tensors': [], 'filter_peps_tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'T4']], 'ncon_con_order': (np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11)), 'ncon_flat_network': (np.int64(8), np.int64(-4), np.int64(11), np.int64(4), np.int64(5), np.int64(9), np.int64(-3), np.int64(11), np.int64(6), np.int64(7), np.int64(2), np.int64(10), np.int64(10), np.int64(5), np.int64(7), np.int64(1), np.int64(1), np.int64(3), np.int64(4), np.int64(6), np.int64(-2), np.int64(3), np.int64(-1), np.int64(9), np.int64(8), np.int64(2)), 'ncon_network': [(8, -4, 11, 4, 5), (9, -3, 11, 6, 7), (2, 10), (10, 5, 7, 1), (1, 3), (4, 6, -2, 3), (-1, 9, 8, 2)], 'ncon_out_order': (np.int64(-1), np.int64(-2), np.int64(-3), np.int64(-4)), 'ncon_sizes': (5, 5, 2, 4, 2, 4, 4), 'network': [[(8, -4, 11, 4, 5), (9, -3, 11, 6, 7), (2, 10), (10, 5, 7, 1), (1, 3), (4, 6, -2, 3), (-1, 9, 8, 2)]], 'network_additional_tensors': [], 'network_peps_tensors': [[(8, -4, 11, 4, 5), (9, -3, 11, 6, 7), (2, 10), (10, 5, 7, 1), (1, 3), (4, 6, -2, 3), (-1, 9, 8, 2)]], 'tensors': [['tensor', 'tensor_conj', 'C1', 'T1', 'C2', 'T2', 'T4']]}