Tree Tensor Network

class ttnopt.TreeTensorNetwork(edges: List[List[int]], tensors: List[ndarray] | None = None, top_edge_id: int | None = None, gauge_tensor: ndarray | None = None, norm: float | None = None)[source]

Bases: object

A class for Tree Tensor Network (TTN).

__init__(edges: List[List[int]], tensors: List[ndarray] | None = None, top_edge_id: int | None = None, gauge_tensor: ndarray | None = None, norm: float | None = None)[source]

Initialize a TreeTensorNetwork object.

Parameters:
  • edges (List[List[int]]) – Edge id list for each tensor in the order [left, right, top].

  • top_edge_id (int) – edge id that connects to the top tensor.

  • tensors (Optional[List[np.ndarray]]) – tensors for each node.

  • gauge_tensor (Optional[np.ndarray]) – gauge tensor at top_edge_bond. This parameter is not required for some algorithms (Ground State Search, etc.)

classmethod mps(size: int, target: ndarray | None = None, max_bond_dimension: int | None = None)[source]

Initialize an State object with matrix product structure. :param size: The size of system.

classmethod tree(size: int)[source]

Initialize an object with binary tree structure.

Parameters:

size – The size of system.

visualize()[source]

Visualize the TreeTensorNetwork.