LayerwiseEvolver
class LayerwiseEvolver(evolution_state, layers, *args, **kwargs)
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
TEBDEvolverconstructor. - kwargs - cualquier otro argumento de palabra clave se enviará al constructor
TEBDEvolverconstructor.
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)
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)
Realizar un único paso temporal de TEBD.
Parámetros
- N_steps (int) – debe ser siempre
1para 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
suzuki_trotter_decomposition
static suzuki_trotter_decomposition(order, N_steps)
Devuelve una lista vacía.
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
Devuelve
Una lista vacía.
Tipo de retorno
suzuki_trotter_time_steps
static suzuki_trotter_time_steps(order)
Devuelve una lista vacía.
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