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)