MPOState
class MPOState(*args, **kwargs)
Bases: MatrixProductOperator, State
Un MPO aplicando el gálibo Vidal.
Esta especialización de quimb existente quimb.tensor.MatrixProductOperator impone el calibre Vidal durante toda su existencia. Esto garantiza un comportamiento estable del DynamicMPF algoritmo cuando se utiliza el TEBDEvolver.
Inicializar una MPOState instancia.
Todos los argumentos (posicionales y de palabra clave) se envían simplemente al constructor quimb.tensor.MatrixProductOperator constructor. Además, el atributo vidal_singular_values se inicializa con una lista de listas vacías de longitud igual al número de centros de esta OPM.
Parámetros
- args - todos los argumentos posicionales serán enviados al
quimb.tensor.MatrixProductStateconstructor. - kwargs - todos los argumentos de las palabras clave se enviarán al
quimb.tensor.MatrixProductStateconstructor.
Atributos
vidal_singular_values
Tipo: list[list[float]]
Una lista anidada de valores singulares. La lista exterior tiene la misma longitud que el propio MPO (quimb.tensor.TensorNetwork1D.L). Cada elemento es otra lista de todos los valores singulares para determinar el calibre Vidal en ese sitio.
Métodos
gate_split
gate_split(gate, where, inplace=False, conj=False, **split_opts)
Aplique una puerta de dos sitios y contrátelo de nuevo en el MPO.
El principio básico de este método es el mismo que el de quimb.tensor.MatrixProductState.gate_split(). Sin embargo, la aplicación garantiza la conservación del indicador Vidal.
Parámetros
-
gate (ndarray) – la puerta que se aplicará al MPO. Su forma debe ser
(d**2, d**2)para una dimensión física ded, o una versión remodelada de la misma. -
where (tuple[int, int]) – los índices de los lugares donde debe aplicarse la puerta.
-
inplace (bool) – si desea realizar la aplicación de la puerta en el lugar o devolver un nuevo
MPOStatecon la puerta aplicada. -
conj (bool) –
si la puerta debe aplicarse a la parte inferior (
conj=False, por defecto,lower_ind()) o superior (conj=True,upper_ind()) del MPO subyacente.NotaAsí es como se diferencian el LHS y el RHS del
DynamicMPFse diferencian, pasando su propiedadEvolver.conjugatea este argumento. -
split_opts - argumentos adicionales que serán enviados a la función
quimb.tensor.tensor_split()función. Pueden utilizarse para afectar al truncamiento del tensor antes de que se contraiga de nuevo en el MPO.
Devuelve
El MPOState con el gate aplicado y contraído.
Tipo de retorno
gate_split_
gate_split_(gate, where, *, inplace=True, conj=False, **split_opts)
Parámetros
Tipo de retorno
overlap
overlap(initial_state)
Calcula el solapamiento de este estado con el estado inicial proporcionado.
Esta implementación sólo admite instancias de quimb.tensor.MatrixProductState para initial_state.
Parámetros
initial_state (Any) – el estado inicial con el que calcular el solapamiento.
Eleva
TypeError - si el estado inicial proporcionado tiene un tipo incompatible.
Devuelve
La superposición de este estado con el proporcionado.
Tipo de retorno