MPOState
class MPOState(*args, **kwargs)
Basen: MatrixProductOperator, State
Ein MPO, das die Vidal-Spurweite durchsetzt.
Diese Spezialisierung von quimb's existing quimb.tensor.MatrixProductOperator setzt die Vidal-Eichung während ihrer gesamten Existenz durch. Dies gewährleistet ein stabiles Verhalten des DynamicMPF algorithmus bei Verwendung des TEBDEvolver.
Initialisieren einer MPOState instanz.
Alle Argumente (Positionsangaben und Schlüsselwörter) werden einfach an den quimb.tensor.MatrixProductOperator konstruktor weitergeleitet. Außerdem wird das vidal_singular_values attribut mit einer Liste leerer Listen initialisiert, deren Länge der Anzahl der Standorte in diesem MPO entspricht.
Parameter
- args - alle Positionsargumente werden an den
quimb.tensor.MatrixProductStatekonstruktor weitergeleitet. - kwargs - alle Schlüsselwortargumente werden an den
quimb.tensor.MatrixProductStatekonstruktor weitergeleitet.
Attribute
vidal_singular_values
Typ: list[list[float]]
Eine verschachtelte Liste von Einzelwerten. Die äußere Liste ist genauso lang wie dieses MPO selbst (quimb.tensor.TensorNetwork1D.L). Jedes Element ist eine weitere Liste mit allen Einzelwerten zur Bestimmung des Vidalmaßes an diesem Ort.
Methoden
gate_split
gate_split(gate, where, inplace=False, conj=False, **split_opts)
Anwendung eines Zwei-Standort-Gates und Rückübertragung auf das MPO.
Das Grundprinzip dieser Methode ist das gleiche wie das der quimb.tensor.MatrixProductState.gate_split(). Die Umsetzung gewährleistet jedoch, dass die Vidal-Eichung erhalten bleibt.
Parameter
-
gate (ndarray) – das Gatter, das auf das MPO angewendet wird. Seine Form sollte entweder
(d**2, d**2)für eine physische Dimension vondsein oder eine umgestaltete Version davon. -
where (tuple[int, int]) – die Indizes der Orte, an denen das Gate angewendet werden soll.
-
inplace (bool) – ob die Anwendung des Gates an Ort und Stelle erfolgen soll oder ob ein neues
MPOStatemit dem angewendeten Tor zurückgeben soll. -
conj (bool) –
ob das Tor auf die untere (
conj=False, die Voreinstellung,lower_ind()) oder den oberen (conj=True,upper_ind()) Indizes des zugrunde liegenden MPO angewendet werden soll.AnmerkungDies ist im Wesentlichen die Art und Weise, wie die LHS und RHS der
DynamicMPFdifferenziert werden, indem man ihreEvolver.conjugateeigenschaft an dieses Argument übergeben. -
split_opts - zusätzliche Schlüsselwortargumente, die an die Funktion weitergeleitet werden
quimb.tensor.tensor_split()funktion weitergeleitet werden. Diese können verwendet werden, um die Abschneidung des Tensors zu beeinflussen, bevor er in das MPO zurückgezogen wird.
Rückgabe
Die MPOState mit der gate angewendet und zusammengezogen.
Rückgabetyp
gate_split_
gate_split_(gate, where, *, inplace=True, conj=False, **split_opts)
Parameter
Rückgabetyp
overlap
overlap(initial_state)
Berechnen Sie die Überlappung dieses Zustands mit dem angegebenen Ausgangszustand.
Diese Implementierung unterstützt nur Instanzen von quimb.tensor.MatrixProductState für initial_state.
Parameter
initial_state (Any) – den Ausgangszustand, mit dem die Überlappung berechnet wird.
Erhöht
TypeError - wenn der angegebene Ausgangszustand einen inkompatiblen Typ hat.
Rückgabe
Die Überschneidung dieses Zustands mit dem vorgesehenen Zustand.
Rückgabetyp