Skip to content

Commit

Permalink
Update documentation for partitioned heat conduction (#574)
Browse files Browse the repository at this point in the history
* Add information about higher-order time stepping schemes
* Update information about running
* Link to thesis of Niklas and Tobias
  • Loading branch information
BenjaminRodenberg authored Oct 4, 2024
1 parent 591ef56 commit 62e2e18
Showing 1 changed file with 20 additions and 11 deletions.
31 changes: 20 additions & 11 deletions partitioned-heat-conduction/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,28 +39,35 @@ You can either couple a solver with itself or different solvers with each other.

## Running the simulation

You can find the corresponding `run.sh` script for running the case in the folders corresponding to the solver you want to use.
You can find the corresponding `run.sh` script for running the case in the folders corresponding to the participant you want to use:

For choosing whether you want to run the Dirichlet-kind and a Neumann-kind participant, please provide the following commandline input:
```bash
cd dirichlet-fenics
./run.sh
```

* `-d` flag will enforce Dirichlet boundary conditions on the coupling interface.
* `-n` flag will enforce Neumann boundary conditions on the coupling interface.
and

For running the case, open two terminals run:
```bash
cd neumann-fenics
./run.sh
```

The FEniCS-based version of the tutorial offers higher-order time stepping with implicit Runge Kutta schemes (Neumann and Dirichlet participant, see [4]) by running

```bash
cd fenics
./run.sh -d
cd neumann-fenics
./run.sh irk
```

and
or Spectral Deferred Corrections (SDC, only Dirichlet participant, see [5]) via

```bash
cd fenics
./run.sh -n
cd dirichlet-fenics
./run.sh sdc
```

If you want to use Nutils, use `cd nutils` instead of `cd fenics`. The FEniCS case also supports parallel runs. Here, you cannot use the `run.sh` script, but must simply execute
If you want to use Nutils or OpenFOAM, use `cd dirichlet/neumann-nutils`, respectively `cd dirichlet/neumann-openfoam`, instead of `cd dirichlet/neumann-fenics`. The FEniCS case also supports parallel runs. Here, you cannot use the `run.sh` script, but must simply execute

```bash
mpirun -n <N_PROC> heat.py -d
Expand All @@ -87,3 +94,5 @@ Visualization in paraview for `x_c = 1.5`.
[1] Hans Petter Langtangen and Anders Logg. "Solving PDEs in Minutes-The FEniCS Tutorial Volume I." (2016). [pdf](https://fenicsproject.org/pub/tutorial/pdf/fenics-tutorial-vol1.pdf)
[2] Azahar Monge and Philipp Birken. "Convergence Analysis of the Dirichlet-Neumann Iteration for Finite Element Discretizations." (2016). Proceedings in Applied Mathematics and Mechanics. [doi](https://doi.org/10.1002/pamm.201610355)
[3] Benjamin Rüth, Benjamin Uekermann, Miriam Mehl, Philipp Birken, Azahar Monge, and Hans Joachim Bungartz. "Quasi-Newton waveform iteration for partitioned surface-coupled multiphysics applications." (2020). International Journal for Numerical Methods in Engineering. [doi](https://doi.org/10.1002/nme.6443)
[4] Niklas Vinnitchenko. "Evaluation of Higher-Order Coupling Schemes with FEniCS-preCICE." (2024). Bachelor's thesis at Technical University of Munich. [pdf](https://mediatum.ub.tum.de/1732367)
[5] Tobias Eppacher. "Parallel-in-Time Integration with preCICE" (2024). Bachlor's thesis at Technical University of Munich. [pdf](https://mediatum.ub.tum.de/1755012)

0 comments on commit 62e2e18

Please sign in to comment.