Skip to main content
IBM Quantum Platform

LayerwiseEvolver

class LayerwiseEvolver(evolution_state, layers, *args, **kwargs)

GitHub

Bases: TEBDEvolver

Un caso especial de la TEBDEvolver basado en modelos de evolución por capas.

Como también se explica en tenpy_layersesta implementación extrae las actualizaciones de bonos pares/impares alternantes implementadas dentro del original TEBDEngine para que pasen a ser responsabilidad del usuario final. Para ello, sustituye el Hamiltoniano único proporcionado a la instancia TEBDEvolver por una secuencia de LayerModel instancias. Cada uno de ellos codifica una única capa de interacciones. Éstas deben imponer la alternancia de actualizaciones de enlaces pares e impares de la red tensorial subyacente.

La motivación de esta interfaz más complicada es que proporciona mucha más flexibilidad y permite a los usuarios definir fórmulas de productos Trotter personalizadas en lugar de limitarse a las implementadas directamente por TeNPy.

Inicializar una LayerwiseEvolver instancia.

Parámetros

  • evolution_state (tenpy_tebd.MPOState) – enviado a TEBDEvolver. Para más información, consulte su documentación.
  • layers (list[LayerModel]) – la lista de modelos que describen capas individuales de interacciones. Véase más arriba, así como las explicaciones facilitadas en tenpy_layers.
  • args - cualquier otro argumento posicional será reenviado al TEBDEvolver constructor.
  • kwargs - cualquier otro argumento de palabra clave se enviará al constructor TEBDEvolver constructor.

Atributos

layers

Las capas de interacciones utilizadas para aplicar la evolución temporal.

dt

El paso de tiempo que utilizará esta instancia de evolución temporal.


Métodos

calc_U

calc_U(order, delta_t, type_evo='real', E_offset=None)

GitHub

Calcula las actualizaciones de los bonos locales.

Esto se adapta calc_U() para trabajar con la implementación por capas.

Parámetros

  • order (int) – esto se está ignorando.
  • delta_t (float) – el paso de tiempo a utilizar.
  • type_evo (str) – el tipo de evolución temporal. Por el momento no se admite la evolución imaginaria del tiempo.
  • E_offset (list[float] | None) – que se aplique una compensación de energía constante.

Tipo de retorno

Ninguna

evolve

evolve(N_steps, dt)

GitHub

Realizar un único paso temporal de TEBD.

Parámetros

  • N_steps (int) – debe ser siempre 1 para este evolucionador temporal, de lo contrario se producirá un error (véase más abajo).
  • dt (float) – el paso de tiempo a utilizar.

Devuelve

El error de truncamiento.

Eleva

RuntimeError - si N_steps no es igual a 1.

Tipo de retorno

TruncationError

suzuki_trotter_decomposition

static suzuki_trotter_decomposition(order, N_steps)

GitHub

Devuelve una lista vacía.

Nota

Este método no está definido para esta subclase pero no podemos generar un error al llamarlo debido al flujo interno del algoritmo. En su lugar, la descomposición de Trotter en esta clase se codifica directamente en la clase layers.

Parámetros

  • order (int) – está siendo ignorada.
  • N_steps (int) – está siendo ignorada.

Devuelve

Una lista vacía.

Tipo de retorno

lista[ tupla[ int, int ]]

suzuki_trotter_time_steps

static suzuki_trotter_time_steps(order)

GitHub

Devuelve una lista vacía.

Nota

Este método no está definido para esta subclase pero no podemos generar un error al llamarlo debido al flujo interno del algoritmo. En su lugar, la descomposición de Trotter en esta clase se codifica directamente en la clase layers.

Parámetros

order (int) – está siendo ignorada.

Devuelve

Una lista vacía.

Tipo de retorno

lista[ float ]

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.