Bitte benutzen Sie diese Kennung, um auf die Ressource zu verweisen: http://dx.doi.org/10.18419/opus-11836
Autor(en): Kharitenko, Pavel
Titel: Coupling Julia-based simulations via preCICE
Erscheinungsdatum: 2021
Dokumentart: Abschlussarbeit (Bachelor)
Seiten: 73
URI: http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-ds-118535
http://elib.uni-stuttgart.de/handle/11682/11853
http://dx.doi.org/10.18419/opus-11836
Zusammenfassung: The coupling library preCICE allows to couple single-physics solvers to partitioned multi-physics simulations in a black-box fashion. preCICE is a C++ library, but it offers language bindings to access the preCICE API from solvers written in other languages, such as C, Python, Fortran and MATLAB. The Julia Programming Language designed for numerical computing is a strong candidate to be supported by preCICE. While Julia provides a wide set of tools for interfacing with other languages, including C++, porting a library such as preCICE that is made for High Performance Computing and runs on a huge number of processes, requires little to no compromises. Multiple ways of wrapping a C/C++ library are presented and implemented. In addition come Julia’s own features, for example the Distributed base library, that deviate from classic standards of known scientific languages. To test the bindings, two dummy solvers are coupled and presented in an example setup, with an outlook on further development.
Die Kopplungsbibliothek preCICE ermöglicht es, Single-Physik Löser zu partitionierten Multi-Physik Simulationen in einer Black-Box-Manier zu koppeln. Zwar ist preCICE eine C++-Bibliothek, bietet sie Bindings für den Zugriff auf ihre API von Solvern, die in einer anderen Sprachen wie C, Python, Fortran und MATLAB geschrieben wurden, an. Die Programmiersprache Julia, die für die wissenschaftliche Programmierung entwickelt wurde, ist ein starker Kandidat für die Unterstützung von preCICE. Während Julia eine breite Auswahl für schnittstellen mit anderen Sprachen, einschließlich C++, bereitstellt, erfordert die Portierung einer Bibliothek wie preCICE, die für High Performance Computing entwickelt wurde und auf einer Vielzahl von Prozessesoren ausgeführt werdem kann, wenig bis gar keine Kompromisse. Es werden mehrere Möglichkeiten zum Portieren einer C/C ++-Bibliothek vorgestellt und implementiert. Hinzu kommen Julias eigene Features, zum Beispiel die Bibliothek Distributed, die von klassischen Standards bekannter Sprachen abweichen. Um die Bindings zu testen, werden zwei Dummy-Solver gekoppelt und in einem Beispielaufbau mit einem Ausblick auf die weitere Entwicklung vorgestellt.
Enthalten in den Sammlungen:05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Dateien zu dieser Ressource:
Datei Beschreibung GrößeFormat 
Bachelorthesis_CJBSVP_Kharitenko.pdf645,23 kBAdobe PDFÖffnen/Anzeigen


Alle Ressourcen in diesem Repositorium sind urheberrechtlich geschützt.