TEBDEvolver
class TEBDEvolver(evolution_state, *args, order=2, **kwargs)
Un algoritmo TEBD para evolucionar un MPO interno.
Como se explica con más detalle en quimb_tebdesta ampliación de quimbquimb.tensor.TEBD desarrolla un operador de producto matricial interno (MPO) en lugar del estado de producto matricial convencional (MPS).
Más concretamente, se espera que el objeto interno sea un MPOState.
La API de esta clase es en realidad mucho mayor de lo que se muestra aquí, porque hereda métodos adicionales de la clase quimb.tensor.TEBD clase base. Sin embargo, aquí no duplicamos esa API.
Inicializar una TEBDEvolver instancia.
Parámetros
-
evolution_state (MPOState | MatrixProductState) –
una referencia al estado de evolución temporal. Esto sobrescribe el argumento
p0de la clase subyacentequimb.tensor.TEBDsubyacente.AvisoA diferencia del comportamiento por defecto, este estado NO será canonicalizado. En su lugar, se toma tal cual y se guarda por referencia (es decir, no se crea ninguna copia). Esto asegura que el mismo objeto puede ser compartido entre dos instancias de esta clase, como lo requiere el
DynamicMPFalgoritmo. -
args - cualquier otro argumento posicional se enviará al
quimb.tensor.TEBDconstructor. -
order (int) – el orden de la fórmula Suzuki-Trotter incorporada que se utilizará durante la evolución temporal. Este será el valor enviado al método
quimb.tensor.TEBD.step()método. -
kwargs - cualquier otro argumento de palabra clave se enviará al constructor
quimb.tensor.TEBDconstructor.
Atributos
conjugate
Devuelve si esta instancia de evolvente temporal actúa sobre el lado derecho.
evolved_time
Devuelve el tiempo de evolución actual.
Métodos
step
step()
Realizar un único paso temporal de TEBD.
Esto esencialmente llama a quimb.tensor.TEBD.step() y reenvía el valor del atributo order que se proporcionó en la construcción.
Tipo de retorno
Ninguna
sweep
sweep(direction, dt_frac, dt=None, queue=False)
Realiza un único barrido del algoritmo TEBD [1].
El algoritmo TEBD actualiza los enlaces pares e impares de la red tensorial subyacente de forma alterna. En la implementación de la clase quimb.tensor.TEBD clase base, esto se realiza en forma de "barridos" alternos en dirección izquierda y derecha sobre el estado interno.
Estamos sobrescribiendo el comportamiento de este método en esta subclase, para llamar al método especializado gate_split() especializado.
Parámetros
- direction (Literal['left', 'right']) – la dirección del barrido. Debe ser una de las cadenas literales
"left"o"right". - dt_frac (float) – para qué fracción del paso de tiempo interno (
dt) evolucionar en el tiempo. Así es como cualquier fórmula Suzuki-Trotter incorporada especifica su división. - dt (float | None) – un valor opcional para sobrescribir el paso de tiempo interno.
- queue (bool) – si se establece en
True, aparecerá un mensajeNotImplementedError.
Eleva
- NotImplementedError - si
queue=True. - NotImplementedError - si
cyclicesTrue. - NotImplementedError - si
imagesTrue. - RuntimeError - si se proporciona un
directionno válido.
Tipo de retorno
Ninguna
Referencias
[1]: https://en.wikipedia.org/wiki/Time-evolving _block_decimation