quimb.tensor.tensor_mera#

Functions

is_power_of_2(x)

Classes

MERA(L[, uni, iso, phys_dim, dangle, ...])

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

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]#

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.

classmethod rand_invar(L, phys_dim=2, dtype=<class 'float'>, **mera_opts)[source]#

Generate a random translational and scale invariant MERA.