Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
dcfa824
Cleanup.
BenjaminRodenberg Jul 15, 2025
94ddf1b
Extend flap experiments (#5)
uekerman Jul 15, 2025
4f22788
Store iterations files to folder.
BenjaminRodenberg Jul 15, 2025
9a6d314
Fix syntax.
BenjaminRodenberg Jul 15, 2025
99f66b8
Change to avoid (?) warning.
BenjaminRodenberg Jul 15, 2025
8c22d68
Simplify folder structure.
BenjaminRodenberg Jul 15, 2025
fb9a2a9
Add QN logs to output.
BenjaminRodenberg Jul 15, 2025
0f9d995
Add missing file.
BenjaminRodenberg Jul 15, 2025
ebb609e
Add runs for different acceleration schemes.
BenjaminRodenberg Jul 22, 2025
6ffc303
Make exchange of substeps configurable.
BenjaminRodenberg Jul 22, 2025
fbe0ceb
Add experiments for different waveform configs.
BenjaminRodenberg Jul 22, 2025
91bece1
Add some experiments to fill gapsand have nicer lower limit for dT.
BenjaminRodenberg Jul 27, 2025
21a56e4
Add experiments to create contour data to pipeline.
BenjaminRodenberg Jul 27, 2025
0b35726
Add missing args.
BenjaminRodenberg Jul 27, 2025
f4f6085
Remove some experiments with odd numbers and with too small dtb.
BenjaminRodenberg Jul 27, 2025
77f6235
Fill gaps in sparse areas.
BenjaminRodenberg Jul 27, 2025
503158d
Remove some rounding to simplify interpretation.
BenjaminRodenberg Jul 27, 2025
bfb9c09
Fix incorrect config.
BenjaminRodenberg Jul 27, 2025
9640c47
Change relationship of time window sizes to observe fourth order.
BenjaminRodenberg Jul 28, 2025
6335162
Add new experiment type sincos.
BenjaminRodenberg Jul 31, 2025
8abd5e3
Add some higher-order experiments.
BenjaminRodenberg Jul 31, 2025
cdab7a1
Replace LIIIC4 with GL4.
BenjaminRodenberg Jul 31, 2025
b999f44
Add and run monotlithic experiments.
BenjaminRodenberg Aug 2, 2025
299ce34
Fix experiment label.
BenjaminRodenberg Aug 2, 2025
472f85d
Also run BackwardEuler and clean up experiments.
BenjaminRodenberg Aug 2, 2025
09445e7
Fix name of output.
BenjaminRodenberg Aug 2, 2025
ceadcf6
Add p=2.
BenjaminRodenberg Aug 3, 2025
b426ad0
Fix file names.
BenjaminRodenberg Aug 3, 2025
6b3f583
Increase number of iterations and accuracy.
BenjaminRodenberg Aug 3, 2025
549bc8d
Use strict convergence measure.
BenjaminRodenberg Aug 10, 2025
ca06b13
Fix naming.
BenjaminRodenberg Aug 10, 2025
5945441
Merge branch 'main' into waveform-iteration-precice-paper
BenjaminRodenberg Aug 11, 2025
24890f7
Build preCICE on top of OpenFOAM Dockerimage to bypass problem that O…
BenjaminRodenberg Aug 23, 2025
4640f20
Use dev image since we need wmake.
BenjaminRodenberg Aug 23, 2025
1421291
Fix name of stage.
BenjaminRodenberg Aug 23, 2025
4243662
Rename test cases to follow structure of paper.
BenjaminRodenberg Sep 13, 2025
edb426d
Add pull_request trigger to make workflow show up.
BenjaminRodenberg Sep 13, 2025
4a67cb3
Change id.
BenjaminRodenberg Sep 13, 2025
a829d1c
Further updates of structure.
BenjaminRodenberg Sep 13, 2025
9a8c63e
Rename and fix.
BenjaminRodenberg Sep 13, 2025
eb51c31
Add plotting and data for Fig 10 and Fig 11
BenjaminRodenberg Sep 13, 2025
ba80608
Add documentation and cleanup some latex problems.
BenjaminRodenberg Sep 13, 2025
e4c3b8b
Add requirements.txt.
BenjaminRodenberg Sep 13, 2025
fc76ea3
Fix typo.
BenjaminRodenberg Sep 13, 2025
e10eb96
Develop pipeline for visualization. Skip costly jobs.
BenjaminRodenberg Sep 14, 2025
fd5162c
Fix.
BenjaminRodenberg Sep 14, 2025
e0ea4c0
Use up-to-date version of download-artifact.
BenjaminRodenberg Sep 14, 2025
5667b4a
Add scripts for tables.
BenjaminRodenberg Sep 14, 2025
63665df
Run complete pipeline for oscillator.
BenjaminRodenberg Sep 14, 2025
28ac1df
Checkout repo. Skip long-running Fig 11 for debugging.
BenjaminRodenberg Sep 14, 2025
9b9183f
Skip long-running Fig 11.
BenjaminRodenberg Sep 14, 2025
06775f4
Install dependencies.
BenjaminRodenberg Sep 14, 2025
b7f749e
Fix path.
BenjaminRodenberg Sep 14, 2025
7f234f9
Try with merge.
BenjaminRodenberg Sep 23, 2025
7488f82
Fix path and add merge.
BenjaminRodenberg Sep 23, 2025
8feedb4
Update pipeline and add plotting for heat conduction.
BenjaminRodenberg Sep 23, 2025
6985c58
Add missing dependency.
BenjaminRodenberg Sep 23, 2025
91de4e1
Update workflow for Section 4.2.
BenjaminRodenberg Sep 23, 2025
2c58f3b
Add .gitkeep.
BenjaminRodenberg Sep 23, 2025
f7972e9
Fix workdir.
BenjaminRodenberg Sep 23, 2025
bdfb94d
Fix paths.
BenjaminRodenberg Sep 23, 2025
6152e92
Also run more expensive Fig11 experiments.
BenjaminRodenberg Sep 23, 2025
08c05fd
Fix folder hierarchy.
BenjaminRodenberg Sep 23, 2025
7be3ed9
Minor documentation addition.
BenjaminRodenberg Sep 23, 2025
846f505
Fix path.
BenjaminRodenberg Sep 23, 2025
0d0dcb9
Clean up experiments not in paper.
BenjaminRodenberg Sep 27, 2025
34ba8c5
Fix.
BenjaminRodenberg Sep 27, 2025
53071d2
Add run script and LIIIC(3).
BenjaminRodenberg Sep 27, 2025
d529ee4
Add folder.
BenjaminRodenberg Sep 27, 2025
32d46a7
Fix format.
BenjaminRodenberg Sep 27, 2025
30841ca
Add extra LIIIC to plotting.
BenjaminRodenberg Sep 27, 2025
e2b40f0
Fix option.
BenjaminRodenberg Sep 27, 2025
8174b44
Add data.
BenjaminRodenberg Sep 27, 2025
30334de
Add Makefile.
BenjaminRodenberg Sep 27, 2025
80f3e05
Add extra figure to path.
BenjaminRodenberg Sep 27, 2025
db044f1
Update perpendicular flap and clean up.
BenjaminRodenberg Sep 29, 2025
c21382e
Cleanup.
BenjaminRodenberg Sep 29, 2025
ba39998
Add trigger.
BenjaminRodenberg Sep 29, 2025
b30f507
Add plotting script Fig16.
BenjaminRodenberg Sep 29, 2025
951670f
Remove unnecessary header.
BenjaminRodenberg Sep 29, 2025
e651667
Update data.
BenjaminRodenberg Sep 29, 2025
c26eced
Add latest artifacts and missing main.tex.
BenjaminRodenberg Sep 30, 2025
dfb611a
Add plotting pipeline for Fig15.
BenjaminRodenberg Sep 30, 2025
ec8dac4
Add output of pipeline from dfb611a.
BenjaminRodenberg Oct 2, 2025
c287053
Revise structure and add README.md
BenjaminRodenberg Oct 2, 2025
eb0818e
Fix some paths.
BenjaminRodenberg Oct 2, 2025
bafe41f
Try publishing to github pages.
BenjaminRodenberg Oct 2, 2025
40bd7ab
Update artifact workflow.
BenjaminRodenberg Oct 2, 2025
c5d79ba
Fix names.
BenjaminRodenberg Oct 2, 2025
5d8ab06
Fewer jobs for faster execution.
BenjaminRodenberg Oct 2, 2025
ba8f209
Publish to pages branch.
BenjaminRodenberg Oct 2, 2025
78c3f79
Push to default branch gh-pages.
BenjaminRodenberg Oct 2, 2025
5459635
Add write permissions.
BenjaminRodenberg Oct 2, 2025
e394197
Change structure and use orphan option.
BenjaminRodenberg Oct 2, 2025
a1dcf67
Point to branch with artifacts.
BenjaminRodenberg Oct 2, 2025
db5c71d
Revert "Fewer jobs for faster execution."
BenjaminRodenberg Oct 2, 2025
28fe90b
Remove orphan.
BenjaminRodenberg Oct 2, 2025
87d3fb1
Fix minor language things in README.md
uekerman Oct 7, 2025
5e2a2de
Cleanup unnecessary deal.II.
BenjaminRodenberg Oct 12, 2025
12c32e5
Improve order and formatting of run scripts.
BenjaminRodenberg Oct 12, 2025
9049431
Remove unnecessary file.
BenjaminRodenberg Oct 12, 2025
52fc1ca
Streamline and remove README.md from original tutorials.
BenjaminRodenberg Oct 12, 2025
3028b1c
Fix path.
BenjaminRodenberg Oct 12, 2025
be98d99
Improve overview.
BenjaminRodenberg Oct 12, 2025
89b4599
Streamline plotting.
BenjaminRodenberg Oct 12, 2025
ba86690
Fix installation instructions.
BenjaminRodenberg Oct 12, 2025
39ad977
Fix order.
BenjaminRodenberg Oct 12, 2025
14c8382
Clarify Ubuntu 24.04 usage.
BenjaminRodenberg Oct 12, 2025
95871a8
Fix container name.
BenjaminRodenberg Oct 12, 2025
6e19a0f
Rename some template files.
BenjaminRodenberg Oct 12, 2025
68ac20a
Fix whitespace errors.
BenjaminRodenberg Oct 12, 2025
3cce8a0
Smooth all README files (#9)
uekerman Oct 13, 2025
f949730
Merge branch 'main' into waveform-iteration-precice-paper
BenjaminRodenberg Oct 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
143 changes: 143 additions & 0 deletions .github/workflows/4-1-partitioned-oscillator.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
name: Section 4.1 partitioned oscillator
on:
release:
types: [published]
workflow_dispatch:
pull_request:

jobs:
section_4_1:
name: Perform experiments from Section 4.1
strategy:
matrix:
experiment:
- name: Figure 10 constant
args: 'precice-config-FP.xml.jinja2 --silent --executor Github --config configs/fig10_dts.csv -tss runge_kutta_4 generalized_alpha -wd 0 -o results/Fig10/data/constant.csv'
- name: Figure 10 linear
args: 'precice-config-FP.xml.jinja2 --silent --executor Github --config configs/fig10_dts.csv -tss runge_kutta_4 generalized_alpha -wd 1 -o results/Fig10/data/linear.csv'
- name: Figure 10 piecewise linear
args: 'precice-config-FP.xml.jinja2 --silent --executor Github --config configs/fig10_dts.csv -tss runge_kutta_4 generalized_alpha -wd 1 --exchange-substeps -o results/Fig10/data/piecewise_linear.csv'
- name: Figure 10 third-order B-spline
args: 'precice-config-FP.xml.jinja2 --silent --executor Github --config configs/fig10_dts.csv -tss runge_kutta_4 generalized_alpha -wd 3 --exchange-substeps -o results/Fig10/data/third_degree_b-spline.csv'
- name: Figure 11
args: 'precice-config-FP.xml.jinja2 --silent --executor Github --config configs/fig11_dts.csv -tss runge_kutta_4 generalized_alpha -wd 3 --exchange-substeps -o results/Fig11/data/contour_data.csv'
- name: Table 1 fixed-point (shown)
args: 'precice-config-FP.xml.jinja2 --silent --executor Github --config configs/tab1_dts.csv -tss runge_kutta_4 generalized_alpha -wd 3 --exchange-substeps -o results/Tab1/data/FP.csv'
- name: Table 1 reduced quasi-Newton (not shown)
args: 'precice-config-rQN.xml.jinja2 --silent --executor Github --config configs/tab1_dts.csv -tss runge_kutta_4 generalized_alpha -wd 3 --exchange-substeps -o results/Tab1/data/rQN.csv'
- name: Table 1 full quasi-Newton (not shown)
args: 'precice-config-fQN.xml.jinja2 --silent --executor Github --config configs/tab1_dts.csv -tss runge_kutta_4 generalized_alpha -wd 3 --exchange-substeps -o results/Tab1/data/fQN.csv'
runs-on: ubuntu-latest
defaults:
run:
working-directory: experiments/oscillator-overlap
container: precice/precice:3.2.0
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Install Dependencies
run: |
apt-get -qq update
apt-get -qq install software-properties-common python3-dev python3-pip python3.12-venv git apt-utils pkg-config
rm -rf /var/lib/apt/lists/*
- name: Create venv
run: |
./make-venv.sh
- name: Activate venv
# see https://stackoverflow.com/a/74669486
run: |
. .venv/bin/activate
echo PATH=$PATH >> $GITHUB_ENV
- name: Run tutorial
run: |
python3 doConvergenceStudy.py ${{matrix.experiment.args}}
- name: Store results
if: always()
uses: actions/upload-artifact@v4
with:
name: oscillator-overlap ${{ matrix.experiment.name }}
path: |
# working directory is ignored by actions/upload-artifact
experiments/oscillator-overlap/results

visualize:
name: Create plots and tables to visualize experiments from Section 4.1
needs: section_4_1
runs-on: ubuntu-latest
container:
image: benjaminrodenberg/latex:wi-paper
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Download results from stage "experiment"
uses: actions/download-artifact@v5
with:
pattern: oscillator-overlap*
merge-multiple: true
path: artifacts
- name: Show structure for debugging
run: |
ls -R artifacts
- name: Replace pre-computed results with newly computed ones
run: |
rm -r plotting/oscillator-overlap/Fig10/data
mv artifacts/Fig10/data plotting/oscillator-overlap/Fig10/data
rm -r plotting/oscillator-overlap/Fig11/data
mv artifacts/Fig11/data plotting/oscillator-overlap/Fig11/data
rm -r plotting/oscillator-overlap/Tab1/data
mv artifacts/Tab1/data plotting/oscillator-overlap/Tab1/data
- name: Install Python dependencies
working-directory: plotting
run: pip install --break-system-packages -r requirements.txt
- name: Create visualizations
working-directory: plotting/oscillator-overlap
run: make
- name: Store results
if: always()
uses: actions/upload-artifact@v4
with:
name: visualizations
path: |
plotting/oscillator-overlap/Fig10/main.pdf
plotting/oscillator-overlap/Fig11/main.pdf
plotting/oscillator-overlap/Tab1/FP.pdf
plotting/oscillator-overlap/Tab1/fQN.pdf
plotting/oscillator-overlap/Tab1/rQN.pdf

merge:
name: Merge output artifacts
runs-on: ubuntu-latest
needs: section_4_1
steps:
- name: Merge results
uses: actions/upload-artifact/merge@v4
with:
name: results

publish-pages:
permissions:
contents: write
needs:
- merge
- visualize
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Download merge output
uses: actions/download-artifact@v4
with:
name: results
path: pages/oscillator-overlap/results

- name: Download visualizations
uses: actions/download-artifact@v4
with:
name: visualizations
path: pages/oscillator-overlap/visualizations

- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: pages
192 changes: 192 additions & 0 deletions .github/workflows/4-2-partitioned-heat-conduction.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
name: Section 4.2 partitioned heat conduction
on:
release:
types: [published]
workflow_dispatch:
pull_request:

jobs:
section_4_2_partitioned:
name: Perform experiments from Section 4.2 (partitioned)
strategy:
matrix:
experiment:
- name: Figure 13 IE, p=3
args: '--experiment sincos -w 6 -s 1 -wd 3 -sb 5 5 -dt 1 -tss BackwardEuler BackwardEuler --exchange-substeps -o results/Fig13/data/IE_3.csv'
- name: Figure 13 GL(2), p=2
args: '--experiment sincos -w 6 -s 1 -wd 2 -sb 5 5 -dt 1 -tss GaussLegendre2 GaussLegendre2 --exchange-substeps -o results/Fig13/data/GL2_2.csv'
- name: Figure 13 GL(2), p=3
args: '--experiment sincos -w 6 -s 1 -wd 3 -sb 5 5 -dt 1 -tss GaussLegendre2 GaussLegendre2 --exchange-substeps -o results/Fig13/data/GL2_3.csv'
- name: Figure 13 GL(2), p=5
args: '--experiment sincos -w 6 -s 1 -wd 5 -sb 5 5 -dt 1 -tss GaussLegendre2 GaussLegendre2 --exchange-substeps -o results/Fig13/data/GL2_5.csv'
- name: Figure 13 GL(3), p=3
args: '--experiment sincos -w 6 -s 1 -wd 3 -sb 5 5 -dt 1 -tss GaussLegendre3 GaussLegendre3 --exchange-substeps -o results/Fig13/data/GL3_3.csv'
- name: Figure 13 GL(3), p=5
args: '--experiment sincos -w 6 -s 1 -wd 5 -sb 5 5 -dt 1 -tss GaussLegendre3 GaussLegendre3 --exchange-substeps -o results/Fig13/data/GL3_5.csv'
- name: Figure 13 LIIIC(3), p=2
args: '--experiment sincos -w 6 -s 1 -wd 2 -sb 5 5 -dt 1 -tss LobattoIIIC3 LobattoIIIC3 --exchange-substeps -o results/Fig13extra/data/LIIIC3_2.csv'
- name: Figure 13 LIIIC(3), p=3
args: '--experiment sincos -w 6 -s 1 -wd 3 -sb 5 5 -dt 1 -tss LobattoIIIC3 LobattoIIIC3 --exchange-substeps -o results/Fig13extra/data/LIIIC3_3.csv'
- name: Figure 13 LIIIC(3), p=5
args: '--experiment sincos -w 6 -s 1 -wd 5 -sb 5 5 -dt 1 -tss LobattoIIIC3 LobattoIIIC3 --exchange-substeps -o results/Fig13extra/data/LIIIC3_5.csv'
runs-on: ubuntu-latest
defaults:
run:
working-directory: experiments/partitioned-heat-conduction
container: precice/precice:3.2.0
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Install Dependencies
run: |
apt-get -qq update
apt-get -qq install software-properties-common python3-dev python3-pip python3.12-venv git apt-utils pkg-config
add-apt-repository -y ppa:fenics-packages/fenics
apt-get -qq install --no-install-recommends fenics
rm -rf /var/lib/apt/lists/*
- name: Create venv
run: |
./make-venv.sh
- name: Activate venv
# see https://stackoverflow.com/a/74669486
run: |
. .venv/bin/activate
echo PATH=$PATH >> $GITHUB_ENV
- name: Run tutorial
run: |
python3 doConvergenceStudy.py precice-config.xml.jinja2 --silent --executor Github ${{matrix.experiment.args}}
- name: Store results
uses: actions/upload-artifact@v4
with:
name: partitioned-heat-conduction-convergence ${{ matrix.experiment.name }}
path: |
# working directory is ignored by actions/upload-artifact
experiments/partitioned-heat-conduction/results

section_4_2_monolithic:
name: Perform experiments from Section 4.2 (monolithic)
strategy:
matrix:
experiment:
- name: Figure 13 IE, mono
args: '--experiment sincos -s 6 -dt 0.2 -tss BackwardEuler -o results/Fig13/data/IE_mono.csv'
- name: Figure 13 GL(2), mono
args: '--experiment sincos -s 6 -dt 0.2 -tss GaussLegendre2 -o results/Fig13/data/GL2_mono.csv'
- name: Figure 13 GL(3), mono
args: '--experiment sincos -s 6 -dt 0.2 -tss GaussLegendre3 -o results/Fig13/data/GL3_mono.csv'
- name: Figure 13 LIIIC(3), mono
args: '--experiment sincos -s 6 -dt 0.2 -tss LobattoIIIC3 -o results/Fig13extra/data/LIIIC3_mono.csv'
runs-on: ubuntu-latest
defaults:
run:
working-directory: experiments/partitioned-heat-conduction
container: precice/precice:3.2.0
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Install Dependencies
run: |
apt-get -qq update
apt-get -qq install software-properties-common python3-dev python3-pip python3.12-venv git apt-utils pkg-config
add-apt-repository -y ppa:fenics-packages/fenics
apt-get -qq install --no-install-recommends fenics
rm -rf /var/lib/apt/lists/*
- name: Create venv
run: |
./make-venv.sh
- name: Activate venv
# see https://stackoverflow.com/a/74669486
run: |
. .venv/bin/activate
echo PATH=$PATH >> $GITHUB_ENV
- name: Run tutorial
run: |
python3 doConvergenceStudyMonolithic.py --silent --executor Github ${{matrix.experiment.args}}
- name: Store results
uses: actions/upload-artifact@v4
with:
name: partitioned-heat-conduction ${{ matrix.experiment.name }}
path: |
# working directory is ignored by actions/upload-artifact
experiments/partitioned-heat-conduction/results

visualize:
name: Create plots to visualize experiments from Section 4.2
needs:
- section_4_2_partitioned
- section_4_2_monolithic
runs-on: ubuntu-latest
container:
image: benjaminrodenberg/latex:wi-paper
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Download results from stage "experiment"
uses: actions/download-artifact@v5
with:
pattern: partitioned-heat-conduction*
merge-multiple: true
path: artifacts
- name: Show structure for debugging
run: |
ls -R artifacts
- name: Replace pre-computed results with newly computed ones
run: |
rm -r plotting/partitioned-heat-conduction/Fig13/data
mv artifacts/Fig13/data plotting/partitioned-heat-conduction/Fig13/data
rm -r plotting/partitioned-heat-conduction/Fig13extra/data
mv artifacts/Fig13extra/data plotting/partitioned-heat-conduction/Fig13extra/data
- name: Install Python dependencies
working-directory: plotting
run: pip install --break-system-packages -r requirements.txt
- name: Create visualizations
working-directory: plotting/partitioned-heat-conduction
run: make
- name: Store results
if: always()
uses: actions/upload-artifact@v4
with:
name: visualizations
path: |
plotting/partitioned-heat-conduction/Fig13/main.pdf
plotting/partitioned-heat-conduction/Fig13extra/main.pdf

merge:
name: Merge output artifacts
runs-on: ubuntu-latest
needs:
- section_4_2_partitioned
- section_4_2_monolithic
steps:
- name: Merge results
uses: actions/upload-artifact/merge@v4
with:
name: results

publish-pages:
permissions:
contents: write
needs:
- merge
- visualize
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Download merge output
uses: actions/download-artifact@v4
with:
name: results
path: pages/partitioned-heat-conduction/results

- name: Download visualizations
uses: actions/download-artifact@v4
with:
name: visualizations
path: pages/partitioned-heat-conduction/visualizations

- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: pages
Loading
Loading