quimb.tensor.tensor_mera ======================== .. py:module:: quimb.tensor.tensor_mera .. autoapi-nested-parse:: Tools for building and computing with MERA. Classes ------- .. autoapisummary:: quimb.tensor.tensor_mera.MERA Functions --------- .. autoapisummary:: quimb.tensor.tensor_mera.is_power_of_2 Module Contents --------------- .. py:function:: is_power_of_2(x) .. py:class:: MERA(L, uni=None, iso=None, phys_dim=2, dangle=False, site_ind_id='k{}', site_tag_id='I{}', **tn_opts) Bases: :py:obj:`quimb.tensor.tensor_1d.TensorNetwork1DVector`, :py:obj:`quimb.tensor.tensor_1d.TensorNetwork1D`, :py:obj:`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 :param L: The number of phyiscal sites. Shoule be a power of 2. :type L: int :param uni: The unitary operator(s). These will be cycled over and placed from bottom left to top right in diagram above. :type uni: array or sequence of arrays of shape (d, d, d, d). :param iso: The isometry operator(s). These will be cycled over and placed from bottom left to top right in diagram above. :type iso: array or sequence of arrays of shape (d, d, d) :param phys_dim: The dimension of the local hilbert space. :type phys_dim: int, optional :param dangle: 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. :type dangle: bool, optional .. py:attribute:: _EXTRA_PROPS :value: ('_site_ind_id', '_site_tag_id', 'cyclic', '_L') .. py:attribute:: _CONTRACT_STRUCTURED :value: False .. py:attribute:: _site_ind_id :value: 'k{}' .. py:attribute:: _site_tag_id :value: 'I{}' .. py:attribute:: cyclic :value: True .. py:attribute:: _L .. py:method:: rand(L, max_bond=None, phys_dim=2, dtype=float, **mera_opts) :classmethod: .. py:method:: rand_invar(L, phys_dim=2, dtype=float, **mera_opts) :classmethod: Generate a random translational and scale invariant MERA.