|
| 1 | +name: Run precice-3 experiments |
| 2 | +on: workflow_dispatch |
| 3 | + |
| 4 | +jobs: |
| 5 | + run_experiments: |
| 6 | + strategy: |
| 7 | + matrix: |
| 8 | + experiment: |
| 9 | + # Higher-order time stepping |
| 10 | + - name: Higher-order time stepping Newmark_beta |
| 11 | + args: '-tss Newmark_beta Newmark_beta -o convergence-studies/higher-order/precice_3_Newmark_beta.csv' |
| 12 | + container-tag: 3.1.2 |
| 13 | + - name: Higher-order time stepping generalized_alpha |
| 14 | + args: '-tss generalized_alpha generalized_alpha -o convergence-studies/higher-order/precice_3_generalized_alpha.csv' |
| 15 | + container-tag: 3.1.2 |
| 16 | + - name: Higher-order time stepping runge_kutta_4 |
| 17 | + args: '-tss runge_kutta_4 runge_kutta_4 -o convergence-studies/higher-order/precice_3_runge_kutta_4.csv' |
| 18 | + container-tag: 3.1.2 |
| 19 | + - name: Higher-order time stepping radauIIA |
| 20 | + args: '-tss radauIIA radauIIA -o convergence-studies/higher-order/precice_3_radauIIA.csv' |
| 21 | + container-tag: 3.1.2 |
| 22 | + # Subcycling |
| 23 | + - name: Subcycling Newmark_beta |
| 24 | + args: '-s 5 -sb 1 1 -sf 2 1 -w 1 -tss Newmark_beta Newmark_beta -o convergence-studies/subcycling/precice_3_Newmark_beta.csv' |
| 25 | + container-tag: 3.1.2 |
| 26 | + - name: Subcycling generalized_alpha |
| 27 | + args: '-s 5 -sb 1 1 -sf 2 1 -w 1 -tss generalized_alpha generalized_alpha -o convergence-studies/subcycling/precice_3_generalized_alpha.csv' |
| 28 | + container-tag: 3.1.2 |
| 29 | + - name: Subcycling runge_kutta_4 |
| 30 | + args: '-s 5 -sb 1 1 -sf 2 1 -w 1 -tss runge_kutta_4 runge_kutta_4 -o convergence-studies/subcycling/precice_3_runge_kutta_4.csv' |
| 31 | + container-tag: 3.1.2 |
| 32 | + - name: Subcycling radauIIA |
| 33 | + args: '-s 5 -sb 1 1 -sf 2 1 -w 1 -tss radauIIA radauIIA -o convergence-studies/subcycling/precice_3_radauIIA.csv' |
| 34 | + container-tag: 3.1.2 |
| 35 | + # Runge Kutta 4 |
| 36 | + - name: runge_kutta_4 degree 1 |
| 37 | + args: '-tss runge_kutta_4 runge_kutta_4 -wd 1 -dt 0.2 -sb 5 5 -o convergence-studies/runge-kutta-4/precice_3_runge_kutta_4_degree1.csv' |
| 38 | + container-tag: 3.1.2 |
| 39 | + - name: runge_kutta_4 degree 2 |
| 40 | + args: '-tss runge_kutta_4 runge_kutta_4 -wd 2 -dt 0.2 -sb 5 5 -o convergence-studies/runge-kutta-4/precice_3_runge_kutta_4_degree2.csv' |
| 41 | + container-tag: 3.1.2 |
| 42 | + - name: runge_kutta_4 degree 3 |
| 43 | + args: '-tss runge_kutta_4 runge_kutta_4 -wd 3 -dt 0.2 -sb 5 5 -o convergence-studies/runge-kutta-4/precice_3_runge_kutta_4_degree3.csv' |
| 44 | + container-tag: 3.1.2 |
| 45 | + # RadauIIA |
| 46 | + - name: radauIIA degree 1 |
| 47 | + args: '-tss radauIIA radauIIA -wd 1 -dt 0.2 -sb 5 5 -o convergence-studies/radauIIA/precice_3_radauIIA_degree1.csv' |
| 48 | + container-tag: 3.1.2 |
| 49 | + - name: radauIIA degree 2 |
| 50 | + args: '-tss radauIIA radauIIA -wd 2 -dt 0.2 -sb 5 5 -o convergence-studies/radauIIA/precice_3_radauIIA_degree2.csv' |
| 51 | + container-tag: 3.1.2 |
| 52 | + - name: radauIIA degree 3 |
| 53 | + args: '-tss radauIIA radauIIA -wd 3 -dt 0.2 -sb 5 5 -o convergence-studies/radauIIA/precice_3_radauIIA_degree3.csv' |
| 54 | + container-tag: 3.1.2 |
| 55 | + # degree > 3 only allowed for precice > 3.2; see run_experiments_v3_nightly below |
| 56 | + - name: radauIIA degree 4 |
| 57 | + args: '-tss radauIIA radauIIA -wd 4 -dt 0.2 -sb 5 5 -o convergence-studies/radauIIA/precice_3_radauIIA_degree4.csv' |
| 58 | + container-tag: nightly |
| 59 | + - name: radauIIA degree 5 |
| 60 | + args: '-tss radauIIA radauIIA -wd 5 -dt 0.2 -sb 5 5 -o convergence-studies/radauIIA/precice_3_radauIIA_degree5.csv' |
| 61 | + container-tag: nightly |
| 62 | + runs-on: ubuntu-latest |
| 63 | + defaults: |
| 64 | + run: |
| 65 | + working-directory: ./precice-3 |
| 66 | + container: precice/precice:${{ matrix.experiment.container-tag }} |
| 67 | + steps: |
| 68 | + - name: Checkout Repository |
| 69 | + uses: actions/checkout@v4 |
| 70 | + - name: Install Dependencies |
| 71 | + run: | |
| 72 | + apt-get -qq update |
| 73 | + apt-get -qq install python3-venv git pkg-config g++ |
| 74 | + rm -rf /var/lib/apt/lists/* |
| 75 | + - name: Create venv |
| 76 | + run: | |
| 77 | + ./make-venv.sh |
| 78 | + - name: Activate venv |
| 79 | + # see https://stackoverflow.com/a/74669486 |
| 80 | + run: | |
| 81 | + . .venv/bin/activate |
| 82 | + echo PATH=$PATH >> $GITHUB_ENV |
| 83 | + - name: Run tutorial |
| 84 | + run: | |
| 85 | + python3 doConvergenceStudy.py precice-config-template.xml --silent --executor Github ${{ matrix.experiment.args }} |
| 86 | + - name: Store logs |
| 87 | + if: always() |
| 88 | + uses: actions/upload-artifact@v4 |
| 89 | + with: |
| 90 | + name: precice-3 logs ${{ matrix.experiment.name }} |
| 91 | + path: | |
| 92 | + # working directory is ignored by actions/upload-artifact |
| 93 | + ./precice-3/*.log |
| 94 | + - name: Store results |
| 95 | + uses: actions/upload-artifact@v4 |
| 96 | + with: |
| 97 | + name: precice-3 ${{ matrix.experiment.name }} |
| 98 | + path: | |
| 99 | + # working directory is ignored by actions/upload-artifact |
| 100 | + ./precice-3/convergence-studies |
| 101 | +
|
| 102 | + merge: |
| 103 | + runs-on: ubuntu-latest |
| 104 | + needs: run_experiments |
| 105 | + steps: |
| 106 | + - name: Merge results |
| 107 | + uses: actions/upload-artifact/merge@v4 |
| 108 | + with: |
| 109 | + name: precice-3 |
0 commit comments