SupportsApplyUnitaryPlaced
class SupportsApplyUnitaryPlaced(*args, **kwargs)
Basen: Protocol
Eine paketspezifische Erweiterung von ffsim.SupportsApplyUnitary.
Während das Protokoll von ffsim ein Objekt auf einen gesamten Zustandsvektor anwendet, fügt dieses Protokoll die Platzierung der lokalen Moden des Objekts zu den globalen Moden hinzu, auf die es einwirkt. Es gibt kein ffsim-Äquivalent: _apply_unitary_placed_() ist der einzige Aufrufer, und es wird über getattr Duck-Typing direkt an diesen weitergeleitet. Sie dient hier ausschließlich zu Typisierungs- und Dokumentationszwecken, da jede konkrete Klasse ( FermionicGate sowie die Klasse selbst FermionicCircuit ) diese Methode implementiert.
Siehe FermionicCircuit._apply_unitary_placed_() für die vollständige Semantik, einschließlich der Erklärung, warum eine einfache _apply_unitary_ Implementierung (ohne Argument für die Modusplatzierung) nur bei der Identitätsplatzierung berücksichtigt wird.
Protokollmethoden
_apply_unitary_placed_
_apply_unitary_placed_(vec, norb, nelec, copy, freg_indices)
Wendet eine unitäre Transformation auf einen Zustandsvektor an, nachdem lokale Moden auf globale Moden abgebildet wurden.
Parameter
- vec (np.ndarray) – der Zustandsvektor, auf den die unitäre Transformation angewendet werden soll.
- norb (int) – die Anzahl der räumlichen Orbitalen des globalen Zustandsvektors.
- nelec (int |tuple[int, int]) – entweder eine einzelne ganze Zahl, die die Anzahl der Fermionen in einem spinlosen System angibt, oder ein Paar ganzer Zahlen, das die Anzahl der Fermionen mit Spin alpha und Spin beta angibt.
- copy (bool) – ob der Vektor vor der Bearbeitung kopiert werden soll.
- freg_indices (list[int]) – die absoluten (globalen) Modenindizes, auf die die lokalen Moden dieses Objekts abgebildet werden.
Rückgabe
Der transformierte Vektor.
Rückgabetyp
np.ndarray