quimb.tensor.tensor_mera

Tools for building and computing with MERA.

Classes

MERA

The Multi-scale Entanglement Renormalization Ansatz (MERA) state:

Functions

Module Contents

quimb.tensor.tensor_mera.is_power_of_2(x)[source]
class quimb.tensor.tensor_mera.MERA(L, uni=None, iso=None, phys_dim=2, dangle=False, site_ind_id='k{}', site_tag_id='I{}', **tn_opts)[source]

Bases: quimb.tensor.tensor_1d.TensorNetwork1DVector, quimb.tensor.tensor_1d.TensorNetwork1D, quimb.tensor.tensor_core.TensorNetwork

The Multi-scale Entanglement Renormalization Ansatz (MERA) state:

    ...     ...     ...     ...     ...     ...
 |       |       |       |       |       |       |
ISO     ISO     ISO     ISO     ISO     ISO     ISO   :
   \   /   \   /   \   /   \   /   \   /   \   /      : '_LAYER1'
    UNI     UNI     UNI     UNI     UNI     UNI       :
   /   \   /   \   /   \   /   \   /   \   /   \
O ISO ISO ISO ISO ISO ISO ISO ISO ISO ISO ISO ISO I   :
| | | | | | | | | | | | | | | | | | | | | | | | | |   : '_LAYER0'
UNI UNI UNI UNI UNI UNI UNI UNI UNI UNI UNI UNI UNI   :
| | | | | | | | | | | | | | | | | | | | | | | | | |  <-- phys_dim
0 1 2 3 4 ....                            ... L-2 L-1
Parameters:
  • L (int) – The number of phyiscal sites. Shoule be a power of 2.

  • uni (array or sequence of arrays of shape (d, d, d, d).) – The unitary operator(s). These will be cycled over and placed from bottom left to top right in diagram above.

  • iso (array or sequence of arrays of shape (d, d, d)) – The isometry operator(s). These will be cycled over and placed from bottom left to top right in diagram above.

  • phys_dim (int, optional) – The dimension of the local hilbert space.

  • dangle (bool, optional) – Whether to leave a dangling index on the final isometry, in order to maintain perfect scale invariance, else join the final unitaries just with an indentity.

_EXTRA_PROPS = ('_site_ind_id', '_site_tag_id', 'cyclic', '_L')
_CONTRACT_STRUCTURED = False
_site_ind_id = 'k{}'
_site_tag_id = 'I{}'
cyclic = True
_L
classmethod rand(L, max_bond=None, phys_dim=2, dtype=float, **mera_opts)[source]
classmethod rand_invar(L, phys_dim=2, dtype=float, **mera_opts)[source]

Generate a random translational and scale invariant MERA.