MPOState
class MPOState(*args, **kwargs)
Basi: MatrixProductOperator, State
Un MPO che applica il calibro Vidal.
Questa specializzazione del quimb esistente quimb.tensor.MatrixProductOperator applica il calibro di Vidal per tutta la sua esistenza. Questo assicura un comportamento stabile dell'algoritmo DynamicMPF quando si utilizza l'algoritmo TEBDEvolver.
Inizializza un'istanza MPOState istanza.
Tutti gli argomenti (posizionali e parole chiave) sono semplicemente inoltrati al costruttore quimb.tensor.MatrixProductOperator al costruttore. Inoltre, l'attributo vidal_singular_values viene inizializzato a un elenco di liste vuote di lunghezza pari al numero di siti di questo MPO.
Parametri
- args - tutti gli argomenti posizionali saranno inoltrati al costruttore
quimb.tensor.MatrixProductStatecostruttore. - kwargs - tutti gli argomenti delle parole chiave saranno inoltrati al costruttore
quimb.tensor.MatrixProductStateal costruttore.
Attributi
vidal_singular_values
Tipo: list[list[float]]
Un elenco annidato di valori singolari. L'elenco esterno ha la stessa lunghezza di questo MPO (quimb.tensor.TensorNetwork1D.L). Ogni elemento è un altro elenco di tutti i valori singolari per determinare il calibro di Vidal in quel sito.
Metodi
gate_split
gate_split(gate, where, inplace=False, conj=False, **split_opts)
Applicare un cancello a due siti e riattribuirlo all'MPO.
Il principio di base di questo metodo è lo stesso di quello di quimb.tensor.MatrixProductState.gate_split(). Tuttavia, l'implementazione garantisce la conservazione della sagoma di Vidal.
Parametri
-
gate (ndarray) – il cancello da applicare all'MPO. La sua forma deve essere
(d**2, d**2)per una dimensione fisica did, oppure una sua versione rimodellata. -
where (tuple[int, int]) – gli indici dei siti in cui applicare il gate.
-
inplace (bool) – se eseguire l'applicazione del gate in-place o se restituire un nuovo
MPOStatecon il gate applicato. -
conj (bool) –
se il gate deve essere applicato alla parte inferiore (
conj=False, il valore predefinito,lower_ind()) o superiore (conj=True,upper_ind()) degli indici dell'MPO sottostante.NotaQuesto è essenzialmente il modo in cui il LHS e il RHS della formula
DynamicMPFvengono differenziati, passando la loro proprietàEvolver.conjugatea questo argomento. -
split_opts - argomenti aggiuntivi delle parole chiave che saranno inoltrati alla funzione
quimb.tensor.tensor_split()funzione. Questi possono essere utilizzati per influenzare il troncamento del tensore prima che venga ritratto nell'MPO.
Risultati
Il MPOState con il gate applicato e contratto.
Tipo di restituzione
gate_split_
gate_split_(gate, where, *, inplace=True, conj=False, **split_opts)
Parametri
Tipo di restituzione
overlap
overlap(initial_state)
Calcolare la sovrapposizione di questo stato con lo stato iniziale fornito.
Questa implementazione supporta solo istanze di quimb.tensor.MatrixProductState per initial_state.
Parametri
initial_state (Any) – lo stato iniziale con cui calcolare la sovrapposizione.
Aumenti
TypeError - se lo stato iniziale fornito ha un tipo incompatibile.
Risultati
La sovrapposizione di questo stato con quello fornito.
Tipo di restituzione