Quantencomputing in der Physik der kondensierten Materie

by GWDG News Team

In diesem Blogpost wollen wir anregen, dass Quantencomputing im Bereich Quanten-Vielteilchenphysik genutzt wird. Dieser Post wird veröffentlicht im Kontext des QUICS-Projektes, welches ein Gemeinschaftsprojekt der Gesellschaft für wissenschaftliche Datenverarbeitung Göttingen, der Leibniz Universität Hannover und der Physikalisch-Technischen Bundesanstalt ist. Das Bundesministerium für Forschung, Technologie und Raumfahrt (BMFTR) fördert QUICS, um Beratung und einen niederschwelligen Zugang zu verschiedenen Quantenhardware- und -softwarelösungen für die Erprobung praktischer Anwendungsfälle, insbesondere für kleine und mittlere Unternehmen, anzubieten. Weitere Informationen erhalten Sie unter quics-info@gwdg.de .

Hierzu präsentieren wir die OpenFermion-Python-Bibliothek. Das Hauptziel dieser Bibliothek ist es, die Lücke zwischen Quantenalgorithmen-Entwicklern und Quantenchemikern sowie -physikern zu überbrücken. Die Idee ist, die Entwicklung von Algorithmen für Quantensimulationen zu vereinfachen, indem die genannten Gruppen zusammengebracht werden. Man kann in dieser Bibliothek ein Molekül oder den Hamiltonian eines Problems formulieren, um die Eigenschaften des Quantensystems mithilfe von Quantensimulatoren zu untersuchen. Dies geschieht über Bibliotheks-Plugins. Wenn Sie mehr über OpenFermion erfahren möchten, können Sie sich deren Veröffentlichungspapier anschauen.

In diesem Blogpost fokussieren wir uns auf die Physik der kondensierten Materie. Hierbei untersucht man die Eigenschaften von Materiezuständen, indem theoretische Modelle oder Experimente, z.B. mit kalten Atomgasen, genutzt werden. Physik der kondensierten Materie enthält Themen wie Hochtemperatursupraleitung oder topologische Phasen. Die Forschung in der Physik der kondensierten Materie führte zu Anwendungen in Nanoelektronik und Nanostrukturen, Gassensoren, Stickstoff-Fehlstellen-Zentren und mehr.

Das Simulieren von quantenmechanischen Systemen ist eine der ersten vorgeschlagenen Anwendungen für Quantencomputing. Die Dimension des Hilbertraumes wächst exponentiell mit der Systemgröße für diese Systeme, was das Simulieren von großen Quantensystemen unpraktikabel macht. Feynman schlug folglich den Quantencomputer in den 1980er Jahren zum Simulieren von Quantensystemen vor: “Nature isn’t classical and if you want to make a simulation of Nature, you’d better make it quantum mechanical, and by golly it’s a wonderful problem, because it doesn’t look so easy.”

In diesem Tutorial untersuchen wir das Bose-Hubbard-Modell. Wir haben uns für dieses Modell entschieden, da es in der Theorie der kondensierten Materie bereits eingehend untersucht und genutzt wurde, sodass wir unsere Ergebnisse mit bestehenden vergleichen können. Das Bose-Hubbard-Modell beschreibt wechselwirkende Bosonen in einem Gitter und weist einen Phasenübergang zwischen der superfluiden (SF) und der Mottinsulator-Phase (MI) auf. Der Hamiltonian des Bose-Hubbard-Modells ist beschrieben durch \[H = -t\sum\limits_{\langle ij \rangle} a_i^\dagger a_j + \frac{U}{2} \sum\limits_i n_i (n_i -1)\,\text{.}\] \(\langle ij \rangle\) beschreibt das Summieren über benachbarte Gitterplätze und \(a_i^\dagger\) und \(a_i\) sind die Erzeugungs- und Vernichtungsoperatoren. \(t\) ist die Hoppingamplitude und \(U\) die Stärke der On-Site-Wechselwirkung. Wir benutzen als Quelle für das Bose-Hubbard-Modell diese zwei Papiere:

Das Ziel von diesem Blogpost ist, die OpenFermion-Python-Bibliothek als Möglichkeit zum Simulieren von Materialien mittels Quantencomputing vorzustellen. Hierfür wird der Hamiltonian des entsprechenden Systems genutzt. OpenFermion bietet Funktionen für bestimmte Hamiltonians, wie bose_hubbard, aber enthält auch ein Framework zum Kreieren von eigenen Operatoren oder Hamiltonians. Die Bibliothek kann ebenso für Quantenchemieprobleme genutzt werden, vor allem zum Bestimmen der Elektronenanordnung von Molekülen. Unser Code ist verfügbar in einem Notebook, welches in unserem OpenFermion-Apptainer-Container in dem Ordner /opt/notebooks/ enthalten ist. Sie können unsere Quantencomputing-Container hier finden. In Zukunft wird es die Möglichkeit geben, Quantensimulatoren innerhalb der HPC-Umgebung, welche von dem QUICS-Projekt angeboten wird, zu nutzen.

Untersuchen der zwei Phasen

