Projektszám:

Transcription

Projektszám:
1.122.000 HUF
400 EUR
Projektszám: 86öu17
Pályázó neve: Vukics András
Intézménye: MTA Wigner FK
Projektpartner neve: Raimar Sandner
Intézménye: Theoretische Physik Uni Innsbruck
Pályázat címe: C++QED – ein Framework zur Simulation offener Quantendynamik
A projekt jellege: (kérjük bejelölni)
•
•
•
•
Beszámoló/Eredmények:
Workshop, konferencia
Publikáció, tananyag
Kutatási együttműködés
Oktatási program
A projekt keretében négy kölcsönös látogatás történt a projektpartnerek között, kettő Budapestre és kettő
Innsbruckba. Ezek a tartózkodások a projekt közös tervezését, koordinálását és továbbfejlesztését szolgálták. A
projekt fő célja, a szoftver egy új változatának kifejlesztése és közzététele, a „C++QEDv2 Milestone 10” megjelenésével megvalósult.
Az új verzió fejlesztésénél a keretrendszer működési körének szélesítése mellett mindenekelőtt a telepítés
és a felhasználóbarátság szempontjai kerültek előtérbe. Az utóbbi vonalakon a következő javításokat értük el a
korábbi verzióhoz képest:
• A CMake-re alapozott új fordítási rendszer megkönnyíti a szoftver fordítását, telepítését és felhasználását. Lehetővé teszi a különböző platformokon való felhasználást (ezt számos linux-változaton és
Mac OS-en teszteltük). Bináris csomagokat hoztunk létre, melyek könnyű telepítést tesznek lehetővé
a széles körben használt Ubuntu és Arch linux-disztribúciókon.
• A Doxygen felhasználásával készült, átdolgozott dokumentáció a felhasználási példákon kívül az API
nagy részét is felöleli. Ez megkönnyíti új közreműködők bekapcsolódását a fejlesztésbe.
• Egy új, automatizált tesztgyűjtemény lehetővé teszi a szoftver helyességének monitorozása mellett a
szimulációk fizikai helyességének ellenőrzését. Ez növeli a szoftver minőségét, hiszen a fejlesztés során
fellépő hibák idejekorán kiküszöbölhetők.
• Létrehoztunk egy csatlakozási felületet az igen népszerű Python programozási nyelvhez, oly módon,
hogy a szimulációk most már közvetlenül Pythonból is indíthatók. Kezdők számára komoly könnyítést jelenthet, hogy már nem feltétlenül szükséges a bonyolult C++ szintaxist ismerniük.
Továbbá a következő újításokat illetve javításokat értük el a projekt időtartama alatt:
• A szimulációk eredményei illetve köztes fázisai az új verzióban teljes bináris pontossággal elmenthetők, így a szimulációk tetszőleges időben folytathatók, amennyiben hosszabb szimulációs idő szükséges. Ezt az összes támogatott időfejlesztő módozatra implementáltuk (Monte–Carlo-hullámfüggvény
trajektória, ilyenek statisztikus sokasága illetve teljes Master-egyenlet megoldás).
• A keretrendszert az alkalmazott programozási nyelvnek megfelelően korszerűsítettük: az új verzióban
első ízben használtuk az új C++11-szabvány nyelvi konstrukcióit, amely sok esetben jelentős szerke zeti egyszerűsödést valamint szükségtelen másolási műveletek kiküszöbölését hozta.
• Az új verzióban főként az új teszt-környezet bevezetésének köszönhetően, sikerült különféle hibákat
azonosítanunk és kiküszöbölnünk.
Publikáció:
Raimar Sandner, András Vukics. C++QEDv2 Milestone 10: A C++/Python application-programming framework for simulating open quantum dynamics. Computer Physics Communications 185 (2014) 2380
1.122.000 HUF
400 EUR
Projektnummer: 86öu17
Antragsteller: András Vukics
Institut: MTA Wigner FK
Projektpartner: Raimar Sandner
Institut: Theoretische Physik Uni Innsbruck
Titel: C++QED – ein Framework zur Simulation offener Quantendynamik
Art der Förderung:
•
•
•
•
Bericht:
Workshop, Konferenz
Publikation, Lehrmaterial
Forschungsprojekt
Unterrichtsprojekt
Im Rahmen des Projektes wurden vier gegenseitige Besuche der Projektpartner abgestattet, zwei davon in
Budapest und zwei in Innsbruck. Die Besuche dienten der gemeinsamen Planung, Koordination und Weiterentwicklung des Projekts. Das Hauptziel, die Entwicklung und Veröffentlichung einer neuen Version der
Software, wurde mit dem Erscheinen von „C++QEDv2 Milestone 10” erreicht.
Bei der Entwicklung der neuen Version standen neben der Erweiterung des Funktionsumfangs vor allem
die Steigerung der Benutzerfreundlichkeit im Vordergrund. Letzteres wurde durch folgende Verbesserungen
im Vergleich zur letzten Version erreicht:
• Ein neues Build System (basierend auf CMake) erleichtert die Kompilation, Installation und Anwendung der Software. Es erlaubt auch die Nutzung auf verschiedenen Plattformen (getestet unter Linux
und Mac OS). Die Bereitstellung vorkompilierte Binärpakete für die verbreiteten Linux-Distributionen Ubuntu und Arch erlaubt eine problemlose Installation.
• Eine komplett überarbeitete Dokumentation basiert auf Doxygen und deckt neben Anwenungsbeispielen nun auch große Teile der API ab. Dies erleichtert den Einstieg für neue Entwickler.
• Eine Sammlung automatisierter Tests erlaubt es, sowohl den Funktionsumfang der Software als auch
die physikalische Korrektheit der Simulationen zu überprüfen. Dies steigert die Qualität der Software, da Fehler frühzeitig entdeckt werden.
• Eine Schnittstelle zur weit verbreiteten Programmiersprache Python wurde entwickelt, so dass Simulationen direkt von Python aus gestartet werden können. Es ist für Einsteiger daher nicht mehr unbedingt nötig, die kompliziertere Syntax von C++ zu benutzen.
Folgende neue Features sowie Verbesserungen am Code wurden während des Projektes realisiert:
• Das Ergebnis von Simulationen wird nun mit voller numerischer Genauigkeit gespeichert, Simulationen können zu einem späteren Zeitpunkt fortgesetzt werden falls eine längere Zeitentwicklung ben ötigt wird. Dies wurde für alle Arten von ünterstützten Zeitentwicklungen implementiert (einzelne
und gemittelte Monte Carlo wave-function Trajektorien sowie Lösungen der vollen Mastergleichung).
• Das Projekt wurde hinsichtlich der verwendeten Programmiersprache modernisiert: Erstmals wurden
Code-Konstrukte des neuen C++11-Standards verwendet, was in vielen Fällen zu einer erheblichen
strukturellen Vereinfachung sowie zur Vermeidung unnötiger Kopier-Operationen führt.
• Diverse Fehler, die vorallem durch die Einführen der Testumgebung entdeckt werden konnten, wurden behoben.
Publikation:
Raimar Sandner, András Vukics. C++QEDv2 Milestone 10: A C++/Python application-programming framework for simulating open quantum dynamics. Computer Physics Communications 185 (2014) 2380
Abschlußbericht
Weitere Fragen zu den Ergebnissen:
1. Nutzung und Verbreitung der Ergebnisse:
Die Entwicklung des vorliegenden Softwareprojekts, sowie physikalische Ergebnisse die damit erzielt
werden, sind integrale Bestandteile meiner Doktorarbeit. Die oben genannte Publikation ist damit ein wichti ger Schritt auf dem Weg meiner akademischen Ausbildung. Des weiteren wurde C++QED auf mehreren internationalen Konferenzen vorgestellt. In unserer Arbeitsgruppe wurde die Software schon für zahlreiche wis senschaftliche Publikationen erfolgreich eingesetzt, und wir hoffen durch unsere Weiterentwicklungen ein
breiteres Publikum in der wissenschaftlichen Gemeinschaft zu erreichen.
2. Durchführung:
Die im Antrag des Projekts erwähnte Parallelisierung der Zeitentwicklung sowie die Entwicklung allgemeiner Operatorklassen wurden zunächst zugunsten der Modernisierung des Codes (Verwendung von C+
+11, siehe oben) zurückgestellt.
3. Bewertung:
Die im Rahmen des Projektes durchgeführten Besuche waren enorm hilfreich, da sie eine konzentrierte
und zielgerichtete Zusammenarbeit ermöglichten. Die Veröffentlichung der neuen Version „Milestone 10“
konnte so maßgeblich vorangetrieben und zum Abschluss gebracht werden.
4. Perspektiven:
Es ist geplant, dass die beiden involvierten Arbeitsgruppen in Budapest und Innsbruck auch weiterhin eng
an der Entwicklung von C++QED zusammenarbeiten.
5. Verbesserungsvorschläge:
Datum:
____________________________
Antragsteller (Unterschrift)
_____________________________
Projektpartner (Unterschrift)

Similar documents