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.
%0 Generic
%1 kharitenko2021coupling
%A Kharitenko, Pavel
%D 2021
%K EXC2075 PN5-9 PN5-9(II) curated
%T Coupling Julia-based Simulations via preCICE
%X 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.
@misc{kharitenko2021coupling,
abstract = {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.},
added-at = {2024-05-23T09:59:25.000+0200},
author = {Kharitenko, Pavel},
biburl = {https://puma.ub.uni-stuttgart.de/bibtex/25f74ed6faec00b5ef556cb54cc6d0c07/simtech},
interhash = {3e8d3b3b9b2100facb8d5fdbb08f1884},
intrahash = {5f74ed6faec00b5ef556cb54cc6d0c07},
keywords = {EXC2075 PN5-9 PN5-9(II) curated},
month = {October 2021},
timestamp = {2024-06-18T15:00:36.000+0200},
title = {Coupling Julia-based Simulations via preCICE},
year = 2021
}