In der SF-Phase ist \(U=0\) und die Vielteilchen-Wellenfunktion ist delokalisiert. Die sogenannte “ inverse participation ratio ” (IPR) ist ein Maß der Lokalisierung und ist definiert als \[IPR = \sum\limits_\alpha \mid\phi_\alpha\mid^4\, ,\] wobei über alle Fock-Zustände \(\alpha\) summiert wird. Im erweiterten/delokalisierten Zustand verschwindet die IPR. Nur im lokalisierten Zustand ist die IPR nicht Null. Wir erwarten also dass die IPR sehr klein ist in der SF Phase. Für \(t=0\) ist das System in der MI-Phase. Die Vielteilchen-Wellenfunktion wird durch lokalisierte atomare Wellenfunktionen ausgedrückt. Daher erwarten wir dass die IPR in diesem Fall nahe an \(1\) ist. Im Nachfolgenden zeigen wir, wie man den Bose-Hubbard-Hamiltonian mit der OpenFermion-Bibliothek erzeugt und die IPR berechnet:

import numpy as np
from openfermion.hamiltonians import bose_hubbard
from openfermion.linalg import get_sparse_operator, get_ground_state

H = bose_hubbard(
        x_dimension,
        y_dimension,
        tunneling,
        interaction,
        chemical_potential=0.5,
        dipole=0.0,
        periodic=True,)

H_sparse = get_sparse_operator(H, trunc=trunc)
eigenenergy, eigenstate = get_ground_state(H_sparse)

# Calculate the IPR:
IPR_SF = np.sum(np.abs(eigenstate)**4)

Tatsächlich erhalten wir \(IPR_{SF} = 0.00139\) und \(IPR_{MI} = 0.99999\). Sie können dies im bereitgestellten Notebook selbst ausprobieren. In der MI-Phase genügt die Lokalisierung nicht, um zu entscheiden, ob man die MI-Phase gefunden hat. Man muss auch darauf achten, ob eine Lücke im Anregungsspektrum entsteht:

from openfermion.linalg import get_gap,
gap = get_gap(H_sparse)
print("Gap in the excitation spectrum: ", gap)

Man erhält als Ergebnis Gap in the excitation spectrum: 0.49999999999998135, sodass wir tatsächlich die MI-Phase gefunden haben.

Zeitentwicklung nach einem Quench

Nun möchten wir die Zeitentwicklung des Bose-Hubbard-Modells nach einem Quench zum Zeitpunkt Null untersuchen. Wir testen hier einen Quench von dem SF-Regime in die MI-Phase und umgekehrt. Um die Zeitentwicklung von Bosonen mit OpenFermion durchzuführen, kann man das SFOpenBoson-Plugin oder Strawberry Fields nutzen. Wir berechnen die IPR mit dem zeitabhängigen Zustand des Systems, um die Lokalisierung im Laufe der Zeit zu bestimmen:

from sfopenboson.ops import BoseHubbardPropagation
from strawberryfields.ops import *
import strawberryfields as sf

k = 20 # Lie product truncation
for time in total_time:
    H_MI = bose_hubbard(
               x_dimension,
               y_dimension,
               t_MI,
               U_MI,
               chemical_potential=0.5,
               dipole=0.0,
               periodic=True,)
    H_SF = bose_hubbard( # Hamiltonian after quench
               x_dimension,
               y_dimension,
               t_SF,
               U_SF,
               chemical_potential=0.5,
               dipole=0.0,
               periodic=True,)
    prog = sf.Program(n_lattice_sites)
    with prog.context as q:
        Ket(eigenstate_MI) | q
        BoseHubbardPropagation(H_SF, time, k, mode='global') | q
        
    eng = sf.Engine("fock", backend_options={"cutoff_dim": trunc})
    final_state = eng.run(prog).state
    state_vector = final_state.ket()

Die Zeitentwicklung wird mit der Funktion BoseHubbardPropagation durchgeführt, welche die Lie-Produktformel nutzt und unitäre Operatoren in eine Kombination von Strahlteilern, Kerr-Gattern und Rotationen im Phasenraum zerlegt.

Die Abbildung zeigt die Zeitentwicklung der IPR nach dem Quench von dem MI-Regime zu der SF Phase. Man kann erkennen, dass die anfängliche MI-Phase verschwindet, aber später wiederkehrt. Dieses Wiederkehren einer Phase wird ebenso in dem zweiten Bose-Hubbard-Modell-Papier von oben gezeigt, wo sie von der SF-Phase in die MI-Phase quenchen in einem Experiment mit kalten Atomen in optischen Gittern.

Wie Sie sehen können, kann man mit OpenFermion gut einen Hamiltonian implementieren und dessen Eigenschaften mithilfe von Quantencomputing studieren. Dies kann für Quantenchemiker und -physiker den Zugang zur Nutzung von Quantencomputing erleichtern. Es sind auch schon weitere Modelle in der OpenFermion-Bibliothek implementiert, wie z.B. das D-Wave-Modell für Supraleitfähigkeit, das Richardson-Gaudin-Modell, oder Modelle für homogenes Elektronengas (Jellium). In OpenFermion gibt es auch unterschiedliche Methoden wie die Hartree-Fock-Methode, die Davidson-Methode und das Graßmann-Wedgeprodukt. Sie können also auch andere Hamiltonians oder Aufbauten mit dieser Bibliothek ausprobieren. Noch ein kurzer Ausblick: Es gibt unterschiedliche Papiere, die die Elektronstruktur und den Grundzustand von verschiedenen Molekülen und Modellen untersuchen, z.B. das FeMoco Molekül und Cytochrom P450 , \(BeH_2\), \(CH_4\), \(H_2O\), \(HF\) und \(NH_3\) , ein \(H_4\) Quadrat, eine \(H_4\) Kette und das Hubbard-Modell , oder homogenes Elektronengas, Diamant, und Nickeloxid . Diese benutzen alle die OpenFermion-Bibliothek zumindest teilweise in ihren Berechnungen.

Tags:

← Back to news list