This example was developed in the scope of the dissertation of Benjamin Rodenberg1. A modified version of the example was already published in the conference proceedings of WCCM-APCOM 20222.
The examples provided in this repository illustrate the whole development from a monolithic simulation of the two-mass-spring system (oscillator example) over a partitioned approach using preCICE version 2.5 to an approach using the newly developed higher-order coupling scheme implemented in preCICE 3.
The following examples are included here:
monolithic
: A monolithic solution of the oscillator example.precice-2
: A partitioned solution of the oscillator using preCICE 2.5.03.waveform
: A partitioned solution of the oscillator using preCICE 2.5.03. Implementing waveform iteration ideas from1 in the adapter code.multirate
: A partitioned solution of the oscillator using preCICE 2.5.03. Implementing waveform iteration ideas from1 in the adapter code. Additionally illustrating improvements for subcycling.acceleration
: A partitioned solution of the oscillator using preCICE 2.5.03. Implementing waveform ideas from 1 in the adapter code. Additionally illustrating how to implement underrelaxation and quasi-Newton waveform iteration following the approach from 4.precice-3
: A partitioned solution of the oscillator using preCICE 3.1.15. The native API from preCICE 3.x is used to apply waveform iteration.
Each of the provided cases offers the script doConvergenceStudy.py
to automatically run convergence studies for each case with a given set of parameters. Refer to python3 doConvergenceStudy.py --help
for available parameters.
If you want to individually run the case, please run python3 oscillator.py
. For the monolithic case (1) it is sufficient to run this command in a single terminal. If you want to run one of the partitioned cases (2-6) please open two terminals and run python3 oscillator.py Mass-Left
and python3 oscillator.py Mass-Right
. Again, refer to python3 oscillator.py --help
for a list of available parameters.
Please make sure to install the package brot
included in this repository. Refer to tooling/README.md
for further information.
If you want to perform convergence studies, please install the package prepesthel
. Refer to https://github.com/BenjaminRodenberg/precice-performance-study-helpers for further information.
It is generally recommended to use the appropriate version of the preCICE virtual machine35 for run all experiments. See https://precice.org/installation-vm.html for details.
Footnotes
-
Rodenberg, Benjamin. Flexible and robust time stepping for partitioned multiphysics. Technical University of Munich, 2025. Unpublished manuscript. Available at: https://doi.org/**TODO**. ↩ ↩2 ↩3 ↩4
-
Schüller, Valentina; Rodenberg, Benjamin; Uekermann, Benjamin; Bungartz, Hans-Joachim. A Simple Test Case for Convergence Order in Time and Energy Conservation of Black-Box Coupling Schemes. WCCM-APCOM2022, 2022. Available at: https://www.scipedia.com/public/Rodenberg_2022a. ↩
-
Chourdakis, Gerasimos; Davis, Kyle; Desai, Ishaan; Rodenberg, Benjamin; Schneider, David; Simonis, Frédéric; Uekermann, Benjamin; Ariguib, Boshra; Cardiff, Philip; Jaust, Alexander; Kharitenko, Pavel; Klöfkorn, Robert; Kotarsky, Niklas; Martin, Boris; Scheurer, Erik; Schüller, Valentina; van Zwieten, Gertjan; Yurt, Kursat. preCICE Distribution Version v2211.0. DaRUS, 2023, V1. https://doi.org/10.18419/darus-3576. ↩ ↩2 ↩3 ↩4 ↩5
-
Rüth, Benjamin; Uekermann, Benjamin; Mehl, Mehl; Birken, Philipp; Monge, Azahar; Bungartz, Hans-Joachim Quasi-Newton waveform iteration for partitioned surface-coupled multiphysics applications. International Journal for Numerical Methods in Engineering, 2021, 122: 5236–5257. https://doi.org/10.1002/nme.6443. ↩
-
Chen, Jun; Chourdakis, Gerasimos; Desai, Ishaan; Homs-Pons, Carme; Rodenberg, Benjamin; Schneider, David; Simonis, Frédéric; Uekermann, Benjamin; Davis, Kyle; Jaust, Alexander; Kelm, Mathis; Kotarsky, Niklas; Kschidock, Helena; Mishra, Durganshu; Mühlhäußer, Markus; Schrader, Timo Pierre; Schulte, Miriam; Seitz, Valentin; Signorelli, Joseph; van Zwieten, Gertjan; Vinnitchenko, Niklas; Vladimirova, Tina; Willeke, Leonard; Zonta, Elia. preCICE Distribution Version v2404.0. DaRUS, 2024, V1. https://doi.org/10.18419/darus-4167. ↩ ↩2