LayerwiseEvolver
class LayerwiseEvolver(evolution_state, layers, *args, **kwargs)
Basi: TEBDEvolver
Un caso particolare di TEBDEvolver basato su modelli di evoluzione a strati.
Come spiegato anche in tenpy_layers, questa implementazione estrae l'aggiornamento alternato dei legami pari/dispari implementato all'interno dell'originale TEBDEngine per diventare responsabilità degli utenti finali. Lo fa sostituendo la singola Hamiltoniana fornita all'istanza con una sequenza di TEBDEvolver con una sequenza di LayerModel istanze. Ogni singola istanza di questi codifica un singolo livello di interazioni. Questi dovrebbero imporre l'aggiornamento alternato dei legami pari e dispari della rete tensoriale sottostante.
La motivazione di questa interfaccia più complessa è che offre una maggiore flessibilità e consente agli utenti di definire formule di prodotto Trotter personalizzate, anziché limitarsi a quelle implementate direttamente da TeNPy.
Inizializza un'istanza LayerwiseEvolver istanza.
Parametri
- evolution_state (tenpy_tebd.MPOState) – inoltrata a
TEBDEvolver. Per maggiori dettagli, consultare la documentazione. - layers (list[LayerModel]) – l'elenco dei modelli che descrivono singoli strati di interazioni. Vedi sopra e le spiegazioni fornite in
tenpy_layers. - args - qualsiasi altro argomento posizionale sarà inoltrato al costruttore
TEBDEvolvercostruttore. - kwargs - qualsiasi altro argomento di parola chiave sarà inoltrato al costruttore
TEBDEvolveral costruttore.
Attributi
layers
Gli strati di interazioni utilizzati per implementare l'evoluzione temporale.
dt
Il passo temporale da utilizzare per questa istanza di evoluzione temporale.
Metodi
calc_U
calc_U(order, delta_t, type_evo='real', E_offset=None)
Calcola gli aggiornamenti delle obbligazioni locali.
Questo si adatta calc_U() per lavorare con l'implementazione a livelli.
Parametri
- order (int) – questo viene ignorato.
- delta_t (float) – il passo temporale da utilizzare.
- type_evo (str) – il tipo di evoluzione temporale. L'evoluzione temporale immaginaria non è attualmente supportata.
- E_offset (list[float] | None) – un offset di energia costante da applicare.
Tipo di restituzione
Nessuna
evolve
evolve(N_steps, dt)
Eseguire un singolo passo temporale di TEBD.
Parametri
- N_steps (int) – deve essere sempre
1per questo time-evolver, altrimenti verrà sollevato un errore (vedere sotto). - dt (float) – il passo temporale da utilizzare.
Risultati
L'errore di troncamento.
Aumenti
RuntimeError - se N_steps non è uguale a 1.
Tipo di restituzione
suzuki_trotter_decomposition
static suzuki_trotter_decomposition(order, N_steps)
Restituisce un elenco vuoto.
Questo metodo è indefinito per questa sottoclasse, ma non si può generare un errore quando viene chiamato, a causa del flusso interno dell'algoritmo. Invece, la decomposizione di Trotter in questa classe è codificata direttamente nel file layers.
Parametri
Risultati
Un elenco vuoto.
Tipo di restituzione
suzuki_trotter_time_steps
static suzuki_trotter_time_steps(order)
Restituisce un elenco vuoto.
Questo metodo è indefinito per questa sottoclasse, ma non si può generare un errore quando viene chiamato, a causa del flusso interno dell'algoritmo. Invece, la decomposizione di Trotter in questa classe è codificata direttamente nel file layers.
Parametri
order (int) – viene ignorata.
Risultati
Un elenco vuoto.
Tipo di restituzione