diff --git a/partitioned-heat-conduction-direct/dirichlet-gismo/clean.sh b/partitioned-heat-conduction-direct/dirichlet-gismo/clean.sh
new file mode 100755
index 000000000..5249e1586
--- /dev/null
+++ b/partitioned-heat-conduction-direct/dirichlet-gismo/clean.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env sh
+set -e -u
+
+. ../../tools/cleaning-tools.sh
+
+clean_gismo .
diff --git a/partitioned-heat-conduction-direct/dirichlet-gismo/run.sh b/partitioned-heat-conduction-direct/dirichlet-gismo/run.sh
new file mode 100755
index 000000000..1fa511b45
--- /dev/null
+++ b/partitioned-heat-conduction-direct/dirichlet-gismo/run.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+set -e -u
+
+. ../../tools/log.sh
+exec > >(tee --append "$LOGFILE") 2>&1
+
+./partitioned-heat-conduction -s 0 -c ../precice-config.xml --plot
+
+close_log
diff --git a/partitioned-heat-conduction-direct/neumann-gismo/clean.sh b/partitioned-heat-conduction-direct/neumann-gismo/clean.sh
new file mode 100755
index 000000000..5249e1586
--- /dev/null
+++ b/partitioned-heat-conduction-direct/neumann-gismo/clean.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env sh
+set -e -u
+
+. ../../tools/cleaning-tools.sh
+
+clean_gismo .
diff --git a/partitioned-heat-conduction-direct/neumann-gismo/run.sh b/partitioned-heat-conduction-direct/neumann-gismo/run.sh
new file mode 100755
index 000000000..925141933
--- /dev/null
+++ b/partitioned-heat-conduction-direct/neumann-gismo/run.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+set -e -u
+
+. ../../tools/log.sh
+exec > >(tee --append "$LOGFILE") 2>&1
+
+./partitioned-heat-conduction -s 1 -c ../precice-config.xml --plot
+
+close_log
diff --git a/partitioned-heat-conduction-direct/precice-config.xml b/partitioned-heat-conduction-direct/precice-config.xml
index ffb36366e..35c181fc0 100644
--- a/partitioned-heat-conduction-direct/precice-config.xml
+++ b/partitioned-heat-conduction-direct/precice-config.xml
@@ -24,14 +24,14 @@
-
+
-
+
diff --git a/partitioned-heat-conduction/README.md b/partitioned-heat-conduction/README.md
index b1000a2d1..3a799f306 100644
--- a/partitioned-heat-conduction/README.md
+++ b/partitioned-heat-conduction/README.md
@@ -1,7 +1,7 @@
---
title: Partitioned heat conduction
permalink: tutorials-partitioned-heat-conduction.html
-keywords: FEniCS, Nutils, Heat conduction
+keywords: FEniCS, Nutils, G+Smo, Heat conduction
summary: We solve a simple heat equation. The domain is partitioned and the coupling is established in a Dirichlet-Neumann fashion.
---
@@ -39,6 +39,8 @@ You can either couple a solver with itself or different solvers with each other.
* OpenFOAM. This case uses the custom [heatTransfer](https://github.com/precice/tutorials/blob/master/partitioned-heat-conduction/solver-openfoam/heatTransfer.C) solver (find it in `solver-openfoam` and build with `wmake`). Read more details in the [OpenFOAM adapter](https://precice.org/adapter-openfoam-overview.html).
+* G+Smo. Install the [G+Smo adapter](https://precice.org/adapter-gismo.html).
+
## Running the simulation
You can find the corresponding `run.sh` script for running the case in the folders corresponding to the participant you want to use:
@@ -75,6 +77,34 @@ If you want to use Nutils or OpenFOAM, use `cd dirichlet/neumann-nutils`, respec
mpirun -n heat.py -d
```
+For running G+Smo, follow the [G+Smo adapter installation instructions](https://precice.org/adapter-gismo.html) to build the `partitioned-heat-conduction` example. This tutorial only requires the `gsPreCICE` submodule:
+
+```bash
+cmake .. -DGISMO_OPTIONAL="gsPreCICE"
+make partitioned-heat-conduction
+```
+
+Then link the compiled executable to the `dirichlet-gismo` and `neumann-gismo` folders:
+
+```bash
+cd /partitioned-heat-conduction/dirichlet-gismo
+ln -sf /bin/partitioned-heat-conduction ./partitioned-heat-conduction
+cd ../neumann-gismo
+ln -sf /bin/partitioned-heat-conduction ./partitioned-heat-conduction
+```
+
+Then open two terminals and run:
+
+```bash
+cd dirichlet-gismo
+./run.sh
+```
+
+```bash
+cd neumann-gismo
+./run.sh
+```
+
### Note on the combination of Nutils & FEniCS
You can mix the Nutils and FEniCS solver, if you like. Note that the error for a pure FEniCS simulation is lower than for a mixed one. We did not yet study the origin of this error, but assume that this is due to the fact that Nutils uses Gauss points as coupling mesh and therefore entails extrapolation in the data mapping at the top and bottom corners.
@@ -87,6 +117,8 @@ For FEniCS you can visualize the content with paraview by opening the `*.pvd` fi
For Nutils, please use the files `Dirichlet-*.vtk` or `Neumann-*.vtk`. Please note that these files contain the temperature as well as the reference solution.
+For G+Smo, please use the generated `solution.pvd` files in the dirichlet-gismo and neumann-gismo directories.
+

Visualization in paraview for `x_c = 1.5`.
diff --git a/partitioned-heat-conduction/dirichlet-gismo/clean.sh b/partitioned-heat-conduction/dirichlet-gismo/clean.sh
new file mode 100755
index 000000000..5249e1586
--- /dev/null
+++ b/partitioned-heat-conduction/dirichlet-gismo/clean.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env sh
+set -e -u
+
+. ../../tools/cleaning-tools.sh
+
+clean_gismo .
diff --git a/partitioned-heat-conduction/dirichlet-gismo/run.sh b/partitioned-heat-conduction/dirichlet-gismo/run.sh
new file mode 100755
index 000000000..1fa511b45
--- /dev/null
+++ b/partitioned-heat-conduction/dirichlet-gismo/run.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+set -e -u
+
+. ../../tools/log.sh
+exec > >(tee --append "$LOGFILE") 2>&1
+
+./partitioned-heat-conduction -s 0 -c ../precice-config.xml --plot
+
+close_log
diff --git a/partitioned-heat-conduction/neumann-gismo/clean.sh b/partitioned-heat-conduction/neumann-gismo/clean.sh
new file mode 100755
index 000000000..5249e1586
--- /dev/null
+++ b/partitioned-heat-conduction/neumann-gismo/clean.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env sh
+set -e -u
+
+. ../../tools/cleaning-tools.sh
+
+clean_gismo .
diff --git a/partitioned-heat-conduction/neumann-gismo/run.sh b/partitioned-heat-conduction/neumann-gismo/run.sh
new file mode 100755
index 000000000..925141933
--- /dev/null
+++ b/partitioned-heat-conduction/neumann-gismo/run.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+set -e -u
+
+. ../../tools/log.sh
+exec > >(tee --append "$LOGFILE") 2>&1
+
+./partitioned-heat-conduction -s 1 -c ../precice-config.xml --plot
+
+close_log
diff --git a/tools/cleaning-tools.sh b/tools/cleaning-tools.sh
index 538d069b6..a1d029f4a 100755
--- a/tools/cleaning-tools.sh
+++ b/tools/cleaning-tools.sh
@@ -230,6 +230,9 @@ clean_gismo(){
cd "$1"
echo "- Cleaning up G+Smo case in $(pwd)"
rm -rfv ./output/
+ rm -fv ./*.vtp
+ rm -fv ./*.vts
+ rm -fv ./*.pvd
clean_precice_logs .
clean_case_logs .
)