diff --git a/.github/workflows/4-1-partitioned-oscillator.yml b/.github/workflows/4-1-partitioned-oscillator.yml new file mode 100644 index 00000000..ca48f94c --- /dev/null +++ b/.github/workflows/4-1-partitioned-oscillator.yml @@ -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 diff --git a/.github/workflows/4-2-partitioned-heat-conduction.yml b/.github/workflows/4-2-partitioned-heat-conduction.yml new file mode 100644 index 00000000..68fe27e1 --- /dev/null +++ b/.github/workflows/4-2-partitioned-heat-conduction.yml @@ -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 diff --git a/.github/workflows/4-3-perpendicular-flap.yml b/.github/workflows/4-3-perpendicular-flap.yml new file mode 100644 index 00000000..7f277fc5 --- /dev/null +++ b/.github/workflows/4-3-perpendicular-flap.yml @@ -0,0 +1,148 @@ +name: Section 4.3 perpendicular flap +on: + release: + types: [published] + workflow_dispatch: + pull_request: + +jobs: + section_4_3: + name: Perform experiments from Section 4.3 + strategy: + matrix: + experiment: + - name: Figure 15 + args: 'configs/Fig15.csv -o results/Fig15/data/result.csv' + - name: Figure 16 + args: 'configs/Fig16.csv -o results/Fig16/data/result.csv' + runs-on: ubuntu-latest + defaults: + run: + shell: bash + working-directory: experiments/perpendicular-flap + # built using tools/docker/fenics-openfoam/Dockerfile + container: benjaminrodenberg/fenics-openfoam:3.2.0 + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Update $HOME + run: echo "HOME=/root" >> "$GITHUB_ENV" + - name: Activate OpenFOAM # From https://github.com/gerlero/setup-openfoam/blob/68e0bf96c7f2aac1a100291a5d61fff934a472a8/action.yml#L54-L69 + run: | + old_path="$PATH" + source /usr/lib/openfoam/openfoam2412/etc/bashrc || true + + for var in "${!WM_@}"; do + echo "$var=${!var}" >> "$GITHUB_ENV" + done + + for var in "${!FOAM_@}"; do + echo "$var=${!var}" >> "$GITHUB_ENV" + done + + echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> "$GITHUB_ENV" + + echo "${PATH/%:$old_path}" >> "$GITHUB_PATH" + - name: Install Dependencies + run: | + apt-get -qq update + apt-get -qq install 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: Create venv for solid-fenics + run: | + cd solid-fenics + python3 -m venv --system-site-packages .venv + . .venv/bin/activate + pip install -r requirements.txt + - name: Run tutorial + run: | + . .venv/bin/activate + python3 doConvergenceStudy.py precice-config.xml.jinja2 --silent --executor Github ${{matrix.experiment.args}} + - name: Store results + uses: actions/upload-artifact@v4 + with: + name: perpendicular-flap ${{ matrix.experiment.name }} + path: | + # working directory is ignored by actions/upload-artifact + experiments/perpendicular-flap/results + + visualize: + name: Create plots to visualize experiments from Section 4.3 + needs: + - section_4_3 + 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: perpendicular-flap* + 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/perpendicular-flap/Fig15/data + mv artifacts/Fig15/data plotting/perpendicular-flap/Fig15/data + rm -r plotting/perpendicular-flap/Fig16/data + mv artifacts/Fig16/data plotting/perpendicular-flap/Fig16/data + - name: Install Python dependencies + working-directory: plotting + run: pip install --break-system-packages -r requirements.txt + - name: Create visualizations + working-directory: plotting/perpendicular-flap + run: make + - name: Store results + if: always() + uses: actions/upload-artifact@v4 + with: + name: visualizations + path: | + plotting/perpendicular-flap/Fig15/main.pdf + plotting/perpendicular-flap/Fig16/main.pdf + + merge: + name: Merge output artifacts + runs-on: ubuntu-latest + needs: section_4_3 + 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/perpendicular-flap/results + + - name: Download visualizations + uses: actions/download-artifact@v4 + with: + name: visualizations + path: pages/perpendicular-flap/visualizations + + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v4 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: pages diff --git a/.github/workflows/oscillator-overlap.yml b/.github/workflows/oscillator-overlap.yml deleted file mode 100644 index cf5bee10..00000000 --- a/.github/workflows/oscillator-overlap.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Run oscillator-overlap experiments -on: - release: - types: [published] - workflow_dispatch: - -jobs: - run_experiments: - strategy: - matrix: - experiment: - - name: Figure 6.1 RK4 GA - args: '-tss runge_kutta_4 generalized_alpha -wd 3 -dt 0.05 -sb 4 4 -s 8 -sf 1 2 -w 1 -o convergence-studies/subcycling_rk4_ga.csv' - - name: Figure 6.1 RK4 RK4 - args: '-tss runge_kutta_4 runge_kutta_4 -wd 3 -dt 0.05 -sb 4 4 -s 8 -sf 1 2 -w 1 -o convergence-studies/subcycling_rk4_rk4.csv' - - name: Figure 6.2a - args: '--config fig6_2a_config.csv -tss runge_kutta_4 generalized_alpha -wd 3 -o convergence-studies/contour_data.csv' - - name: Figure 6.2b S 2 4 - args: '-tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 4 -o convergence-studies/compensation_S_2_4.csv' - - name: Figure 6.2b S 2 8 - args: '-tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 8 -o convergence-studies/compensation_S_2_8.csv' - - name: Figure 6.2b S 2 16 - args: '-tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 16 -o convergence-studies/compensation_S_2_16.csv' - - name: Figure 6.2b S 2 32 - args: '-tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 32 -o convergence-studies/compensation_S_2_32.csv' - - name: Figure 6.2b S 2 64 - args: '-tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 64 -o convergence-studies/compensation_S_2_64.csv' - - name: Figure 6.2b S 2 128 - args: '-tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 128 -o convergence-studies/compensation_S_2_128.csv' - - name: Figure 6.2b S 2 256 - args: '-tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 256 -o convergence-studies/compensation_S_2_256.csv' - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./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 precice-config-template.xml --silent --executor Github ${{matrix.experiment.args}} - - name: Store logs - if: always() - uses: actions/upload-artifact@v4 - with: - name: oscillator-overlap logs ${{ matrix.experiment.name }} - path: | - perpendicular-flap/fluid-openfoam/stdout-Fluid.log - perpendicular-flap/solid-fenics/stdout-Solid.log - - 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 - ./oscillator-overlap/convergence-studies - merge: - runs-on: ubuntu-latest - needs: run_experiments - steps: - - name: Merge results - uses: actions/upload-artifact/merge@v4 - with: - name: oscillator-overlap diff --git a/.github/workflows/partitioned-heat-conduction-acceleration.yml b/.github/workflows/partitioned-heat-conduction-acceleration.yml deleted file mode 100644 index 3470931e..00000000 --- a/.github/workflows/partitioned-heat-conduction-acceleration.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: Run partitioned-heat-conduction acceleration experiments -on: - release: - types: [published] - workflow_dispatch: - -jobs: - run_experiments: - strategy: - matrix: - experiment: - - name: Table 6.1 QN-SC - args: ' -o acceleration-studies/QN-SC.csv' - - name: Table 6.1 rQN-WI - args: '--exchange-substeps -o acceleration-studies/rQN-WI.csv' - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./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 doAccelerationStudy.py precice-config-rQNWI-template.xml --silent --executor Github ${{matrix.experiment.args}} - - name: Store results - uses: actions/upload-artifact@v4 - with: - name: partitioned-heat-conduction-acceleration ${{ matrix.experiment.name }} - path: | - # working directory is ignored by actions/upload-artifact - ./partitioned-heat-conduction/acceleration-studies - merge: - runs-on: ubuntu-latest - needs: run_experiments - steps: - - name: Merge results - uses: actions/upload-artifact/merge@v4 - with: - name: partitioned-heat-conduction-acceleration diff --git a/.github/workflows/partitioned-heat-conduction-convergence.yml b/.github/workflows/partitioned-heat-conduction-convergence.yml deleted file mode 100644 index 2389d635..00000000 --- a/.github/workflows/partitioned-heat-conduction-convergence.yml +++ /dev/null @@ -1,78 +0,0 @@ -name: Run partitioned-heat-conduction convergence experiments -on: - release: - types: [published] - workflow_dispatch: - -jobs: - run_experiments: - strategy: - matrix: - experiment: - - name: Figure 6.4a) SC p0 - args: '--waveform-degree 0 --experiment poly --time-window-refinements 1 --time-step-refinements 6 --base-time-window-size 1 -o convergence-studies/subcycling_SC_p0_poly.csv' - - name: Figure 6.4a) SC p1 - args: '--waveform-degree 1 --experiment poly --time-window-refinements 1 --time-step-refinements 6 --base-time-window-size 1 -o convergence-studies/subcycling_SC_p1_poly.csv' - - name: Figure 6.4a) MC p1 - args: '--exchange-substeps --waveform-degree 1 --experiment poly --time-window-refinements 1 --time-step-refinements 6 --base-time-window-size 1 -o convergence-studies/subcycling_MC_p1_poly.csv' - - name: Figure 6.4b) SC p0 - args: '--waveform-degree 0 --experiment tri --time-window-refinements 1 --time-step-refinements 6 --base-time-window-size 1 -o convergence-studies/subcycling_SC_p0_tri.csv' - - name: Figure 6.4b) SC p1 - args: '--waveform-degree 1 --experiment tri --time-window-refinements 1 --time-step-refinements 6 --base-time-window-size 1 -o convergence-studies/subcycling_SC_p1_tri.csv' - - name: Figure 6.4b) MC p1 - args: '--exchange-substeps --waveform-degree 1 --experiment tri --time-window-refinements 1 --time-step-refinements 6 --base-time-window-size 1 -o convergence-studies/subcycling_MC_p1_tri.csv' - - name: Figure 6.5 IE 1 - args: '--experiment tri -w 6 -o convergence-studies/highorder_IE_1.csv' - - name: Figure 6.5 IE 5 - args: '--experiment tri -w 6 -s 1 -wd 5 -sb 5 5 -dt 0.5 --exchange-substeps -o convergence-studies/highorder_IE_5.csv' - - name: Figure 6.5 IE 10 - args: '--experiment tri -w 6 -s 1 -wd 10 -sb 10 10 -dt 1 --exchange-substeps -o convergence-studies/highorder_IE_10.csv' - - name: Figure 6.5 GL2 1 - args: '--experiment tri -w 6 -tss GaussLegendre2 GaussLegendre2 --exchange-substeps -o convergence-studies/highorder_GL2_1.csv' - - name: Figure 6.5 GL2 5 - args: '--experiment tri -w 6 -s 1 -wd 5 -sb 5 5 -dt 0.5 -tss GaussLegendre2 GaussLegendre2 --exchange-substeps -o convergence-studies/highorder_GL2_5.csv' - - name: Figure 6.5 LIIIC 1 - args: '--experiment tri -w 6 -tss LobattoIIIC3 LobattoIIIC3 --exchange-substeps -o convergence-studies/highorder_LIIIC_1.csv' - - name: Figure 6.5 LIIIC 10 - args: '--experiment tri -w 6 -s 1 -wd 10 -sb 10 10 -dt 1 -tss LobattoIIIC3 LobattoIIIC3 --exchange-substeps -o convergence-studies/highorder_LIIIC_10.csv' - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./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-template.xml --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 - ./partitioned-heat-conduction/convergence-studies - merge: - runs-on: ubuntu-latest - needs: run_experiments - steps: - - name: Merge results - uses: actions/upload-artifact/merge@v4 - with: - name: partitioned-heat-conduction-convergence diff --git a/.github/workflows/perpendicular-flap.yml b/.github/workflows/perpendicular-flap.yml deleted file mode 100644 index 3cc1062f..00000000 --- a/.github/workflows/perpendicular-flap.yml +++ /dev/null @@ -1,76 +0,0 @@ -name: Run perpendicular-flap experiments -on: - release: - types: [published] - workflow_dispatch: - -jobs: - run_experiments: - strategy: - matrix: - experiment: - - name: Figure 6.6 - args: 'fig6_6_config.csv -o studies/fig6_6.csv' - - name: Figure 6.7 - args: 'fig6_7_config.csv -o studies/fig6_7.csv' - runs-on: ubuntu-latest - defaults: - run: - shell: bash - working-directory: ./perpendicular-flap - # built using tools/docker/fenics-openfoam/Dockerfile - container: benjaminrodenberg/fenics-openfoam:3.2.0 - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - name: Update $HOME - run: echo "HOME=/root" >> "$GITHUB_ENV" - - name: Activate OpenFOAM # From https://github.com/gerlero/setup-openfoam/blob/68e0bf96c7f2aac1a100291a5d61fff934a472a8/action.yml#L54-L69 - run: | - old_path="$PATH" - source /usr/lib/openfoam/openfoam2412/etc/bashrc || true - - for var in "${!WM_@}"; do - echo "$var=${!var}" >> "$GITHUB_ENV" - done - - for var in "${!FOAM_@}"; do - echo "$var=${!var}" >> "$GITHUB_ENV" - done - - echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> "$GITHUB_ENV" - - echo "${PATH/%:$old_path}" >> "$GITHUB_PATH" - - name: Install Dependencies - run: | - apt-get -qq update - apt-get -qq install 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: Create venv for solid-fenics - run: | - cd solid-fenics - python3 -m venv --system-site-packages .venv - . .venv/bin/activate - pip install -r requirements.txt - - name: Run tutorial - run: | - . .venv/bin/activate - python3 doConvergenceStudy.py precice-config-template.xml --silent --executor Github ${{matrix.experiment.args}} - - name: Store results - uses: actions/upload-artifact@v4 - with: - name: perpendicular-flap ${{ matrix.experiment.name }} - path: | - # working directory is ignored by actions/upload-artifact - ./perpendicular-flap/studies - merge: - runs-on: ubuntu-latest - needs: run_experiments - steps: - - name: Merge results - uses: actions/upload-artifact/merge@v4 - with: - name: perpendicular-flap diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 936682ae..3cf9375d 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -3,8 +3,8 @@ on: workflow_dispatch: jobs: - build_dealii_openfoam: - name: "Build deal.ii-OpenFOAM" + build_precice_openfoam: + name: "Build preCICE 3.2.0 on top of opencfd/openfoam-dev:2412" runs-on: ubuntu-latest env: docker_username: benjaminrodenberg @@ -20,10 +20,11 @@ jobs: uses: docker/build-push-action@v6 with: push: true - file: "./tools/docker/dealii-openfoam/Dockerfile" - tags: ${{ env.docker_username }}/dealii-openfoam:3.2.0 + file: "./tools/docker/precice-openfoam/Dockerfile" + tags: ${{ env.docker_username }}/precice-openfoam:3.2.0 build_fenics_openfoam: name: "Build FEniCS-OpenFOAM" + needs: build_precice_openfoam runs-on: ubuntu-latest env: docker_username: benjaminrodenberg diff --git a/.github/workflows/turek-hron-fsi3.yml b/.github/workflows/turek-hron-fsi3.yml deleted file mode 100644 index 8cdbd8bf..00000000 --- a/.github/workflows/turek-hron-fsi3.yml +++ /dev/null @@ -1,101 +0,0 @@ -name: Run turek-hron-fsi3 experiments -on: - release: - types: [published] - workflow_dispatch: - -jobs: - run_experiments: - strategy: - matrix: - experiment: - - name: Figure 6.8 FEniCS-OpenFOAM legacy - solid-participant: fenics - solid-run: run_legacy.sh - container: benjaminrodenberg/fenics-openfoam:3.2.0 - id: legacy - expects-error: true - - name: Figure 6.8 FEniCS-OpenFOAM WI - solid-participant: fenics - solid-run: run_WI.sh - container: benjaminrodenberg/fenics-openfoam:3.2.0 - id: WI - expects-error: false - - name: Figure 6.8 deal.II-OpenFOAM nonlin - solid-participant: dealii - solid-run: run.sh -e=/dealii-adapter/elasticity - container: benjaminrodenberg/dealii-openfoam:3.2.0 - id: nonlin - expects-error: false - # runs-on: ubuntu-latest - runs-on: self-hosted - timeout-minutes: 4320 - defaults: - run: - shell: bash - working-directory: ./turek-hron-fsi3 - container: ${{ matrix.experiment.container }} - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - name: Activate OpenFOAM # From https://github.com/gerlero/setup-openfoam/blob/68e0bf96c7f2aac1a100291a5d61fff934a472a8/action.yml#L54-L69 - run: | - old_path="$PATH" - source /usr/lib/openfoam/openfoam2412/etc/bashrc || true - - for var in "${!WM_@}"; do - echo "$var=${!var}" >> "$GITHUB_ENV" - done - - for var in "${!FOAM_@}"; do - echo "$var=${!var}" >> "$GITHUB_ENV" - done - - echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> "$GITHUB_ENV" - - echo "${PATH/%:$old_path}" >> "$GITHUB_PATH" - - name: Install Dependencies - run: | - apt-get -qq update - apt-get -qq install python3-dev python3-pip python3-venv git apt-utils pkg-config - rm -rf /var/lib/apt/lists/* - - name: Run tutorial - continue-on-error: ${{ matrix.experiment.expects-error }} - run: | - # start two processes in parallel - # 1) solid participant and - # 2) fluid participant (OpenFOAM must not be run as root!) - ./prep_${{ matrix.experiment.solid-participant }}.sh - ( - cd ./solid-${{ matrix.experiment.solid-participant }} && - ./${{ matrix.experiment.solid-run }} - ) & - ( - chown -R precice . && - cd ./fluid-openfoam && - su precice -c 'source /usr/lib/openfoam/openfoam2412/etc/bashrc && ./run.sh' - ) - - name: Copy results to correct folder - if: always() - run: cp ./solid-${{ matrix.experiment.solid-participant }}/precice-Solid-watchpoint-Flap-Tip.log ./studies/precice-Solid-watchpoint-Flap-Tip-${{ matrix.experiment.id }}.log - - name: Create file with reduced results (filter times < 2.5e-1 and times > 3.5e-1) - if: always() - run: | - cp ./studies/precice-Solid-watchpoint-Flap-Tip-${{ matrix.experiment.id }}.log ./studies/precice-Solid-watchpoint-Flap-Tip-${{ matrix.experiment.id }}-detail.log - sed -i '2,251d' ./studies/precice-Solid-watchpoint-Flap-Tip-${{ matrix.experiment.id }}-detail.log - sed -i '103,$d' ./studies/precice-Solid-watchpoint-Flap-Tip-${{ matrix.experiment.id }}-detail.log - - name: Store results - uses: actions/upload-artifact@v4 - with: - name: turek-hron-fsi3 ${{ matrix.experiment.name }} - path: | - # working directory is ignored by actions/upload-artifact - ./turek-hron-fsi3/studies - merge: - runs-on: ubuntu-latest - needs: run_experiments - steps: - - name: Merge results - uses: actions/upload-artifact/merge@v4 - with: - name: turek-hron-fsi3 diff --git a/README.md b/README.md index 0eadb67b..d71ea37c 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,29 @@ -# Test cases from the dissertation of Benjamin Rodenberg +# Replication Data for: A Waveform Iteration Implementation for Black-box Multi-rate Higher-order Coupling -This repository contains modified versions of the tutorial cases from https://github.com/precice/tutorials/releases/tag/v202404.0. These tutorials acted as test cases for the dissertation "Flexible and robust time stepping for partitioned multiphysics" of Benjamin Rodenberg in Chapter 6 "Test cases". The folders in this repository are related to the following (sub-)sections of the thesis: +This repository contains all the data needed for performing the experiments and producing the plots from "A waveform iteration implementation for black-box multi-rate higher-order coupling" [^RodenbergUekermann2025]. -* `oscillator-overlap`: 6.1 Oscillator problem: - * Refer to `oscillator-overlap/convergence_studies.sh` for the experiments shown in Figures 6.1 and 6.2. -* `partitioned-heat-conduction`: 6.2 Partitioned heat conduction - * Refer to `partitioned-heat-conduction/convergence_study.sh` for the experiments shown in Figures 6.4 and 6.5. - * Refer to `partitioned-heat-conduction/acceleration_study.sh` for the experiments shown in Table 6.1. -* `perpendicular-flap`: 6.3.1 Perpendicular flap - * Refer to `perpendicular-flap/do_studies.sh` for the experiments shown in Figures 6.6 and 6.7. -* `turek-hron-fsi3`: 6.3.2 FSI3 benchmark - * Refer to `turek-hron-fsi3/do_studies.sh` for the experiments shown in Figure 6.8. +It is a fork of https://github.com/BenjaminRodenberg/test-cases-dissertation with test cases from Benjamin Rodenberg's dissertation "Flexible and robust time stepping for partitioned multiphysics" [^Rodenberg2025]. The test cases are modified versions of the tutorials from https://github.com/precice/tutorials/releases/tag/v202404.0 [^Chen2024]. -Please consider citing the preCICE distribution[^1] or Benjamin Rodenberg's dissertation[^2] if you find these tutorial cases useful. +The following two folders from this repository allow to run the experiments and create the plots from the paper: -You can use the workflows under `.github/workflows` to run the different tests cases via workflow dispatch. +* `experiments`: The definition of the setups and scripts to execute the experiments. The structure of this folder closely follows https://github.com/precice/tutorials/releases/tag/v202404.0. +* `plotting`: Scripts for creating plots from the data produced by the experiments. This folder also contains pre-computed data obtained by running the scenarios from `experiments`. -## Dependencies +Both folders contain subfolders corresponding to the following subsections of the results section of Rodenberg [^Rodenberg2025]: -The preCICE distribution version v2404.0 [^1] should provide a good basis for running the experiments provided in this repository. However, I suggest to use the latest versions of preCICE, respectively adapters. The experiments are known to run as expected on a system with the following specification: +* `oscillator-overlap`: 4.1 Partitioned oscillator +* `partitioned-heat-conduction`: 4.2 Partitioned heat conduction +* `perpendicular-flap`: 4.3 Perpendicular flap -### preCICE components +If you want to run the experiments from the paper, please refer to `experiments/README.md` for further instructions. If you want to create the plots from given results, please refer to `plotting/README.md`. -* preCICE [`3.2.0`](https://github.com/precice/precice/releases/tag/v3.2.0) -* pyprecice [`3.2.1`](https://github.com/precice/python-bindings/releases/tag/v3.2.1) (automatically installed via `requirements.txt` of the respective case) -* FEniCS adapter [`2.2.0`](https://github.com/precice/fenics-adapter/releases/tag/v2.2.0) (automatically installed via `requirements.txt` of the respective case) -* OpenFOAM adapter [`1.3.1`](https://github.com/precice/openfoam-adapter/releases/tag/v1.3.1) -* deal.II adapter [`4c6d092`](https://github.com/precice/dealii-adapter/commit/4c6d092c60c750478b08cfac25da1ff174c2d6f5) +## Running the experiments and creating the plots with GitHub Actions -### OS and other dependencies +The following folders contain job definitions and Dockerfiles that allow to run the experiments and create the plots using GitHub Actions. You can ignore these folders if you want to run the experiments locally. -* Ubuntu `24.04` -* Additional python packages (automatically installed via `requirements.txt` of the respective case) -* FEniCS `2019.2.0.64.dev0` (installed from FEniCS PPA https://launchpad.net/~fenics-packages/+archive/ubuntu/fenics; `python3 -c "import dolfin;print(dolfin.__version__)"` or run `fenics-version` from the terminal) -* OpenFOAM `2412` -* deal.II `9.5.1` (from https://launchpad.net/ubuntu/+source/deal.ii/9.5.1-2build3) +* `.github/workflows`: Definition of pipelines that allow to perform the experiments using [GitHub Actions](https://github.com/features/actions). You can fork this repository to run the experiments and create the plots with GitHub Actions. Alternatively, you can also find the artifacts created by the GitHub Actions pipeline on the branch [`gh-pages`](https://github.com/BenjaminRodenberg/test-cases-dissertation/tree/gh-pages). +* `tools/docker`: Docker files used by the CI job `.github/workflows/publish-docker.yml` to create docker images for running the experiments. The docker images can be found under https://hub.docker.com/r/benjaminrodenberg/fenics-openfoam and https://hub.docker.com/r/benjaminrodenberg/precice-openfoam. -[^1]: 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]: Rodenberg, Benjamin. *Flexible and robust time stepping for partitioned multiphysics*. Technical University of Munich, 2025. https://nbn-resolving.org/urn:nbn:de:bvb:91-diss-20250424-1763172-0-4. +[^RodenbergUekermann2025]: Rodenberg, Benjamin; Uekermann, Benjamin. *A waveform iteration implementation for black-box multi-rate higher-order coupling*. [Manuscript in preparation] +[^Chen2024]: 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. +[^Rodenberg2025]: Rodenberg, Benjamin. *Flexible and robust time stepping for partitioned multiphysics*. Technical University of Munich, 2025. https://nbn-resolving.org/urn:nbn:de:bvb:91-diss-20250424-1763172-0-4. diff --git a/experiments/README.md b/experiments/README.md new file mode 100644 index 00000000..7e3c359d --- /dev/null +++ b/experiments/README.md @@ -0,0 +1,163 @@ +# Experiments + +This folder `experiments` contains the scenarios and all required data and helper scripts needed to run the experiments. + +## Overview + +The subfolders of this folder refer to the test cases provided in *Section 4 Results*: + +* `experiments/oscillator-overlap` corresponds to *Section 4.1 Partitioned oscillator* +* `experiments/partitioned-heat-conduction` corresponds to *Section 4.2 Partitioned heat conduction* +* `experiments/perpendicular-flap` corresponds to *Section 4.3 Perpendicular flap* + +The following sections of this README document provide installation instructions for necessary dependencies and instructions on how to run the cases. The cases closely follow the [tutorial cases from the preCICE distribution version v2404.0](https://github.com/precice/tutorials/tree/v202404.0) [^Chen2024]. Refer to the tutorial descriptions on [the preCICE website](https://precice.org/tutorials.html) for details on the setups. + +## Dependencies & installation steps + +You can start from a recent Linux-based system (Ubuntu 24.04 is recommended). The experiments are known to run on a system with the following specification: + +### preCICE components + +* preCICE [`3.2.0`](https://github.com/precice/precice/releases/tag/v3.2.0) +* pyprecice [`3.2.1`](https://github.com/precice/python-bindings/releases/tag/v3.2.1) (automatically installed via `requirements.txt` of the respective cases) +* FEniCS adapter [`2.2.0`](https://github.com/precice/fenics-adapter/releases/tag/v2.2.0) (automatically installed via `requirements.txt` of the respective cases) +* OpenFOAM adapter [`1.3.1`](https://github.com/precice/openfoam-adapter/releases/tag/v1.3.1) + +### Other dependencies + +* The Python package [prepesthel](https://pypi.org/project/prepesthel/) for automation of preCICE runs (automatically installed via `requirements.txt` of the respective cases) +* Additional python packages (automatically installed via `requirements.txt` of the respective cases) +* FEniCS `2019.2.0.64.dev0` (installed from FEniCS PPA https://launchpad.net/~fenics-packages/+archive/ubuntu/fenics; compare version provided by `python3 -c "import dolfin;print(dolfin.__version__)"` or run `fenics-version`) +* OpenFOAM `2412` from OpenCFD / ESI (openfoam.com) + +### Installing the required dependencies + +The following steps will install the required dependencies: + +1. **preCICE**: Download the Debian package (`.deb`) of [preCICE v3.2.0](https://github.com/precice/precice/releases/tag/v3.2.0) and install it on your system by running the command + + ```sh + wget https://github.com/precice/precice/releases/download/v3.2.0/libprecice3_3.2.0_noble.deb + sudo apt install -y libprecice3_3.2.0_noble.deb + ``` + + Note: The code name `noble` refers to Ubuntu 24.04, see [Ubuntu docs](https://documentation.ubuntu.com/project/release-team/list-of-releases/). If you are using a different Ubuntu version, please replace `noble` with the respective code name. + +2. **FEniCS**: Enter the following commands: + + ```sh + sudo apt install -y software-properties-common + sudo add-apt-repository -y ppa:fenics-packages/fenics + sudo apt update + sudo apt install -y fenics + ``` + + These installation instructions are similar to the instructions the [FEniCS docs](https://fenicsproject.org/download/archive/). + +3. **OpenFOAM 2414**: Enter the following commands: + + ```sh + curl -s https://dl.openfoam.com/add-debian-repo.sh | sudo bash + sudo apt update + sudo apt install -y openfoam2412-default + ``` + + These installation instructions are similar to the instructions from the [OpenFOAM docs](https://develop.openfoam.com/Development/openfoam/-/wikis/precompiled/debian). After that, you also need to source the OpenFOAM bashrc file: + + ```sh + source /usr/lib/openfoam/openfoam2412/etc/bashrc + ``` + + You can also append this line to your `~/.bashrc` file by running + + ```sh + echo "source /usr/lib/openfoam/openfoam2412/etc/bashrc" >> ~/.bashrc + ``` + +4. **OpenFOAM adapter**: Enter the following commands: + + ```sh + wget https://github.com/precice/openfoam-adapter/releases/download/v1.3.1/openfoam-adapter-v1.3.1-OpenFOAMv1812-v2406-newer.tar.gz + tar -xzf openfoam-adapter-v1.3.1-OpenFOAMv1812-v2406-newer.tar.gz + cd openefoam-adapter-v1.3.1-master + ./Allwmake + ``` + +5. **pyprecice, the FEniCS adapter, and other Python dependencies**: These dependencies are fetched automatically from PyPI and installed into an individual virtual environment for each case. For example: + + ```sh + cd oscillator-overlap + ./make-venv.sh + ``` + + The command above creates a virtual environment with all required Python dependencies in the folder `.venv` in `oscillator-overlap`. You can get a list of the installed Python packages by running `.venv/bin/pip freeze`. + +## Running the test cases + +The test cases are forked from the [preCICE tutorials](https://github.com/precice/tutorials) and follow their basic structure. Additionally, they contain helper scripts for setting up the runtime environment, running the experiments, and postprocessing data for plotting: + +* `make-venv.sh` creates a virtual environment needed for running the experiments (see above). +* `run_experiments.sh` runs all experiments required for each study (convergence study, comparison of iteration numbers etc.). It is recommended to navigate to the respective folder and run this script. +* Folder `configs` with `.csv` files defines configurations (e.g., time window sizes or time step sizes) for individual experiments. +* Folder `results` will contain all relevant data for creation of the plots after running the experiments. +* Python scripts `doConvergenceStudy.py` and `doConvergenceStudyMonolithic.py` are indirectly called by `run_experiments.sh` and use the Python package [prepesthel](https://pypi.org/project/prepesthel/) to execute multiple preCICE experiments and create reports with their results. +* In contrast to the original preCICE tutorials, there is no `precice-config.xml`, but a `precice-config.xml.jinja2` Jinja2 template. This template is processed by the Jinja2 engine to create preCICE configuration files for the respective experiments. + +### Example: Run experiments from Section 4.1 + +If you want to run, for example, all experiments from *Section 4.1 Partitioned oscillator* please navigate to the folder `oscillator-overlap` and run the experiments by executing the helper script (this will take a while): + +``` +cd oscillator-overlap +./run_experiments.sh +``` + +After running the experiments, you will find all data in the `results` folder. For `oscillator-overlap` this looks as follows: + +``` +results/ +├── Fig10 +│   └── data +│   ├── piecewise_linear +│   │   ├── 0.0125_0.0025_0.000125 +│   │   │   ├── precice-Mass-Left-iterations.log +│   │   │   ├── precice-Mass-Right-convergence.log +│   │   │   └── precice-Mass-Right-iterations.log +│   │   : +│   │   └── 0.2_0.04_0.002 +│   │   ├── precice-Mass-Left-iterations.log +│   │   ├── precice-Mass-Right-convergence.log +│   │   └── precice-Mass-Right-iterations.log +│   ├── piecewise_linear.csv +│   ├── third_degree_b-spline +│   │   └── ... +│   └── third_degree_b-spline.csv +├── Fig11 +│   └── data +│   ├── contour_data +│   │   ├── 0.00125_0.0003125_0.00015625 +│   │   │   ├── precice-Mass-Left-iterations.log +│   │   │   ├── precice-Mass-Right-convergence.log +│   │   │   └── precice-Mass-Right-iterations.log +│   | : +│   │   └── 0.2_0.05_9.765625e-05 +│   │   ├── precice-Mass-Left-iterations.log +│   │   ├── precice-Mass-Right-convergence.log +│   │   └── precice-Mass-Right-iterations.log +│   └── contour_data.csv +└── Tab1 + └── data + ├── FP + │   └── ... + ├── FP.csv + ├── QN + │   └── ... + ├── QN.csv + ├── rQN + │   └── ... + └── rQN.csv +``` + +You can copy this data to the respective location in the `plotting` folder at the root of this repository or instead use the precomputed data already there. + +[^Chen2024]: 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. diff --git a/oscillator-overlap/.gitignore b/experiments/oscillator-overlap/.gitignore similarity index 100% rename from oscillator-overlap/.gitignore rename to experiments/oscillator-overlap/.gitignore diff --git a/oscillator-overlap/clean-tutorial.sh b/experiments/oscillator-overlap/clean-tutorial.sh similarity index 100% rename from oscillator-overlap/clean-tutorial.sh rename to experiments/oscillator-overlap/clean-tutorial.sh diff --git a/experiments/oscillator-overlap/configs/fig10_dts.csv b/experiments/oscillator-overlap/configs/fig10_dts.csv new file mode 100644 index 00000000..7f7de932 --- /dev/null +++ b/experiments/oscillator-overlap/configs/fig10_dts.csv @@ -0,0 +1,6 @@ +time window size,time step size Mass-Left,time step size Mass-Right +0.2,0.04,0.002 +0.1,0.02,0.001 +0.05,0.01,0.0005 +0.025,0.005,0.00025 +0.0125,0.0025,0.000125 \ No newline at end of file diff --git a/experiments/oscillator-overlap/configs/fig11_dts.csv b/experiments/oscillator-overlap/configs/fig11_dts.csv new file mode 100644 index 00000000..136d07f1 --- /dev/null +++ b/experiments/oscillator-overlap/configs/fig11_dts.csv @@ -0,0 +1,181 @@ +time window size,time step size Mass-Left,time step size Mass-Right +0.2,0.05,0.05 +0.2,0.05,0.025 +0.2,0.05,0.0125 +0.2,0.05,0.00625 +0.2,0.05,0.003125 +0.2,0.05,0.0015625 +0.2,0.05,0.00078125 +0.2,0.05,0.000390625 +0.2,0.05,0.0001953125 +0.2,0.05,9.765625e-05 +0.1,0.025,0.025 +0.1,0.025,0.0125 +0.1,0.025,0.00625 +0.1,0.025,0.003125 +0.1,0.025,0.0015625 +0.1,0.025,0.00078125 +0.1,0.025,0.000390625 +0.1,0.025,0.0001953125 +0.1,0.025,9.765625e-05 +0.1,0.025,4.8828125e-05 +# 0.0769... = 1/13 = T/n is closest to 0.08 which does not fit into T=1 +0.07692307692307693,0.019230769230769232,0.019230769230769232 +0.07692307692307693,0.019230769230769232,0.009615384615384616 +0.07692307692307693,0.019230769230769232,0.004807692307692308 +0.07692307692307693,0.019230769230769232,0.002403846153846154 +0.07692307692307693,0.019230769230769232,0.001201923076923077 +0.07692307692307693,0.019230769230769232,0.0006009615384615385 +0.07692307692307693,0.019230769230769232,0.00030048076923076925 +0.07692307692307693,0.019230769230769232,0.00015024038461538462 +0.07692307692307693,0.019230769230769232,7.512019230769231e-05 +0.07692307692307693,0.019230769230769232,3.7560096153846156e-05 +0.0625,0.015625,0.015625 +0.0625,0.015625,0.0078125 +0.0625,0.015625,0.00390625 +0.0625,0.015625,0.001953125 +0.0625,0.015625,0.0009765625 +0.0625,0.015625,0.00048828125 +0.0625,0.015625,0.000244140625 +0.0625,0.015625,0.0001220703125 +0.0625,0.015625,6.103515625e-05 +0.0625,0.015625,3.0517578125e-05 +0.05,0.0125,0.0125 +0.05,0.0125,0.00625 +0.05,0.0125,0.003125 +0.05,0.0125,0.0015625 +0.05,0.0125,0.00078125 +0.05,0.0125,0.000390625 +0.05,0.0125,0.0001953125 +0.05,0.0125,9.765625e-05 +0.05,0.0125,4.8828125e-05 +0.05,0.0125,2.44140625e-05 +0.04,0.01,0.01 +0.04,0.01,0.005 +0.04,0.01,0.0025 +0.04,0.01,0.00125 +0.04,0.01,0.000625 +0.04,0.01,0.0003125 +0.04,0.01,0.00015625 +0.04,0.01,7.8125e-05 +0.04,0.01,3.90625e-05 +0.04,0.01,1.953125e-05 +0.03125,0.0078125,0.0078125 +0.03125,0.0078125,0.00390625 +0.03125,0.0078125,0.001953125 +0.03125,0.0078125,0.0009765625 +0.03125,0.0078125,0.00048828125 +0.03125,0.0078125,0.000244140625 +0.03125,0.0078125,0.0001220703125 +0.03125,0.0078125,6.103515625e-05 +0.03125,0.0078125,3.0517578125e-05 +0.03125,0.0078125,1.52587890625e-05 +0.025,0.00625,0.00625 +0.025,0.00625,0.003125 +0.025,0.00625,0.0015625 +0.025,0.00625,0.00078125 +0.025,0.00625,0.000390625 +0.025,0.00625,0.0001953125 +0.025,0.00625,9.765625e-05 +0.025,0.00625,4.8828125e-05 +0.025,0.00625,2.44140625e-05 +0.025,0.00625,1.220703125e-05 +0.02,0.005,0.005 +0.02,0.005,0.0025 +0.02,0.005,0.00125 +0.02,0.005,0.000625 +0.02,0.005,0.0003125 +0.02,0.005,0.00015625 +0.02,0.005,7.8125e-05 +0.02,0.005,3.90625e-05 +0.02,0.005,1.953125e-05 +0.015625,0.00390625,0.00390625 +0.015625,0.00390625,0.001953125 +0.015625,0.00390625,0.0009765625 +0.015625,0.00390625,0.00048828125 +0.015625,0.00390625,0.000244140625 +0.015625,0.00390625,0.0001220703125 +0.015625,0.00390625,6.103515625e-05 +0.015625,0.00390625,3.0517578125e-05 +0.015625,0.00390625,1.52587890625e-05 +0.0125,0.003125,0.003125 +0.0125,0.003125,0.0015625 +0.0125,0.003125,0.00078125 +0.0125,0.003125,0.000390625 +0.0125,0.003125,0.0001953125 +0.0125,0.003125,9.765625e-05 +0.0125,0.003125,4.8828125e-05 +0.0125,0.003125,2.44140625e-05 +0.0125,0.003125,1.220703125e-05 +0.01,0.0025,0.0025 +0.01,0.0025,0.00125 +0.01,0.0025,0.000625 +0.01,0.0025,0.0003125 +0.01,0.0025,0.00015625 +0.01,0.0025,7.8125e-05 +0.01,0.0025,3.90625e-05 +0.01,0.0025,1.953125e-05 +0.01,0.0025,9.765625e-06 +0.008,0.002,0.002 +0.008,0.002,0.001 +0.008,0.002,0.0005 +0.008,0.002,0.00025 +0.008,0.002,0.000125 +0.008,0.002,6.25e-05 +0.008,0.002,3.125e-05 +0.008,0.002,1.5625e-05 +0.00625,0.0015625,0.0015625 +0.00625,0.0015625,0.00078125 +0.00625,0.0015625,0.000390625 +0.00625,0.0015625,0.0001953125 +0.00625,0.0015625,9.765625e-05 +0.00625,0.0015625,4.8828125e-05 +0.00625,0.0015625,2.44140625e-05 +0.00625,0.0015625,1.220703125e-05 +0.005,0.00125,0.00125 +0.005,0.00125,0.000625 +0.005,0.00125,0.0003125 +0.005,0.00125,0.00015625 +0.005,0.00125,7.8125e-05 +0.005,0.00125,3.90625e-05 +0.005,0.00125,1.953125e-05 +0.004,0.001,0.001 +0.004,0.001,0.0005 +0.004,0.001,0.00025 +0.004,0.001,0.000125 +0.004,0.001,6.25e-05 +0.004,0.001,3.125e-05 +0.004,0.001,1.5625e-05 +0.003125,0.00078125,0.00078125 +0.003125,0.00078125,0.000390625 +0.003125,0.00078125,0.0001953125 +0.003125,0.00078125,9.765625e-05 +0.003125,0.00078125,4.8828125e-05 +0.003125,0.00078125,2.44140625e-05 +0.003125,0.00078125,1.220703125e-05 +0.003125,0.00078125,6.103515625e-06 +0.0028571428571428,0.0007142857142857,0.0007142857142857 +0.0028571428571428,0.0007142857142857,0.0003571428571428 +0.0028571428571428,0.0007142857142857,0.0001785714285714 +0.0028571428571428,0.0007142857142857,8.92857142857032e-05 +0.0028571428571428,0.0007142857142857,4.46428571428734e-05 +0.0028571428571428,0.0007142857142857,2.23214285714149e-05 +0.0028571428571428,0.0007142857142857,1.1160714285729497e-05 +0.0025,0.000625,0.000625 +0.0025,0.000625,0.0003125 +0.0025,0.000625,0.00015625 +0.0025,0.000625,7.8125e-05 +0.0025,0.000625,3.90625e-05 +0.0025,0.000625,1.953125e-05 +0.0015625,0.000390625,0.000390625 +0.0015625,0.000390625,0.0001953125 +0.0015625,0.000390625,9.765625e-05 +0.0015625,0.000390625,4.8828125e-05 +0.0015625,0.000390625,2.44140625e-05 +0.0015625,0.000390625,1.220703125e-05 +0.00125,0.0003125,0.0003125 +0.00125,0.0003125,0.00015625 +0.00125,0.0003125,7.8125e-05 +0.00125,0.0003125,3.90625e-05 +0.00125,0.0003125,1.953125e-05 +0.00125,0.0003125,9.765625e-06 \ No newline at end of file diff --git a/experiments/oscillator-overlap/configs/tab1_dts.csv b/experiments/oscillator-overlap/configs/tab1_dts.csv new file mode 100644 index 00000000..0445c8d6 --- /dev/null +++ b/experiments/oscillator-overlap/configs/tab1_dts.csv @@ -0,0 +1,7 @@ +time window size,time step size Mass-Left,time step size Mass-Right +0.005,0.005,0.0002 +0.01,0.005,0.0002 +0.02,0.005,0.0002 +0.05,0.005,0.0002 +0.1,0.005,0.0002 +0.2,0.005,0.0002 \ No newline at end of file diff --git a/oscillator-overlap/doConvergenceStudy.py b/experiments/oscillator-overlap/doConvergenceStudy.py similarity index 83% rename from oscillator-overlap/doConvergenceStudy.py rename to experiments/oscillator-overlap/doConvergenceStudy.py index 6b556b2f..732a3804 100644 --- a/oscillator-overlap/doConvergenceStudy.py +++ b/experiments/oscillator-overlap/doConvergenceStudy.py @@ -85,6 +85,11 @@ help="Waveform degree being used", type=int, default=1) + parser.add_argument( + "-es", + "--exchange-substeps", + help="Turn exchange of substeps on/off.", + action="store_true") parser.add_argument( "-o", "--out-filename", @@ -93,11 +98,12 @@ ) args = parser.parse_args() - # Define values that will be inserted into precice-config-template.xml here + # Define values that will be inserted into precice-config.xml.jinja2 here precice_config_params = { 'time_window_size': None, # will be defined later 'max_time': args.max_time, 'waveform_degree': args.waveform_degree, + 'substeps': args.exchange_substeps, } root_folder = Path(__file__).parent.absolute() @@ -135,16 +141,19 @@ time_step_config = pd.DataFrame(time_step_config) # (optional) output dt configuration to csv # output_csv = time_step_config.set_index(["time window size"] + [f"time step size {p.name}" for p in participants.values()]) - # output_csv.to_csv('config.csv') + # output_csv.to_csv('config.csv') results_file_path = root_folder if args.out_filename: # use file name given by user results_file_path = results_file_path / args.out_filename else: # no file name is given. Create UUID for file name - results_file_path = results_file_path / "convergence-studies" / f"{uuid.uuid4()}.csv" + results_file_path = results_file_path / "results" / f"{uuid.uuid4()}.csv" results = Results(results_file_path) + study_folder = results_file_path.parent / results_file_path.stem # use path without .csv as folder for watchpoints + study_folder.mkdir(parents=False, exist_ok=False) + for _, experiment_setup in time_step_config.iterrows(): precice_config_params['time_window_size'] = experiment_setup['time window size'] for name, p in participants.items(): @@ -156,5 +165,15 @@ results.append(summary) results.output_preliminary(silent=args.silent) + + # move files with convergence information into experiment folder + exp_id = f"{experiment_setup['time window size']}_{experiment_setup['time step size Mass-Left']}_{experiment_setup['time step size Mass-Right']}" + experiment_folder = study_folder / exp_id + experiment_folder.mkdir(parents=False, exist_ok=False) + ## copy all relevant files + for f in [participants["Mass-Left"].root / "precice-Mass-Left-iterations.log", + participants["Mass-Right"].root / "precice-Mass-Right-convergence.log", + participants["Mass-Right"].root / "precice-Mass-Right-iterations.log"]: + f.rename(experiment_folder / f.name) results.output_final(participants, args, precice_config_params, silent=args.silent, executor=args.executor) diff --git a/oscillator-overlap/images/tutorials-oscillator-overlap-dd.pdf b/experiments/oscillator-overlap/images/tutorials-oscillator-overlap-dd.pdf similarity index 100% rename from oscillator-overlap/images/tutorials-oscillator-overlap-dd.pdf rename to experiments/oscillator-overlap/images/tutorials-oscillator-overlap-dd.pdf diff --git a/oscillator-overlap/images/tutorials-oscillator-overlap-dd.png b/experiments/oscillator-overlap/images/tutorials-oscillator-overlap-dd.png similarity index 100% rename from oscillator-overlap/images/tutorials-oscillator-overlap-dd.png rename to experiments/oscillator-overlap/images/tutorials-oscillator-overlap-dd.png diff --git a/oscillator-overlap/images/tutorials-oscillator-overlap-dd.tex b/experiments/oscillator-overlap/images/tutorials-oscillator-overlap-dd.tex similarity index 100% rename from oscillator-overlap/images/tutorials-oscillator-overlap-dd.tex rename to experiments/oscillator-overlap/images/tutorials-oscillator-overlap-dd.tex diff --git a/oscillator-overlap/images/tutorials-oscillator-overlap-precice-config.png b/experiments/oscillator-overlap/images/tutorials-oscillator-overlap-precice-config.png similarity index 100% rename from oscillator-overlap/images/tutorials-oscillator-overlap-precice-config.png rename to experiments/oscillator-overlap/images/tutorials-oscillator-overlap-precice-config.png diff --git a/oscillator-overlap/make-venv.sh b/experiments/oscillator-overlap/make-venv.sh similarity index 100% rename from oscillator-overlap/make-venv.sh rename to experiments/oscillator-overlap/make-venv.sh diff --git a/oscillator-overlap/mass-left-python/.gitignore b/experiments/oscillator-overlap/mass-left-python/.gitignore similarity index 100% rename from oscillator-overlap/mass-left-python/.gitignore rename to experiments/oscillator-overlap/mass-left-python/.gitignore diff --git a/oscillator-overlap/mass-left-python/clean.sh b/experiments/oscillator-overlap/mass-left-python/clean.sh similarity index 100% rename from oscillator-overlap/mass-left-python/clean.sh rename to experiments/oscillator-overlap/mass-left-python/clean.sh diff --git a/oscillator-overlap/mass-left-python/run.sh b/experiments/oscillator-overlap/mass-left-python/run.sh similarity index 100% rename from oscillator-overlap/mass-left-python/run.sh rename to experiments/oscillator-overlap/mass-left-python/run.sh diff --git a/oscillator-overlap/mass-right-python/.gitignore b/experiments/oscillator-overlap/mass-right-python/.gitignore similarity index 100% rename from oscillator-overlap/mass-right-python/.gitignore rename to experiments/oscillator-overlap/mass-right-python/.gitignore diff --git a/oscillator-overlap/mass-right-python/clean.sh b/experiments/oscillator-overlap/mass-right-python/clean.sh similarity index 100% rename from oscillator-overlap/mass-right-python/clean.sh rename to experiments/oscillator-overlap/mass-right-python/clean.sh diff --git a/oscillator-overlap/mass-right-python/run.sh b/experiments/oscillator-overlap/mass-right-python/run.sh similarity index 100% rename from oscillator-overlap/mass-right-python/run.sh rename to experiments/oscillator-overlap/mass-right-python/run.sh diff --git a/oscillator-overlap/precice-config-template.xml b/experiments/oscillator-overlap/precice-config-FP.xml.jinja2 similarity index 97% rename from oscillator-overlap/precice-config-template.xml rename to experiments/oscillator-overlap/precice-config-FP.xml.jinja2 index 8af085ed..3de3ead4 100644 --- a/oscillator-overlap/precice-config-template.xml +++ b/experiments/oscillator-overlap/precice-config-FP.xml.jinja2 @@ -55,13 +55,13 @@ from="Mass-Left" to="Mass-Right" initialize="true" - substeps="true" /> + substeps="{{substeps}}" /> + substeps="{{substeps}}" /> diff --git a/experiments/oscillator-overlap/precice-config-fQN.xml.jinja2 b/experiments/oscillator-overlap/precice-config-fQN.xml.jinja2 new file mode 100644 index 00000000..6566f403 --- /dev/null +++ b/experiments/oscillator-overlap/precice-config-fQN.xml.jinja2 @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/experiments/oscillator-overlap/precice-config-rQN.xml.jinja2 b/experiments/oscillator-overlap/precice-config-rQN.xml.jinja2 new file mode 100644 index 00000000..29a75817 --- /dev/null +++ b/experiments/oscillator-overlap/precice-config-rQN.xml.jinja2 @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/oscillator-overlap/convergence-studies/.gitkeep b/experiments/oscillator-overlap/results/Fig10/data/.gitkeep similarity index 100% rename from oscillator-overlap/convergence-studies/.gitkeep rename to experiments/oscillator-overlap/results/Fig10/data/.gitkeep diff --git a/partitioned-heat-conduction/convergence-studies/.gitkeep b/experiments/oscillator-overlap/results/Fig11/data/.gitkeep similarity index 100% rename from partitioned-heat-conduction/convergence-studies/.gitkeep rename to experiments/oscillator-overlap/results/Fig11/data/.gitkeep diff --git a/partitioned-heat-conduction/dirichlet-fenics/output/.gitkeep b/experiments/oscillator-overlap/results/Tab1/data/.gitkeep similarity index 100% rename from partitioned-heat-conduction/dirichlet-fenics/output/.gitkeep rename to experiments/oscillator-overlap/results/Tab1/data/.gitkeep diff --git a/experiments/oscillator-overlap/run_experiments.sh b/experiments/oscillator-overlap/run_experiments.sh new file mode 100755 index 00000000..8e801254 --- /dev/null +++ b/experiments/oscillator-overlap/run_experiments.sh @@ -0,0 +1,20 @@ +. .venv/bin/activate +# Section 4.1 partitioned oscillator + +## Figure 10 +### constant +python3 doConvergenceStudy.py precice-config-FP.xml.jinja2 --config configs/fig10_dts.csv -tss runge_kutta_4 generalized_alpha -wd 0 -o results/Fig10/data/constant.csv +### linear +python3 doConvergenceStudy.py precice-config-FP.xml.jinja2 --config configs/fig10_dts.csv -tss runge_kutta_4 generalized_alpha -wd 1 -o results/Fig10/data/linear.csv +### piecewise linear +python3 doConvergenceStudy.py precice-config-FP.xml.jinja2 --config configs/fig10_dts.csv -tss runge_kutta_4 generalized_alpha -wd 1 --exchange-substeps -o results/Fig10/data/piecewise_linear.csv +### third-degree B-spline +python3 doConvergenceStudy.py precice-config-FP.xml.jinja2 --config configs/fig10_dts.csv -tss runge_kutta_4 generalized_alpha -wd 3 --exchange-substeps -o results/Fig10/data/third_degree_b-spline.csv + +## Figure 11 +python3 doConvergenceStudy.py 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 + +## Table 1 optimal relationship of dts +python3 doConvergenceStudy.py precice-config-FP.xml.jinja2 --config configs/tab1_dts.csv -tss runge_kutta_4 generalized_alpha -wd 3 --exchange-substeps -o results/Tab1/data/FP.csv +python3 doConvergenceStudy.py precice-config-rQN.xml.jinja2 --config configs/tab1_dts.csv -tss runge_kutta_4 generalized_alpha -wd 3 --exchange-substeps -o results/Tab1/data/rQN.csv +python3 doConvergenceStudy.py precice-config-fQN.xml.jinja2 --config configs/tab1_dts.csv -tss runge_kutta_4 generalized_alpha -wd 3 --exchange-substeps -o results/Tab1/data/fQN.csv diff --git a/oscillator-overlap/solver-python/mypy.ini b/experiments/oscillator-overlap/solver-python/mypy.ini similarity index 100% rename from oscillator-overlap/solver-python/mypy.ini rename to experiments/oscillator-overlap/solver-python/mypy.ini diff --git a/oscillator-overlap/solver-python/oscillator.py b/experiments/oscillator-overlap/solver-python/oscillator.py similarity index 100% rename from oscillator-overlap/solver-python/oscillator.py rename to experiments/oscillator-overlap/solver-python/oscillator.py diff --git a/oscillator-overlap/solver-python/problemDefinition.py b/experiments/oscillator-overlap/solver-python/problemDefinition.py similarity index 100% rename from oscillator-overlap/solver-python/problemDefinition.py rename to experiments/oscillator-overlap/solver-python/problemDefinition.py diff --git a/oscillator-overlap/solver-python/requirements.txt b/experiments/oscillator-overlap/solver-python/requirements.txt similarity index 100% rename from oscillator-overlap/solver-python/requirements.txt rename to experiments/oscillator-overlap/solver-python/requirements.txt diff --git a/oscillator-overlap/solver-python/timeSteppers.py b/experiments/oscillator-overlap/solver-python/timeSteppers.py similarity index 100% rename from oscillator-overlap/solver-python/timeSteppers.py rename to experiments/oscillator-overlap/solver-python/timeSteppers.py diff --git a/partitioned-heat-conduction/.gitignore b/experiments/partitioned-heat-conduction/.gitignore similarity index 100% rename from partitioned-heat-conduction/.gitignore rename to experiments/partitioned-heat-conduction/.gitignore diff --git a/tools/clean-tutorial-base.sh b/experiments/partitioned-heat-conduction/clean-tutorial.sh similarity index 100% rename from tools/clean-tutorial-base.sh rename to experiments/partitioned-heat-conduction/clean-tutorial.sh diff --git a/partitioned-heat-conduction/dirichlet-fenics/.gitignore b/experiments/partitioned-heat-conduction/dirichlet-fenics/.gitignore similarity index 100% rename from partitioned-heat-conduction/dirichlet-fenics/.gitignore rename to experiments/partitioned-heat-conduction/dirichlet-fenics/.gitignore diff --git a/partitioned-heat-conduction/dirichlet-fenics/clean.sh b/experiments/partitioned-heat-conduction/dirichlet-fenics/clean.sh similarity index 100% rename from partitioned-heat-conduction/dirichlet-fenics/clean.sh rename to experiments/partitioned-heat-conduction/dirichlet-fenics/clean.sh diff --git a/partitioned-heat-conduction/dirichlet-fenics/precice-adapter-config.json b/experiments/partitioned-heat-conduction/dirichlet-fenics/precice-adapter-config.json similarity index 100% rename from partitioned-heat-conduction/dirichlet-fenics/precice-adapter-config.json rename to experiments/partitioned-heat-conduction/dirichlet-fenics/precice-adapter-config.json diff --git a/partitioned-heat-conduction/dirichlet-fenics/run.sh b/experiments/partitioned-heat-conduction/dirichlet-fenics/run.sh similarity index 100% rename from partitioned-heat-conduction/dirichlet-fenics/run.sh rename to experiments/partitioned-heat-conduction/dirichlet-fenics/run.sh diff --git a/partitioned-heat-conduction/doConvergenceStudy.py b/experiments/partitioned-heat-conduction/doConvergenceStudy.py similarity index 98% rename from partitioned-heat-conduction/doConvergenceStudy.py rename to experiments/partitioned-heat-conduction/doConvergenceStudy.py index 0eae7750..363bf811 100644 --- a/partitioned-heat-conduction/doConvergenceStudy.py +++ b/experiments/partitioned-heat-conduction/doConvergenceStudy.py @@ -18,7 +18,11 @@ class Experiments(Enum): POLYNOMIAL = 'poly' + POLYNOMIAL2 = 'poly2' + POLYNOMIAL3 = 'poly3' + POLYNOMIAL4 = 'poly4' TRIGONOMETRIC = 'tri' + SINCOS = 'sincos' def postproc(participants: Participants, precice_config_params=None): @@ -28,7 +32,7 @@ def postproc(participants: Participants, precice_config_params=None): summary = {"time window size": time_window_size} for participant in participants.values(): # store iterations - df = pd.read_csv(participant.root / f"precice-{participant.name}-iterations.log",sep='\s+') + df = pd.read_csv(participant.root / f"precice-{participant.name}-iterations.log",sep="\s+") summary[f"substeps {participant.name}"] = participant.kwargs['--substeps'] summary[f"avg(iterations / window)"] = df["Iterations"].mean() summary[f"max(iterations / window)"] = df["Iterations"].max() diff --git a/experiments/partitioned-heat-conduction/doConvergenceStudyMonolithic.py b/experiments/partitioned-heat-conduction/doConvergenceStudyMonolithic.py new file mode 100644 index 00000000..b4ef3199 --- /dev/null +++ b/experiments/partitioned-heat-conduction/doConvergenceStudyMonolithic.py @@ -0,0 +1,147 @@ +import pandas as pd +from pathlib import Path +import uuid +import argparse +from enum import Enum + +import datetime + +from prepesthel.participant import Participant, Participants +from prepesthel.runner import run +from prepesthel.io import Results, Executors + +default_precice_config_params = { + 'max_used_iterations': 10, + 'time_windows_reused': 5, +} + + +class Experiments(Enum): + POLYNOMIAL = 'poly' + POLYNOMIAL2 = 'poly2' + POLYNOMIAL3 = 'poly3' + POLYNOMIAL4 = 'poly4' + TRIGONOMETRIC = 'tri' + SINCOS = 'sincos' + + +def postproc(participants: Participants): + print(f"{datetime.datetime.now()}: Postprocessing...") + + summary = {} + + for participant in participants.values(): + # store errors + df = pd.read_csv(participant.root / f"output-{participant.name}.csv", comment="#") + summary[f"time step size {participant.name}"] = participant.kwargs['--time-step-size'] + summary[f"error {participant.name}"] = df["errors"].abs().max() + + print(f"{datetime.datetime.now()}: Done.") + + return summary + + + +if __name__ == "__main__": + n_supported_participants = 1 + + parser = argparse.ArgumentParser(description="Solving heat equation for monolithic case") + parser.add_argument( + "--silent", + help="Deactivates result output to command line", + action='store_true') + parser.add_argument( + "--executor", + help="Define type of executor", + type=str, + choices=[e.value for e in Executors], + default=Executors.LOCAL.value) + parser.add_argument( + "-T", + "--max-time", + help="Max simulation time", + type=float, + default=1.0) + parser.add_argument( + "-dt", + "--base-time-step-size", + help="Base time step size", + type=float, + default=0.1) + parser.add_argument( + "-s", + "--time-step-refinements", + help="Number of refinements by factor 2 for the time step size", + type=int, + default=5) + parser.add_argument( + "-sf", + "--time-step-refinement-factor", + help="Factor of time step refinements for each participant (use 1, if you want to use a fixed time step / time window relationship for one participant while refining the time steps for the other participant)", + type=int, + nargs=n_supported_participants, + default=n_supported_participants * + [2]) + # add solver specific arguments below, if needed + parser.add_argument("-e", "--experiment", help="Provide identifier for a specific experiment", + choices=[e.value for e in Experiments], default=Experiments.POLYNOMIAL.value) + parser.add_argument( + "-tss", + "--time-stepping-scheme", + help="Define time stepping scheme used by each solver", + type=str, + nargs=n_supported_participants, + default=n_supported_participants * ["GaussLegendre2"]) + parser.add_argument( + "-o", + "--out-filename", + help="Provide a file name. If no file name is provided a UUID will be generated as name. Abort if file already exists.", + type=str, + ) + args = parser.parse_args() + + df = pd.DataFrame() + + root_folder = Path(__file__).parent.absolute() + + # Define how participants will be executed here + participants: Participants = { + "Monolithic": Participant( + "Monolithic", + root_folder / "monolithic-fenics", + ["../.venv/bin/python3", f"../solver-fenics/heatHigherOrderMonolithic.py"], + ["Monolithic"], + { # dict with keyword arguments that will be used. Results in python3 script.py param1 ... k1=v1 k2=v2 ... + '--time-stepping': args.time_stepping_scheme[0], + '--time-step-size': None, # will be defined later + '--max-time': args.max_time, + '--error-tol': 10e10, + '-g': args.experiment, + }, + ), + } + + if len(participants) != n_supported_participants: + raise Exception(f"Currently only supports coupling of {n_supported_participants} participants") + + results_file_path = root_folder + if args.out_filename: # use file name given by user + results_file_path = results_file_path / args.out_filename + else: # no file name is given. Create UUID for file name + results_file_path = results_file_path / "convergence-studies" / f"{uuid.uuid4()}.csv" + + results = Results(results_file_path) + + precice_config_params = {} # irrelevant + + for dt in [args.base_time_step_size * 0.5**i for i in range(args.time_step_refinements)]: + for p in participants.values(): + p.kwargs['--time-step-size'] = dt + + run(participants, "dummy.xml", precice_config_params) + summary = postproc(participants) + + results.append(summary) + results.output_preliminary(silent=args.silent) + + results.output_final(participants, args, precice_config_params, silent=args.silent, executor=args.executor) diff --git a/partitioned-heat-conduction/images/tutorials-partitioned-heat-conduction-FEniCS-movie.gif b/experiments/partitioned-heat-conduction/images/tutorials-partitioned-heat-conduction-FEniCS-movie.gif similarity index 100% rename from partitioned-heat-conduction/images/tutorials-partitioned-heat-conduction-FEniCS-movie.gif rename to experiments/partitioned-heat-conduction/images/tutorials-partitioned-heat-conduction-FEniCS-movie.gif diff --git a/partitioned-heat-conduction/images/tutorials-partitioned-heat-conduction-precice-config.png b/experiments/partitioned-heat-conduction/images/tutorials-partitioned-heat-conduction-precice-config.png similarity index 100% rename from partitioned-heat-conduction/images/tutorials-partitioned-heat-conduction-precice-config.png rename to experiments/partitioned-heat-conduction/images/tutorials-partitioned-heat-conduction-precice-config.png diff --git a/partitioned-heat-conduction/images/tutorials-partitioned-heat-conduction-setup.png b/experiments/partitioned-heat-conduction/images/tutorials-partitioned-heat-conduction-setup.png similarity index 100% rename from partitioned-heat-conduction/images/tutorials-partitioned-heat-conduction-setup.png rename to experiments/partitioned-heat-conduction/images/tutorials-partitioned-heat-conduction-setup.png diff --git a/partitioned-heat-conduction/make-venv.sh b/experiments/partitioned-heat-conduction/make-venv.sh similarity index 100% rename from partitioned-heat-conduction/make-venv.sh rename to experiments/partitioned-heat-conduction/make-venv.sh diff --git a/partitioned-heat-conduction/neumann-fenics/output/.gitkeep b/experiments/partitioned-heat-conduction/monolithic-fenics/.gitkeep similarity index 100% rename from partitioned-heat-conduction/neumann-fenics/output/.gitkeep rename to experiments/partitioned-heat-conduction/monolithic-fenics/.gitkeep diff --git a/partitioned-heat-conduction/neumann-fenics/.gitignore b/experiments/partitioned-heat-conduction/neumann-fenics/.gitignore similarity index 100% rename from partitioned-heat-conduction/neumann-fenics/.gitignore rename to experiments/partitioned-heat-conduction/neumann-fenics/.gitignore diff --git a/partitioned-heat-conduction/neumann-fenics/clean.sh b/experiments/partitioned-heat-conduction/neumann-fenics/clean.sh similarity index 100% rename from partitioned-heat-conduction/neumann-fenics/clean.sh rename to experiments/partitioned-heat-conduction/neumann-fenics/clean.sh diff --git a/partitioned-heat-conduction/neumann-fenics/precice-adapter-config.json b/experiments/partitioned-heat-conduction/neumann-fenics/precice-adapter-config.json similarity index 100% rename from partitioned-heat-conduction/neumann-fenics/precice-adapter-config.json rename to experiments/partitioned-heat-conduction/neumann-fenics/precice-adapter-config.json diff --git a/partitioned-heat-conduction/neumann-fenics/run.sh b/experiments/partitioned-heat-conduction/neumann-fenics/run.sh similarity index 100% rename from partitioned-heat-conduction/neumann-fenics/run.sh rename to experiments/partitioned-heat-conduction/neumann-fenics/run.sh diff --git a/partitioned-heat-conduction/precice-config-template.xml b/experiments/partitioned-heat-conduction/precice-config.xml.jinja2 similarity index 95% rename from partitioned-heat-conduction/precice-config-template.xml rename to experiments/partitioned-heat-conduction/precice-config.xml.jinja2 index f85cdafc..519f1b16 100644 --- a/partitioned-heat-conduction/precice-config-template.xml +++ b/experiments/partitioned-heat-conduction/precice-config.xml.jinja2 @@ -65,12 +65,12 @@ to="Dirichlet" initialize="true" substeps="{{substeps}}" /> - - + + - + diff --git a/perpendicular-flap/studies/.gitkeep b/experiments/partitioned-heat-conduction/results/Fig13/data/.gitkeep similarity index 100% rename from perpendicular-flap/studies/.gitkeep rename to experiments/partitioned-heat-conduction/results/Fig13/data/.gitkeep diff --git a/turek-hron-fsi3/studies/.gitkeep b/experiments/partitioned-heat-conduction/results/Fig13extra/data/.gitkeep similarity index 100% rename from turek-hron-fsi3/studies/.gitkeep rename to experiments/partitioned-heat-conduction/results/Fig13extra/data/.gitkeep diff --git a/experiments/partitioned-heat-conduction/run_experiments.sh b/experiments/partitioned-heat-conduction/run_experiments.sh new file mode 100755 index 00000000..66773fb6 --- /dev/null +++ b/experiments/partitioned-heat-conduction/run_experiments.sh @@ -0,0 +1,19 @@ +. .venv/bin/activate +# Section 4.2 partitioned heat conduction + +## Figure 13 +python3 doConvergenceStudyMonolithic.py --experiment sincos -s 6 -dt 0.2 -tss BackwardEuler -o results/Fig13/data/IE_mono.csv +python3 doConvergenceStudy.py precice-config.xml.jinja2 --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 +python3 doConvergenceStudyMonolithic.py --experiment sincos -s 6 -dt 0.2 -tss GaussLegendre2 -o results/Fig13/data/GL2_mono.csv +python3 doConvergenceStudy.py precice-config.xml.jinja2 --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 +python3 doConvergenceStudy.py precice-config.xml.jinja2 --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 +python3 doConvergenceStudy.py precice-config.xml.jinja2 --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 +python3 doConvergenceStudyMonolithic.py --experiment sincos -s 6 -dt 0.2 -tss GaussLegendre3 -o results/Fig13/data/GL3_mono.csv +python3 doConvergenceStudy.py precice-config.xml.jinja2 --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 +python3 doConvergenceStudy.py precice-config.xml.jinja2 --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 + +## Figure 13 extra LIIIC3 +python3 doConvergenceStudyMonolithic.py --experiment sincos -s 6 -dt 0.2 -tss LobattoIIIC3 -o results/Fig13extra/data/LIIIC3_mono.csv +python3 doConvergenceStudy.py precice-config.xml.jinja2 --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 +python3 doConvergenceStudy.py precice-config.xml.jinja2 --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 +python3 doConvergenceStudy.py precice-config.xml.jinja2 --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 diff --git a/partitioned-heat-conduction/solver-fenics/errorcomputation.py b/experiments/partitioned-heat-conduction/solver-fenics/errorcomputation.py similarity index 100% rename from partitioned-heat-conduction/solver-fenics/errorcomputation.py rename to experiments/partitioned-heat-conduction/solver-fenics/errorcomputation.py diff --git a/partitioned-heat-conduction/solver-fenics/heat.py b/experiments/partitioned-heat-conduction/solver-fenics/heat.py similarity index 97% rename from partitioned-heat-conduction/solver-fenics/heat.py rename to experiments/partitioned-heat-conduction/solver-fenics/heat.py index 8c76ecff..b216e4a3 100644 --- a/partitioned-heat-conduction/solver-fenics/heat.py +++ b/experiments/partitioned-heat-conduction/solver-fenics/heat.py @@ -49,6 +49,7 @@ class TimeSteppingSchemes(Enum): class TransientTerm(Enum): POLYNOMIAL = 'poly' # polynomial term g_poly TRIGONOMETRIC = 'tri' # trigonometric term g_tri + SINCOS = 'sincos' # trigonometric term sin+cos to have even and uneven polynomial terms TRIGONOMETRICACC = 'triAcc' # trigonometric term used in https://onlinelibrary.wiley.com/doi/epdf/10.1002/nme.6443 @@ -123,6 +124,10 @@ def determine_gradient(V_g, u, flux): g_sp = (1 + sp.sin(t_sp)) elif args.g == TransientTerm.TRIGONOMETRICACC.value: g_sp = sp.sin(t_sp) +elif args.g == TransientTerm.SINCOS.value: + g_sp = sp.sin(t_sp) + sp.cos(t_sp) +else: + raise Exception(f'Unknown right-hand side term {args.g}') u_D_sp = 1 + g_sp * x_sp * x_sp + alpha * y_sp * y_sp + beta * t_sp u_D = Expression(sp.ccode(u_D_sp), degree=2, alpha=alpha, beta=beta, t=0) diff --git a/partitioned-heat-conduction/solver-fenics/heatHigherOrder.py b/experiments/partitioned-heat-conduction/solver-fenics/heatHigherOrder.py similarity index 85% rename from partitioned-heat-conduction/solver-fenics/heatHigherOrder.py rename to experiments/partitioned-heat-conduction/solver-fenics/heatHigherOrder.py index b0b7ef0c..24084882 100644 --- a/partitioned-heat-conduction/solver-fenics/heatHigherOrder.py +++ b/experiments/partitioned-heat-conduction/solver-fenics/heatHigherOrder.py @@ -50,9 +50,25 @@ class TimeSteppingSchemes(Enum): + BACKWARD_EULER = "BackwardEuler" GAUSS_LEGENDRE_2 = "GaussLegendre2" + GAUSS_LEGENDRE_3 = "GaussLegendre3" + GAUSS_LEGENDRE_4 = "GaussLegendre4" GAUSS_LEGENDRE_8 = "GaussLegendre8" LOBATTO_IIIC_3 = "LobattoIIIC3" + LOBATTO_IIIC_4 = "LobattoIIIC4" + + +class TransientTerm(Enum): + POLYNOMIAL0 = 'poly0' # polynomial term g_poly of degree p = 0 + POLYNOMIAL = 'poly' # polynomial term g_poly of degree p = 1 + POLYNOMIAL1 = 'poly1' # polynomial term g_poly of degree p = 1 + POLYNOMIAL2 = 'poly2' # polynomial term g_poly of degree p = 2 + POLYNOMIAL3 = 'poly3' # polynomial term g_poly of degree p = 3 + POLYNOMIAL4 = 'poly4' # polynomial term g_poly of degree p = 4 + TRIGONOMETRIC = 'tri' # trigonometric term g_tri + TRIGONOMETRICACC = 'triAcc' # trigonometric term sin+cos to have even and uneven polynomial terms + SINCOS = 'sincos' # trigonometric term used in https://onlinelibrary.wiley.com/doi/epdf/10.1002/nme. def determine_gradient(V_g, u, flux): @@ -80,7 +96,12 @@ def determine_gradient(V_g, u, flux): help="Number of substeps in one window for this participant", type=int, default=1) -parser.add_argument("-g", help="time dependence of manufactured solution", type=str, choices=('poly', 'poly0', 'poly1', 'poly2', 'tri', 'triAcc'), default='poly') +parser.add_argument( + "-g", + help="time dependence of manufactured solution", + type=str, + choices=[g.value for g in TransientTerm], + default=TransientTerm.POLYNOMIAL.value) parser.add_argument( "-ts", "--time-stepping", @@ -117,16 +138,24 @@ def determine_gradient(V_g, u, flux): # create sympy expression of manufactured solution x_sp, y_sp, t_sp = sp.symbols(['x[0]', 'x[1]', 't']) -if args.g == 'poly0': # polynomial term used in dissertation of Benjamin Rodenberg +if args.g == TransientTerm.POLYNOMIAL0.value: # polynomial term used in dissertation of Benjamin Rodenberg g_sp = (1 + t_sp)**0 -elif args.g == 'poly' or args.g == 'poly1': # polynomial term used in dissertation of Benjamin Rodenberg +elif args.g == TransientTerm.POLYNOMIAL.value or args.g == TransientTerm.POLYNOMIAL1.value: # polynomial term used in dissertation of Benjamin Rodenberg g_sp = (1 + t_sp)**1 -elif args.g == 'poly2': # polynomial term used in dissertation of Benjamin Rodenberg +elif args.g == TransientTerm.POLYNOMIAL2.value: # polynomial term used in dissertation of Benjamin Rodenberg g_sp = (1 + t_sp)**2 -elif args.g == 'tri': # trigonometric term used in dissertation of Benjamin Rodenberg +elif args.g == TransientTerm.POLYNOMIAL3.value: # polynomial term used in dissertation of Benjamin Rodenberg + g_sp = (1 + t_sp)**3 +elif args.g == TransientTerm.POLYNOMIAL4.value: # polynomial term used in dissertation of Benjamin Rodenberg + g_sp = (1 + t_sp)**4 +elif args.g == TransientTerm.TRIGONOMETRIC.value: # trigonometric term used in dissertation of Benjamin Rodenberg g_sp = (1 + sp.sin(t_sp)) -elif args.g == 'triAcc': # trigonometric term used in https://onlinelibrary.wiley.com/doi/epdf/10.1002/nme.6443 +elif args.g == TransientTerm.TRIGONOMETRICACC.value: # trigonometric term used in https://onlinelibrary.wiley.com/doi/epdf/10.1002/nme.6443 g_sp = sp.sin(t_sp) +elif args.g == TransientTerm.SINCOS.value: # trigonometric term with even and uneven monomials + g_sp = sp.sin(t_sp) + sp.cos(t_sp) +else: + raise Exception(f"Unexpected {args.g=}") u_D_sp = 1 + g_sp * x_sp * x_sp + alpha * y_sp * y_sp + beta * t_sp u_D = Expression(sp.printing.ccode(u_D_sp), degree=2, t=0) @@ -145,10 +174,18 @@ def determine_gradient(V_g, u, flux): # time stepping setup if args.time_stepping == TimeSteppingSchemes.GAUSS_LEGENDRE_2.value: tsm = GaussLegendre(2) +elif args.time_stepping == TimeSteppingSchemes.GAUSS_LEGENDRE_3.value: + tsm = GaussLegendre(3) +elif args.time_stepping == TimeSteppingSchemes.GAUSS_LEGENDRE_4.value: + tsm = GaussLegendre(4) elif args.time_stepping == TimeSteppingSchemes.GAUSS_LEGENDRE_8.value: tsm = GaussLegendre(8) elif args.time_stepping == TimeSteppingSchemes.LOBATTO_IIIC_3.value: tsm = LobattoIIIC(3) +elif args.time_stepping == TimeSteppingSchemes.LOBATTO_IIIC_4.value: + tsm = LobattoIIIC(4) +elif args.time_stepping == TimeSteppingSchemes.BACKWARD_EULER.value: + tsm = BackwardEuler() else: raise Exception(f"Invalid time stepping scheme {args.time_stepping}. Please use one of {[ts.value for ts in TimeSteppingSchemes]}") diff --git a/experiments/partitioned-heat-conduction/solver-fenics/heatHigherOrderMonolithic.py b/experiments/partitioned-heat-conduction/solver-fenics/heatHigherOrderMonolithic.py new file mode 100644 index 00000000..cb161085 --- /dev/null +++ b/experiments/partitioned-heat-conduction/solver-fenics/heatHigherOrderMonolithic.py @@ -0,0 +1,331 @@ +""" +The basic example is taken from "Langtangen, Hans Petter, and Anders Logg. Solving PDEs in Python: The FEniCS +Tutorial I. Springer International Publishing, 2016." + +The example code has been extended with preCICE API calls and mixed boundary conditions to allow for a Dirichlet-Neumann +coupling of two separate heat equations. + +The original source code can be found on https://github.com/hplgit/fenics-tutorial/blob/master/pub/python/vol1/ft03_heat.py. + +Heat equation with Dirichlet conditions. (Dirichlet problem) + u'= Laplace(u) + f in the unit square [0,1] x [0,2] + u = u_C on the coupling boundary at x = 1 + u = u_D on the remaining boundary + u = u_0 at t = 0 + u = 1 + x^2 + alpha*y^2 + \beta*t + f = beta - 2 - 2*alpha + +For information on the partitioned heat conduction problem using higher-order implicit Runge-Kutta methods see +* "Wullenweber, Nikola. High-order time stepping schemes for solving partial differential equations with FEniCS. Bachelor's thesis at Technical University of Munich, 2021. URL: https://mediatum.ub.tum.de/1621360" +* "Vinnitchenko, Niklas. Evaluation of higher-order coupling schemes with FEniCS-preCICE. Bachelor's thesis at Technical University of Munich, 2023. URL: https://mediatum.ub.tum.de/1732367" + +The implementation of the higher-order implicit Runge-Kutta methods is based on: https://github.com/NikoWul/FenicsIrksome +""" + +from __future__ import print_function, division +from fenics import Function, FunctionSpace, Expression, Constant, DirichletBC, TrialFunction, TestFunction, \ + File, solve, lhs, rhs, grad, inner, dot, dx, ds, interpolate, VectorFunctionSpace, MeshFunction, MPI, MixedElement, split, project +from errorcomputation import compute_errors +from my_enums import ProblemType, DomainPart +import argparse +import numpy as np +from problem_setup import get_geometry +import sympy as sp +from utils.ButcherTableaux import * +import utils.utils as utl +import pandas as pd +from pathlib import Path +from enum import Enum + +from io import TextIOWrapper + + +class TimeSteppingSchemes(Enum): + BACKWARD_EULER = "BackwardEuler" + GAUSS_LEGENDRE_2 = "GaussLegendre2" + GAUSS_LEGENDRE_3 = "GaussLegendre3" + GAUSS_LEGENDRE_4 = "GaussLegendre4" + GAUSS_LEGENDRE_8 = "GaussLegendre8" + LOBATTO_IIIC_3 = "LobattoIIIC3" + LOBATTO_IIIC_4 = "LobattoIIIC4" + + +class TransientTerm(Enum): + POLYNOMIAL0 = 'poly0' # polynomial term g_poly of degree p = 0 + POLYNOMIAL = 'poly' # polynomial term g_poly of degree p = 1 + POLYNOMIAL1 = 'poly1' # polynomial term g_poly of degree p = 1 + POLYNOMIAL2 = 'poly2' # polynomial term g_poly of degree p = 2 + POLYNOMIAL3 = 'poly3' # polynomial term g_poly of degree p = 3 + POLYNOMIAL4 = 'poly4' # polynomial term g_poly of degree p = 4 + TRIGONOMETRIC = 'tri' # trigonometric term g_tri + TRIGONOMETRICACC = 'triAcc' # trigonometric term sin+cos to have even and uneven polynomial terms + SINCOS = 'sincos' # trigonometric term used in https://onlinelibrary.wiley.com/doi/epdf/10.1002/nme. + + +parser = argparse.ArgumentParser(description="Solving heat equation for simple or complex interface case") +parser.add_argument("participantName", help="Name of the solver.", type=str, default="Monolithic") +parser.add_argument("-e", "--error-tol", help="set error tolerance", type=float, default=10**-8,) +parser.add_argument( + "-dt", + "--time-step-size", + help="Time step size", + type=float, + default=0.1) +parser.add_argument( + "-T", + "--max-time", + help="Total simulation time", + type=float, + default=1) +parser.add_argument( + "-g", + help="time dependence of manufactured solution", + type=str, + choices=[g.value for g in TransientTerm], + default=TransientTerm.POLYNOMIAL.value) +parser.add_argument( + "-ts", + "--time-stepping", + help="Time stepping scheme being used.", + type=str, + choices=[ + s.value for s in TimeSteppingSchemes], + default=TimeSteppingSchemes.GAUSS_LEGENDRE_2.value) + +args = parser.parse_args() +participant_name = args.participantName + +# Error is bounded by coupling accuracy. In theory we would obtain the analytical solution. +error_tol = args.error_tol + +alpha = 3 # parameter alpha +beta = 1.2 # parameter beta + +problem = ProblemType.DIRICHLET +domain_part = DomainPart.COMPLETE + +mesh, _, boundary = get_geometry(domain_part) + + +# Define function space using mesh +V = FunctionSpace(mesh, 'P', 2) + +# for error measurement +mesh_left, _, _ = get_geometry(DomainPart.LEFT) +V_left = FunctionSpace(mesh_left, 'P', 2) + +# Define boundary conditions +# create sympy expression of manufactured solution +x_sp, y_sp, t_sp = sp.symbols(['x[0]', 'x[1]', 't']) + +if args.g == TransientTerm.POLYNOMIAL0.value: # polynomial term used in dissertation of Benjamin Rodenberg + g_sp = (1 + t_sp)**0 +elif args.g == TransientTerm.POLYNOMIAL.value or args.g == TransientTerm.POLYNOMIAL1.value: # polynomial term used in dissertation of Benjamin Rodenberg + g_sp = (1 + t_sp)**1 +elif args.g == TransientTerm.POLYNOMIAL2.value: # polynomial term used in dissertation of Benjamin Rodenberg + g_sp = (1 + t_sp)**2 +elif args.g == TransientTerm.POLYNOMIAL3.value: # polynomial term used in dissertation of Benjamin Rodenberg + g_sp = (1 + t_sp)**3 +elif args.g == TransientTerm.POLYNOMIAL4.value: # polynomial term used in dissertation of Benjamin Rodenberg + g_sp = (1 + t_sp)**4 +elif args.g == TransientTerm.TRIGONOMETRIC.value: # trigonometric term used in dissertation of Benjamin Rodenberg + g_sp = (1 + sp.sin(t_sp)) +elif args.g == TransientTerm.TRIGONOMETRICACC.value: # trigonometric term used in https://onlinelibrary.wiley.com/doi/epdf/10.1002/nme.6443 + g_sp = sp.sin(t_sp) +elif args.g == TransientTerm.SINCOS.value: # trigonometric term with even and uneven monomials + g_sp = sp.sin(t_sp) + sp.cos(t_sp) +else: + raise Exception(f"Unexpected {args.g=}") + +u_D_sp = 1 + g_sp * x_sp * x_sp + alpha * y_sp * y_sp + beta * t_sp +u_D = Expression(sp.printing.ccode(u_D_sp), degree=2, t=0) +u_D_function = interpolate(u_D, V) + +# Define initial value +u_n = interpolate(u_D, V) +u_n.rename("Temperature", "") + +# time stepping setup +if args.time_stepping == TimeSteppingSchemes.GAUSS_LEGENDRE_2.value: + tsm = GaussLegendre(2) +elif args.time_stepping == TimeSteppingSchemes.GAUSS_LEGENDRE_3.value: + tsm = GaussLegendre(3) +elif args.time_stepping == TimeSteppingSchemes.GAUSS_LEGENDRE_4.value: + tsm = GaussLegendre(4) +elif args.time_stepping == TimeSteppingSchemes.GAUSS_LEGENDRE_8.value: + tsm = GaussLegendre(8) +elif args.time_stepping == TimeSteppingSchemes.LOBATTO_IIIC_3.value: + tsm = LobattoIIIC(3) +elif args.time_stepping == TimeSteppingSchemes.LOBATTO_IIIC_4.value: + tsm = LobattoIIIC(4) +elif args.time_stepping == TimeSteppingSchemes.BACKWARD_EULER.value: + tsm = BackwardEuler() +else: + raise Exception(f"Invalid time stepping scheme {args.time_stepping}. Please use one of {[ts.value for ts in TimeSteppingSchemes]}") + +# depending on tsm, we define the trial and test function space +if tsm.num_stages == 1: + Vbig = V +else: + # for multi-stage RK methods, we need more dimensional function spaces + mixed = MixedElement(tsm.num_stages * [V.ufl_element()]) + Vbig = FunctionSpace(V.mesh(), mixed) + +dt = Constant(0) +fenics_dt = args.time_step_size +dt.assign(fenics_dt) + +# stage times of the time stepping scheme relative to the current time and dependent on the current dt +stage_times = [tsm.c[i] * dt for i in range(tsm.num_stages)] + +# Define variational problem +# trial and test functions +u = TrialFunction(Vbig) +v = TestFunction(Vbig) +# if dim(Vbig)>1, f needs to be stored in an array with different times, +# because in each stage, of an RK method it is evaluated at a different time +# du_dt-Laplace(u) = f +f_sp = u_D_sp.diff(t_sp) - u_D_sp.diff(x_sp,2) - u_D_sp.diff(y_sp,2) +# initial time assumed to be 0 +f = [Expression(sp.ccode(f_sp), degree=2, t=float(stage_times[i])) for i in range(tsm.num_stages)] +# get variational form of the problem +F = utl.get_variational_problem(v=v, initial_condition=u_n, dt=dt, fs=f, tsm=tsm, k=u) + +# boundary conditions + +# we define variational form for each RK stage. According to +# https://doi.org/10.1145/3466168, All of those stages +# represent time derivatives and not the actual solution. +# Thus, we need time derivatives of the Dirichlet boundaries as boundary conditions + +# get time derivative of u +du_dt_expr = u_D_sp.diff(t_sp) +du_dt = [Expression(sp.ccode(du_dt_expr), degree=2, t=float(stage_times[i])) for i in range(tsm.num_stages)] +# set up boundary conditions +bc = [] + +# wrap Vbig into array independent of the length to allow equal treatment below +if tsm.num_stages == 1: + Vbigs = [Vbig] + vs = [v] +else: + Vbigs = [Vbig.sub(i) for i in range(tsm.num_stages)] + vs = split(v) + +# for the boundary which is not the coupling boundary, we can just use the boundary conditions as usual. +# Each stage needs a boundary condition +for i in range(tsm.num_stages): + bc.append(DirichletBC(Vbigs[i], du_dt[i], boundary)) + +a, L = lhs(F), rhs(F) + +# we additionally need the values of the stages from the RK method. +# they are stored here +k = Function(Vbig) + +# Time-stepping +u_np1 = Function(V) +u_np1.rename("Temperature", "") +t = 0 + +# reference solution at t=0 +u_ref = interpolate(u_D, V) +u_ref.rename("reference", " ") + +# mark mesh w.r.t ranks +mesh_rank = MeshFunction("size_t", mesh, mesh.topology().dim()) +mesh_rank.set_all(MPI.rank(MPI.comm_world) + 0) +mesh_rank.rename("myRank", "") + +# Generating output files +output_dir = Path("output") +temperature_out = File(str(output_dir / f"{participant_name}.pvd")) +ref_out = File(str(output_dir / f"ref{participant_name}.pvd")) +error_out = File(str(output_dir / f"error{participant_name}.pvd")) +ranks = File(str(output_dir / f"ranks{participant_name}.pvd")) + +# output solution and reference solution at t=0, n=0 +n = 0 +print("output u^%d and u_ref^%d" % (n, n)) +temperature_out << u_n +ref_out << u_ref +ranks << mesh_rank + +error_total, error_pointwise = compute_errors(u_n, u_ref, V) +error_out << error_pointwise +errors = [] +times = [] + +while t < args.max_time: + + dt.assign(fenics_dt) + + # Dirichlet BC and RHS need to point to end of current timestep + u_D.t = t + float(dt) + # update boundary conditions + for i in range(tsm.num_stages): + f[i].t = t + float(stage_times[i]) + du_dt[i].t = t + float(stage_times[i]) + + # getting the solution of the current time step + + # instead of directly solving for u, we look for the values of k. + # with those we can assemble the solution and thus get the discrete evolution + solve(a == L, k, bc) + + if tsm.num_stages == 1: + ks = [k] + else: + ks = [k.sub(i) for i in range(tsm.num_stages)] + + # now we need to add up the stages k according to the time stepping scheme + # -> assembly of discrete evolution + u_np1 = u_n + for i in range(tsm.num_stages): + u_np1 += dt * tsm.b[i] * ks[i] + + # u is in function space V and not Vbig -> project u_np1 to V + u_np1 = project(u_np1, V) + + # update solution + u_n.assign(u_np1) + t += float(dt) + n += 1 + + u_ref = interpolate(u_D, V) + u_ref.rename("reference", " ") + u_n_left = interpolate(u_n, V_left) + u_ref_left = interpolate(u_ref, V_left) + error, error_pointwise = compute_errors(u_n_left, u_ref_left, V_left, total_error_tol=error_tol) + print("n = %d, t = %.2f: L2 error on domain = %.3g" % (n, t, error)) + # output solution and reference solution at t_n+1 + print('output u^%d and u_ref^%d' % (n, n)) + temperature_out << u_n + ref_out << u_ref + error_out << error_pointwise + errors.append(error) + times.append(t) + + # Update Dirichlet BC + u_D.t = t + float(dt) + for i in range(tsm.num_stages): + f[i].t = t + float(stage_times[i]) + du_dt[i].t = t + float(stage_times[i]) + +df = pd.DataFrame() +df["times"] = times +df["errors"] = errors +df = df.set_index('times') +metadata = f'''# time_window_size: {fenics_dt} +# time_step_size: {fenics_dt} +''' + +errors_csv = Path(f"output-{participant_name}.csv") +errors_csv.unlink(missing_ok=True) + +file: TextIOWrapper +with open(errors_csv, 'a') as file: + file.write(f"{metadata}") + df.to_csv(file) + +print() diff --git a/partitioned-heat-conduction/solver-fenics/heat_pySDC.py b/experiments/partitioned-heat-conduction/solver-fenics/heat_pySDC.py similarity index 100% rename from partitioned-heat-conduction/solver-fenics/heat_pySDC.py rename to experiments/partitioned-heat-conduction/solver-fenics/heat_pySDC.py diff --git a/partitioned-heat-conduction/solver-fenics/heat_pySDC_problem_class.py b/experiments/partitioned-heat-conduction/solver-fenics/heat_pySDC_problem_class.py similarity index 100% rename from partitioned-heat-conduction/solver-fenics/heat_pySDC_problem_class.py rename to experiments/partitioned-heat-conduction/solver-fenics/heat_pySDC_problem_class.py diff --git a/partitioned-heat-conduction/solver-fenics/my_enums.py b/experiments/partitioned-heat-conduction/solver-fenics/my_enums.py similarity index 91% rename from partitioned-heat-conduction/solver-fenics/my_enums.py rename to experiments/partitioned-heat-conduction/solver-fenics/my_enums.py index bd3c841f..c1385bba 100644 --- a/partitioned-heat-conduction/solver-fenics/my_enums.py +++ b/experiments/partitioned-heat-conduction/solver-fenics/my_enums.py @@ -17,3 +17,4 @@ class DomainPart(Enum): RIGHT = 2 # right part of domain in simple interface case CIRCULAR = 3 # circular part of domain in complex interface case RECTANGLE = 4 # domain excluding circular part of complex interface case + COMPLETE = 5 # complete for monolithic experiment diff --git a/partitioned-heat-conduction/solver-fenics/problem_setup.py b/experiments/partitioned-heat-conduction/solver-fenics/problem_setup.py similarity index 68% rename from partitioned-heat-conduction/solver-fenics/problem_setup.py rename to experiments/partitioned-heat-conduction/solver-fenics/problem_setup.py index f61b3fe7..54ef2efb 100644 --- a/partitioned-heat-conduction/solver-fenics/problem_setup.py +++ b/experiments/partitioned-heat-conduction/solver-fenics/problem_setup.py @@ -32,6 +32,12 @@ def inside(self, x, on_boundary): return False +class AllBoundary(SubDomain): + def inside(self, x, on_boundary): + if on_boundary: + return True + + def get_geometry(domain_part): nx = ny = 15 # We require a finer resolution here? https://github.com/precice/precice/issues/1610 @@ -41,11 +47,22 @@ def get_geometry(domain_part): elif domain_part is DomainPart.RIGHT: p0 = Point(x_coupling, y_bottom) p1 = Point(x_right, y_top) + elif domain_part is DomainPart.COMPLETE: + p0 = Point(x_left, y_bottom) + p1 = Point(x_right, y_top) + nx = ny = 29 else: raise Exception("invalid domain_part: {}".format(domain_part)) mesh = RectangleMesh(p0, p1, nx, ny, diagonal="left") - coupling_boundary = StraightBoundary() - remaining_boundary = ExcludeStraightBoundary() + + if domain_part is DomainPart.LEFT or domain_part is DomainPart.RIGHT: + coupling_boundary = StraightBoundary() + remaining_boundary = ExcludeStraightBoundary() + elif domain_part is DomainPart.COMPLETE: + coupling_boundary = None + remaining_boundary = AllBoundary() + else: + raise Exception("invalid domain_part: {}".format(domain_part)) return mesh, coupling_boundary, remaining_boundary diff --git a/partitioned-heat-conduction/solver-fenics/requirements.txt b/experiments/partitioned-heat-conduction/solver-fenics/requirements.txt similarity index 100% rename from partitioned-heat-conduction/solver-fenics/requirements.txt rename to experiments/partitioned-heat-conduction/solver-fenics/requirements.txt diff --git a/partitioned-heat-conduction/solver-fenics/utils/ButcherTableaux.py b/experiments/partitioned-heat-conduction/solver-fenics/utils/ButcherTableaux.py similarity index 100% rename from partitioned-heat-conduction/solver-fenics/utils/ButcherTableaux.py rename to experiments/partitioned-heat-conduction/solver-fenics/utils/ButcherTableaux.py diff --git a/partitioned-heat-conduction/solver-fenics/utils/__init__.py b/experiments/partitioned-heat-conduction/solver-fenics/utils/__init__.py similarity index 100% rename from partitioned-heat-conduction/solver-fenics/utils/__init__.py rename to experiments/partitioned-heat-conduction/solver-fenics/utils/__init__.py diff --git a/partitioned-heat-conduction/solver-fenics/utils/utils.py b/experiments/partitioned-heat-conduction/solver-fenics/utils/utils.py similarity index 100% rename from partitioned-heat-conduction/solver-fenics/utils/utils.py rename to experiments/partitioned-heat-conduction/solver-fenics/utils/utils.py diff --git a/perpendicular-flap/clean-tutorial.sh b/experiments/perpendicular-flap/clean-tutorial.sh similarity index 100% rename from perpendicular-flap/clean-tutorial.sh rename to experiments/perpendicular-flap/clean-tutorial.sh diff --git a/experiments/perpendicular-flap/configs/Fig15.csv b/experiments/perpendicular-flap/configs/Fig15.csv new file mode 100644 index 00000000..0911b0f0 --- /dev/null +++ b/experiments/perpendicular-flap/configs/Fig15.csv @@ -0,0 +1,18 @@ +time window size,time step size Fluid,time step size Solid,max time,waveform degree,reduced,substeps,id +0.01,0.01,0.01,10,1,true,false,REF +0.03,0.01,0.01,10,1,true,false,SC_S3 +0.03,0.01,0.01,10,3,true,true,MC_S3_rQNWI +0.05,0.01,0.01,10,1,true,false,SC_S5 +0.05,0.01,0.01,10,3,true,true,MC_S5_rQNWI +0.1,0.01,0.01,10,1,true,false,SC_S10 +0.1,0.01,0.01,10,3,true,true,MC_S10_rQNWI +0.25,0.01,0.01,10,1,true,false,SC_S25 +0.25,0.01,0.01,10,3,true,true,MC_S25_rQNWI +0.5,0.01,0.01,10,1,true,false,SC_S50 +0.5,0.01,0.01,10,3,true,true,MC_S50_rQNWI +1,0.01,0.01,10,1,true,false,SC_S100 +1,0.01,0.01,10,3,true,true,MC_S100_rQNWI +2.5,0.01,0.01,10,1,true,false,SC_S250 +2.5,0.01,0.01,10,3,true,true,MC_S250_rQNWI +5,0.01,0.01,10,1,true,false,SC_S500 +5,0.01,0.01,10,3,true,true,MC_S500_rQNWI diff --git a/perpendicular-flap/fig6_7_config.csv b/experiments/perpendicular-flap/configs/Fig16.csv similarity index 89% rename from perpendicular-flap/fig6_7_config.csv rename to experiments/perpendicular-flap/configs/Fig16.csv index 0383e121..f417ec29 100644 --- a/perpendicular-flap/fig6_7_config.csv +++ b/experiments/perpendicular-flap/configs/Fig16.csv @@ -1,5 +1,5 @@ time window size,time step size Fluid,time step size Solid,max time,waveform degree,reduced,substeps,id -0.02,0.001,0.001,1,3,true,true,ref +0.02,0.001,0.001,1,3,true,true,REF 0.2,0.01,0.005,1,3,true,true,MC_20_40 0.2,0.01,0.01,1,3,true,true,MC_20_20 0.2,0.01,0.02,1,3,true,true,MC_20_10 diff --git a/perpendicular-flap/doConvergenceStudy.py b/experiments/perpendicular-flap/doConvergenceStudy.py similarity index 88% rename from perpendicular-flap/doConvergenceStudy.py rename to experiments/perpendicular-flap/doConvergenceStudy.py index 2abbc8ff..e6e995f4 100644 --- a/perpendicular-flap/doConvergenceStudy.py +++ b/experiments/perpendicular-flap/doConvergenceStudy.py @@ -36,12 +36,12 @@ def postproc(participants: Participants, precice_config_params=None): for participant in participants.values(): # store iterations - df = pd.read_csv(participant.root / f"precice-{participant.name}-iterations.log",sep='\s+') + df = pd.read_csv(participant.root / f"precice-{participant.name}-iterations.log",sep="\s+") summary[f"substeps {participant.name}"] = participant.substeps summary[f"time step size {participant.name}"] = time_window_size / participant.substeps summary["avg(iterations / window)"] = df["Iterations"].mean() summary["max(iterations / window)"] = df["Iterations"].max() - summary["#QN"] = df["Iterations"].sum() + summary["no. QN"] = df["Iterations"].sum() print(f"{datetime.datetime.now()}: Done.") @@ -125,7 +125,7 @@ def postproc(participants: Participants, precice_config_params=None): # Vary number of substeps for OpenFOAM Fluid participant by modifying fluid-openfoam/system/controlDict p = participants["Fluid"] - render_control_dict(p.root / 'system' / 'controlDict-template', p.root / 'system' / 'controlDict', experiment_setup[f'time step size {p.name}']) + render_control_dict(p.root / 'system' / 'controlDict.jinja2', p.root / 'system' / 'controlDict', experiment_setup[f'time step size {p.name}']) substeps = round(experiment_setup['time window size'] / experiment_setup[f'time step size {p.name}']) p.substeps = substeps # store substeps here for postprocessing # Vary number of substeps for FEniCS Solid participant via kwargs @@ -142,5 +142,15 @@ def postproc(participants: Participants, precice_config_params=None): # move watchpoint file to watchpoint folder; label with id given in experiment_setup (participants["Solid"].root / "precice-Solid-watchpoint-Flap-Tip.log").rename(watchpoint_folder / f"watchpoint_{experiment_setup['id']}") + + # move all iterations files to experiment folder + ## create some folders + experiment_folder = watchpoint_folder / experiment_setup['id'] + experiment_folder.mkdir(parents=False, exist_ok=False) + ## copy all relevant files + for f in [participants["Solid"].root / "precice-Solid-iterations.log", + participants["Solid"].root / "precice-Solid-convergence.log", + participants["Fluid"].root / "precice-Fluid-iterations.log"]: + f.rename(experiment_folder / f.name) results.output_final(participants, args, precice_config_params, silent=args.silent, executor=args.executor) \ No newline at end of file diff --git a/perpendicular-flap/fluid-openfoam/0/U b/experiments/perpendicular-flap/fluid-openfoam/0/U similarity index 100% rename from perpendicular-flap/fluid-openfoam/0/U rename to experiments/perpendicular-flap/fluid-openfoam/0/U diff --git a/perpendicular-flap/fluid-openfoam/0/p b/experiments/perpendicular-flap/fluid-openfoam/0/p similarity index 100% rename from perpendicular-flap/fluid-openfoam/0/p rename to experiments/perpendicular-flap/fluid-openfoam/0/p diff --git a/perpendicular-flap/fluid-openfoam/0/phi b/experiments/perpendicular-flap/fluid-openfoam/0/phi similarity index 100% rename from perpendicular-flap/fluid-openfoam/0/phi rename to experiments/perpendicular-flap/fluid-openfoam/0/phi diff --git a/perpendicular-flap/fluid-openfoam/0/pointDisplacement b/experiments/perpendicular-flap/fluid-openfoam/0/pointDisplacement similarity index 100% rename from perpendicular-flap/fluid-openfoam/0/pointDisplacement rename to experiments/perpendicular-flap/fluid-openfoam/0/pointDisplacement diff --git a/perpendicular-flap/fluid-openfoam/clean.sh b/experiments/perpendicular-flap/fluid-openfoam/clean.sh similarity index 100% rename from perpendicular-flap/fluid-openfoam/clean.sh rename to experiments/perpendicular-flap/fluid-openfoam/clean.sh diff --git a/perpendicular-flap/fluid-openfoam/constant/dynamicMeshDict b/experiments/perpendicular-flap/fluid-openfoam/constant/dynamicMeshDict similarity index 100% rename from perpendicular-flap/fluid-openfoam/constant/dynamicMeshDict rename to experiments/perpendicular-flap/fluid-openfoam/constant/dynamicMeshDict diff --git a/perpendicular-flap/fluid-openfoam/constant/transportProperties b/experiments/perpendicular-flap/fluid-openfoam/constant/transportProperties similarity index 100% rename from perpendicular-flap/fluid-openfoam/constant/transportProperties rename to experiments/perpendicular-flap/fluid-openfoam/constant/transportProperties diff --git a/perpendicular-flap/fluid-openfoam/constant/turbulenceProperties b/experiments/perpendicular-flap/fluid-openfoam/constant/turbulenceProperties similarity index 100% rename from perpendicular-flap/fluid-openfoam/constant/turbulenceProperties rename to experiments/perpendicular-flap/fluid-openfoam/constant/turbulenceProperties diff --git a/perpendicular-flap/fluid-openfoam/run.sh b/experiments/perpendicular-flap/fluid-openfoam/run.sh similarity index 100% rename from perpendicular-flap/fluid-openfoam/run.sh rename to experiments/perpendicular-flap/fluid-openfoam/run.sh diff --git a/perpendicular-flap/fluid-openfoam/system/blockMeshDict b/experiments/perpendicular-flap/fluid-openfoam/system/blockMeshDict similarity index 100% rename from perpendicular-flap/fluid-openfoam/system/blockMeshDict rename to experiments/perpendicular-flap/fluid-openfoam/system/blockMeshDict diff --git a/experiments/perpendicular-flap/fluid-openfoam/system/controlDict b/experiments/perpendicular-flap/fluid-openfoam/system/controlDict new file mode 100644 index 00000000..9d35646a --- /dev/null +++ b/experiments/perpendicular-flap/fluid-openfoam/system/controlDict @@ -0,0 +1,45 @@ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} + +application pimpleFoam; // latest OpenFOAM +// application pimpleDyMFoam; // OpenFOAM v1712, OpenFOAM 5.x, or older + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 5; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.1; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +functions +{ + preCICE_Adapter + { + type preciceAdapterFunctionObject; + libs ("libpreciceAdapterFunctionObject.so"); + } +} diff --git a/perpendicular-flap/fluid-openfoam/system/controlDict-template b/experiments/perpendicular-flap/fluid-openfoam/system/controlDict.jinja2 similarity index 100% rename from perpendicular-flap/fluid-openfoam/system/controlDict-template rename to experiments/perpendicular-flap/fluid-openfoam/system/controlDict.jinja2 diff --git a/perpendicular-flap/fluid-openfoam/system/decomposeParDict b/experiments/perpendicular-flap/fluid-openfoam/system/decomposeParDict similarity index 100% rename from perpendicular-flap/fluid-openfoam/system/decomposeParDict rename to experiments/perpendicular-flap/fluid-openfoam/system/decomposeParDict diff --git a/perpendicular-flap/fluid-openfoam/system/fvSchemes b/experiments/perpendicular-flap/fluid-openfoam/system/fvSchemes similarity index 100% rename from perpendicular-flap/fluid-openfoam/system/fvSchemes rename to experiments/perpendicular-flap/fluid-openfoam/system/fvSchemes diff --git a/perpendicular-flap/fluid-openfoam/system/fvSolution b/experiments/perpendicular-flap/fluid-openfoam/system/fvSolution similarity index 100% rename from perpendicular-flap/fluid-openfoam/system/fvSolution rename to experiments/perpendicular-flap/fluid-openfoam/system/fvSolution diff --git a/perpendicular-flap/fluid-openfoam/system/preciceDict b/experiments/perpendicular-flap/fluid-openfoam/system/preciceDict similarity index 100% rename from perpendicular-flap/fluid-openfoam/system/preciceDict rename to experiments/perpendicular-flap/fluid-openfoam/system/preciceDict diff --git a/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-fake-watchpoints.png b/experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-fake-watchpoints.png similarity index 100% rename from perpendicular-flap/images/tutorials-perpendicular-flap-displacement-fake-watchpoints.png rename to experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-fake-watchpoints.png diff --git a/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-flow-comparison-watchpoints.png b/experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-flow-comparison-watchpoints.png similarity index 100% rename from perpendicular-flap/images/tutorials-perpendicular-flap-displacement-flow-comparison-watchpoints.png rename to experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-flow-comparison-watchpoints.png diff --git a/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-nutils-watchpoints.png b/experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-nutils-watchpoints.png similarity index 100% rename from perpendicular-flap/images/tutorials-perpendicular-flap-displacement-nutils-watchpoints.png rename to experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-nutils-watchpoints.png diff --git a/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-openfoam-watchpoints.png b/experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-openfoam-watchpoints.png similarity index 100% rename from perpendicular-flap/images/tutorials-perpendicular-flap-displacement-openfoam-watchpoints.png rename to experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-openfoam-watchpoints.png diff --git a/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-selected-watchpoints.png b/experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-selected-watchpoints.png similarity index 100% rename from perpendicular-flap/images/tutorials-perpendicular-flap-displacement-selected-watchpoints.png rename to experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-selected-watchpoints.png diff --git a/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-su2-watchpoints.png b/experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-su2-watchpoints.png similarity index 100% rename from perpendicular-flap/images/tutorials-perpendicular-flap-displacement-su2-watchpoints.png rename to experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-su2-watchpoints.png diff --git a/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-watchpoint.png b/experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-watchpoint.png similarity index 100% rename from perpendicular-flap/images/tutorials-perpendicular-flap-displacement-watchpoint.png rename to experiments/perpendicular-flap/images/tutorials-perpendicular-flap-displacement-watchpoint.png diff --git a/perpendicular-flap/images/tutorials-perpendicular-flap-physics.png b/experiments/perpendicular-flap/images/tutorials-perpendicular-flap-physics.png similarity index 100% rename from perpendicular-flap/images/tutorials-perpendicular-flap-physics.png rename to experiments/perpendicular-flap/images/tutorials-perpendicular-flap-physics.png diff --git a/perpendicular-flap/images/tutorials-perpendicular-flap-precice-config.png b/experiments/perpendicular-flap/images/tutorials-perpendicular-flap-precice-config.png similarity index 100% rename from perpendicular-flap/images/tutorials-perpendicular-flap-precice-config.png rename to experiments/perpendicular-flap/images/tutorials-perpendicular-flap-precice-config.png diff --git a/perpendicular-flap/images/tutorials-perpendicular-flap-setup-drawing.png b/experiments/perpendicular-flap/images/tutorials-perpendicular-flap-setup-drawing.png similarity index 100% rename from perpendicular-flap/images/tutorials-perpendicular-flap-setup-drawing.png rename to experiments/perpendicular-flap/images/tutorials-perpendicular-flap-setup-drawing.png diff --git a/perpendicular-flap/make-venv.sh b/experiments/perpendicular-flap/make-venv.sh similarity index 100% rename from perpendicular-flap/make-venv.sh rename to experiments/perpendicular-flap/make-venv.sh diff --git a/perpendicular-flap/precice-config-template.xml b/experiments/perpendicular-flap/precice-config.xml.jinja2 similarity index 100% rename from perpendicular-flap/precice-config-template.xml rename to experiments/perpendicular-flap/precice-config.xml.jinja2 diff --git a/experiments/perpendicular-flap/results/Fig15/data/.gitkeep b/experiments/perpendicular-flap/results/Fig15/data/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/experiments/perpendicular-flap/results/Fig16/data/.gitkeep b/experiments/perpendicular-flap/results/Fig16/data/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/experiments/perpendicular-flap/run_experiments.sh b/experiments/perpendicular-flap/run_experiments.sh new file mode 100755 index 00000000..399826af --- /dev/null +++ b/experiments/perpendicular-flap/run_experiments.sh @@ -0,0 +1,7 @@ +. .venv/bin/activate +# Section 4.3 perpendicular flap + +# Figure 15 +python3 doConvergenceStudy.py precice-config.xml.jinja2 configs/Fig15.csv -o results/Fig15/data/result.csv +# Figure 16 +python3 doConvergenceStudy.py precice-config.xml.jinja2 configs/Fig16.csv -o results/Fig16/data/result.csv diff --git a/perpendicular-flap/solid-fenics/clean.sh b/experiments/perpendicular-flap/solid-fenics/clean.sh similarity index 100% rename from perpendicular-flap/solid-fenics/clean.sh rename to experiments/perpendicular-flap/solid-fenics/clean.sh diff --git a/perpendicular-flap/solid-fenics/precice-adapter-config-fsi-s.json b/experiments/perpendicular-flap/solid-fenics/precice-adapter-config-fsi-s.json similarity index 100% rename from perpendicular-flap/solid-fenics/precice-adapter-config-fsi-s.json rename to experiments/perpendicular-flap/solid-fenics/precice-adapter-config-fsi-s.json diff --git a/perpendicular-flap/solid-fenics/requirements.txt b/experiments/perpendicular-flap/solid-fenics/requirements.txt similarity index 100% rename from perpendicular-flap/solid-fenics/requirements.txt rename to experiments/perpendicular-flap/solid-fenics/requirements.txt diff --git a/perpendicular-flap/solid-fenics/run.sh b/experiments/perpendicular-flap/solid-fenics/run.sh similarity index 100% rename from perpendicular-flap/solid-fenics/run.sh rename to experiments/perpendicular-flap/solid-fenics/run.sh diff --git a/perpendicular-flap/solid-fenics/solid.py b/experiments/perpendicular-flap/solid-fenics/solid.py similarity index 100% rename from perpendicular-flap/solid-fenics/solid.py rename to experiments/perpendicular-flap/solid-fenics/solid.py diff --git a/experiments/tools/clean-tutorial-base.sh b/experiments/tools/clean-tutorial-base.sh new file mode 100755 index 00000000..5dbb6c63 --- /dev/null +++ b/experiments/tools/clean-tutorial-base.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env sh +set -e -u + +# shellcheck disable=SC1091 +. ../tools/cleaning-tools.sh + +clean_tutorial . +clean_precice_logs . +rm -fv ./*.log +rm -fv ./*.vtu + diff --git a/tools/cleaning-tools.sh b/experiments/tools/cleaning-tools.sh similarity index 100% rename from tools/cleaning-tools.sh rename to experiments/tools/cleaning-tools.sh diff --git a/tools/log.sh b/experiments/tools/log.sh similarity index 100% rename from tools/log.sh rename to experiments/tools/log.sh diff --git a/tools/run-dealii.sh b/experiments/tools/run-dealii.sh similarity index 100% rename from tools/run-dealii.sh rename to experiments/tools/run-dealii.sh diff --git a/tools/run-openfoam.sh b/experiments/tools/run-openfoam.sh similarity index 100% rename from tools/run-openfoam.sh rename to experiments/tools/run-openfoam.sh diff --git a/oscillator-overlap/README.md b/oscillator-overlap/README.md deleted file mode 100644 index b332dcf4..00000000 --- a/oscillator-overlap/README.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Oscillator (overlapping domain decomposition) -permalink: tutorials-oscillator-overlap.html -keywords: Python, ODE -summary: We solve an oscillator with two masses in a partitioned fashion with overlapping domain decomposition. Each mass is solved by an independent ODE. ---- - -{% note %} -Get the [case files of this tutorial](https://github.com/precice/tutorials/tree/master/oscillator-overlap). Read how in the [tutorials introduction](https://precice.org/tutorials.html). -{% endnote %} - -## Setup - -This tutorial solves the same problem as the [oscillator tutorial](https://precice.org/tutorials-oscillator.html), but applies a different domain decomposition strategy. See the oscillator tutorial for details on the general setup. The partitioning of the mass-spring system is shown here: - -![Schematic drawing of oscillator example with overlapping domain decomposition](images/tutorials-oscillator-overlap-dd.png) - -Note that this case applies an overlapping Schwarz-type coupling method and not (like most other tutorials in this repository) a Dirichlet-Neumann coupling. This results in a symmetric setup of the solvers. We will refer to the solver computing the trajectory of $m_1$ as `Mass-Left` and to the solver computing the trajectory of $m_2$ as `Mass-Right`. For more information, please refer to [1]. - -## Configuration - -preCICE configuration (image generated using the [precice-config-visualizer](https://precice.org/tooling-config-visualization.html)): - -![preCICE configuration visualization](images/tutorials-oscillator-overlap-precice-config.png) - -## Available solvers - -This tutorial is only available in Python. You need to have preCICE and the Python bindings installed on your system. - -- *Python*: An example solver using the preCICE [Python bindings](https://precice.org/installation-bindings-python.html). This solver also depends on the Python libraries `numpy`, which you can get from your system package manager or with `pip3 install --user `. - -## Running the Simulation - -### Python - -Open two separate terminals and start both participants by calling: - -```bash -cd python -./run.sh -l -``` - -and - -```bash -cd python -./run.sh -r -``` diff --git a/oscillator-overlap/convergence-studies/.gitignore b/oscillator-overlap/convergence-studies/.gitignore deleted file mode 100644 index afed0735..00000000 --- a/oscillator-overlap/convergence-studies/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.csv diff --git a/oscillator-overlap/convergence_study.sh b/oscillator-overlap/convergence_study.sh deleted file mode 100755 index 9c7778f1..00000000 --- a/oscillator-overlap/convergence_study.sh +++ /dev/null @@ -1,14 +0,0 @@ -. .venv/bin/activate -# Figure 6.1 -python3 doConvergenceStudy.py precice-config-template.xml -tss runge_kutta_4 generalized_alpha -wd 3 -dt 0.05 -sb 4 4 -s 8 -sf 1 2 -w 1 -o convergence-studies/subcycling_rk4_ga.csv -python3 doConvergenceStudy.py precice-config-template.xml -tss runge_kutta_4 runge_kutta_4 -wd 3 -dt 0.05 -sb 4 4 -s 8 -sf 1 2 -w 1 -o convergence-studies/subcycling_rk4_rk4.csv -# Figure 6.2a -python3 doConvergenceStudy.py precice-config-template.xml --config fig6_2a_config.csv -tss runge_kutta_4 generalized_alpha -wd 3 -o convergence-studies/contour_data.csv -# Figure 6.2b -python3 doConvergenceStudy.py precice-config-template.xml -tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 4 -o convergence-studies/compensation_S_2_4.csv -python3 doConvergenceStudy.py precice-config-template.xml -tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 8 -o convergence-studies/compensation_S_2_8.csv -python3 doConvergenceStudy.py precice-config-template.xml -tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 16 -o convergence-studies/compensation_S_2_16.csv -python3 doConvergenceStudy.py precice-config-template.xml -tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 32 -o convergence-studies/compensation_S_2_32.csv -python3 doConvergenceStudy.py precice-config-template.xml -tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 64 -o convergence-studies/compensation_S_2_64.csv -python3 doConvergenceStudy.py precice-config-template.xml -tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 128 -o convergence-studies/compensation_S_2_128.csv -python3 doConvergenceStudy.py precice-config-template.xml -tss runge_kutta_4 generalized_alpha -dt 0.2 -wd 3 -sb 4 256 -o convergence-studies/compensation_S_2_256.csv diff --git a/oscillator-overlap/energy_conservation.sh b/oscillator-overlap/energy_conservation.sh deleted file mode 100644 index bd91c36a..00000000 --- a/oscillator-overlap/energy_conservation.sh +++ /dev/null @@ -1,2 +0,0 @@ -# Figure 6.3 -# TODO \ No newline at end of file diff --git a/oscillator-overlap/fig6_2a_config.csv b/oscillator-overlap/fig6_2a_config.csv deleted file mode 100644 index 5b4b3af4..00000000 --- a/oscillator-overlap/fig6_2a_config.csv +++ /dev/null @@ -1,191 +0,0 @@ -time window size,time step size Mass-Left,time step size Mass-Right -0.2,0.0499999999999999,0.0499999999999999 -0.2,0.0499999999999999,0.025 -0.2,0.0499999999999999,0.0124999999999999 -0.2,0.0499999999999999,0.0062499999999999 -0.2,0.0499999999999999,0.003125 -0.2,0.0499999999999999,0.0015625 -0.2,0.0499999999999999,0.0007812499999999 -0.2,0.0499999999999999,0.0003906249999999 -0.2,0.0499999999999999,0.0001953125 -0.2,0.0499999999999999,9.765625000001566e-05 -0.1,0.025,0.025 -0.1,0.025,0.0124999999999999 -0.1,0.025,0.0062499999999999 -0.1,0.025,0.003125 -0.1,0.025,0.0015625 -0.1,0.025,0.0007812499999999 -0.1,0.025,0.0003906249999999 -0.1,0.025,0.0001953125 -0.1,0.025,9.765625000001566e-05 -0.1,0.025,4.882812499998171e-05 -0.0666666666666666,0.0166666666666666,0.0166666666666666 -0.0666666666666666,0.0166666666666666,0.0083333333333333 -0.0666666666666666,0.0166666666666666,0.0041666666666666 -0.0666666666666666,0.0166666666666666,0.0020833333333333 -0.0666666666666666,0.0166666666666666,0.0010416666666666 -0.0666666666666666,0.0166666666666666,0.0005208333333333 -0.0666666666666666,0.0166666666666666,0.0002604166666666 -0.0666666666666666,0.0166666666666666,0.0001302083333333 -0.0666666666666666,0.0166666666666666,6.510416666669099e-05 -0.0666666666666666,0.0166666666666666,3.2552083333324625e-05 -0.05,0.0124999999999999,0.0124999999999999 -0.05,0.0124999999999999,0.0062499999999999 -0.05,0.0124999999999999,0.003125 -0.05,0.0124999999999999,0.0015625 -0.05,0.0124999999999999,0.0007812499999999 -0.05,0.0124999999999999,0.0003906249999999 -0.05,0.0124999999999999,0.0001953125 -0.05,0.0124999999999999,9.765625000001566e-05 -0.05,0.0124999999999999,4.882812499998176e-05 -0.05,0.0124999999999999,2.4414062499984348e-05 -0.04,0.01,0.01 -0.04,0.01,0.005 -0.04,0.01,0.0024999999999999 -0.04,0.01,0.0012499999999999 -0.04,0.01,0.0006249999999999 -0.04,0.01,0.0003125 -0.04,0.01,0.0001562499999999 -0.04,0.01,7.812500000001746e-05 -0.04,0.01,3.9062499999986645e-05 -0.04,0.01,1.953124999998777e-05 -0.0333333333333333,0.0083333333333333,0.0083333333333333 -0.0333333333333333,0.0083333333333333,0.0041666666666666 -0.0333333333333333,0.0083333333333333,0.0020833333333333 -0.0333333333333333,0.0083333333333333,0.0010416666666666 -0.0333333333333333,0.0083333333333333,0.0005208333333333 -0.0333333333333333,0.0083333333333333,0.0002604166666666 -0.0333333333333333,0.0083333333333333,0.0001302083333333 -0.0333333333333333,0.0083333333333333,6.510416666669094e-05 -0.0333333333333333,0.0083333333333333,3.255208333332461e-05 -0.0333333333333333,0.0083333333333333,1.6276041666657088e-05 -0.0285714285714285,0.0071428571428571,0.0071428571428571 -0.0285714285714285,0.0071428571428571,0.0035714285714285 -0.0285714285714285,0.0071428571428571,0.0017857142857142 -0.0285714285714285,0.0071428571428571,0.0008928571428571 -0.0285714285714285,0.0071428571428571,0.0004464285714285 -0.0285714285714285,0.0071428571428571,0.0002232142857142 -0.0285714285714285,0.0071428571428571,0.0001116071428571 -0.0285714285714285,0.0071428571428571,5.580357142855866e-05 -0.0285714285714285,0.0071428571428571,2.7901785714301563e-05 -0.0285714285714285,0.0071428571428571,1.3950892857156331e-05 -0.025,0.0062499999999999,0.0062499999999999 -0.025,0.0062499999999999,0.003125 -0.025,0.0062499999999999,0.0015625 -0.025,0.0062499999999999,0.0007812499999999 -0.025,0.0062499999999999,0.0003906249999999 -0.025,0.0062499999999999,0.0001953125 -0.025,0.0062499999999999,9.765625000001566e-05 -0.025,0.0062499999999999,4.8828124999981815e-05 -0.025,0.0062499999999999,2.441406249998433e-05 -0.025,0.0062499999999999,1.220703125001829e-05 -0.0222222222222222,0.0055555555555555,0.0055555555555555 -0.0222222222222222,0.0055555555555555,0.0027777777777777 -0.0222222222222222,0.0055555555555555,0.0013888888888888 -0.0222222222222222,0.0055555555555555,0.0006944444444444 -0.0222222222222222,0.0055555555555555,0.0003472222222222 -0.0222222222222222,0.0055555555555555,0.0001736111111111 -0.0222222222222222,0.0055555555555555,8.680555555553978e-05 -0.0222222222222222,0.0055555555555555,4.340277777779106e-05 -0.0222222222222222,0.0055555555555555,2.170138888890083e-05 -0.0222222222222222,0.0055555555555555,1.0850694444424014e-05 -0.02,0.005,0.005 -0.02,0.005,0.0024999999999999 -0.02,0.005,0.0012499999999999 -0.02,0.005,0.0006249999999999 -0.02,0.005,0.0003125 -0.02,0.005,0.0001562499999999 -0.02,0.005,7.812500000001748e-05 -0.02,0.005,3.90624999999866e-05 -0.02,0.005,1.9531249999987776e-05 -0.0166666666666666,0.0041666666666666,0.0041666666666666 -0.0166666666666666,0.0041666666666666,0.0020833333333333 -0.0166666666666666,0.0041666666666666,0.0010416666666666 -0.0166666666666666,0.0041666666666666,0.0005208333333333 -0.0166666666666666,0.0041666666666666,0.0002604166666666 -0.0166666666666666,0.0041666666666666,0.0001302083333333 -0.0166666666666666,0.0041666666666666,6.510416666669103e-05 -0.0166666666666666,0.0041666666666666,3.255208333332471e-05 -0.0166666666666666,0.0041666666666666,1.627604166665714e-05 -0.0142857142857142,0.0035714285714285,0.0035714285714285 -0.0142857142857142,0.0035714285714285,0.0017857142857142 -0.0142857142857142,0.0035714285714285,0.0008928571428571 -0.0142857142857142,0.0035714285714285,0.0004464285714285 -0.0142857142857142,0.0035714285714285,0.0002232142857142 -0.0142857142857142,0.0035714285714285,0.0001116071428571 -0.0142857142857142,0.0035714285714285,5.580357142855866e-05 -0.0142857142857142,0.0035714285714285,2.7901785714301445e-05 -0.0142857142857142,0.0035714285714285,1.3950892857156282e-05 -0.0125,0.003125,0.003125 -0.0125,0.003125,0.0015625 -0.0125,0.003125,0.0007812499999999 -0.0125,0.003125,0.0003906249999999 -0.0125,0.003125,0.0001953125 -0.0125,0.003125,9.765625000001528e-05 -0.0125,0.003125,4.882812499998171e-05 -0.0125,0.003125,2.4414062499984355e-05 -0.0125,0.003125,1.2207031250018234e-05 -0.01,0.0024999999999999,0.0024999999999999 -0.01,0.0024999999999999,0.0012499999999999 -0.01,0.0024999999999999,0.0006249999999999 -0.01,0.0024999999999999,0.0003125 -0.01,0.0024999999999999,0.0001562499999999 -0.01,0.0024999999999999,7.812500000001742e-05 -0.01,0.0024999999999999,3.90624999999866e-05 -0.01,0.0024999999999999,1.953124999998777e-05 -0.008,0.002,0.002 -0.008,0.002,0.001 -0.008,0.002,0.0004999999999999 -0.008,0.002,0.0002499999999999 -0.008,0.002,0.000125 -0.008,0.002,6.249999999998661e-05 -0.008,0.002,3.125000000001575e-05 -0.008,0.002,1.5624999999985736e-05 -0.0066666666666666,0.0016666666666666,0.0016666666666666 -0.0066666666666666,0.0016666666666666,0.0008333333333333 -0.0066666666666666,0.0016666666666666,0.0004166666666666 -0.0066666666666666,0.0016666666666666,0.0002083333333333 -0.0066666666666666,0.0016666666666666,0.0001041666666666 -0.0066666666666666,0.0016666666666666,5.20833333333128e-05 -0.0066666666666666,0.0016666666666666,2.6041666666649792e-05 -0.0066666666666666,0.0016666666666666,1.3020833333323144e-05 -0.005,0.0012499999999999,0.0012499999999999 -0.005,0.0012499999999999,0.0006249999999999 -0.005,0.0012499999999999,0.0003125 -0.005,0.0012499999999999,0.0001562499999999 -0.005,0.0012499999999999,7.812500000001742e-05 -0.005,0.0012499999999999,3.90624999999866e-05 -0.005,0.0012499999999999,1.953124999998777e-05 -0.004,0.001,0.001 -0.004,0.001,0.0004999999999999 -0.004,0.001,0.0002499999999999 -0.004,0.001,0.000125 -0.004,0.001,6.24999999999866e-05 -0.004,0.001,3.1250000000015735e-05 -0.004,0.001,1.5624999999985726e-05 -0.0033333333333333,0.0008333333333333,0.0008333333333333 -0.0033333333333333,0.0008333333333333,0.0004166666666666 -0.0033333333333333,0.0008333333333333,0.0002083333333333 -0.0033333333333333,0.0008333333333333,0.0001041666666666 -0.0033333333333333,0.0008333333333333,5.208333333331233e-05 -0.0033333333333333,0.0008333333333333,2.604166666664969e-05 -0.0033333333333333,0.0008333333333333,1.3020833333323192e-05 -0.0028571428571428,0.0007142857142857,0.0007142857142857 -0.0028571428571428,0.0007142857142857,0.0003571428571428 -0.0028571428571428,0.0007142857142857,0.0001785714285714 -0.0028571428571428,0.0007142857142857,8.92857142857032e-05 -0.0028571428571428,0.0007142857142857,4.46428571428734e-05 -0.0028571428571428,0.0007142857142857,2.23214285714149e-05 -0.0028571428571428,0.0007142857142857,1.1160714285729497e-05 -0.0025,0.0006249999999999,0.0006249999999999 -0.0025,0.0006249999999999,0.0003125 -0.0025,0.0006249999999999,0.0001562499999999 -0.0025,0.0006249999999999,7.81250000000157e-05 -0.0025,0.0006249999999999,3.90624999999866e-05 -0.0025,0.0006249999999999,1.953124999998777e-05 -0.0022222222222222,0.0005555555555555,0.0005555555555555 -0.0022222222222222,0.0005555555555555,0.0002777777777777 -0.0022222222222222,0.0005555555555555,0.0001388888888889 -0.0022222222222222,0.0005555555555555,6.944444444445363e-05 -0.0022222222222222,0.0005555555555555,3.472222222222722e-05 -0.0022222222222222,0.0005555555555555,1.7361111111086388e-05 diff --git a/partitioned-heat-conduction/README.md b/partitioned-heat-conduction/README.md deleted file mode 100644 index b55e19b4..00000000 --- a/partitioned-heat-conduction/README.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: Partitioned heat conduction -permalink: tutorials-partitioned-heat-conduction.html -keywords: FEniCS, Nutils, Heat conduction -summary: We solve a simple heat equation. The domain is partitioned and the coupling is established in a Dirichlet-Neumann fashion. ---- - -{% note %} -Get the [case files of this tutorial](https://github.com/precice/tutorials/tree/master/partitioned-heat-conduction). Read how in the [tutorials introduction](https://precice.org/tutorials.html). -{% endnote %} - -## Setup - -We solve a partitioned heat equation. For information on the non-partitioned case, please refer to [1, p.37ff]. In this tutorial the computational domain is partitioned and coupled via preCICE. The coupling roughly follows the approach described in [2]. - -![Case setup of partitioned-heat-conduction case](images/tutorials-partitioned-heat-conduction-setup.png) - -Case setup from [3]. `D` denotes the Dirichlet participant and `N` denotes the Neumann participant. - -The heat equation is solved on a rectangular domain `Omega = [0,2] x [0,1]` with given Dirichlet boundary conditions. We split the domain at `x_c = 1` using a straight vertical line, the coupling interface. The left part of the domain will be referred to as the Dirichlet partition and the right part as the Neumann partition. To couple the two participants we use Dirichlet-Neumann coupling. Here, the Dirichlet participant receives Dirichlet boundary conditions (`Temperature`) at the coupling interface and solves the heat equation using these boundary conditions on the left part of the domain. Then the Dirichlet participant computes the resulting heat flux (`Flux`) from the solution and sends it to the Neumann participant. The Neumann participant uses the flux as a Neumann boundary condition to solve the heat equation on the right part of the domain. We then extract the temperature from the solution and send it back to the Dirichlet participant. This establishes the coupling between the two participants. - -This simple case allows us to compare the solution for the partitioned case to a known analytical solution (method of manufactures solutions, see [1, p.37ff]). For more usage examples and details, please refer to [3, sect. 4.1]. - -## Configuration - -preCICE configuration (image generated using the [precice-config-visualizer](https://precice.org/tooling-config-visualization.html)): - -![preCICE configuration visualization](images/tutorials-partitioned-heat-conduction-precice-config.png) - -## Available solvers and dependencies - -You can either couple a solver with itself or different solvers with each other. In any case you will need to have preCICE and the python bindings installed on your system. - -* FEniCS. Install [FEniCS](https://fenicsproject.org/download/) and the [FEniCS-adapter](https://github.com/precice/fenics-adapter). The code is largely based on this [fenics-tutorial](https://github.com/hplgit/fenics-tutorial/blob/master/pub/python/vol1/ft03_heat.py) from [1]. - -The following version for FEniCS packages are recommended: - -``` -fenics-dijitso 2019.2.0.dev0 -fenics-dolfin 2019.2.0.64.dev0 -fenics-ffc 2019.2.0.dev0 -fenics-fiat 2019.2.0.dev0 -fenics-ufl-legacy 2022.3.0 -``` - -## 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: - -```bash -cd dirichlet-fenics -./run.sh -``` - -and - -```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 neumann-fenics -./run.sh irk -``` - -or Spectral Deferred Corrections (SDC, only Dirichlet participant, see [5]) via - -```bash -cd dirichlet-fenics -./run.sh sdc -``` - -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 heat.py -d -``` - -### 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. - -## Visualization - -Output is written into the folders `fenics/out` and `nutils`. - -For FEniCS you can visualize the content with paraview by opening the `*.pvd` files. The files `Dirichlet.pvd` and `Neumann.pvd` correspond to the numerical solution of the Dirichlet, respectively Neumann, problem, while the files with the prefix `ref` correspond to the analytical reference solution, the files with `error` show the error and the files with `ranks` the ranks of the solvers (if executed in parallel). - -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. - -![Animation of the partitioned heat equation](images/tutorials-partitioned-heat-conduction-FEniCS-movie.gif) - -Visualization in paraview for `x_c = 1.5`. - -## References - -[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) diff --git a/partitioned-heat-conduction/acceleration-studies/.gitignore b/partitioned-heat-conduction/acceleration-studies/.gitignore deleted file mode 100644 index afed0735..00000000 --- a/partitioned-heat-conduction/acceleration-studies/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.csv diff --git a/partitioned-heat-conduction/acceleration-studies/postproc.py b/partitioned-heat-conduction/acceleration-studies/postproc.py deleted file mode 100644 index bfa32a26..00000000 --- a/partitioned-heat-conduction/acceleration-studies/postproc.py +++ /dev/null @@ -1,56 +0,0 @@ -import pandas as pd - -import argparse - -parser = argparse.ArgumentParser(description="Postprocess output into latex table for publication") -parser.add_argument( - "file_path", - help="file to be parsed", - type=str) -parser.add_argument( - "-a", - "--acceleration", - choices=("QN", "rQN", "rel"), - type=str, - required=True, -) -parser.add_argument( - "-s", - "--scheme", - choices=("SC", "WI"), - type=str, - required=True, -) -args = parser.parse_args() - -df = pd.read_csv(args.file_path, comment='#') - -acceleration_method = f'{args.acceleration}-{args.scheme}' -waveform_degree = 1 -coupling_method = f'{args.scheme}' - -latex_code = '' - -dTs = df['time window size'].unique() -dTs.sort() -lines = [] -line = '& \\multicolumn{6}{c}{$\\Delta t$}' -line += '\\\\ \\cmidrule{2-7}' -lines.append(line) -line = '$\\mu$ & ' +' & '.join(map('${0:.2f}$'.format, dTs.tolist()[::-1])) -line += '\\\\' -line += ' \\midrule' -lines.append(line) - -for s_dirichlet in [1,3,5]: - for s_neumann in [1,3,5]: - line = [] - line.append(f"${s_dirichlet} / {s_neumann}$") - for dT in dTs[::-1]: - line.append(f"${df[(df['substeps Dirichlet'] == s_dirichlet) & (df['substeps Neumann'] == s_neumann) & (df['time window size'] == dT)]['avg(iterations / window)'].max():.2f}$") - line = ' & '.join(line) - line += '\\\\' - lines.append(line) - -for line in lines: - print(line) \ No newline at end of file diff --git a/partitioned-heat-conduction/acceleration_study.sh b/partitioned-heat-conduction/acceleration_study.sh deleted file mode 100755 index a2d57d6b..00000000 --- a/partitioned-heat-conduction/acceleration_study.sh +++ /dev/null @@ -1,4 +0,0 @@ -source .venv/bin/activate -# Table 6.1 -python3 doAccelerationStudy.py precice-config-rQNWI-template.xml -o acceleration-studies/QN-SC.csv -python3 doAccelerationStudy.py --exchange-substeps precice-config-rQNWI-template.xml -o acceleration-studies/rQN-WI.csv diff --git a/partitioned-heat-conduction/convergence-studies/.gitignore b/partitioned-heat-conduction/convergence-studies/.gitignore deleted file mode 100644 index afed0735..00000000 --- a/partitioned-heat-conduction/convergence-studies/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.csv diff --git a/partitioned-heat-conduction/convergence_study.sh b/partitioned-heat-conduction/convergence_study.sh deleted file mode 100755 index bc15f126..00000000 --- a/partitioned-heat-conduction/convergence_study.sh +++ /dev/null @@ -1,17 +0,0 @@ -source .venv/bin/activate -# Figure 6.4a) -python3 doConvergenceStudy.py precice-config-template.xml --waveform-degree 0 --experiment poly --time-window-refinements 1 --time-step-refinements 6 --base-time-window-size 1 -o convergence-studies/subcycling_SC_p0_poly.csv -python3 doConvergenceStudy.py precice-config-template.xml --waveform-degree 1 --experiment poly --time-window-refinements 1 --time-step-refinements 6 --base-time-window-size 1 -o convergence-studies/subcycling_SC_p1_poly.csv -python3 doConvergenceStudy.py precice-config-template.xml --exchange-substeps --waveform-degree 1 --experiment poly --time-window-refinements 1 --time-step-refinements 6 --base-time-window-size 1 -o convergence-studies/subcycling_MC_p1_poly.csv -# Figure 6.4b) -python3 doConvergenceStudy.py precice-config-template.xml --waveform-degree 0 --experiment tri --time-window-refinements 1 --time-step-refinements 6 --base-time-window-size 1 -o convergence-studies/subcycling_SC_p0_tri.csv -python3 doConvergenceStudy.py precice-config-template.xml --waveform-degree 1 --experiment tri --time-window-refinements 1 --time-step-refinements 6 --base-time-window-size 1 -o convergence-studies/subcycling_SC_p1_tri.csv -python3 doConvergenceStudy.py precice-config-template.xml --exchange-substeps --waveform-degree 1 --experiment tri --time-window-refinements 1 --time-step-refinements 6 --base-time-window-size 1 -o convergence-studies/subcycling_MC_p1_tri.csv -# Figure 6.5 -python3 doConvergenceStudy.py precice-config-template.xml --experiment tri -w 6 -o convergence-studies/highorder_IE_1.csv -python3 doConvergenceStudy.py precice-config-template.xml --experiment tri -w 6 -s 1 -wd 5 -sb 5 5 -dt 0.5 --exchange-substeps -o convergence-studies/highorder_IE_5.csv -python3 doConvergenceStudy.py precice-config-template.xml --experiment tri -w 6 -s 1 -wd 10 -sb 10 10 -dt 1 --exchange-substeps -o convergence-studies/highorder_IE_10.csv -python3 doConvergenceStudy.py precice-config-template.xml --experiment tri -w 6 -tss GaussLegendre2 GaussLegendre2 --exchange-substeps -o convergence-studies/highorder_GL2_1.csv -python3 doConvergenceStudy.py precice-config-template.xml --experiment tri -w 6 -s 1 -wd 5 -sb 5 5 -dt 0.5 -tss GaussLegendre2 GaussLegendre2 --exchange-substeps -o convergence-studies/highorder_GL2_5.csv -python3 doConvergenceStudy.py precice-config-template.xml --experiment tri -w 6 -tss LobattoIIIC3 LobattoIIIC3 --exchange-substeps -o convergence-studies/highorder_LIIIC_1.csv -python3 doConvergenceStudy.py precice-config-template.xml --experiment tri -w 6 -s 1 -wd 10 -sb 10 10 -dt 1 -tss LobattoIIIC3 LobattoIIIC3 --exchange-substeps -o convergence-studies/highorder_LIIIC_10.csv diff --git a/partitioned-heat-conduction/doAccelerationStudy.py b/partitioned-heat-conduction/doAccelerationStudy.py deleted file mode 100644 index f5bf5a82..00000000 --- a/partitioned-heat-conduction/doAccelerationStudy.py +++ /dev/null @@ -1,136 +0,0 @@ -import pandas as pd -from pathlib import Path -import uuid -import argparse - -import datetime - -from prepesthel.participant import Participant, Participants -from prepesthel.runner import run -from prepesthel.io import Results, Executors - -default_precice_config_params = { - 'max_used_iterations': 10, - 'time_windows_reused': 5, -} - -def postproc(participants: Participants, precice_config_params=None): - print(f"{datetime.datetime.now()}: Postprocessing...") - - time_window_size = precice_config_params['time_window_size'] - summary = {"time window size": time_window_size} - for participant in participants.values(): - # store iterations - df = pd.read_csv(participant.root / f"precice-{participant.name}-iterations.log",sep='\s+') - summary[f"substeps {participant.name}"] = participant.kwargs['--substeps'] - summary[f"avg(iterations / window)"] = df["Iterations"].mean() - summary[f"max(iterations / window)"] = df["Iterations"].max() - # store errors - df = pd.read_csv(participant.root / f"output-{participant.name}.csv", comment="#") - summary[f"time step size {participant.name}"] = time_window_size / participant.kwargs['--substeps'] - summary[f"error {participant.name}"] = df["errors"].abs().max() - - print(f"{datetime.datetime.now()}: Done.") - - return summary - - -if __name__ == "__main__": - n_supported_participants = 2 - - parser = argparse.ArgumentParser(description="Solving heat equation for simple or complex interface case") - parser.add_argument( - "template_path", - help="template for the preCICE configuration file", - type=str) - parser.add_argument( - "--silent", - help="Deactivates result output to command line", - action='store_true') - parser.add_argument( - "--executor", - help="Define type of executor", - type=str, - choices=[e.value for e in Executors], - default=Executors.LOCAL.value) - parser.add_argument( - "-wd", - "--waveform-degree", - help="Waveform degree being used", - type=int, - default=1) - parser.add_argument( - "-es", - "--exchange-substeps", - help="Turn exchange of substeps on/off.", - action="store_true") - parser.add_argument( - "-o", - "--out-filename", - help="Provide a file name. If no file name is provided a UUID will be generated as name. Abort if file already exists.", - type=str, - ) - args = parser.parse_args() - - df = pd.DataFrame() - - precice_config_params = { - 'time_window_size': None, # will be defined later - 'waveform_degree': args.waveform_degree, - 'substeps': args.exchange_substeps, - } - - root_folder = Path(__file__).parent.absolute() - - # Define how participants will be executed here - participants: Participants = { - "Dirichlet": Participant( - "Dirichlet", - root_folder / "dirichlet-fenics", - ["../.venv/bin/python3", "../solver-fenics/heat.py"], - ["Dirichlet"], - { # dict with keyword arguments that will be used. Results in python3 script.py param1 ... k1=v1 k2=v2 ... - '--substeps': None, # will be defined later - '--error-tol': 10e10, - '-g': 'triAcc', - }, - ), - "Neumann": Participant( - "Neumann", - root_folder / "neumann-fenics", - ["../.venv/bin/python3", "../solver-fenics/heat.py"], - ["Neumann"], - { # dict with keyword arguments that will be used. Results in python3 script.py param1 ... k1=v1 k2=v2 ... - '--substeps': None, # will be defined later - '--error-tol': 10e10, - '-g': 'triAcc', - }, - ), - } - - results_file_path = root_folder - if args.out_filename: # use file name given by user - results_file_path = results_file_path / args.out_filename - else: # no file name is given. Create UUID for file name - results_file_path = results_file_path / "convergence-studies" / f"{uuid.uuid4()}.csv" - - results = Results(results_file_path) - - for dt in [5.0, 2.0, 1.0, 0.5, 0.2, 0.1]: - refinements = { - "Dirichlet" : [1,3,5], - "Neumann" : [1,3,5], - } - precice_config_params['time_window_size'] = dt - for refinement_first in refinements["Dirichlet"]: - participants["Dirichlet"].kwargs['--substeps'] = refinement_first - for refinement_second in refinements["Neumann"]: - participants["Neumann"].kwargs['--substeps'] = refinement_second - - run(participants, args.template_path, precice_config_params) - summary = postproc(participants, precice_config_params) - - results.append(summary) - results.output_preliminary(silent=args.silent) - - results.output_final(participants, args, precice_config_params, silent=args.silent, executor=args.executor) diff --git a/partitioned-heat-conduction/precice-config-QNWI-template.xml b/partitioned-heat-conduction/precice-config-QNWI-template.xml deleted file mode 100644 index 617dae14..00000000 --- a/partitioned-heat-conduction/precice-config-QNWI-template.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/partitioned-heat-conduction/precice-config-rQNWI-template.xml b/partitioned-heat-conduction/precice-config-rQNWI-template.xml deleted file mode 100644 index a75f00cc..00000000 --- a/partitioned-heat-conduction/precice-config-rQNWI-template.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/partitioned-heat-conduction/precice-config-relWI-template.xml b/partitioned-heat-conduction/precice-config-relWI-template.xml deleted file mode 100644 index 67caf427..00000000 --- a/partitioned-heat-conduction/precice-config-relWI-template.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/perpendicular-flap/README.md b/perpendicular-flap/README.md deleted file mode 100644 index c48a78fb..00000000 --- a/perpendicular-flap/README.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Perpendicular flap -permalink: tutorials-perpendicular-flap.html -keywords: fluid-structure interaction, FSI, OpenFOAM, FEniCS, Nutils, deal.II, Calculix, SU2, -summary: This tutorial describes how to run a fluid-structure interaction using preCICE and any fluid-solid solver combination of our officially provided adapter codes. ---- - -{% note %} -Get the [case files of this tutorial](https://github.com/precice/tutorials/tree/master/perpendicular-flap). Read how in the [tutorials introduction](https://precice.org/tutorials.html). -{% endnote %} - -## Setup - -We model a two-dimensional fluid flowing through a channel. A solid, elastic flap is fixed to the floor of this channel. The flap oscillates due to the fluid pressure building up on its surface. The setup is shown schematically here: - -![Flap setup](images/tutorials-perpendicular-flap-setup-drawing.png) - -The simulated flow domain is 6 units long (x) and 4 units tall (y). The flap is located at the center of the bottom (x=0) and is 1 unit long (y) and 0.1 units thick (x). We set the fluid density $$ \rho_F= 1.0kg/m^{3} $$, the kinematic viscosity $$ \nu_f= 1.0m^{2}/s $$, the solid density $$ \rho_s= 3.0·10^{3}kg/m^{3} $$, the Young’s modulus to $$ E= 4.0·10^{6} kg/ms^{2} $$ and the Poisson ratio $$ \nu_s = 0.3 $$. On the left boundary a constant inflow profile in x-direction of 10m/s is prescribed. The right boundary is an outflow and the top and bottom of the channel as well as the surface of the flap are no-slip walls. - -## Configuration - -preCICE configuration (image generated using the [precice-config-visualizer](https://precice.org/tooling-config-visualization.html)): - -![preCICE configuration visualization](images/tutorials-perpendicular-flap-precice-config.png) - -## Available solvers - -Fluid participant: - -* OpenFOAM (pimpleFoam). In case you are using a very old OpenFOAM version, you will need to adjust the solver to `pimpleDyMFoam` in the `Fluid/system/controlDict` file. For more information, have a look at the [OpenFOAM adapter documentation](https://precice.org/adapter-openfoam-overview.html). - -* SU2. As opposed to the other two fluid codes, SU2 is in particular specialized for compressible flow. Therefore the default simulation parameters haven been adjusted in order to pull the setup into the compressible flow regime. For more information, have a look at the [SU2 adapter documentation](https://precice.org/adapter-su2-overview.html). - -* Nutils. For more information, have a look at the [Nutils adapter documentation](https://precice.org/adapter-nutils.html). This Nutils solver requires at least Nutils v6.0. This case currently takes orders of magnitude longer than the OpenFOAM and SU2 cases, see [related issue](https://github.com/precice/tutorials/issues/506). - -* Fake. A simple python script that acts as a fake solver and provides an arbitrary force, linearly-increasing per length of the flap. This solver can be used for debugging of the solid participant and its adapter. It also technically works with implicit coupling, thus no changes to the preCICE configuration are necessary. Note that [ASTE's replay mode](https://precice.org/tooling-aste.html#replay-mode) has a similar use case and could also feed artificial or previously recorded real data, replacing an actual solver. - -Solid participant: - -* FEniCS. The structural model is currently limited to linear elasticity. For more information, have a look at the [FEniCS adapter documentation](https://precice.org/adapter-fenics.html). - -* CalculiX. In order to allow a reasonable comparison to all solid codes, the geometrically non-linear solver has been disabled and only a linear model is used by default. For more information, have a look at the [CalculiX adapter documentation](https://precice.org/adapter-calculix-overview.html). Two cases are provided: one as a regular simulation, and one with modal dynamic simulations where a few eigenmodes are computed, and then used to simulate a reduced model. In that case, the `run.sh` script runs the frequency analysis, renames the output file to match with the actual input file, and then runs it. For more details, see the [adapter configuration documentation](https://precice.org/adapter-calculix-config.html). To run the modal dynamic version, add the `-modal` argument to the `run.sh` script. - -* deal.II. This tutorial works only with `Model = linear` since the deal.II codes were developed with read data `Stress` instead of `Force` as applied here (example given in Turek-Hron-FSI) in the first place. The `./run.sh` script takes the compiled executable `elasticity` as input argument (`run.sh -e=/path/to/elasticity`) and is required in case the executable is not discoverable at runtime (e.g. has been added to the system `PATH`). For more information, have a look at the [deal.II adapter documentation](https://precice.org/adapter-dealii-overview.html). - -* DUNE. For more information, have a look at the [experimental DUNE adapter](https://github.com/precice/dune-adapter) and send us your feedback. - -* Nutils. The structural model is currently limited to linear elasticity. For more information, have a look at the [Nutils adapter documentation](https://precice.org/adapter-nutils.html). This Nutils solver requires at least Nutils v8.0. - -* solids4foam. Like for CalculiX, the geometrically non-linear solver is used by default. For more information, see the [solids4foam documentation](https://solids4foam.github.io/documentation/overview.html) and a [related tutorial](https://solids4foam.github.io/tutorials/more-tutorials/flexibleOversetCylinder.html). This case works with solids4foam v2.0, which is compatible with up to OpenFOAM v2012 and OpenFOAM 9 (as well as foam-extend, with which the OpenFOAM-preCICE adapter is not compatible), as well as the OpenFOAM-preCICE adapter v1.2.0 or later. - -* OpenFOAM (solidDisplacementFoam). For more information, have a look at the [OpenFOAM plateHole tutorial](https://www.openfoam.com/documentation/tutorial-guide/5-stress-analysis/5.1-stress-analysis-of-a-plate-with-a-hole). The solidDisplacementFoam solver only supports linear geometry and this case is only provided for quick testing purposes, leading to outlier results. For general solid mechanics procedures in OpenFOAM, see solids4foam. - -* Fake. A simple Python script that acts as a fake solver and provides an arbitrary time-dependent flap displacement in the x-direction, i.e., it performs a shear mapping on the resting flap. This solver can be used for debugging of the fluid participant and its adapter. It also technically works with implicit coupling, thus no changes to the preCICE configuration are necessary. Note that [ASTE's replay mode](https://precice.org/tooling-aste.html#replay-mode) has a similar use case and could also feed artificial or previously recorded real data, replacing an actual solver. - -## Running the Simulation - -All listed solvers can be used in order to run the simulation. OpenFOAM can be executed in parallel using `run.sh -parallel`. The default setting uses 4 MPI ranks. Open two separate terminals and start the desired fluid and solid participant by calling the respective run script `run.sh` located in the participant directory. For example: - -```bash -cd fluid-openfoam -./run.sh -``` - -and - -```bash -cd solid-fenics -./run.sh -``` - -in order to use OpenFOAM and FEniCS for this test case. - -## Post-processing - -How to visualize the simulation results depends on the selected solvers. Most of the solvers generate `vtk` files which can visualized using, e.g., ParaView. - -CalculiX exports results in `.frd` format, which you can visualize in CGX (`cgx flap.frd`). In the CGX window, you can click-and-hold to select different times and fields, or to animate the geometry. If you prefer to work with VTK files, you can also use tools such as [ccx2paraview](https://github.com/calculix/ccx2paraview) or a converter included in the [calculix-adapter/tools](https://github.com/precice/calculix-adapter/tree/master/tools) directory. - -As we defined a watchpoint on the 'Solid' participant at the flap tip (see `precice-config.xml`), we can plot it with gnuplot using the script `plot-displacement.sh.` You need to specify the directory of the selected solid participant as a command line argument, so that the script can pick-up the desired watchpoint file, e.g. `plot-displacement.sh solid-fenics`. The resulting graph shows the x displacement of the flap tip. You can modify the script to plot the force instead. - -![Flap watchpoint](images/tutorials-perpendicular-flap-displacement-watchpoint.png) - -There is moreover a script `plot-all-displacements.sh` to plot and compare all possible variants. This script expects all watchpoint logs to be available in a subfolder `watchpoints` in the format `openfoam-dealii-version.log` or similar. If you want to use this script, you need to edit it to exclude combinations you want to exclude and copy the files over accordingly. - -You should get results similar to this one: - -![Selected flap watchpoints](images/tutorials-perpendicular-flap-displacement-selected-watchpoints.png) - -Reasons for the differences: - -* The CalculiX adapter only supports linear finite elements (deal.II uses 4th order, FEniCS 2nd order). -* SU2 models a compressible fluid, OpenFOAM and Nutils an incompressible one. - -### Looking closer - -Excluding the `solid-openfoam` (outlier, provided mainly for technical testing), let's look at an overview of different combinations. - -Comparison of the different flow solvers (incompressible `fluid-openfoam` and `fluid-nutils`, compressible `fluid-su2`, dummy `fluid-fake`): - -![Flap watchpoints using solid-calculix](images/tutorials-perpendicular-flap-displacement-flow-comparison-watchpoints.png) - -Combinations using the incompressible `fluid-openfoam` case: - -![Flap watchpoints using fluid-openfoam](images/tutorials-perpendicular-flap-displacement-openfoam-watchpoints.png) - -Combinations (excerpt) using the incompressible `fluid-nutils` case: - -![Flap watchpoints using fluid-nutils](images/tutorials-perpendicular-flap-displacement-nutils-watchpoints.png) - -Combinations (excerpt) using the compressible `fluid-su2` case: - -![Flap watchpoints using fluid-su2](images/tutorials-perpendicular-flap-displacement-su2-watchpoints.png) - -Combinations (excerpt) using the dummy `fluid-fake` case: - -![Flap watchpoints using fluid-fake](images/tutorials-perpendicular-flap-displacement-fake-watchpoints.png) - -{% disclaimer %} -This offering is not approved or endorsed by OpenCFD Limited, producer and distributor of the OpenFOAM software via www.openfoam.com, and owner of the OPENFOAM® and OpenCFD® trade marks. -{% enddisclaimer %} diff --git a/perpendicular-flap/do_studies.sh b/perpendicular-flap/do_studies.sh deleted file mode 100755 index a964579b..00000000 --- a/perpendicular-flap/do_studies.sh +++ /dev/null @@ -1,4 +0,0 @@ -# Figure 6.6 -python3 doConvergenceStudy.py precice-config-template.xml fig6_6_config.csv -o studies/fig6_6.csv -# Figure 6.7 -python3 doConvergenceStudy.py precice-config-template.xml fig6_7_config.csv -o studies/fig6_7.csv diff --git a/perpendicular-flap/do_studies_v3.1.2.sh b/perpendicular-flap/do_studies_v3.1.2.sh deleted file mode 100755 index 33552220..00000000 --- a/perpendicular-flap/do_studies_v3.1.2.sh +++ /dev/null @@ -1 +0,0 @@ -python3 doConvergenceStudy.py precice-config-template-v3.1.2.xml fig6_6_config_precice_v3.1.2.csv -o studies/fig6_6_precice_v3.1.2.csv diff --git a/perpendicular-flap/fig6_6_config.csv b/perpendicular-flap/fig6_6_config.csv deleted file mode 100644 index 314f6ca9..00000000 --- a/perpendicular-flap/fig6_6_config.csv +++ /dev/null @@ -1,8 +0,0 @@ -time window size,time step size Fluid,time step size Solid,max time,waveform degree,reduced,substeps,id -0.01,0.01,0.01,5,1,true,false,ref -0.1,0.01,0.01,5,1,true,false,SC_S10 -0.1,0.01,0.01,5,3,true,true,MC_S10_rQNWI -1,0.01,0.01,5,1,true,false,SC_S100 -1,0.01,0.01,5,3,true,true,MC_S100_rQNWI -5,0.01,0.01,5,1,true,false,SC_S500 -5,0.01,0.01,5,3,true,true,MC_S500_rQNWI \ No newline at end of file diff --git a/plotting/Dockerfile b/plotting/Dockerfile new file mode 100644 index 00000000..95f73b47 --- /dev/null +++ b/plotting/Dockerfile @@ -0,0 +1,6 @@ +FROM texlive/texlive:latest + +# Install LaTeX packages and system dependencies +RUN apt-get update && apt-get install -y python3 python3-pip python3-pandas python3-scipy python3-matplotlib + +WORKDIR /doc diff --git a/plotting/Makefile b/plotting/Makefile new file mode 100644 index 00000000..2788c257 --- /dev/null +++ b/plotting/Makefile @@ -0,0 +1,7 @@ +DIRS := oscillator-overlap partitioned-heat-conduction perpendicular-flap + +.PHONY: all $(MAKECMDGOALS) $(DIRS) +$(MAKECMDGOALS) all: $(DIRS) + +$(DIRS): + $(MAKE) -C $@ $(MAKECMDGOALS) diff --git a/plotting/README.md b/plotting/README.md new file mode 100644 index 00000000..182535a4 --- /dev/null +++ b/plotting/README.md @@ -0,0 +1,86 @@ +# Plotting + +This folder `plotting` contains the LaTeX sources and auxiliary scripts to create figures and tables. + +## Overview + +The subfolders refer to the test cases provided in *Section 4 Results*: + +* `plotting/oscillator-overlap` corresponds to *Section 4.1 Partitioned oscillator* +* `plotting/partitioned-heat-conduction` corresponds to *Section 4.2 Partitioned heat conduction* +* `plotting/perpendicular-flap` corresponds to *Section 4.3 Perpendicular flap* + +Additionally, there are the following files for automation of the plotting: + +* `Dockerfile` to setup the runtime environment in Docker (see below) +* `requirements.txt` to define the Python dependencies needed for plotting +* `Makefile` to automatically perform preprocessing steps and create the plots for all cases + +The subfolders corresponding to the test cases contain subfolders named `FigX` or `TabX` for the respective figures and tables from *Section 4 Results*. These folders contain: + +* `*.tex` files with the LaTeX sources or (for more complex plots) `*.tex.jinja2` templates that will be filled with data using a Python script and Jinja2 to create a `*.tex` file in a preprocessing step. +* `data` folder with the results produced by the respective test case. For convenience, the data is already provided. If you want to compute the data on your own, please refer to `experiments/README.md`. +* `Makefile` to create PDF files with the respective figures or tables. + +## Prerequisites + +For creating the figures and tables you need a working LaTeX installation and Python with the packages `scipy`, `pandas`, `jinja2`, and `matplotlib`. It is recommended to use Ubuntu 24.04. + +### Using docker + +The `Dockerfile` allows creating a container with all required dependencies. [Install Docker on your system](https://docs.docker.com/engine/install/). + +You can then build the Docker container: + +```sh +docker build -t waveform-plotting . +``` + +### Use your own system + +Install LaTex and Python: + +```sh +sudo apt install -y texlive-full +sudo apt install -y python3 python3-pip +``` + +Install additional Python packages either via your package manager: + +```sh +sudo apt install -y python3-pygments python3-pandas python3-scipy python3-jinja2 +``` + +Or using a virtual environment. This requires installing `python3-venv` and then the packages given in the `requirements.txt`: + +```sh +sudo apt install -y python3-venv +python3 -m venv .venv +source .venv/bin/activate +pip3 install -r requirements.txt +``` + +This creates a virtual environment `.venv`. Activate with `source .venv/bin/activate`. + +## Creating the figures and tables + +If you installed the prerequesites on your own system, run `make` to create all figures and tables. To directly create individual figures and tables, navigate to the respective folder and run `make` there. + +If you are using Docker, run `make` in the container and directly write output back to your system: + +```sh +docker run --rm -v "$PWD":/doc -w /doc waveform-plotting make +``` + +This procedure also works for individual figures and tables if you run it from the respective folder. + +### Example: Create Figure 11 + +If you only want to create Figure 11, navigate to the respective folder and execute `make`: + +```sh +cd oscillator-overlap/Fig11 +make +``` + +This creates the file `main.pdf` with Figure 11 using the precomputed data from `plotting/oscillator-overlap/Fig11/data`. diff --git a/plotting/oscillator-overlap/Fig10/Makefile b/plotting/oscillator-overlap/Fig10/Makefile new file mode 100644 index 00000000..300dd2d2 --- /dev/null +++ b/plotting/oscillator-overlap/Fig10/Makefile @@ -0,0 +1,12 @@ +main: main.tex + latexmk -interaction=nonstopmode -pdf -bibtex -shell-escape $^ + +name=main +auxiliary_files= $(name).log $(name).out $(name).aux $(name).bbl $(name).blg $(name).fdb_latexmk $(name).fls $(name).idx $(name).ilg $(name).ind $(name).lof $(name).lol $(name).lot $(name).run.xml $(name).toc $(name)-blx.bib $(name).loa + +clean_nopdf: + rm -rf $(auxiliary_files) + +clean: + rm -rf $(auxiliary_files) $(name).pdf + diff --git a/plotting/oscillator-overlap/Fig10/data/constant.csv b/plotting/oscillator-overlap/Fig10/data/constant.csv new file mode 100644 index 00000000..3570b996 --- /dev/null +++ b/plotting/oscillator-overlap/Fig10/data/constant.csv @@ -0,0 +1,13 @@ +# participants version:{'Mass-Left': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Mass-Right': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Mass-Left': , 'Mass-Right': } +# run cmd:python3 doConvergenceStudy.py configs/precice-config-template-FP.xml --silent --executor Github --config configs/fig10_dts.csv -tss runge_kutta_4 generalized_alpha -wd 0 -o results/Fig10/data/constant.csv +# args:Namespace(template_path='configs/precice-config-template-FP.xml', config='configs/fig10_dts.csv', silent=True, executor='Github', max_time=1.0, base_time_window_size=0.04, time_window_refinements=5, base_time_step_refinement=[1, 1], time_step_refinements=1, time_step_refinement_factor=[2, 2], time_stepping_scheme=['runge_kutta_4', 'generalized_alpha'], waveform_degree=0, exchange_substeps=False, out_filename='results/Fig10/data/constant.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.0125, 'max_time': 1.0, 'waveform_degree': 0, 'substeps': False} +time window size,time step size Mass-Left,time step size Mass-Right,error Mass-Left,error Mass-Right +0.2,0.04000000000000015,0.002000000000000113,4.3584747497862884e+154,8.391895061357974e+154 +0.1,0.020000000000000007,0.0010000000000000009,139.66033067547522,141.7815002577384 +0.05,0.010000000000000004,0.0004999999999999726,2.975718163766676,3.834872417985436 +0.025,0.0050000000000000044,0.0002499999999999794,0.7654694685374361,1.1257474923398951 +0.0125,0.002499999999999974,0.0001250000000000157,0.3452961094560604,0.4962028119303481 diff --git a/plotting/oscillator-overlap/Fig10/data/linear.csv b/plotting/oscillator-overlap/Fig10/data/linear.csv new file mode 100644 index 00000000..e05c748d --- /dev/null +++ b/plotting/oscillator-overlap/Fig10/data/linear.csv @@ -0,0 +1,13 @@ +# participants version:{'Mass-Left': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Mass-Right': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Mass-Left': , 'Mass-Right': } +# run cmd:python3 doConvergenceStudy.py configs/precice-config-template-FP.xml --silent --executor Github --config configs/fig10_dts.csv -tss runge_kutta_4 generalized_alpha -wd 1 -o results/Fig10/data/linear.csv +# args:Namespace(template_path='configs/precice-config-template-FP.xml', config='configs/fig10_dts.csv', silent=True, executor='Github', max_time=1.0, base_time_window_size=0.04, time_window_refinements=5, base_time_step_refinement=[1, 1], time_step_refinements=1, time_step_refinement_factor=[2, 2], time_stepping_scheme=['runge_kutta_4', 'generalized_alpha'], waveform_degree=1, exchange_substeps=False, out_filename='results/Fig10/data/linear.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.0125, 'max_time': 1.0, 'waveform_degree': 1, 'substeps': False} +time window size,time step size Mass-Left,time step size Mass-Right,error Mass-Left,error Mass-Right +0.2,0.04000000000000001,0.0020000000000000018,3.3437602237727053,1.7357639088739552 +0.1,0.020000000000000007,0.0010000000000000009,0.5338006703088117,0.4833555656170415 +0.05,0.010000000000000004,0.0004999999999999726,0.1508046698838736,0.155182751074555 +0.025,0.0050000000000000044,0.0002499999999999794,0.0385803719522251,0.0408077321687374 +0.0125,0.002499999999999974,0.0001250000000000157,0.0097026474374872,0.0103262290940643 diff --git a/plotting/oscillator-overlap/Fig10/data/piecewise_linear.csv b/plotting/oscillator-overlap/Fig10/data/piecewise_linear.csv new file mode 100644 index 00000000..edb537b3 --- /dev/null +++ b/plotting/oscillator-overlap/Fig10/data/piecewise_linear.csv @@ -0,0 +1,13 @@ +# participants version:{'Mass-Left': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Mass-Right': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Mass-Left': , 'Mass-Right': } +# run cmd:python3 doConvergenceStudy.py configs/precice-config-template-FP.xml --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 +# args:Namespace(template_path='configs/precice-config-template-FP.xml', config='configs/fig10_dts.csv', silent=True, executor='Github', max_time=1.0, base_time_window_size=0.04, time_window_refinements=5, base_time_step_refinement=[1, 1], time_step_refinements=1, time_step_refinement_factor=[2, 2], time_stepping_scheme=['runge_kutta_4', 'generalized_alpha'], waveform_degree=1, exchange_substeps=True, out_filename='results/Fig10/data/piecewise_linear.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.0125, 'max_time': 1.0, 'waveform_degree': 1, 'substeps': True} +time window size,time step size Mass-Left,time step size Mass-Right,error Mass-Left,error Mass-Right +0.2,0.04000000000000001,0.0020000000000000018,0.050868037767638,0.0509483467981368 +0.1,0.020000000000000007,0.0010000000000000009,0.0125680395524709,0.0121802269844953 +0.05,0.010000000000000004,0.0004999999999999726,0.0031251194477872,0.0030022001419111 +0.025,0.0050000000000000044,0.0002499999999999794,0.0007816140466204,0.0007477494337397 +0.0125,0.002499999999999974,0.0001250000000000157,0.0001952755704186,0.000186759887241 diff --git a/plotting/oscillator-overlap/Fig10/data/third_degree_b-spline.csv b/plotting/oscillator-overlap/Fig10/data/third_degree_b-spline.csv new file mode 100644 index 00000000..f36a2994 --- /dev/null +++ b/plotting/oscillator-overlap/Fig10/data/third_degree_b-spline.csv @@ -0,0 +1,13 @@ +# participants version:{'Mass-Left': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Mass-Right': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Mass-Left': , 'Mass-Right': } +# run cmd:python3 doConvergenceStudy.py configs/precice-config-template-FP.xml --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 +# args:Namespace(template_path='configs/precice-config-template-FP.xml', config='configs/fig10_dts.csv', silent=True, executor='Github', max_time=1.0, base_time_window_size=0.04, time_window_refinements=5, base_time_step_refinement=[1, 1], time_step_refinements=1, time_step_refinement_factor=[2, 2], time_stepping_scheme=['runge_kutta_4', 'generalized_alpha'], waveform_degree=3, exchange_substeps=True, out_filename='results/Fig10/data/third_degree_b-spline.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.0125, 'max_time': 1.0, 'waveform_degree': 3, 'substeps': True} +time window size,time step size Mass-Left,time step size Mass-Right,error Mass-Left,error Mass-Right +0.2,0.04000000000000001,0.0020000000000000018,0.0044898733576939,0.0044894317643563 +0.1,0.020000000000000007,0.0010000000000000009,0.0003007235641515,0.0003146352046766 +0.05,0.010000000000000004,0.0004999999999999726,3.2831929260901394e-05,3.15984740061892e-05 +0.025,0.0050000000000000044,0.0002499999999999794,5.827882051057109e-06,5.144651168881298e-06 +0.0125,0.002499999999999974,0.0001250000000000157,1.3144496349148935e-06,1.1241354238022971e-06 diff --git a/plotting/oscillator-overlap/Fig10/main.tex b/plotting/oscillator-overlap/Fig10/main.tex new file mode 100644 index 00000000..5dcac606 --- /dev/null +++ b/plotting/oscillator-overlap/Fig10/main.tex @@ -0,0 +1,59 @@ +\documentclass{standalone} + +\usepackage{amsmath} +\usepackage{pgfplots} +\pgfplotsset{compat=1.18} +\usepackage{tikz} +\usetikzlibrary{calc, intersections, positioning, hobby, fit, patterns} + +\pgfdeclarelayer{bg} % declare background layer +\pgfdeclarelayer{fg} % declare foreground layer +\pgfsetlayers{bg,main,fg} % set the order of the layers (main is the standard layer) + +%%% see https://tex.stackexchange.com/a/20426 and https://tex.stackexchange.com/a/419123 +\makeatletter +\pgfkeys{% + /tikz/on layer/.code={ + \pgfonlayer{#1}\begingroup + \aftergroup\endpgfonlayer + \aftergroup\endgroup + }, + /tikz/node on layer/.code={ + \gdef\node@@on@layer{% + \setbox\tikz@tempbox=\hbox\bgroup\pgfonlayer{#1}\unhbox\tikz@tempbox\endpgfonlayer\egroup} + \aftergroup\node@on@layer + }, + /tikz/end node on layer/.code={ + \endpgfonlayer\endgroup\endgroup + } +} +\def\node@on@layer{\aftergroup\node@@on@layer} +\makeatother +%%% + +%%% Define tuftelike pgfplots style +% see https://tex.stackexchange.com/questions/155194/tufte-like-axis-with-pgfplots + +\pgfkeys{/pgfplots/tuftelike/.style={ + semithick, + tick style={major tick length=4pt,semithick,black}, + separate axis lines, + axis x line*=bottom, + axis x line shift=10pt, + axis y line*=left, + axis y line shift=10pt, + enlarge x limits=false, + enlarge y limits=false + }} + +%%% END + +\definecolor{pblue}{RGB}{0,102,189} % precice blue +\definecolor{porange}{RGB}{243,98,33} % precice orange + +\tikzstyle{sample}=[circle,draw,inner sep=1.5pt,thick,fill=white] +\tikzstyle{stample}=[circle,inner sep=1.5pt,fill] + +\begin{document} +\input{tikzcode.tex} +\end{document} diff --git a/plotting/oscillator-overlap/Fig10/tikzcode.tex b/plotting/oscillator-overlap/Fig10/tikzcode.tex new file mode 100644 index 00000000..91829ccd --- /dev/null +++ b/plotting/oscillator-overlap/Fig10/tikzcode.tex @@ -0,0 +1,40 @@ +\begin{tikzpicture}[ + mark options={solid} + ] +\begin{loglogaxis}[ + height=.4\textwidth, + width=.6\textwidth, + tuftelike, + legend cell align=left, + xlabel={$\Delta t = 5 \, \delta t_A = 100 \, \delta t_B$}, + x label style={at={(axis description cs:0.5,-0.25)},anchor=north}, + ylabel={$e_A$}, + y label style={at={(axis description cs:-0.25,0.5)},anchor=south}, + align=center, + legend style={at={(1.1,.5)},anchor=west, draw=none, align=left}, + xmin=0.0125, + xmax=0.2, + ymax=40, + ymin=5e-8, + xtick = {0.2, 0.1, 0.05, 0.025, 0.0125}, + xticklabels = {$\frac{1}{5}$,$\frac{1}{10}$, $\frac{1}{20}$, $\frac{1}{40}$, $\frac{1}{80}$}, + ] + \addplot[mark=*, color=red] table[x=time window size, y=error Mass-Left, col sep=comma]{data/constant.csv}; + \addlegendentry{constant} + + \addplot[mark=square,color=pblue] table[x=time window size , y=error Mass-Left, col sep=comma]{data/linear.csv}; + \addlegendentry{linear} + + \addplot[mark=square*,color=pblue] table[x=time window size , y=error Mass-Left, col sep=comma]{data/piecewise_linear.csv}; + \addlegendentry{piecewise linear} + + \addplot[mark=pentagon*,color=porange] table[x=time window size , y=error Mass-Left, col sep=comma]{data/third_degree_b-spline.csv}; + \addlegendentry{third-degree B-spline} + + \draw[] ([yshift=+0.75em]axis cs:0.025,0.5) -- node[above]{$\mathcal{O}(\delta t)$} ([yshift=+0.75em]axis cs:0.0125,0.25); + \draw[] ([yshift=-0.5em]axis cs:0.2,0.0499905460271616) -- node[below,xshift=+.05cm]{$\mathcal{O}(\delta t^2)$} ([yshift=-0.5em]axis cs:0.0125,0.0001952755704186); + \draw[] ([yshift=-0.5em]axis cs:0.025,5.257798539659574e-06) -- node[below,xshift=+.05cm]{$\mathcal{O}(\delta t^2)$} ([yshift=-0.5em]axis cs:0.0125,1.3144496349148935e-06); + \draw[] ([yshift=-0.5em]axis cs:0.2,0.0044) -- node[below,xshift=+.5em]{$\mathcal{O}(\delta t^4)$} ([yshift=-0.5em]axis cs:0.1,0.000275); + + \end{loglogaxis} + \end{tikzpicture} diff --git a/plotting/oscillator-overlap/Fig11/Makefile b/plotting/oscillator-overlap/Fig11/Makefile new file mode 100644 index 00000000..7a17bd89 --- /dev/null +++ b/plotting/oscillator-overlap/Fig11/Makefile @@ -0,0 +1,16 @@ +main: main.tex + python3 preproc.py data/contour_data.csv + latexmk -interaction=nonstopmode -pdf -bibtex -shell-escape $^ + +name=main +derived_data= data/contour_0.001.csv data/contour_0.0001.csv data/contour_1e-05.csv data/contour_1e-06.csv data/contour_1e-07.csv data/times_reduced.csv +auxiliary_files= $(name).log $(name).out $(name).aux $(name).bbl $(name).blg $(name).fdb_latexmk $(name).fls $(name).idx $(name).ilg $(name).ind $(name).lof $(name).lol $(name).lot $(name).run.xml $(name).toc $(name)-blx.bib $(name).loa + +clean_nopdf: + rm -rf $(derived_data) + rm -rf $(auxiliary_files) + +clean: + rm -rf $(derived_data) + rm -rf $(auxiliary_files) $(name).pdf + diff --git a/plotting/oscillator-overlap/Fig11/data/contour_data.csv b/plotting/oscillator-overlap/Fig11/data/contour_data.csv new file mode 100644 index 00000000..27769b4d --- /dev/null +++ b/plotting/oscillator-overlap/Fig11/data/contour_data.csv @@ -0,0 +1,187 @@ +# participants version:{'Mass-Left': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Mass-Right': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Mass-Left': , 'Mass-Right': } +# run cmd:python3 doConvergenceStudy.py configs/precice-config-template-FP.xml --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 +# args:Namespace(template_path='configs/precice-config-template-FP.xml', config='configs/fig11_dts.csv', silent=True, executor='Github', max_time=1.0, base_time_window_size=0.04, time_window_refinements=5, base_time_step_refinement=[1, 1], time_step_refinements=1, time_step_refinement_factor=[2, 2], time_stepping_scheme=['runge_kutta_4', 'generalized_alpha'], waveform_degree=3, exchange_substeps=True, out_filename='results/Fig11/data/contour_data.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.00125, 'max_time': 1.0, 'waveform_degree': 3, 'substeps': True} +time window size,time step size Mass-Left,time step size Mass-Right,error Mass-Left,error Mass-Right +0.2,0.05,0.05,0.1922588167763372,0.1604466389881712 +0.2,0.05,0.025000000000000012,0.0518239000142373,0.0503592533997229 +0.2,0.05,0.01249999999999998,0.0191700512887591,0.0198167192459586 +0.2,0.05,0.006249999999999985,0.0119804547768459,0.0120691382056088 +0.2,0.05,0.003125000000000018,0.0102962020453689,0.0101215440578872 +0.2,0.05,0.0015625000000000153,0.0102248055792319,0.0096664864728392 +0.2,0.05,0.0007812499999999816,0.0102066696159605,0.0095894004817313 +0.2,0.05,0.00039062499999998435,0.0102020981392153,0.0095702023405062 +0.2,0.05,0.00019531250000001823,0.0102009504400836,0.0095654228541678 +0.2,0.05,9.765625000001566e-05,0.0102006632107723,0.0095642239810271 +0.1,0.025000000000000012,0.025000000000000012,0.0497638170744235,0.041678794531597 +0.1,0.025000000000000012,0.01249999999999998,0.0127623116702884,0.0112081102557645 +0.1,0.025000000000000012,0.006249999999999985,0.0035119338821859,0.0032336920441489 +0.1,0.025000000000000012,0.003125000000000018,0.0012254505376257,0.0012319544228865 +0.1,0.025000000000000012,0.0015625000000000153,0.000681621087166,0.0007318639524431 +0.1,0.025000000000000012,0.0007812499999999816,0.0006167773320079,0.0006069534711392 +0.1,0.025000000000000012,0.00039062499999998435,0.0006047250659964,0.0005757518774333 +0.1,0.025000000000000012,0.0001953125000000183,0.0006017086894217,0.0005679556865914 +0.1,0.025000000000000012,9.765625000001566e-05,0.0006009544822906,0.0005660068710646 +0.1,0.025000000000000012,4.882812499998171e-05,0.0006007646418455,0.0005655173019257 +0.0769230769230769,0.01923076923076925,0.01923076923076925,0.0298062372741129,0.0250927973688731 +0.0769230769230769,0.01923076923076925,0.009615384615384602,0.0075754761776388,0.0064959313533831 +0.0769230769230769,0.01923076923076925,0.004807692307692296,0.001985268990979,0.0017728789505072 +0.0769230769230769,0.01923076923076925,0.002403846153846147,0.0006167462352306,0.0005874410867248 +0.0769230769230769,0.01923076923076925,0.0012019230769231006,0.0002772837181083,0.0002915967149995 +0.0769230769230769,0.01923076923076925,0.0006009615384615571,0.0002111092077395,0.0002180837325373 +0.0769230769230769,0.01923076923076925,0.0003004807692307525,0.0002026882376469,0.0001998009780704 +0.0769230769230769,0.01923076923076925,0.00015024038461539753,0.0002012380459957,0.0001952394938642 +0.0769230769230769,0.01923076923076925,7.512019230770405e-05,0.0002008879243257,0.000194100555242 +0.0769230769230769,0.01923076923076925,3.756009615385336e-05,0.0002007991792761,0.0001938133154303 +0.0625,0.015625,0.015625,0.0197625441571365,0.0166665290662301 +0.0625,0.015625,0.0078125,0.004996833170999,0.0042553683790228 +0.0625,0.015625,0.00390625,0.0012923715650334,0.001127606205593 +0.0625,0.015625,0.001953125,0.0003724282365313,0.0003439681462183 +0.0625,0.015625,0.0009765625,0.0001455269671204,0.0001485331896391 +0.0625,0.015625,0.00048828125,9.290295515707037e-05,0.0001001686897507 +0.0625,0.015625,0.000244140625,8.795338529662966e-05,8.822000220838665e-05 +0.0625,0.015625,0.0001220703125,8.677369817705616e-05,8.524853518807399e-05 +0.0625,0.015625,6.103515625e-05,8.647900589200952e-05,8.450749011314207e-05 +0.0625,0.015625,3.0517578125e-05,8.640656761663146e-05,8.432496561022393e-05 +0.05,0.01249999999999998,0.01249999999999998,0.0126573529722769,0.0106881921667325 +0.05,0.01249999999999998,0.006249999999999985,0.003189577401567,0.0027082903960464 +0.05,0.01249999999999998,0.003125000000000018,0.0008172349897246,0.0007024825074165 +0.05,0.01249999999999998,0.0015625000000000153,0.0002240680877488,0.0002005205663188 +0.05,0.01249999999999998,0.0007812499999999816,7.717328726419836e-05,7.531636460272884e-05 +0.05,0.01249999999999998,0.00039062499999998435,4.159062357933507e-05,4.439659711393679e-05 +0.05,0.01249999999999998,0.0001953125000000183,3.577299032192505e-05,3.6810133847958726e-05 +0.05,0.01249999999999998,9.765625000001566e-05,3.490127291622125e-05,3.4932475800400486e-05 +0.05,0.01249999999999998,4.882812499998171e-05,3.471125581203105e-05,3.446198897937014e-05 +0.05,0.01249999999999998,2.4414062499984324e-05,3.466188869855058e-05,3.434052988972314e-05 +0.04,0.010000000000000009,0.010000000000000009,0.0081135698377065,0.0068359430430766 +0.04,0.010000000000000009,0.0050000000000000044,0.0020382506717054,0.0017262883747715 +0.04,0.010000000000000009,0.002499999999999974,0.0005174861383162,0.0004418513747878 +0.04,0.010000000000000009,0.0012499999999999803,0.0001373213367757,0.0001204474497987 +0.04,0.010000000000000009,0.0006249999999999885,4.284988522551547e-05,4.0232248852425934e-05 +0.04,0.010000000000000009,0.00031250000000002153,1.9691266733068424e-05,2.040700718066498e-05 +0.04,0.010000000000000009,0.0001562499999999898,1.4760417162223982e-05,1.5568647819090564e-05 +0.04,0.010000000000000009,7.812500000001743e-05,1.4214604249621066e-05,1.4381197375040731e-05 +0.04,0.010000000000000009,3.90624999999866e-05,1.4080738501898171e-05,1.408392892192356e-05 +0.04,0.010000000000000009,1.9531249999987766e-05,1.4045209977900376e-05,1.4005493304561356e-05 +0.03125,0.0078125,0.0078125,0.0049456836613052,0.0041802636835766 +0.03125,0.0078125,0.00390625,0.0012396281343016,0.0010506785567174 +0.03125,0.0078125,0.001953125,0.0003127477862397,0.0002665566617998 +0.03125,0.0078125,0.0009765625,8.130434377368045e-05,7.02912691577795e-05 +0.03125,0.0078125,0.00048828125,2.3443453019023064e-05,2.127028773378503e-05 +0.03125,0.0078125,0.000244140625,9.125569306489556e-06,9.1157515406462e-06 +0.03125,0.0078125,0.0001220703125,5.664317175302358e-06,6.154790912371588e-06 +0.03125,0.0078125,6.103515625e-05,5.284455929246978e-06,5.434149045649428e-06 +0.03125,0.0078125,3.0517578125e-05,5.20093700205615e-06,5.258743016628431e-06 +0.03125,0.0078125,1.52587890625e-05,5.1762935667637455e-06,5.206950346128836e-06 +0.025,0.006249999999999985,0.006249999999999985,0.0031659808719378,0.0026778309605471 +0.025,0.006249999999999985,0.003125000000000018,0.0007930400322707,0.0006717099855255 +0.025,0.006249999999999985,0.0015625000000000153,0.0001995196431234,0.000169477412178 +0.025,0.006249999999999985,0.0007812499999999816,5.114309791059979e-05,4.384317633118751e-05 +0.025,0.006249999999999985,0.00039062499999998435,1.4050334384563268e-05,1.244895346746988e-05 +0.025,0.006249999999999985,0.0001953125000000183,4.825699073562895e-06,4.642296072492058e-06 +0.025,0.006249999999999985,9.765625000001566e-05,2.5694746229598664e-06,2.736197105106253e-06 +0.025,0.006249999999999985,4.882812499998171e-05,2.1776842264592533e-06,2.272902283634304e-06 +0.025,0.006249999999999985,2.4414062499984324e-05,2.117516642682893e-06,2.1551757861948406e-06 +0.025,0.006249999999999985,1.2207031250018285e-05,2.1030081995832006e-06,2.127423060577227e-06 +0.02,0.0050000000000000044,0.0050000000000000044,0.0020287462330774,0.0017142602370728 +0.02,0.0050000000000000044,0.002499999999999974,0.0005077387002821,0.0004295301457162 +0.02,0.0050000000000000044,0.0012499999999999803,0.0001274305099384,0.000108020441301 +0.02,0.0050000000000000044,0.0006249999999999885,3.2363866601992086e-05,2.7601032741658704e-05 +0.02,0.0050000000000000044,0.00031250000000002153,8.598985373198254e-06,7.50000577698362e-06 +0.02,0.0050000000000000044,0.0001562499999999898,2.679650635550868e-06,2.490495984955321e-06 +0.02,0.0050000000000000044,7.812500000001743e-05,1.22284133918793e-06,1.2614313134179378e-06 +0.02,0.0050000000000000044,3.90624999999866e-05,9.046556473657484e-07,9.631680039368096e-07 +0.02,0.0050000000000000044,1.9531249999987766e-05,8.643165545219045e-07,8.867074580698464e-07 +0.015625,0.00390625,0.00390625,0.0012381840787394,0.0010462897347741 +0.015625,0.00390625,0.001953125,0.0003097379424398,0.0002620644797559 +0.015625,0.00390625,0.0009765625,7.761826047042453e-05,6.574430199166037e-05 +0.015625,0.00390625,0.00048828125,1.9593841610432428e-05,1.665572100617574e-05 +0.015625,0.00390625,0.000244140625,5.088573740041902e-06,4.38419169976334e-06 +0.015625,0.00390625,0.0001220703125,1.4675211379433506e-06,1.3210404272989695e-06 +0.015625,0.00390625,6.103515625e-05,5.699062218811335e-07,5.649035773724193e-07 +0.015625,0.00390625,3.0517578125e-05,3.523594325205437e-07,3.8513315776811385e-07 +0.015625,0.00390625,1.52587890625e-05,3.226445504100895e-07,3.3381761632700346e-07 +0.0125,0.003125000000000018,0.003125000000000018,0.0007924248583811,0.0006699017711989 +0.0125,0.003125000000000018,0.0015625000000000153,0.0001981720337966,0.000167668772635 +0.0125,0.003125000000000018,0.0007812499999999816,4.961629431465831e-05,4.201049365584741e-05 +0.0125,0.003125000000000018,0.00039062499999998435,1.248105415163625e-05,1.059195568897664e-05 +0.0125,0.003125000000000018,0.0001953125000000183,3.197717103275988e-06,2.7372338207987124e-06 +0.0125,0.003125000000000018,9.765625000001566e-05,8.794551684676577e-07,7.75603819669346e-07 +0.0125,0.003125000000000018,4.882812499998171e-05,3.0004754042467496e-07,2.861505649653928e-07 +0.0125,0.003125000000000018,2.4414062499984324e-05,1.5458691526859525e-07,1.6329397924119693e-07 +0.0125,0.003125000000000018,1.2207031250018285e-05,1.311885513832767e-07,1.39910518004438e-07 +0.01,0.002499999999999974,0.002499999999999974,0.0005071303131574,0.0004288126603153 +0.01,0.002499999999999974,0.0012499999999999803,0.0001268073086954,0.0001072868881493 +0.01,0.002499999999999974,0.0006249999999999885,3.1731783763699895e-05,2.6859970393700028e-05 +0.01,0.002499999999999974,0.00031250000000002153,7.964681665861839e-06,6.751414592248706e-06 +0.01,0.002499999999999974,0.0001562499999999898,2.023083755464672e-06,1.7240783800887003e-06 +0.01,0.002499999999999974,7.812500000001743e-05,5.386385186767484e-07,4.6830264621711137e-07 +0.01,0.002499999999999974,3.90624999999866e-05,1.661904891481214e-07,1.530685197481674e-07 +0.01,0.002499999999999974,1.9531249999987766e-05,7.078779551417115e-08,7.376986954632514e-08 +0.01,0.002499999999999974,9.765624999992502e-06,5.2873595945968084e-08,5.949196485444119e-08 +0.008,0.0020000000000000018,0.0020000000000000018,0.0003245508497981,0.0002745141386633 +0.008,0.0020000000000000018,0.0010000000000000009,8.114577572859716e-05,6.865582504045342e-05 +0.008,0.0020000000000000018,0.0004999999999999726,2.029845659495821e-05,1.7179683110324362e-05 +0.008,0.0020000000000000018,0.0002499999999999794,5.087547124360548e-06,4.309697632154386e-06 +0.008,0.0020000000000000018,0.0001250000000000157,1.284959438185851e-06,1.0921563751431496e-06 +0.008,0.0020000000000000018,6.24999999999866e-05,3.349184518053328e-07,2.884746541920169e-07 +0.008,0.0020000000000000018,3.125000000001574e-05,9.954751384322337e-08,9.020079705379659e-08 +0.008,0.0020000000000000018,1.562499999998573e-05,3.2851877218575964e-08,3.4988896335796944e-08 +0.00625,0.0015625000000000153,0.0015625000000000153,0.0001980791552683,0.0001675605352404 +0.00625,0.0015625000000000153,0.0007812499999999816,4.952115504042176e-05,4.190091201475288e-05 +0.00625,0.0015625000000000153,0.00039062499999998435,1.2384562746547978e-05,1.0481165434700346e-05 +0.00625,0.0015625000000000153,0.0001953125000000183,3.100877834116833e-06,2.6257421549824578e-06 +0.00625,0.0015625000000000153,9.765625000001566e-05,7.805601580646027e-07,6.624663570486966e-07 +0.00625,0.0015625000000000153,4.882812499998171e-05,1.983810316574797e-07,1.6914321798733314e-07 +0.00625,0.0015625000000000153,2.4414062499984324e-05,4.9517283495781335e-08,4.180985488377864e-08 +0.00625,0.0015625000000000153,1.2207031250018285e-05,1.3738299275978251e-08,1.6357887655527037e-08 +0.005,0.0012499999999999803,0.0012499999999999803,0.0001267689728152,0.0001072427116557 +0.005,0.0012499999999999803,0.0006249999999999885,3.1692526265281185e-05,2.6815247560624256e-05 +0.005,0.0012499999999999803,0.00031250000000002153,7.924873531184318e-06,6.706351688257062e-06 +0.005,0.0012499999999999803,0.0001562499999999898,1.983133544380955e-06,1.6787847737786965e-06 +0.005,0.0012499999999999803,7.812500000001743e-05,4.982625887439696e-07,4.224823709209069e-07 +0.005,0.0012499999999999803,3.90624999999866e-05,1.2483300426691102e-07,1.058338568171724e-07 +0.005,0.0012499999999999803,1.9531249999987766e-05,2.8148618602674705e-08,2.3162375073493283e-08 +0.004,0.0010000000000000009,0.0010000000000000009,8.113005226262349e-05,6.863786824848339e-05 +0.004,0.0010000000000000009,0.0004999999999999726,2.028235540052492e-05,1.71615007594772e-05 +0.004,0.0010000000000000009,0.0002499999999999794,5.071222025809785e-06,4.291346060697476e-06 +0.004,0.0010000000000000009,0.0001250000000000157,1.2685755922947628e-06,1.0737266355476116e-06 +0.004,0.0010000000000000009,6.24999999999866e-05,3.1842638448242866e-07,2.698811831791659e-07 +0.004,0.0010000000000000009,3.125000000001574e-05,8.285328856327824e-08,7.123427114841263e-08 +0.004,0.0010000000000000009,1.562499999998573e-05,1.5580691403727087e-08,1.4236001932843578e-08 +0.003125,0.0007812499999999816,0.0007812499999999816,4.9516158668272414e-05,4.189425888134757e-05 +0.003125,0.0007812499999999816,0.00039062499999998435,1.23788852952611e-05,1.0474427300039002e-05 +0.003125,0.0007812499999999816,0.0001953125000000183,3.0949086233800216e-06,2.6189435236578795e-06 +0.003125,0.0007812499999999816,9.765625000001566e-05,7.745156249128193e-07,6.556612929253802e-07 +0.003125,0.0007812499999999816,4.882812499998171e-05,1.922336193005414e-07,1.6226833265964302e-07 +0.003125,0.0007812499999999816,2.4414062499984324e-05,4.3168070507082497e-08,3.47591116167667e-08 +0.003125,0.0007812499999999816,1.2207031250018285e-05,9.15337087722956e-09,8.755171532204287e-09 +0.003125,0.0007812499999999816,6.1035156250156704e-06,7.439854333296525e-08,7.959238651489288e-08 +0.0028571428571428,0.0007142857142858061,0.0007142857142858061,4.139159908361778e-05,3.502004682531812e-05 +0.0028571428571428,0.0007142857142858061,0.0003571428571429447,1.0347744825667249e-05,8.755729658777023e-06 +0.0028571428571428,0.0007142857142858061,0.0001785714285716944,2.587050506319688e-06,2.1891578385613286e-06 +0.0028571428571428,0.0007142857142858061,8.928571428580556e-05,6.474469051442888e-07,5.480860201245719e-07 +0.0028571428571428,0.0007142857142858061,4.464285714311789e-05,1.6036472499925125e-07,1.352580962787897e-07 +0.0028571428571428,0.0007142857142858061,2.2321428571614454e-05,3.5064307957188845e-08,2.7929968365869584e-08 +0.0028571428571428,0.0007142857142858061,1.1160714286084783e-05,8.260182985525555e-09,7.3843138270746075e-09 +0.0025,0.0006249999999999885,0.0006249999999999885,3.1690121979288666e-05,2.681252301744985e-05 +0.0025,0.0006249999999999885,0.00031250000000002153,7.922408236882283e-06,6.703600247348618e-06 +0.0025,0.0006249999999999885,0.0001562499999999898,1.9806391780008425e-06,1.676006519540918e-06 +0.0025,0.0006249999999999885,7.812500000001743e-05,4.957783125147941e-07,4.197224879320949e-07 +0.0025,0.0006249999999999885,3.90624999999866e-05,1.223231246849643e-07,1.0309766831917423e-07 +0.0025,0.0006249999999999885,1.9531249999987766e-05,2.5574815210038796e-08,2.0060691496848196e-08 +0.0015625,0.00039062499999998435,0.00039062499999998435,1.2378642456734036e-05,1.0474015998768182e-05 +0.0015625,0.00039062499999998435,0.0001953125000000183,3.09455920571855e-06,2.6185224961672304e-06 +0.0015625,0.00039062499999998435,9.765625000001566e-05,7.74128738445512e-07,6.552121387948251e-07 +0.0015625,0.00039062499999998435,4.882812499998171e-05,1.9182711258336482e-07,1.618220650256852e-07 +0.0015625,0.00039062499999998435,2.4414062499984324e-05,4.2788364795764984e-08,3.4388555253395126e-08 +0.0015625,0.00039062499999998435,1.2207031250018285e-05,8.951681881863571e-09,8.142322815984926e-09 +0.00125,0.00031250000000002153,0.00031250000000002153,7.922257753756323e-06,6.703428905519004e-06 +0.00125,0.00031250000000002153,0.0001562499999999898,1.980487025321498e-06,1.6758378885706191e-06 +0.00125,0.00031250000000002153,7.812500000001743e-05,4.956199622929702e-07,4.195428584263805e-07 +0.00125,0.00031250000000002153,3.90624999999866e-05,1.222251780896855e-07,1.0291204452506086e-07 +0.00125,0.00031250000000002153,1.9531249999987766e-05,2.5285101845629043e-08,1.996562937200963e-08 +0.00125,0.00031250000000002153,9.765624999992502e-06,6.980447313491983e-09,5.3276528744206075e-09 diff --git a/plotting/oscillator-overlap/Fig11/data/sweet_spot.csv b/plotting/oscillator-overlap/Fig11/data/sweet_spot.csv new file mode 100644 index 00000000..bce34c15 --- /dev/null +++ b/plotting/oscillator-overlap/Fig11/data/sweet_spot.csv @@ -0,0 +1,7 @@ +# assembled from specific results from this folder. +time window size,time step size Mass-Left,time step size Mass-Right,error Mass-Left,error Mass-Right +0.1,0.025000000000000012,0.003125000000000018,0.0012254505376257,0.0012319544228865 +0.05,0.01249999999999998,0.0007812499999999816,7.717328726419836e-05,7.531636460272884e-05 +0.025,0.006249999999999985,0.0001953125000000183,4.825699073562895e-06,4.642296072492058e-06 +0.0125,0.003125000000000018,4.882812499998171e-05,3.0004754042467496e-07,2.861505649653928e-07 +0.00625,0.0015625000000000153,1.2207031250018285e-05,1.3738299275978251e-08,1.6357887655527037e-08 diff --git a/plotting/oscillator-overlap/Fig11/main.tex b/plotting/oscillator-overlap/Fig11/main.tex new file mode 100644 index 00000000..5dcac606 --- /dev/null +++ b/plotting/oscillator-overlap/Fig11/main.tex @@ -0,0 +1,59 @@ +\documentclass{standalone} + +\usepackage{amsmath} +\usepackage{pgfplots} +\pgfplotsset{compat=1.18} +\usepackage{tikz} +\usetikzlibrary{calc, intersections, positioning, hobby, fit, patterns} + +\pgfdeclarelayer{bg} % declare background layer +\pgfdeclarelayer{fg} % declare foreground layer +\pgfsetlayers{bg,main,fg} % set the order of the layers (main is the standard layer) + +%%% see https://tex.stackexchange.com/a/20426 and https://tex.stackexchange.com/a/419123 +\makeatletter +\pgfkeys{% + /tikz/on layer/.code={ + \pgfonlayer{#1}\begingroup + \aftergroup\endpgfonlayer + \aftergroup\endgroup + }, + /tikz/node on layer/.code={ + \gdef\node@@on@layer{% + \setbox\tikz@tempbox=\hbox\bgroup\pgfonlayer{#1}\unhbox\tikz@tempbox\endpgfonlayer\egroup} + \aftergroup\node@on@layer + }, + /tikz/end node on layer/.code={ + \endpgfonlayer\endgroup\endgroup + } +} +\def\node@on@layer{\aftergroup\node@@on@layer} +\makeatother +%%% + +%%% Define tuftelike pgfplots style +% see https://tex.stackexchange.com/questions/155194/tufte-like-axis-with-pgfplots + +\pgfkeys{/pgfplots/tuftelike/.style={ + semithick, + tick style={major tick length=4pt,semithick,black}, + separate axis lines, + axis x line*=bottom, + axis x line shift=10pt, + axis y line*=left, + axis y line shift=10pt, + enlarge x limits=false, + enlarge y limits=false + }} + +%%% END + +\definecolor{pblue}{RGB}{0,102,189} % precice blue +\definecolor{porange}{RGB}{243,98,33} % precice orange + +\tikzstyle{sample}=[circle,draw,inner sep=1.5pt,thick,fill=white] +\tikzstyle{stample}=[circle,inner sep=1.5pt,fill] + +\begin{document} +\input{tikzcode.tex} +\end{document} diff --git a/plotting/oscillator-overlap/Fig11/preproc.py b/plotting/oscillator-overlap/Fig11/preproc.py new file mode 100644 index 00000000..d69e4778 --- /dev/null +++ b/plotting/oscillator-overlap/Fig11/preproc.py @@ -0,0 +1,64 @@ +import argparse +import pandas as pd +from pathlib import Path + +parser = argparse.ArgumentParser(description="Extract contour lines for levels from given contour_data.csv") +parser.add_argument( + "cdata", + type=Path, + help="Path to 'contour_data.csv'." +) +args = parser.parse_args() + +outdir = args.cdata.parent + +parser = argparse.ArgumentParser() + +times = pd.DataFrame(columns=['x', 'y', 'z', 'w']) + +df = pd.read_csv(args.cdata, sep=',', comment='#') +for l in df.iterrows(): + times.loc[-1] = [ + l[1]['time step size Mass-Right'], + l[1]['time step size Mass-Left'], + max([l[1]['error Mass-Left'],l[1]['error Mass-Right']]), + l[1]['time window size'] + ] + times.index += 1 + times = times.sort_index() + +import numpy as np +import scipy.interpolate as interp + +interpolator = interp.CloughTocher2DInterpolator(np.array([times['x'],times['y']]).T, times['z']) + +times = times.sort_values(['x', 'y']) +times = times.set_index(['x','y']) + +from matplotlib import pyplot as plt + +import numpy as np + +X, Y = np.meshgrid(np.logspace(np.log10(1.25*1e-5), np.log10(1e-1)), + np.logspace(np.log10(1e-3), np.log10(1e-1))) +Z = interpolator(X,Y) + +# simple cost model: RK4 requires 4 f evaluations * 1/Y steps; GA requires 2(?) f evaluations * 1/X steps +C = 2/(X) + 4/(Y) + +from matplotlib import ticker + +def fmt(x): + return "{:.0E}".format(x) + +CS = plt.contour(X,Y,Z,np.array([1e-7,1e-6,1e-5,1e-4,1e-3]),locator=ticker.LogLocator()) + +for c_level, c_line in zip(CS.levels, CS.allsegs): + n_pts = len(c_line[0][:,0]) + d = {'id': range(n_pts), 'c_level':n_pts*[c_level], 'c_line_x':c_line[0][:,0], 'c_line_y':c_line[0][:,1]} + df_contours = pd.DataFrame(d) + df_contours = df_contours.set_index("id") + df_contours.to_csv(outdir / f"contour_{c_level}.csv", sep=';') + +times_reduced = times.iloc[times.index.get_level_values('y') >= 1e-3] +times_reduced.to_csv(outdir / "times_reduced.csv", sep=';') \ No newline at end of file diff --git a/plotting/oscillator-overlap/Fig11/tikzcode.tex b/plotting/oscillator-overlap/Fig11/tikzcode.tex new file mode 100644 index 00000000..16306c5d --- /dev/null +++ b/plotting/oscillator-overlap/Fig11/tikzcode.tex @@ -0,0 +1,79 @@ +\pgfmathdeclarefunction{lg10}{1}{% + \pgfmathparse{ln(#1)/ln(10)}% +} + +\begin{tikzpicture}[mark options={solid}, use Hobby shortcut] + \begin{loglogaxis}[ + tuftelike, + % clip = false, + % xlabel={$m_B$ uses {GA} with $\delta t_B = \Delta t / S_B,\, S_B\in\left\lbrace 4,8,16,\ldots,2048\right\rbrace$}, + xlabel={$m_B$ uses {GA} with $\delta t_B$}, + x label style={at={(axis description cs:0.5,-0.25)},anchor=north}, + % ylabel={$m_A$ uses {RK4} with $\delta t_A = \Delta t / 4$}, + ylabel={$m_A$ uses {RK4} with $\delta t_A$}, + y label style={at={(axis description cs:-0.15,0.5)},anchor=south}, + width=.8\textwidth, + % height=.4\textwidth, + xmax=2e-2, + xmin=1e-5, + xtick={1e-5,1e-4,1e-3,1e-2,1e-1}, + xticklabels={$10^{-5}$, $10^{-4}$,$10^{-3}$, $10^{-2}$,}, + ymin=1e-3, + ymax=3e-2, + ytick={1e-3,1e-2,1e-1}, + yticklabels={$10^{-3}$, $10^{-2}$,}, + axis equal image, + colormap name=viridis, + point meta max =-3, + point meta min =-8, + colorbar, + colorbar style={ + % title=, + title={$\max(e_A,e_B)$}, + ymax = -3, + ymin = -8, + ytick={-3,-4,-5,-6,-7,-8}, + yticklabels={$10^{-3}$,$10^{-4}$,$10^{-5}$,$10^{-6}$,$10^{-7}$,$10^{-8}$}, + } + ] + % Removed all data with \delta t_A < 10e-3 in times_reduced.csv + \addplot[scatter,only marks, scatter src=explicit] table[x=x, y=y, meta=z, meta expr=lg10(\thisrow{z}), col sep=semicolon]{data/times_reduced.csv}; + + \begin{pgfonlayer}{fg} + \addplot[draw] + table[x=c_line_x , y=c_line_y, col sep=semicolon]{data/contour_0.001.csv}; + \addplot[draw] + table[x=c_line_x , y=c_line_y, col sep=semicolon]{data/contour_0.0001.csv}; + \addplot[draw] + table[x=c_line_x , y=c_line_y, col sep=semicolon]{data/contour_1e-05.csv}; + \addplot[draw] + table[x=c_line_x , y=c_line_y, col sep=semicolon]{data/contour_1e-06.csv}; + \addplot[draw] + table[x=c_line_x , y=c_line_y, col sep=semicolon]{data/contour_1e-07.csv}; + \end{pgfonlayer} + + + \begin{pgfonlayer}{bg} + \begin{scope}[opacity=1,transparency group] + \clip (axis cs:1e-5,1e-3) rectangle (1e-2,3e-2); + \draw[fill=gray!25, draw=none](axis cs:2e-3,3e-2) -- (axis cs:0.6e-6,0.6e-3) -- (axis cs:0.4e-5,0.6e-3) -- (axis cs:1e-2,3e-2) node(foropt){}; + \end{scope} + \draw[<-](axis cs:2e-4,4.5e-2) -- node[above]{more expensive, same error} ([xshift=3cm]axis cs:2e-4,4.5e-2); + \draw[->](axis cs:5e-3,1.5e-2) -- ([yshift=-2cm]axis cs:5e-3,1.5e-2); + \end{pgfonlayer} + \begin{pgfonlayer}{fg} + % \node[above = of foropt, yshift=-1cm,xshift=-1cm]{$\delta t_A / \delta t_B$ optimal}; + \node [above right, xshift=-2.3cm] at (axis cs: 6.068944139550695e-05, 0.027359409978889637) {$\max(e_A, e_B) = 10^{-3}$}; + \node [above right,xshift=0.2cm] at (axis cs: 3.434755181220991e-05, 0.01613664376285744) {$10^{-4}$}; + \node [above right,xshift=0.15cm] at (axis cs: 1.9894938316598997e-05, 0.009153784888423784) {$10^{-5}$}; + \node [above right,xshift=0.15cm] at (axis cs: 1.2889114879713652e-05, 0.005140781873633584) {$10^{-6}$}; + \node [above right,xshift=-0.15cm] at (axis cs: 1.288911487971365e-05, 0.002836777910752072) {$10^{-7}$}; + \end{pgfonlayer} + + % Comment out - has to be created manually + % \begin{pgfonlayer}{fg} + % \addplot[mark=square*, fill=gray, draw=black, only marks]table[x=time step size Mass-Right, y=time step size Mass-Left, col sep=comma]{data/sweet_spot.csv}; + % \end{pgfonlayer} + +\end{loglogaxis} +\end{tikzpicture} diff --git a/plotting/oscillator-overlap/Makefile b/plotting/oscillator-overlap/Makefile new file mode 100644 index 00000000..362be19c --- /dev/null +++ b/plotting/oscillator-overlap/Makefile @@ -0,0 +1,7 @@ +DIRS := Fig10 Fig11 Tab1 + +.PHONY: all $(MAKECMDGOALS) $(DIRS) +$(MAKECMDGOALS) all: $(DIRS) + +$(DIRS): + $(MAKE) -C $@ $(MAKECMDGOALS) diff --git a/plotting/oscillator-overlap/Tab1/Makefile b/plotting/oscillator-overlap/Tab1/Makefile new file mode 100644 index 00000000..e739bd86 --- /dev/null +++ b/plotting/oscillator-overlap/Tab1/Makefile @@ -0,0 +1,22 @@ +all: FP fQN rQN +FP: FP.pdf +fQN: fQN.pdf +rQN: rQN.pdf + +# Rule to generate .tex files from .csv files +%.tex: data/%.csv + python3 make-table-from-template.py $< + +# Rule to generate .pdf files from .tex files +%.pdf: %.tex + latexmk -interaction=nonstopmode -pdf -bibtex -shell-escape $< + +name=main +derived_data= data/contour_0.001.csv data/contour_0.0001.csv data/contour_1e-05.csv data/contour_1e-06.csv data/contour_1e-07.csv data/times_reduced.csv +auxiliary_files= + +clean_nopdf: + rm -rf *.log *.out *.aux *.bbl *.blg *.fdb_latexmk *.fls *.idx *.ilg *.ind *.lof *.lol *.lot *.run.xml *.toc *-blx.bib *.loa + +clean: + rm -rf *.log *.out *.aux *.bbl *.blg *.fdb_latexmk *.fls *.idx *.ilg *.ind *.lof *.lol *.lot *.run.xml *.toc *-blx.bib *.loa *.pdf diff --git a/plotting/oscillator-overlap/Tab1/data/FP.csv b/plotting/oscillator-overlap/Tab1/data/FP.csv new file mode 100644 index 00000000..98073847 --- /dev/null +++ b/plotting/oscillator-overlap/Tab1/data/FP.csv @@ -0,0 +1,14 @@ +# participants version:{'Mass-Left': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Mass-Right': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Mass-Left': , 'Mass-Right': } +# run cmd:python3 doConvergenceStudy.py configs/precice-config-template-FP.xml --silent --executor Github --config configs/tab1_dts.csv -tss runge_kutta_4 generalized_alpha -wd 3 --exchange-substeps -o results/Tab1/data/FP.csv +# args:Namespace(template_path='configs/precice-config-template-FP.xml', config='configs/tab1_dts.csv', silent=True, executor='Github', max_time=1.0, base_time_window_size=0.04, time_window_refinements=5, base_time_step_refinement=[1, 1], time_step_refinements=1, time_step_refinement_factor=[2, 2], time_stepping_scheme=['runge_kutta_4', 'generalized_alpha'], waveform_degree=3, exchange_substeps=True, out_filename='results/Tab1/data/FP.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.2, 'max_time': 1.0, 'waveform_degree': 3, 'substeps': True} +time window size,time step size Mass-Left,time step size Mass-Right,error Mass-Left,error Mass-Right +0.005,0.0050000000000000044,0.00019999999999998448,0.0007804368001303,0.0007463369771522 +0.01,0.0050000000000000044,0.00019999999999998448,5.780701327728899e-06,4.932021512873974e-06 +0.02,0.0050000000000000044,0.00019999999999998448,3.938817112136839e-06,3.5522855354186422e-06 +0.05,0.0050000000000000044,0.00019999999999998448,4.266081304049596e-06,3.797683704967469e-06 +0.1,0.0050000000000000044,0.00019999999999998448,4.387772095715281e-06,3.888774913071713e-06 +0.2,0.0050000000000000044,0.00019999999999998448,4.448306218651776e-06,3.926848865423716e-06 diff --git a/plotting/oscillator-overlap/Tab1/data/fQN.csv b/plotting/oscillator-overlap/Tab1/data/fQN.csv new file mode 100644 index 00000000..ac208ea7 --- /dev/null +++ b/plotting/oscillator-overlap/Tab1/data/fQN.csv @@ -0,0 +1,14 @@ +# participants version:{'Mass-Left': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Mass-Right': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Mass-Left': , 'Mass-Right': } +# run cmd:python3 doConvergenceStudy.py configs/precice-config-template-fQN.xml --silent --executor Github --config configs/tab1_dts.csv -tss runge_kutta_4 generalized_alpha -wd 3 --exchange-substeps -o results/Tab1/data/fQN.csv +# args:Namespace(template_path='configs/precice-config-template-fQN.xml', config='configs/tab1_dts.csv', silent=True, executor='Github', max_time=1.0, base_time_window_size=0.04, time_window_refinements=5, base_time_step_refinement=[1, 1], time_step_refinements=1, time_step_refinement_factor=[2, 2], time_stepping_scheme=['runge_kutta_4', 'generalized_alpha'], waveform_degree=3, exchange_substeps=True, out_filename='results/Tab1/data/fQN.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.2, 'max_time': 1.0, 'waveform_degree': 3, 'substeps': True} +time window size,time step size Mass-Left,time step size Mass-Right,error Mass-Left,error Mass-Right +0.005,0.0050000000000000044,0.00019999999999998448,0.0007804368007245,0.0007463369807518 +0.01,0.0050000000000000044,0.00019999999999998448,5.780697870827467e-06,4.932017933237387e-06 +0.02,0.0050000000000000044,0.00019999999999998448,3.93881711219235e-06,3.5522855354186422e-06 +0.05,0.0050000000000000044,0.00019999999999998448,4.2660792163862205e-06,3.7976817059554016e-06 +0.1,0.0050000000000000044,0.00019999999999998448,4.38777412808955e-06,3.888773722884875e-06 +0.2,0.0050000000000000044,0.00019999999999998448,4.44830878554292e-06,3.926854301117277e-06 diff --git a/plotting/oscillator-overlap/Tab1/data/rQN.csv b/plotting/oscillator-overlap/Tab1/data/rQN.csv new file mode 100644 index 00000000..dbf747ca --- /dev/null +++ b/plotting/oscillator-overlap/Tab1/data/rQN.csv @@ -0,0 +1,14 @@ +# participants version:{'Mass-Left': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Mass-Right': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Mass-Left': , 'Mass-Right': } +# run cmd:python3 doConvergenceStudy.py configs/precice-config-template-rQN.xml --silent --executor Github --config configs/tab1_dts.csv -tss runge_kutta_4 generalized_alpha -wd 3 --exchange-substeps -o results/Tab1/data/rQN.csv +# args:Namespace(template_path='configs/precice-config-template-rQN.xml', config='configs/tab1_dts.csv', silent=True, executor='Github', max_time=1.0, base_time_window_size=0.04, time_window_refinements=5, base_time_step_refinement=[1, 1], time_step_refinements=1, time_step_refinement_factor=[2, 2], time_stepping_scheme=['runge_kutta_4', 'generalized_alpha'], waveform_degree=3, exchange_substeps=True, out_filename='results/Tab1/data/rQN.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.2, 'max_time': 1.0, 'waveform_degree': 3, 'substeps': True} +time window size,time step size Mass-Left,time step size Mass-Right,error Mass-Left,error Mass-Right +0.005,0.0050000000000000044,0.00019999999999998448,0.0007804367997321,0.0007463369768833 +0.01,0.0050000000000000044,0.00019999999999998448,5.780702846847063e-06,4.932020612011256e-06 +0.02,0.0050000000000000044,0.00019999999999998448,3.938817111748261e-06,3.5522855354186422e-06 +0.05,0.0050000000000000044,0.00019999999999998448,4.26608194653566e-06,3.797683656853179e-06 +0.1,0.0050000000000000044,0.00019999999999998448,4.3877705028227965e-06,3.888773906793319e-06 +0.2,0.0050000000000000044,0.00019999999999998448,4.448307117377315e-06,3.926848741328537e-06 diff --git a/plotting/oscillator-overlap/Tab1/make-table-from-template.py b/plotting/oscillator-overlap/Tab1/make-table-from-template.py new file mode 100644 index 00000000..cfea77e9 --- /dev/null +++ b/plotting/oscillator-overlap/Tab1/make-table-from-template.py @@ -0,0 +1,52 @@ +import pandas as pd +from jinja2 import Environment, FileSystemLoader +from pathlib import Path + +import argparse + +parser = argparse.ArgumentParser(description="Create LaTeX code for table summarizing average iterations") +parser.add_argument( + "file", + type=Path, + help="Path to csv file for experiment." +) +args = parser.parse_args() + +experiment_file = args.file + +df = pd.read_csv(experiment_file, comment='#', sep=',') + +data = { + '$\\Delta t$': [], + '$e_A$': [], + '$e_B$': [], + 'Avg. its.': [], +} + +for r in df.to_dict(orient='records'): + time_window = round(r['time window size'], ndigits=10) + time_step_1 = round(r['time step size Mass-Left'], ndigits=10) + time_step_2 = round(r['time step size Mass-Right'], ndigits=10) + its_df = pd.read_csv(experiment_file.parent / experiment_file.stem / f'{time_window}_{time_step_1}_{time_step_2}' / 'precice-Mass-Left-iterations.log', delimiter=r"\s+") + + data['$\\Delta t$'].append(time_window) + data['$e_A$'].append('%.2E'%r['error Mass-Left']) + data['$e_B$'].append('%.2E'%r['error Mass-Right']) + data['Avg. its.'].append(its_df['Iterations'].mean()) + +# Load the Jinja2 template from the file system +env = Environment(loader=FileSystemLoader('.')) +template = env.get_template('table.tex.jinja2') + +df = pd.DataFrame(data) + +# Get the column labels and data for Jinja2 +columns = df.columns.tolist() # Get column names +data_rows = df.values.tolist() # Get the data as a list of rows + +# Render LaTeX table using the custom Jinja2 template +latex_code = template.render(columns=columns, data=data_rows, acc_scheme=experiment_file.stem) + +# Write the LaTeX code to file +with open(experiment_file.stem + '.tex', 'w') as f: + f.write(latex_code) diff --git a/plotting/oscillator-overlap/Tab1/table.tex.jinja2 b/plotting/oscillator-overlap/Tab1/table.tex.jinja2 new file mode 100644 index 00000000..ac60f03e --- /dev/null +++ b/plotting/oscillator-overlap/Tab1/table.tex.jinja2 @@ -0,0 +1,23 @@ +\documentclass[preview]{standalone} + +\usepackage{amsmath} +\usepackage{booktabs} +\begin{document} +\begin{tabular}{ {%- for n in range(columns|length) -%}c{%- endfor -%} } +\multicolumn{ {{ columns|length }} }{c}{\bfseries Acceleration scheme {{ acc_scheme }}}\\[2pt] +{% set colsep = joiner(" & ") %} +{%- for column in columns -%} +{{ colsep() }}{{ column }} +{%- endfor -%} +\\ +\midrule +{%- set rowsep = joiner(" \\\\") %} +{%- for row in data -%} +{{ rowsep() }} +{%- set colsep = joiner(" & ") %} +{% for value in row -%} +{{ colsep() }}{{ value }} +{%- endfor -%} +{% endfor %} +\end{tabular} +\end{document} diff --git a/plotting/partitioned-heat-conduction/Fig13/Makefile b/plotting/partitioned-heat-conduction/Fig13/Makefile new file mode 100644 index 00000000..300dd2d2 --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13/Makefile @@ -0,0 +1,12 @@ +main: main.tex + latexmk -interaction=nonstopmode -pdf -bibtex -shell-escape $^ + +name=main +auxiliary_files= $(name).log $(name).out $(name).aux $(name).bbl $(name).blg $(name).fdb_latexmk $(name).fls $(name).idx $(name).ilg $(name).ind $(name).lof $(name).lol $(name).lot $(name).run.xml $(name).toc $(name)-blx.bib $(name).loa + +clean_nopdf: + rm -rf $(auxiliary_files) + +clean: + rm -rf $(auxiliary_files) $(name).pdf + diff --git a/plotting/partitioned-heat-conduction/Fig13/data/GL2_2.csv b/plotting/partitioned-heat-conduction/Fig13/data/GL2_2.csv new file mode 100644 index 00000000..82591ac7 --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13/data/GL2_2.csv @@ -0,0 +1,14 @@ +# participants version:{'Dirichlet': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Neumann': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Dirichlet': , 'Neumann': } +# run cmd:python3 doConvergenceStudy.py precice-config-template.xml --silent --executor Github --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 +# args:Namespace(template_path='precice-config-template.xml', silent=True, executor='Github', max_time=1.0, base_time_window_size=1.0, time_window_refinements=6, base_time_step_refinement=[5, 5], time_step_refinements=1, time_step_refinement_factor=[2, 2], experiment='sincos', time_stepping_scheme=['GaussLegendre2', 'GaussLegendre2'], waveform_degree=2, exchange_substeps=True, out_filename='results/Fig13/data/GL2_2.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.03125, 'max_time': 1.0, 'waveform_degree': 2, 'substeps': True} +time window size,time step size Dirichlet,time step size Neumann,substeps Dirichlet,avg(iterations / window),max(iterations / window),error Dirichlet,substeps Neumann,error Neumann +1.0,0.2,0.2,5,18.0,18,1.4426104449847668e-05,5,1.8361175797834453e-05 +0.5,0.1,0.1,5,18.0,18,5.638215716446995e-06,5,4.82961056675297e-06 +0.25,0.05,0.05,5,18.0,19,1.2676253171145514e-06,5,1.0861314350473126e-06 +0.125,0.025,0.025,5,16.875,18,3.1163558763551816e-07,5,2.631878107466729e-07 +0.0625,0.0125,0.0125,5,15.0,18,7.688377011111107e-08,5,6.505263818271057e-08 +0.03125,0.00625,0.00625,5,14.875,17,1.9177119932974828e-08,5,1.618670606048863e-08 diff --git a/plotting/partitioned-heat-conduction/Fig13/data/GL2_3.csv b/plotting/partitioned-heat-conduction/Fig13/data/GL2_3.csv new file mode 100644 index 00000000..fe4e34ff --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13/data/GL2_3.csv @@ -0,0 +1,14 @@ +# participants version:{'Dirichlet': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Neumann': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Dirichlet': , 'Neumann': } +# run cmd:python3 doConvergenceStudy.py precice-config-template.xml --silent --executor Github --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 +# args:Namespace(template_path='precice-config-template.xml', silent=True, executor='Github', max_time=1.0, base_time_window_size=1.0, time_window_refinements=6, base_time_step_refinement=[5, 5], time_step_refinements=1, time_step_refinement_factor=[2, 2], experiment='sincos', time_stepping_scheme=['GaussLegendre2', 'GaussLegendre2'], waveform_degree=3, exchange_substeps=True, out_filename='results/Fig13/data/GL2_3.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.03125, 'max_time': 1.0, 'waveform_degree': 3, 'substeps': True} +time window size,time step size Dirichlet,time step size Neumann,substeps Dirichlet,avg(iterations / window),max(iterations / window),error Dirichlet,substeps Neumann,error Neumann +1.0,0.2,0.2,5,18.0,18,1.2878486866900426e-06,5,8.780353110171512e-07 +0.5,0.1,0.1,5,18.5,19,4.845074600973817e-07,5,2.0495728859369695e-07 +0.25,0.05,0.05,5,17.75,18,6.665572479464968e-08,5,3.397694295022854e-08 +0.125,0.025,0.025,5,20.125,21,6.993107026992392e-09,5,4.553572737271101e-09 +0.0625,0.0125,0.0125,5,15.875,18,6.507419612832766e-10,5,4.6202877971304924e-10 +0.03125,0.00625,0.00625,5,15.5625,23,4.857968158421472e-11,5,3.661615184725275e-11 diff --git a/plotting/partitioned-heat-conduction/Fig13/data/GL2_5.csv b/plotting/partitioned-heat-conduction/Fig13/data/GL2_5.csv new file mode 100644 index 00000000..835af225 --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13/data/GL2_5.csv @@ -0,0 +1,14 @@ +# participants version:{'Dirichlet': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Neumann': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Dirichlet': , 'Neumann': } +# run cmd:python3 doConvergenceStudy.py precice-config-template.xml --silent --executor Github --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 +# args:Namespace(template_path='precice-config-template.xml', silent=True, executor='Github', max_time=1.0, base_time_window_size=1.0, time_window_refinements=6, base_time_step_refinement=[5, 5], time_step_refinements=1, time_step_refinement_factor=[2, 2], experiment='sincos', time_stepping_scheme=['GaussLegendre2', 'GaussLegendre2'], waveform_degree=5, exchange_substeps=True, out_filename='results/Fig13/data/GL2_5.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.03125, 'max_time': 1.0, 'waveform_degree': 5, 'substeps': True} +time window size,time step size Dirichlet,time step size Neumann,substeps Dirichlet,avg(iterations / window),max(iterations / window),error Dirichlet,substeps Neumann,error Neumann +1.0,0.2,0.2,5,18.0,18,1.8316038901498851e-06,5,1.4234006611027355e-06 +0.5,0.1,0.1,5,18.0,18,6.461244243297452e-07,5,2.288457783478843e-07 +0.25,0.05,0.05,5,18.0,19,7.839167703615975e-08,5,3.0706419622182296e-08 +0.125,0.025,0.025,5,21.875,27,8.21178870022853e-09,5,4.020710486950323e-09 +0.0625,0.0125,0.0125,5,16.25,19,7.375107427251104e-10,5,4.241464825458333e-10 +0.03125,0.00625,0.00625,5,14.875,18,5.3803556767981935e-11,5,3.4533815536735845e-11 diff --git a/plotting/partitioned-heat-conduction/Fig13/data/GL2_mono.csv b/plotting/partitioned-heat-conduction/Fig13/data/GL2_mono.csv new file mode 100644 index 00000000..bb7292ce --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13/data/GL2_mono.csv @@ -0,0 +1,11 @@ +# participants version:{'Monolithic': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Monolithic': } +# run cmd:python3 doConvergenceStudyMonolithic.py --silent --executor Github --experiment sincos -s 6 -dt 0.2 -tss GaussLegendre2 -o results/Fig13/data/GL2_mono.csv +# args:Namespace(silent=True, executor='Github', max_time=1.0, base_time_step_size=0.2, time_step_refinements=6, time_step_refinement_factor=[2], experiment='sincos', time_stepping_scheme=['GaussLegendre2'], out_filename='results/Fig13/data/GL2_mono.csv') +time step size Monolithic,error Monolithic +0.2,2.210814983713733e-06 +0.1,1.5250089525188077e-07 +0.05,1.0345489477658526e-08 +0.025,6.696252292736297e-10 +0.0125,4.2284555826563795e-11 +0.00625,2.5674779399076682e-12 diff --git a/plotting/partitioned-heat-conduction/Fig13/data/GL3_3.csv b/plotting/partitioned-heat-conduction/Fig13/data/GL3_3.csv new file mode 100644 index 00000000..a0eb08c8 --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13/data/GL3_3.csv @@ -0,0 +1,14 @@ +# participants version:{'Dirichlet': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Neumann': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Dirichlet': , 'Neumann': } +# run cmd:python3 doConvergenceStudy.py precice-config-template.xml --silent --executor Github --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 +# args:Namespace(template_path='precice-config-template.xml', silent=True, executor='Github', max_time=1.0, base_time_window_size=1.0, time_window_refinements=6, base_time_step_refinement=[5, 5], time_step_refinements=1, time_step_refinement_factor=[2, 2], experiment='sincos', time_stepping_scheme=['GaussLegendre3', 'GaussLegendre3'], waveform_degree=3, exchange_substeps=True, out_filename='results/Fig13/data/GL3_3.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.03125, 'max_time': 1.0, 'waveform_degree': 3, 'substeps': True} +time window size,time step size Dirichlet,time step size Neumann,substeps Dirichlet,avg(iterations / window),max(iterations / window),error Dirichlet,substeps Neumann,error Neumann +1.0,0.2,0.2,5,19.0,19,3.192797279911416e-06,5,5.817420252525208e-07 +0.5,0.1,0.1,5,20.0,21,2.25900256989439e-07,5,4.262637707860425e-08 +0.25,0.05,0.05,5,20.25,21,1.3277173044155893e-08,5,2.765970164950836e-09 +0.125,0.025,0.025,5,16.5,18,7.675960861362987e-10,5,1.6091308013926406e-10 +0.0625,0.0125,0.0125,5,18.375,22,5.0921608226733535e-11,5,1.274012656593056e-11 +0.03125,0.00625,0.00625,5,15.03125,17,4.367681441333184e-12,5,1.9506535022537598e-12 diff --git a/plotting/partitioned-heat-conduction/Fig13/data/GL3_5.csv b/plotting/partitioned-heat-conduction/Fig13/data/GL3_5.csv new file mode 100644 index 00000000..04359c04 --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13/data/GL3_5.csv @@ -0,0 +1,14 @@ +# participants version:{'Dirichlet': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Neumann': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Dirichlet': , 'Neumann': } +# run cmd:python3 doConvergenceStudy.py precice-config-template.xml --silent --executor Github --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 +# args:Namespace(template_path='precice-config-template.xml', silent=True, executor='Github', max_time=1.0, base_time_window_size=1.0, time_window_refinements=6, base_time_step_refinement=[5, 5], time_step_refinements=1, time_step_refinement_factor=[2, 2], experiment='sincos', time_stepping_scheme=['GaussLegendre3', 'GaussLegendre3'], waveform_degree=5, exchange_substeps=True, out_filename='results/Fig13/data/GL3_5.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.03125, 'max_time': 1.0, 'waveform_degree': 5, 'substeps': True} +time window size,time step size Dirichlet,time step size Neumann,substeps Dirichlet,avg(iterations / window),max(iterations / window),error Dirichlet,substeps Neumann,error Neumann +1.0,0.2,0.2,5,20.0,20,7.128777370208952e-08,5,1.2246048820845836e-08 +0.5,0.1,0.1,5,21.5,23,7.603161218489335e-10,5,8.17996969904548e-10 +0.25,0.05,0.05,5,22.25,25,5.2172739260097454e-11,5,4.526550861550131e-11 +0.125,0.025,0.025,5,21.25,22,3.058365875908418e-12,5,2.064829662180848e-12 +0.0625,0.0125,0.0125,5,15.6875,18,4.447185801449569e-13,5,2.382934260039674e-13 +0.03125,0.00625,0.00625,5,15.28125,18,6.701254685593229e-13,5,5.418633134245625e-13 diff --git a/plotting/partitioned-heat-conduction/Fig13/data/GL3_mono.csv b/plotting/partitioned-heat-conduction/Fig13/data/GL3_mono.csv new file mode 100644 index 00000000..cdb340cb --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13/data/GL3_mono.csv @@ -0,0 +1,11 @@ +# participants version:{'Monolithic': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Monolithic': } +# run cmd:python3 doConvergenceStudyMonolithic.py --silent --executor Github --experiment sincos -s 6 -dt 0.2 -tss GaussLegendre3 -o results/Fig13/data/GL3_mono.csv +# args:Namespace(silent=True, executor='Github', max_time=1.0, base_time_step_size=0.2, time_step_refinements=6, time_step_refinement_factor=[2], experiment='sincos', time_stepping_scheme=['GaussLegendre3'], out_filename='results/Fig13/data/GL3_mono.csv') +time step size Monolithic,error Monolithic +0.2,1.4190128510834582e-08 +0.1,3.7873485083690215e-10 +0.05,1.0498947221952224e-11 +0.025,3.1256073787624213e-13 +0.0125,3.124480396274758e-13 +0.00625,6.160772895375974e-13 diff --git a/plotting/partitioned-heat-conduction/Fig13/data/IE_3.csv b/plotting/partitioned-heat-conduction/Fig13/data/IE_3.csv new file mode 100644 index 00000000..4cdb1086 --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13/data/IE_3.csv @@ -0,0 +1,14 @@ +# participants version:{'Dirichlet': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Neumann': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Dirichlet': , 'Neumann': } +# run cmd:python3 doConvergenceStudy.py precice-config-template.xml --silent --executor Github --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 +# args:Namespace(template_path='precice-config-template.xml', silent=True, executor='Github', max_time=1.0, base_time_window_size=1.0, time_window_refinements=6, base_time_step_refinement=[5, 5], time_step_refinements=1, time_step_refinement_factor=[2, 2], experiment='sincos', time_stepping_scheme=['BackwardEuler', 'BackwardEuler'], waveform_degree=3, exchange_substeps=True, out_filename='results/Fig13/data/IE_3.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.03125, 'max_time': 1.0, 'waveform_degree': 3, 'substeps': True} +time window size,time step size Dirichlet,time step size Neumann,substeps Dirichlet,avg(iterations / window),max(iterations / window),error Dirichlet,substeps Neumann,error Neumann +1.0,0.2,0.2,5,24.0,24,0.0246440592744771,5,0.0478496830310836 +0.5,0.1,0.1,5,24.5,28,0.0122229137278284,5,0.0238235136413221 +0.25,0.05,0.05,5,26.5,29,0.0060861143149774,5,0.0118867931302802 +0.125,0.025,0.025,5,27.75,36,0.0030365623792157,5,0.0059372334145093 +0.0625,0.0125,0.0125,5,26.5625,35,0.0015166292459694,5,0.0029670886455921 +0.03125,0.00625,0.00625,5,26.40625,33,0.0007578978454205,5,0.0014831639693883 diff --git a/plotting/partitioned-heat-conduction/Fig13/data/IE_mono.csv b/plotting/partitioned-heat-conduction/Fig13/data/IE_mono.csv new file mode 100644 index 00000000..3c939fb9 --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13/data/IE_mono.csv @@ -0,0 +1,11 @@ +# participants version:{'Monolithic': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Monolithic': } +# run cmd:python3 doConvergenceStudyMonolithic.py --silent --executor Github --experiment sincos -s 6 -dt 0.2 -tss BackwardEuler -o results/Fig13/data/IE_mono.csv +# args:Namespace(silent=True, executor='Github', max_time=1.0, base_time_step_size=0.2, time_step_refinements=6, time_step_refinement_factor=[2], experiment='sincos', time_stepping_scheme=['BackwardEuler'], out_filename='results/Fig13/data/IE_mono.csv') +time step size Monolithic,error Monolithic +0.2,0.0188586681384243 +0.1,0.0101050464677201 +0.05,0.0046793884156438 +0.025,0.0023367804617036 +0.0125,0.0011793206838458 +0.00625,0.0005865704578797 diff --git a/plotting/partitioned-heat-conduction/Fig13/main.tex b/plotting/partitioned-heat-conduction/Fig13/main.tex new file mode 100644 index 00000000..5dcac606 --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13/main.tex @@ -0,0 +1,59 @@ +\documentclass{standalone} + +\usepackage{amsmath} +\usepackage{pgfplots} +\pgfplotsset{compat=1.18} +\usepackage{tikz} +\usetikzlibrary{calc, intersections, positioning, hobby, fit, patterns} + +\pgfdeclarelayer{bg} % declare background layer +\pgfdeclarelayer{fg} % declare foreground layer +\pgfsetlayers{bg,main,fg} % set the order of the layers (main is the standard layer) + +%%% see https://tex.stackexchange.com/a/20426 and https://tex.stackexchange.com/a/419123 +\makeatletter +\pgfkeys{% + /tikz/on layer/.code={ + \pgfonlayer{#1}\begingroup + \aftergroup\endpgfonlayer + \aftergroup\endgroup + }, + /tikz/node on layer/.code={ + \gdef\node@@on@layer{% + \setbox\tikz@tempbox=\hbox\bgroup\pgfonlayer{#1}\unhbox\tikz@tempbox\endpgfonlayer\egroup} + \aftergroup\node@on@layer + }, + /tikz/end node on layer/.code={ + \endpgfonlayer\endgroup\endgroup + } +} +\def\node@on@layer{\aftergroup\node@@on@layer} +\makeatother +%%% + +%%% Define tuftelike pgfplots style +% see https://tex.stackexchange.com/questions/155194/tufte-like-axis-with-pgfplots + +\pgfkeys{/pgfplots/tuftelike/.style={ + semithick, + tick style={major tick length=4pt,semithick,black}, + separate axis lines, + axis x line*=bottom, + axis x line shift=10pt, + axis y line*=left, + axis y line shift=10pt, + enlarge x limits=false, + enlarge y limits=false + }} + +%%% END + +\definecolor{pblue}{RGB}{0,102,189} % precice blue +\definecolor{porange}{RGB}{243,98,33} % precice orange + +\tikzstyle{sample}=[circle,draw,inner sep=1.5pt,thick,fill=white] +\tikzstyle{stample}=[circle,inner sep=1.5pt,fill] + +\begin{document} +\input{tikzcode.tex} +\end{document} diff --git a/plotting/partitioned-heat-conduction/Fig13/tikzcode.tex b/plotting/partitioned-heat-conduction/Fig13/tikzcode.tex new file mode 100644 index 00000000..ba0fd68a --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13/tikzcode.tex @@ -0,0 +1,56 @@ +\begin{tikzpicture}[ + mark options={solid} +] +\begin{loglogaxis}[ + tuftelike, + height=0.5\textwidth, + width=0.65\textwidth, + legend cell align=left, + xlabel={$\delta t_A = \delta t_B = \Delta t / 5$}, + x label style={at={(axis description cs:0.5,-0.2)},anchor=north}, + ylabel={$e_A$}, + y label style={at={(axis description cs:-0.2,0.5)},anchor=south}, + align=center, + legend style={at={(1.05,0.5)},anchor=west, draw=none, align=left}, + xmin=0.00625, + ymax=0.1, + ymin=1e-13, +% ymin=0.001, + xtick = {0.2, 0.1, 0.05, 0.025, 0.0125, 0.00625}, + xticklabels = {$\frac{1}{5}$, $\frac{1}{10}$, $\frac{1}{20}$, $\frac{1}{40}$, $\frac{1}{80}$, $\frac{1}{160}$}, +] + \addplot[dashed, color=red] table[x=time step size Monolithic, y=error Monolithic, col sep=comma]{data/IE_mono.csv}; + \addlegendentry{{IE}, mono} + + \addplot[mark=pentagon, color=red] table[x=time step size Dirichlet, y=error Dirichlet, col sep=comma]{data/IE_3.csv}; + \addlegendentry{{IE}, $p=3$} + + \addplot[dashed, color=pblue] table[x=time step size Monolithic, y=error Monolithic, col sep=comma]{data/GL2_mono.csv}; + \addlegendentry{{GL(2)}, mono} + + \addplot[mark=o, dotted, color=pblue] table[x=time step size Dirichlet, y=error Dirichlet, col sep=comma]{data/GL2_2.csv}; + \addlegendentry{{GL(2)}, $p=2$} + + \addplot[mark=o, color=pblue] table[x=time step size Dirichlet, y=error Dirichlet, col sep=comma]{data/GL2_3.csv}; + \addlegendentry{{GL(2)}, $p=3$} + + \addplot[mark=*,color=pblue] table[x=time step size Dirichlet , y=error Dirichlet, col sep=comma]{data/GL2_5.csv}; + \addlegendentry{{GL(2)}, $p=5$} + + \addplot[dashed, color=gray] table[x=time step size Monolithic, y=error Monolithic, col sep=comma]{data/GL3_mono.csv}; + \addlegendentry{{GL(3)}, mono} + + \addplot[mark=triangle, color=gray] table[x=time step size Dirichlet, y=error Dirichlet, col sep=comma]{data/GL3_3.csv}; + \addlegendentry{{GL(3)}, $p=3$} + + \addplot[mark=triangle*, color=gray] table[x=time step size Dirichlet , y=error Dirichlet, col sep=comma]{data/GL3_5.csv}; + \addlegendentry{{GL(3)}, $p=5$} + + \draw[] ([yshift=+0.2em]axis cs:0.05,0.012) -- node[above]{$\mathcal{O}(\delta t)$} ([yshift=+0.2em]axis cs:0.00625,0.0015); + \draw[] ([yshift=+0.4em]axis cs:0.05,1.2224e-06) -- node[above]{$\mathcal{O}(\delta t^2)$} ([yshift=+0.4em]axis cs:0.00625,1.91e-8); + \draw[] ([yshift=+0.3em]axis cs:0.1,6.461244243297452e-07) -- node[above,pos=0.8,xshift=-.1cm]{$\mathcal{O}(\delta t^3)$} ([yshift=+0.3em]axis cs:0.00625,1.577452207836292e-10); + \draw[] ([yshift=-0.5em]axis cs:0.1,2.3046058578483483e-07) -- node[below,xshift=+.25cm]{$\mathcal{O}(\delta t^4)$} ([yshift=-0.5em]axis cs:0.00625,3.5165494657109807e-12); + \draw[] ([yshift=-0.4em]axis cs:0.2,1.0241990258728702e-08) -- node[below,xshift=+.35cm]{$\mathcal{O}(\delta t^5)$} ([yshift=-0.4em]axis cs:0.025,3.1256073787624213e-13); + + \end{loglogaxis} + \end{tikzpicture} diff --git a/plotting/partitioned-heat-conduction/Fig13extra/Makefile b/plotting/partitioned-heat-conduction/Fig13extra/Makefile new file mode 100644 index 00000000..300dd2d2 --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13extra/Makefile @@ -0,0 +1,12 @@ +main: main.tex + latexmk -interaction=nonstopmode -pdf -bibtex -shell-escape $^ + +name=main +auxiliary_files= $(name).log $(name).out $(name).aux $(name).bbl $(name).blg $(name).fdb_latexmk $(name).fls $(name).idx $(name).ilg $(name).ind $(name).lof $(name).lol $(name).lot $(name).run.xml $(name).toc $(name)-blx.bib $(name).loa + +clean_nopdf: + rm -rf $(auxiliary_files) + +clean: + rm -rf $(auxiliary_files) $(name).pdf + diff --git a/plotting/partitioned-heat-conduction/Fig13extra/data/LIIIC3_2.csv b/plotting/partitioned-heat-conduction/Fig13extra/data/LIIIC3_2.csv new file mode 100644 index 00000000..877f954f --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13extra/data/LIIIC3_2.csv @@ -0,0 +1,14 @@ +# participants version:{'Dirichlet': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Neumann': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Dirichlet': , 'Neumann': } +# run cmd:python3 doConvergenceStudy.py precice-config-template.xml --silent --executor Github --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 +# args:Namespace(template_path='precice-config-template.xml', silent=True, executor='Github', max_time=1.0, base_time_window_size=1.0, time_window_refinements=6, base_time_step_refinement=[5, 5], time_step_refinements=1, time_step_refinement_factor=[2, 2], experiment='sincos', time_stepping_scheme=['LobattoIIIC3', 'LobattoIIIC3'], waveform_degree=2, exchange_substeps=True, out_filename='results/Fig13extra/data/LIIIC3_2.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.03125, 'max_time': 1.0, 'waveform_degree': 2, 'substeps': True} +time window size,time step size Dirichlet,time step size Neumann,substeps Dirichlet,avg(iterations / window),max(iterations / window),error Dirichlet,substeps Neumann,error Neumann +1.0,0.2,0.2,5,20.0,20,2.6503124034032543e-05,5,2.16762965037276e-05 +0.5,0.1,0.1,5,20.5,22,6.616161935858534e-06,5,6.0223744253648425e-06 +0.25,0.05,0.05,5,22.25,24,1.7506360620267076e-06,5,1.5110317796544812e-06 +0.125,0.025,0.025,5,21.375,23,4.435795575355814e-07,5,3.758136205006619e-07 +0.0625,0.0125,0.0125,5,21.0,25,1.1162667296028925e-07,5,9.400241077178193e-08 +0.03125,0.00625,0.00625,5,19.4375,25,2.7965615603932043e-08,5,2.3493575671760058e-08 diff --git a/plotting/partitioned-heat-conduction/Fig13extra/data/LIIIC3_3.csv b/plotting/partitioned-heat-conduction/Fig13extra/data/LIIIC3_3.csv new file mode 100644 index 00000000..c84b0fd4 --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13extra/data/LIIIC3_3.csv @@ -0,0 +1,14 @@ +# participants version:{'Dirichlet': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Neumann': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Dirichlet': , 'Neumann': } +# run cmd:python3 doConvergenceStudy.py precice-config-template.xml --silent --executor Github --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 +# args:Namespace(template_path='precice-config-template.xml', silent=True, executor='Github', max_time=1.0, base_time_window_size=1.0, time_window_refinements=6, base_time_step_refinement=[5, 5], time_step_refinements=1, time_step_refinement_factor=[2, 2], experiment='sincos', time_stepping_scheme=['LobattoIIIC3', 'LobattoIIIC3'], waveform_degree=3, exchange_substeps=True, out_filename='results/Fig13extra/data/LIIIC3_3.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.03125, 'max_time': 1.0, 'waveform_degree': 3, 'substeps': True} +time window size,time step size Dirichlet,time step size Neumann,substeps Dirichlet,avg(iterations / window),max(iterations / window),error Dirichlet,substeps Neumann,error Neumann +1.0,0.2,0.2,5,18.0,18,2.981600118978861e-06,5,8.163472328314331e-07 +0.5,0.1,0.1,5,19.5,21,3.752574014962723e-07,5,9.617954383648265e-08 +0.25,0.05,0.05,5,19.75,21,3.5597453278116624e-08,5,1.2734453680993648e-08 +0.125,0.025,0.025,5,18.25,21,2.8518998513104754e-09,5,1.1131893926072486e-09 +0.0625,0.0125,0.0125,5,19.1875,24,2.39188487394981e-10,5,8.984640456121587e-11 +0.03125,0.00625,0.00625,5,15.15625,17,2.0157053538939518e-11,5,7.03374230772496e-12 diff --git a/plotting/partitioned-heat-conduction/Fig13extra/data/LIIIC3_5.csv b/plotting/partitioned-heat-conduction/Fig13extra/data/LIIIC3_5.csv new file mode 100644 index 00000000..5136732a --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13extra/data/LIIIC3_5.csv @@ -0,0 +1,14 @@ +# participants version:{'Dirichlet': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Neumann': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Dirichlet': , 'Neumann': } +# run cmd:python3 doConvergenceStudy.py precice-config-template.xml --silent --executor Github --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 +# args:Namespace(template_path='precice-config-template.xml', silent=True, executor='Github', max_time=1.0, base_time_window_size=1.0, time_window_refinements=6, base_time_step_refinement=[5, 5], time_step_refinements=1, time_step_refinement_factor=[2, 2], experiment='sincos', time_stepping_scheme=['LobattoIIIC3', 'LobattoIIIC3'], waveform_degree=5, exchange_substeps=True, out_filename='results/Fig13extra/data/LIIIC3_5.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.03125, 'max_time': 1.0, 'waveform_degree': 5, 'substeps': True} +time window size,time step size Dirichlet,time step size Neumann,substeps Dirichlet,avg(iterations / window),max(iterations / window),error Dirichlet,substeps Neumann,error Neumann +1.0,0.2,0.2,5,18.0,18,5.23115300096288e-07,5,3.750056928196948e-07 +0.5,0.1,0.1,5,18.0,18,1.3355284086313513e-07,5,8.542054873444491e-08 +0.25,0.05,0.05,5,18.25,20,2.1732006020650426e-08,5,1.1714892326759248e-08 +0.125,0.025,0.025,5,20.5,23,2.0190416926975373e-09,5,9.825698033175472e-10 +0.0625,0.0125,0.0125,5,18.1875,24,1.7369189993630312e-10,5,7.791703698251051e-11 +0.03125,0.00625,0.00625,5,16.8125,24,1.4948683497967582e-11,5,6.510204998279854e-12 diff --git a/plotting/partitioned-heat-conduction/Fig13extra/data/LIIIC3_mono.csv b/plotting/partitioned-heat-conduction/Fig13extra/data/LIIIC3_mono.csv new file mode 100644 index 00000000..09d9b8be --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13extra/data/LIIIC3_mono.csv @@ -0,0 +1,11 @@ +# participants version:{'Monolithic': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Monolithic': } +# run cmd:python3 doConvergenceStudyMonolithic.py --silent --executor Github --experiment sincos -s 6 -dt 0.2 -tss LobattoIIIC3 -o results/Fig13extra/data/LIIIC3_mono.csv +# args:Namespace(silent=True, executor='Github', max_time=1.0, base_time_step_size=0.2, time_step_refinements=6, time_step_refinement_factor=[2], experiment='sincos', time_stepping_scheme=['LobattoIIIC3'], out_filename='results/Fig13extra/data/LIIIC3_mono.csv') +time step size Monolithic,error Monolithic +0.2,1.5716179592100165e-06 +0.1,1.340447393427532e-07 +0.05,1.0505622626825962e-08 +0.025,7.526827558027851e-10 +0.0125,5.175953348067664e-11 +0.00625,3.5165494657109807e-12 diff --git a/plotting/partitioned-heat-conduction/Fig13extra/main.tex b/plotting/partitioned-heat-conduction/Fig13extra/main.tex new file mode 100644 index 00000000..5dcac606 --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13extra/main.tex @@ -0,0 +1,59 @@ +\documentclass{standalone} + +\usepackage{amsmath} +\usepackage{pgfplots} +\pgfplotsset{compat=1.18} +\usepackage{tikz} +\usetikzlibrary{calc, intersections, positioning, hobby, fit, patterns} + +\pgfdeclarelayer{bg} % declare background layer +\pgfdeclarelayer{fg} % declare foreground layer +\pgfsetlayers{bg,main,fg} % set the order of the layers (main is the standard layer) + +%%% see https://tex.stackexchange.com/a/20426 and https://tex.stackexchange.com/a/419123 +\makeatletter +\pgfkeys{% + /tikz/on layer/.code={ + \pgfonlayer{#1}\begingroup + \aftergroup\endpgfonlayer + \aftergroup\endgroup + }, + /tikz/node on layer/.code={ + \gdef\node@@on@layer{% + \setbox\tikz@tempbox=\hbox\bgroup\pgfonlayer{#1}\unhbox\tikz@tempbox\endpgfonlayer\egroup} + \aftergroup\node@on@layer + }, + /tikz/end node on layer/.code={ + \endpgfonlayer\endgroup\endgroup + } +} +\def\node@on@layer{\aftergroup\node@@on@layer} +\makeatother +%%% + +%%% Define tuftelike pgfplots style +% see https://tex.stackexchange.com/questions/155194/tufte-like-axis-with-pgfplots + +\pgfkeys{/pgfplots/tuftelike/.style={ + semithick, + tick style={major tick length=4pt,semithick,black}, + separate axis lines, + axis x line*=bottom, + axis x line shift=10pt, + axis y line*=left, + axis y line shift=10pt, + enlarge x limits=false, + enlarge y limits=false + }} + +%%% END + +\definecolor{pblue}{RGB}{0,102,189} % precice blue +\definecolor{porange}{RGB}{243,98,33} % precice orange + +\tikzstyle{sample}=[circle,draw,inner sep=1.5pt,thick,fill=white] +\tikzstyle{stample}=[circle,inner sep=1.5pt,fill] + +\begin{document} +\input{tikzcode.tex} +\end{document} diff --git a/plotting/partitioned-heat-conduction/Fig13extra/tikzcode.tex b/plotting/partitioned-heat-conduction/Fig13extra/tikzcode.tex new file mode 100644 index 00000000..66ca5a80 --- /dev/null +++ b/plotting/partitioned-heat-conduction/Fig13extra/tikzcode.tex @@ -0,0 +1,40 @@ +\begin{tikzpicture}[ + mark options={solid} +] +\begin{loglogaxis}[ + tuftelike, + height=0.5\textwidth, + width=0.65\textwidth, + legend cell align=left, + xlabel={$\delta t_A = \delta t_B = \Delta t / 5$}, + x label style={at={(axis description cs:0.5,-0.2)},anchor=north}, + ylabel={$e_A$}, + y label style={at={(axis description cs:-0.2,0.5)},anchor=south}, + align=center, + legend style={at={(1.05,0.5)},anchor=west, draw=none, align=left}, + xmin=0.00625, + ymax=0.1, + ymin=1e-13, +% ymin=0.001, + xtick = {0.2, 0.1, 0.05, 0.025, 0.0125, 0.00625}, + xticklabels = {$\frac{1}{5}$, $\frac{1}{10}$, $\frac{1}{20}$, $\frac{1}{40}$, $\frac{1}{80}$, $\frac{1}{160}$}, +] + \addplot[dashed, color=olive] table[x=time step size Monolithic, y=error Monolithic, col sep=comma]{data/LIIIC3_mono.csv}; + \addlegendentry{{LIIIC(3)}, mono} + + \addplot[mark=square, dotted, color=olive] table[x=time step size Dirichlet, y=error Dirichlet, col sep=comma]{data/LIIIC3_2.csv}; + \addlegendentry{{LIIIC(3)}, $p=2$} + + \addplot[mark=square, color=olive] table[x=time step size Dirichlet, y=error Dirichlet, col sep=comma]{data/LIIIC3_3.csv}; + \addlegendentry{{LIIIC(3)}, $p=3$} + + \addplot[mark=square*, color=olive] table[x=time step size Dirichlet, y=error Dirichlet, col sep=comma]{data/LIIIC3_5.csv}; + \addlegendentry{{LIIIC(3)}, $p=5$} + + \draw[] ([yshift=+0.4em]axis cs:0.05,1.2224e-06) -- node[above]{$\mathcal{O}(\delta t^2)$} ([yshift=+0.4em]axis cs:0.00625,1.91e-8); + \draw[] ([yshift=+0.3em]axis cs:0.1,6.461244243297452e-07) -- node[above,pos=0.8,xshift=-.1cm]{$\mathcal{O}(\delta t^3)$} ([yshift=+0.3em]axis cs:0.00625,1.577452207836292e-10); + \draw[] ([yshift=-0.5em]axis cs:0.1,2.3046058578483483e-07) -- node[below,xshift=+.25cm]{$\mathcal{O}(\delta t^4)$} ([yshift=-0.5em]axis cs:0.00625,3.5165494657109807e-12); + \draw[] ([yshift=-0.4em]axis cs:0.2,1.0241990258728702e-08) -- node[below,xshift=+.35cm]{$\mathcal{O}(\delta t^5)$} ([yshift=-0.4em]axis cs:0.025,3.1256073787624213e-13); + + \end{loglogaxis} + \end{tikzpicture} diff --git a/plotting/partitioned-heat-conduction/Makefile b/plotting/partitioned-heat-conduction/Makefile new file mode 100644 index 00000000..0ea7d7b2 --- /dev/null +++ b/plotting/partitioned-heat-conduction/Makefile @@ -0,0 +1,7 @@ +DIRS := Fig13 Fig13extra + +.PHONY: all $(MAKECMDGOALS) $(DIRS) +$(MAKECMDGOALS) all: $(DIRS) + +$(DIRS): + $(MAKE) -C $@ $(MAKECMDGOALS) diff --git a/plotting/perpendicular-flap/Fig15/Makefile b/plotting/perpendicular-flap/Fig15/Makefile new file mode 100644 index 00000000..45004d8b --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/Makefile @@ -0,0 +1,13 @@ +main: main.tex + python3 insert-table-data-in-template.py data/result.csv + latexmk -interaction=nonstopmode -pdf -bibtex -shell-escape $^ + +name=main +auxiliary_files= $(name).log $(name).out $(name).aux $(name).bbl $(name).blg $(name).fdb_latexmk $(name).fls $(name).idx $(name).ilg $(name).ind $(name).lof $(name).lol $(name).lot $(name).run.xml $(name).toc $(name)-blx.bib $(name).loa + +clean_nopdf: + rm -rf $(auxiliary_files) + +clean: + rm -rf $(auxiliary_files) $(name).pdf + diff --git a/plotting/perpendicular-flap/Fig15/data/result.csv b/plotting/perpendicular-flap/Fig15/data/result.csv new file mode 100644 index 00000000..7d93d03a --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result.csv @@ -0,0 +1,25 @@ +# participants version:{'Fluid': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Solid': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Fluid': , 'Solid': } +# run cmd:python3 doConvergenceStudy.py precice-config-template.xml --silent --executor Github configs/Fig15.csv -o results/Fig15/data/result.csv +# args:Namespace(template_path='precice-config-template.xml', silent=True, executor='Github', time_config='configs/Fig15.csv', out_filename='results/Fig15/data/result.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 5.0, 'max_time': 10, 'waveform_degree': 3, 'reduced': True, 'substeps': True, 'acceleration': 'qn'} +time window size,time step size Fluid,time step size Solid,substeps,waveform degree,reduced,acceleration,substeps Fluid,avg(iterations / window),max(iterations / window),no. QN,substeps Solid +0.01,0.01,0.01,False,1,True,qn,1,2.0,4,2000,1 +0.03,0.01,0.01,False,1,True,qn,3,2.0089820359281436,6,671,3 +0.03,0.01,0.01,True,3,True,qn,3,2.2095808383233533,6,738,3 +0.05,0.01,0.01,False,1,True,qn,5,2.035,5,407,5 +0.05,0.01,0.01,True,3,True,qn,5,2.27,8,454,5 +0.1,0.01,0.01,False,1,True,qn,10,2.34,7,234,10 +0.1,0.01,0.01,True,3,True,qn,10,2.39,9,239,10 +0.25,0.01,0.01,False,1,True,qn,25,3.35,8,134,25 +0.25,0.01,0.01,True,3,True,qn,25,3.025,8,121,25 +0.5,0.01,0.01,False,1,True,qn,50,4.4,8,88,50 +0.5,0.01,0.01,True,3,True,qn,50,4.3,9,86,50 +1.0,0.01,0.01,False,1,True,qn,100,11.5,28,115,100 +1.0,0.01,0.01,True,3,True,qn,100,6.1,11,61,100 +2.5,0.01,0.01,False,1,True,qn,250,15.75,33,63,250 +2.5,0.01,0.01,True,3,True,qn,250,9.75,14,39,250 +5.0,0.01,0.01,False,1,True,qn,500,6.5,8,13,500 +5.0,0.01,0.01,True,3,True,qn,500,19.0,19,38,500 diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S100_rQNWI b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S100_rQNWI new file mode 100644 index 00000000..88a87b96 --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S100_rQNWI @@ -0,0 +1,12 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.44297287e-01 3.36573827e-06 1.24511200e+00 2.47195636e+00 + 2.00000000e+00 0.00000000e+00 1.00000000e+00 1.17562685e-01 1.87226766e-04 8.51468872e-01 1.24725649e+00 + 3.00000000e+00 0.00000000e+00 1.00000000e+00 3.28399664e-02 1.03996989e-04 7.97590064e-01 1.53977722e+00 + 4.00000000e+00 0.00000000e+00 1.00000000e+00 1.56643212e-01 -4.47437108e-05 1.13018510e+00 2.05330095e+00 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 6.84042368e-02 7.91015034e-05 8.03613575e-01 1.14189441e+00 + 6.00000000e+00 0.00000000e+00 1.00000000e+00 8.00267404e-02 1.60829749e-04 8.50969324e-01 1.81415255e+00 + 7.00000000e+00 0.00000000e+00 1.00000000e+00 1.38220538e-01 4.11997890e-05 1.00118660e+00 1.76284810e+00 + 8.00000000e+00 0.00000000e+00 1.00000000e+00 5.35786936e-02 8.84889876e-06 7.99895646e-01 1.33775864e+00 + 9.00000000e+00 0.00000000e+00 1.00000000e+00 1.11810838e-01 1.05659000e-04 9.40524360e-01 1.90066827e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 1.08853047e-01 1.17235176e-04 8.86692195e-01 1.51761835e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S10_rQNWI b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S10_rQNWI new file mode 100644 index 00000000..d23ca17d --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S10_rQNWI @@ -0,0 +1,102 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 1.00000000e-01 0.00000000e+00 1.00000000e+00 1.70740999e-02 3.91549668e-05 7.25475590e-01 2.16976093e+00 + 2.00000000e-01 0.00000000e+00 1.00000000e+00 5.94949626e-02 9.83549042e-05 8.23017738e-01 1.92404824e+00 + 3.00000000e-01 0.00000000e+00 1.00000000e+00 9.61770478e-02 1.64880545e-04 8.80322110e-01 1.79233364e+00 + 4.00000000e-01 0.00000000e+00 1.00000000e+00 1.35722285e-01 1.94688221e-04 9.67672316e-01 1.71807324e+00 + 5.00000000e-01 0.00000000e+00 1.00000000e+00 1.74732382e-01 2.03043303e-04 1.14512228e+00 1.68802622e+00 + 6.00000000e-01 0.00000000e+00 1.00000000e+00 1.89412092e-01 1.95941044e-04 1.13693485e+00 1.65155911e+00 + 7.00000000e-01 0.00000000e+00 1.00000000e+00 1.99706883e-01 1.50849261e-04 1.20117300e+00 1.65481910e+00 + 8.00000000e-01 0.00000000e+00 1.00000000e+00 1.92654315e-01 8.32025675e-05 1.21208033e+00 1.66122321e+00 + 9.00000000e-01 0.00000000e+00 1.00000000e+00 1.63741907e-01 2.27945962e-05 1.07928839e+00 1.67014331e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.36723272e-01 -2.95610218e-05 1.03722445e+00 1.69438888e+00 + 1.10000000e+00 0.00000000e+00 1.00000000e+00 9.62336424e-02 -6.26679971e-05 9.26873195e-01 1.71648784e+00 + 1.20000000e+00 0.00000000e+00 1.00000000e+00 5.58174653e-02 -6.59181918e-05 7.97659252e-01 1.72546279e+00 + 1.30000000e+00 0.00000000e+00 1.00000000e+00 3.07976459e-02 -3.96642078e-05 7.61229738e-01 1.73262127e+00 + 1.40000000e+00 0.00000000e+00 1.00000000e+00 5.53322160e-03 1.65456102e-05 6.97737201e-01 1.72020190e+00 + 1.50000000e+00 0.00000000e+00 1.00000000e+00 -5.08738384e-04 8.05058363e-05 6.52436159e-01 1.69903626e+00 + 1.60000000e+00 0.00000000e+00 1.00000000e+00 1.12845433e-02 1.44863540e-04 6.87060420e-01 1.68281168e+00 + 1.70000000e+00 0.00000000e+00 1.00000000e+00 2.56495824e-02 2.01886082e-04 6.79442416e-01 1.64915528e+00 + 1.80000000e+00 0.00000000e+00 1.00000000e+00 5.94248866e-02 2.25516577e-04 7.47761447e-01 1.63792903e+00 + 1.90000000e+00 0.00000000e+00 1.00000000e+00 9.50807342e-02 2.19362359e-04 8.57210216e-01 1.62577804e+00 + 2.00000000e+00 0.00000000e+00 1.00000000e+00 1.24136246e-01 1.85898439e-04 8.97380530e-01 1.61039063e+00 + 2.10000000e+00 0.00000000e+00 1.00000000e+00 1.58731807e-01 1.23381949e-04 1.05040824e+00 1.62392458e+00 + 2.20000000e+00 0.00000000e+00 1.00000000e+00 1.74885156e-01 5.06306441e-05 1.09984292e+00 1.62093446e+00 + 2.30000000e+00 0.00000000e+00 1.00000000e+00 1.79318327e-01 -1.85662912e-05 1.09576900e+00 1.62679884e+00 + 2.40000000e+00 0.00000000e+00 1.00000000e+00 1.78604999e-01 -7.28107725e-05 1.15319475e+00 1.64806018e+00 + 2.50000000e+00 0.00000000e+00 1.00000000e+00 1.54944063e-01 -9.54684880e-05 1.05165898e+00 1.65989128e+00 + 2.60000000e+00 0.00000000e+00 1.00000000e+00 1.29520693e-01 -8.50715132e-05 9.81256265e-01 1.68123929e+00 + 2.70000000e+00 0.00000000e+00 1.00000000e+00 1.01035688e-01 -4.36644578e-05 9.34697960e-01 1.70465783e+00 + 2.80000000e+00 0.00000000e+00 1.00000000e+00 6.38282201e-02 2.52100060e-05 8.12337203e-01 1.71456832e+00 + 2.90000000e+00 0.00000000e+00 1.00000000e+00 4.18888810e-02 1.00633377e-04 7.66699290e-01 1.71956488e+00 + 3.00000000e+00 0.00000000e+00 1.00000000e+00 2.38946068e-02 1.72389213e-04 7.36737709e-01 1.71434248e+00 + 3.10000000e+00 0.00000000e+00 1.00000000e+00 1.33924768e-02 2.26345947e-04 6.81965440e-01 1.69181710e+00 + 3.20000000e+00 0.00000000e+00 1.00000000e+00 2.44699157e-02 2.45738715e-04 7.08217544e-01 1.67872301e+00 + 3.30000000e+00 0.00000000e+00 1.00000000e+00 3.73771522e-02 2.35637010e-04 7.24396344e-01 1.65188356e+00 + 3.40000000e+00 0.00000000e+00 1.00000000e+00 6.07586000e-02 1.91325744e-04 7.47764119e-01 1.63285696e+00 + 3.50000000e+00 0.00000000e+00 1.00000000e+00 9.42981521e-02 1.20741239e-04 8.63287135e-01 1.62978109e+00 + 3.60000000e+00 0.00000000e+00 1.00000000e+00 1.17721153e-01 4.52672378e-05 8.98805999e-01 1.61376656e+00 + 3.70000000e+00 0.00000000e+00 1.00000000e+00 1.44297190e-01 -2.87262794e-05 9.83582719e-01 1.61984480e+00 + 3.80000000e+00 0.00000000e+00 1.00000000e+00 1.63039653e-01 -8.25384527e-05 1.07777755e+00 1.62798689e+00 + 3.90000000e+00 0.00000000e+00 1.00000000e+00 1.64055629e-01 -1.02477303e-04 1.04393975e+00 1.62822594e+00 + 4.00000000e+00 0.00000000e+00 1.00000000e+00 1.64216362e-01 -9.04054283e-05 1.08206706e+00 1.64804776e+00 + 4.10000000e+00 0.00000000e+00 1.00000000e+00 1.48596029e-01 -4.57406994e-05 1.04494961e+00 1.66314778e+00 + 4.20000000e+00 0.00000000e+00 1.00000000e+00 1.23305833e-01 2.40639277e-05 9.46209462e-01 1.67752585e+00 + 4.30000000e+00 0.00000000e+00 1.00000000e+00 1.02576274e-01 9.90512019e-05 9.26267805e-01 1.69834131e+00 + 4.40000000e+00 0.00000000e+00 1.00000000e+00 7.24186196e-02 1.71911480e-04 8.38687252e-01 1.70745794e+00 + 4.50000000e+00 0.00000000e+00 1.00000000e+00 5.00314168e-02 2.23005975e-04 7.71760376e-01 1.70753896e+00 + 4.60000000e+00 0.00000000e+00 1.00000000e+00 3.87201485e-02 2.41943919e-04 7.66215992e-01 1.70591301e+00 + 4.70000000e+00 0.00000000e+00 1.00000000e+00 2.74781096e-02 2.31146751e-04 7.18505669e-01 1.68594901e+00 + 4.80000000e+00 0.00000000e+00 1.00000000e+00 3.42603524e-02 1.85560748e-04 7.20692831e-01 1.67129586e+00 + 4.90000000e+00 0.00000000e+00 1.00000000e+00 4.83521847e-02 1.19544189e-04 7.61125614e-01 1.65536243e+00 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 6.37157507e-02 4.79784326e-05 7.62181217e-01 1.63313631e+00 + 5.10000000e+00 0.00000000e+00 1.00000000e+00 9.21367866e-02 -2.06106567e-05 8.49723036e-01 1.63241383e+00 + 5.20000000e+00 0.00000000e+00 1.00000000e+00 1.14172166e-01 -6.71902560e-05 9.10039328e-01 1.62377921e+00 + 5.30000000e+00 0.00000000e+00 1.00000000e+00 1.32393830e-01 -8.57306252e-05 9.37669662e-01 1.62127636e+00 + 5.40000000e+00 0.00000000e+00 1.00000000e+00 1.51373214e-01 -7.57321538e-05 1.03721322e+00 1.63451452e+00 + 5.50000000e+00 0.00000000e+00 1.00000000e+00 1.53063010e-01 -3.32000873e-05 1.02401180e+00 1.63545345e+00 + 5.60000000e+00 0.00000000e+00 1.00000000e+00 1.50621743e-01 2.75740853e-05 1.01634110e+00 1.64771564e+00 + 5.70000000e+00 0.00000000e+00 1.00000000e+00 1.42335454e-01 9.37162296e-05 1.02971961e+00 1.66526020e+00 + 5.80000000e+00 0.00000000e+00 1.00000000e+00 1.19555854e-01 1.57006674e-04 9.37083944e-01 1.67471703e+00 + 5.90000000e+00 0.00000000e+00 1.00000000e+00 1.01498520e-01 1.99226780e-04 9.03916462e-01 1.68951674e+00 + 6.00000000e+00 0.00000000e+00 1.00000000e+00 8.01099112e-02 2.15501302e-04 8.64348761e-01 1.69933749e+00 + 6.10000000e+00 0.00000000e+00 1.00000000e+00 5.74807021e-02 2.04494801e-04 7.85263123e-01 1.69643652e+00 + 6.20000000e+00 0.00000000e+00 1.00000000e+00 4.90723771e-02 1.63893213e-04 7.79938858e-01 1.69565493e+00 + 6.30000000e+00 0.00000000e+00 1.00000000e+00 4.09570662e-02 1.09716575e-04 7.56210670e-01 1.68258356e+00 + 6.40000000e+00 0.00000000e+00 1.00000000e+00 4.21410010e-02 4.93209251e-05 7.33259823e-01 1.66588023e+00 + 6.50000000e+00 0.00000000e+00 1.00000000e+00 5.65185751e-02 -6.12227100e-06 7.81326281e-01 1.65848238e+00 + 6.60000000e+00 0.00000000e+00 1.00000000e+00 6.82961713e-02 -4.04960856e-05 7.86937391e-01 1.63949954e+00 + 6.70000000e+00 0.00000000e+00 1.00000000e+00 8.91808451e-02 -5.33629234e-05 8.30868302e-01 1.63451985e+00 + 6.80000000e+00 0.00000000e+00 1.00000000e+00 1.11277449e-01 -4.06365374e-05 9.13105026e-01 1.63418041e+00 + 6.90000000e+00 0.00000000e+00 1.00000000e+00 1.24076163e-01 -3.15822805e-06 9.19214368e-01 1.62681546e+00 + 7.00000000e+00 0.00000000e+00 1.00000000e+00 1.39896443e-01 4.47072178e-05 9.86225425e-01 1.63687699e+00 + 7.10000000e+00 0.00000000e+00 1.00000000e+00 1.44895903e-01 9.76350477e-05 1.01402958e+00 1.64205078e+00 + 7.20000000e+00 0.00000000e+00 1.00000000e+00 1.39828158e-01 1.44346125e-04 9.75520371e-01 1.64690554e+00 + 7.30000000e+00 0.00000000e+00 1.00000000e+00 1.35332578e-01 1.71295578e-04 9.98380273e-01 1.66318264e+00 + 7.40000000e+00 0.00000000e+00 1.00000000e+00 1.18029064e-01 1.79324005e-04 9.43740173e-01 1.67185989e+00 + 7.50000000e+00 0.00000000e+00 1.00000000e+00 9.98573496e-02 1.63592229e-04 8.84938859e-01 1.68049032e+00 + 7.60000000e+00 0.00000000e+00 1.00000000e+00 8.54171996e-02 1.27537434e-04 8.76087013e-01 1.69144491e+00 + 7.70000000e+00 0.00000000e+00 1.00000000e+00 6.53202229e-02 8.46076299e-05 8.08627793e-01 1.68949260e+00 + 7.80000000e+00 0.00000000e+00 1.00000000e+00 5.60418640e-02 3.82286532e-05 7.83533805e-01 1.68711213e+00 + 7.90000000e+00 0.00000000e+00 1.00000000e+00 5.23077376e-02 1.55009497e-06 7.86797092e-01 1.68179526e+00 + 8.00000000e+00 0.00000000e+00 1.00000000e+00 4.98679591e-02 -1.66355602e-05 7.53517407e-01 1.66549284e+00 + 8.10000000e+00 0.00000000e+00 1.00000000e+00 6.15768647e-02 -1.81941299e-05 7.85515135e-01 1.65979909e+00 + 8.20000000e+00 0.00000000e+00 1.00000000e+00 7.33921687e-02 2.32344414e-06 8.12980494e-01 1.64783357e+00 + 8.30000000e+00 0.00000000e+00 1.00000000e+00 8.70505728e-02 3.70967201e-05 8.22034762e-01 1.63701375e+00 + 8.40000000e+00 0.00000000e+00 1.00000000e+00 1.07643837e-01 7.56586768e-05 9.00658669e-01 1.63981853e+00 + 8.50000000e+00 0.00000000e+00 1.00000000e+00 1.19010800e-01 1.15365601e-04 9.18921023e-01 1.63310029e+00 + 8.60000000e+00 0.00000000e+00 1.00000000e+00 1.29699988e-01 1.43141722e-04 9.42471993e-01 1.63605412e+00 + 8.70000000e+00 0.00000000e+00 1.00000000e+00 1.37634609e-01 1.53390120e-04 9.96462235e-01 1.64513857e+00 + 8.80000000e+00 0.00000000e+00 1.00000000e+00 1.32459147e-01 1.48515140e-04 9.59785828e-01 1.64681483e+00 + 8.90000000e+00 0.00000000e+00 1.00000000e+00 1.27972681e-01 1.24117660e-04 9.60468780e-01 1.65882394e+00 + 9.00000000e+00 0.00000000e+00 1.00000000e+00 1.17111999e-01 8.96524121e-05 9.49466999e-01 1.66987905e+00 + 9.10000000e+00 0.00000000e+00 1.00000000e+00 9.92684343e-02 5.34626592e-05 8.80457683e-01 1.67501116e+00 + 9.20000000e+00 0.00000000e+00 1.00000000e+00 8.80384567e-02 1.87753084e-05 8.71876198e-01 1.68505934e+00 + 9.30000000e+00 0.00000000e+00 1.00000000e+00 7.29980796e-02 -1.73930377e-06 8.35094225e-01 1.68667270e+00 + 9.40000000e+00 0.00000000e+00 1.00000000e+00 6.16567421e-02 -5.60939784e-06 7.89557927e-01 1.68201304e+00 + 9.50000000e+00 0.00000000e+00 1.00000000e+00 6.05555992e-02 5.65183420e-06 8.03220669e-01 1.68078531e+00 + 9.60000000e+00 0.00000000e+00 1.00000000e+00 5.79556818e-02 3.43716837e-05 7.80766062e-01 1.66769250e+00 + 9.70000000e+00 0.00000000e+00 1.00000000e+00 6.48743363e-02 6.89916546e-05 7.84860465e-01 1.65873807e+00 + 9.80000000e+00 0.00000000e+00 1.00000000e+00 7.75426757e-02 1.04044490e-04 8.29853701e-01 1.65300777e+00 + 9.90000000e+00 0.00000000e+00 1.00000000e+00 8.68262160e-02 1.34573580e-04 8.27913637e-01 1.63979006e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 1.03326729e-01 1.48735511e-04 8.78479661e-01 1.64013385e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S250_rQNWI b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S250_rQNWI new file mode 100644 index 00000000..f01f7a63 --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S250_rQNWI @@ -0,0 +1,6 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 2.50000000e+00 0.00000000e+00 1.00000000e+00 1.53864474e-01 -5.35750132e-05 8.82795028e-01 1.59734955e+00 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 6.86609337e-02 6.56441745e-05 7.96773625e-01 1.10599649e+00 + 7.50000000e+00 0.00000000e+00 1.00000000e+00 9.69687747e-02 1.44437453e-04 8.67921189e-01 1.84612096e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 1.06768596e-01 1.18287704e-04 8.84596998e-01 1.58838447e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S25_rQNWI b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S25_rQNWI new file mode 100644 index 00000000..8cfbb055 --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S25_rQNWI @@ -0,0 +1,42 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 2.50000000e-01 0.00000000e+00 1.00000000e+00 8.11043972e-02 4.77518630e-05 8.98206896e-01 1.96117027e+00 + 5.00000000e-01 0.00000000e+00 1.00000000e+00 1.73959936e-01 2.14821318e-04 1.19269969e+00 1.87135844e+00 + 7.50000000e-01 0.00000000e+00 1.00000000e+00 1.96533661e-01 -3.87283126e-05 1.22344804e+00 1.73513247e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.33280919e-01 -2.35842385e-05 1.02729207e+00 1.62876909e+00 + 1.25000000e+00 0.00000000e+00 1.00000000e+00 4.09474546e-02 2.27550781e-04 8.13915868e-01 1.59342073e+00 + 1.50000000e+00 0.00000000e+00 1.00000000e+00 3.22654967e-03 5.24248110e-05 6.82130173e-01 1.58448439e+00 + 1.75000000e+00 0.00000000e+00 1.00000000e+00 4.85963151e-02 -2.12502290e-05 7.08424090e-01 1.67065013e+00 + 2.00000000e+00 0.00000000e+00 1.00000000e+00 1.28586264e-01 2.00029574e-04 9.24080360e-01 1.76963711e+00 + 2.25000000e+00 0.00000000e+00 1.00000000e+00 1.73147207e-01 5.79950175e-05 1.07299316e+00 1.74922925e+00 + 2.50000000e+00 0.00000000e+00 1.00000000e+00 1.46354063e-01 -6.68259627e-05 1.02665128e+00 1.67004152e+00 + 2.75000000e+00 0.00000000e+00 1.00000000e+00 7.39966956e-02 1.74218860e-04 8.72149967e-01 1.63314150e+00 + 3.00000000e+00 0.00000000e+00 1.00000000e+00 2.49048008e-02 1.25719944e-04 7.54107248e-01 1.60298881e+00 + 3.25000000e+00 0.00000000e+00 1.00000000e+00 4.17886086e-02 -4.21496573e-05 7.49284178e-01 1.63162837e+00 + 3.50000000e+00 0.00000000e+00 1.00000000e+00 1.04258055e-01 1.40711045e-04 8.99001577e-01 1.71105929e+00 + 3.75000000e+00 0.00000000e+00 1.00000000e+00 1.57165413e-01 1.28840244e-04 1.06218186e+00 1.72743687e+00 + 4.00000000e+00 0.00000000e+00 1.00000000e+00 1.55528950e-01 -6.30076512e-05 1.06527736e+00 1.66732940e+00 + 4.25000000e+00 0.00000000e+00 1.00000000e+00 1.01601408e-01 1.00511056e-04 9.15795733e-01 1.62486261e+00 + 4.50000000e+00 0.00000000e+00 1.00000000e+00 4.62325400e-02 1.68255684e-04 7.73598205e-01 1.60285106e+00 + 4.75000000e+00 0.00000000e+00 1.00000000e+00 3.70133876e-02 -1.72781848e-05 7.22736730e-01 1.62165129e+00 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 7.64874370e-02 8.32507046e-05 7.83836465e-01 1.69232076e+00 + 5.25000000e+00 0.00000000e+00 1.00000000e+00 1.28294129e-01 1.68361167e-04 9.27842717e-01 1.73432832e+00 + 5.50000000e+00 0.00000000e+00 1.00000000e+00 1.47039702e-01 -2.17134532e-05 1.01701231e+00 1.70563049e+00 + 5.75000000e+00 0.00000000e+00 1.00000000e+00 1.17627029e-01 3.64387516e-05 9.55566471e-01 1.66031182e+00 + 6.00000000e+00 0.00000000e+00 1.00000000e+00 7.08731871e-02 1.76198769e-04 8.45461435e-01 1.62583373e+00 + 6.25000000e+00 0.00000000e+00 1.00000000e+00 4.96047113e-02 2.47869625e-05 7.89387801e-01 1.61445623e+00 + 6.50000000e+00 0.00000000e+00 1.00000000e+00 6.98543297e-02 2.74571273e-05 8.11837764e-01 1.65006594e+00 + 6.75000000e+00 0.00000000e+00 1.00000000e+00 1.12789465e-01 1.66831541e-04 9.12291046e-01 1.69246214e+00 + 7.00000000e+00 0.00000000e+00 1.00000000e+00 1.39607047e-01 3.39446505e-05 1.00199540e+00 1.69004329e+00 + 7.25000000e+00 0.00000000e+00 1.00000000e+00 1.26158548e-01 -7.32311902e-06 9.60065080e-01 1.65696278e+00 + 7.50000000e+00 0.00000000e+00 1.00000000e+00 8.69313668e-02 1.56954684e-04 8.52373535e-01 1.63074915e+00 + 7.75000000e+00 0.00000000e+00 1.00000000e+00 5.69690663e-02 7.89212350e-05 7.80129505e-01 1.62599498e+00 + 8.00000000e+00 0.00000000e+00 1.00000000e+00 5.99715372e-02 1.38163878e-06 7.66256878e-01 1.65402559e+00 + 8.25000000e+00 0.00000000e+00 1.00000000e+00 9.19995934e-02 1.44456192e-04 8.31435281e-01 1.69468477e+00 + 8.50000000e+00 0.00000000e+00 1.00000000e+00 1.23680096e-01 9.23547313e-05 9.40955781e-01 1.70803071e+00 + 8.75000000e+00 0.00000000e+00 1.00000000e+00 1.27097582e-01 -2.04367359e-05 9.69789324e-01 1.68304121e+00 + 9.00000000e+00 0.00000000e+00 1.00000000e+00 1.02904222e-01 1.13832403e-04 9.13648507e-01 1.64753585e+00 + 9.25000000e+00 0.00000000e+00 1.00000000e+00 7.46924007e-02 1.18958513e-04 8.50984536e-01 1.62614248e+00 + 9.50000000e+00 0.00000000e+00 1.00000000e+00 6.68293913e-02 -2.29930266e-06 8.16126723e-01 1.62957211e+00 + 9.75000000e+00 0.00000000e+00 1.00000000e+00 8.58447105e-02 9.82524387e-05 8.40968905e-01 1.65587840e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 1.13191299e-01 1.27676338e-04 9.13997227e-01 1.68025009e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S3_rQNWI b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S3_rQNWI new file mode 100644 index 00000000..8e520504 --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S3_rQNWI @@ -0,0 +1,336 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 3.00000000e-02 0.00000000e+00 1.00000000e+00 2.69263339e-03 9.34405329e-05 1.13825629e+00 3.26120430e+00 + 6.00000000e-02 0.00000000e+00 1.00000000e+00 7.22260714e-03 2.82890103e-04 8.35403662e-01 2.45413950e+00 + 9.00000000e-02 0.00000000e+00 1.00000000e+00 1.31054802e-02 1.37331291e-04 7.43995495e-01 2.20948888e+00 + 1.20000000e-01 0.00000000e+00 1.00000000e+00 2.49348500e-02 -5.64675026e-05 7.45237868e-01 2.04911245e+00 + 1.50000000e-01 0.00000000e+00 1.00000000e+00 3.74080380e-02 1.23835868e-04 7.74331357e-01 1.95577026e+00 + 1.80000000e-01 0.00000000e+00 1.00000000e+00 4.92070233e-02 2.40726861e-04 8.03745241e-01 1.90312829e+00 + 2.10000000e-01 0.00000000e+00 1.00000000e+00 6.10738194e-02 -2.60628535e-06 8.17081427e-01 1.84444378e+00 + 2.40000000e-01 0.00000000e+00 1.00000000e+00 7.41307791e-02 -4.90697526e-05 8.55909004e-01 1.79838496e+00 + 2.70000000e-01 0.00000000e+00 1.00000000e+00 8.40018267e-02 2.09150913e-04 8.82264701e-01 1.77364001e+00 + 3.00000000e-01 0.00000000e+00 1.00000000e+00 9.33483709e-02 1.56333789e-04 8.69320251e-01 1.75011001e+00 + 3.30000000e-01 0.00000000e+00 1.00000000e+00 1.04365867e-01 -9.34155908e-05 8.72909023e-01 1.71470690e+00 + 3.60000000e-01 0.00000000e+00 1.00000000e+00 1.17345806e-01 4.70607112e-05 9.15274680e-01 1.69273782e+00 + 3.90000000e-01 0.00000000e+00 1.00000000e+00 1.29206260e-01 2.38338441e-04 9.50034099e-01 1.68049154e+00 + 4.20000000e-01 0.00000000e+00 1.00000000e+00 1.41878051e-01 1.72639966e-05 9.69971879e-01 1.66040096e+00 + 4.50000000e-01 0.00000000e+00 1.00000000e+00 1.55767985e-01 -1.00536458e-04 1.04130702e+00 1.63892436e+00 + 4.80000000e-01 0.00000000e+00 1.00000000e+00 1.66761761e-01 1.55212473e-04 1.09518696e+00 1.63329678e+00 + 5.10000000e-01 0.00000000e+00 1.00000000e+00 1.73875861e-01 1.72018112e-04 1.11119505e+00 1.63297624e+00 + 5.40000000e-01 0.00000000e+00 1.00000000e+00 1.80211416e-01 -8.96242888e-05 1.10689205e+00 1.62331833e+00 + 5.70000000e-01 0.00000000e+00 1.00000000e+00 1.85981738e-01 -1.33548550e-05 1.13508705e+00 1.62240320e+00 + 6.00000000e-01 0.00000000e+00 1.00000000e+00 1.88412160e-01 2.14445799e-04 1.12626581e+00 1.63128227e+00 + 6.30000000e-01 0.00000000e+00 1.00000000e+00 1.91380375e-01 5.90091385e-05 1.11732765e+00 1.63504693e+00 + 6.60000000e-01 0.00000000e+00 1.00000000e+00 1.95768482e-01 -1.10481956e-04 1.13115816e+00 1.62667481e+00 + 6.90000000e-01 0.00000000e+00 1.00000000e+00 1.99631600e-01 9.84933923e-05 1.18606052e+00 1.63330909e+00 + 7.20000000e-01 0.00000000e+00 1.00000000e+00 2.00025920e-01 1.91184149e-04 1.19302127e+00 1.64134264e+00 + 7.50000000e-01 0.00000000e+00 1.00000000e+00 1.99983082e-01 -4.69813536e-05 1.19619307e+00 1.64091625e+00 + 7.80000000e-01 0.00000000e+00 1.00000000e+00 1.97719514e-01 -5.80621131e-05 1.21238856e+00 1.64290516e+00 + 8.10000000e-01 0.00000000e+00 1.00000000e+00 1.91797540e-01 1.83472690e-04 1.20167302e+00 1.66253700e+00 + 8.40000000e-01 0.00000000e+00 1.00000000e+00 1.82795035e-01 1.16375497e-04 1.14073010e+00 1.67682614e+00 + 8.70000000e-01 0.00000000e+00 1.00000000e+00 1.75355976e-01 -9.67527015e-05 1.10441336e+00 1.68000342e+00 + 9.00000000e-01 0.00000000e+00 1.00000000e+00 1.67507578e-01 4.83830579e-05 1.09466204e+00 1.69074359e+00 + 9.30000000e-01 0.00000000e+00 1.00000000e+00 1.58504498e-01 2.17170319e-04 1.06285184e+00 1.70846153e+00 + 9.60000000e-01 0.00000000e+00 1.00000000e+00 1.50413442e-01 1.72260134e-05 1.03939043e+00 1.70991758e+00 + 9.90000000e-01 0.00000000e+00 1.00000000e+00 1.43502524e-01 -7.88998335e-05 1.04140080e+00 1.70557345e+00 + 1.02000000e+00 0.00000000e+00 1.00000000e+00 1.33722384e-01 1.59832440e-04 1.04403583e+00 1.72109537e+00 + 1.05000000e+00 0.00000000e+00 1.00000000e+00 1.21231455e-01 1.76846565e-04 9.96503274e-01 1.73560085e+00 + 1.08000000e+00 0.00000000e+00 1.00000000e+00 1.09047723e-01 -6.23113596e-05 9.56743048e-01 1.73647612e+00 + 1.11000000e+00 0.00000000e+00 1.00000000e+00 9.60286471e-02 1.35926222e-05 9.22731933e-01 1.74483853e+00 + 1.14000000e+00 0.00000000e+00 1.00000000e+00 8.18212431e-02 2.34435241e-04 8.80762665e-01 1.76609012e+00 + 1.17000000e+00 0.00000000e+00 1.00000000e+00 6.89166103e-02 8.81548888e-05 8.20885240e-01 1.76806475e+00 + 1.20000000e+00 0.00000000e+00 1.00000000e+00 5.98563019e-02 -7.17260648e-05 8.03494169e-01 1.75699927e+00 + 1.23000000e+00 0.00000000e+00 1.00000000e+00 5.10215134e-02 1.35785910e-04 7.97930366e-01 1.75814420e+00 + 1.26000000e+00 0.00000000e+00 1.00000000e+00 4.23100900e-02 2.24995784e-04 7.80269058e-01 1.76297531e+00 + 1.29000000e+00 0.00000000e+00 1.00000000e+00 3.47177722e-02 -9.72734262e-06 7.61245943e-01 1.74959548e+00 + 1.32000000e+00 0.00000000e+00 1.00000000e+00 2.80099086e-02 -1.22270861e-05 7.62323414e-01 1.74033940e+00 + 1.35000000e+00 0.00000000e+00 1.00000000e+00 1.86553773e-02 2.25240512e-04 7.46177351e-01 1.74982727e+00 + 1.38000000e+00 0.00000000e+00 1.00000000e+00 1.00020028e-02 1.49616673e-04 7.08415150e-01 1.75048907e+00 + 1.41000000e+00 0.00000000e+00 1.00000000e+00 4.04641130e-03 -5.46252941e-05 6.84656103e-01 1.73304832e+00 + 1.44000000e+00 0.00000000e+00 1.00000000e+00 1.65007545e-05 9.60551279e-05 6.75826728e-01 1.72655224e+00 + 1.47000000e+00 0.00000000e+00 1.00000000e+00 -3.15428111e-03 2.48099703e-04 6.63651217e-01 1.72620455e+00 + 1.50000000e+00 0.00000000e+00 1.00000000e+00 -2.40508818e-03 4.54727144e-05 6.46923605e-01 1.70582434e+00 + 1.53000000e+00 0.00000000e+00 1.00000000e+00 9.15798209e-04 -3.77976037e-05 6.65360204e-01 1.68248895e+00 + 1.56000000e+00 0.00000000e+00 1.00000000e+00 3.56026992e-03 1.88803733e-04 6.81607877e-01 1.67810433e+00 + 1.59000000e+00 0.00000000e+00 1.00000000e+00 5.75590768e-03 1.89104419e-04 6.80811090e-01 1.67293434e+00 + 1.62000000e+00 0.00000000e+00 1.00000000e+00 9.44950757e-03 -3.96769865e-05 6.76693110e-01 1.65405636e+00 + 1.65000000e+00 0.00000000e+00 1.00000000e+00 1.34243138e-02 3.72593651e-05 6.90885065e-01 1.64531216e+00 + 1.68000000e+00 0.00000000e+00 1.00000000e+00 1.66594891e-02 2.37436125e-04 6.81594782e-01 1.64766524e+00 + 1.71000000e+00 0.00000000e+00 1.00000000e+00 2.27917504e-02 8.89708820e-05 6.71369924e-01 1.63703694e+00 + 1.74000000e+00 0.00000000e+00 1.00000000e+00 3.22622330e-02 -6.33413612e-05 6.83917091e-01 1.61665527e+00 + 1.77000000e+00 0.00000000e+00 1.00000000e+00 4.27543900e-02 1.32442899e-04 7.17201843e-01 1.61162576e+00 + 1.80000000e+00 0.00000000e+00 1.00000000e+00 5.31539696e-02 2.08264051e-04 7.34845741e-01 1.60742073e+00 + 1.83000000e+00 0.00000000e+00 1.00000000e+00 6.56560189e-02 -2.20078768e-05 7.66691843e-01 1.59215037e+00 + 1.86000000e+00 0.00000000e+00 1.00000000e+00 7.72058329e-02 -2.40566054e-05 8.11237077e-01 1.58272310e+00 + 1.89000000e+00 0.00000000e+00 1.00000000e+00 8.63388120e-02 2.00632222e-04 8.35553199e-01 1.58870220e+00 + 1.92000000e+00 0.00000000e+00 1.00000000e+00 9.46486195e-02 1.18152376e-04 8.33992987e-01 1.58729066e+00 + 1.95000000e+00 0.00000000e+00 1.00000000e+00 1.04661620e-01 -8.02545535e-05 8.50696289e-01 1.58018567e+00 + 1.98000000e+00 0.00000000e+00 1.00000000e+00 1.14013109e-01 6.94350961e-05 8.78096666e-01 1.58226531e+00 + 2.01000000e+00 0.00000000e+00 1.00000000e+00 1.23477410e-01 2.10729280e-04 8.90262040e-01 1.58841841e+00 + 2.04000000e+00 0.00000000e+00 1.00000000e+00 1.34803509e-01 5.98950611e-06 9.19222285e-01 1.58174692e+00 + 2.07000000e+00 0.00000000e+00 1.00000000e+00 1.46925648e-01 -6.83456228e-05 9.78961453e-01 1.57683858e+00 + 2.10000000e+00 0.00000000e+00 1.00000000e+00 1.56292155e-01 1.55890755e-04 1.02926000e+00 1.58324246e+00 + 2.13000000e+00 0.00000000e+00 1.00000000e+00 1.63730419e-01 1.46109730e-04 1.04502968e+00 1.58730913e+00 + 2.16000000e+00 0.00000000e+00 1.00000000e+00 1.70493237e-01 -7.69091312e-05 1.07337351e+00 1.58570723e+00 + 2.19000000e+00 0.00000000e+00 1.00000000e+00 1.74624856e-01 8.97502443e-06 1.09153710e+00 1.59304148e+00 + 2.22000000e+00 0.00000000e+00 1.00000000e+00 1.76206734e-01 2.00186146e-04 1.08243130e+00 1.60789201e+00 + 2.25000000e+00 0.00000000e+00 1.00000000e+00 1.78263197e-01 4.81734997e-05 1.06528770e+00 1.61156176e+00 + 2.28000000e+00 0.00000000e+00 1.00000000e+00 1.81570342e-01 -8.81842195e-05 1.08976674e+00 1.61303974e+00 + 2.31000000e+00 0.00000000e+00 1.00000000e+00 1.83243808e-01 1.09982345e-04 1.10899352e+00 1.62280327e+00 + 2.34000000e+00 0.00000000e+00 1.00000000e+00 1.84243717e-01 1.75133286e-04 1.11800852e+00 1.63143999e+00 + 2.37000000e+00 0.00000000e+00 1.00000000e+00 1.85067214e-01 -4.58570502e-05 1.13435615e+00 1.62938010e+00 + 2.40000000e+00 0.00000000e+00 1.00000000e+00 1.83850952e-01 -3.37119321e-05 1.16307679e+00 1.63662639e+00 + 2.43000000e+00 0.00000000e+00 1.00000000e+00 1.78375836e-01 1.82376212e-04 1.14477079e+00 1.65317144e+00 + 2.46000000e+00 0.00000000e+00 1.00000000e+00 1.71801316e-01 9.72393591e-05 1.10697729e+00 1.66393287e+00 + 2.49000000e+00 0.00000000e+00 1.00000000e+00 1.64840238e-01 -8.39027053e-05 1.08333796e+00 1.66926645e+00 + 2.52000000e+00 0.00000000e+00 1.00000000e+00 1.56688094e-01 6.92640848e-05 1.06018578e+00 1.68532722e+00 + 2.55000000e+00 0.00000000e+00 1.00000000e+00 1.47894505e-01 2.00531772e-04 1.02039286e+00 1.69978465e+00 + 2.58000000e+00 0.00000000e+00 1.00000000e+00 1.41308420e-01 6.64157605e-06 1.00065603e+00 1.69928115e+00 + 2.61000000e+00 0.00000000e+00 1.00000000e+00 1.34909110e-01 -5.24115909e-05 1.00935104e+00 1.70034482e+00 + 2.64000000e+00 0.00000000e+00 1.00000000e+00 1.26524369e-01 1.64071879e-04 9.99233203e-01 1.71296748e+00 + 2.67000000e+00 0.00000000e+00 1.00000000e+00 1.17134622e-01 1.50289880e-04 9.72731350e-01 1.71990632e+00 + 2.70000000e+00 0.00000000e+00 1.00000000e+00 1.07640746e-01 -5.54722982e-05 9.51082139e-01 1.71937841e+00 + 2.73000000e+00 0.00000000e+00 1.00000000e+00 9.61264208e-02 3.63592123e-05 9.28296749e-01 1.73165437e+00 + 2.76000000e+00 0.00000000e+00 1.00000000e+00 8.32125998e-02 2.15767460e-04 8.75689832e-01 1.74765837e+00 + 2.79000000e+00 0.00000000e+00 1.00000000e+00 7.23346493e-02 6.93618948e-05 8.32499255e-01 1.74809882e+00 + 2.82000000e+00 0.00000000e+00 1.00000000e+00 6.33547472e-02 -5.11108221e-05 8.11469792e-01 1.74318480e+00 + 2.85000000e+00 0.00000000e+00 1.00000000e+00 5.48412115e-02 1.42066003e-04 7.97926433e-01 1.74872871e+00 + 2.88000000e+00 0.00000000e+00 1.00000000e+00 4.74753844e-02 1.98366397e-04 7.74036972e-01 1.74694583e+00 + 2.91000000e+00 0.00000000e+00 1.00000000e+00 4.24350117e-02 -1.01535489e-05 7.71138224e-01 1.73307702e+00 + 2.94000000e+00 0.00000000e+00 1.00000000e+00 3.65890906e-02 9.38027144e-06 7.74453455e-01 1.72846875e+00 + 2.97000000e+00 0.00000000e+00 1.00000000e+00 2.93656603e-02 2.12350840e-04 7.58410910e-01 1.73468743e+00 + 3.00000000e+00 0.00000000e+00 1.00000000e+00 2.26886016e-02 1.24584983e-04 7.30246959e-01 1.72964078e+00 + 3.03000000e+00 0.00000000e+00 1.00000000e+00 1.76900539e-02 -4.29547649e-05 7.16145253e-01 1.71915282e+00 + 3.06000000e+00 0.00000000e+00 1.00000000e+00 1.26366757e-02 1.06974941e-04 7.02921601e-01 1.71930872e+00 + 3.09000000e+00 0.00000000e+00 1.00000000e+00 9.62528260e-03 2.24567317e-04 6.78901567e-01 1.71631584e+00 + 3.12000000e+00 0.00000000e+00 1.00000000e+00 1.02281964e-02 3.43742734e-05 6.70817614e-01 1.69731604e+00 + 3.15000000e+00 0.00000000e+00 1.00000000e+00 1.28321758e-02 -1.76582572e-05 6.84333830e-01 1.68186865e+00 + 3.18000000e+00 0.00000000e+00 1.00000000e+00 1.51491519e-02 1.87155199e-04 6.95212875e-01 1.67751687e+00 + 3.21000000e+00 0.00000000e+00 1.00000000e+00 1.85746436e-02 1.63709458e-04 6.95149232e-01 1.66680062e+00 + 3.24000000e+00 0.00000000e+00 1.00000000e+00 2.28412285e-02 -3.55773259e-05 7.09601576e-01 1.65095697e+00 + 3.27000000e+00 0.00000000e+00 1.00000000e+00 2.59246950e-02 5.49655636e-05 7.17855502e-01 1.64720204e+00 + 3.30000000e+00 0.00000000e+00 1.00000000e+00 2.87358377e-02 2.19943980e-04 7.08747983e-01 1.64769766e+00 + 3.33000000e+00 0.00000000e+00 1.00000000e+00 3.39690400e-02 7.02430575e-05 6.99516935e-01 1.63618190e+00 + 3.36000000e+00 0.00000000e+00 1.00000000e+00 4.12551292e-02 -4.41541360e-05 7.14839125e-01 1.62432701e+00 + 3.39000000e+00 0.00000000e+00 1.00000000e+00 4.89728526e-02 1.40796009e-04 7.27631444e-01 1.62136237e+00 + 3.42000000e+00 0.00000000e+00 1.00000000e+00 5.86366077e-02 1.83798247e-04 7.42887261e-01 1.61447716e+00 + 3.45000000e+00 0.00000000e+00 1.00000000e+00 6.99726129e-02 -2.25216963e-05 7.77253660e-01 1.59968076e+00 + 3.48000000e+00 0.00000000e+00 1.00000000e+00 8.03558816e-02 5.30361054e-07 8.21447524e-01 1.59470172e+00 + 3.51000000e+00 0.00000000e+00 1.00000000e+00 8.86154913e-02 1.91893413e-04 8.38495794e-01 1.59656143e+00 + 3.54000000e+00 0.00000000e+00 1.00000000e+00 9.71150831e-02 9.69582330e-05 8.50486230e-01 1.59326876e+00 + 3.57000000e+00 0.00000000e+00 1.00000000e+00 1.05228326e-01 -6.40979584e-05 8.70580312e-01 1.58881630e+00 + 3.60000000e+00 0.00000000e+00 1.00000000e+00 1.12262978e-01 8.42743790e-05 8.82297847e-01 1.59403140e+00 + 3.63000000e+00 0.00000000e+00 1.00000000e+00 1.19739282e-01 1.90003511e-04 8.84150389e-01 1.59696476e+00 + 3.66000000e+00 0.00000000e+00 1.00000000e+00 1.29505322e-01 1.63791674e-06 9.11044218e-01 1.59166588e+00 + 3.69000000e+00 0.00000000e+00 1.00000000e+00 1.39064432e-01 -4.24564299e-05 9.57488027e-01 1.58962024e+00 + 3.72000000e+00 0.00000000e+00 1.00000000e+00 1.47264480e-01 1.56117052e-04 9.89704023e-01 1.59454367e+00 + 3.75000000e+00 0.00000000e+00 1.00000000e+00 1.54946806e-01 1.25651139e-04 1.01805131e+00 1.59470277e+00 + 3.78000000e+00 0.00000000e+00 1.00000000e+00 1.61527142e-01 -6.53643257e-05 1.05360871e+00 1.59370420e+00 + 3.81000000e+00 0.00000000e+00 1.00000000e+00 1.64822914e-01 2.93829738e-05 1.07042803e+00 1.60196026e+00 + 3.84000000e+00 0.00000000e+00 1.00000000e+00 1.66180899e-01 1.85445233e-04 1.05498351e+00 1.61253647e+00 + 3.87000000e+00 0.00000000e+00 1.00000000e+00 1.67970635e-01 3.68783103e-05 1.05116273e+00 1.61620875e+00 + 3.90000000e+00 0.00000000e+00 1.00000000e+00 1.69398133e-01 -6.57298871e-05 1.05955479e+00 1.62070159e+00 + 3.93000000e+00 0.00000000e+00 1.00000000e+00 1.69852613e-01 1.18831241e-04 1.06258919e+00 1.63123960e+00 + 3.96000000e+00 0.00000000e+00 1.00000000e+00 1.70784123e-01 1.55548432e-04 1.06428069e+00 1.63548590e+00 + 3.99000000e+00 0.00000000e+00 1.00000000e+00 1.72115871e-01 -4.16023548e-05 1.09296139e+00 1.63498023e+00 + 4.02000000e+00 0.00000000e+00 1.00000000e+00 1.70840838e-01 -8.63965418e-06 1.11126119e+00 1.64172645e+00 + 4.05000000e+00 0.00000000e+00 1.00000000e+00 1.67061692e-01 1.76742371e-04 1.10142887e+00 1.65399107e+00 + 4.08000000e+00 0.00000000e+00 1.00000000e+00 1.62203657e-01 8.02778238e-05 1.08183730e+00 1.65997858e+00 + 4.11000000e+00 0.00000000e+00 1.00000000e+00 1.56058609e-01 -6.70309077e-05 1.06846434e+00 1.66816216e+00 + 4.14000000e+00 0.00000000e+00 1.00000000e+00 1.47743514e-01 8.48343646e-05 1.03383629e+00 1.68361676e+00 + 4.17000000e+00 0.00000000e+00 1.00000000e+00 1.39982549e-01 1.82784692e-04 9.94876235e-01 1.69460169e+00 + 4.20000000e+00 0.00000000e+00 1.00000000e+00 1.33755766e-01 1.28523113e-06 9.79862089e-01 1.69518490e+00 + 4.23000000e+00 0.00000000e+00 1.00000000e+00 1.27475019e-01 -2.86180264e-05 9.77992316e-01 1.69981601e+00 + 4.26000000e+00 0.00000000e+00 1.00000000e+00 1.20248659e-01 1.65436646e-04 9.63828133e-01 1.70839550e+00 + 4.29000000e+00 0.00000000e+00 1.00000000e+00 1.13482479e-01 1.29856121e-04 9.50509912e-01 1.70959200e+00 + 4.32000000e+00 0.00000000e+00 1.00000000e+00 1.05885501e-01 -4.73490156e-05 9.46292594e-01 1.71038288e+00 + 4.35000000e+00 0.00000000e+00 1.00000000e+00 9.59202535e-02 5.44089371e-05 9.21587674e-01 1.72142873e+00 + 4.38000000e+00 0.00000000e+00 1.00000000e+00 8.51841041e-02 2.00401365e-04 8.79276545e-01 1.73199974e+00 + 4.41000000e+00 0.00000000e+00 1.00000000e+00 7.57536010e-02 5.44754157e-05 8.44606166e-01 1.73219691e+00 + 4.44000000e+00 0.00000000e+00 1.00000000e+00 6.68870402e-02 -3.27855566e-05 8.24048526e-01 1.73401089e+00 + 4.47000000e+00 0.00000000e+00 1.00000000e+00 5.85253339e-02 1.48499418e-04 7.96292296e-01 1.73889146e+00 + 4.50000000e+00 0.00000000e+00 1.00000000e+00 5.26123328e-02 1.75333413e-04 7.77485088e-01 1.73410701e+00 + 4.53000000e+00 0.00000000e+00 1.00000000e+00 4.83996005e-02 -1.22740964e-05 7.77820072e-01 1.72300293e+00 + 4.56000000e+00 0.00000000e+00 1.00000000e+00 4.36030758e-02 2.83927893e-05 7.80651323e-01 1.72085288e+00 + 4.59000000e+00 0.00000000e+00 1.00000000e+00 3.82181754e-02 2.02629611e-04 7.65522535e-01 1.72113093e+00 + 4.62000000e+00 0.00000000e+00 1.00000000e+00 3.37845637e-02 1.03032725e-04 7.52886506e-01 1.71430655e+00 + 4.65000000e+00 0.00000000e+00 1.00000000e+00 2.90908877e-02 -3.24350437e-05 7.43854704e-01 1.70925376e+00 + 4.68000000e+00 0.00000000e+00 1.00000000e+00 2.42084199e-02 1.17228428e-04 7.24518935e-01 1.71112706e+00 + 4.71000000e+00 0.00000000e+00 1.00000000e+00 2.13358857e-02 2.02535228e-04 7.00647504e-01 1.70598044e+00 + 4.74000000e+00 0.00000000e+00 1.00000000e+00 2.15547569e-02 2.47220641e-05 6.95383804e-01 1.69208447e+00 + 4.77000000e+00 0.00000000e+00 1.00000000e+00 2.28138310e-02 1.38587050e-06 7.02195606e-01 1.68248423e+00 + 4.80000000e+00 0.00000000e+00 1.00000000e+00 2.51758435e-02 1.84361363e-04 7.03863244e-01 1.67609115e+00 + 4.83000000e+00 0.00000000e+00 1.00000000e+00 2.92616096e-02 1.39838747e-04 7.13007907e-01 1.66314117e+00 + 4.86000000e+00 0.00000000e+00 1.00000000e+00 3.35775688e-02 -3.02337708e-05 7.32196778e-01 1.65129077e+00 + 4.89000000e+00 0.00000000e+00 1.00000000e+00 3.64026874e-02 7.12012574e-05 7.39861878e-01 1.64854575e+00 + 4.92000000e+00 0.00000000e+00 1.00000000e+00 3.94693139e-02 2.02658925e-04 7.31527699e-01 1.64574498e+00 + 4.95000000e+00 0.00000000e+00 1.00000000e+00 4.40200458e-02 5.32072319e-05 7.32711510e-01 1.63680661e+00 + 4.98000000e+00 0.00000000e+00 1.00000000e+00 4.90925568e-02 -2.67325593e-05 7.39097802e-01 1.63073494e+00 + 5.01000000e+00 0.00000000e+00 1.00000000e+00 5.50531734e-02 1.47614053e-04 7.41880827e-01 1.62841462e+00 + 5.04000000e+00 0.00000000e+00 1.00000000e+00 6.34875888e-02 1.61861595e-04 7.52941821e-01 1.61996440e+00 + 5.07000000e+00 0.00000000e+00 1.00000000e+00 7.33660439e-02 -2.21476828e-05 7.88408308e-01 1.60902520e+00 + 5.10000000e+00 0.00000000e+00 1.00000000e+00 8.22294903e-02 2.21448825e-05 8.20357379e-01 1.60484335e+00 + 5.13000000e+00 0.00000000e+00 1.00000000e+00 9.05346270e-02 1.83733042e-04 8.41034322e-01 1.60369607e+00 + 5.16000000e+00 0.00000000e+00 1.00000000e+00 9.87295502e-02 7.77994599e-05 8.63051707e-01 1.59893989e+00 + 5.19000000e+00 0.00000000e+00 1.00000000e+00 1.05611573e-01 -4.89720704e-05 8.84579443e-01 1.59791257e+00 + 5.22000000e+00 0.00000000e+00 1.00000000e+00 1.10997963e-01 9.91273271e-05 8.85414627e-01 1.60211681e+00 + 5.25000000e+00 0.00000000e+00 1.00000000e+00 1.17427852e-01 1.70832122e-04 8.87383334e-01 1.60391550e+00 + 5.28000000e+00 0.00000000e+00 1.00000000e+00 1.24999922e-01 -4.47379399e-06 9.09107368e-01 1.60081785e+00 + 5.31000000e+00 0.00000000e+00 1.00000000e+00 1.32326741e-01 -1.70728814e-05 9.36820966e-01 1.60160004e+00 + 5.34000000e+00 0.00000000e+00 1.00000000e+00 1.39440175e-01 1.57979148e-04 9.59039880e-01 1.60380589e+00 + 5.37000000e+00 0.00000000e+00 1.00000000e+00 1.47035120e-01 1.04480058e-04 9.93280726e-01 1.60247145e+00 + 5.40000000e+00 0.00000000e+00 1.00000000e+00 1.52952651e-01 -5.46682703e-05 1.03099875e+00 1.60244187e+00 + 5.43000000e+00 0.00000000e+00 1.00000000e+00 1.56058499e-01 5.18138963e-05 1.04239684e+00 1.60921016e+00 + 5.46000000e+00 0.00000000e+00 1.00000000e+00 1.57855074e-01 1.71809379e-04 1.03798031e+00 1.61630651e+00 + 5.49000000e+00 0.00000000e+00 1.00000000e+00 1.59236943e-01 2.36520457e-05 1.03901803e+00 1.62045949e+00 + 5.52000000e+00 0.00000000e+00 1.00000000e+00 1.59265545e-01 -4.25913729e-05 1.03773798e+00 1.62757098e+00 + 5.55000000e+00 0.00000000e+00 1.00000000e+00 1.58859941e-01 1.28845929e-04 1.02560970e+00 1.63635437e+00 + 5.58000000e+00 0.00000000e+00 1.00000000e+00 1.59660124e-01 1.34855271e-04 1.03060258e+00 1.63964998e+00 + 5.61000000e+00 0.00000000e+00 1.00000000e+00 1.60389012e-01 -3.81444117e-05 1.05182361e+00 1.64070361e+00 + 5.64000000e+00 0.00000000e+00 1.00000000e+00 1.59315195e-01 1.64439714e-05 1.06407464e+00 1.64703652e+00 + 5.67000000e+00 0.00000000e+00 1.00000000e+00 1.56958421e-01 1.69371946e-04 1.06045025e+00 1.65391038e+00 + 5.70000000e+00 0.00000000e+00 1.00000000e+00 1.53721549e-01 6.23483609e-05 1.06092241e+00 1.65861877e+00 + 5.73000000e+00 0.00000000e+00 1.00000000e+00 1.48063062e-01 -4.96795261e-05 1.04803050e+00 1.66719039e+00 + 5.76000000e+00 0.00000000e+00 1.00000000e+00 1.40676064e-01 9.97646688e-05 1.01402760e+00 1.68035379e+00 + 5.79000000e+00 0.00000000e+00 1.00000000e+00 1.33747843e-01 1.62606882e-04 9.80836184e-01 1.68853556e+00 + 5.82000000e+00 0.00000000e+00 1.00000000e+00 1.27629809e-01 -3.82722922e-06 9.66301503e-01 1.69242627e+00 + 5.85000000e+00 0.00000000e+00 1.00000000e+00 1.21092138e-01 -4.26478426e-06 9.51464142e-01 1.69851042e+00 + 5.88000000e+00 0.00000000e+00 1.00000000e+00 1.15111517e-01 1.64664201e-04 9.35690148e-01 1.70344435e+00 + 5.91000000e+00 0.00000000e+00 1.00000000e+00 1.09919776e-01 1.08327371e-04 9.33324985e-01 1.70267338e+00 + 5.94000000e+00 0.00000000e+00 1.00000000e+00 1.03686862e-01 -3.75592068e-05 9.32985290e-01 1.70453510e+00 + 5.97000000e+00 0.00000000e+00 1.00000000e+00 9.54969467e-02 7.25789673e-05 9.12386055e-01 1.71214729e+00 + 6.00000000e+00 0.00000000e+00 1.00000000e+00 8.71017760e-02 1.83423945e-04 8.82188784e-01 1.71778964e+00 + 6.03000000e+00 0.00000000e+00 1.00000000e+00 7.88686087e-02 4.05050821e-05 8.59191428e-01 1.72002671e+00 + 6.06000000e+00 0.00000000e+00 1.00000000e+00 7.02200425e-02 -1.36541383e-05 8.32111111e-01 1.72480948e+00 + 6.09000000e+00 0.00000000e+00 1.00000000e+00 6.25209882e-02 1.52606273e-04 8.01545166e-01 1.72820557e+00 + 6.12000000e+00 0.00000000e+00 1.00000000e+00 5.73069695e-02 1.51697809e-04 7.84371161e-01 1.72329002e+00 + 6.15000000e+00 0.00000000e+00 1.00000000e+00 5.33198864e-02 -1.08974935e-05 7.84718780e-01 1.71671807e+00 + 6.18000000e+00 0.00000000e+00 1.00000000e+00 4.92015015e-02 4.88259678e-05 7.80300963e-01 1.71389938e+00 + 6.21000000e+00 0.00000000e+00 1.00000000e+00 4.57631629e-02 1.90432300e-04 7.73121326e-01 1.70998480e+00 + 6.24000000e+00 0.00000000e+00 1.00000000e+00 4.27260163e-02 8.22705629e-05 7.71109210e-01 1.70350132e+00 + 6.27000000e+00 0.00000000e+00 1.00000000e+00 3.87408864e-02 -1.86263232e-05 7.64978214e-01 1.70146904e+00 + 6.30000000e+00 0.00000000e+00 1.00000000e+00 3.44724059e-02 1.26995720e-04 7.43748380e-01 1.70165911e+00 + 6.33000000e+00 0.00000000e+00 1.00000000e+00 3.21210041e-02 1.78365189e-04 7.25721410e-01 1.69667858e+00 + 6.36000000e+00 0.00000000e+00 1.00000000e+00 3.13901811e-02 1.64008804e-05 7.20279068e-01 1.68841720e+00 + 6.39000000e+00 0.00000000e+00 1.00000000e+00 3.16910381e-02 2.27383401e-05 7.17067044e-01 1.68217196e+00 + 6.42000000e+00 0.00000000e+00 1.00000000e+00 3.38789587e-02 1.80214943e-04 7.15306341e-01 1.67396495e+00 + 6.45000000e+00 0.00000000e+00 1.00000000e+00 3.80592156e-02 1.14724560e-04 7.28802142e-01 1.66219195e+00 + 6.48000000e+00 0.00000000e+00 1.00000000e+00 4.19603988e-02 -2.22271509e-05 7.47963764e-01 1.65317378e+00 + 6.51000000e+00 0.00000000e+00 1.00000000e+00 4.50964018e-02 8.83717207e-05 7.53766710e-01 1.64900154e+00 + 6.54000000e+00 0.00000000e+00 1.00000000e+00 4.86416236e-02 1.82802531e-04 7.55090624e-01 1.64409721e+00 + 6.57000000e+00 0.00000000e+00 1.00000000e+00 5.25181674e-02 3.79430578e-05 7.60706110e-01 1.63833667e+00 + 6.60000000e+00 0.00000000e+00 1.00000000e+00 5.60545826e-02 -6.15569777e-06 7.61283006e-01 1.63541248e+00 + 6.63000000e+00 0.00000000e+00 1.00000000e+00 6.08081941e-02 1.51735603e-04 7.56836580e-01 1.63245043e+00 + 6.66000000e+00 0.00000000e+00 1.00000000e+00 6.78717401e-02 1.37391934e-04 7.68845282e-01 1.62539036e+00 + 6.69000000e+00 0.00000000e+00 1.00000000e+00 7.57753200e-02 -1.86449539e-05 7.94446290e-01 1.61799349e+00 + 6.72000000e+00 0.00000000e+00 1.00000000e+00 8.35235966e-02 4.55988884e-05 8.17835543e-01 1.61375918e+00 + 6.75000000e+00 0.00000000e+00 1.00000000e+00 9.16613627e-02 1.72656828e-04 8.40855252e-01 1.60976376e+00 + 6.78000000e+00 0.00000000e+00 1.00000000e+00 9.94779614e-02 5.91395811e-05 8.71551024e-01 1.60587189e+00 + 6.81000000e+00 0.00000000e+00 1.00000000e+00 1.05348144e-01 -3.11813679e-05 8.88889196e-01 1.60553525e+00 + 6.84000000e+00 0.00000000e+00 1.00000000e+00 1.10231262e-01 1.10444572e-04 8.90123172e-01 1.60832096e+00 + 6.87000000e+00 0.00000000e+00 1.00000000e+00 1.15660242e-01 1.48559548e-04 8.94793069e-01 1.60934897e+00 + 6.90000000e+00 0.00000000e+00 1.00000000e+00 1.21296227e-01 -7.14959796e-06 9.09586976e-01 1.60955728e+00 + 6.93000000e+00 0.00000000e+00 1.00000000e+00 1.26636617e-01 7.90979477e-06 9.20328049e-01 1.61090923e+00 + 6.96000000e+00 0.00000000e+00 1.00000000e+00 1.32915563e-01 1.54747338e-04 9.37646112e-01 1.61175700e+00 + 6.99000000e+00 0.00000000e+00 1.00000000e+00 1.39655760e-01 8.52593750e-05 9.71631048e-01 1.61038680e+00 + 7.02000000e+00 0.00000000e+00 1.00000000e+00 1.44873727e-01 -3.98030492e-05 1.00306986e+00 1.61112908e+00 + 7.05000000e+00 0.00000000e+00 1.00000000e+00 1.48152364e-01 7.01351590e-05 1.01530410e+00 1.61512040e+00 + 7.08000000e+00 0.00000000e+00 1.00000000e+00 1.50575726e-01 1.54204281e-04 1.02270076e+00 1.61981275e+00 + 7.11000000e+00 0.00000000e+00 1.00000000e+00 1.51564974e-01 1.50369998e-05 1.02820035e+00 1.62488357e+00 + 7.14000000e+00 0.00000000e+00 1.00000000e+00 1.50846021e-01 -1.93790226e-05 1.01753841e+00 1.63225229e+00 + 7.17000000e+00 0.00000000e+00 1.00000000e+00 1.50122336e-01 1.32164362e-04 1.00356687e+00 1.63942047e+00 + 7.20000000e+00 0.00000000e+00 1.00000000e+00 1.50350997e-01 1.14233937e-04 1.00113844e+00 1.64083716e+00 + 7.23000000e+00 0.00000000e+00 1.00000000e+00 1.50225129e-01 -3.02413645e-05 1.01682871e+00 1.64628885e+00 + 7.26000000e+00 0.00000000e+00 1.00000000e+00 1.49268379e-01 3.96639529e-05 1.02104712e+00 1.65085846e+00 + 7.29000000e+00 0.00000000e+00 1.00000000e+00 1.48138567e-01 1.58909642e-04 1.02783480e+00 1.65449585e+00 + 7.32000000e+00 0.00000000e+00 1.00000000e+00 1.45809072e-01 4.81044763e-05 1.03603012e+00 1.65847855e+00 + 7.35000000e+00 0.00000000e+00 1.00000000e+00 1.41045783e-01 -3.03771525e-05 1.02596599e+00 1.66620233e+00 + 7.38000000e+00 0.00000000e+00 1.00000000e+00 1.34928698e-01 1.10010904e-04 9.97635816e-01 1.67555904e+00 + 7.41000000e+00 0.00000000e+00 1.00000000e+00 1.28957990e-01 1.42566132e-04 9.74945383e-01 1.68314799e+00 + 7.44000000e+00 0.00000000e+00 1.00000000e+00 1.22646801e-01 -4.39062077e-06 9.55571987e-01 1.68946230e+00 + 7.47000000e+00 0.00000000e+00 1.00000000e+00 1.16262085e-01 1.88068881e-05 9.32448320e-01 1.69557134e+00 + 7.50000000e+00 0.00000000e+00 1.00000000e+00 1.11077491e-01 1.59826467e-04 9.17227840e-01 1.69818129e+00 + 7.53000000e+00 0.00000000e+00 1.00000000e+00 1.06730028e-01 8.96989483e-05 9.18531130e-01 1.69836661e+00 + 7.56000000e+00 0.00000000e+00 1.00000000e+00 1.01357328e-01 -2.39078589e-05 9.16219381e-01 1.70016623e+00 + 7.59000000e+00 0.00000000e+00 1.00000000e+00 9.51130443e-02 8.80934077e-05 9.01345076e-01 1.70369757e+00 + 7.62000000e+00 0.00000000e+00 1.00000000e+00 8.87136216e-02 1.64422468e-04 8.85966123e-01 1.70659877e+00 + 7.65000000e+00 0.00000000e+00 1.00000000e+00 8.15543741e-02 3.01650321e-05 8.68754678e-01 1.71039686e+00 + 7.68000000e+00 0.00000000e+00 1.00000000e+00 7.35883664e-02 5.95403547e-06 8.40047328e-01 1.71529274e+00 + 7.71000000e+00 0.00000000e+00 1.00000000e+00 6.67714526e-02 1.52632064e-04 8.10523874e-01 1.71711564e+00 + 7.74000000e+00 0.00000000e+00 1.00000000e+00 6.18010439e-02 1.29205820e-04 7.96343902e-01 1.71485301e+00 + 7.77000000e+00 0.00000000e+00 1.00000000e+00 5.76150101e-02 -5.63441234e-06 7.89200818e-01 1.71152773e+00 + 7.80000000e+00 0.00000000e+00 1.00000000e+00 5.41884115e-02 6.68171032e-05 7.81326225e-01 1.70737425e+00 + 7.83000000e+00 0.00000000e+00 1.00000000e+00 5.20464795e-02 1.76358063e-04 7.79831845e-01 1.70144727e+00 + 7.86000000e+00 0.00000000e+00 1.00000000e+00 4.99545467e-02 6.60756378e-05 7.84884344e-01 1.69664993e+00 + 7.89000000e+00 0.00000000e+00 1.00000000e+00 4.67644745e-02 -3.69708833e-06 7.78360835e-01 1.69446302e+00 + 7.92000000e+00 0.00000000e+00 1.00000000e+00 4.36850576e-02 1.31906560e-04 7.62673295e-01 1.69249629e+00 + 7.95000000e+00 0.00000000e+00 1.00000000e+00 4.16505787e-02 1.55403172e-04 7.51033435e-01 1.68903083e+00 + 7.98000000e+00 0.00000000e+00 1.00000000e+00 4.02231898e-02 1.36235797e-05 7.43125147e-01 1.68527615e+00 + 8.01000000e+00 0.00000000e+00 1.00000000e+00 3.98163688e-02 4.09524559e-05 7.32153207e-01 1.67996522e+00 + 8.04000000e+00 0.00000000e+00 1.00000000e+00 4.17813554e-02 1.72318333e-04 7.30061771e-01 1.67191007e+00 + 8.07000000e+00 0.00000000e+00 1.00000000e+00 4.52908564e-02 9.70675715e-05 7.43257511e-01 1.66292998e+00 + 8.10000000e+00 0.00000000e+00 1.00000000e+00 4.87844462e-02 -1.02614291e-05 7.57245803e-01 1.65538430e+00 + 8.13000000e+00 0.00000000e+00 1.00000000e+00 5.23233745e-02 9.91629619e-05 7.64899596e-01 1.64893055e+00 + 8.16000000e+00 0.00000000e+00 1.00000000e+00 5.62803629e-02 1.64503385e-04 7.75164875e-01 1.64374139e+00 + 8.19000000e+00 0.00000000e+00 1.00000000e+00 5.95755518e-02 3.01996768e-05 7.83325136e-01 1.64034982e+00 + 8.22000000e+00 0.00000000e+00 1.00000000e+00 6.23696834e-02 1.07384144e-05 7.79410835e-01 1.63793191e+00 + 8.25000000e+00 0.00000000e+00 1.00000000e+00 6.63453141e-02 1.49917953e-04 7.75888024e-01 1.63474100e+00 + 8.28000000e+00 0.00000000e+00 1.00000000e+00 7.18615615e-02 1.18631099e-04 7.85318355e-01 1.63054440e+00 + 8.31000000e+00 0.00000000e+00 1.00000000e+00 7.78922809e-02 -1.15705766e-05 8.00323204e-01 1.62577805e+00 + 8.34000000e+00 0.00000000e+00 1.00000000e+00 8.46399620e-02 6.16213141e-05 8.15541826e-01 1.62066702e+00 + 8.37000000e+00 0.00000000e+00 1.00000000e+00 9.23303494e-02 1.60996597e-04 8.42102646e-01 1.61607171e+00 + 8.40000000e+00 0.00000000e+00 1.00000000e+00 9.93879176e-02 4.85698437e-05 8.72316091e-01 1.61314938e+00 + 8.43000000e+00 0.00000000e+00 1.00000000e+00 1.04813958e-01 -1.47488167e-05 8.88290457e-01 1.61218252e+00 + 8.46000000e+00 0.00000000e+00 1.00000000e+00 1.09592374e-01 1.16494248e-04 8.94037343e-01 1.61285053e+00 + 8.49000000e+00 0.00000000e+00 1.00000000e+00 1.14266192e-01 1.31384997e-04 9.03715914e-01 1.61476678e+00 + 8.52000000e+00 0.00000000e+00 1.00000000e+00 1.18230183e-01 -5.93797507e-06 9.09326269e-01 1.61668772e+00 + 8.55000000e+00 0.00000000e+00 1.00000000e+00 1.22273743e-01 2.64237822e-05 9.10797668e-01 1.61795604e+00 + 8.58000000e+00 0.00000000e+00 1.00000000e+00 1.27490005e-01 1.49728346e-04 9.24526097e-01 1.61834915e+00 + 8.61000000e+00 0.00000000e+00 1.00000000e+00 1.33023658e-01 7.16822063e-05 9.52433102e-01 1.61854462e+00 + 8.64000000e+00 0.00000000e+00 1.00000000e+00 1.37455309e-01 -2.63977273e-05 9.74630238e-01 1.61880902e+00 + 8.67000000e+00 0.00000000e+00 1.00000000e+00 1.41097378e-01 8.29901577e-05 9.90464150e-01 1.62036361e+00 + 8.70000000e+00 0.00000000e+00 1.00000000e+00 1.43854036e-01 1.40151629e-04 1.00750994e+00 1.62386979e+00 + 8.73000000e+00 0.00000000e+00 1.00000000e+00 1.44668913e-01 1.05135684e-05 1.01357145e+00 1.62917277e+00 + 8.76000000e+00 0.00000000e+00 1.00000000e+00 1.43848262e-01 -7.57388389e-07 1.00135315e+00 1.63510163e+00 + 8.79000000e+00 0.00000000e+00 1.00000000e+00 1.43097290e-01 1.33351653e-04 9.90147032e-01 1.64121040e+00 + 8.82000000e+00 0.00000000e+00 1.00000000e+00 1.42552166e-01 9.90693926e-05 9.89846117e-01 1.64670474e+00 + 8.85000000e+00 0.00000000e+00 1.00000000e+00 1.41587785e-01 -2.13896284e-05 9.88450808e-01 1.65075450e+00 + 8.88000000e+00 0.00000000e+00 1.00000000e+00 1.40756098e-01 5.54422328e-05 9.88262813e-01 1.65339970e+00 + 8.91000000e+00 0.00000000e+00 1.00000000e+00 1.40211557e-01 1.48480927e-04 9.99332406e-01 1.65606812e+00 + 8.94000000e+00 0.00000000e+00 1.00000000e+00 1.38418179e-01 3.95954133e-05 1.00972162e+00 1.66011978e+00 + 8.97000000e+00 0.00000000e+00 1.00000000e+00 1.34694814e-01 -1.37701416e-05 1.00152112e+00 1.66526912e+00 + 9.00000000e+00 0.00000000e+00 1.00000000e+00 1.30092368e-01 1.15276019e-04 9.85476995e-01 1.67160136e+00 + 9.03000000e+00 0.00000000e+00 1.00000000e+00 1.24858673e-01 1.25958039e-04 9.69872567e-01 1.67914893e+00 + 9.06000000e+00 0.00000000e+00 1.00000000e+00 1.18684558e-01 -2.53997628e-06 9.47298889e-01 1.68644706e+00 + 9.09000000e+00 0.00000000e+00 1.00000000e+00 1.12656993e-01 3.54079719e-05 9.20431611e-01 1.69123328e+00 + 9.12000000e+00 0.00000000e+00 1.00000000e+00 1.07980432e-01 1.53325351e-04 9.07374326e-01 1.69390499e+00 + 9.15000000e+00 0.00000000e+00 1.00000000e+00 1.03767949e-01 7.67462511e-05 9.05101284e-01 1.69571553e+00 + 9.18000000e+00 0.00000000e+00 1.00000000e+00 9.91658912e-02 -1.16803535e-05 8.99079290e-01 1.69648239e+00 + 9.21000000e+00 0.00000000e+00 1.00000000e+00 9.45586550e-02 9.72389140e-05 8.91137804e-01 1.69666149e+00 + 9.24000000e+00 0.00000000e+00 1.00000000e+00 8.97400287e-02 1.49404598e-04 8.86710958e-01 1.69876429e+00 + 9.27000000e+00 0.00000000e+00 1.00000000e+00 8.36146665e-02 2.54726827e-05 8.73097664e-01 1.70262978e+00 + 9.30000000e+00 0.00000000e+00 1.00000000e+00 7.68389069e-02 2.03577976e-05 8.46746700e-01 1.70557757e+00 + 9.33000000e+00 0.00000000e+00 1.00000000e+00 7.09233731e-02 1.49462476e-04 8.23403343e-01 1.70708002e+00 + 9.36000000e+00 0.00000000e+00 1.00000000e+00 6.59563075e-02 1.13476926e-04 8.08552988e-01 1.70797204e+00 + 9.39000000e+00 0.00000000e+00 1.00000000e+00 6.16049015e-02 5.24774357e-07 7.94535300e-01 1.70627163e+00 + 9.42000000e+00 0.00000000e+00 1.00000000e+00 5.87040180e-02 7.78702140e-05 7.84334365e-01 1.70103814e+00 + 9.45000000e+00 0.00000000e+00 1.00000000e+00 5.72205125e-02 1.63862003e-04 7.87073655e-01 1.69578641e+00 + 9.48000000e+00 0.00000000e+00 1.00000000e+00 5.56284189e-02 5.69738768e-05 7.91993979e-01 1.69212439e+00 + 9.51000000e+00 0.00000000e+00 1.00000000e+00 5.34722156e-02 9.01371119e-06 7.87467681e-01 1.68821120e+00 + 9.54000000e+00 0.00000000e+00 1.00000000e+00 5.15794050e-02 1.32564329e-04 7.79656569e-01 1.68468070e+00 + 9.57000000e+00 0.00000000e+00 1.00000000e+00 4.98806448e-02 1.37813602e-04 7.74085350e-01 1.68337877e+00 + 9.60000000e+00 0.00000000e+00 1.00000000e+00 4.80757226e-02 1.43718235e-05 7.62567668e-01 1.68152960e+00 + 9.63000000e+00 0.00000000e+00 1.00000000e+00 4.74338522e-02 5.37657621e-05 7.49239637e-01 1.67647707e+00 + 9.66000000e+00 0.00000000e+00 1.00000000e+00 4.88393140e-02 1.63130997e-04 7.47258754e-01 1.67031364e+00 + 9.69000000e+00 0.00000000e+00 1.00000000e+00 5.14114081e-02 8.43440990e-05 7.55787456e-01 1.66451668e+00 + 9.72000000e+00 0.00000000e+00 1.00000000e+00 5.44434339e-02 1.01379913e-06 7.63617579e-01 1.65697899e+00 + 9.75000000e+00 0.00000000e+00 1.00000000e+00 5.83095960e-02 1.06110577e-04 7.74442523e-01 1.64933047e+00 + 9.78000000e+00 0.00000000e+00 1.00000000e+00 6.23092437e-02 1.48881598e-04 7.90494137e-01 1.64490704e+00 + 9.81000000e+00 0.00000000e+00 1.00000000e+00 6.53407960e-02 2.61777467e-05 7.98643845e-01 1.64228937e+00 + 9.84000000e+00 0.00000000e+00 1.00000000e+00 6.79753671e-02 2.46875624e-05 7.95747984e-01 1.63891173e+00 + 9.87000000e+00 0.00000000e+00 1.00000000e+00 7.14261955e-02 1.45978521e-04 7.95712917e-01 1.63647718e+00 + 9.90000000e+00 0.00000000e+00 1.00000000e+00 7.54611748e-02 1.03636345e-04 8.01541241e-01 1.63512474e+00 + 9.93000000e+00 0.00000000e+00 1.00000000e+00 7.99722544e-02 -3.90777134e-06 8.06213056e-01 1.63158711e+00 + 9.96000000e+00 0.00000000e+00 1.00000000e+00 8.57698443e-02 7.33187591e-05 8.17418523e-01 1.62623305e+00 + 9.99000000e+00 0.00000000e+00 1.00000000e+00 9.25549622e-02 1.49679238e-04 8.42520562e-01 1.62260867e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 9.47498066e-02 1.28355956e-04 8.52439119e-01 1.62084026e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S500_rQNWI b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S500_rQNWI new file mode 100644 index 00000000..8ea78239 --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S500_rQNWI @@ -0,0 +1,4 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 5.80041563e-02 7.94693740e-05 6.98601152e-01 1.59842948e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 1.03630241e-01 1.26830891e-04 8.66760868e-01 1.69219452e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S50_rQNWI b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S50_rQNWI new file mode 100644 index 00000000..1d5712e8 --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S50_rQNWI @@ -0,0 +1,22 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 5.00000000e-01 0.00000000e+00 1.00000000e+00 1.74762402e-01 2.23650163e-04 1.29332411e+00 2.21464161e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.31705034e-01 -3.31990895e-05 1.04273719e+00 1.72784606e+00 + 1.50000000e+00 0.00000000e+00 1.00000000e+00 2.81454778e-03 4.59463220e-05 7.80252771e-01 1.24577147e+00 + 2.00000000e+00 0.00000000e+00 1.00000000e+00 1.33269846e-01 2.22886862e-04 9.57228236e-01 1.94144030e+00 + 2.50000000e+00 0.00000000e+00 1.00000000e+00 1.43686523e-01 -9.12916000e-05 1.04467154e+00 1.82359698e+00 + 3.00000000e+00 0.00000000e+00 1.00000000e+00 2.22658883e-02 1.27617459e-04 8.10131096e-01 1.34854581e+00 + 3.50000000e+00 0.00000000e+00 1.00000000e+00 1.10349915e-01 1.65024957e-04 9.17704304e-01 1.77850164e+00 + 4.00000000e+00 0.00000000e+00 1.00000000e+00 1.54006034e-01 -9.53658064e-05 1.09548642e+00 1.84493807e+00 + 4.50000000e+00 0.00000000e+00 1.00000000e+00 4.05825799e-02 1.80786440e-04 8.05108609e-01 1.40927081e+00 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 8.28158095e-02 9.71648300e-05 7.97136660e-01 1.67306238e+00 + 5.50000000e+00 0.00000000e+00 1.00000000e+00 1.48896926e-01 -4.84725140e-05 1.05433943e+00 1.88967551e+00 + 6.00000000e+00 0.00000000e+00 1.00000000e+00 6.32653861e-02 1.91919589e-04 8.45488666e-01 1.51101438e+00 + 6.50000000e+00 0.00000000e+00 1.00000000e+00 7.41488555e-02 3.30469852e-05 8.18629360e-01 1.58594055e+00 + 7.00000000e+00 0.00000000e+00 1.00000000e+00 1.44526022e-01 1.65343137e-05 1.04153762e+00 1.85200636e+00 + 7.50000000e+00 0.00000000e+00 1.00000000e+00 7.86527742e-02 1.67439404e-04 8.44824993e-01 1.56439933e+00 + 8.00000000e+00 0.00000000e+00 1.00000000e+00 6.18424254e-02 3.39198272e-06 7.75634130e-01 1.55364552e+00 + 8.50000000e+00 0.00000000e+00 1.00000000e+00 1.31251591e-01 8.28705099e-05 9.78421628e-01 1.84356186e+00 + 9.00000000e+00 0.00000000e+00 1.00000000e+00 9.52393439e-02 1.18287211e-04 8.98901600e-01 1.63694083e+00 + 9.50000000e+00 0.00000000e+00 1.00000000e+00 6.52518119e-02 2.42711394e-07 8.15797849e-01 1.52796970e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 1.22030099e-01 1.24829956e-04 9.47615038e-01 1.77612046e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S5_rQNWI b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S5_rQNWI new file mode 100644 index 00000000..21a480fd --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_MC_S5_rQNWI @@ -0,0 +1,202 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 5.00000000e-02 0.00000000e+00 1.00000000e+00 5.83743907e-03 2.23921702e-04 8.79939221e-01 2.59274926e+00 + 1.00000000e-01 0.00000000e+00 1.00000000e+00 1.70556598e-02 3.76471983e-05 7.26687571e-01 2.15330476e+00 + 1.50000000e-01 0.00000000e+00 1.00000000e+00 3.89725883e-02 1.13208464e-04 7.77547833e-01 1.96561169e+00 + 2.00000000e-01 0.00000000e+00 1.00000000e+00 5.93693006e-02 9.34147492e-05 8.19836006e-01 1.87143607e+00 + 2.50000000e-01 0.00000000e+00 1.00000000e+00 8.09500862e-02 3.69042223e-05 8.84104853e-01 1.79235387e+00 + 3.00000000e-01 0.00000000e+00 1.00000000e+00 9.60625812e-02 1.59566213e-04 8.77062018e-01 1.75180996e+00 + 3.50000000e-01 0.00000000e+00 1.00000000e+00 1.15693144e-01 -3.59019931e-05 9.03318430e-01 1.70008981e+00 + 4.00000000e-01 0.00000000e+00 1.00000000e+00 1.35795571e-01 1.91819648e-04 9.62560218e-01 1.68295344e+00 + 4.50000000e-01 0.00000000e+00 1.00000000e+00 1.58927305e-01 -9.64385599e-05 1.05428032e+00 1.64745651e+00 + 5.00000000e-01 0.00000000e+00 1.00000000e+00 1.75067290e-01 2.03154347e-04 1.13253055e+00 1.64293844e+00 + 5.50000000e-01 0.00000000e+00 1.00000000e+00 1.84953100e-01 -1.04514777e-04 1.12496371e+00 1.62311357e+00 + 6.00000000e-01 0.00000000e+00 1.00000000e+00 1.90184325e-01 2.01508777e-04 1.13448831e+00 1.63470338e+00 + 6.50000000e-01 0.00000000e+00 1.00000000e+00 1.95082900e-01 -7.64352974e-05 1.12192749e+00 1.63136099e+00 + 7.00000000e-01 0.00000000e+00 1.00000000e+00 2.00943263e-01 1.62717472e-04 1.20107767e+00 1.64402066e+00 + 7.50000000e-01 0.00000000e+00 1.00000000e+00 2.00494092e-01 -3.33137908e-05 1.20158815e+00 1.64443357e+00 + 8.00000000e-01 0.00000000e+00 1.00000000e+00 1.94264367e-01 9.83686976e-05 1.21478814e+00 1.65697095e+00 + 8.50000000e-01 0.00000000e+00 1.00000000e+00 1.78927739e-01 3.40887132e-05 1.11875115e+00 1.67633185e+00 + 9.00000000e-01 0.00000000e+00 1.00000000e+00 1.65586298e-01 3.94388703e-05 1.08794977e+00 1.69082934e+00 + 9.50000000e-01 0.00000000e+00 1.00000000e+00 1.50580893e-01 1.13758498e-04 1.03783955e+00 1.71292770e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.38481046e-01 -1.46226031e-05 1.04357406e+00 1.71097121e+00 + 1.05000000e+00 0.00000000e+00 1.00000000e+00 1.18745962e-01 1.76118551e-04 9.93764820e-01 1.73653986e+00 + 1.10000000e+00 0.00000000e+00 1.00000000e+00 9.76044335e-02 -5.22454535e-05 9.29499721e-01 1.73799324e+00 + 1.15000000e+00 0.00000000e+00 1.00000000e+00 7.36462899e-02 2.19880485e-04 8.53728996e-01 1.77017606e+00 + 1.20000000e+00 0.00000000e+00 1.00000000e+00 5.64395196e-02 -6.13596589e-05 7.94279967e-01 1.75669719e+00 + 1.25000000e+00 0.00000000e+00 1.00000000e+00 4.22960073e-02 2.30851598e-04 7.81654835e-01 1.76684203e+00 + 1.30000000e+00 0.00000000e+00 1.00000000e+00 3.04291182e-02 -4.51084583e-05 7.55466543e-01 1.74475460e+00 + 1.35000000e+00 0.00000000e+00 1.00000000e+00 1.69861077e-02 2.14290921e-04 7.46687185e-01 1.75060234e+00 + 1.40000000e+00 0.00000000e+00 1.00000000e+00 4.09344690e-03 3.14585836e-07 6.88762036e-01 1.73623300e+00 + 1.45000000e+00 0.00000000e+00 1.00000000e+00 -2.41729517e-03 1.72171294e-04 6.71979143e-01 1.72774685e+00 + 1.50000000e+00 0.00000000e+00 1.00000000e+00 -2.97905842e-03 5.12570468e-05 6.43992996e-01 1.70666751e+00 + 1.55000000e+00 0.00000000e+00 1.00000000e+00 3.47224137e-03 1.03175719e-04 6.78712217e-01 1.68110742e+00 + 1.60000000e+00 0.00000000e+00 1.00000000e+00 8.09597779e-03 1.11421193e-04 6.80738194e-01 1.66685054e+00 + 1.65000000e+00 0.00000000e+00 1.00000000e+00 1.52482563e-02 3.53904404e-05 6.94120726e-01 1.64347858e+00 + 1.70000000e+00 0.00000000e+00 1.00000000e+00 2.21548607e-02 1.70487584e-04 6.74275604e-01 1.64061449e+00 + 1.75000000e+00 0.00000000e+00 1.00000000e+00 3.81476813e-02 -2.04411477e-05 6.95831493e-01 1.61493621e+00 + 1.80000000e+00 0.00000000e+00 1.00000000e+00 5.61227643e-02 1.99196377e-04 7.40124250e-01 1.61172513e+00 + 1.85000000e+00 0.00000000e+00 1.00000000e+00 7.72127475e-02 -6.13700699e-05 8.07835734e-01 1.58781277e+00 + 1.90000000e+00 0.00000000e+00 1.00000000e+00 9.25710204e-02 2.05620786e-04 8.47699354e-01 1.59162825e+00 + 1.95000000e+00 0.00000000e+00 1.00000000e+00 1.07747731e-01 -6.81508903e-05 8.57544911e-01 1.57973808e+00 + 2.00000000e+00 0.00000000e+00 1.00000000e+00 1.22813638e-01 1.87253317e-04 8.91780263e-01 1.59020968e+00 + 2.05000000e+00 0.00000000e+00 1.00000000e+00 1.41450848e-01 -4.74682159e-05 9.42187127e-01 1.58384947e+00 + 2.10000000e+00 0.00000000e+00 1.00000000e+00 1.58886674e-01 1.42213823e-04 1.04246544e+00 1.59152201e+00 + 2.15000000e+00 0.00000000e+00 1.00000000e+00 1.70558016e-01 -4.81984077e-06 1.07367265e+00 1.59012888e+00 + 2.20000000e+00 0.00000000e+00 1.00000000e+00 1.76653537e-01 8.19161926e-05 1.10065702e+00 1.60130418e+00 + 2.25000000e+00 0.00000000e+00 1.00000000e+00 1.78395082e-01 5.53481790e-05 1.06456299e+00 1.61219525e+00 + 2.30000000e+00 0.00000000e+00 1.00000000e+00 1.82433972e-01 2.15312106e-05 1.10476963e+00 1.62321867e+00 + 2.35000000e+00 0.00000000e+00 1.00000000e+00 1.83662451e-01 1.14117539e-04 1.11991719e+00 1.63550848e+00 + 2.40000000e+00 0.00000000e+00 1.00000000e+00 1.82745882e-01 -3.22924571e-05 1.16440980e+00 1.64030728e+00 + 2.45000000e+00 0.00000000e+00 1.00000000e+00 1.72026034e-01 1.62204494e-04 1.11446717e+00 1.66150879e+00 + 2.50000000e+00 0.00000000e+00 1.00000000e+00 1.59559010e-01 -6.11900122e-05 1.06832430e+00 1.67180791e+00 + 2.55000000e+00 0.00000000e+00 1.00000000e+00 1.44472284e-01 1.92776304e-04 1.00894822e+00 1.69957281e+00 + 2.60000000e+00 0.00000000e+00 1.00000000e+00 1.33842424e-01 -6.56339161e-05 9.95786578e-01 1.69926960e+00 + 2.65000000e+00 0.00000000e+00 1.00000000e+00 1.20202380e-01 1.94814413e-04 9.84357028e-01 1.71819105e+00 + 2.70000000e+00 0.00000000e+00 1.00000000e+00 1.04499661e-01 -4.40198287e-05 9.44465300e-01 1.71753629e+00 + 2.75000000e+00 0.00000000e+00 1.00000000e+00 8.40975214e-02 1.74582832e-04 8.88544032e-01 1.74122023e+00 + 2.80000000e+00 0.00000000e+00 1.00000000e+00 6.57785244e-02 7.34305765e-06 8.14407597e-01 1.74233068e+00 + 2.85000000e+00 0.00000000e+00 1.00000000e+00 5.19053630e-02 1.35736655e-04 7.90819003e-01 1.74874231e+00 + 2.90000000e+00 0.00000000e+00 1.00000000e+00 4.18890230e-02 6.57957972e-05 7.63422274e-01 1.73734660e+00 + 2.95000000e+00 0.00000000e+00 1.00000000e+00 3.31164287e-02 7.90427588e-05 7.71100146e-01 1.73013267e+00 + 3.00000000e+00 0.00000000e+00 1.00000000e+00 2.19635924e-02 1.28053097e-04 7.29970464e-01 1.72585225e+00 + 3.05000000e+00 0.00000000e+00 1.00000000e+00 1.40275096e-02 2.93549222e-05 7.09513777e-01 1.71509245e+00 + 3.10000000e+00 0.00000000e+00 1.00000000e+00 9.61044774e-03 1.82161082e-04 6.72012942e-01 1.70882542e+00 + 3.15000000e+00 0.00000000e+00 1.00000000e+00 1.40792313e-02 -1.52285409e-05 6.84859151e-01 1.68242864e+00 + 3.20000000e+00 0.00000000e+00 1.00000000e+00 1.93722374e-02 2.08336669e-04 6.97443988e-01 1.67195055e+00 + 3.25000000e+00 0.00000000e+00 1.00000000e+00 2.69687235e-02 -4.01850932e-05 7.20445071e-01 1.64669823e+00 + 3.30000000e+00 0.00000000e+00 1.00000000e+00 3.17626763e-02 2.11609160e-04 7.14199279e-01 1.64475911e+00 + 3.35000000e+00 0.00000000e+00 1.00000000e+00 4.19359668e-02 -3.67323968e-05 7.12048294e-01 1.62538327e+00 + 3.40000000e+00 0.00000000e+00 1.00000000e+00 5.53175340e-02 1.86533934e-04 7.36448213e-01 1.62231479e+00 + 3.45000000e+00 0.00000000e+00 1.00000000e+00 7.38469266e-02 -1.42322218e-05 7.85666677e-01 1.60345078e+00 + 3.50000000e+00 0.00000000e+00 1.00000000e+00 9.00032466e-02 1.34761888e-04 8.48996823e-01 1.59995284e+00 + 3.55000000e+00 0.00000000e+00 1.00000000e+00 1.03584494e-01 2.83569211e-05 8.67472764e-01 1.59182474e+00 + 3.60000000e+00 0.00000000e+00 1.00000000e+00 1.15234852e-01 7.72718921e-05 8.90877269e-01 1.59547619e+00 + 3.65000000e+00 0.00000000e+00 1.00000000e+00 1.28348952e-01 8.12415889e-05 9.01766802e-01 1.59628850e+00 + 3.70000000e+00 0.00000000e+00 1.00000000e+00 1.43957371e-01 1.50544046e-05 9.78221100e-01 1.59798952e+00 + 3.75000000e+00 0.00000000e+00 1.00000000e+00 1.56554248e-01 1.26040743e-04 1.02589936e+00 1.60061993e+00 + 3.80000000e+00 0.00000000e+00 1.00000000e+00 1.65156370e-01 -3.48207036e-05 1.07879525e+00 1.60313413e+00 + 3.85000000e+00 0.00000000e+00 1.00000000e+00 1.66525941e-01 1.61473028e-04 1.05171021e+00 1.61577978e+00 + 3.90000000e+00 0.00000000e+00 1.00000000e+00 1.68286422e-01 -5.89759854e-05 1.05669303e+00 1.62315008e+00 + 3.95000000e+00 0.00000000e+00 1.00000000e+00 1.68415461e-01 1.76739476e-04 1.05483315e+00 1.63879556e+00 + 4.00000000e+00 0.00000000e+00 1.00000000e+00 1.69950891e-01 -6.21302746e-05 1.09858263e+00 1.64084185e+00 + 4.05000000e+00 0.00000000e+00 1.00000000e+00 1.64453513e-01 1.66575526e-04 1.09688274e+00 1.65658060e+00 + 4.10000000e+00 0.00000000e+00 1.00000000e+00 1.55168170e-01 -3.66714751e-05 1.06577454e+00 1.66400225e+00 + 4.15000000e+00 0.00000000e+00 1.00000000e+00 1.40998545e-01 1.41620505e-04 1.00766263e+00 1.68748857e+00 + 4.20000000e+00 0.00000000e+00 1.00000000e+00 1.29511229e-01 1.17225456e-05 9.65394418e-01 1.69459479e+00 + 4.25000000e+00 0.00000000e+00 1.00000000e+00 1.18652633e-01 9.84345122e-05 9.59130129e-01 1.70739444e+00 + 4.30000000e+00 0.00000000e+00 1.00000000e+00 1.07537779e-01 6.72817447e-05 9.39859383e-01 1.70869328e+00 + 4.35000000e+00 0.00000000e+00 1.00000000e+00 9.26007780e-02 5.03750696e-05 9.15698551e-01 1.71963453e+00 + 4.40000000e+00 0.00000000e+00 1.00000000e+00 7.54028548e-02 1.28042500e-04 8.45363149e-01 1.72836298e+00 + 4.45000000e+00 0.00000000e+00 1.00000000e+00 6.09914343e-02 1.26601094e-05 8.08471173e-01 1.73314639e+00 + 4.50000000e+00 0.00000000e+00 1.00000000e+00 5.02793446e-02 1.74785540e-04 7.69859895e-01 1.73211306e+00 + 4.55000000e+00 0.00000000e+00 1.00000000e+00 4.42554809e-02 -1.80260047e-05 7.79041748e-01 1.71979689e+00 + 4.60000000e+00 0.00000000e+00 1.00000000e+00 3.63696908e-02 1.98011620e-04 7.59738246e-01 1.71652512e+00 + 4.65000000e+00 0.00000000e+00 1.00000000e+00 2.95807076e-02 -2.60356295e-05 7.45789019e-01 1.70489163e+00 + 4.70000000e+00 0.00000000e+00 1.00000000e+00 2.27174053e-02 2.02512232e-04 7.08396702e-01 1.70450347e+00 + 4.75000000e+00 0.00000000e+00 1.00000000e+00 2.35328034e-02 -1.17255816e-05 6.98464295e-01 1.68579067e+00 + 4.80000000e+00 0.00000000e+00 1.00000000e+00 2.76268966e-02 1.75591580e-04 7.06949777e-01 1.67579336e+00 + 4.85000000e+00 0.00000000e+00 1.00000000e+00 3.57136137e-02 1.54199298e-05 7.32266401e-01 1.65387841e+00 + 4.90000000e+00 0.00000000e+00 1.00000000e+00 4.10996641e-02 1.29312465e-04 7.46413077e-01 1.64643556e+00 + 4.95000000e+00 0.00000000e+00 1.00000000e+00 4.78958934e-02 6.04112814e-05 7.39379928e-01 1.63402257e+00 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 5.66767419e-02 7.57878886e-05 7.48006490e-01 1.62909629e+00 + 5.05000000e+00 0.00000000e+00 1.00000000e+00 7.07081959e-02 1.05089024e-04 7.69266228e-01 1.61804094e+00 + 5.10000000e+00 0.00000000e+00 1.00000000e+00 8.64224513e-02 1.79274744e-05 8.32758500e-01 1.60958887e+00 + 5.15000000e+00 0.00000000e+00 1.00000000e+00 1.00005358e-01 1.42069065e-04 8.66807268e-01 1.60334693e+00 + 5.20000000e+00 0.00000000e+00 1.00000000e+00 1.10852123e-01 -2.45798112e-05 8.99051205e-01 1.60120788e+00 + 5.25000000e+00 0.00000000e+00 1.00000000e+00 1.19775139e-01 1.68537096e-04 8.92387400e-01 1.60499987e+00 + 5.30000000e+00 0.00000000e+00 1.00000000e+00 1.31722691e-01 -4.65786738e-05 9.33777882e-01 1.60555307e+00 + 5.35000000e+00 0.00000000e+00 1.00000000e+00 1.43108057e-01 1.69924967e-04 9.72583799e-01 1.60958079e+00 + 5.40000000e+00 0.00000000e+00 1.00000000e+00 1.53710078e-01 -4.72446541e-05 1.03865949e+00 1.60914874e+00 + 5.45000000e+00 0.00000000e+00 1.00000000e+00 1.57014938e-01 1.51602730e-04 1.04213182e+00 1.61758575e+00 + 5.50000000e+00 0.00000000e+00 1.00000000e+00 1.58128892e-01 -2.01347308e-05 1.03805377e+00 1.62453037e+00 + 5.55000000e+00 0.00000000e+00 1.00000000e+00 1.56471755e-01 1.17719400e-04 1.01816593e+00 1.63850493e+00 + 5.60000000e+00 0.00000000e+00 1.00000000e+00 1.57453497e-01 2.26882045e-05 1.03603592e+00 1.64412112e+00 + 5.65000000e+00 0.00000000e+00 1.00000000e+00 1.55416148e-01 7.08636604e-05 1.05652857e+00 1.65385051e+00 + 5.70000000e+00 0.00000000e+00 1.00000000e+00 1.50217814e-01 7.29841327e-05 1.05258856e+00 1.66037490e+00 + 5.75000000e+00 0.00000000e+00 1.00000000e+00 1.39122285e-01 2.65859198e-05 1.01682466e+00 1.67570257e+00 + 5.80000000e+00 0.00000000e+00 1.00000000e+00 1.27147028e-01 1.25535269e-04 9.59692468e-01 1.68819276e+00 + 5.85000000e+00 0.00000000e+00 1.00000000e+00 1.16587016e-01 -7.66765143e-06 9.38455911e-01 1.69879256e+00 + 5.90000000e+00 0.00000000e+00 1.00000000e+00 1.07520044e-01 1.62424253e-04 9.19977019e-01 1.70321108e+00 + 5.95000000e+00 0.00000000e+00 1.00000000e+00 9.76547488e-02 -2.79906202e-05 9.21488098e-01 1.70646978e+00 + 6.00000000e+00 0.00000000e+00 1.00000000e+00 8.39144828e-02 1.80511860e-04 8.74216258e-01 1.71400485e+00 + 6.05000000e+00 0.00000000e+00 1.00000000e+00 7.03582319e-02 -2.26134611e-05 8.35872950e-01 1.71897169e+00 + 6.10000000e+00 0.00000000e+00 1.00000000e+00 5.81628663e-02 1.79306249e-04 7.85900109e-01 1.72324997e+00 + 6.15000000e+00 0.00000000e+00 1.00000000e+00 5.20888906e-02 3.66935885e-07 7.80395526e-01 1.71509600e+00 + 6.20000000e+00 0.00000000e+00 1.00000000e+00 4.65925668e-02 1.51761135e-04 7.73587184e-01 1.70923435e+00 + 6.25000000e+00 0.00000000e+00 1.00000000e+00 4.24256684e-02 3.71912847e-05 7.72817545e-01 1.69868669e+00 + 6.30000000e+00 0.00000000e+00 1.00000000e+00 3.58651167e-02 1.12524050e-04 7.46636332e-01 1.69610083e+00 + 6.35000000e+00 0.00000000e+00 1.00000000e+00 3.35385113e-02 8.55684238e-05 7.23398537e-01 1.68653829e+00 + 6.40000000e+00 0.00000000e+00 1.00000000e+00 3.48126605e-02 6.60130386e-05 7.18968022e-01 1.67765155e+00 + 6.45000000e+00 0.00000000e+00 1.00000000e+00 4.16595324e-02 1.26431004e-04 7.34302359e-01 1.66167525e+00 + 6.50000000e+00 0.00000000e+00 1.00000000e+00 4.83468297e-02 1.88133125e-05 7.63189190e-01 1.64974151e+00 + 6.55000000e+00 0.00000000e+00 1.00000000e+00 5.44635560e-02 1.58153718e-04 7.66233963e-01 1.63959940e+00 + 6.60000000e+00 0.00000000e+00 1.00000000e+00 6.04583223e-02 -1.08795071e-05 7.70916009e-01 1.63392367e+00 + 6.65000000e+00 0.00000000e+00 1.00000000e+00 6.94895989e-02 1.73943684e-04 7.69328964e-01 1.62771990e+00 + 6.70000000e+00 0.00000000e+00 1.00000000e+00 8.25984206e-02 -2.59310671e-05 8.13381040e-01 1.62026209e+00 + 6.75000000e+00 0.00000000e+00 1.00000000e+00 9.57277696e-02 1.65101643e-04 8.52055627e-01 1.61327710e+00 + 6.80000000e+00 0.00000000e+00 1.00000000e+00 1.07339215e-01 -2.08414216e-05 8.99484719e-01 1.60916523e+00 + 6.85000000e+00 0.00000000e+00 1.00000000e+00 1.14670149e-01 1.40945202e-04 8.98447714e-01 1.61003153e+00 + 6.90000000e+00 0.00000000e+00 1.00000000e+00 1.23126231e-01 6.86281700e-06 9.15326667e-01 1.61292526e+00 + 6.95000000e+00 0.00000000e+00 1.00000000e+00 1.31582065e-01 1.01372734e-04 9.32000889e-01 1.61589476e+00 + 7.00000000e+00 0.00000000e+00 1.00000000e+00 1.42067130e-01 4.35022676e-05 9.88111340e-01 1.61731624e+00 + 7.05000000e+00 0.00000000e+00 1.00000000e+00 1.47778493e-01 5.34091112e-05 1.01819004e+00 1.62020015e+00 + 7.10000000e+00 0.00000000e+00 1.00000000e+00 1.50187940e-01 8.68671632e-05 1.02737922e+00 1.62654958e+00 + 7.15000000e+00 0.00000000e+00 1.00000000e+00 1.48041744e-01 1.29622591e-05 1.00591639e+00 1.63683728e+00 + 7.20000000e+00 0.00000000e+00 1.00000000e+00 1.47072972e-01 1.26715574e-04 9.95945296e-01 1.64601547e+00 + 7.25000000e+00 0.00000000e+00 1.00000000e+00 1.45884237e-01 -1.79288923e-05 1.01050547e+00 1.65363547e+00 + 7.30000000e+00 0.00000000e+00 1.00000000e+00 1.43642863e-01 1.50496135e-04 1.02115745e+00 1.65890743e+00 + 7.35000000e+00 0.00000000e+00 1.00000000e+00 1.36839048e-01 -3.04852601e-05 1.01691395e+00 1.66832310e+00 + 7.40000000e+00 0.00000000e+00 1.00000000e+00 1.26283818e-01 1.60044114e-04 9.67861242e-01 1.67934459e+00 + 7.45000000e+00 0.00000000e+00 1.00000000e+00 1.15660226e-01 -1.90093690e-05 9.34596085e-01 1.69135481e+00 + 7.50000000e+00 0.00000000e+00 1.00000000e+00 1.06432782e-01 1.50388703e-04 9.02410104e-01 1.69717878e+00 + 7.55000000e+00 0.00000000e+00 1.00000000e+00 9.94084275e-02 7.17543007e-06 9.08762423e-01 1.70017038e+00 + 7.60000000e+00 0.00000000e+00 1.00000000e+00 8.96925911e-02 1.22565723e-04 8.87188380e-01 1.70215156e+00 + 7.65000000e+00 0.00000000e+00 1.00000000e+00 7.88974199e-02 4.84786536e-05 8.62951979e-01 1.70708193e+00 + 7.70000000e+00 0.00000000e+00 1.00000000e+00 6.65263343e-02 8.86464962e-05 8.12342461e-01 1.71141286e+00 + 7.75000000e+00 0.00000000e+00 1.00000000e+00 5.89432017e-02 9.66379162e-05 7.88686577e-01 1.71039543e+00 + 7.80000000e+00 0.00000000e+00 1.00000000e+00 5.37665054e-02 4.86752324e-05 7.78357595e-01 1.70437039e+00 + 7.85000000e+00 0.00000000e+00 1.00000000e+00 5.16150622e-02 1.35561202e-04 7.84725063e-01 1.69525492e+00 + 7.90000000e+00 0.00000000e+00 1.00000000e+00 4.73337976e-02 1.47553647e-05 7.77232909e-01 1.68936962e+00 + 7.95000000e+00 0.00000000e+00 1.00000000e+00 4.39906575e-02 1.65265219e-04 7.54844467e-01 1.68334138e+00 + 8.00000000e+00 0.00000000e+00 1.00000000e+00 4.25783491e-02 -2.85532092e-06 7.40145908e-01 1.67807999e+00 + 8.05000000e+00 0.00000000e+00 1.00000000e+00 4.64201126e-02 1.74793428e-04 7.37840636e-01 1.66644857e+00 + 8.10000000e+00 0.00000000e+00 1.00000000e+00 5.31063433e-02 -8.61245090e-06 7.66435035e-01 1.65578945e+00 + 8.15000000e+00 0.00000000e+00 1.00000000e+00 5.97295219e-02 1.61302828e-04 7.81683058e-01 1.64367554e+00 + 8.20000000e+00 0.00000000e+00 1.00000000e+00 6.53251564e-02 5.75382738e-06 7.95389678e-01 1.63867864e+00 + 8.25000000e+00 0.00000000e+00 1.00000000e+00 7.08075005e-02 1.34138640e-04 7.84554212e-01 1.63246836e+00 + 8.30000000e+00 0.00000000e+00 1.00000000e+00 8.01262568e-02 3.47287313e-05 8.05230347e-01 1.62968539e+00 + 8.35000000e+00 0.00000000e+00 1.00000000e+00 9.11433732e-02 9.16748872e-05 8.32183697e-01 1.62178829e+00 + 8.40000000e+00 0.00000000e+00 1.00000000e+00 1.03208418e-01 6.80828080e-05 8.85454131e-01 1.61841779e+00 + 8.45000000e+00 0.00000000e+00 1.00000000e+00 1.11028289e-01 4.62520231e-05 9.02393458e-01 1.61480464e+00 + 8.50000000e+00 0.00000000e+00 1.00000000e+00 1.17783908e-01 1.05151488e-04 9.14357525e-01 1.61825755e+00 + 8.55000000e+00 0.00000000e+00 1.00000000e+00 1.23231788e-01 8.79622844e-06 9.13426929e-01 1.62075188e+00 + 8.60000000e+00 0.00000000e+00 1.00000000e+00 1.31483435e-01 1.33759953e-04 9.44335833e-01 1.62406115e+00 + 8.65000000e+00 0.00000000e+00 1.00000000e+00 1.38222533e-01 -1.91394948e-05 9.81450473e-01 1.62537592e+00 + 8.70000000e+00 0.00000000e+00 1.00000000e+00 1.42629110e-01 1.47140554e-04 1.00752653e+00 1.62864040e+00 + 8.75000000e+00 0.00000000e+00 1.00000000e+00 1.41938455e-01 -2.64980300e-05 1.00321893e+00 1.63645683e+00 + 8.80000000e+00 0.00000000e+00 1.00000000e+00 1.39673280e-01 1.47147871e-04 9.79823295e-01 1.64465723e+00 + 8.85000000e+00 0.00000000e+00 1.00000000e+00 1.37648470e-01 -1.30084552e-05 9.77674975e-01 1.65459457e+00 + 8.90000000e+00 0.00000000e+00 1.00000000e+00 1.36171196e-01 1.28027995e-04 9.81957974e-01 1.65800620e+00 + 8.95000000e+00 0.00000000e+00 1.00000000e+00 1.33037007e-01 1.46369704e-05 9.99528528e-01 1.66565420e+00 + 9.00000000e+00 0.00000000e+00 1.00000000e+00 1.25507589e-01 9.74673218e-05 9.73096129e-01 1.67108768e+00 + 9.05000000e+00 0.00000000e+00 1.00000000e+00 1.16096090e-01 5.65235856e-05 9.43721139e-01 1.68385547e+00 + 9.10000000e+00 0.00000000e+00 1.00000000e+00 1.06162472e-01 6.38185883e-05 8.99087282e-01 1.68991576e+00 + 9.15000000e+00 0.00000000e+00 1.00000000e+00 9.95625294e-02 9.95976348e-05 8.93053524e-01 1.69596591e+00 + 9.20000000e+00 0.00000000e+00 1.00000000e+00 9.25464025e-02 2.90889157e-05 8.83260229e-01 1.69503657e+00 + 9.25000000e+00 0.00000000e+00 1.00000000e+00 8.52112458e-02 1.35144133e-04 8.77725158e-01 1.69774117e+00 + 9.30000000e+00 0.00000000e+00 1.00000000e+00 7.47077355e-02 6.12634952e-06 8.41086434e-01 1.70057050e+00 + 9.35000000e+00 0.00000000e+00 1.00000000e+00 6.61242003e-02 1.60899910e-04 8.07934881e-01 1.70260671e+00 + 9.40000000e+00 0.00000000e+00 1.00000000e+00 5.98307286e-02 -2.18137394e-06 7.86501770e-01 1.70102651e+00 + 9.45000000e+00 0.00000000e+00 1.00000000e+00 5.78097797e-02 1.65413782e-04 7.86224133e-01 1.69250427e+00 + 9.50000000e+00 0.00000000e+00 1.00000000e+00 5.58787706e-02 2.31092896e-06 7.93531693e-01 1.68683098e+00 + 9.55000000e+00 0.00000000e+00 1.00000000e+00 5.35135201e-02 1.51632032e-04 7.82496809e-01 1.67842774e+00 + 9.60000000e+00 0.00000000e+00 1.00000000e+00 5.10973831e-02 2.56875986e-05 7.68531264e-01 1.67718200e+00 + 9.65000000e+00 0.00000000e+00 1.00000000e+00 5.16499898e-02 1.23896901e-04 7.50967379e-01 1.66755544e+00 + 9.70000000e+00 0.00000000e+00 1.00000000e+00 5.65092192e-02 5.74255458e-05 7.66639549e-01 1.66203323e+00 + 9.75000000e+00 0.00000000e+00 1.00000000e+00 6.29702274e-02 8.27378059e-05 7.83954231e-01 1.64813069e+00 + 9.80000000e+00 0.00000000e+00 1.00000000e+00 6.94403813e-02 9.12370343e-05 8.10736383e-01 1.64357980e+00 + 9.85000000e+00 0.00000000e+00 1.00000000e+00 7.37256772e-02 4.28212965e-05 8.05529119e-01 1.63560343e+00 + 9.90000000e+00 0.00000000e+00 1.00000000e+00 7.98532420e-02 1.24455128e-04 8.11948749e-01 1.63554513e+00 + 9.95000000e+00 0.00000000e+00 1.00000000e+00 8.75764141e-02 9.54326405e-06 8.20464125e-01 1.62945168e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 9.84443177e-02 1.43957045e-04 8.62933523e-01 1.62646642e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_REF b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_REF new file mode 100644 index 00000000..8ff92d3d --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_REF @@ -0,0 +1,1002 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 1.00000000e-02 0.00000000e+00 1.00000000e+00 3.17994533e-04 3.17979966e-07 1.14073784e-01 -2.78989147e+00 + 2.00000000e-02 0.00000000e+00 1.00000000e+00 1.16557429e-03 3.20721957e-05 2.10681070e+00 5.26364568e+00 + 3.00000000e-02 0.00000000e+00 1.00000000e+00 2.35595369e-03 9.67069995e-05 1.14164515e+00 3.27077811e+00 + 4.00000000e-02 0.00000000e+00 1.00000000e+00 3.73148761e-03 1.67247526e-04 9.60906893e-01 2.82661977e+00 + 5.00000000e-02 0.00000000e+00 1.00000000e+00 5.22496260e-03 2.27319753e-04 8.81692929e-01 2.59129817e+00 + 6.00000000e-02 0.00000000e+00 1.00000000e+00 6.76355917e-03 2.66323513e-04 8.36415277e-01 2.45106345e+00 + 7.00000000e-02 0.00000000e+00 1.00000000e+00 8.32860464e-03 2.67211325e-04 8.02089726e-01 2.35153360e+00 + 8.00000000e-02 0.00000000e+00 1.00000000e+00 1.00645622e-02 2.19458882e-04 7.73547296e-01 2.27615426e+00 + 9.00000000e-02 0.00000000e+00 1.00000000e+00 1.23242018e-02 1.30970032e-04 7.49474512e-01 2.21143414e+00 + 1.00000000e-01 0.00000000e+00 1.00000000e+00 1.53985782e-02 3.59775994e-05 7.34074967e-01 2.15334189e+00 + 1.10000000e-01 0.00000000e+00 1.00000000e+00 1.91525054e-02 -2.46800441e-05 7.31590091e-01 2.10028976e+00 + 1.20000000e-01 0.00000000e+00 1.00000000e+00 2.31346822e-02 -3.63075373e-05 7.39534416e-01 2.05478266e+00 + 1.30000000e-01 0.00000000e+00 1.00000000e+00 2.70993833e-02 -8.91251861e-06 7.49603514e-01 2.01733526e+00 + 1.40000000e-01 0.00000000e+00 1.00000000e+00 3.11401187e-02 4.72174110e-05 7.58100555e-01 1.98611355e+00 + 1.50000000e-01 0.00000000e+00 1.00000000e+00 3.52758932e-02 1.28040072e-04 7.67995550e-01 1.96003135e+00 + 1.60000000e-01 0.00000000e+00 1.00000000e+00 3.93112756e-02 2.08175281e-04 7.80021904e-01 1.93884081e+00 + 1.70000000e-01 0.00000000e+00 1.00000000e+00 4.31622335e-02 2.44771703e-04 7.90191559e-01 1.92205081e+00 + 1.80000000e-01 0.00000000e+00 1.00000000e+00 4.69370896e-02 2.21550855e-04 7.96822037e-01 1.90652498e+00 + 1.90000000e-01 0.00000000e+00 1.00000000e+00 5.07267677e-02 1.59221784e-04 8.01626625e-01 1.88949842e+00 + 2.00000000e-01 0.00000000e+00 1.00000000e+00 5.45882460e-02 8.23917557e-05 8.05861889e-01 1.87083261e+00 + 2.10000000e-01 0.00000000e+00 1.00000000e+00 5.85988702e-02 5.39810281e-06 8.10885629e-01 1.85214632e+00 + 2.20000000e-01 0.00000000e+00 1.00000000e+00 6.27900454e-02 -5.24475004e-05 8.18784181e-01 1.83480408e+00 + 2.30000000e-01 0.00000000e+00 1.00000000e+00 6.71200921e-02 -6.70186523e-05 8.30286530e-01 1.81888664e+00 + 2.40000000e-01 0.00000000e+00 1.00000000e+00 7.14372489e-02 -2.68332799e-05 8.45012915e-01 1.80465759e+00 + 2.50000000e-01 0.00000000e+00 1.00000000e+00 7.54395031e-02 5.34816038e-05 8.60994057e-01 1.79299893e+00 + 2.60000000e-01 0.00000000e+00 1.00000000e+00 7.88974622e-02 1.37591636e-04 8.72943052e-01 1.78458487e+00 + 2.70000000e-01 0.00000000e+00 1.00000000e+00 8.19303614e-02 1.94805090e-04 8.76333419e-01 1.77813592e+00 + 2.80000000e-01 0.00000000e+00 1.00000000e+00 8.48880738e-02 2.16939684e-04 8.73003391e-01 1.77154065e+00 + 2.90000000e-01 0.00000000e+00 1.00000000e+00 8.80069268e-02 2.01099440e-04 8.68890937e-01 1.76414865e+00 + 3.00000000e-01 0.00000000e+00 1.00000000e+00 9.12883453e-02 1.41127616e-04 8.67586171e-01 1.75602922e+00 + 3.10000000e-01 0.00000000e+00 1.00000000e+00 9.46771297e-02 5.10071065e-05 8.68118392e-01 1.74639113e+00 + 3.20000000e-01 0.00000000e+00 1.00000000e+00 9.82535212e-02 -3.04081871e-05 8.68732457e-01 1.73461069e+00 + 3.30000000e-01 0.00000000e+00 1.00000000e+00 1.02156925e-01 -7.05899615e-05 8.71144226e-01 1.72195206e+00 + 3.40000000e-01 0.00000000e+00 1.00000000e+00 1.06362949e-01 -6.30534607e-05 8.78859215e-01 1.71068819e+00 + 3.50000000e-01 0.00000000e+00 1.00000000e+00 1.10675038e-01 -1.73245924e-05 8.92137973e-01 1.70209376e+00 + 3.60000000e-01 0.00000000e+00 1.00000000e+00 1.14927050e-01 5.42011898e-05 9.07547775e-01 1.69595864e+00 + 3.70000000e-01 0.00000000e+00 1.00000000e+00 1.19064462e-01 1.34898770e-04 9.21917223e-01 1.69146713e+00 + 3.80000000e-01 0.00000000e+00 1.00000000e+00 1.23049153e-01 1.97822463e-04 9.34152515e-01 1.68751541e+00 + 3.90000000e-01 0.00000000e+00 1.00000000e+00 1.26865974e-01 2.14284372e-04 9.43255200e-01 1.68331489e+00 + 4.00000000e-01 0.00000000e+00 1.00000000e+00 1.30662456e-01 1.75885776e-04 9.48797150e-01 1.67836711e+00 + 4.10000000e-01 0.00000000e+00 1.00000000e+00 1.34710903e-01 1.02387021e-04 9.53595743e-01 1.67216836e+00 + 4.20000000e-01 0.00000000e+00 1.00000000e+00 1.39149820e-01 2.25923954e-05 9.62866222e-01 1.66461900e+00 + 4.30000000e-01 0.00000000e+00 1.00000000e+00 1.43841551e-01 -4.42141272e-05 9.79534912e-01 1.65637273e+00 + 4.40000000e-01 0.00000000e+00 1.00000000e+00 1.48497510e-01 -8.27944292e-05 1.00177950e+00 1.64845095e+00 + 4.50000000e-01 0.00000000e+00 1.00000000e+00 1.52893444e-01 -7.53509462e-05 1.02501665e+00 1.64171360e+00 + 4.60000000e-01 0.00000000e+00 1.00000000e+00 1.56975817e-01 -1.76746504e-05 1.04575434e+00 1.63686306e+00 + 4.70000000e-01 0.00000000e+00 1.00000000e+00 1.60776091e-01 6.71845870e-05 1.06388837e+00 1.63449009e+00 + 4.80000000e-01 0.00000000e+00 1.00000000e+00 1.64241906e-01 1.44018326e-04 1.08080032e+00 1.63447494e+00 + 4.90000000e-01 0.00000000e+00 1.00000000e+00 1.67241595e-01 1.88637180e-04 1.09514960e+00 1.63566832e+00 + 5.00000000e-01 0.00000000e+00 1.00000000e+00 1.69761898e-01 1.92581031e-04 1.10306730e+00 1.63632663e+00 + 5.10000000e-01 0.00000000e+00 1.00000000e+00 1.71989115e-01 1.55496605e-04 1.10356851e+00 1.63533035e+00 + 5.20000000e-01 0.00000000e+00 1.00000000e+00 1.74145143e-01 8.36632636e-05 1.10074052e+00 1.63288622e+00 + 5.30000000e-01 0.00000000e+00 1.00000000e+00 1.76334841e-01 -2.64419717e-06 1.09946395e+00 1.62978194e+00 + 5.40000000e-01 0.00000000e+00 1.00000000e+00 1.78570485e-01 -6.99483448e-05 1.10179135e+00 1.62655724e+00 + 5.50000000e-01 0.00000000e+00 1.00000000e+00 1.80816192e-01 -9.11915301e-05 1.10787969e+00 1.62383757e+00 + 5.60000000e-01 0.00000000e+00 1.00000000e+00 1.82943467e-01 -6.36880434e-05 1.11720494e+00 1.62248306e+00 + 5.70000000e-01 0.00000000e+00 1.00000000e+00 1.84738879e-01 -2.69204109e-06 1.12730819e+00 1.62294825e+00 + 5.80000000e-01 0.00000000e+00 1.00000000e+00 1.86064950e-01 7.44123129e-05 1.13364174e+00 1.62492756e+00 + 5.90000000e-01 0.00000000e+00 1.00000000e+00 1.87014961e-01 1.48521351e-04 1.13313826e+00 1.62778006e+00 + 6.00000000e-01 0.00000000e+00 1.00000000e+00 1.87847726e-01 1.93920612e-04 1.12761348e+00 1.63099594e+00 + 6.10000000e-01 0.00000000e+00 1.00000000e+00 1.88758356e-01 1.89454094e-04 1.12178714e+00 1.63380407e+00 + 6.20000000e-01 0.00000000e+00 1.00000000e+00 1.89768157e-01 1.36092111e-04 1.11850389e+00 1.63518271e+00 + 6.30000000e-01 0.00000000e+00 1.00000000e+00 1.90845986e-01 5.69195780e-05 1.11723562e+00 1.63452837e+00 + 6.40000000e-01 0.00000000e+00 1.00000000e+00 1.92046447e-01 -1.98105832e-05 1.11705403e+00 1.63204744e+00 + 6.50000000e-01 0.00000000e+00 1.00000000e+00 1.93462798e-01 -7.33790559e-05 1.11959334e+00 1.62877550e+00 + 6.60000000e-01 0.00000000e+00 1.00000000e+00 1.95077574e-01 -8.98873026e-05 1.12786105e+00 1.62614950e+00 + 6.70000000e-01 0.00000000e+00 1.00000000e+00 1.96708416e-01 -6.07367477e-05 1.14263567e+00 1.62531782e+00 + 6.80000000e-01 0.00000000e+00 1.00000000e+00 1.98107176e-01 9.02392208e-06 1.16062566e+00 1.62659138e+00 + 6.90000000e-01 0.00000000e+00 1.00000000e+00 1.99107959e-01 9.42155611e-05 1.17637578e+00 1.62939063e+00 + 7.00000000e-01 0.00000000e+00 1.00000000e+00 1.99687835e-01 1.61298600e-04 1.18620985e+00 1.63272774e+00 + 7.10000000e-01 0.00000000e+00 1.00000000e+00 1.99922925e-01 1.88822096e-04 1.18998108e+00 1.63582117e+00 + 7.20000000e-01 0.00000000e+00 1.00000000e+00 1.99941549e-01 1.73146558e-04 1.18959706e+00 1.63822111e+00 + 7.30000000e-01 0.00000000e+00 1.00000000e+00 1.99904174e-01 1.20071227e-04 1.18759957e+00 1.63954852e+00 + 7.40000000e-01 0.00000000e+00 1.00000000e+00 1.99922941e-01 4.21532737e-05 1.18715094e+00 1.63960005e+00 + 7.50000000e-01 0.00000000e+00 1.00000000e+00 1.99942974e-01 -3.67236852e-05 1.19078130e+00 1.63873490e+00 + 7.60000000e-01 0.00000000e+00 1.00000000e+00 1.99761000e-01 -8.64659398e-05 1.19776708e+00 1.63784144e+00 + 7.70000000e-01 0.00000000e+00 1.00000000e+00 1.99206749e-01 -8.78097470e-05 1.20432607e+00 1.63792987e+00 + 7.80000000e-01 0.00000000e+00 1.00000000e+00 1.98259242e-01 -4.32699375e-05 1.20763781e+00 1.63978700e+00 + 7.90000000e-01 0.00000000e+00 1.00000000e+00 1.96955774e-01 2.88119395e-05 1.20810652e+00 1.64381267e+00 + 8.00000000e-01 0.00000000e+00 1.00000000e+00 1.95257610e-01 1.06483527e-04 1.20664514e+00 1.64980205e+00 + 8.10000000e-01 0.00000000e+00 1.00000000e+00 1.93082486e-01 1.68462022e-04 1.20153908e+00 1.65688965e+00 + 8.20000000e-01 0.00000000e+00 1.00000000e+00 1.90457219e-01 1.93974492e-04 1.18983490e+00 1.66376176e+00 + 8.30000000e-01 0.00000000e+00 1.00000000e+00 1.87581754e-01 1.70517887e-04 1.17136102e+00 1.66908907e+00 + 8.40000000e-01 0.00000000e+00 1.00000000e+00 1.84722614e-01 1.05502654e-04 1.15002075e+00 1.67221223e+00 + 8.50000000e-01 0.00000000e+00 1.00000000e+00 1.82056556e-01 2.47683213e-05 1.13109517e+00 1.67353806e+00 + 8.60000000e-01 0.00000000e+00 1.00000000e+00 1.79608740e-01 -4.31855066e-05 1.11783714e+00 1.67413240e+00 + 8.70000000e-01 0.00000000e+00 1.00000000e+00 1.77291770e-01 -7.92693838e-05 1.11030470e+00 1.67489060e+00 + 8.80000000e-01 0.00000000e+00 1.00000000e+00 1.74964070e-01 -7.38692487e-05 1.10651343e+00 1.67635325e+00 + 8.90000000e-01 0.00000000e+00 1.00000000e+00 1.72478488e-01 -2.59645244e-05 1.10372789e+00 1.67892302e+00 + 9.00000000e-01 0.00000000e+00 1.00000000e+00 1.69748595e-01 5.18581814e-05 1.09935494e+00 1.68305312e+00 + 9.10000000e-01 0.00000000e+00 1.00000000e+00 1.66810999e-01 1.32543549e-04 1.09178013e+00 1.68862000e+00 + 9.20000000e-01 0.00000000e+00 1.00000000e+00 1.63805784e-01 1.86364201e-04 1.08136490e+00 1.69455048e+00 + 9.30000000e-01 0.00000000e+00 1.00000000e+00 1.60864514e-01 1.96339669e-04 1.07024729e+00 1.69946504e+00 + 9.40000000e-01 0.00000000e+00 1.00000000e+00 1.58021301e-01 1.62831319e-04 1.06039476e+00 1.70257879e+00 + 9.50000000e-01 0.00000000e+00 1.00000000e+00 1.55254764e-01 9.75912352e-05 1.05186185e+00 1.70359118e+00 + 9.60000000e-01 0.00000000e+00 1.00000000e+00 1.52593416e-01 1.91130434e-05 1.04418675e+00 1.70272217e+00 + 9.70000000e-01 0.00000000e+00 1.00000000e+00 1.50111092e-01 -4.78789127e-05 1.03845611e+00 1.70059948e+00 + 9.80000000e-01 0.00000000e+00 1.00000000e+00 1.47790269e-01 -7.83246224e-05 1.03713069e+00 1.69861108e+00 + 9.90000000e-01 0.00000000e+00 1.00000000e+00 1.45438902e-01 -6.00445321e-05 1.04089554e+00 1.69842285e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.42790222e-01 -1.17237290e-06 1.04652573e+00 1.70092116e+00 + 1.01000000e+00 0.00000000e+00 1.00000000e+00 1.39676058e-01 7.64953431e-05 1.04881062e+00 1.70561517e+00 + 1.02000000e+00 0.00000000e+00 1.00000000e+00 1.36096764e-01 1.48965159e-04 1.04454277e+00 1.71134441e+00 + 1.03000000e+00 0.00000000e+00 1.00000000e+00 1.32170417e-01 1.95364127e-04 1.03388787e+00 1.71713357e+00 + 1.04000000e+00 0.00000000e+00 1.00000000e+00 1.28058777e-01 2.00138800e-04 1.01905993e+00 1.72240707e+00 + 1.05000000e+00 0.00000000e+00 1.00000000e+00 1.23915568e-01 1.59292016e-04 1.00267913e+00 1.72637855e+00 + 1.06000000e+00 0.00000000e+00 1.00000000e+00 1.19836569e-01 8.63959670e-05 9.86968205e-01 1.72847344e+00 + 1.07000000e+00 0.00000000e+00 1.00000000e+00 1.15820009e-01 8.42119336e-06 9.73251475e-01 1.72872545e+00 + 1.08000000e+00 0.00000000e+00 1.00000000e+00 1.11785475e-01 -4.76170606e-05 9.61574360e-01 1.72820073e+00 + 1.09000000e+00 0.00000000e+00 1.00000000e+00 1.07653225e-01 -6.51724160e-05 9.50873286e-01 1.72836597e+00 + 1.10000000e+00 0.00000000e+00 1.00000000e+00 1.03403935e-01 -3.96865012e-05 9.40055566e-01 1.73018364e+00 + 1.11000000e+00 0.00000000e+00 1.00000000e+00 9.90499824e-02 2.25734772e-05 9.28811011e-01 1.73389442e+00 + 1.12000000e+00 0.00000000e+00 1.00000000e+00 9.45673555e-02 1.03427201e-04 9.17148573e-01 1.73929392e+00 + 1.13000000e+00 0.00000000e+00 1.00000000e+00 8.99063936e-02 1.75371152e-04 9.04221629e-01 1.74582663e+00 + 1.14000000e+00 0.00000000e+00 1.00000000e+00 8.50995562e-02 2.12860787e-04 8.88406357e-01 1.75216582e+00 + 1.15000000e+00 0.00000000e+00 1.00000000e+00 8.03340268e-02 2.04578157e-04 8.69236836e-01 1.75656333e+00 + 1.16000000e+00 0.00000000e+00 1.00000000e+00 7.58734775e-02 1.56010504e-04 8.48819318e-01 1.75789510e+00 + 1.17000000e+00 0.00000000e+00 1.00000000e+00 7.18917344e-02 8.36486060e-05 8.30856297e-01 1.75642355e+00 + 1.18000000e+00 0.00000000e+00 1.00000000e+00 6.83835866e-02 9.52196053e-06 8.18116318e-01 1.75323861e+00 + 1.19000000e+00 0.00000000e+00 1.00000000e+00 6.52143277e-02 -4.23241488e-05 8.10839906e-01 1.74947833e+00 + 1.20000000e+00 0.00000000e+00 1.00000000e+00 6.22188869e-02 -5.27058599e-05 8.07328520e-01 1.74611826e+00 + 1.21000000e+00 0.00000000e+00 1.00000000e+00 5.92597829e-02 -1.68975184e-05 8.05501376e-01 1.74406907e+00 + 1.22000000e+00 0.00000000e+00 1.00000000e+00 5.62511359e-02 5.19203554e-05 8.03686374e-01 1.74407558e+00 + 1.23000000e+00 0.00000000e+00 1.00000000e+00 5.31792034e-02 1.29700765e-04 8.00668416e-01 1.74609829e+00 + 1.24000000e+00 0.00000000e+00 1.00000000e+00 5.00954899e-02 1.92074293e-04 7.95915588e-01 1.74905996e+00 + 1.25000000e+00 0.00000000e+00 1.00000000e+00 4.70639758e-02 2.20465022e-04 7.89780802e-01 1.75143547e+00 + 1.26000000e+00 0.00000000e+00 1.00000000e+00 4.41167165e-02 2.05133759e-04 7.83016136e-01 1.75212668e+00 + 1.27000000e+00 0.00000000e+00 1.00000000e+00 4.12739202e-02 1.49435281e-04 7.76050491e-01 1.75066036e+00 + 1.28000000e+00 0.00000000e+00 1.00000000e+00 3.85877718e-02 7.19887910e-05 7.69141274e-01 1.74715002e+00 + 1.29000000e+00 0.00000000e+00 1.00000000e+00 3.61199442e-02 3.59333262e-07 7.63143123e-01 1.74225914e+00 + 1.30000000e+00 0.00000000e+00 1.00000000e+00 3.38487825e-02 -4.12775784e-05 7.59552151e-01 1.73724792e+00 + 1.31000000e+00 0.00000000e+00 1.00000000e+00 3.16137929e-02 -4.07880158e-05 7.59152197e-01 1.73365768e+00 + 1.32000000e+00 0.00000000e+00 1.00000000e+00 2.91872393e-02 8.79484511e-07 7.60527039e-01 1.73258306e+00 + 1.33000000e+00 0.00000000e+00 1.00000000e+00 2.64246687e-02 7.15171025e-05 7.60489847e-01 1.73407105e+00 + 1.34000000e+00 0.00000000e+00 1.00000000e+00 2.33549392e-02 1.49298469e-04 7.56354835e-01 1.73716241e+00 + 1.35000000e+00 0.00000000e+00 1.00000000e+00 2.01389280e-02 2.07866389e-04 7.47749531e-01 1.74058805e+00 + 1.36000000e+00 0.00000000e+00 1.00000000e+00 1.69636920e-02 2.26736217e-04 7.36270740e-01 1.74325533e+00 + 1.37000000e+00 0.00000000e+00 1.00000000e+00 1.39739122e-02 2.00557281e-04 7.23910878e-01 1.74422555e+00 + 1.38000000e+00 0.00000000e+00 1.00000000e+00 1.12594741e-02 1.39864006e-04 7.12066955e-01 1.74278967e+00 + 1.39000000e+00 0.00000000e+00 1.00000000e+00 8.85738577e-03 6.48300205e-05 7.01627503e-01 1.73884945e+00 + 1.40000000e+00 0.00000000e+00 1.00000000e+00 6.75516659e-03 -1.18274390e-06 6.93219087e-01 1.73326537e+00 + 1.41000000e+00 0.00000000e+00 1.00000000e+00 4.91331826e-03 -3.65755660e-05 6.86996939e-01 1.72752055e+00 + 1.42000000e+00 0.00000000e+00 1.00000000e+00 3.29256793e-03 -2.80733326e-05 6.82582927e-01 1.72302312e+00 + 1.43000000e+00 0.00000000e+00 1.00000000e+00 1.84962345e-03 2.23793405e-05 6.79475076e-01 1.72049894e+00 + 1.44000000e+00 0.00000000e+00 1.00000000e+00 5.17163757e-04 9.70316282e-05 6.77255716e-01 1.71987826e+00 + 1.45000000e+00 0.00000000e+00 1.00000000e+00 -7.69324722e-04 1.70275912e-04 6.75130639e-01 1.72044709e+00 + 1.46000000e+00 0.00000000e+00 1.00000000e+00 -1.99092418e-03 2.18884188e-04 6.71706388e-01 1.72107907e+00 + 1.47000000e+00 0.00000000e+00 1.00000000e+00 -3.00018873e-03 2.28185654e-04 6.65919971e-01 1.72046936e+00 + 1.48000000e+00 0.00000000e+00 1.00000000e+00 -3.59081019e-03 1.94718604e-04 6.58426653e-01 1.71757477e+00 + 1.49000000e+00 0.00000000e+00 1.00000000e+00 -3.63735702e-03 1.28148196e-04 6.51773277e-01 1.71210159e+00 + 1.50000000e+00 0.00000000e+00 1.00000000e+00 -3.17805159e-03 5.03901577e-05 6.48749994e-01 1.70465370e+00 + 1.51000000e+00 0.00000000e+00 1.00000000e+00 -2.37574272e-03 -1.17429094e-05 6.50344650e-01 1.69645816e+00 + 1.52000000e+00 0.00000000e+00 1.00000000e+00 -1.41530996e-03 -3.76525661e-05 6.55396838e-01 1.68888213e+00 + 1.53000000e+00 0.00000000e+00 1.00000000e+00 -4.33692047e-04 -2.02174724e-05 6.61930233e-01 1.68298985e+00 + 1.54000000e+00 0.00000000e+00 1.00000000e+00 4.88571072e-04 3.39922062e-05 6.68448335e-01 1.67939007e+00 + 1.55000000e+00 0.00000000e+00 1.00000000e+00 1.31293357e-03 1.07946538e-04 6.74058400e-01 1.67811077e+00 + 1.56000000e+00 0.00000000e+00 1.00000000e+00 2.03795231e-03 1.78000274e-04 6.78085781e-01 1.67841795e+00 + 1.57000000e+00 0.00000000e+00 1.00000000e+00 2.69716971e-03 2.20181930e-04 6.80066514e-01 1.67895147e+00 + 1.58000000e+00 0.00000000e+00 1.00000000e+00 3.35009913e-03 2.19390038e-04 6.80012861e-01 1.67832228e+00 + 1.59000000e+00 0.00000000e+00 1.00000000e+00 4.07631791e-03 1.76200127e-04 6.78417986e-01 1.67573584e+00 + 1.60000000e+00 0.00000000e+00 1.00000000e+00 4.97000769e-03 1.05950500e-04 6.76094584e-01 1.67121935e+00 + 1.61000000e+00 0.00000000e+00 1.00000000e+00 6.10528287e-03 3.16857015e-05 6.74233919e-01 1.66544246e+00 + 1.62000000e+00 0.00000000e+00 1.00000000e+00 7.47041994e-03 -2.33391540e-05 6.74319452e-01 1.65937492e+00 + 1.63000000e+00 0.00000000e+00 1.00000000e+00 8.93554880e-03 -4.13769905e-05 6.77250712e-01 1.65411863e+00 + 1.64000000e+00 0.00000000e+00 1.00000000e+00 1.03174565e-02 -1.56002004e-05 6.82150929e-01 1.65064451e+00 + 1.65000000e+00 0.00000000e+00 1.00000000e+00 1.15068906e-02 4.59028468e-05 6.86503338e-01 1.64933139e+00 + 1.66000000e+00 0.00000000e+00 1.00000000e+00 1.25457412e-02 1.21921881e-04 6.87935779e-01 1.64974644e+00 + 1.67000000e+00 0.00000000e+00 1.00000000e+00 1.35900397e-02 1.86586360e-04 6.85886301e-01 1.65085926e+00 + 1.68000000e+00 0.00000000e+00 1.00000000e+00 1.48108250e-02 2.19141279e-04 6.81624061e-01 1.65152307e+00 + 1.69000000e+00 0.00000000e+00 1.00000000e+00 1.63276973e-02 2.09687571e-04 6.76962889e-01 1.65076237e+00 + 1.70000000e+00 0.00000000e+00 1.00000000e+00 1.82060779e-02 1.60914166e-04 6.73201195e-01 1.64793081e+00 + 1.71000000e+00 0.00000000e+00 1.00000000e+00 2.04772640e-02 8.78162379e-05 6.71085610e-01 1.64288383e+00 + 1.72000000e+00 0.00000000e+00 1.00000000e+00 2.31413688e-02 1.43850318e-05 6.71274955e-01 1.63619145e+00 + 1.73000000e+00 0.00000000e+00 1.00000000e+00 2.61568544e-02 -3.44355218e-05 6.74426075e-01 1.62917619e+00 + 1.74000000e+00 0.00000000e+00 1.00000000e+00 2.94377460e-02 -4.26015847e-05 6.80791960e-01 1.62329272e+00 + 1.75000000e+00 0.00000000e+00 1.00000000e+00 3.28649285e-02 -8.59201272e-06 6.89899802e-01 1.61937486e+00 + 1.76000000e+00 0.00000000e+00 1.00000000e+00 3.63114523e-02 5.55805015e-05 7.00531050e-01 1.61738348e+00 + 1.77000000e+00 0.00000000e+00 1.00000000e+00 3.96877381e-02 1.29090754e-04 7.10940259e-01 1.61668351e+00 + 1.78000000e+00 0.00000000e+00 1.00000000e+00 4.29959266e-02 1.87979104e-04 7.19443823e-01 1.61644230e+00 + 1.79000000e+00 0.00000000e+00 1.00000000e+00 4.63466136e-02 2.12028024e-04 7.25403842e-01 1.61579946e+00 + 1.80000000e+00 0.00000000e+00 1.00000000e+00 4.98963280e-02 1.92299075e-04 7.29951673e-01 1.61396193e+00 + 1.81000000e+00 0.00000000e+00 1.00000000e+00 5.37354611e-02 1.35285689e-04 7.35564487e-01 1.61046377e+00 + 1.82000000e+00 0.00000000e+00 1.00000000e+00 5.78189804e-02 6.02419480e-05 7.44463790e-01 1.60552439e+00 + 1.83000000e+00 0.00000000e+00 1.00000000e+00 6.19986025e-02 -8.49591408e-06 7.56998627e-01 1.60001546e+00 + 1.84000000e+00 0.00000000e+00 1.00000000e+00 6.61148183e-02 -4.93898186e-05 7.71661463e-01 1.59497366e+00 + 1.85000000e+00 0.00000000e+00 1.00000000e+00 7.00594087e-02 -4.94582629e-05 7.86504594e-01 1.59139111e+00 + 1.86000000e+00 0.00000000e+00 1.00000000e+00 7.37738534e-02 -8.30285981e-06 8.00274779e-01 1.58986763e+00 + 1.87000000e+00 0.00000000e+00 1.00000000e+00 7.72251940e-02 6.05536822e-05 8.12231698e-01 1.59042904e+00 + 1.88000000e+00 0.00000000e+00 1.00000000e+00 8.04061240e-02 1.33557696e-04 8.21602076e-01 1.59243989e+00 + 1.89000000e+00 0.00000000e+00 1.00000000e+00 8.33561405e-02 1.85890230e-04 8.27650882e-01 1.59479066e+00 + 1.90000000e+00 0.00000000e+00 1.00000000e+00 8.61718238e-02 2.00505097e-04 8.30279777e-01 1.59632192e+00 + 1.91000000e+00 0.00000000e+00 1.00000000e+00 8.89896402e-02 1.73036526e-04 8.30458637e-01 1.59632152e+00 + 1.92000000e+00 0.00000000e+00 1.00000000e+00 9.19458222e-02 1.12199701e-04 8.30113574e-01 1.59477563e+00 + 1.93000000e+00 0.00000000e+00 1.00000000e+00 9.51236152e-02 3.73026911e-05 8.31487395e-01 1.59218708e+00 + 1.94000000e+00 0.00000000e+00 1.00000000e+00 9.85073943e-02 -2.70595637e-05 8.36263795e-01 1.58924910e+00 + 1.95000000e+00 0.00000000e+00 1.00000000e+00 1.01979331e-01 -5.92511840e-05 8.44706211e-01 1.58675940e+00 + 1.96000000e+00 0.00000000e+00 1.00000000e+00 1.05382437e-01 -4.87931547e-05 8.55256593e-01 1.58539513e+00 + 1.97000000e+00 0.00000000e+00 1.00000000e+00 1.08619308e-01 6.45738760e-08 8.65320098e-01 1.58549595e+00 + 1.98000000e+00 0.00000000e+00 1.00000000e+00 1.11711148e-01 7.07411485e-05 8.72961796e-01 1.58683428e+00 + 1.99000000e+00 0.00000000e+00 1.00000000e+00 1.14769739e-01 1.40187868e-04 8.78116405e-01 1.58898388e+00 + 2.00000000e+00 0.00000000e+00 1.00000000e+00 1.17916663e-01 1.85664519e-04 8.82228873e-01 1.59108021e+00 + 2.01000000e+00 0.00000000e+00 1.00000000e+00 1.21227403e-01 1.91617639e-04 8.86908475e-01 1.59222166e+00 + 2.02000000e+00 0.00000000e+00 1.00000000e+00 1.24734394e-01 1.55409697e-04 8.93108201e-01 1.59173445e+00 + 2.03000000e+00 0.00000000e+00 1.00000000e+00 1.28451870e-01 8.89648851e-05 9.01331352e-01 1.58945155e+00 + 2.04000000e+00 0.00000000e+00 1.00000000e+00 1.32373582e-01 1.44697698e-05 9.12413308e-01 1.58604901e+00 + 2.05000000e+00 0.00000000e+00 1.00000000e+00 1.36443925e-01 -4.38180978e-05 9.27186856e-01 1.58257665e+00 + 2.06000000e+00 0.00000000e+00 1.00000000e+00 1.40541767e-01 -6.74682973e-05 9.45786166e-01 1.58015310e+00 + 2.07000000e+00 0.00000000e+00 1.00000000e+00 1.44502879e-01 -4.90884286e-05 9.66880144e-01 1.57937010e+00 + 2.08000000e+00 0.00000000e+00 1.00000000e+00 1.48172301e-01 5.36201288e-06 9.87862464e-01 1.58022570e+00 + 2.09000000e+00 0.00000000e+00 1.00000000e+00 1.51462050e-01 7.77760748e-05 1.00582491e+00 1.58224615e+00 + 2.10000000e+00 0.00000000e+00 1.00000000e+00 1.54388671e-01 1.43610349e-04 1.01893492e+00 1.58482371e+00 + 2.11000000e+00 0.00000000e+00 1.00000000e+00 1.57065336e-01 1.80675002e-04 1.02731697e+00 1.58725386e+00 + 2.12000000e+00 0.00000000e+00 1.00000000e+00 1.59638594e-01 1.76897078e-04 1.03300346e+00 1.58900511e+00 + 2.13000000e+00 0.00000000e+00 1.00000000e+00 1.62200900e-01 1.33729227e-04 1.03870832e+00 1.58973341e+00 + 2.14000000e+00 0.00000000e+00 1.00000000e+00 1.64741096e-01 6.50596676e-05 1.04627024e+00 1.58947699e+00 + 2.15000000e+00 0.00000000e+00 1.00000000e+00 1.67169296e-01 -6.99643974e-06 1.05571897e+00 1.58865453e+00 + 2.16000000e+00 0.00000000e+00 1.00000000e+00 1.69385709e-01 -5.87036055e-05 1.06576476e+00 1.58799573e+00 + 2.17000000e+00 0.00000000e+00 1.00000000e+00 1.71327630e-01 -7.27088864e-05 1.07504652e+00 1.58833958e+00 + 2.18000000e+00 0.00000000e+00 1.00000000e+00 1.72965550e-01 -4.44788778e-05 1.08278346e+00 1.59026070e+00 + 2.19000000e+00 0.00000000e+00 1.00000000e+00 1.74281249e-01 1.61763507e-05 1.08845227e+00 1.59386603e+00 + 2.20000000e+00 0.00000000e+00 1.00000000e+00 1.75273493e-01 8.90257456e-05 1.09118293e+00 1.59862365e+00 + 2.21000000e+00 0.00000000e+00 1.00000000e+00 1.75991511e-01 1.50314132e-04 1.09004887e+00 1.60356536e+00 + 2.22000000e+00 0.00000000e+00 1.00000000e+00 1.76554613e-01 1.80020258e-04 1.08515517e+00 1.60771848e+00 + 2.23000000e+00 0.00000000e+00 1.00000000e+00 1.77126402e-01 1.68117218e-04 1.07822419e+00 1.61046616e+00 + 2.24000000e+00 0.00000000e+00 1.00000000e+00 1.77853650e-01 1.18333143e-04 1.07213636e+00 1.61172093e+00 + 2.25000000e+00 0.00000000e+00 1.00000000e+00 1.78805028e-01 4.73275254e-05 1.06967078e+00 1.61182324e+00 + 2.26000000e+00 0.00000000e+00 1.00000000e+00 1.79941244e-01 -2.11828192e-05 1.07227746e+00 1.61137296e+00 + 2.27000000e+00 0.00000000e+00 1.00000000e+00 1.81133278e-01 -6.47636387e-05 1.07948282e+00 1.61108875e+00 + 2.28000000e+00 0.00000000e+00 1.00000000e+00 1.82225590e-01 -6.94525916e-05 1.08915344e+00 1.61163539e+00 + 2.29000000e+00 0.00000000e+00 1.00000000e+00 1.83112909e-01 -3.37841517e-05 1.09855257e+00 1.61337594e+00 + 2.30000000e+00 0.00000000e+00 1.00000000e+00 1.83781301e-01 3.07215532e-05 1.10579705e+00 1.61631161e+00 + 2.31000000e+00 0.00000000e+00 1.00000000e+00 1.84286867e-01 1.02794972e-04 1.11060357e+00 1.62002666e+00 + 2.32000000e+00 0.00000000e+00 1.00000000e+00 1.84698675e-01 1.58294521e-04 1.11384957e+00 1.62381954e+00 + 2.33000000e+00 0.00000000e+00 1.00000000e+00 1.85060711e-01 1.78702227e-04 1.11649329e+00 1.62688063e+00 + 2.34000000e+00 0.00000000e+00 1.00000000e+00 1.85396376e-01 1.57507373e-04 1.11908537e+00 1.62860914e+00 + 2.35000000e+00 0.00000000e+00 1.00000000e+00 1.85725586e-01 1.01922406e-04 1.12214708e+00 1.62887768e+00 + 2.36000000e+00 0.00000000e+00 1.00000000e+00 1.86054088e-01 3.01338928e-05 1.12664168e+00 1.62817883e+00 + 2.37000000e+00 0.00000000e+00 1.00000000e+00 1.86336822e-01 -3.44150834e-05 1.13361983e+00 1.62745394e+00 + 2.38000000e+00 0.00000000e+00 1.00000000e+00 1.86457401e-01 -7.03604389e-05 1.14311460e+00 1.62769161e+00 + 2.39000000e+00 0.00000000e+00 1.00000000e+00 1.86256502e-01 -6.56265880e-05 1.15338463e+00 1.62953262e+00 + 2.40000000e+00 0.00000000e+00 1.00000000e+00 1.85598060e-01 -2.18253353e-05 1.16135774e+00 1.63309135e+00 + 2.41000000e+00 0.00000000e+00 1.00000000e+00 1.84431967e-01 4.63335479e-05 1.16413465e+00 1.63801313e+00 + 2.42000000e+00 0.00000000e+00 1.00000000e+00 1.82817464e-01 1.16364347e-04 1.16047593e+00 1.64363391e+00 + 2.43000000e+00 0.00000000e+00 1.00000000e+00 1.80896450e-01 1.65536057e-04 1.15135388e+00 1.64923510e+00 + 2.44000000e+00 0.00000000e+00 1.00000000e+00 1.78830418e-01 1.77940497e-04 1.13924115e+00 1.65413427e+00 + 2.45000000e+00 0.00000000e+00 1.00000000e+00 1.76733386e-01 1.49492486e-04 1.12681903e+00 1.65783796e+00 + 2.46000000e+00 0.00000000e+00 1.00000000e+00 1.74638811e-01 8.96119047e-05 1.11587009e+00 1.66025844e+00 + 2.47000000e+00 0.00000000e+00 1.00000000e+00 1.72517374e-01 1.84248328e-05 1.10682721e+00 1.66175569e+00 + 2.48000000e+00 0.00000000e+00 1.00000000e+00 1.70322390e-01 -4.01406920e-05 1.09920605e+00 1.66306115e+00 + 2.49000000e+00 0.00000000e+00 1.00000000e+00 1.68019367e-01 -6.66310144e-05 1.09238448e+00 1.66502671e+00 + 2.50000000e+00 0.00000000e+00 1.00000000e+00 1.65582121e-01 -5.23478098e-05 1.08585846e+00 1.66825827e+00 + 2.51000000e+00 0.00000000e+00 1.00000000e+00 1.62981757e-01 -1.82462448e-06 1.07904010e+00 1.67296021e+00 + 2.52000000e+00 0.00000000e+00 1.00000000e+00 1.60202835e-01 6.86640473e-05 1.07084844e+00 1.67867839e+00 + 2.53000000e+00 0.00000000e+00 1.00000000e+00 1.57282370e-01 1.36112012e-04 1.06023222e+00 1.68455231e+00 + 2.54000000e+00 0.00000000e+00 1.00000000e+00 1.54330027e-01 1.78290027e-04 1.04721840e+00 1.68958701e+00 + 2.55000000e+00 0.00000000e+00 1.00000000e+00 1.51497367e-01 1.81436962e-04 1.03325669e+00 1.69292535e+00 + 2.56000000e+00 0.00000000e+00 1.00000000e+00 1.48909043e-01 1.44948318e-04 1.02097648e+00 1.69442331e+00 + 2.57000000e+00 0.00000000e+00 1.00000000e+00 1.46600866e-01 8.12518260e-05 1.01264233e+00 1.69436131e+00 + 2.58000000e+00 0.00000000e+00 1.00000000e+00 1.44502079e-01 1.14347890e-05 1.00912889e+00 1.69340822e+00 + 2.59000000e+00 0.00000000e+00 1.00000000e+00 1.42468026e-01 -4.15106445e-05 1.00961330e+00 1.69247236e+00 + 2.60000000e+00 0.00000000e+00 1.00000000e+00 1.40342284e-01 -5.99427043e-05 1.01202163e+00 1.69243244e+00 + 2.61000000e+00 0.00000000e+00 1.00000000e+00 1.38015203e-01 -3.74772700e-05 1.01398542e+00 1.69384964e+00 + 2.62000000e+00 0.00000000e+00 1.00000000e+00 1.35449784e-01 1.85846606e-05 1.01385181e+00 1.69684549e+00 + 2.63000000e+00 0.00000000e+00 1.00000000e+00 1.32666809e-01 8.96850224e-05 1.01103324e+00 1.70102625e+00 + 2.64000000e+00 0.00000000e+00 1.00000000e+00 1.29710221e-01 1.52458180e-04 1.00568536e+00 1.70562070e+00 + 2.65000000e+00 0.00000000e+00 1.00000000e+00 1.26625493e-01 1.86535937e-04 9.98257722e-01 1.70961418e+00 + 2.66000000e+00 0.00000000e+00 1.00000000e+00 1.23461998e-01 1.81000098e-04 9.89266929e-01 1.71235600e+00 + 2.67000000e+00 0.00000000e+00 1.00000000e+00 1.20276720e-01 1.37821597e-04 9.79500057e-01 1.71359301e+00 + 2.68000000e+00 0.00000000e+00 1.00000000e+00 1.17112294e-01 7.14122333e-05 9.70173548e-01 1.71360330e+00 + 2.69000000e+00 0.00000000e+00 1.00000000e+00 1.13956586e-01 4.05164265e-06 9.62503857e-01 1.71323596e+00 + 2.70000000e+00 0.00000000e+00 1.00000000e+00 1.10723854e-01 -4.16365139e-05 9.56739418e-01 1.71351302e+00 + 2.71000000e+00 0.00000000e+00 1.00000000e+00 1.07287376e-01 -5.03913057e-05 9.51666490e-01 1.71523209e+00 + 2.72000000e+00 0.00000000e+00 1.00000000e+00 1.03548995e-01 -1.92415173e-05 9.45111487e-01 1.71867483e+00 + 2.73000000e+00 0.00000000e+00 1.00000000e+00 9.94989318e-02 4.18128930e-05 9.35169797e-01 1.72354190e+00 + 2.74000000e+00 0.00000000e+00 1.00000000e+00 9.52285551e-02 1.13108631e-04 9.21284750e-01 1.72907366e+00 + 2.75000000e+00 0.00000000e+00 1.00000000e+00 9.08937973e-02 1.71535138e-04 9.04418772e-01 1.73439776e+00 + 2.76000000e+00 0.00000000e+00 1.00000000e+00 8.66552600e-02 1.98076549e-04 8.86394961e-01 1.73861222e+00 + 2.77000000e+00 0.00000000e+00 1.00000000e+00 8.26275851e-02 1.84293184e-04 8.69071560e-01 1.74102127e+00 + 2.78000000e+00 0.00000000e+00 1.00000000e+00 7.88596826e-02 1.35212926e-04 8.53761522e-01 1.74137591e+00 + 2.79000000e+00 0.00000000e+00 1.00000000e+00 7.53469258e-02 6.74842303e-05 8.41066463e-01 1.74003009e+00 + 2.80000000e+00 0.00000000e+00 1.00000000e+00 7.20563153e-02 3.71758511e-06 8.31029145e-01 1.73787589e+00 + 2.81000000e+00 0.00000000e+00 1.00000000e+00 6.89411930e-02 -3.48620559e-05 8.23396453e-01 1.73595698e+00 + 2.82000000e+00 0.00000000e+00 1.00000000e+00 6.59408392e-02 -3.52469795e-05 8.17713367e-01 1.73512957e+00 + 2.83000000e+00 0.00000000e+00 1.00000000e+00 6.29845620e-02 2.99300157e-06 8.13179281e-01 1.73572652e+00 + 2.84000000e+00 0.00000000e+00 1.00000000e+00 6.00195898e-02 6.73948628e-05 8.08603624e-01 1.73752574e+00 + 2.85000000e+00 0.00000000e+00 1.00000000e+00 5.70519904e-02 1.36762879e-04 8.02780548e-01 1.73975119e+00 + 2.86000000e+00 0.00000000e+00 1.00000000e+00 5.41630647e-02 1.88373437e-04 7.95236668e-01 1.74139838e+00 + 2.87000000e+00 0.00000000e+00 1.00000000e+00 5.14750842e-02 2.05498033e-04 7.86704335e-01 1.74163777e+00 + 2.88000000e+00 0.00000000e+00 1.00000000e+00 4.90824359e-02 1.82721326e-04 7.78832780e-01 1.74006345e+00 + 2.89000000e+00 0.00000000e+00 1.00000000e+00 4.69946811e-02 1.27629877e-04 7.73310148e-01 1.73684536e+00 + 2.90000000e+00 0.00000000e+00 1.00000000e+00 4.51277083e-02 5.84587367e-05 7.70927465e-01 1.73264546e+00 + 2.91000000e+00 0.00000000e+00 1.00000000e+00 4.33421773e-02 -1.80802243e-06 7.71213472e-01 1.72839852e+00 + 2.92000000e+00 0.00000000e+00 1.00000000e+00 4.15000024e-02 -3.31319448e-05 7.72781344e-01 1.72509418e+00 + 2.93000000e+00 0.00000000e+00 1.00000000e+00 3.95074377e-02 -2.51473456e-05 7.74031283e-01 1.72345959e+00 + 2.94000000e+00 0.00000000e+00 1.00000000e+00 3.73295977e-02 1.95167023e-05 7.73729566e-01 1.72370505e+00 + 2.95000000e+00 0.00000000e+00 1.00000000e+00 3.49808310e-02 8.62555307e-05 7.71222413e-01 1.72543276e+00 + 2.96000000e+00 0.00000000e+00 1.00000000e+00 3.25077821e-02 1.53267223e-04 7.66356074e-01 1.72776669e+00 + 2.97000000e+00 0.00000000e+00 1.00000000e+00 2.99803270e-02 1.98597823e-04 7.59324151e-01 1.72969648e+00 + 2.98000000e+00 0.00000000e+00 1.00000000e+00 2.74895702e-02 2.07402469e-04 7.50619244e-01 1.73033924e+00 + 2.99000000e+00 0.00000000e+00 1.00000000e+00 2.51361349e-02 1.77005649e-04 7.41105723e-01 1.72922342e+00 + 3.00000000e+00 0.00000000e+00 1.00000000e+00 2.29967276e-02 1.17798771e-04 7.32005995e-01 1.72648318e+00 + 3.01000000e+00 0.00000000e+00 1.00000000e+00 2.10834381e-02 4.96137254e-05 7.24569744e-01 1.72278337e+00 + 3.02000000e+00 0.00000000e+00 1.00000000e+00 1.93306062e-02 -4.95009681e-06 7.19442892e-01 1.71909138e+00 + 3.03000000e+00 0.00000000e+00 1.00000000e+00 1.76307474e-02 -2.78405705e-05 7.16179707e-01 1.71631401e+00 + 3.04000000e+00 0.00000000e+00 1.00000000e+00 1.59017784e-02 -1.13323233e-05 7.13394636e-01 1.71493140e+00 + 3.05000000e+00 0.00000000e+00 1.00000000e+00 1.41405030e-02 3.93492018e-05 7.09563325e-01 1.71486729e+00 + 3.06000000e+00 0.00000000e+00 1.00000000e+00 1.24285795e-02 1.07598505e-04 7.03870365e-01 1.71557122e+00 + 3.07000000e+00 0.00000000e+00 1.00000000e+00 1.08941587e-02 1.70942674e-04 6.96519315e-01 1.71620580e+00 + 3.08000000e+00 0.00000000e+00 1.00000000e+00 9.65987001e-03 2.08593642e-04 6.88475434e-01 1.71587863e+00 + 3.09000000e+00 0.00000000e+00 1.00000000e+00 8.80676728e-03 2.08288076e-04 6.80942681e-01 1.71386189e+00 + 3.10000000e+00 0.00000000e+00 1.00000000e+00 8.36407924e-03 1.70199222e-04 6.74959092e-01 1.70985578e+00 + 3.11000000e+00 0.00000000e+00 1.00000000e+00 8.31622803e-03 1.06843227e-04 6.71217745e-01 1.70415561e+00 + 3.12000000e+00 0.00000000e+00 1.00000000e+00 8.61254159e-03 3.90566450e-05 6.70072542e-01 1.69762216e+00 + 3.13000000e+00 0.00000000e+00 1.00000000e+00 9.17168695e-03 -1.08128163e-05 6.71556382e-01 1.69135490e+00 + 3.14000000e+00 0.00000000e+00 1.00000000e+00 9.88631213e-03 -2.63845955e-05 6.75320460e-01 1.68627197e+00 + 3.15000000e+00 0.00000000e+00 1.00000000e+00 1.06417726e-02 -2.75135372e-06 6.80479822e-01 1.68284675e+00 + 3.16000000e+00 0.00000000e+00 1.00000000e+00 1.13541223e-02 5.20112666e-05 6.85658156e-01 1.68096763e+00 + 3.17000000e+00 0.00000000e+00 1.00000000e+00 1.20097260e-02 1.19681606e-04 6.89427554e-01 1.68004832e+00 + 3.18000000e+00 0.00000000e+00 1.00000000e+00 1.26745836e-02 1.77875851e-04 6.91026237e-01 1.67923894e+00 + 3.19000000e+00 0.00000000e+00 1.00000000e+00 1.34566538e-02 2.07293043e-04 6.90843332e-01 1.67773289e+00 + 3.20000000e+00 0.00000000e+00 1.00000000e+00 1.44407103e-02 1.98053641e-04 6.90229002e-01 1.67498571e+00 + 3.21000000e+00 0.00000000e+00 1.00000000e+00 1.56385684e-02 1.53060436e-04 6.90721670e-01 1.67090353e+00 + 3.22000000e+00 0.00000000e+00 1.00000000e+00 1.69850622e-02 8.70865323e-05 6.93171790e-01 1.66587701e+00 + 3.23000000e+00 0.00000000e+00 1.00000000e+00 1.83745998e-02 2.18144284e-05 6.97389475e-01 1.66066530e+00 + 3.24000000e+00 0.00000000e+00 1.00000000e+00 1.97078139e-02 -2.13800833e-05 7.02425248e-01 1.65617516e+00 + 3.25000000e+00 0.00000000e+00 1.00000000e+00 2.09212865e-02 -2.84184625e-05 7.07147711e-01 1.65311210e+00 + 3.26000000e+00 0.00000000e+00 1.00000000e+00 2.19946814e-02 2.91881756e-06 7.10655263e-01 1.65173686e+00 + 3.27000000e+00 0.00000000e+00 1.00000000e+00 2.29464755e-02 6.22224060e-05 7.12372964e-01 1.65179062e+00 + 3.28000000e+00 0.00000000e+00 1.00000000e+00 2.38305838e-02 1.29807769e-04 7.12009150e-01 1.65254829e+00 + 3.29000000e+00 0.00000000e+00 1.00000000e+00 2.47357507e-02 1.83250516e-04 7.09596485e-01 1.65307020e+00 + 3.30000000e+00 0.00000000e+00 1.00000000e+00 2.57784335e-02 2.04891407e-04 7.05625055e-01 1.65252020e+00 + 3.31000000e+00 0.00000000e+00 1.00000000e+00 2.70780020e-02 1.87643755e-04 7.01137057e-01 1.65043199e+00 + 3.32000000e+00 0.00000000e+00 1.00000000e+00 2.87152635e-02 1.37189908e-04 6.97601710e-01 1.64683429e+00 + 3.33000000e+00 0.00000000e+00 1.00000000e+00 3.06948053e-02 7.00438785e-05 6.96452369e-01 1.64221103e+00 + 3.34000000e+00 0.00000000e+00 1.00000000e+00 3.29399435e-02 8.18744329e-06 6.98410693e-01 1.63732959e+00 + 3.35000000e+00 0.00000000e+00 1.00000000e+00 3.53320428e-02 -2.81137934e-05 7.03033071e-01 1.63299024e+00 + 3.36000000e+00 0.00000000e+00 1.00000000e+00 3.77732797e-02 -2.70492837e-05 7.08926012e-01 1.62976745e+00 + 3.37000000e+00 0.00000000e+00 1.00000000e+00 4.02327546e-02 1.07773513e-05 7.14561541e-01 1.62783151e+00 + 3.38000000e+00 0.00000000e+00 1.00000000e+00 4.27493287e-02 7.25934404e-05 7.19099617e-01 1.62690004e+00 + 3.39000000e+00 0.00000000e+00 1.00000000e+00 4.53980413e-02 1.37754314e-04 7.22674002e-01 1.62638395e+00 + 3.40000000e+00 0.00000000e+00 1.00000000e+00 4.82493543e-02 1.84545145e-04 7.26058731e-01 1.62551729e+00 + 3.41000000e+00 0.00000000e+00 1.00000000e+00 5.13450339e-02 1.97266627e-04 7.30178509e-01 1.62360903e+00 + 3.42000000e+00 0.00000000e+00 1.00000000e+00 5.46928613e-02 1.71413376e-04 7.35775711e-01 1.62028272e+00 + 3.43000000e+00 0.00000000e+00 1.00000000e+00 5.82676894e-02 1.15244928e-04 7.43449156e-01 1.61574812e+00 + 3.44000000e+00 0.00000000e+00 1.00000000e+00 6.20091546e-02 4.70748584e-05 7.53613007e-01 1.61071291e+00 + 3.45000000e+00 0.00000000e+00 1.00000000e+00 6.58191649e-02 -1.08756020e-05 7.66270412e-01 1.60609069e+00 + 3.46000000e+00 0.00000000e+00 1.00000000e+00 6.95712070e-02 -3.98778311e-05 7.80755074e-01 1.60261042e+00 + 3.47000000e+00 0.00000000e+00 1.00000000e+00 7.31400653e-02 -3.07731917e-05 7.95603336e-01 1.60067698e+00 + 3.48000000e+00 0.00000000e+00 1.00000000e+00 7.64455685e-02 1.31167600e-05 8.08932632e-01 1.60020335e+00 + 3.49000000e+00 0.00000000e+00 1.00000000e+00 7.94875815e-02 7.70624229e-05 8.19182287e-01 1.60074667e+00 + 3.50000000e+00 0.00000000e+00 1.00000000e+00 8.23466361e-02 1.39709358e-04 8.25914429e-01 1.60169141e+00 + 3.51000000e+00 0.00000000e+00 1.00000000e+00 8.51432276e-02 1.80129045e-04 8.30000213e-01 1.60238363e+00 + 3.52000000e+00 0.00000000e+00 1.00000000e+00 8.79778308e-02 1.84795147e-04 8.33119191e-01 1.60229732e+00 + 3.53000000e+00 0.00000000e+00 1.00000000e+00 9.08884226e-02 1.52050185e-04 8.36879129e-01 1.60121123e+00 + 3.54000000e+00 0.00000000e+00 1.00000000e+00 9.38482011e-02 9.25718795e-05 8.42085634e-01 1.59925799e+00 + 3.55000000e+00 0.00000000e+00 1.00000000e+00 9.67954854e-02 2.58038385e-05 8.48631783e-01 1.59697252e+00 + 3.56000000e+00 0.00000000e+00 1.00000000e+00 9.96685779e-02 -2.64050693e-05 8.55853443e-01 1.59505380e+00 + 3.57000000e+00 0.00000000e+00 1.00000000e+00 1.02425261e-01 -4.69550131e-05 8.62996346e-01 1.59412571e+00 + 3.58000000e+00 0.00000000e+00 1.00000000e+00 1.05047516e-01 -2.92035852e-05 8.69375568e-01 1.59445074e+00 + 3.59000000e+00 0.00000000e+00 1.00000000e+00 1.07544234e-01 2.07609503e-05 8.74418297e-01 1.59588142e+00 + 3.60000000e+00 0.00000000e+00 1.00000000e+00 1.09958753e-01 8.61961773e-05 8.77730054e-01 1.59787136e+00 + 3.61000000e+00 0.00000000e+00 1.00000000e+00 1.12373968e-01 1.45347134e-04 8.79362684e-01 1.59970762e+00 + 3.62000000e+00 0.00000000e+00 1.00000000e+00 1.14901197e-01 1.78613009e-04 8.80099488e-01 1.60073939e+00 + 3.63000000e+00 0.00000000e+00 1.00000000e+00 1.17646786e-01 1.74910932e-04 8.81430729e-01 1.60056189e+00 + 3.64000000e+00 0.00000000e+00 1.00000000e+00 1.20667302e-01 1.35293027e-04 8.85205877e-01 1.59914208e+00 + 3.65000000e+00 0.00000000e+00 1.00000000e+00 1.23937665e-01 7.26487606e-05 8.92801078e-01 1.59696411e+00 + 3.66000000e+00 0.00000000e+00 1.00000000e+00 1.27354740e-01 7.47301762e-06 9.04404391e-01 1.59453150e+00 + 3.67000000e+00 0.00000000e+00 1.00000000e+00 1.30779051e-01 -3.89431334e-05 9.18858919e-01 1.59244753e+00 + 3.68000000e+00 0.00000000e+00 1.00000000e+00 1.34091733e-01 -5.15746401e-05 9.34360631e-01 1.59132388e+00 + 3.69000000e+00 0.00000000e+00 1.00000000e+00 1.37233320e-01 -2.65682007e-05 9.49075370e-01 1.59133434e+00 + 3.70000000e+00 0.00000000e+00 1.00000000e+00 1.40205783e-01 2.75544386e-05 9.62046819e-01 1.59238223e+00 + 3.71000000e+00 0.00000000e+00 1.00000000e+00 1.43046656e-01 9.26881995e-05 9.73223432e-01 1.59402826e+00 + 3.72000000e+00 0.00000000e+00 1.00000000e+00 1.45799803e-01 1.47071752e-04 9.83078486e-01 1.59566481e+00 + 3.73000000e+00 0.00000000e+00 1.00000000e+00 1.48499492e-01 1.72509315e-04 9.92223427e-01 1.59669202e+00 + 3.74000000e+00 0.00000000e+00 1.00000000e+00 1.51165086e-01 1.60453733e-04 1.00129372e+00 1.59680300e+00 + 3.75000000e+00 0.00000000e+00 1.00000000e+00 1.53794146e-01 1.14805298e-04 1.01096968e+00 1.59607280e+00 + 3.76000000e+00 0.00000000e+00 1.00000000e+00 1.56350107e-01 5.05200488e-05 1.02186076e+00 1.59504154e+00 + 3.77000000e+00 0.00000000e+00 1.00000000e+00 1.58755044e-01 -1.13682941e-05 1.03400093e+00 1.59435466e+00 + 3.78000000e+00 0.00000000e+00 1.00000000e+00 1.60902302e-01 -5.06262857e-05 1.04653205e+00 1.59460378e+00 + 3.79000000e+00 0.00000000e+00 1.00000000e+00 1.62692516e-01 -5.44433142e-05 1.05768301e+00 1.59604395e+00 + 3.80000000e+00 0.00000000e+00 1.00000000e+00 1.64078539e-01 -2.16884090e-05 1.06549740e+00 1.59865699e+00 + 3.81000000e+00 0.00000000e+00 1.00000000e+00 1.65094052e-01 3.66926743e-05 1.06876598e+00 1.60212045e+00 + 3.82000000e+00 0.00000000e+00 1.00000000e+00 1.65846304e-01 1.01335940e-04 1.06768495e+00 1.60592578e+00 + 3.83000000e+00 0.00000000e+00 1.00000000e+00 1.66474117e-01 1.50896183e-04 1.06379963e+00 1.60951372e+00 + 3.84000000e+00 0.00000000e+00 1.00000000e+00 1.67094456e-01 1.69058395e-04 1.05921673e+00 1.61238613e+00 + 3.85000000e+00 0.00000000e+00 1.00000000e+00 1.67767407e-01 1.49865628e-04 1.05571225e+00 1.61426017e+00 + 3.86000000e+00 0.00000000e+00 1.00000000e+00 1.68494248e-01 9.96760005e-05 1.05420150e+00 1.61517014e+00 + 3.87000000e+00 0.00000000e+00 1.00000000e+00 1.69239286e-01 3.50891688e-05 1.05477290e+00 1.61550459e+00 + 3.88000000e+00 0.00000000e+00 1.00000000e+00 1.69954006e-01 -2.25263107e-05 1.05703754e+00 1.61587770e+00 + 3.89000000e+00 0.00000000e+00 1.00000000e+00 1.70590545e-01 -5.41515668e-05 1.06040109e+00 1.61689697e+00 + 3.90000000e+00 0.00000000e+00 1.00000000e+00 1.71108710e-01 -4.94358578e-05 1.06408605e+00 1.61889700e+00 + 3.91000000e+00 0.00000000e+00 1.00000000e+00 1.71487349e-01 -1.00513243e-05 1.06714921e+00 1.62178682e+00 + 3.92000000e+00 0.00000000e+00 1.00000000e+00 1.71740982e-01 5.09430294e-05 1.06877071e+00 1.62513781e+00 + 3.93000000e+00 0.00000000e+00 1.00000000e+00 1.71928640e-01 1.13418266e-04 1.06875251e+00 1.62834039e+00 + 3.94000000e+00 0.00000000e+00 1.00000000e+00 1.72139932e-01 1.56758444e-04 1.06783483e+00 1.63083725e+00 + 3.95000000e+00 0.00000000e+00 1.00000000e+00 1.72457252e-01 1.66650041e-04 1.06758047e+00 1.63228901e+00 + 3.96000000e+00 0.00000000e+00 1.00000000e+00 1.72911378e-01 1.39840140e-04 1.06971839e+00 1.63271015e+00 + 3.97000000e+00 0.00000000e+00 1.00000000e+00 1.73456072e-01 8.52071623e-05 1.07523729e+00 1.63240929e+00 + 3.98000000e+00 0.00000000e+00 1.00000000e+00 1.73978233e-01 2.07820747e-05 1.08384203e+00 1.63191978e+00 + 3.99000000e+00 0.00000000e+00 1.00000000e+00 1.74339280e-01 -3.22257661e-05 1.09403009e+00 1.63187212e+00 + 4.00000000e+00 0.00000000e+00 1.00000000e+00 1.74424589e-01 -5.63872644e-05 1.10373342e+00 1.63279281e+00 + 4.01000000e+00 0.00000000e+00 1.00000000e+00 1.74174727e-01 -4.37683087e-05 1.11115586e+00 1.63494415e+00 + 4.02000000e+00 0.00000000e+00 1.00000000e+00 1.73587299e-01 1.43586349e-06 1.11531910e+00 1.63825213e+00 + 4.03000000e+00 0.00000000e+00 1.00000000e+00 1.72698903e-01 6.42714022e-05 1.11605002e+00 1.64230886e+00 + 4.04000000e+00 0.00000000e+00 1.00000000e+00 1.71565441e-01 1.24001371e-04 1.11371345e+00 1.64650550e+00 + 4.05000000e+00 0.00000000e+00 1.00000000e+00 1.70250188e-01 1.61004263e-04 1.10899258e+00 1.65021998e+00 + 4.06000000e+00 0.00000000e+00 1.00000000e+00 1.68814374e-01 1.63238902e-04 1.10286473e+00 1.65307723e+00 + 4.07000000e+00 0.00000000e+00 1.00000000e+00 1.67301314e-01 1.30155497e-04 1.09651694e+00 1.65507116e+00 + 4.08000000e+00 0.00000000e+00 1.00000000e+00 1.65716090e-01 7.28454921e-05 1.09099809e+00 1.65656970e+00 + 4.09000000e+00 0.00000000e+00 1.00000000e+00 1.64015711e-01 1.03958724e-05 1.08670607e+00 1.65817592e+00 + 4.10000000e+00 0.00000000e+00 1.00000000e+00 1.62124297e-01 -3.64072047e-05 1.08301664e+00 1.66046220e+00 + 4.11000000e+00 0.00000000e+00 1.00000000e+00 1.59972100e-01 -5.19632537e-05 1.07845234e+00 1.66374681e+00 + 4.12000000e+00 0.00000000e+00 1.00000000e+00 1.57538969e-01 -3.10081140e-05 1.07144550e+00 1.66800898e+00 + 4.13000000e+00 0.00000000e+00 1.00000000e+00 1.54876955e-01 1.97037080e-05 1.06129085e+00 1.67295518e+00 + 4.14000000e+00 0.00000000e+00 1.00000000e+00 1.52098211e-01 8.36536854e-05 1.04844303e+00 1.67807154e+00 + 4.15000000e+00 0.00000000e+00 1.00000000e+00 1.49335140e-01 1.39978192e-04 1.03439623e+00 1.68276753e+00 + 4.16000000e+00 0.00000000e+00 1.00000000e+00 1.46695392e-01 1.70318338e-04 1.02081317e+00 1.68638540e+00 + 4.17000000e+00 0.00000000e+00 1.00000000e+00 1.44234433e-01 1.64891768e-04 1.00918518e+00 1.68868014e+00 + 4.18000000e+00 0.00000000e+00 1.00000000e+00 1.41953716e-01 1.25749145e-04 1.00025637e+00 1.68971383e+00 + 4.19000000e+00 0.00000000e+00 1.00000000e+00 1.39815154e-01 6.60676260e-05 9.94166934e-01 1.68976463e+00 + 4.20000000e+00 0.00000000e+00 1.00000000e+00 1.37756954e-01 5.74692809e-06 9.90646899e-01 1.68963797e+00 + 4.21000000e+00 0.00000000e+00 1.00000000e+00 1.35704706e-01 -3.51684027e-05 9.89004804e-01 1.69002073e+00 + 4.22000000e+00 0.00000000e+00 1.00000000e+00 1.33583563e-01 -4.30717355e-05 9.88229475e-01 1.69135748e+00 + 4.23000000e+00 0.00000000e+00 1.00000000e+00 1.31338342e-01 -1.52557709e-05 9.87056115e-01 1.69370027e+00 + 4.24000000e+00 0.00000000e+00 1.00000000e+00 1.28956713e-01 3.91983931e-05 9.84338134e-01 1.69669495e+00 + 4.25000000e+00 0.00000000e+00 1.00000000e+00 1.26479281e-01 1.02428725e-04 9.79595756e-01 1.69976488e+00 + 4.26000000e+00 0.00000000e+00 1.00000000e+00 1.23983037e-01 1.53707925e-04 9.73324548e-01 1.70233217e+00 + 4.27000000e+00 0.00000000e+00 1.00000000e+00 1.21541444e-01 1.76297333e-04 9.66776164e-01 1.70397916e+00 + 4.28000000e+00 0.00000000e+00 1.00000000e+00 1.19182047e-01 1.62951805e-04 9.61315996e-01 1.70462731e+00 + 4.29000000e+00 0.00000000e+00 1.00000000e+00 1.16866144e-01 1.18276482e-04 9.57694612e-01 1.70450347e+00 + 4.30000000e+00 0.00000000e+00 1.00000000e+00 1.14501772e-01 5.71976683e-05 9.55708324e-01 1.70416690e+00 + 4.31000000e+00 0.00000000e+00 1.00000000e+00 1.11981182e-01 5.75608243e-08 9.54271636e-01 1.70428885e+00 + 4.32000000e+00 0.00000000e+00 1.00000000e+00 1.09221138e-01 -3.40899153e-05 9.51910958e-01 1.70539123e+00 + 4.33000000e+00 0.00000000e+00 1.00000000e+00 1.06186622e-01 -3.37853579e-05 9.47436201e-01 1.70775460e+00 + 4.34000000e+00 0.00000000e+00 1.00000000e+00 1.02892767e-01 1.05040099e-06 9.40222909e-01 1.71128752e+00 + 4.35000000e+00 0.00000000e+00 1.00000000e+00 9.93937841e-02 5.91237125e-05 9.30225247e-01 1.71555146e+00 + 4.36000000e+00 0.00000000e+00 1.00000000e+00 9.57705093e-02 1.21517859e-04 9.17819103e-01 1.71984048e+00 + 4.37000000e+00 0.00000000e+00 1.00000000e+00 9.21197110e-02 1.67934695e-04 9.03759862e-01 1.72343789e+00 + 4.38000000e+00 0.00000000e+00 1.00000000e+00 8.85391059e-02 1.83396558e-04 8.89110683e-01 1.72583540e+00 + 4.39000000e+00 0.00000000e+00 1.00000000e+00 8.51035846e-02 1.63176435e-04 8.75117166e-01 1.72688927e+00 + 4.40000000e+00 0.00000000e+00 1.00000000e+00 8.18400280e-02 1.14315902e-04 8.62893358e-01 1.72689087e+00 + 4.41000000e+00 0.00000000e+00 1.00000000e+00 7.87176727e-02 5.32720679e-05 8.52965006e-01 1.72641706e+00 + 4.42000000e+00 0.00000000e+00 1.00000000e+00 7.56662595e-02 4.79894327e-07 8.45024231e-01 1.72612140e+00 + 4.43000000e+00 0.00000000e+00 1.00000000e+00 7.26165904e-02 -2.63876296e-05 8.38041458e-01 1.72647170e+00 + 4.44000000e+00 0.00000000e+00 1.00000000e+00 6.95417600e-02 -1.82397604e-05 8.30811789e-01 1.72763204e+00 + 4.45000000e+00 0.00000000e+00 1.00000000e+00 6.64757552e-02 2.24474637e-05 8.22552055e-01 1.72935995e+00 + 4.46000000e+00 0.00000000e+00 1.00000000e+00 6.35004564e-02 8.24484033e-05 8.13258804e-01 1.73119485e+00 + 4.47000000e+00 0.00000000e+00 1.00000000e+00 6.07111755e-02 1.42148338e-04 8.03595982e-01 1.73251627e+00 + 4.48000000e+00 0.00000000e+00 1.00000000e+00 5.81811021e-02 1.82033391e-04 7.94553723e-01 1.73279561e+00 + 4.49000000e+00 0.00000000e+00 1.00000000e+00 5.59408938e-02 1.89134140e-04 7.87034469e-01 1.73168592e+00 + 4.50000000e+00 0.00000000e+00 1.00000000e+00 5.39763283e-02 1.61292771e-04 7.81633689e-01 1.72923822e+00 + 4.51000000e+00 0.00000000e+00 1.00000000e+00 5.22360078e-02 1.07855361e-04 7.78571225e-01 1.72593035e+00 + 4.52000000e+00 0.00000000e+00 1.00000000e+00 5.06406580e-02 4.65750994e-05 7.77693019e-01 1.72247345e+00 + 4.53000000e+00 0.00000000e+00 1.00000000e+00 4.90935837e-02 -2.24415448e-06 7.78461285e-01 1.71961144e+00 + 4.54000000e+00 0.00000000e+00 1.00000000e+00 4.74981776e-02 -2.24446220e-05 7.79929592e-01 1.71785365e+00 + 4.55000000e+00 0.00000000e+00 1.00000000e+00 4.57845705e-02 -7.33827733e-06 7.80871364e-01 1.71732344e+00 + 4.56000000e+00 0.00000000e+00 1.00000000e+00 4.39357796e-02 3.81105229e-05 7.80145845e-01 1.71774528e+00 + 4.57000000e+00 0.00000000e+00 1.00000000e+00 4.19961685e-02 9.89542973e-05 7.77167298e-01 1.71855541e+00 + 4.58000000e+00 0.00000000e+00 1.00000000e+00 4.00515806e-02 1.55213181e-04 7.72185535e-01 1.71914276e+00 + 4.59000000e+00 0.00000000e+00 1.00000000e+00 3.81883057e-02 1.88456251e-04 7.66152921e-01 1.71898037e+00 + 4.60000000e+00 0.00000000e+00 1.00000000e+00 3.64529661e-02 1.87855730e-04 7.60256424e-01 1.71782533e+00 + 4.61000000e+00 0.00000000e+00 1.00000000e+00 3.48351864e-02 1.53761584e-04 7.55375425e-01 1.71577096e+00 + 4.62000000e+00 0.00000000e+00 1.00000000e+00 3.32799133e-02 9.75996839e-05 7.51724826e-01 1.71323627e+00 + 4.63000000e+00 0.00000000e+00 1.00000000e+00 3.17184659e-02 3.80790410e-05 7.48890530e-01 1.71080625e+00 + 4.64000000e+00 0.00000000e+00 1.00000000e+00 3.00995162e-02 -5.00811167e-06 7.46123773e-01 1.70903966e+00 + 4.65000000e+00 0.00000000e+00 1.00000000e+00 2.84067785e-02 -1.73223197e-05 7.42692345e-01 1.70825028e+00 + 4.66000000e+00 0.00000000e+00 1.00000000e+00 2.66622438e-02 5.31137821e-06 7.38097818e-01 1.70840690e+00 + 4.67000000e+00 0.00000000e+00 1.00000000e+00 2.49218750e-02 5.55389524e-05 7.32131244e-01 1.70911950e+00 + 4.68000000e+00 0.00000000e+00 1.00000000e+00 2.32693019e-02 1.16904683e-04 7.24875773e-01 1.70976517e+00 + 4.69000000e+00 0.00000000e+00 1.00000000e+00 2.18056698e-02 1.69287717e-04 7.16734845e-01 1.70967633e+00 + 4.70000000e+00 0.00000000e+00 1.00000000e+00 2.06300511e-02 1.95543959e-04 7.08470472e-01 1.70835681e+00 + 4.71000000e+00 0.00000000e+00 1.00000000e+00 1.98107169e-02 1.87154063e-04 7.01130563e-01 1.70565023e+00 + 4.72000000e+00 0.00000000e+00 1.00000000e+00 1.93588646e-02 1.46998451e-04 6.95780831e-01 1.70179689e+00 + 4.73000000e+00 0.00000000e+00 1.00000000e+00 1.92218592e-02 8.83696111e-05 6.93080754e-01 1.69731908e+00 + 4.74000000e+00 0.00000000e+00 1.00000000e+00 1.93048408e-02 3.05995445e-05 6.92939843e-01 1.69287062e+00 + 4.75000000e+00 0.00000000e+00 1.00000000e+00 1.95119500e-02 -7.29009783e-06 6.94514864e-01 1.68900891e+00 + 4.76000000e+00 0.00000000e+00 1.00000000e+00 1.97851644e-02 -1.28719448e-05 6.96621720e-01 1.68603070e+00 + 4.77000000e+00 0.00000000e+00 1.00000000e+00 2.01205948e-02 1.55702310e-05 6.98283391e-01 1.68389850e+00 + 4.78000000e+00 0.00000000e+00 1.00000000e+00 2.05572494e-02 6.84953855e-05 6.99112526e-01 1.68229137e+00 + 4.79000000e+00 0.00000000e+00 1.00000000e+00 2.11494985e-02 1.28289792e-04 6.99323919e-01 1.68069645e+00 + 4.80000000e+00 0.00000000e+00 1.00000000e+00 2.19401836e-02 1.75091466e-04 6.99501094e-01 1.67858834e+00 + 4.81000000e+00 0.00000000e+00 1.00000000e+00 2.29449091e-02 1.93335822e-04 7.00305446e-01 1.67561142e+00 + 4.82000000e+00 0.00000000e+00 1.00000000e+00 2.41473501e-02 1.76886075e-04 7.02274986e-01 1.67171190e+00 + 4.83000000e+00 0.00000000e+00 1.00000000e+00 2.54999232e-02 1.31057770e-04 7.05733761e-01 1.66723953e+00 + 4.84000000e+00 0.00000000e+00 1.00000000e+00 2.69271371e-02 7.08547518e-05 7.10689414e-01 1.66275137e+00 + 4.85000000e+00 0.00000000e+00 1.00000000e+00 2.83353432e-02 1.60058148e-05 7.16739832e-01 1.65886008e+00 + 4.86000000e+00 0.00000000e+00 1.00000000e+00 2.96338956e-02 -1.55532794e-05 7.23013461e-01 1.65600116e+00 + 4.87000000e+00 0.00000000e+00 1.00000000e+00 3.07651923e-02 -1.35772454e-05 7.28336288e-01 1.65430952e+00 + 4.88000000e+00 0.00000000e+00 1.00000000e+00 3.17303722e-02 2.11405940e-05 7.31640996e-01 1.65359267e+00 + 4.89000000e+00 0.00000000e+00 1.00000000e+00 3.25940669e-02 7.70161284e-05 7.32432114e-01 1.65341480e+00 + 4.90000000e+00 0.00000000e+00 1.00000000e+00 3.34612701e-02 1.35487328e-04 7.31031252e-01 1.65322744e+00 + 4.91000000e+00 0.00000000e+00 1.00000000e+00 3.44363807e-02 1.77176808e-04 7.28439511e-01 1.65252095e+00 + 4.92000000e+00 0.00000000e+00 1.00000000e+00 3.55858979e-02 1.88298907e-04 7.25901389e-01 1.65096633e+00 + 4.93000000e+00 0.00000000e+00 1.00000000e+00 3.69230596e-02 1.65179474e-04 7.24407623e-01 1.64851193e+00 + 4.94000000e+00 0.00000000e+00 1.00000000e+00 3.84178033e-02 1.15414919e-04 7.24390239e-01 1.64541397e+00 + 4.95000000e+00 0.00000000e+00 1.00000000e+00 4.00209689e-02 5.53517249e-05 7.25720425e-01 1.64214977e+00 + 4.96000000e+00 0.00000000e+00 1.00000000e+00 4.16877612e-02 4.72234800e-06 7.27923234e-01 1.63923954e+00 + 4.97000000e+00 0.00000000e+00 1.00000000e+00 4.33923222e-02 -1.98648481e-05 7.30422125e-01 1.63705915e+00 + 4.98000000e+00 0.00000000e+00 1.00000000e+00 4.51344716e-02 -1.04401401e-05 7.32690363e-01 1.63566679e+00 + 4.99000000e+00 0.00000000e+00 1.00000000e+00 4.69428089e-02 2.96878832e-05 7.34368756e-01 1.63484978e+00 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 4.88742201e-02 8.70678260e-05 7.35362889e-01 1.63415790e+00 + 5.01000000e+00 0.00000000e+00 1.00000000e+00 5.10045832e-02 1.42589887e-04 7.35997217e-01 1.63308494e+00 + 5.02000000e+00 0.00000000e+00 1.00000000e+00 5.34064847e-02 1.77779344e-04 7.37071518e-01 1.63124148e+00 + 5.03000000e+00 0.00000000e+00 1.00000000e+00 5.61185069e-02 1.80846312e-04 7.39702041e-01 1.62847899e+00 + 5.04000000e+00 0.00000000e+00 1.00000000e+00 5.91205308e-02 1.50566730e-04 7.44886993e-01 1.62488131e+00 + 5.05000000e+00 0.00000000e+00 1.00000000e+00 6.23309474e-02 9.67174117e-05 7.53097950e-01 1.62087915e+00 + 5.06000000e+00 0.00000000e+00 1.00000000e+00 6.56308986e-02 3.68508102e-05 7.63913026e-01 1.61700484e+00 + 5.07000000e+00 0.00000000e+00 1.00000000e+00 6.89044265e-02 -9.54481303e-06 7.76150351e-01 1.61376305e+00 + 5.08000000e+00 0.00000000e+00 1.00000000e+00 7.20738688e-02 -2.74896196e-05 7.88376511e-01 1.61143961e+00 + 5.09000000e+00 0.00000000e+00 1.00000000e+00 7.51142182e-02 -1.14012371e-05 7.99468633e-01 1.61013015e+00 + 5.10000000e+00 0.00000000e+00 1.00000000e+00 7.80444292e-02 3.31068426e-05 8.08929200e-01 1.60958013e+00 + 5.11000000e+00 0.00000000e+00 1.00000000e+00 8.09062668e-02 9.10693718e-05 8.16868603e-01 1.60940139e+00 + 5.12000000e+00 0.00000000e+00 1.00000000e+00 8.37435838e-02 1.43089649e-04 8.23741439e-01 1.60910834e+00 + 5.13000000e+00 0.00000000e+00 1.00000000e+00 8.65880921e-02 1.71761806e-04 8.30161652e-01 1.60835624e+00 + 5.14000000e+00 0.00000000e+00 1.00000000e+00 8.94501443e-02 1.67449573e-04 8.36744686e-01 1.60702514e+00 + 5.15000000e+00 0.00000000e+00 1.00000000e+00 9.23119253e-02 1.31449196e-04 8.43983616e-01 1.60529612e+00 + 5.16000000e+00 0.00000000e+00 1.00000000e+00 9.51253241e-02 7.55058477e-05 8.52049994e-01 1.60354159e+00 + 5.17000000e+00 0.00000000e+00 1.00000000e+00 9.78208043e-02 1.79130994e-05 8.60605542e-01 1.60220419e+00 + 5.18000000e+00 0.00000000e+00 1.00000000e+00 1.00330561e-01 -2.24974287e-05 8.68771433e-01 1.60162175e+00 + 5.19000000e+00 0.00000000e+00 1.00000000e+00 1.02619547e-01 -3.25485994e-05 8.75393655e-01 1.60187663e+00 + 5.20000000e+00 0.00000000e+00 1.00000000e+00 1.04709044e-01 -9.08411294e-06 8.79575426e-01 1.60282527e+00 + 5.21000000e+00 0.00000000e+00 1.00000000e+00 1.06677827e-01 3.99648067e-05 8.81213515e-01 1.60420760e+00 + 5.22000000e+00 0.00000000e+00 1.00000000e+00 1.08637499e-01 9.82320998e-05 8.81073115e-01 1.60562339e+00 + 5.23000000e+00 0.00000000e+00 1.00000000e+00 1.10693831e-01 1.46369353e-04 8.80496588e-01 1.60667411e+00 + 5.24000000e+00 0.00000000e+00 1.00000000e+00 1.12913676e-01 1.68423276e-04 8.80860568e-01 1.60700496e+00 + 5.25000000e+00 0.00000000e+00 1.00000000e+00 1.15311756e-01 1.57044292e-04 8.83168178e-01 1.60649975e+00 + 5.26000000e+00 0.00000000e+00 1.00000000e+00 1.17858221e-01 1.15885478e-04 8.87837581e-01 1.60533583e+00 + 5.27000000e+00 0.00000000e+00 1.00000000e+00 1.20497127e-01 5.84165322e-05 8.94741374e-01 1.60384351e+00 + 5.28000000e+00 0.00000000e+00 1.00000000e+00 1.23165093e-01 3.48045141e-06 9.03339565e-01 1.60261895e+00 + 5.29000000e+00 0.00000000e+00 1.00000000e+00 1.25805835e-01 -3.09647718e-05 9.12870262e-01 1.60195431e+00 + 5.30000000e+00 0.00000000e+00 1.00000000e+00 1.28382119e-01 -3.37935821e-05 9.22482008e-01 1.60194462e+00 + 5.31000000e+00 0.00000000e+00 1.00000000e+00 1.30886066e-01 -4.34774769e-06 9.31529151e-01 1.60253313e+00 + 5.32000000e+00 0.00000000e+00 1.00000000e+00 1.33343512e-01 4.74086393e-05 9.39611060e-01 1.60336029e+00 + 5.33000000e+00 0.00000000e+00 1.00000000e+00 1.35805374e-01 1.04194212e-04 9.46969589e-01 1.60406734e+00 + 5.34000000e+00 0.00000000e+00 1.00000000e+00 1.38323713e-01 1.47081584e-04 9.54424047e-01 1.60436236e+00 + 5.35000000e+00 0.00000000e+00 1.00000000e+00 1.40920572e-01 1.61721636e-04 9.63057929e-01 1.60412642e+00 + 5.36000000e+00 0.00000000e+00 1.00000000e+00 1.43565479e-01 1.43110285e-04 9.73667658e-01 1.60342646e+00 + 5.37000000e+00 0.00000000e+00 1.00000000e+00 1.46175480e-01 9.72651747e-05 9.86279155e-01 1.60251856e+00 + 5.38000000e+00 0.00000000e+00 1.00000000e+00 1.48639507e-01 3.92006606e-05 1.00002899e+00 1.60178317e+00 + 5.39000000e+00 0.00000000e+00 1.00000000e+00 1.50854892e-01 -1.20762182e-05 1.01345478e+00 1.60160425e+00 + 5.40000000e+00 0.00000000e+00 1.00000000e+00 1.52757812e-01 -3.98313444e-05 1.02506514e+00 1.60227013e+00 + 5.41000000e+00 0.00000000e+00 1.00000000e+00 1.54335304e-01 -3.50852042e-05 1.03382962e+00 1.60382904e+00 + 5.42000000e+00 0.00000000e+00 1.00000000e+00 1.55618800e-01 4.39410321e-07 1.03941922e+00 1.60613224e+00 + 5.43000000e+00 0.00000000e+00 1.00000000e+00 1.56668033e-01 5.48762838e-05 1.04211289e+00 1.60883808e+00 + 5.44000000e+00 0.00000000e+00 1.00000000e+00 1.57554006e-01 1.10148221e-04 1.04259252e+00 1.61151520e+00 + 5.45000000e+00 0.00000000e+00 1.00000000e+00 1.58343833e-01 1.47975488e-04 1.04180084e+00 1.61379480e+00 + 5.46000000e+00 0.00000000e+00 1.00000000e+00 1.59086086e-01 1.55914058e-04 1.04078097e+00 1.61551431e+00 + 5.47000000e+00 0.00000000e+00 1.00000000e+00 1.59797453e-01 1.31404803e-04 1.04044002e+00 1.61675051e+00 + 5.48000000e+00 0.00000000e+00 1.00000000e+00 1.60456741e-01 8.25666275e-05 1.04124701e+00 1.61778676e+00 + 5.49000000e+00 0.00000000e+00 1.00000000e+00 1.61013667e-01 2.55295552e-05 1.04299540e+00 1.61897267e+00 + 5.50000000e+00 0.00000000e+00 1.00000000e+00 1.61413600e-01 -2.08582349e-05 1.04484074e+00 1.62058463e+00 + 5.51000000e+00 0.00000000e+00 1.00000000e+00 1.61628853e-01 -4.12721505e-05 1.04569694e+00 1.62275264e+00 + 5.52000000e+00 0.00000000e+00 1.00000000e+00 1.61680385e-01 -2.90118657e-05 1.04475136e+00 1.62538499e+00 + 5.53000000e+00 0.00000000e+00 1.00000000e+00 1.61637197e-01 1.18076670e-05 1.04204878e+00 1.62827352e+00 + 5.54000000e+00 0.00000000e+00 1.00000000e+00 1.61592952e-01 6.76819782e-05 1.03843159e+00 1.63110217e+00 + 5.55000000e+00 0.00000000e+00 1.00000000e+00 1.61632122e-01 1.20188660e-04 1.03517124e+00 1.63351781e+00 + 5.56000000e+00 0.00000000e+00 1.00000000e+00 1.61802499e-01 1.52022307e-04 1.03406846e+00 1.63848723e+00 + 5.57000000e+00 0.00000000e+00 1.00000000e+00 1.62103976e-01 1.52688284e-04 1.03397917e+00 1.63234213e+00 + 5.58000000e+00 0.00000000e+00 1.00000000e+00 1.62494026e-01 1.22010627e-04 1.03559787e+00 1.63677864e+00 + 5.59000000e+00 0.00000000e+00 1.00000000e+00 1.62902044e-01 7.02126461e-05 1.04310165e+00 1.63602850e+00 + 5.60000000e+00 0.00000000e+00 1.00000000e+00 1.63244617e-01 1.43664079e-05 1.04976733e+00 1.63635146e+00 + 5.61000000e+00 0.00000000e+00 1.00000000e+00 1.63441337e-01 -2.71412820e-05 1.05717924e+00 1.63708169e+00 + 5.62000000e+00 0.00000000e+00 1.00000000e+00 1.63432036e-01 -4.06541240e-05 1.06385838e+00 1.63859126e+00 + 5.63000000e+00 0.00000000e+00 1.00000000e+00 1.63192498e-01 -2.17891105e-05 1.06872119e+00 1.64075355e+00 + 5.64000000e+00 0.00000000e+00 1.00000000e+00 1.62741448e-01 2.31503210e-05 1.07119902e+00 1.64331172e+00 + 5.65000000e+00 0.00000000e+00 1.00000000e+00 1.62131194e-01 7.92947762e-05 1.07149006e+00 1.64592108e+00 + 5.66000000e+00 0.00000000e+00 1.00000000e+00 1.61421899e-01 1.28131733e-04 1.07047009e+00 1.64828896e+00 + 5.67000000e+00 0.00000000e+00 1.00000000e+00 1.60650123e-01 1.53621011e-04 1.06927075e+00 1.65024984e+00 + 5.68000000e+00 0.00000000e+00 1.00000000e+00 1.59807698e-01 1.47451880e-04 1.06870553e+00 1.65181876e+00 + 5.69000000e+00 0.00000000e+00 1.00000000e+00 1.58842452e-01 1.11781781e-04 1.06887607e+00 1.65320866e+00 + 5.70000000e+00 0.00000000e+00 1.00000000e+00 1.57680057e-01 5.85386081e-05 1.06912728e+00 1.65475018e+00 + 5.71000000e+00 0.00000000e+00 1.00000000e+00 1.56254912e-01 5.43875989e-06 1.06837380e+00 1.65679719e+00 + 5.72000000e+00 0.00000000e+00 1.00000000e+00 1.54534938e-01 -2.98795879e-05 1.06558117e+00 1.65959395e+00 + 5.73000000e+00 0.00000000e+00 1.00000000e+00 1.52531498e-01 -3.56408957e-05 1.06007652e+00 1.66312037e+00 + 5.74000000e+00 0.00000000e+00 1.00000000e+00 1.50295342e-01 -9.83435686e-06 1.05184526e+00 1.66722774e+00 + 5.75000000e+00 0.00000000e+00 1.00000000e+00 1.47904967e-01 3.91277472e-05 1.04132618e+00 1.67154321e+00 + 5.76000000e+00 0.00000000e+00 1.00000000e+00 1.45452269e-01 9.52483773e-05 1.02940310e+00 1.67565176e+00 + 5.77000000e+00 0.00000000e+00 1.00000000e+00 1.43026030e-01 1.40231942e-04 1.01704638e+00 1.67904876e+00 + 5.78000000e+00 0.00000000e+00 1.00000000e+00 1.40692914e-01 1.59475139e-04 1.00550843e+00 1.68162325e+00 + 5.79000000e+00 0.00000000e+00 1.00000000e+00 1.38479991e-01 1.46877446e-04 9.95779614e-01 1.68339678e+00 + 5.80000000e+00 0.00000000e+00 1.00000000e+00 1.36367470e-01 1.06862800e-04 9.88332899e-01 1.68468670e+00 + 5.81000000e+00 0.00000000e+00 1.00000000e+00 1.34298998e-01 5.28929087e-05 9.82959515e-01 1.68575896e+00 + 5.82000000e+00 0.00000000e+00 1.00000000e+00 1.32208344e-01 2.97945416e-06 9.78821109e-01 1.68703521e+00 + 5.83000000e+00 0.00000000e+00 1.00000000e+00 1.30050985e-01 -2.62696200e-05 9.74788008e-01 1.68871255e+00 + 5.84000000e+00 0.00000000e+00 1.00000000e+00 1.27824866e-01 -2.50941810e-05 9.70014667e-01 1.69079217e+00 + 5.85000000e+00 0.00000000e+00 1.00000000e+00 1.25570032e-01 6.22509928e-06 9.64270679e-01 1.69308895e+00 + 5.86000000e+00 0.00000000e+00 1.00000000e+00 1.23348605e-01 5.74629436e-05 9.57974221e-01 1.69530354e+00 + 5.87000000e+00 0.00000000e+00 1.00000000e+00 1.21216850e-01 1.11822962e-04 9.51910172e-01 1.69709856e+00 + 5.88000000e+00 0.00000000e+00 1.00000000e+00 1.19202899e-01 1.51490858e-04 9.46870136e-01 1.69821516e+00 + 5.89000000e+00 0.00000000e+00 1.00000000e+00 1.17297350e-01 1.63536895e-04 9.43377168e-01 1.69860784e+00 + 5.90000000e+00 0.00000000e+00 1.00000000e+00 1.15455631e-01 1.44178185e-04 9.41529643e-01 1.69843116e+00 + 5.91000000e+00 0.00000000e+00 1.00000000e+00 1.13607245e-01 9.99872681e-05 9.41070342e-01 1.69810185e+00 + 5.92000000e+00 0.00000000e+00 1.00000000e+00 1.11668794e-01 4.56988924e-05 9.41353175e-01 1.69810195e+00 + 5.93000000e+00 0.00000000e+00 1.00000000e+00 1.09560873e-01 -6.32316521e-07 9.41386192e-01 1.69878785e+00 + 5.94000000e+00 0.00000000e+00 1.00000000e+00 1.07228379e-01 -2.35836616e-05 9.40047308e-01 1.70030285e+00 + 5.95000000e+00 0.00000000e+00 1.00000000e+00 1.04658911e-01 -1.54684784e-05 9.36417355e-01 1.70256391e+00 + 5.96000000e+00 0.00000000e+00 1.00000000e+00 1.01889775e-01 2.11438116e-05 9.30099323e-01 1.70527317e+00 + 5.97000000e+00 0.00000000e+00 1.00000000e+00 9.89965675e-02 7.43159990e-05 9.21425756e-01 1.70805059e+00 + 5.98000000e+00 0.00000000e+00 1.00000000e+00 9.60655744e-02 1.26702579e-04 9.11308772e-01 1.71050654e+00 + 5.99000000e+00 0.00000000e+00 1.00000000e+00 9.31621000e-02 1.61263989e-04 9.00893852e-01 1.71237808e+00 + 6.00000000e+00 0.00000000e+00 1.00000000e+00 9.03100459e-02 1.66870526e-04 8.91099180e-01 1.71364139e+00 + 6.01000000e+00 0.00000000e+00 1.00000000e+00 8.74918395e-02 1.41965089e-04 8.82301707e-01 1.71442435e+00 + 6.02000000e+00 0.00000000e+00 1.00000000e+00 8.46664530e-02 9.50736489e-05 8.74324685e-01 1.71502096e+00 + 6.03000000e+00 0.00000000e+00 1.00000000e+00 8.17945059e-02 4.19769326e-05 8.66644244e-01 1.71578361e+00 + 6.04000000e+00 0.00000000e+00 1.00000000e+00 7.88585428e-02 4.72661718e-07 8.58650487e-01 1.71692672e+00 + 6.05000000e+00 0.00000000e+00 1.00000000e+00 7.58725021e-02 -1.55132163e-05 8.49914499e-01 1.71851312e+00 + 6.06000000e+00 0.00000000e+00 1.00000000e+00 7.28813195e-02 -5.04050247e-07 8.40289734e-01 1.72037704e+00 + 6.07000000e+00 0.00000000e+00 1.00000000e+00 6.99542144e-02 4.07430709e-05 8.29925733e-01 1.72215947e+00 + 6.08000000e+00 0.00000000e+00 1.00000000e+00 6.71731533e-02 9.48127386e-05 8.19275690e-01 1.72344869e+00 + 6.09000000e+00 0.00000000e+00 1.00000000e+00 6.46158348e-02 1.44062450e-04 8.09046682e-01 1.72389209e+00 + 6.10000000e+00 0.00000000e+00 1.00000000e+00 6.23345010e-02 1.72451528e-04 8.00094793e-01 1.72334040e+00 + 6.11000000e+00 0.00000000e+00 1.00000000e+00 6.03371897e-02 1.70828899e-04 7.93195879e-01 1.72187037e+00 + 6.12000000e+00 0.00000000e+00 1.00000000e+00 5.85813801e-02 1.39933373e-04 7.88767623e-01 1.71982307e+00 + 6.13000000e+00 0.00000000e+00 1.00000000e+00 5.69864890e-02 9.01233621e-05 7.86629852e-01 1.71760808e+00 + 6.14000000e+00 0.00000000e+00 1.00000000e+00 5.54620845e-02 3.79469558e-05 7.86027645e-01 1.71562977e+00 + 6.15000000e+00 0.00000000e+00 1.00000000e+00 5.39393290e-02 6.94651373e-07 7.85904495e-01 1.71415012e+00 + 6.16000000e+00 0.00000000e+00 1.00000000e+00 5.23909443e-02 -9.29057280e-06 7.85316638e-01 1.71322854e+00 + 6.17000000e+00 0.00000000e+00 1.00000000e+00 5.08316981e-02 1.13131686e-05 7.83755944e-01 1.71272766e+00 + 6.18000000e+00 0.00000000e+00 1.00000000e+00 4.93021811e-02 5.57117784e-05 7.81230802e-01 1.71236037e+00 + 6.19000000e+00 0.00000000e+00 1.00000000e+00 4.78461061e-02 1.09260214e-04 7.78134791e-01 1.71182555e+00 + 6.20000000e+00 0.00000000e+00 1.00000000e+00 4.64914698e-02 1.54327416e-04 7.75005643e-01 1.71085714e+00 + 6.21000000e+00 0.00000000e+00 1.00000000e+00 4.52404594e-02 1.76128169e-04 7.72323276e-01 1.70935187e+00 + 6.22000000e+00 0.00000000e+00 1.00000000e+00 4.40674713e-02 1.67582962e-04 7.70386696e-01 1.70743287e+00 + 6.23000000e+00 0.00000000e+00 1.00000000e+00 4.29231706e-02 1.31629390e-04 7.69218241e-01 1.70540098e+00 + 6.24000000e+00 0.00000000e+00 1.00000000e+00 4.17444913e-02 8.02507839e-05 7.68530180e-01 1.70362604e+00 + 6.25000000e+00 0.00000000e+00 1.00000000e+00 4.04715313e-02 3.05195294e-05 7.67728089e-01 1.70240681e+00 + 6.26000000e+00 0.00000000e+00 1.00000000e+00 3.90692110e-02 -1.05638322e-06 7.66044170e-01 1.70186682e+00 + 6.27000000e+00 0.00000000e+00 1.00000000e+00 3.75460195e-02 -3.99337595e-06 7.62796942e-01 1.70190070e+00 + 6.28000000e+00 0.00000000e+00 1.00000000e+00 3.59595900e-02 2.27328710e-05 7.57680423e-01 1.70223367e+00 + 6.29000000e+00 0.00000000e+00 1.00000000e+00 3.44032989e-02 7.03906209e-05 7.50938380e-01 1.70249454e+00 + 6.30000000e+00 0.00000000e+00 1.00000000e+00 3.29778487e-02 1.23376139e-04 7.43296559e-01 1.70231958e+00 + 6.31000000e+00 0.00000000e+00 1.00000000e+00 3.17604963e-02 1.64327582e-04 7.35726956e-01 1.70145776e+00 + 6.32000000e+00 0.00000000e+00 1.00000000e+00 3.07858136e-02 1.79846296e-04 7.29122636e-01 1.69981636e+00 + 6.33000000e+00 0.00000000e+00 1.00000000e+00 3.00449138e-02 1.64946171e-04 7.24025215e-01 1.69752924e+00 + 6.34000000e+00 0.00000000e+00 1.00000000e+00 2.95001098e-02 1.24699380e-04 7.20531525e-01 1.69487074e+00 + 6.35000000e+00 0.00000000e+00 1.00000000e+00 2.91056518e-02 7.24962798e-05 7.18357682e-01 1.69218413e+00 + 6.36000000e+00 0.00000000e+00 1.00000000e+00 2.88256609e-02 2.55875330e-05 7.17013455e-01 1.68973925e+00 + 6.37000000e+00 0.00000000e+00 1.00000000e+00 2.86453419e-02 -5.55313823e-07 7.15830757e-01 1.68538329e+00 + 6.38000000e+00 0.00000000e+00 1.00000000e+00 2.85755697e-02 2.67970138e-06 7.13938461e-01 1.68619948e+00 + 6.39000000e+00 0.00000000e+00 1.00000000e+00 2.86513884e-02 3.41568700e-05 7.16003681e-01 1.68618302e+00 + 6.40000000e+00 0.00000000e+00 1.00000000e+00 2.89232404e-02 8.33204563e-05 7.11287957e-01 1.68209060e+00 + 6.41000000e+00 0.00000000e+00 1.00000000e+00 2.94404626e-02 1.33821658e-04 7.10557621e-01 1.67978055e+00 + 6.42000000e+00 0.00000000e+00 1.00000000e+00 3.02294687e-02 1.68949540e-04 7.10222891e-01 1.67677234e+00 + 6.43000000e+00 0.00000000e+00 1.00000000e+00 3.12748702e-02 1.77043053e-04 7.11553472e-01 1.67325269e+00 + 6.44000000e+00 0.00000000e+00 1.00000000e+00 3.25146029e-02 1.55298517e-04 7.14903201e-01 1.66944886e+00 + 6.45000000e+00 0.00000000e+00 1.00000000e+00 3.38538785e-02 1.10736886e-04 7.20095921e-01 1.66568686e+00 + 6.46000000e+00 0.00000000e+00 1.00000000e+00 3.51932542e-02 5.79870427e-05 7.26380359e-01 1.66232234e+00 + 6.47000000e+00 0.00000000e+00 1.00000000e+00 3.64582360e-02 1.43541165e-05 7.32690761e-01 1.65957623e+00 + 6.48000000e+00 0.00000000e+00 1.00000000e+00 3.76173546e-02 -5.97990108e-06 7.38060246e-01 1.65751828e+00 + 6.49000000e+00 0.00000000e+00 1.00000000e+00 3.86829820e-02 3.46499398e-06 7.41921836e-01 1.65605949e+00 + 6.50000000e+00 0.00000000e+00 1.00000000e+00 3.96981133e-02 3.94226776e-05 7.44193823e-01 1.65494376e+00 + 6.51000000e+00 0.00000000e+00 1.00000000e+00 4.07172761e-02 8.99164507e-05 7.45202657e-01 1.65387025e+00 + 6.52000000e+00 0.00000000e+00 1.00000000e+00 4.17888937e-02 1.38156028e-04 7.45501634e-01 1.65259557e+00 + 6.53000000e+00 0.00000000e+00 1.00000000e+00 4.29426758e-02 1.68102889e-04 7.45687844e-01 1.65095756e+00 + 6.54000000e+00 0.00000000e+00 1.00000000e+00 4.41826402e-02 1.69812450e-04 7.46276083e-01 1.64897944e+00 + 6.55000000e+00 0.00000000e+00 1.00000000e+00 4.54862065e-02 1.42726018e-04 7.47559750e-01 1.64683667e+00 + 6.56000000e+00 0.00000000e+00 1.00000000e+00 4.68114045e-02 9.57807049e-05 7.49501184e-01 1.64478288e+00 + 6.57000000e+00 0.00000000e+00 1.00000000e+00 4.81135556e-02 4.43897601e-05 7.51702163e-01 1.64305099e+00 + 6.58000000e+00 0.00000000e+00 1.00000000e+00 4.93676648e-02 5.39169401e-06 7.53518851e-01 1.64173144e+00 + 6.59000000e+00 0.00000000e+00 1.00000000e+00 5.05870300e-02 -8.42505512e-06 7.54359773e-01 1.64079125e+00 + 6.60000000e+00 0.00000000e+00 1.00000000e+00 5.18277905e-02 7.42754580e-06 7.53976320e-01 1.64006823e+00 + 6.61000000e+00 0.00000000e+00 1.00000000e+00 5.31750326e-02 4.75712795e-05 7.52643532e-01 1.63932034e+00 + 6.62000000e+00 0.00000000e+00 1.00000000e+00 5.47156782e-02 9.85811546e-05 7.51109245e-01 1.63828986e+00 + 6.63000000e+00 0.00000000e+00 1.00000000e+00 5.65105412e-02 1.43510568e-04 7.50344968e-01 1.63676994e+00 + 6.64000000e+00 0.00000000e+00 1.00000000e+00 5.85775123e-02 1.67458199e-04 7.51220763e-01 1.63467496e+00 + 6.65000000e+00 0.00000000e+00 1.00000000e+00 6.08907510e-02 1.62406074e-04 7.54248632e-01 1.63208284e+00 + 6.66000000e+00 0.00000000e+00 1.00000000e+00 6.33927937e-02 1.29854793e-04 7.59467194e-01 1.62920590e+00 + 6.67000000e+00 0.00000000e+00 1.00000000e+00 6.60124265e-02 8.03667684e-05 7.66521757e-01 1.62636235e+00 + 6.68000000e+00 0.00000000e+00 1.00000000e+00 6.86820752e-02 3.01001368e-05 7.74784937e-01 1.62382685e+00 + 6.69000000e+00 0.00000000e+00 1.00000000e+00 7.13517944e-02 -4.56549296e-06 7.83498941e-01 1.62174920e+00 + 6.70000000e+00 0.00000000e+00 1.00000000e+00 7.39987206e-02 -1.24845184e-05 7.91983555e-01 1.62011422e+00 + 6.71000000e+00 0.00000000e+00 1.00000000e+00 7.66299849e-02 8.62300171e-06 7.99813686e-01 1.61878979e+00 + 6.72000000e+00 0.00000000e+00 1.00000000e+00 7.92761724e-02 5.15149266e-05 8.06964780e-01 1.61761296e+00 + 6.73000000e+00 0.00000000e+00 1.00000000e+00 8.19744535e-02 1.01811911e-04 8.13811370e-01 1.61636756e+00 + 6.74000000e+00 0.00000000e+00 1.00000000e+00 8.47458641e-02 1.42665971e-04 8.21007151e-01 1.61493985e+00 + 6.75000000e+00 0.00000000e+00 1.00000000e+00 8.75765378e-02 1.60335107e-04 8.29167247e-01 1.61332548e+00 + 6.76000000e+00 0.00000000e+00 1.00000000e+00 9.04131216e-02 1.48799277e-04 8.38517118e-01 1.61166913e+00 + 6.77000000e+00 0.00000000e+00 1.00000000e+00 9.31761766e-02 1.11747544e-04 8.48686437e-01 1.61016121e+00 + 6.78000000e+00 0.00000000e+00 1.00000000e+00 9.57858104e-02 6.12732261e-05 8.58813520e-01 1.60900748e+00 + 6.79000000e+00 0.00000000e+00 1.00000000e+00 9.81876518e-02 1.38419856e-05 8.67867901e-01 1.60839010e+00 + 6.80000000e+00 0.00000000e+00 1.00000000e+00 1.00368348e-01 -1.50948516e-05 8.75017396e-01 1.60834725e+00 + 6.81000000e+00 0.00000000e+00 1.00000000e+00 1.02356385e-01 -1.61568456e-05 8.79898850e-01 1.60880183e+00 + 6.82000000e+00 0.00000000e+00 1.00000000e+00 1.04211099e-01 1.08478715e-05 8.82664819e-01 1.60956309e+00 + 6.83000000e+00 0.00000000e+00 1.00000000e+00 1.06006028e-01 5.68240332e-05 8.83900611e-01 1.61040873e+00 + 6.84000000e+00 0.00000000e+00 1.00000000e+00 1.07811688e-01 1.06424079e-04 8.84416977e-01 1.61108160e+00 + 6.85000000e+00 0.00000000e+00 1.00000000e+00 1.09680343e-01 1.43188059e-04 8.85077965e-01 1.61141162e+00 + 6.86000000e+00 0.00000000e+00 1.00000000e+00 1.11634634e-01 1.54966015e-04 8.86654145e-01 1.61137811e+00 + 6.87000000e+00 0.00000000e+00 1.00000000e+00 1.13663221e-01 1.37837303e-04 8.89619107e-01 1.61110024e+00 + 6.88000000e+00 0.00000000e+00 1.00000000e+00 1.15727001e-01 9.73668468e-05 8.93982419e-01 1.61076322e+00 + 6.89000000e+00 0.00000000e+00 1.00000000e+00 1.17776518e-01 4.68176121e-05 8.99290592e-01 1.61049896e+00 + 6.90000000e+00 0.00000000e+00 1.00000000e+00 1.19775291e-01 2.78994026e-06 9.04783579e-01 1.61050230e+00 + 6.91000000e+00 0.00000000e+00 1.00000000e+00 1.21718867e-01 -2.03107122e-05 9.09762923e-01 1.61073385e+00 + 6.92000000e+00 0.00000000e+00 1.00000000e+00 1.23639729e-01 -1.50552498e-05 9.13982272e-01 1.61112879e+00 + 6.93000000e+00 0.00000000e+00 1.00000000e+00 1.25594906e-01 1.66071633e-05 9.17754984e-01 1.61156279e+00 + 6.94000000e+00 0.00000000e+00 1.00000000e+00 1.27642160e-01 6.40510795e-05 9.21816270e-01 1.61186838e+00 + 6.95000000e+00 0.00000000e+00 1.00000000e+00 1.29816026e-01 1.11472742e-04 9.27023215e-01 1.61187821e+00 + 6.96000000e+00 0.00000000e+00 1.00000000e+00 1.32113566e-01 1.43066849e-04 9.34045906e-01 1.61153416e+00 + 6.97000000e+00 0.00000000e+00 1.00000000e+00 1.34493397e-01 1.48249718e-04 9.43067517e-01 1.61085336e+00 + 6.98000000e+00 0.00000000e+00 1.00000000e+00 1.36885398e-01 1.25191508e-04 9.53959890e-01 1.61011954e+00 + 6.99000000e+00 0.00000000e+00 1.00000000e+00 1.39206048e-01 8.14124864e-05 9.66007649e-01 1.60950441e+00 + 7.00000000e+00 0.00000000e+00 1.00000000e+00 1.41375395e-01 3.12341604e-05 9.78263060e-01 1.60926127e+00 + 7.01000000e+00 0.00000000e+00 1.00000000e+00 1.43333235e-01 -8.97998888e-06 9.89673520e-01 1.60951628e+00 + 7.02000000e+00 0.00000000e+00 1.00000000e+00 1.45051884e-01 -2.61725597e-05 9.99320598e-01 1.61027733e+00 + 7.03000000e+00 0.00000000e+00 1.00000000e+00 1.46541398e-01 -1.48504683e-05 1.00669633e+00 1.61144306e+00 + 7.04000000e+00 0.00000000e+00 1.00000000e+00 1.47843267e-01 2.10946313e-05 1.01184534e+00 1.61284592e+00 + 7.05000000e+00 0.00000000e+00 1.00000000e+00 1.49012273e-01 6.96576819e-05 1.01537342e+00 1.61432349e+00 + 7.06000000e+00 0.00000000e+00 1.00000000e+00 1.50092468e-01 1.14710030e-04 1.01816107e+00 1.61572956e+00 + 7.07000000e+00 0.00000000e+00 1.00000000e+00 1.51097777e-01 1.41353876e-04 1.02100464e+00 1.61704215e+00 + 7.08000000e+00 0.00000000e+00 1.00000000e+00 1.52006612e-01 1.40815367e-04 1.02425465e+00 1.61828782e+00 + 7.09000000e+00 0.00000000e+00 1.00000000e+00 1.52773066e-01 1.13289400e-04 1.02767493e+00 1.61958523e+00 + 7.10000000e+00 0.00000000e+00 1.00000000e+00 1.53348802e-01 6.78634997e-05 1.03060688e+00 1.62108830e+00 + 7.11000000e+00 0.00000000e+00 1.00000000e+00 1.53705109e-01 1.95423604e-05 1.03228143e+00 1.62289282e+00 + 7.12000000e+00 0.00000000e+00 1.00000000e+00 1.53846234e-01 -1.57009919e-05 1.03214586e+00 1.62506647e+00 + 7.13000000e+00 0.00000000e+00 1.00000000e+00 1.53810884e-01 -2.62335302e-05 1.03005794e+00 1.62752029e+00 + 7.14000000e+00 0.00000000e+00 1.00000000e+00 1.53664081e-01 -8.61742753e-06 1.02635533e+00 1.63009881e+00 + 7.15000000e+00 0.00000000e+00 1.00000000e+00 1.53483314e-01 3.12984151e-05 1.02174985e+00 1.63258893e+00 + 7.16000000e+00 0.00000000e+00 1.00000000e+00 1.53342093e-01 8.03577594e-05 1.01717592e+00 1.63478061e+00 + 7.17000000e+00 0.00000000e+00 1.00000000e+00 1.53293217e-01 1.22429600e-04 1.01359747e+00 1.63652449e+00 + 7.18000000e+00 0.00000000e+00 1.00000000e+00 1.53355144e-01 1.43692065e-04 1.01179666e+00 1.63779513e+00 + 7.19000000e+00 0.00000000e+00 1.00000000e+00 1.53506397e-01 1.37187152e-04 1.01219325e+00 1.63872209e+00 + 7.20000000e+00 0.00000000e+00 1.00000000e+00 1.53692312e-01 1.05129691e-04 1.01470258e+00 1.63970788e+00 + 7.21000000e+00 0.00000000e+00 1.00000000e+00 1.53844127e-01 5.81750533e-05 1.01503126e+00 1.63880523e+00 + 7.22000000e+00 0.00000000e+00 1.00000000e+00 1.53902997e-01 1.18320948e-05 1.01726498e+00 1.63920798e+00 + 7.23000000e+00 0.00000000e+00 1.00000000e+00 1.53840153e-01 -1.86475860e-05 1.02204994e+00 1.64055046e+00 + 7.24000000e+00 0.00000000e+00 1.00000000e+00 1.53663280e-01 -2.32478910e-05 1.02561518e+00 1.64188799e+00 + 7.25000000e+00 0.00000000e+00 1.00000000e+00 1.53406145e-01 -5.00503318e-07 1.02808089e+00 1.64339695e+00 + 7.26000000e+00 0.00000000e+00 1.00000000e+00 1.53108488e-01 4.20150245e-05 1.02953670e+00 1.64500360e+00 + 7.27000000e+00 0.00000000e+00 1.00000000e+00 1.52795472e-01 9.02043599e-05 1.03050191e+00 1.64655969e+00 + 7.28000000e+00 0.00000000e+00 1.00000000e+00 1.52465485e-01 1.28135221e-04 1.03161637e+00 1.65588216e+00 + 7.29000000e+00 0.00000000e+00 1.00000000e+00 1.52085958e-01 1.43372853e-04 1.05220820e+00 1.66345917e+00 + 7.30000000e+00 0.00000000e+00 1.00000000e+00 1.51599383e-01 1.31090783e-04 1.03331821e+00 1.64890984e+00 + 7.31000000e+00 0.00000000e+00 1.00000000e+00 1.50938134e-01 9.54791224e-05 1.04214657e+00 1.65282674e+00 + 7.32000000e+00 0.00000000e+00 1.00000000e+00 1.50039814e-01 4.82909949e-05 1.04465445e+00 1.65470642e+00 + 7.33000000e+00 0.00000000e+00 1.00000000e+00 1.48863172e-01 5.11909461e-06 1.04523031e+00 1.65695915e+00 + 7.34000000e+00 0.00000000e+00 1.00000000e+00 1.47402370e-01 -1.97119105e-05 1.04317556e+00 1.65968007e+00 + 7.35000000e+00 0.00000000e+00 1.00000000e+00 1.45692783e-01 -1.79312859e-05 1.03826807e+00 1.66272213e+00 + 7.36000000e+00 0.00000000e+00 1.00000000e+00 1.43803650e-01 9.92109708e-06 1.03089013e+00 1.66588212e+00 + 7.37000000e+00 0.00000000e+00 1.00000000e+00 1.41817452e-01 5.47925555e-05 1.02200802e+00 1.66900152e+00 + 7.38000000e+00 0.00000000e+00 1.00000000e+00 1.39804315e-01 1.02064970e-04 1.01260923e+00 1.67181289e+00 + 7.39000000e+00 0.00000000e+00 1.00000000e+00 1.37803530e-01 1.36281336e-04 1.00371905e+00 1.67433838e+00 + 7.40000000e+00 0.00000000e+00 1.00000000e+00 1.35818770e-01 1.46346559e-04 9.95835722e-01 1.67656645e+00 + 7.41000000e+00 0.00000000e+00 1.00000000e+00 1.33826139e-01 1.29231522e-04 9.88963865e-01 1.67860030e+00 + 7.42000000e+00 0.00000000e+00 1.00000000e+00 1.31791176e-01 9.08471802e-05 9.82698212e-01 1.68064364e+00 + 7.43000000e+00 0.00000000e+00 1.00000000e+00 1.29688830e-01 4.40284830e-05 9.76472523e-01 1.68269573e+00 + 7.44000000e+00 0.00000000e+00 1.00000000e+00 1.27517664e-01 4.40628918e-06 9.69824827e-01 1.68489196e+00 + 7.45000000e+00 0.00000000e+00 1.00000000e+00 1.25303119e-01 -1.47477903e-05 9.62519466e-01 1.68713118e+00 + 7.46000000e+00 0.00000000e+00 1.00000000e+00 1.23092365e-01 -6.98246004e-06 9.54697884e-01 1.68927166e+00 + 7.47000000e+00 0.00000000e+00 1.00000000e+00 1.20944109e-01 2.52401234e-05 9.46783334e-01 1.69112071e+00 + 7.48000000e+00 0.00000000e+00 1.00000000e+00 1.18913683e-01 7.14073351e-05 9.39427729e-01 1.69252039e+00 + 7.49000000e+00 0.00000000e+00 1.00000000e+00 1.17035923e-01 1.16418484e-04 9.33344990e-01 1.69338698e+00 + 7.50000000e+00 0.00000000e+00 1.00000000e+00 1.15311328e-01 1.45578629e-04 9.29114755e-01 1.69379682e+00 + 7.51000000e+00 0.00000000e+00 1.00000000e+00 1.13700660e-01 1.49445444e-04 9.26938647e-01 1.69391423e+00 + 7.52000000e+00 0.00000000e+00 1.00000000e+00 1.12132458e-01 1.26877158e-04 9.26510559e-01 1.69397476e+00 + 7.53000000e+00 0.00000000e+00 1.00000000e+00 1.10523737e-01 8.54234453e-05 9.27026983e-01 1.69420720e+00 + 7.54000000e+00 0.00000000e+00 1.00000000e+00 1.08805459e-01 3.89054350e-05 9.27430014e-01 1.69475440e+00 + 7.55000000e+00 0.00000000e+00 1.00000000e+00 1.06941116e-01 2.80356019e-06 9.26783807e-01 1.69565945e+00 + 7.56000000e+00 0.00000000e+00 1.00000000e+00 1.04932079e-01 -1.09100872e-05 9.24555985e-01 1.69686009e+00 + 7.57000000e+00 0.00000000e+00 1.00000000e+00 1.02809776e-01 2.33864810e-06 9.20717569e-01 1.69823755e+00 + 7.58000000e+00 0.00000000e+00 1.00000000e+00 1.00619199e-01 3.82664956e-05 9.15640805e-01 1.69962341e+00 + 7.59000000e+00 0.00000000e+00 1.00000000e+00 9.84005353e-02 8.51304115e-05 9.09903229e-01 1.70087755e+00 + 7.60000000e+00 0.00000000e+00 1.00000000e+00 9.61750959e-02 1.27624095e-04 9.04049762e-01 1.70192427e+00 + 7.61000000e+00 0.00000000e+00 1.00000000e+00 9.39393551e-02 1.51952603e-04 8.98447555e-01 1.70281397e+00 + 7.62000000e+00 0.00000000e+00 1.00000000e+00 9.16677170e-02 1.50340683e-04 8.93159287e-01 1.70367793e+00 + 7.63000000e+00 0.00000000e+00 1.00000000e+00 8.93219789e-02 1.23559748e-04 8.87953915e-01 1.70467868e+00 + 7.64000000e+00 0.00000000e+00 1.00000000e+00 8.68651913e-02 8.06609932e-05 8.82375708e-01 1.70595363e+00 + 7.65000000e+00 0.00000000e+00 1.00000000e+00 8.42779320e-02 3.59778594e-05 8.75869008e-01 1.70752286e+00 + 7.66000000e+00 0.00000000e+00 1.00000000e+00 8.15728061e-02 4.44780821e-06 8.68001665e-01 1.70930215e+00 + 7.67000000e+00 0.00000000e+00 1.00000000e+00 7.88001569e-02 -3.26103155e-06 8.58667106e-01 1.71110869e+00 + 7.68000000e+00 0.00000000e+00 1.00000000e+00 7.60397287e-02 1.56533233e-05 8.48186661e-01 1.71268343e+00 + 7.69000000e+00 0.00000000e+00 1.00000000e+00 7.33801204e-02 5.51203184e-05 8.37283306e-01 1.71383955e+00 + 7.70000000e+00 0.00000000e+00 1.00000000e+00 7.08944617e-02 1.02262713e-04 8.26833266e-01 1.71444192e+00 + 7.71000000e+00 0.00000000e+00 1.00000000e+00 6.86220798e-02 1.41736583e-04 8.17625597e-01 1.71445752e+00 + 7.72000000e+00 0.00000000e+00 1.00000000e+00 6.65627799e-02 1.60773305e-04 8.10149690e-01 1.71400025e+00 + 7.73000000e+00 0.00000000e+00 1.00000000e+00 6.46844787e-02 1.53304269e-04 8.04477047e-01 1.71322265e+00 + 7.74000000e+00 0.00000000e+00 1.00000000e+00 6.29392235e-02 1.21949492e-04 8.00321107e-01 1.71232420e+00 + 7.75000000e+00 0.00000000e+00 1.00000000e+00 6.12808548e-02 7.72181969e-05 7.97167483e-01 1.71145981e+00 + 7.76000000e+00 0.00000000e+00 1.00000000e+00 5.96793297e-02 3.40436690e-05 7.94446743e-01 1.71069185e+00 + 7.77000000e+00 0.00000000e+00 1.00000000e+00 5.81285462e-02 6.77964744e-06 7.91697770e-01 1.70997634e+00 + 7.78000000e+00 0.00000000e+00 1.00000000e+00 5.66459784e-02 4.42623749e-06 7.88693402e-01 1.70919460e+00 + 7.79000000e+00 0.00000000e+00 1.00000000e+00 5.52646680e-02 2.77285972e-05 7.85492573e-01 1.70820948e+00 + 7.80000000e+00 0.00000000e+00 1.00000000e+00 5.40196956e-02 6.90291453e-05 7.82406421e-01 1.70691126e+00 + 7.81000000e+00 0.00000000e+00 1.00000000e+00 5.29318574e-02 1.14785387e-04 7.79903967e-01 1.70530800e+00 + 7.82000000e+00 0.00000000e+00 1.00000000e+00 5.19931615e-02 1.49945852e-04 7.78428724e-01 1.70347669e+00 + 7.83000000e+00 0.00000000e+00 1.00000000e+00 5.11609918e-02 1.62903717e-04 7.78193088e-01 1.70158616e+00 + 7.84000000e+00 0.00000000e+00 1.00000000e+00 5.03659463e-02 1.49422521e-04 7.79006587e-01 1.69983840e+00 + 7.85000000e+00 0.00000000e+00 1.00000000e+00 4.95316904e-02 1.14062167e-04 7.80278170e-01 1.69841182e+00 + 7.86000000e+00 0.00000000e+00 1.00000000e+00 4.85985667e-02 6.85836762e-05 7.81180116e-01 1.69739376e+00 + 7.87000000e+00 0.00000000e+00 1.00000000e+00 4.75410413e-02 2.80276947e-05 7.80960253e-01 1.69676845e+00 + 7.88000000e+00 0.00000000e+00 1.00000000e+00 4.63728755e-02 5.81063954e-06 7.79169713e-01 1.69641049e+00 + 7.89000000e+00 0.00000000e+00 1.00000000e+00 4.51399559e-02 9.32827824e-06 7.75783905e-01 1.69615266e+00 + 7.90000000e+00 0.00000000e+00 1.00000000e+00 4.39050846e-02 3.74653356e-05 7.71130672e-01 1.69581181e+00 + 7.91000000e+00 0.00000000e+00 1.00000000e+00 4.27303915e-02 8.09337951e-05 7.65764202e-01 1.69524238e+00 + 7.92000000e+00 0.00000000e+00 1.00000000e+00 4.16623447e-02 1.25416288e-04 7.60305179e-01 1.69437213e+00 + 7.93000000e+00 0.00000000e+00 1.00000000e+00 4.07226680e-02 1.56376154e-04 7.55284122e-01 1.69323435e+00 + 7.94000000e+00 0.00000000e+00 1.00000000e+00 3.99067993e-02 1.63809732e-04 7.51034449e-01 1.69194108e+00 + 7.95000000e+00 0.00000000e+00 1.00000000e+00 3.91903119e-02 1.45427618e-04 7.47612125e-01 1.69063279e+00 + 7.96000000e+00 0.00000000e+00 1.00000000e+00 3.85422902e-02 1.07360157e-04 7.44793970e-01 1.68941504e+00 + 7.97000000e+00 0.00000000e+00 1.00000000e+00 3.79423072e-02 6.22191181e-05 7.42167712e-01 1.68829139e+00 + 7.98000000e+00 0.00000000e+00 1.00000000e+00 3.73951872e-02 2.49957586e-05 7.39305015e-01 1.68718756e+00 + 7.99000000e+00 0.00000000e+00 1.00000000e+00 3.69369748e-02 8.03009740e-06 7.35967068e-01 1.68596775e+00 + 8.00000000e+00 0.00000000e+00 1.00000000e+00 3.66279013e-02 1.68715140e-05 7.32236827e-01 1.68448051e+00 + 8.01000000e+00 0.00000000e+00 1.00000000e+00 3.65339371e-02 4.85227809e-05 7.27897063e-01 1.68324859e+00 + 8.02000000e+00 0.00000000e+00 1.00000000e+00 3.67039111e-02 9.25283385e-05 7.27932251e-01 1.67978081e+00 + 8.03000000e+00 0.00000000e+00 1.00000000e+00 3.71532590e-02 1.34443273e-04 7.23419480e-01 1.67673776e+00 + 8.04000000e+00 0.00000000e+00 1.00000000e+00 3.78594419e-02 1.60424041e-04 7.24230968e-01 1.67487793e+00 + 8.05000000e+00 0.00000000e+00 1.00000000e+00 3.87685750e-02 1.61732801e-04 7.26061547e-01 1.67170212e+00 + 8.06000000e+00 0.00000000e+00 1.00000000e+00 3.98100048e-02 1.37805720e-04 7.29617454e-01 1.66874898e+00 + 8.07000000e+00 0.00000000e+00 1.00000000e+00 4.09135236e-02 9.65004179e-05 7.34196888e-01 1.66604984e+00 + 8.08000000e+00 0.00000000e+00 1.00000000e+00 4.20248568e-02 5.13571133e-05 7.39099615e-01 1.66365401e+00 + 8.09000000e+00 0.00000000e+00 1.00000000e+00 4.31160392e-02 1.70548637e-05 7.43680195e-01 1.66151365e+00 + 8.10000000e+00 0.00000000e+00 1.00000000e+00 4.41882716e-02 4.65854918e-06 7.47513178e-01 1.65953000e+00 + 8.11000000e+00 0.00000000e+00 1.00000000e+00 4.52662875e-02 1.80899790e-05 7.50489653e-01 1.65758980e+00 + 8.12000000e+00 0.00000000e+00 1.00000000e+00 4.63850195e-02 5.28203671e-05 7.52830098e-01 1.65562025e+00 + 8.13000000e+00 0.00000000e+00 1.00000000e+00 4.75720549e-02 9.72347193e-05 7.54981116e-01 1.65360534e+00 + 8.14000000e+00 0.00000000e+00 1.00000000e+00 4.88320922e-02 1.36459955e-04 7.57425115e-01 1.65158883e+00 + 8.15000000e+00 0.00000000e+00 1.00000000e+00 5.01403578e-02 1.57434668e-04 7.60461849e-01 1.64968077e+00 + 8.16000000e+00 0.00000000e+00 1.00000000e+00 5.14489401e-02 1.53251919e-04 7.64027600e-01 1.64797718e+00 + 8.17000000e+00 0.00000000e+00 1.00000000e+00 5.27040777e-02 1.25280971e-04 7.67701687e-01 1.64656712e+00 + 8.18000000e+00 0.00000000e+00 1.00000000e+00 5.38669917e-02 8.26356993e-05 7.70860200e-01 1.64548508e+00 + 8.19000000e+00 0.00000000e+00 1.00000000e+00 5.49294120e-02 3.92754485e-05 7.72924298e-01 1.64465947e+00 + 8.20000000e+00 0.00000000e+00 1.00000000e+00 5.59181950e-02 9.47576737e-06 7.73600364e-01 1.64397851e+00 + 8.21000000e+00 0.00000000e+00 1.00000000e+00 5.68889028e-02 3.03365623e-06 7.72958447e-01 1.64330275e+00 + 8.22000000e+00 0.00000000e+00 1.00000000e+00 5.79121207e-02 2.19429831e-05 7.71401528e-01 1.64249459e+00 + 8.23000000e+00 0.00000000e+00 1.00000000e+00 5.90569340e-02 5.97920333e-05 7.69557584e-01 1.64145004e+00 + 8.24000000e+00 0.00000000e+00 1.00000000e+00 6.03752628e-02 1.04000735e-04 7.68140224e-01 1.64013044e+00 + 8.25000000e+00 0.00000000e+00 1.00000000e+00 6.18905437e-02 1.39970513e-04 7.67794597e-01 1.63857431e+00 + 8.26000000e+00 0.00000000e+00 1.00000000e+00 6.35939103e-02 1.55784531e-04 7.68944618e-01 1.63688251e+00 + 8.27000000e+00 0.00000000e+00 1.00000000e+00 6.54495322e-02 1.46096618e-04 7.71680740e-01 1.63517274e+00 + 8.28000000e+00 0.00000000e+00 1.00000000e+00 6.74083065e-02 1.13984413e-04 7.75733590e-01 1.63353204e+00 + 8.29000000e+00 0.00000000e+00 1.00000000e+00 6.94260940e-02 6.99813922e-05 7.80570231e-01 1.63196418e+00 + 8.30000000e+00 0.00000000e+00 1.00000000e+00 7.14800102e-02 2.85028349e-05 7.85619453e-01 1.63045350e+00 + 8.31000000e+00 0.00000000e+00 1.00000000e+00 7.35757844e-02 3.00744169e-06 7.90494079e-01 1.62894144e+00 + 8.32000000e+00 0.00000000e+00 1.00000000e+00 7.57424176e-02 1.63011893e-06 7.95169459e-01 1.62736565e+00 + 8.33000000e+00 0.00000000e+00 1.00000000e+00 7.80162440e-02 2.46008365e-05 7.99985257e-01 1.62568125e+00 + 8.34000000e+00 0.00000000e+00 1.00000000e+00 8.04215429e-02 6.41461060e-05 8.05477667e-01 1.62387020e+00 + 8.35000000e+00 0.00000000e+00 1.00000000e+00 8.29559216e-02 1.06973996e-04 8.12137748e-01 1.62199081e+00 + 8.36000000e+00 0.00000000e+00 1.00000000e+00 8.55855840e-02 1.38683245e-04 8.20227284e-01 1.62013264e+00 + 8.37000000e+00 0.00000000e+00 1.00000000e+00 8.82508107e-02 1.48607020e-04 8.29645482e-01 1.61843529e+00 + 8.38000000e+00 0.00000000e+00 1.00000000e+00 9.08785661e-02 1.33341480e-04 8.39913788e-01 1.61702260e+00 + 8.39000000e+00 0.00000000e+00 1.00000000e+00 9.33983260e-02 9.77780059e-05 8.50290510e-01 1.61598264e+00 + 8.40000000e+00 0.00000000e+00 1.00000000e+00 9.57575770e-02 5.34328323e-05 8.59937389e-01 1.61531219e+00 + 8.41000000e+00 0.00000000e+00 1.00000000e+00 9.79335173e-02 1.47112188e-05 8.68132895e-01 1.61495474e+00 + 8.42000000e+00 0.00000000e+00 1.00000000e+00 9.99374734e-02 -5.78017122e-06 8.74470096e-01 1.61481101e+00 + 8.43000000e+00 0.00000000e+00 1.00000000e+00 1.01809695e-01 -1.43714535e-06 8.78976533e-01 1.61478042e+00 + 8.44000000e+00 0.00000000e+00 1.00000000e+00 1.03605103e-01 2.61047607e-05 8.82102356e-01 1.61479593e+00 + 8.45000000e+00 0.00000000e+00 1.00000000e+00 1.05374289e-01 6.75574432e-05 8.84552129e-01 1.61482522e+00 + 8.46000000e+00 0.00000000e+00 1.00000000e+00 1.07146637e-01 1.09132548e-04 8.87040263e-01 1.61487645e+00 + 8.47000000e+00 0.00000000e+00 1.00000000e+00 1.08922330e-01 1.37075406e-04 8.90036279e-01 1.61499640e+00 + 8.48000000e+00 0.00000000e+00 1.00000000e+00 1.10676709e-01 1.42111207e-04 8.93606414e-01 1.61521496e+00 + 8.49000000e+00 0.00000000e+00 1.00000000e+00 1.12374954e-01 1.22483742e-04 8.97449721e-01 1.61558122e+00 + 8.50000000e+00 0.00000000e+00 1.00000000e+00 1.13990342e-01 8.45975775e-05 9.01051525e-01 1.61609720e+00 + 8.51000000e+00 0.00000000e+00 1.00000000e+00 1.15518342e-01 4.09307215e-05 9.03951265e-01 1.61671157e+00 + 8.52000000e+00 0.00000000e+00 1.00000000e+00 1.16981781e-01 5.85537201e-06 9.05931776e-01 1.61725310e+00 + 8.53000000e+00 0.00000000e+00 1.00000000e+00 1.18426646e-01 -9.15459208e-06 9.07137589e-01 1.61776996e+00 + 8.54000000e+00 0.00000000e+00 1.00000000e+00 1.19910929e-01 7.43901068e-07 9.08028064e-01 1.61811127e+00 + 8.55000000e+00 0.00000000e+00 1.00000000e+00 1.21489798e-01 3.22227585e-05 9.09302954e-01 1.61823296e+00 + 8.56000000e+00 0.00000000e+00 1.00000000e+00 1.23200419e-01 7.48211474e-05 9.11686896e-01 1.61812598e+00 + 8.57000000e+00 0.00000000e+00 1.00000000e+00 1.25050140e-01 1.14322917e-04 9.15779498e-01 1.61784245e+00 + 8.58000000e+00 0.00000000e+00 1.00000000e+00 1.27011887e-01 1.37512091e-04 9.21884088e-01 1.61749048e+00 + 8.59000000e+00 0.00000000e+00 1.00000000e+00 1.29029435e-01 1.36623815e-04 9.29866374e-01 1.61718315e+00 + 8.60000000e+00 0.00000000e+00 1.00000000e+00 1.31032088e-01 1.11873630e-04 9.39140367e-01 1.61700490e+00 + 8.61000000e+00 0.00000000e+00 1.00000000e+00 1.32954284e-01 7.12957129e-05 9.48770476e-01 1.61694633e+00 + 8.62000000e+00 0.00000000e+00 1.00000000e+00 1.34752966e-01 2.80957698e-05 9.57993034e-01 1.61709552e+00 + 8.63000000e+00 0.00000000e+00 1.00000000e+00 1.36416003e-01 -3.62905624e-06 9.66157337e-01 1.61734216e+00 + 8.64000000e+00 0.00000000e+00 1.00000000e+00 1.37958496e-01 -1.35286430e-05 9.73120179e-01 1.61766756e+00 + 8.65000000e+00 0.00000000e+00 1.00000000e+00 1.39409119e-01 1.52404800e-06 9.79151292e-01 1.61804376e+00 + 8.66000000e+00 0.00000000e+00 1.00000000e+00 1.40792750e-01 3.63704320e-05 9.84747286e-01 1.61847587e+00 + 8.67000000e+00 0.00000000e+00 1.00000000e+00 1.42116526e-01 7.93312416e-05 9.90386679e-01 1.61899192e+00 + 8.68000000e+00 0.00000000e+00 1.00000000e+00 1.43363865e-01 1.16136543e-04 9.96308277e-01 1.61964829e+00 + 8.69000000e+00 0.00000000e+00 1.00000000e+00 1.44497178e-01 1.34616409e-04 1.00242624e+00 1.62051843e+00 + 8.70000000e+00 0.00000000e+00 1.00000000e+00 1.45467412e-01 1.28647125e-04 1.00832140e+00 1.62168152e+00 + 8.71000000e+00 0.00000000e+00 1.00000000e+00 1.46227717e-01 1.00166027e-04 1.01334870e+00 1.62317253e+00 + 8.72000000e+00 0.00000000e+00 1.00000000e+00 1.46748116e-01 5.85687896e-05 1.01680524e+00 1.62495478e+00 + 8.73000000e+00 0.00000000e+00 1.00000000e+00 1.47027337e-01 1.76120853e-05 1.01815916e+00 1.62694783e+00 + 8.74000000e+00 0.00000000e+00 1.00000000e+00 1.47097554e-01 -9.18401298e-06 1.01724768e+00 1.62903361e+00 + 8.75000000e+00 0.00000000e+00 1.00000000e+00 1.47019072e-01 -1.30163211e-05 1.01437717e+00 1.63109693e+00 + 8.76000000e+00 0.00000000e+00 1.00000000e+00 1.46865465e-01 7.35922915e-06 1.01030520e+00 1.63305853e+00 + 8.77000000e+00 0.00000000e+00 1.00000000e+00 1.46703787e-01 4.52589607e-05 1.00600876e+00 1.63488741e+00 + 8.78000000e+00 0.00000000e+00 1.00000000e+00 1.46577065e-01 8.82457387e-05 1.00237586e+00 1.63658128e+00 + 8.79000000e+00 0.00000000e+00 1.00000000e+00 1.46495752e-01 1.22184584e-04 9.99963639e-01 1.63816156e+00 + 8.80000000e+00 0.00000000e+00 1.00000000e+00 1.46440989e-01 1.35906601e-04 9.98896458e-01 1.63968861e+00 + 8.81000000e+00 0.00000000e+00 1.00000000e+00 1.46377574e-01 1.24931572e-04 9.98882900e-01 1.64122215e+00 + 8.82000000e+00 0.00000000e+00 1.00000000e+00 1.46270716e-01 9.29527073e-05 9.98745433e-01 1.64041759e+00 + 8.83000000e+00 0.00000000e+00 1.00000000e+00 1.46100287e-01 5.06453292e-05 1.00079624e+00 1.64813529e+00 + 8.84000000e+00 0.00000000e+00 1.00000000e+00 1.45867853e-01 1.20260466e-05 9.99492992e-01 1.63956737e+00 + 8.85000000e+00 0.00000000e+00 1.00000000e+00 1.45595747e-01 -1.02434810e-05 9.96032523e-01 1.64886022e+00 + 8.86000000e+00 0.00000000e+00 1.00000000e+00 1.45319001e-01 -8.83654956e-06 1.00534905e+00 1.65181248e+00 + 8.87000000e+00 0.00000000e+00 1.00000000e+00 1.45072276e-01 1.57128188e-05 9.96734787e-01 1.64849205e+00 + 8.88000000e+00 0.00000000e+00 1.00000000e+00 1.44876370e-01 5.52442009e-05 9.98892972e-01 1.64973554e+00 + 8.89000000e+00 0.00000000e+00 1.00000000e+00 1.44726406e-01 9.67060380e-05 1.00073799e+00 1.65039866e+00 + 8.90000000e+00 0.00000000e+00 1.00000000e+00 1.44586463e-01 1.26456677e-04 1.00398165e+00 1.65105116e+00 + 8.91000000e+00 0.00000000e+00 1.00000000e+00 1.44394821e-01 1.34740599e-04 1.00827697e+00 1.65188884e+00 + 8.92000000e+00 0.00000000e+00 1.00000000e+00 1.44078985e-01 1.18892905e-04 1.01289884e+00 1.65301113e+00 + 8.93000000e+00 0.00000000e+00 1.00000000e+00 1.43575524e-01 8.42004599e-05 1.01686493e+00 1.65444039e+00 + 8.94000000e+00 0.00000000e+00 1.00000000e+00 1.42846963e-01 4.21612371e-05 1.01928455e+00 1.65614776e+00 + 8.95000000e+00 0.00000000e+00 1.00000000e+00 1.41889463e-01 6.67504055e-06 1.01960560e+00 1.65805118e+00 + 8.96000000e+00 0.00000000e+00 1.00000000e+00 1.40729766e-01 -1.05254623e-05 1.01776257e+00 1.66005598e+00 + 8.97000000e+00 0.00000000e+00 1.00000000e+00 1.39413550e-01 -3.72253236e-06 1.01417329e+00 1.66211595e+00 + 8.98000000e+00 0.00000000e+00 1.00000000e+00 1.37989105e-01 2.48969029e-05 1.00935883e+00 1.66408740e+00 + 8.99000000e+00 0.00000000e+00 1.00000000e+00 1.36492064e-01 6.59713612e-05 1.00407429e+00 1.66607550e+00 + 9.00000000e+00 0.00000000e+00 1.00000000e+00 1.34936981e-01 1.06051683e-04 9.98802516e-01 1.66809826e+00 + 9.01000000e+00 0.00000000e+00 1.00000000e+00 1.33317402e-01 1.32067760e-04 9.93729289e-01 1.67022223e+00 + 9.02000000e+00 0.00000000e+00 1.00000000e+00 1.31612266e-01 1.35647628e-04 9.88739158e-01 1.67250958e+00 + 9.03000000e+00 0.00000000e+00 1.00000000e+00 1.29797000e-01 1.15831407e-04 9.83472323e-01 1.67496089e+00 + 9.04000000e+00 0.00000000e+00 1.00000000e+00 1.27857631e-01 7.93510499e-05 9.77465810e-01 1.67757548e+00 + 9.05000000e+00 0.00000000e+00 1.00000000e+00 1.25803140e-01 3.84280981e-05 9.70377983e-01 1.68010995e+00 + 9.06000000e+00 0.00000000e+00 1.00000000e+00 1.23670660e-01 6.75909825e-06 9.62166852e-01 1.68249577e+00 + 9.07000000e+00 0.00000000e+00 1.00000000e+00 1.21520716e-01 -5.04723579e-06 9.53134089e-01 1.68458606e+00 + 9.08000000e+00 0.00000000e+00 1.00000000e+00 1.19422902e-01 7.02311664e-06 9.43938494e-01 1.68629148e+00 + 9.09000000e+00 0.00000000e+00 1.00000000e+00 1.17436692e-01 3.91082303e-05 9.35396459e-01 1.68758506e+00 + 9.10000000e+00 0.00000000e+00 1.00000000e+00 1.15595139e-01 8.07661185e-05 9.28235821e-01 1.68853028e+00 + 9.11000000e+00 0.00000000e+00 1.00000000e+00 1.13897390e-01 1.18406904e-04 9.22879367e-01 1.68923553e+00 + 9.12000000e+00 0.00000000e+00 1.00000000e+00 1.12311668e-01 1.39765255e-04 9.19350384e-01 1.68983850e+00 + 9.13000000e+00 0.00000000e+00 1.00000000e+00 1.10786971e-01 1.37946776e-04 9.17282806e-01 1.69044714e+00 + 9.14000000e+00 0.00000000e+00 1.00000000e+00 1.09269162e-01 1.13711570e-04 9.16062578e-01 1.69114042e+00 + 9.15000000e+00 0.00000000e+00 1.00000000e+00 1.07716026e-01 7.52171356e-05 9.14995468e-01 1.69190372e+00 + 9.16000000e+00 0.00000000e+00 1.00000000e+00 1.06106944e-01 3.52820343e-05 9.13519711e-01 1.69266927e+00 + 9.17000000e+00 0.00000000e+00 1.00000000e+00 1.04444837e-01 7.13956594e-06 9.11340271e-01 1.69334324e+00 + 9.18000000e+00 0.00000000e+00 1.00000000e+00 1.02750631e-01 1.15649231e-07 9.08474906e-01 1.69384437e+00 + 9.19000000e+00 0.00000000e+00 1.00000000e+00 1.01052285e-01 1.65849230e-05 9.05214469e-01 1.69417864e+00 + 9.20000000e+00 0.00000000e+00 1.00000000e+00 9.93711220e-02 5.11816794e-05 9.01971485e-01 1.69438850e+00 + 9.21000000e+00 0.00000000e+00 1.00000000e+00 9.77092623e-02 9.25721613e-05 8.99124179e-01 1.69458461e+00 + 9.22000000e+00 0.00000000e+00 1.00000000e+00 9.60433322e-02 1.27208650e-04 8.96839035e-01 1.69491292e+00 + 9.23000000e+00 0.00000000e+00 1.00000000e+00 9.43284523e-02 1.43805744e-04 8.94940576e-01 1.69552834e+00 + 9.24000000e+00 0.00000000e+00 1.00000000e+00 9.25119850e-02 1.37060086e-04 8.92916634e-01 1.69649127e+00 + 9.25000000e+00 0.00000000e+00 1.00000000e+00 9.05515956e-02 1.09376454e-04 8.90097020e-01 1.69779200e+00 + 9.26000000e+00 0.00000000e+00 1.00000000e+00 8.84305538e-02 7.00625998e-05 8.85880321e-01 1.69931587e+00 + 9.27000000e+00 0.00000000e+00 1.00000000e+00 8.61649799e-02 3.22621717e-05 8.79958216e-01 1.70089771e+00 + 9.28000000e+00 0.00000000e+00 1.00000000e+00 8.38009438e-02 8.62639004e-06 8.72408703e-01 1.70236746e+00 + 9.29000000e+00 0.00000000e+00 1.00000000e+00 8.14029265e-02 7.12874668e-06 8.63665498e-01 1.70358645e+00 + 9.30000000e+00 0.00000000e+00 1.00000000e+00 7.90379954e-02 2.84224490e-05 8.54376510e-01 1.70447995e+00 + 9.31000000e+00 0.00000000e+00 1.00000000e+00 7.67607005e-02 6.56435514e-05 8.45224449e-01 1.70505126e+00 + 9.32000000e+00 0.00000000e+00 1.00000000e+00 7.46026488e-02 1.06696334e-04 8.36782700e-01 1.70538834e+00 + 9.33000000e+00 0.00000000e+00 1.00000000e+00 7.25692701e-02 1.38239754e-04 8.29385528e-01 1.70560992e+00 + 9.34000000e+00 0.00000000e+00 1.00000000e+00 7.06444055e-02 1.50077115e-04 8.23081396e-01 1.70582460e+00 + 9.35000000e+00 0.00000000e+00 1.00000000e+00 6.88011939e-02 1.38519102e-04 8.17656679e-01 1.70607864e+00 + 9.36000000e+00 0.00000000e+00 1.00000000e+00 6.70161597e-02 1.07589263e-04 8.12729014e-01 1.70632763e+00 + 9.37000000e+00 0.00000000e+00 1.00000000e+00 6.52822699e-02 6.76718376e-05 8.07900278e-01 1.70644627e+00 + 9.38000000e+00 0.00000000e+00 1.00000000e+00 6.36159262e-02 3.20664396e-05 8.02926487e-01 1.70627945e+00 + 9.39000000e+00 0.00000000e+00 1.00000000e+00 6.20540418e-02 1.25990269e-05 7.97835694e-01 1.70569481e+00 + 9.40000000e+00 0.00000000e+00 1.00000000e+00 6.06415231e-02 1.57446761e-05 7.92939493e-01 1.70463588e+00 + 9.41000000e+00 0.00000000e+00 1.00000000e+00 5.94142099e-02 4.05217696e-05 7.88721825e-01 1.70313386e+00 + 9.42000000e+00 0.00000000e+00 1.00000000e+00 5.83842759e-02 7.88135164e-05 7.85669306e-01 1.70135249e+00 + 9.43000000e+00 0.00000000e+00 1.00000000e+00 5.75334294e-02 1.18009660e-04 7.84074208e-01 1.69947919e+00 + 9.44000000e+00 0.00000000e+00 1.00000000e+00 5.68157312e-02 1.45182223e-04 7.83932200e-01 1.69771321e+00 + 9.45000000e+00 0.00000000e+00 1.00000000e+00 5.61684519e-02 1.51402080e-04 7.84916707e-01 1.69620483e+00 + 9.46000000e+00 0.00000000e+00 1.00000000e+00 5.55273097e-02 1.34671106e-04 7.86454379e-01 1.69502116e+00 + 9.47000000e+00 0.00000000e+00 1.00000000e+00 5.48416093e-02 1.00555232e-04 7.87871598e-01 1.69411638e+00 + 9.48000000e+00 0.00000000e+00 1.00000000e+00 5.40850964e-02 6.03431268e-05 7.88571354e-01 1.69337037e+00 + 9.49000000e+00 0.00000000e+00 1.00000000e+00 5.32597911e-02 2.73243758e-05 7.88185109e-01 1.69262726e+00 + 9.50000000e+00 0.00000000e+00 1.00000000e+00 5.23919790e-02 1.24004126e-05 7.86649500e-01 1.69175999e+00 + 9.51000000e+00 0.00000000e+00 1.00000000e+00 5.15213479e-02 2.04940544e-05 7.84196244e-01 1.69072114e+00 + 9.52000000e+00 0.00000000e+00 1.00000000e+00 5.06862351e-02 4.89410607e-05 7.81250461e-01 1.68953946e+00 + 9.53000000e+00 0.00000000e+00 1.00000000e+00 4.99097393e-02 8.83716837e-05 7.78286050e-01 1.68833118e+00 + 9.54000000e+00 0.00000000e+00 1.00000000e+00 4.91919995e-02 1.25819274e-04 7.75637632e-01 1.68723535e+00 + 9.55000000e+00 0.00000000e+00 1.00000000e+00 4.85121107e-02 1.49004672e-04 7.73393380e-01 1.68637387e+00 + 9.56000000e+00 0.00000000e+00 1.00000000e+00 4.78393587e-02 1.50384426e-04 7.71359778e-01 1.68579827e+00 + 9.57000000e+00 0.00000000e+00 1.00000000e+00 4.71492136e-02 1.29626900e-04 7.69156894e-01 1.68546295e+00 + 9.58000000e+00 0.00000000e+00 1.00000000e+00 4.64373439e-02 9.37003429e-05 7.66391800e-01 1.68521610e+00 + 9.59000000e+00 0.00000000e+00 1.00000000e+00 4.57262883e-02 5.45452078e-05 7.62832760e-01 1.68485815e+00 + 9.60000000e+00 0.00000000e+00 1.00000000e+00 4.50630379e-02 2.51205081e-05 7.58519068e-01 1.68420331e+00 + 9.61000000e+00 0.00000000e+00 1.00000000e+00 4.45090205e-02 1.51518025e-05 7.53749111e-01 1.68311428e+00 + 9.62000000e+00 0.00000000e+00 1.00000000e+00 4.41257295e-02 2.79468171e-05 7.49019672e-01 1.68155570e+00 + 9.63000000e+00 0.00000000e+00 1.00000000e+00 4.39599906e-02 5.92961161e-05 7.44908241e-01 1.67959534e+00 + 9.64000000e+00 0.00000000e+00 1.00000000e+00 4.40329196e-02 9.88433517e-05 7.41942165e-01 1.67738816e+00 + 9.65000000e+00 0.00000000e+00 1.00000000e+00 4.43356891e-02 1.33500810e-04 7.40473449e-01 1.67512065e+00 + 9.66000000e+00 0.00000000e+00 1.00000000e+00 4.48333880e-02 1.51781626e-04 7.40575155e-01 1.67295620e+00 + 9.67000000e+00 0.00000000e+00 1.00000000e+00 4.54761188e-02 1.47621944e-04 7.42030822e-01 1.67096609e+00 + 9.68000000e+00 0.00000000e+00 1.00000000e+00 4.62143027e-02 1.22396564e-04 7.44388209e-01 1.66912266e+00 + 9.69000000e+00 0.00000000e+00 1.00000000e+00 4.70132898e-02 8.44136240e-05 7.47109547e-01 1.66731753e+00 + 9.70000000e+00 0.00000000e+00 1.00000000e+00 4.78618952e-02 4.61115403e-05 7.49758709e-01 1.66541684e+00 + 9.71000000e+00 0.00000000e+00 1.00000000e+00 4.87713468e-02 1.99713125e-05 7.52149457e-01 1.66331248e+00 + 9.72000000e+00 0.00000000e+00 1.00000000e+00 4.97650237e-02 1.44517990e-05 7.54388329e-01 1.66096249e+00 + 9.73000000e+00 0.00000000e+00 1.00000000e+00 5.08634037e-02 3.12091642e-05 7.56802267e-01 1.65844192e+00 + 9.74000000e+00 0.00000000e+00 1.00000000e+00 5.20705123e-02 6.45478772e-05 7.59760180e-01 1.65588454e+00 + 9.75000000e+00 0.00000000e+00 1.00000000e+00 5.33669587e-02 1.03309121e-04 7.63508819e-01 1.65347404e+00 + 9.76000000e+00 0.00000000e+00 1.00000000e+00 5.47114986e-02 1.34563257e-04 7.68044851e-01 1.65138406e+00 + 9.77000000e+00 0.00000000e+00 1.00000000e+00 5.60499885e-02 1.47892020e-04 7.73080473e-01 1.64972191e+00 + 9.78000000e+00 0.00000000e+00 1.00000000e+00 5.73287257e-02 1.38827711e-04 7.78106441e-01 1.64851205e+00 + 9.79000000e+00 0.00000000e+00 1.00000000e+00 5.85084725e-02 1.10297526e-04 7.82517666e-01 1.64765299e+00 + 9.80000000e+00 0.00000000e+00 1.00000000e+00 5.95753639e-02 7.16334706e-05 7.85789914e-01 1.64698338e+00 + 9.81000000e+00 0.00000000e+00 1.00000000e+00 6.05453792e-02 3.55034741e-05 7.87634243e-01 1.64631859e+00 + 9.82000000e+00 0.00000000e+00 1.00000000e+00 6.14605688e-02 1.37402292e-05 7.88089987e-01 1.64551370e+00 + 9.83000000e+00 0.00000000e+00 1.00000000e+00 6.23776801e-02 1.34274025e-05 7.87518378e-01 1.64450506e+00 + 9.84000000e+00 0.00000000e+00 1.00000000e+00 6.33524032e-02 3.45596401e-05 7.86497761e-01 1.64332061e+00 + 9.85000000e+00 0.00000000e+00 1.00000000e+00 6.44242788e-02 7.00648987e-05 7.85655477e-01 1.64205946e+00 + 9.86000000e+00 0.00000000e+00 1.00000000e+00 6.56076057e-02 1.08159418e-04 7.85485264e-01 1.64084858e+00 + 9.87000000e+00 0.00000000e+00 1.00000000e+00 6.68918254e-02 1.36228659e-04 7.86210648e-01 1.63979723e+00 + 9.88000000e+00 0.00000000e+00 1.00000000e+00 6.82510681e-02 1.44972405e-04 7.87747647e-01 1.63895571e+00 + 9.89000000e+00 0.00000000e+00 1.00000000e+00 6.96586218e-02 1.31462926e-04 7.89775134e-01 1.63826865e+00 + 9.90000000e+00 0.00000000e+00 1.00000000e+00 7.11003424e-02 1.00110231e-04 7.91916695e-01 1.63761869e+00 + 9.91000000e+00 0.00000000e+00 1.00000000e+00 7.25821586e-02 6.11925225e-05 7.93899621e-01 1.63685083e+00 + 9.92000000e+00 0.00000000e+00 1.00000000e+00 7.41296514e-02 2.74429837e-05 7.95682783e-01 1.63581700e+00 + 9.93000000e+00 0.00000000e+00 1.00000000e+00 7.57804840e-02 9.84201057e-06 7.97486028e-01 1.63443791e+00 + 9.94000000e+00 0.00000000e+00 1.00000000e+00 7.75722467e-02 1.40102127e-05 7.99735257e-01 1.63272647e+00 + 9.95000000e+00 0.00000000e+00 1.00000000e+00 7.95291670e-02 3.83788893e-05 8.02946027e-01 1.63078980e+00 + 9.96000000e+00 0.00000000e+00 1.00000000e+00 8.16514531e-02 7.47180016e-05 8.07574688e-01 1.62879665e+00 + 9.97000000e+00 0.00000000e+00 1.00000000e+00 8.39107323e-02 1.10848940e-04 8.13838045e-01 1.62690579e+00 + 9.98000000e+00 0.00000000e+00 1.00000000e+00 8.62536784e-02 1.34668255e-04 8.21652892e-01 1.62529873e+00 + 9.99000000e+00 0.00000000e+00 1.00000000e+00 8.86134332e-02 1.38157878e-04 8.30579866e-01 1.62403524e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 9.09255833e-02 1.20023865e-04 8.39923406e-01 1.62310863e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S10 b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S10 new file mode 100644 index 00000000..6b10fe18 --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S10 @@ -0,0 +1,102 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 1.00000000e-01 0.00000000e+00 1.00000000e+00 1.28800691e-02 1.23153157e-04 7.47217142e-01 2.20427699e+00 + 2.00000000e-01 0.00000000e+00 1.00000000e+00 5.24321323e-02 9.54855602e-05 7.98052259e-01 1.92736048e+00 + 3.00000000e-01 0.00000000e+00 1.00000000e+00 9.26273739e-02 7.78522311e-05 8.79901919e-01 1.78936696e+00 + 4.00000000e-01 0.00000000e+00 1.00000000e+00 1.30503585e-01 6.47017821e-05 9.49276351e-01 1.70599193e+00 + 5.00000000e-01 0.00000000e+00 1.00000000e+00 1.71530779e-01 5.26086182e-05 1.10539878e+00 1.66850401e+00 + 6.00000000e-01 0.00000000e+00 1.00000000e+00 1.90911619e-01 4.69198277e-05 1.13879826e+00 1.63379443e+00 + 7.00000000e-01 0.00000000e+00 1.00000000e+00 1.99666637e-01 4.43719001e-05 1.17122545e+00 1.63406964e+00 + 8.00000000e-01 0.00000000e+00 1.00000000e+00 1.96777806e-01 4.47844996e-05 1.20152081e+00 1.64143273e+00 + 9.00000000e-01 0.00000000e+00 1.00000000e+00 1.69185586e-01 5.30187682e-05 1.09253680e+00 1.65929233e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.39475508e-01 6.07518550e-05 1.02934232e+00 1.69151107e+00 + 1.10000000e+00 0.00000000e+00 1.00000000e+00 1.01686085e-01 7.04644417e-05 9.40843598e-01 1.71781217e+00 + 1.20000000e+00 0.00000000e+00 1.00000000e+00 5.76722725e-02 8.50947086e-05 8.18295445e-01 1.74480461e+00 + 1.30000000e+00 0.00000000e+00 1.00000000e+00 2.99445717e-02 9.31624567e-05 7.65556765e-01 1.75316998e+00 + 1.40000000e+00 0.00000000e+00 1.00000000e+00 5.39367980e-03 1.00819407e-04 7.09750056e-01 1.74103455e+00 + 1.50000000e+00 0.00000000e+00 1.00000000e+00 -5.33250069e-03 1.03721982e-04 6.67075912e-01 1.72272274e+00 + 1.60000000e+00 0.00000000e+00 1.00000000e+00 6.77958502e-03 9.74464743e-05 6.78607935e-01 1.69591488e+00 + 1.70000000e+00 0.00000000e+00 1.00000000e+00 2.21757541e-02 9.19261272e-05 6.84590861e-01 1.65776488e+00 + 1.80000000e+00 0.00000000e+00 1.00000000e+00 5.39693116e-02 8.09390314e-05 7.36274280e-01 1.64000863e+00 + 1.90000000e+00 0.00000000e+00 1.00000000e+00 9.35605280e-02 6.76157172e-05 8.44935396e-01 1.62111720e+00 + 2.00000000e+00 0.00000000e+00 1.00000000e+00 1.24008325e-01 5.95300287e-05 8.99550874e-01 1.60285971e+00 + 2.10000000e+00 0.00000000e+00 1.00000000e+00 1.58948559e-01 5.20953966e-05 1.02822788e+00 1.61070840e+00 + 2.20000000e+00 0.00000000e+00 1.00000000e+00 1.79685230e-01 4.83527183e-05 1.10375386e+00 1.60634592e+00 + 2.30000000e+00 0.00000000e+00 1.00000000e+00 1.83326862e-01 5.01807743e-05 1.09848934e+00 1.61367582e+00 + 2.40000000e+00 0.00000000e+00 1.00000000e+00 1.82976811e-01 5.16582836e-05 1.14357438e+00 1.63318753e+00 + 2.50000000e+00 0.00000000e+00 1.00000000e+00 1.60926655e-01 5.94856594e-05 1.07002467e+00 1.65002018e+00 + 2.60000000e+00 0.00000000e+00 1.00000000e+00 1.31441065e-01 6.83234907e-05 9.85587084e-01 1.68144057e+00 + 2.70000000e+00 0.00000000e+00 1.00000000e+00 1.02675860e-01 7.42654113e-05 9.37052205e-01 1.70542349e+00 + 2.80000000e+00 0.00000000e+00 1.00000000e+00 6.36811181e-02 8.56569368e-05 8.26644798e-01 1.72590204e+00 + 2.90000000e+00 0.00000000e+00 1.00000000e+00 3.73535380e-02 9.20027346e-05 7.67505354e-01 1.73674714e+00 + 3.00000000e+00 0.00000000e+00 1.00000000e+00 2.02036289e-02 9.44091005e-05 7.33650254e-01 1.72700862e+00 + 3.10000000e+00 0.00000000e+00 1.00000000e+00 7.58326094e-03 9.70115238e-05 6.87731111e-01 1.70896768e+00 + 3.20000000e+00 0.00000000e+00 1.00000000e+00 1.79690686e-02 9.01586564e-05 6.96192951e-01 1.69069616e+00 + 3.30000000e+00 0.00000000e+00 1.00000000e+00 3.41407066e-02 8.33260465e-05 7.17647837e-01 1.65828017e+00 + 3.40000000e+00 0.00000000e+00 1.00000000e+00 5.72428877e-02 7.62066746e-05 7.44100128e-01 1.63746518e+00 + 3.50000000e+00 0.00000000e+00 1.00000000e+00 9.39017255e-02 6.53698632e-05 8.50621947e-01 1.62779069e+00 + 3.60000000e+00 0.00000000e+00 1.00000000e+00 1.20938206e-01 6.03573252e-05 9.06097433e-01 1.60815350e+00 + 3.70000000e+00 0.00000000e+00 1.00000000e+00 1.47565107e-01 5.67346335e-05 9.83129808e-01 1.61144357e+00 + 3.80000000e+00 0.00000000e+00 1.00000000e+00 1.69627374e-01 5.30425310e-05 1.08287505e+00 1.61475613e+00 + 3.90000000e+00 0.00000000e+00 1.00000000e+00 1.71042105e-01 5.61519559e-05 1.06365445e+00 1.61628258e+00 + 4.00000000e+00 0.00000000e+00 1.00000000e+00 1.69327983e-01 5.83890952e-05 1.08516516e+00 1.63645786e+00 + 4.10000000e+00 0.00000000e+00 1.00000000e+00 1.54350118e-01 6.30252366e-05 1.05835983e+00 1.65160606e+00 + 4.20000000e+00 0.00000000e+00 1.00000000e+00 1.25296369e-01 7.09395665e-05 9.58896081e-01 1.67686970e+00 + 4.30000000e+00 0.00000000e+00 1.00000000e+00 1.01599404e-01 7.57011770e-05 9.22625180e-01 1.70026372e+00 + 4.40000000e+00 0.00000000e+00 1.00000000e+00 7.02186166e-02 8.24321350e-05 8.41876204e-01 1.71387496e+00 + 4.50000000e+00 0.00000000e+00 1.00000000e+00 4.33792738e-02 8.78391913e-05 7.70409449e-01 1.72419549e+00 + 4.60000000e+00 0.00000000e+00 1.00000000e+00 3.16870011e-02 8.82427221e-05 7.52357864e-01 1.71874869e+00 + 4.70000000e+00 0.00000000e+00 1.00000000e+00 2.04591596e-02 9.00908689e-05 7.12556604e-01 1.70011234e+00 + 4.80000000e+00 0.00000000e+00 1.00000000e+00 2.63726027e-02 8.58345205e-05 7.08514859e-01 1.68549118e+00 + 4.90000000e+00 0.00000000e+00 1.00000000e+00 4.42809256e-02 7.95312108e-05 7.46875376e-01 1.66185264e+00 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 6.15440004e-02 7.50198865e-05 7.59802287e-01 1.63751243e+00 + 5.10000000e+00 0.00000000e+00 1.00000000e+00 9.24504443e-02 6.71685192e-05 8.43204132e-01 1.63188017e+00 + 5.20000000e+00 0.00000000e+00 1.00000000e+00 1.19210593e-01 6.18810761e-05 9.17646479e-01 1.61677261e+00 + 5.30000000e+00 0.00000000e+00 1.00000000e+00 1.38270235e-01 6.03723130e-05 9.51889888e-01 1.61299371e+00 + 5.40000000e+00 0.00000000e+00 1.00000000e+00 1.59256615e-01 5.71956155e-05 1.04896097e+00 1.62186279e+00 + 5.50000000e+00 0.00000000e+00 1.00000000e+00 1.62066282e-01 5.92672058e-05 1.04789732e+00 1.62128664e+00 + 5.60000000e+00 0.00000000e+00 1.00000000e+00 1.56925221e-01 6.28134859e-05 1.03252133e+00 1.63811613e+00 + 5.70000000e+00 0.00000000e+00 1.00000000e+00 1.47805964e-01 6.53231612e-05 1.04014209e+00 1.65463795e+00 + 5.80000000e+00 0.00000000e+00 1.00000000e+00 1.21772047e-01 7.18566257e-05 9.49507401e-01 1.67257467e+00 + 5.90000000e+00 0.00000000e+00 1.00000000e+00 9.92389146e-02 7.62612400e-05 9.01635042e-01 1.69529505e+00 + 6.00000000e+00 0.00000000e+00 1.00000000e+00 7.61877539e-02 7.97530553e-05 8.57294118e-01 1.70560744e+00 + 6.10000000e+00 0.00000000e+00 1.00000000e+00 4.98118794e-02 8.50203335e-05 7.79779052e-01 1.71255415e+00 + 6.20000000e+00 0.00000000e+00 1.00000000e+00 3.99034187e-02 8.48451345e-05 7.62314482e-01 1.71155525e+00 + 6.30000000e+00 0.00000000e+00 1.00000000e+00 3.28662411e-02 8.45724841e-05 7.40582142e-01 1.69442846e+00 + 6.40000000e+00 0.00000000e+00 1.00000000e+00 3.37984527e-02 8.34441424e-05 7.21632284e-01 1.67955895e+00 + 6.50000000e+00 0.00000000e+00 1.00000000e+00 5.16614884e-02 7.73372919e-05 7.65465520e-01 1.66463469e+00 + 6.60000000e+00 0.00000000e+00 1.00000000e+00 6.69852044e-02 7.39569645e-05 7.82553844e-01 1.64002979e+00 + 6.70000000e+00 0.00000000e+00 1.00000000e+00 9.02827592e-02 6.92564021e-05 8.31618728e-01 1.63303256e+00 + 6.80000000e+00 0.00000000e+00 1.00000000e+00 1.17215273e-01 6.34252982e-05 9.22156869e-01 1.62549387e+00 + 6.90000000e+00 0.00000000e+00 1.00000000e+00 1.31837855e-01 6.28094383e-05 9.38648714e-01 1.61618583e+00 + 7.00000000e+00 0.00000000e+00 1.00000000e+00 1.48680238e-01 6.06235331e-05 1.00611134e+00 1.62590521e+00 + 7.10000000e+00 0.00000000e+00 1.00000000e+00 1.54899143e-01 6.06577322e-05 1.03805371e+00 1.62779806e+00 + 7.20000000e+00 0.00000000e+00 1.00000000e+00 1.47047211e-01 6.50123230e-05 9.97044930e-01 1.63889467e+00 + 7.30000000e+00 0.00000000e+00 1.00000000e+00 1.40429010e-01 6.64417716e-05 1.01033754e+00 1.65723291e+00 + 7.40000000e+00 0.00000000e+00 1.00000000e+00 1.20156057e-01 7.14457932e-05 9.51418844e-01 1.66973639e+00 + 7.50000000e+00 0.00000000e+00 1.00000000e+00 9.69246157e-02 7.67886721e-05 8.84278196e-01 1.68946599e+00 + 7.60000000e+00 0.00000000e+00 1.00000000e+00 8.01995839e-02 7.84828812e-05 8.64403229e-01 1.70012656e+00 + 7.70000000e+00 0.00000000e+00 1.00000000e+00 5.70996370e-02 8.30071566e-05 7.96619198e-01 1.70263840e+00 + 7.80000000e+00 0.00000000e+00 1.00000000e+00 4.57896807e-02 8.37164159e-05 7.66725360e-01 1.70383779e+00 + 7.90000000e+00 0.00000000e+00 1.00000000e+00 4.35084728e-02 8.20979286e-05 7.66214372e-01 1.69116670e+00 + 8.00000000e+00 0.00000000e+00 1.00000000e+00 4.16063811e-02 8.18954510e-05 7.39803665e-01 1.67440695e+00 + 8.10000000e+00 0.00000000e+00 1.00000000e+00 5.63945577e-02 7.66517748e-05 7.72431718e-01 1.66497499e+00 + 8.20000000e+00 0.00000000e+00 1.00000000e+00 7.26745713e-02 7.21848615e-05 8.07125287e-01 1.64456416e+00 + 8.30000000e+00 0.00000000e+00 1.00000000e+00 8.89058801e-02 6.93379657e-05 8.26083979e-01 1.63331704e+00 + 8.40000000e+00 0.00000000e+00 1.00000000e+00 1.13988587e-01 6.30643421e-05 9.13114230e-01 1.63207017e+00 + 8.50000000e+00 0.00000000e+00 1.00000000e+00 1.27868245e-01 6.16323840e-05 9.38827801e-01 1.62156191e+00 + 8.60000000e+00 0.00000000e+00 1.00000000e+00 1.38907254e-01 6.12265147e-05 9.66354054e-01 1.62779072e+00 + 8.70000000e+00 0.00000000e+00 1.00000000e+00 1.47871188e-01 6.07574201e-05 1.02180788e+00 1.63450725e+00 + 8.80000000e+00 0.00000000e+00 1.00000000e+00 1.40079717e-01 6.59954085e-05 9.80387037e-01 1.63997916e+00 + 8.90000000e+00 0.00000000e+00 1.00000000e+00 1.32542562e-01 6.96142741e-05 9.74558055e-01 1.65806827e+00 + 9.00000000e+00 0.00000000e+00 1.00000000e+00 1.18949530e-01 7.34446248e-05 9.54360543e-01 1.66898206e+00 + 9.10000000e+00 0.00000000e+00 1.00000000e+00 9.59245715e-02 7.97073703e-05 8.77776391e-01 1.68329355e+00 + 9.20000000e+00 0.00000000e+00 1.00000000e+00 8.19327323e-02 8.10733890e-05 8.60541439e-01 1.69552338e+00 + 9.30000000e+00 0.00000000e+00 1.00000000e+00 6.45971742e-02 8.30495628e-05 8.17735298e-01 1.69533916e+00 + 9.40000000e+00 0.00000000e+00 1.00000000e+00 5.09802120e-02 8.41333000e-05 7.72613717e-01 1.69561538e+00 + 9.50000000e+00 0.00000000e+00 1.00000000e+00 5.14798196e-02 8.00715270e-05 7.82790503e-01 1.68871338e+00 + 9.60000000e+00 0.00000000e+00 1.00000000e+00 5.01277232e-02 7.84036360e-05 7.63534385e-01 1.67119423e+00 + 9.70000000e+00 0.00000000e+00 1.00000000e+00 5.96866582e-02 7.39468082e-05 7.74262875e-01 1.66287092e+00 + 9.80000000e+00 0.00000000e+00 1.00000000e+00 7.73254017e-02 6.78121486e-05 8.25458806e-01 1.64957185e+00 + 9.90000000e+00 0.00000000e+00 1.00000000e+00 8.93228595e-02 6.57697209e-05 8.31406732e-01 1.63458661e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 1.09739494e-01 6.16810454e-05 8.93742500e-01 1.63556864e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S100 b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S100 new file mode 100644 index 00000000..2de87cc1 --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S100 @@ -0,0 +1,12 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 2.88366994e-01 5.01936483e-05 1.91972860e+00 2.55945336e+00 + 2.00000000e+00 0.00000000e+00 1.00000000e+00 1.38657199e-01 4.97561362e-05 9.71324567e-01 1.18255174e+00 + 3.00000000e+00 0.00000000e+00 1.00000000e+00 -1.39449401e-01 8.07189359e-05 1.32107284e+00 4.63023571e-01 + 4.00000000e+00 0.00000000e+00 1.00000000e+00 3.65241184e-01 -2.25505959e-04 -5.99393030e+00 -7.94237234e+00 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 -1.01904161e-01 -1.03495402e-05 2.08252628e+00 -7.83438543e-01 + 6.00000000e+00 0.00000000e+00 1.00000000e+00 6.86433631e-02 1.09096366e-04 7.56147769e-01 2.02657883e+00 + 7.00000000e+00 0.00000000e+00 1.00000000e+00 3.45536822e-01 3.89983311e-05 2.14604774e+00 2.43981306e+00 + 8.00000000e+00 0.00000000e+00 1.00000000e+00 -2.18775949e-01 -4.43258987e-05 3.92169660e+00 -2.44971831e+00 + 9.00000000e+00 0.00000000e+00 1.00000000e+00 3.60791504e-01 -2.33126615e-04 -4.57584770e+00 -7.07696957e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 4.93718685e-02 2.74870304e-05 1.04890457e+00 5.56127773e-01 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S25 b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S25 new file mode 100644 index 00000000..cf8ecc42 --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S25 @@ -0,0 +1,42 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 2.50000000e-01 0.00000000e+00 1.00000000e+00 1.00232127e-01 8.09303451e-05 9.65510188e-01 2.04360019e+00 + 5.00000000e-01 0.00000000e+00 1.00000000e+00 2.21974165e-01 6.81466226e-05 1.35256710e+00 1.89563710e+00 + 7.50000000e-01 0.00000000e+00 1.00000000e+00 2.30165054e-01 3.97274134e-05 1.28693350e+00 1.65502826e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.20809637e-01 5.01481240e-05 9.83393101e-01 1.59018824e+00 + 1.25000000e+00 0.00000000e+00 1.00000000e+00 -8.20195084e-03 1.03019604e-04 7.90434973e-01 1.62414149e+00 + 1.50000000e+00 0.00000000e+00 1.00000000e+00 -4.22971518e-02 1.06055084e-04 6.48116887e-01 1.66596238e+00 + 1.75000000e+00 0.00000000e+00 1.00000000e+00 4.52422323e-02 7.94053047e-05 6.88487819e-01 1.77346460e+00 + 2.00000000e+00 0.00000000e+00 1.00000000e+00 1.70483981e-01 7.92659200e-05 1.07831342e+00 1.82525796e+00 + 2.25000000e+00 0.00000000e+00 1.00000000e+00 2.23167192e-01 5.27654022e-05 1.25896756e+00 1.70003321e+00 + 2.50000000e+00 0.00000000e+00 1.00000000e+00 1.62596851e-01 3.56764466e-05 1.09003569e+00 1.58721876e+00 + 2.75000000e+00 0.00000000e+00 1.00000000e+00 4.61326986e-02 8.50617146e-05 8.62146856e-01 1.60821650e+00 + 3.00000000e+00 0.00000000e+00 1.00000000e+00 -2.03054205e-02 1.04248055e-04 7.22216366e-01 1.63799862e+00 + 3.25000000e+00 0.00000000e+00 1.00000000e+00 2.12461156e-02 7.50506064e-05 6.94508171e-01 1.71101470e+00 + 3.50000000e+00 0.00000000e+00 1.00000000e+00 1.27314136e-01 8.07495928e-05 9.49949341e-01 1.78410825e+00 + 3.75000000e+00 0.00000000e+00 1.00000000e+00 2.01043712e-01 6.78377174e-05 1.17864758e+00 1.73107273e+00 + 4.00000000e+00 0.00000000e+00 1.00000000e+00 1.79322919e-01 3.41752892e-05 1.09896593e+00 1.61324137e+00 + 4.25000000e+00 0.00000000e+00 1.00000000e+00 8.27645796e-02 7.24736318e-05 8.82563270e-01 1.60160163e+00 + 4.50000000e+00 0.00000000e+00 1.00000000e+00 -1.16862450e-03 1.06812160e-04 7.41886989e-01 1.62955736e+00 + 4.75000000e+00 0.00000000e+00 1.00000000e+00 2.27244121e-03 7.97151136e-05 6.64188674e-01 1.68474848e+00 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 8.54062911e-02 8.17452682e-05 8.05607674e-01 1.75874325e+00 + 5.25000000e+00 0.00000000e+00 1.00000000e+00 1.72374302e-01 7.97988803e-05 1.08863509e+00 1.75661890e+00 + 5.50000000e+00 0.00000000e+00 1.00000000e+00 1.89119235e-01 3.69922593e-05 1.16070379e+00 1.65232001e+00 + 5.75000000e+00 0.00000000e+00 1.00000000e+00 1.23909326e-01 5.57462858e-05 9.95142210e-01 1.59809361e+00 + 6.00000000e+00 0.00000000e+00 1.00000000e+00 3.79090590e-02 9.74315215e-05 8.20510142e-01 1.61733761e+00 + 6.25000000e+00 0.00000000e+00 1.00000000e+00 8.90964693e-03 7.85369323e-05 7.24874477e-01 1.65217540e+00 + 6.50000000e+00 0.00000000e+00 1.00000000e+00 5.85494733e-02 7.72547171e-05 7.63735305e-01 1.71405091e+00 + 6.75000000e+00 0.00000000e+00 1.00000000e+00 1.38441945e-01 8.76758671e-05 9.63947146e-01 1.74478276e+00 + 7.00000000e+00 0.00000000e+00 1.00000000e+00 1.76933949e-01 4.87769544e-05 1.08298831e+00 1.68294428e+00 + 7.25000000e+00 0.00000000e+00 1.00000000e+00 1.40165054e-01 5.00196073e-05 9.81630041e-01 1.61531225e+00 + 7.50000000e+00 0.00000000e+00 1.00000000e+00 6.29332986e-02 9.25671840e-05 8.26382505e-01 1.61779339e+00 + 7.75000000e+00 0.00000000e+00 1.00000000e+00 1.59251867e-02 8.37779375e-05 7.31053582e-01 1.64556175e+00 + 8.00000000e+00 0.00000000e+00 1.00000000e+00 3.91013264e-02 7.64506210e-05 7.23427557e-01 1.69623430e+00 + 8.25000000e+00 0.00000000e+00 1.00000000e+00 1.09790284e-01 8.97670694e-05 8.89618479e-01 1.73828761e+00 + 8.50000000e+00 0.00000000e+00 1.00000000e+00 1.65745384e-01 5.82054810e-05 1.08574711e+00 1.70850750e+00 + 8.75000000e+00 0.00000000e+00 1.00000000e+00 1.58774310e-01 4.38059594e-05 1.07495896e+00 1.63255516e+00 + 9.00000000e+00 0.00000000e+00 1.00000000e+00 9.81391271e-02 7.86999644e-05 9.25217082e-01 1.60978802e+00 + 9.25000000e+00 0.00000000e+00 1.00000000e+00 4.00555075e-02 8.11613617e-05 8.00360313e-01 1.62777833e+00 + 9.50000000e+00 0.00000000e+00 1.00000000e+00 3.42320264e-02 7.40615215e-05 7.42496073e-01 1.66472817e+00 + 9.75000000e+00 0.00000000e+00 1.00000000e+00 8.24834772e-02 8.93929936e-05 8.07180493e-01 1.71071076e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 1.39473077e-01 7.04072312e-05 9.60913054e-01 1.71375785e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S250 b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S250 new file mode 100644 index 00000000..c0f4d048 --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S250 @@ -0,0 +1,6 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 2.50000000e+00 0.00000000e+00 1.00000000e+00 4.00546872e-01 2.79002484e-05 2.33033252e+00 2.14881969e+00 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 -1.60159020e-01 -8.15206770e-05 3.24152128e+00 -3.54969163e+00 + 7.50000000e+00 0.00000000e+00 1.00000000e+00 2.88774713e-01 8.19818471e-05 1.35120193e+00 2.00758174e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 -5.58878124e-02 1.80865101e-05 1.31501180e+00 -6.13380463e-01 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S3 b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S3 new file mode 100644 index 00000000..9d892cbe --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S3 @@ -0,0 +1,336 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 3.00000000e-02 0.00000000e+00 1.00000000e+00 1.45255414e-03 8.78939911e-05 1.14801663e+00 3.31563617e+00 + 6.00000000e-02 0.00000000e+00 1.00000000e+00 4.76888604e-03 2.52750845e-04 8.41847168e-01 2.47589197e+00 + 9.00000000e-02 0.00000000e+00 1.00000000e+00 9.18068245e-03 1.44656353e-04 7.65848260e-01 2.22808292e+00 + 1.20000000e-01 0.00000000e+00 1.00000000e+00 1.63287816e-02 -2.50182816e-05 7.42394413e-01 2.08108666e+00 + 1.50000000e-01 0.00000000e+00 1.00000000e+00 2.51423537e-02 1.18085006e-04 7.47452451e-01 1.98400949e+00 + 1.80000000e-01 0.00000000e+00 1.00000000e+00 3.44050696e-02 2.20856829e-04 7.59824068e-01 1.91991044e+00 + 2.10000000e-01 0.00000000e+00 1.00000000e+00 4.41429613e-02 2.53053018e-05 7.71630658e-01 1.86797107e+00 + 2.40000000e-01 0.00000000e+00 1.00000000e+00 5.51203012e-02 -2.14135833e-05 7.93191252e-01 1.82142045e+00 + 2.70000000e-01 0.00000000e+00 1.00000000e+00 6.58716485e-02 1.81687148e-04 8.17136872e-01 1.78550840e+00 + 3.00000000e-01 0.00000000e+00 1.00000000e+00 7.61273676e-02 1.47182951e-04 8.32180175e-01 1.75696999e+00 + 3.30000000e-01 0.00000000e+00 1.00000000e+00 8.70210570e-02 -5.19411670e-05 8.46421139e-01 1.72716165e+00 + 3.60000000e-01 0.00000000e+00 1.00000000e+00 9.89546902e-02 4.70640724e-05 8.73788437e-01 1.70032754e+00 + 3.90000000e-01 0.00000000e+00 1.00000000e+00 1.10486558e-01 2.03472812e-04 9.03061814e-01 1.68153124e+00 + 4.20000000e-01 0.00000000e+00 1.00000000e+00 1.21803098e-01 4.16051862e-05 9.27114395e-01 1.66461038e+00 + 4.50000000e-01 0.00000000e+00 1.00000000e+00 1.33760922e-01 -6.29817398e-05 9.61610489e-01 1.64660388e+00 + 4.80000000e-01 0.00000000e+00 1.00000000e+00 1.44905895e-01 1.28923402e-04 1.00176559e+00 1.63478538e+00 + 5.10000000e-01 0.00000000e+00 1.00000000e+00 1.54177200e-01 1.58858707e-04 1.02855879e+00 1.62931871e+00 + 5.40000000e-01 0.00000000e+00 1.00000000e+00 1.62483905e-01 -4.70380445e-05 1.04682727e+00 1.62297228e+00 + 5.70000000e-01 0.00000000e+00 1.00000000e+00 1.70347781e-01 -7.97147789e-06 1.07215499e+00 1.61789687e+00 + 6.00000000e-01 0.00000000e+00 1.00000000e+00 1.76410611e-01 1.79186760e-04 1.09074174e+00 1.61900236e+00 + 6.30000000e-01 0.00000000e+00 1.00000000e+00 1.81339309e-01 7.23885651e-05 1.09998593e+00 1.62144722e+00 + 6.60000000e-01 0.00000000e+00 1.00000000e+00 1.86089124e-01 -7.81513761e-05 1.11385321e+00 1.62020418e+00 + 6.90000000e-01 0.00000000e+00 1.00000000e+00 1.90270069e-01 7.85448748e-05 1.13846240e+00 1.62155335e+00 + 7.20000000e-01 0.00000000e+00 1.00000000e+00 1.92368003e-01 1.72027931e-04 1.15236366e+00 1.62735081e+00 + 7.50000000e-01 0.00000000e+00 1.00000000e+00 1.93258149e-01 -1.74154153e-05 1.15763737e+00 1.63149218e+00 + 7.80000000e-01 0.00000000e+00 1.00000000e+00 1.93100039e-01 -4.53901521e-05 1.15832758e+00 1.63117965e+00 + 8.10000000e-01 0.00000000e+00 1.00000000e+00 1.90903386e-01 1.53612939e-04 1.16359181e+00 1.64218148e+00 + 8.40000000e-01 0.00000000e+00 1.00000000e+00 1.86387379e-01 1.13983244e-04 1.14922162e+00 1.65483385e+00 + 8.70000000e-01 0.00000000e+00 1.00000000e+00 1.81376238e-01 -6.85035235e-05 1.12967072e+00 1.66186264e+00 + 9.00000000e-01 0.00000000e+00 1.00000000e+00 1.75766416e-01 3.78761401e-05 1.11784209e+00 1.66930823e+00 + 9.30000000e-01 0.00000000e+00 1.00000000e+00 1.68726972e-01 1.86755560e-04 1.10004000e+00 1.68176992e+00 + 9.60000000e-01 0.00000000e+00 1.00000000e+00 1.61050624e-01 3.15847268e-05 1.07609523e+00 1.69105310e+00 + 9.90000000e-01 0.00000000e+00 1.00000000e+00 1.53502009e-01 -5.88757923e-05 1.06077404e+00 1.69537804e+00 + 1.02000000e+00 0.00000000e+00 1.00000000e+00 1.44854975e-01 1.32499934e-04 1.04703971e+00 1.70423065e+00 + 1.05000000e+00 0.00000000e+00 1.00000000e+00 1.34513988e-01 1.59810535e-04 1.01902547e+00 1.71692237e+00 + 1.08000000e+00 0.00000000e+00 1.00000000e+00 1.23836622e-01 -3.60082805e-05 9.86524024e-01 1.72414827e+00 + 1.11000000e+00 0.00000000e+00 1.00000000e+00 1.12930169e-01 1.20564353e-05 9.58417032e-01 1.73028041e+00 + 1.14000000e+00 0.00000000e+00 1.00000000e+00 1.01196596e-01 1.97171536e-04 9.27234311e-01 1.74181971e+00 + 1.17000000e+00 0.00000000e+00 1.00000000e+00 8.92976887e-02 9.02277760e-05 8.89300943e-01 1.75064492e+00 + 1.20000000e+00 0.00000000e+00 1.00000000e+00 7.88240914e-02 -4.97907792e-05 8.60198174e-01 1.75053739e+00 + 1.23000000e+00 0.00000000e+00 1.00000000e+00 6.88651891e-02 1.12537584e-04 8.40456384e-01 1.75185013e+00 + 1.26000000e+00 0.00000000e+00 1.00000000e+00 5.88618125e-02 2.00130047e-04 8.18486300e-01 1.75654156e+00 + 1.29000000e+00 0.00000000e+00 1.00000000e+00 4.95540447e-02 1.22860339e-05 7.94755000e-01 1.75471475e+00 + 1.32000000e+00 0.00000000e+00 1.00000000e+00 4.13568946e-02 -3.91706531e-06 7.78665451e-01 1.74888301e+00 + 1.35000000e+00 0.00000000e+00 1.00000000e+00 3.28275175e-02 1.93254639e-04 7.62781491e-01 1.74968870e+00 + 1.38000000e+00 0.00000000e+00 1.00000000e+00 2.45556640e-02 1.44379984e-04 7.40027037e-01 1.75018687e+00 + 1.41000000e+00 0.00000000e+00 1.00000000e+00 1.78609872e-02 -3.04484686e-05 7.19188428e-01 1.74214241e+00 + 1.44000000e+00 0.00000000e+00 1.00000000e+00 1.26336005e-02 8.35946539e-05 7.06564665e-01 1.73408048e+00 + 1.47000000e+00 0.00000000e+00 1.00000000e+00 8.12397552e-03 2.20466947e-04 6.95020737e-01 1.73032741e+00 + 1.50000000e+00 0.00000000e+00 1.00000000e+00 5.40870539e-03 6.05173832e-05 6.82662923e-01 1.72062921e+00 + 1.53000000e+00 0.00000000e+00 1.00000000e+00 4.84166270e-03 -1.92501680e-05 6.78735035e-01 1.70529513e+00 + 1.56000000e+00 0.00000000e+00 1.00000000e+00 5.04743592e-03 1.67558663e-04 6.81344325e-01 1.69557205e+00 + 1.59000000e+00 0.00000000e+00 1.00000000e+00 5.65857280e-03 1.80100456e-04 6.80040971e-01 1.68868159e+00 + 1.62000000e+00 0.00000000e+00 1.00000000e+00 7.66038841e-03 -1.23860015e-05 6.77432674e-01 1.67598340e+00 + 1.65000000e+00 0.00000000e+00 1.00000000e+00 1.08827499e-02 4.08775842e-05 6.80995186e-01 1.66369516e+00 + 1.68000000e+00 0.00000000e+00 1.00000000e+00 1.43186735e-02 2.12084179e-04 6.84138758e-01 1.65785045e+00 + 1.71000000e+00 0.00000000e+00 1.00000000e+00 1.90470711e-02 9.61121997e-05 6.83442854e-01 1.64953061e+00 + 1.74000000e+00 0.00000000e+00 1.00000000e+00 2.58255551e-02 -3.72603449e-05 6.89746925e-01 1.63574619e+00 + 1.77000000e+00 0.00000000e+00 1.00000000e+00 3.37390834e-02 1.21381410e-04 7.05759132e-01 1.62603265e+00 + 1.80000000e+00 0.00000000e+00 1.00000000e+00 4.19460186e-02 1.93436431e-04 7.20928349e-01 1.62008686e+00 + 1.83000000e+00 0.00000000e+00 1.00000000e+00 5.14159339e-02 4.05656268e-06 7.37698048e-01 1.61011906e+00 + 1.86000000e+00 0.00000000e+00 1.00000000e+00 6.15188010e-02 -6.85594683e-06 7.62659887e-01 1.60016131e+00 + 1.89000000e+00 0.00000000e+00 1.00000000e+00 7.10513162e-02 1.80376306e-04 7.86743953e-01 1.59708190e+00 + 1.92000000e+00 0.00000000e+00 1.00000000e+00 8.02369772e-02 1.19817088e-04 8.02549198e-01 1.59470489e+00 + 1.95000000e+00 0.00000000e+00 1.00000000e+00 9.02534826e-02 -5.04616621e-05 8.21764658e-01 1.58876515e+00 + 1.98000000e+00 0.00000000e+00 1.00000000e+00 1.00291319e-01 6.53187615e-05 8.47454490e-01 1.58585312e+00 + 2.01000000e+00 0.00000000e+00 1.00000000e+00 1.09900526e-01 1.89548274e-04 8.70149045e-01 1.58709838e+00 + 2.04000000e+00 0.00000000e+00 1.00000000e+00 1.19950906e-01 2.52625951e-05 8.93406083e-01 1.58487660e+00 + 2.07000000e+00 0.00000000e+00 1.00000000e+00 1.30476968e-01 -4.57296160e-05 9.27791580e-01 1.58112498e+00 + 2.10000000e+00 0.00000000e+00 1.00000000e+00 1.39911811e-01 1.38113753e-04 9.63206771e-01 1.58256055e+00 + 2.13000000e+00 0.00000000e+00 1.00000000e+00 1.48068625e-01 1.39419916e-04 9.88024818e-01 1.58579379e+00 + 2.16000000e+00 0.00000000e+00 1.00000000e+00 1.55789161e-01 -4.84328443e-05 1.01196227e+00 1.58597113e+00 + 2.19000000e+00 0.00000000e+00 1.00000000e+00 1.62363567e-01 1.32008787e-05 1.03718398e+00 1.58860680e+00 + 2.22000000e+00 0.00000000e+00 1.00000000e+00 1.67152432e-01 1.76395201e-04 1.05187722e+00 1.59631522e+00 + 2.25000000e+00 0.00000000e+00 1.00000000e+00 1.71175686e-01 5.55653131e-05 1.05886517e+00 1.60187729e+00 + 2.28000000e+00 0.00000000e+00 1.00000000e+00 1.75189884e-01 -6.61022330e-05 1.07433355e+00 1.60444075e+00 + 2.31000000e+00 0.00000000e+00 1.00000000e+00 1.77999721e-01 9.60045217e-05 1.09146733e+00 1.61076311e+00 + 2.34000000e+00 0.00000000e+00 1.00000000e+00 1.79527403e-01 1.59297607e-04 1.10056025e+00 1.61897878e+00 + 2.37000000e+00 0.00000000e+00 1.00000000e+00 1.80456653e-01 -2.55234089e-05 1.10838439e+00 1.62296612e+00 + 2.40000000e+00 0.00000000e+00 1.00000000e+00 1.80339815e-01 -2.37913683e-05 1.12021320e+00 1.62784176e+00 + 2.43000000e+00 0.00000000e+00 1.00000000e+00 1.77917321e-01 1.60508376e-04 1.11953532e+00 1.63868730e+00 + 2.46000000e+00 0.00000000e+00 1.00000000e+00 1.74089080e-01 9.52840222e-05 1.10578931e+00 1.64897147e+00 + 2.49000000e+00 0.00000000e+00 1.00000000e+00 1.69663023e-01 -6.34291821e-05 1.09266690e+00 1.65551238e+00 + 2.52000000e+00 0.00000000e+00 1.00000000e+00 1.64133313e-01 6.06131816e-05 1.08054430e+00 1.66559205e+00 + 2.55000000e+00 0.00000000e+00 1.00000000e+00 1.57355952e-01 1.78676454e-04 1.05933859e+00 1.67829932e+00 + 2.58000000e+00 0.00000000e+00 1.00000000e+00 1.50679568e-01 1.69135197e-05 1.03904345e+00 1.68518128e+00 + 2.61000000e+00 0.00000000e+00 1.00000000e+00 1.43952426e-01 -4.01640052e-05 1.02752590e+00 1.68975314e+00 + 2.64000000e+00 0.00000000e+00 1.00000000e+00 1.36033473e-01 1.45167803e-04 1.01316049e+00 1.69961235e+00 + 2.67000000e+00 0.00000000e+00 1.00000000e+00 1.27226432e-01 1.40734041e-04 9.89411783e-01 1.70899751e+00 + 2.70000000e+00 0.00000000e+00 1.00000000e+00 1.18351156e-01 -3.81357227e-05 9.66398125e-01 1.71314573e+00 + 2.73000000e+00 0.00000000e+00 1.00000000e+00 1.08761378e-01 3.44273189e-05 9.44503026e-01 1.72007136e+00 + 2.76000000e+00 0.00000000e+00 1.00000000e+00 9.81601952e-02 1.92797113e-04 9.14065597e-01 1.73126365e+00 + 2.79000000e+00 0.00000000e+00 1.00000000e+00 8.80096089e-02 7.04754167e-05 8.81454491e-01 1.73658222e+00 + 2.82000000e+00 0.00000000e+00 1.00000000e+00 7.87763597e-02 -3.84370085e-05 8.57233408e-01 1.73684736e+00 + 2.85000000e+00 0.00000000e+00 1.00000000e+00 6.97142321e-02 1.27475260e-04 8.37487974e-01 1.74061052e+00 + 2.88000000e+00 0.00000000e+00 1.00000000e+00 6.09710646e-02 1.82426839e-04 8.15104479e-01 1.74360698e+00 + 2.91000000e+00 0.00000000e+00 1.00000000e+00 5.35331374e-02 1.93609478e-06 7.97074509e-01 1.73910003e+00 + 2.94000000e+00 0.00000000e+00 1.00000000e+00 4.65369472e-02 1.45399431e-05 7.85430835e-01 1.73524957e+00 + 2.97000000e+00 0.00000000e+00 1.00000000e+00 3.92699164e-02 1.93590822e-04 7.70711718e-01 1.73664447e+00 + 3.00000000e+00 0.00000000e+00 1.00000000e+00 3.25601395e-02 1.21352749e-04 7.51058691e-01 1.73443055e+00 + 3.03000000e+00 0.00000000e+00 1.00000000e+00 2.71869326e-02 -2.82539195e-05 7.35570061e-01 1.72688492e+00 + 3.06000000e+00 0.00000000e+00 1.00000000e+00 2.23400597e-02 9.95575348e-05 7.24144040e-01 1.72285890e+00 + 3.09000000e+00 0.00000000e+00 1.00000000e+00 1.83805987e-02 2.06177272e-04 7.10587829e-01 1.71964438e+00 + 3.12000000e+00 0.00000000e+00 1.00000000e+00 1.64060723e-02 4.27677626e-05 6.99574234e-01 1.70922250e+00 + 3.15000000e+00 0.00000000e+00 1.00000000e+00 1.60843099e-02 -5.46479824e-06 6.97904584e-01 1.69719365e+00 + 3.18000000e+00 0.00000000e+00 1.00000000e+00 1.62654930e-02 1.73791476e-04 6.99202018e-01 1.69031062e+00 + 3.21000000e+00 0.00000000e+00 1.00000000e+00 1.74063843e-02 1.57313564e-04 6.97642005e-01 1.68209235e+00 + 3.24000000e+00 0.00000000e+00 1.00000000e+00 1.99068323e-02 -1.74231337e-05 6.99428364e-01 1.66963703e+00 + 3.27000000e+00 0.00000000e+00 1.00000000e+00 2.27795943e-02 5.85337467e-05 7.05015216e-01 1.66110169e+00 + 3.30000000e+00 0.00000000e+00 1.00000000e+00 2.58631258e-02 2.03826872e-04 7.06489541e-01 1.65643272e+00 + 3.33000000e+00 0.00000000e+00 1.00000000e+00 3.03352159e-02 7.45450951e-05 7.06546416e-01 1.64749711e+00 + 3.36000000e+00 0.00000000e+00 1.00000000e+00 3.63101417e-02 -2.75327697e-05 7.14453521e-01 1.63661859e+00 + 3.39000000e+00 0.00000000e+00 1.00000000e+00 4.27833669e-02 1.33872525e-04 7.26635981e-01 1.63035829e+00 + 3.42000000e+00 0.00000000e+00 1.00000000e+00 5.01660217e-02 1.74585301e-04 7.38227414e-01 1.62419787e+00 + 3.45000000e+00 0.00000000e+00 1.00000000e+00 5.88579112e-02 -5.53982890e-06 7.55777520e-01 1.61406627e+00 + 3.48000000e+00 0.00000000e+00 1.00000000e+00 6.78054163e-02 1.22303880e-05 7.80324356e-01 1.60673810e+00 + 3.51000000e+00 0.00000000e+00 1.00000000e+00 7.61010849e-02 1.80397681e-04 8.00475513e-01 1.60442406e+00 + 3.54000000e+00 0.00000000e+00 1.00000000e+00 8.46371184e-02 9.85557894e-05 8.16774644e-01 1.60064247e+00 + 3.57000000e+00 0.00000000e+00 1.00000000e+00 9.34524255e-02 -4.47472091e-05 8.37014453e-01 1.59544853e+00 + 3.60000000e+00 0.00000000e+00 1.00000000e+00 1.01759214e-01 8.32869492e-05 8.57713315e-01 1.59496507e+00 + 3.63000000e+00 0.00000000e+00 1.00000000e+00 1.09843014e-01 1.77034129e-04 8.73758952e-01 1.59591943e+00 + 3.66000000e+00 0.00000000e+00 1.00000000e+00 1.18702960e-01 1.22946351e-05 8.94976201e-01 1.59296091e+00 + 3.69000000e+00 0.00000000e+00 1.00000000e+00 1.27537629e-01 -2.72979230e-05 9.24445357e-01 1.59080145e+00 + 3.72000000e+00 0.00000000e+00 1.00000000e+00 1.35424273e-01 1.46712356e-04 9.51576796e-01 1.59313988e+00 + 3.75000000e+00 0.00000000e+00 1.00000000e+00 1.42800988e-01 1.20746721e-04 9.74209564e-01 1.59447913e+00 + 3.78000000e+00 0.00000000e+00 1.00000000e+00 1.49753496e-01 -4.72779850e-05 9.99453628e-01 1.59393505e+00 + 3.81000000e+00 0.00000000e+00 1.00000000e+00 1.55153897e-01 3.48756642e-05 1.02103441e+00 1.59771559e+00 + 3.84000000e+00 0.00000000e+00 1.00000000e+00 1.59045630e-01 1.71257898e-04 1.03090578e+00 1.60466758e+00 + 3.87000000e+00 0.00000000e+00 1.00000000e+00 1.62580710e-01 3.96896924e-05 1.03862792e+00 1.60844069e+00 + 3.90000000e+00 0.00000000e+00 1.00000000e+00 1.65555155e-01 -5.10067556e-05 1.05084344e+00 1.61182742e+00 + 3.93000000e+00 0.00000000e+00 1.00000000e+00 1.67309029e-01 1.11453208e-04 1.06004724e+00 1.61930437e+00 + 3.96000000e+00 0.00000000e+00 1.00000000e+00 1.68426368e-01 1.44003491e-04 1.06485523e+00 1.62571101e+00 + 3.99000000e+00 0.00000000e+00 1.00000000e+00 1.69343496e-01 -2.98399174e-05 1.06809323e+00 1.63146060e+00 + 4.02000000e+00 0.00000000e+00 1.00000000e+00 1.68859862e-01 -7.71959147e-07 1.08344785e+00 1.63228409e+00 + 4.05000000e+00 0.00000000e+00 1.00000000e+00 1.66633095e-01 1.62914338e-04 1.08225133e+00 1.64392646e+00 + 4.08000000e+00 0.00000000e+00 1.00000000e+00 1.63501750e-01 7.67711268e-05 1.07307885e+00 1.65072735e+00 + 4.11000000e+00 0.00000000e+00 1.00000000e+00 1.59543887e-01 -5.41000745e-05 1.06469421e+00 1.65663928e+00 + 4.14000000e+00 0.00000000e+00 1.00000000e+00 1.54054523e-01 8.06543766e-05 1.04996418e+00 1.66747099e+00 + 4.17000000e+00 0.00000000e+00 1.00000000e+00 1.47907238e-01 1.66886853e-04 1.02885226e+00 1.67800977e+00 + 4.20000000e+00 0.00000000e+00 1.00000000e+00 1.41994040e-01 5.54474998e-06 1.01199151e+00 1.68295869e+00 + 4.23000000e+00 0.00000000e+00 1.00000000e+00 1.35712006e-01 -2.00355530e-05 1.00057720e+00 1.68870980e+00 + 4.26000000e+00 0.00000000e+00 1.00000000e+00 1.28509174e-01 1.53366714e-04 9.84582445e-01 1.69787989e+00 + 4.29000000e+00 0.00000000e+00 1.00000000e+00 1.21194778e-01 1.21300849e-04 9.66089136e-01 1.70346791e+00 + 4.32000000e+00 0.00000000e+00 1.00000000e+00 1.13712450e-01 -3.65258395e-05 9.50423827e-01 1.70631425e+00 + 4.35000000e+00 0.00000000e+00 1.00000000e+00 1.05160758e-01 5.53070342e-05 9.31124827e-01 1.71380326e+00 + 4.38000000e+00 0.00000000e+00 1.00000000e+00 9.59908552e-02 1.84996527e-04 9.03915301e-01 1.72238959e+00 + 4.41000000e+00 0.00000000e+00 1.00000000e+00 8.73594750e-02 5.27708115e-05 8.77458664e-01 1.72517393e+00 + 4.44000000e+00 0.00000000e+00 1.00000000e+00 7.90635592e-02 -2.47750574e-05 8.56429570e-01 1.72704789e+00 + 4.47000000e+00 0.00000000e+00 1.00000000e+00 7.07470572e-02 1.39309417e-04 8.35160720e-01 1.73176111e+00 + 4.50000000e+00 0.00000000e+00 1.00000000e+00 6.33770309e-02 1.63210942e-04 8.14521379e-01 1.73218803e+00 + 4.53000000e+00 0.00000000e+00 1.00000000e+00 5.71676764e-02 -5.06864543e-06 8.00759869e-01 1.72744278e+00 + 4.56000000e+00 0.00000000e+00 1.00000000e+00 5.11051762e-02 3.36095606e-05 7.90825892e-01 1.72557583e+00 + 4.59000000e+00 0.00000000e+00 1.00000000e+00 4.50369777e-02 1.90555032e-04 7.77009209e-01 1.72575453e+00 + 4.62000000e+00 0.00000000e+00 1.00000000e+00 3.98946148e-02 9.93610164e-05 7.62354695e-01 1.72121391e+00 + 4.65000000e+00 0.00000000e+00 1.00000000e+00 3.53602182e-02 -2.23711122e-05 7.51250602e-01 1.71568924e+00 + 4.68000000e+00 0.00000000e+00 1.00000000e+00 3.10038882e-02 1.13950428e-04 7.39636796e-01 1.71388109e+00 + 4.71000000e+00 0.00000000e+00 1.00000000e+00 2.77182428e-02 1.89356263e-04 7.25954279e-01 1.70977835e+00 + 4.74000000e+00 0.00000000e+00 1.00000000e+00 2.62706241e-02 2.83340794e-05 7.17386010e-01 1.70019986e+00 + 4.77000000e+00 0.00000000e+00 1.00000000e+00 2.58086565e-02 1.03910413e-05 7.15766715e-01 1.69191648e+00 + 4.80000000e+00 0.00000000e+00 1.00000000e+00 2.60819703e-02 1.76765120e-04 7.14751933e-01 1.68594923e+00 + 4.83000000e+00 0.00000000e+00 1.00000000e+00 2.77179250e-02 1.34728389e-04 7.14674874e-01 1.67653413e+00 + 4.86000000e+00 0.00000000e+00 1.00000000e+00 3.03309883e-02 -1.81324368e-05 7.19837585e-01 1.66593218e+00 + 4.89000000e+00 0.00000000e+00 1.00000000e+00 3.29057840e-02 7.55333042e-05 7.25352713e-01 1.65990568e+00 + 4.92000000e+00 0.00000000e+00 1.00000000e+00 3.59448378e-02 1.92753767e-04 7.26492316e-01 1.65472287e+00 + 4.95000000e+00 0.00000000e+00 1.00000000e+00 4.02294292e-02 5.58842866e-05 7.29186922e-01 1.64606446e+00 + 4.98000000e+00 0.00000000e+00 1.00000000e+00 4.52028608e-02 -1.51547781e-05 7.36850218e-01 1.63856153e+00 + 5.01000000e+00 0.00000000e+00 1.00000000e+00 5.06175253e-02 1.43439464e-04 7.44871978e-01 1.63410994e+00 + 5.04000000e+00 0.00000000e+00 1.00000000e+00 5.72828602e-02 1.54901369e-04 7.54663092e-01 1.62736726e+00 + 5.07000000e+00 0.00000000e+00 1.00000000e+00 6.50671171e-02 -1.12782918e-05 7.72442220e-01 1.61859492e+00 + 5.10000000e+00 0.00000000e+00 1.00000000e+00 7.27291875e-02 3.13488493e-05 7.93494818e-01 1.61351919e+00 + 5.13000000e+00 0.00000000e+00 1.00000000e+00 8.02677314e-02 1.77380413e-04 8.11238923e-01 1.61073705e+00 + 5.16000000e+00 0.00000000e+00 1.00000000e+00 8.81700365e-02 7.89747734e-05 8.29207021e-01 1.60591530e+00 + 5.19000000e+00 0.00000000e+00 1.00000000e+00 9.58321745e-02 -3.59916472e-05 8.49245257e-01 1.60241727e+00 + 5.22000000e+00 0.00000000e+00 1.00000000e+00 1.02723764e-01 9.89389168e-05 8.64807175e-01 1.60304511e+00 + 5.25000000e+00 0.00000000e+00 1.00000000e+00 1.09812227e-01 1.62601934e-04 8.78186552e-01 1.60303383e+00 + 5.28000000e+00 0.00000000e+00 1.00000000e+00 1.17390805e-01 2.29374649e-06 8.97366113e-01 1.60041023e+00 + 5.31000000e+00 0.00000000e+00 1.00000000e+00 1.24597499e-01 -8.08761947e-06 9.20206654e-01 1.60025160e+00 + 5.34000000e+00 0.00000000e+00 1.00000000e+00 1.31273794e-01 1.51864514e-04 9.40520734e-01 1.60227960e+00 + 5.37000000e+00 0.00000000e+00 1.00000000e+00 1.37992618e-01 1.02337319e-04 9.62542795e-01 1.60206679e+00 + 5.40000000e+00 0.00000000e+00 1.00000000e+00 1.44015453e-01 -4.29113961e-05 9.86685493e-01 1.60195180e+00 + 5.43000000e+00 0.00000000e+00 1.00000000e+00 1.48470710e-01 5.49707893e-05 1.00389276e+00 1.60629158e+00 + 5.46000000e+00 0.00000000e+00 1.00000000e+00 1.51943696e-01 1.63232180e-04 1.01301399e+00 1.61142746e+00 + 5.49000000e+00 0.00000000e+00 1.00000000e+00 1.54992077e-01 2.61146678e-05 1.02202326e+00 1.61424060e+00 + 5.52000000e+00 0.00000000e+00 1.00000000e+00 1.56995913e-01 -3.42673278e-05 1.03009707e+00 1.61898628e+00 + 5.55000000e+00 0.00000000e+00 1.00000000e+00 1.57996345e-01 1.23314855e-04 1.03294880e+00 1.62635233e+00 + 5.58000000e+00 0.00000000e+00 1.00000000e+00 1.58921171e-01 1.27725582e-04 1.03688893e+00 1.63094043e+00 + 5.61000000e+00 0.00000000e+00 1.00000000e+00 1.59464896e-01 -3.10090047e-05 1.04003076e+00 1.63471005e+00 + 5.64000000e+00 0.00000000e+00 1.00000000e+00 1.58676415e-01 2.08143252e-05 1.04938350e+00 1.63832941e+00 + 5.67000000e+00 0.00000000e+00 1.00000000e+00 1.56800085e-01 1.61281495e-04 1.04938595e+00 1.64760137e+00 + 5.70000000e+00 0.00000000e+00 1.00000000e+00 1.54339731e-01 6.07474979e-05 1.04595136e+00 1.65217791e+00 + 5.73000000e+00 0.00000000e+00 1.00000000e+00 1.50588463e-01 -4.21942833e-05 1.03909270e+00 1.65857704e+00 + 5.76000000e+00 0.00000000e+00 1.00000000e+00 1.45465360e-01 9.66927698e-05 1.02379418e+00 1.66882545e+00 + 5.79000000e+00 0.00000000e+00 1.00000000e+00 1.40048334e-01 1.53288848e-04 1.00522770e+00 1.67666880e+00 + 5.82000000e+00 0.00000000e+00 1.00000000e+00 1.34664909e-01 -1.85746812e-06 9.91056978e-01 1.68131285e+00 + 5.85000000e+00 0.00000000e+00 1.00000000e+00 1.28616075e-01 -2.66796443e-07 9.77194583e-01 1.68821146e+00 + 5.88000000e+00 0.00000000e+00 1.00000000e+00 1.22257871e-01 1.57141800e-04 9.61146472e-01 1.69540498e+00 + 5.91000000e+00 0.00000000e+00 1.00000000e+00 1.16158191e-01 1.03281804e-04 9.47595855e-01 1.69843755e+00 + 5.94000000e+00 0.00000000e+00 1.00000000e+00 1.09640778e-01 -3.14033508e-05 9.35757224e-01 1.70151319e+00 + 5.97000000e+00 0.00000000e+00 1.00000000e+00 1.02126252e-01 7.32621486e-05 9.18146733e-01 1.70834403e+00 + 6.00000000e+00 0.00000000e+00 1.00000000e+00 9.44674145e-02 1.74549262e-04 8.96088268e-01 1.71367513e+00 + 6.03000000e+00 0.00000000e+00 1.00000000e+00 8.70891987e-02 3.87690602e-05 8.75667051e-01 1.71557466e+00 + 6.06000000e+00 0.00000000e+00 1.00000000e+00 7.94969757e-02 -9.92518060e-06 8.55710079e-01 1.71911597e+00 + 6.09000000e+00 0.00000000e+00 1.00000000e+00 7.21040273e-02 1.46950488e-04 8.34269625e-01 1.72300292e+00 + 6.12000000e+00 0.00000000e+00 1.00000000e+00 6.58799629e-02 1.44202143e-04 8.16414055e-01 1.72178842e+00 + 6.15000000e+00 0.00000000e+00 1.00000000e+00 6.04662740e-02 -7.85235848e-06 8.04995949e-01 1.71849615e+00 + 6.18000000e+00 0.00000000e+00 1.00000000e+00 5.51161677e-02 5.11907562e-05 7.94599176e-01 1.71769522e+00 + 6.21000000e+00 0.00000000e+00 1.00000000e+00 5.03297931e-02 1.84278063e-04 7.82953399e-01 1.71570446e+00 + 6.24000000e+00 0.00000000e+00 1.00000000e+00 4.63602701e-02 8.05728608e-05 7.73357233e-01 1.71054790e+00 + 6.27000000e+00 0.00000000e+00 1.00000000e+00 4.24823435e-02 -1.36310815e-05 7.64792717e-01 1.70712611e+00 + 6.30000000e+00 0.00000000e+00 1.00000000e+00 3.87434634e-02 1.24808393e-04 7.53216259e-01 1.70557078e+00 + 6.33000000e+00 0.00000000e+00 1.00000000e+00 3.62378261e-02 1.71685397e-04 7.41652213e-01 1.70055912e+00 + 6.36000000e+00 0.00000000e+00 1.00000000e+00 3.49541835e-02 1.84253192e-05 7.35087090e-01 1.69327202e+00 + 6.39000000e+00 0.00000000e+00 1.00000000e+00 3.43304976e-02 2.62104592e-05 7.31720835e-01 1.68774175e+00 + 6.42000000e+00 0.00000000e+00 1.00000000e+00 3.47865690e-02 1.75941497e-04 7.29287658e-01 1.68148851e+00 + 6.45000000e+00 0.00000000e+00 1.00000000e+00 3.67051825e-02 1.14349228e-04 7.31294716e-01 1.67217463e+00 + 6.48000000e+00 0.00000000e+00 1.00000000e+00 3.91229193e-02 -1.49667646e-05 7.37559490e-01 1.66404947e+00 + 6.51000000e+00 0.00000000e+00 1.00000000e+00 4.15825938e-02 8.99039278e-05 7.42160758e-01 1.65888483e+00 + 6.54000000e+00 0.00000000e+00 1.00000000e+00 4.47664001e-02 1.79741477e-04 7.45019173e-01 1.65275027e+00 + 6.57000000e+00 0.00000000e+00 1.00000000e+00 4.87199313e-02 4.14443859e-05 7.50254948e-01 1.64551448e+00 + 6.60000000e+00 0.00000000e+00 1.00000000e+00 5.28075849e-02 -1.59255978e-06 7.56247854e-01 1.64067689e+00 + 6.63000000e+00 0.00000000e+00 1.00000000e+00 5.75020021e-02 1.49005883e-04 7.61410881e-01 1.63657552e+00 + 6.66000000e+00 0.00000000e+00 1.00000000e+00 6.35051132e-02 1.36020761e-04 7.70976707e-01 1.62996837e+00 + 6.69000000e+00 0.00000000e+00 1.00000000e+00 7.01446059e-02 -1.29062431e-05 7.86803584e-01 1.62347385e+00 + 6.72000000e+00 0.00000000e+00 1.00000000e+00 7.67458011e-02 4.86537992e-05 8.03540186e-01 1.61963599e+00 + 6.75000000e+00 0.00000000e+00 1.00000000e+00 8.37071802e-02 1.71352060e-04 8.20285486e-01 1.61582694e+00 + 6.78000000e+00 0.00000000e+00 1.00000000e+00 9.09326204e-02 6.27479091e-05 8.39737716e-01 1.61115761e+00 + 6.81000000e+00 0.00000000e+00 1.00000000e+00 9.74657340e-02 -2.50716409e-05 8.57528344e-01 1.60921866e+00 + 6.84000000e+00 0.00000000e+00 1.00000000e+00 1.03463636e-01 1.10779626e-04 8.70254173e-01 1.60968042e+00 + 6.87000000e+00 0.00000000e+00 1.00000000e+00 1.09739482e-01 1.47476074e-04 8.83212195e-01 1.60880745e+00 + 6.90000000e+00 0.00000000e+00 1.00000000e+00 1.16039514e-01 -3.67018184e-06 8.99626133e-01 1.60753773e+00 + 6.93000000e+00 0.00000000e+00 1.00000000e+00 1.21814094e-01 1.02167211e-05 9.15404597e-01 1.60863466e+00 + 6.96000000e+00 0.00000000e+00 1.00000000e+00 1.27622981e-01 1.53136231e-04 9.31758697e-01 1.60975364e+00 + 6.99000000e+00 0.00000000e+00 1.00000000e+00 1.33551682e-01 8.60108785e-05 9.52573745e-01 1.60901817e+00 + 7.02000000e+00 0.00000000e+00 1.00000000e+00 1.38590526e-01 -3.56064182e-05 9.73154729e-01 1.60991610e+00 + 7.05000000e+00 0.00000000e+00 1.00000000e+00 1.42416985e-01 7.17123413e-05 9.87119873e-01 1.61368186e+00 + 7.08000000e+00 0.00000000e+00 1.00000000e+00 1.45688997e-01 1.53240817e-04 9.97870501e-01 1.61694909e+00 + 7.11000000e+00 0.00000000e+00 1.00000000e+00 1.48189901e-01 1.62877292e-05 1.00726591e+00 1.61983174e+00 + 7.14000000e+00 0.00000000e+00 1.00000000e+00 1.49419629e-01 -1.73513186e-05 1.01103288e+00 1.62541082e+00 + 7.17000000e+00 0.00000000e+00 1.00000000e+00 1.50053804e-01 1.30833310e-04 1.01119040e+00 1.63160352e+00 + 7.20000000e+00 0.00000000e+00 1.00000000e+00 1.50711985e-01 1.12173928e-04 1.01321920e+00 1.64008574e+00 + 7.23000000e+00 0.00000000e+00 1.00000000e+00 1.50730545e-01 -2.85826924e-05 1.02062195e+00 1.63868888e+00 + 7.26000000e+00 0.00000000e+00 1.00000000e+00 1.49746799e-01 3.98040312e-05 1.01901550e+00 1.64370009e+00 + 7.29000000e+00 0.00000000e+00 1.00000000e+00 1.48325159e-01 1.56341828e-04 1.02198372e+00 1.65007688e+00 + 7.32000000e+00 0.00000000e+00 1.00000000e+00 1.46236589e-01 4.79256689e-05 1.02184009e+00 1.65370659e+00 + 7.35000000e+00 0.00000000e+00 1.00000000e+00 1.42718648e-01 -2.86815518e-05 1.01523637e+00 1.66033691e+00 + 7.38000000e+00 0.00000000e+00 1.00000000e+00 1.38192714e-01 1.08405198e-04 1.00133207e+00 1.66864649e+00 + 7.41000000e+00 0.00000000e+00 1.00000000e+00 1.33520252e-01 1.39069302e-04 9.87152459e-01 1.67457331e+00 + 7.44000000e+00 0.00000000e+00 1.00000000e+00 1.28405079e-01 -5.40854899e-06 9.73522209e-01 1.68004410e+00 + 7.47000000e+00 0.00000000e+00 1.00000000e+00 1.22698532e-01 1.80982226e-05 9.57661786e-01 1.68701965e+00 + 7.50000000e+00 0.00000000e+00 1.00000000e+00 1.17172487e-01 1.56915590e-04 9.42957708e-01 1.69204728e+00 + 7.53000000e+00 0.00000000e+00 1.00000000e+00 1.11932147e-01 8.75158045e-05 9.32821663e-01 1.69425168e+00 + 7.56000000e+00 0.00000000e+00 1.00000000e+00 1.06085427e-01 -2.35352212e-05 9.21800627e-01 1.69790600e+00 + 7.59000000e+00 0.00000000e+00 1.00000000e+00 9.96946040e-02 8.77342800e-05 9.06462438e-01 1.70289804e+00 + 7.62000000e+00 0.00000000e+00 1.00000000e+00 9.34167428e-02 1.62437050e-04 8.90373774e-01 1.70566901e+00 + 7.65000000e+00 0.00000000e+00 1.00000000e+00 8.69901224e-02 2.87374027e-05 8.74253489e-01 1.70791681e+00 + 7.68000000e+00 0.00000000e+00 1.00000000e+00 8.01327902e-02 5.13769927e-06 8.54933337e-01 1.71197240e+00 + 7.71000000e+00 0.00000000e+00 1.00000000e+00 7.37608565e-02 1.50519972e-04 8.35227979e-01 1.71421356e+00 + 7.74000000e+00 0.00000000e+00 1.00000000e+00 6.84019508e-02 1.26394667e-04 8.20327673e-01 1.71285368e+00 + 7.77000000e+00 0.00000000e+00 1.00000000e+00 6.34474788e-02 -6.96793772e-06 8.08932436e-01 1.71149285e+00 + 7.80000000e+00 0.00000000e+00 1.00000000e+00 5.88342118e-02 6.64828857e-05 7.97955824e-01 1.71044539e+00 + 7.83000000e+00 0.00000000e+00 1.00000000e+00 5.51421890e-02 1.75474089e-04 7.89226926e-01 1.70682322e+00 + 7.86000000e+00 0.00000000e+00 1.00000000e+00 5.19826418e-02 6.54518099e-05 7.83299023e-01 1.70244834e+00 + 7.89000000e+00 0.00000000e+00 1.00000000e+00 4.86591929e-02 -3.05376499e-06 7.75682026e-01 1.70022190e+00 + 7.92000000e+00 0.00000000e+00 1.00000000e+00 4.57428393e-02 1.32115027e-04 7.65668928e-01 1.69762774e+00 + 7.95000000e+00 0.00000000e+00 1.00000000e+00 4.38491354e-02 1.54116618e-04 7.57344348e-01 1.69270401e+00 + 7.98000000e+00 0.00000000e+00 1.00000000e+00 4.25765871e-02 1.26761822e-05 7.51473425e-01 1.68800420e+00 + 8.01000000e+00 0.00000000e+00 1.00000000e+00 4.18907993e-02 4.10658427e-05 7.46122387e-01 1.68373624e+00 + 8.04000000e+00 0.00000000e+00 1.00000000e+00 4.25750223e-02 1.71910418e-04 7.43765417e-01 1.67713178e+00 + 8.07000000e+00 0.00000000e+00 1.00000000e+00 4.44257785e-02 9.66319709e-05 7.47002495e-01 1.66929832e+00 + 8.10000000e+00 0.00000000e+00 1.00000000e+00 4.65595522e-02 -8.85582400e-06 7.52242981e-01 1.66317803e+00 + 8.13000000e+00 0.00000000e+00 1.00000000e+00 4.90660269e-02 1.01354747e-04 7.56503515e-01 1.65765926e+00 + 8.16000000e+00 0.00000000e+00 1.00000000e+00 5.23638174e-02 1.65605683e-04 7.62088227e-01 1.65122183e+00 + 8.19000000e+00 0.00000000e+00 1.00000000e+00 5.58676755e-02 3.10387807e-05 7.68522555e-01 1.64590354e+00 + 8.22000000e+00 0.00000000e+00 1.00000000e+00 5.93359685e-02 1.23465057e-05 7.72645830e-01 1.64237175e+00 + 8.25000000e+00 0.00000000e+00 1.00000000e+00 6.35840569e-02 1.50954013e-04 7.77142399e-01 1.63801721e+00 + 8.28000000e+00 0.00000000e+00 1.00000000e+00 6.88191547e-02 1.18404481e-04 7.86504228e-01 1.63257810e+00 + 8.31000000e+00 0.00000000e+00 1.00000000e+00 7.43147172e-02 -1.10769266e-05 7.98747132e-01 1.62827756e+00 + 8.34000000e+00 0.00000000e+00 1.00000000e+00 8.00879719e-02 6.37600004e-05 8.11763636e-01 1.62464737e+00 + 8.37000000e+00 0.00000000e+00 1.00000000e+00 8.65159665e-02 1.62952973e-04 8.28488993e-01 1.62024883e+00 + 8.40000000e+00 0.00000000e+00 1.00000000e+00 9.28972997e-02 4.98179970e-05 8.47412810e-01 1.61661602e+00 + 8.43000000e+00 0.00000000e+00 1.00000000e+00 9.85490435e-02 -1.26366210e-05 8.62527072e-01 1.61544318e+00 + 8.46000000e+00 0.00000000e+00 1.00000000e+00 1.03983882e-01 1.19055415e-04 8.74655160e-01 1.61493675e+00 + 8.49000000e+00 0.00000000e+00 1.00000000e+00 1.09525925e-01 1.32247861e-04 8.88098331e-01 1.61399408e+00 + 8.52000000e+00 0.00000000e+00 1.00000000e+00 1.14602593e-01 -6.05721567e-06 9.00628719e-01 1.61427546e+00 + 8.55000000e+00 0.00000000e+00 1.00000000e+00 1.19336672e-01 2.72371454e-05 9.11263500e-01 1.61557542e+00 + 8.58000000e+00 0.00000000e+00 1.00000000e+00 1.24398567e-01 1.51059533e-04 9.25364509e-01 1.61585036e+00 + 8.61000000e+00 0.00000000e+00 1.00000000e+00 1.29406845e-01 7.18922262e-05 9.43602096e-01 1.61573018e+00 + 8.64000000e+00 0.00000000e+00 1.00000000e+00 1.33530133e-01 -2.59814043e-05 9.59264606e-01 1.61731590e+00 + 8.67000000e+00 0.00000000e+00 1.00000000e+00 1.37010553e-01 8.52478792e-05 9.71947706e-01 1.61978488e+00 + 8.70000000e+00 0.00000000e+00 1.00000000e+00 1.40054724e-01 1.41860528e-04 9.84483588e-01 1.62187442e+00 + 8.73000000e+00 0.00000000e+00 1.00000000e+00 1.42004901e-01 9.90457033e-06 9.92798344e-01 1.62530820e+00 + 8.76000000e+00 0.00000000e+00 1.00000000e+00 1.42789145e-01 -5.90824651e-07 9.93892169e-01 1.63065867e+00 + 8.79000000e+00 0.00000000e+00 1.00000000e+00 1.43286027e-01 1.34532240e-04 9.94149521e-01 1.63539280e+00 + 8.82000000e+00 0.00000000e+00 1.00000000e+00 1.43561924e-01 9.75689296e-05 9.96016725e-01 1.64206451e+00 + 8.85000000e+00 0.00000000e+00 1.00000000e+00 1.43057672e-01 -2.37219793e-05 1.00032600e+00 1.64151805e+00 + 8.88000000e+00 0.00000000e+00 1.00000000e+00 1.42064603e-01 5.61050579e-05 9.93552439e-01 1.64776030e+00 + 8.91000000e+00 0.00000000e+00 1.00000000e+00 1.40951295e-01 1.49447398e-04 9.99236586e-01 1.65215386e+00 + 8.94000000e+00 0.00000000e+00 1.00000000e+00 1.39010282e-01 3.79605512e-05 9.99880873e-01 1.65594126e+00 + 8.97000000e+00 0.00000000e+00 1.00000000e+00 1.35817139e-01 -1.46309632e-05 9.93201759e-01 1.66196400e+00 + 9.00000000e+00 0.00000000e+00 1.00000000e+00 1.32051052e-01 1.16688088e-04 9.82930798e-01 1.66789482e+00 + 9.03000000e+00 0.00000000e+00 1.00000000e+00 1.27936093e-01 1.25089404e-04 9.72412786e-01 1.67303278e+00 + 9.06000000e+00 0.00000000e+00 1.00000000e+00 1.23056529e-01 -6.06791060e-06 9.58405192e-01 1.67910580e+00 + 9.09000000e+00 0.00000000e+00 1.00000000e+00 1.17836331e-01 3.46479112e-05 9.41983996e-01 1.68508379e+00 + 9.12000000e+00 0.00000000e+00 1.00000000e+00 1.13045140e-01 1.53933147e-04 9.29602705e-01 1.68857136e+00 + 9.15000000e+00 0.00000000e+00 1.00000000e+00 1.08286870e-01 7.40958731e-05 9.20337889e-01 1.69123966e+00 + 9.18000000e+00 0.00000000e+00 1.00000000e+00 1.03045322e-01 -1.40627357e-05 9.08943065e-01 1.69483963e+00 + 9.21000000e+00 0.00000000e+00 1.00000000e+00 9.77612143e-02 9.90680837e-05 8.96686101e-01 1.69754763e+00 + 9.24000000e+00 0.00000000e+00 1.00000000e+00 9.25947540e-02 1.49721131e-04 8.85826117e-01 1.69908771e+00 + 9.27000000e+00 0.00000000e+00 1.00000000e+00 8.69188977e-02 2.20195904e-05 8.72103284e-01 1.70191866e+00 + 9.30000000e+00 0.00000000e+00 1.00000000e+00 8.09432607e-02 1.96469868e-05 8.54300450e-01 1.70511386e+00 + 9.33000000e+00 0.00000000e+00 1.00000000e+00 7.55647878e-02 1.50986714e-04 8.37932737e-01 1.70595081e+00 + 9.36000000e+00 0.00000000e+00 1.00000000e+00 7.07772325e-02 1.10240882e-04 8.24960321e-01 1.70561991e+00 + 9.39000000e+00 0.00000000e+00 1.00000000e+00 6.61969964e-02 -3.52185870e-06 8.12488468e-01 1.70550557e+00 + 9.42000000e+00 0.00000000e+00 1.00000000e+00 6.23299659e-02 7.93694387e-05 8.01791706e-01 1.70350012e+00 + 9.45000000e+00 0.00000000e+00 1.00000000e+00 5.94423680e-02 1.65199710e-04 7.95843528e-01 1.69951330e+00 + 9.48000000e+00 0.00000000e+00 1.00000000e+00 5.67758691e-02 5.35963258e-05 7.91371015e-01 1.69647353e+00 + 9.51000000e+00 0.00000000e+00 1.00000000e+00 5.40810021e-02 8.35529618e-06 7.84435291e-01 1.69414724e+00 + 9.54000000e+00 0.00000000e+00 1.00000000e+00 5.19980104e-02 1.36424576e-04 7.77417699e-01 1.69041786e+00 + 9.57000000e+00 0.00000000e+00 1.00000000e+00 5.05282218e-02 1.37327162e-04 7.72086476e-01 1.68653155e+00 + 9.60000000e+00 0.00000000e+00 1.00000000e+00 4.92509031e-02 1.02028251e-05 7.65852996e-01 1.68368700e+00 + 9.63000000e+00 0.00000000e+00 1.00000000e+00 4.87121734e-02 5.45711246e-05 7.59737260e-01 1.67950920e+00 + 9.66000000e+00 0.00000000e+00 1.00000000e+00 4.94914231e-02 1.65580984e-04 7.58334858e-01 1.67333824e+00 + 9.69000000e+00 0.00000000e+00 1.00000000e+00 5.10475965e-02 8.15743691e-05 7.61167507e-01 1.66764110e+00 + 9.72000000e+00 0.00000000e+00 1.00000000e+00 5.29363044e-02 -7.98274376e-07 7.64462840e-01 1.66249220e+00 + 9.75000000e+00 0.00000000e+00 1.00000000e+00 5.55717899e-02 1.10143470e-04 7.69443422e-01 1.65634315e+00 + 9.78000000e+00 0.00000000e+00 1.00000000e+00 5.87911411e-02 1.51147842e-04 7.77231646e-01 1.65058914e+00 + 9.81000000e+00 0.00000000e+00 1.00000000e+00 6.18673145e-02 2.41399262e-05 7.83433229e-01 1.64682392e+00 + 9.84000000e+00 0.00000000e+00 1.00000000e+00 6.50175679e-02 2.60878716e-05 7.86811275e-01 1.64334471e+00 + 9.87000000e+00 0.00000000e+00 1.00000000e+00 6.89302793e-02 1.50062207e-04 7.92242901e-01 1.63900482e+00 + 9.90000000e+00 0.00000000e+00 1.00000000e+00 7.33204314e-02 1.02418669e-04 8.00528729e-01 1.63536302e+00 + 9.93000000e+00 0.00000000e+00 1.00000000e+00 7.78450865e-02 -6.63312553e-06 8.08771300e-01 1.63242995e+00 + 9.96000000e+00 0.00000000e+00 1.00000000e+00 8.29893947e-02 7.65845578e-05 8.19590495e-01 1.62853189e+00 + 9.99000000e+00 0.00000000e+00 1.00000000e+00 8.87553238e-02 1.52920716e-04 8.35837213e-01 1.62449721e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 9.06551669e-02 1.29630845e-04 8.42520090e-01 1.62382656e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S5 b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S5 new file mode 100644 index 00000000..ae861923 --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S5 @@ -0,0 +1,202 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 5.00000000e-02 0.00000000e+00 1.00000000e+00 3.54938553e-03 1.29570636e-04 8.87743742e-01 2.63730272e+00 + 1.00000000e-01 0.00000000e+00 1.00000000e+00 1.14769100e-02 1.43263806e-04 7.51015435e-01 2.18089782e+00 + 1.50000000e-01 0.00000000e+00 1.00000000e+00 2.67015181e-02 5.37541527e-05 7.49207576e-01 1.99298171e+00 + 2.00000000e-01 0.00000000e+00 1.00000000e+00 4.36161954e-02 1.54194799e-04 7.75564762e-01 1.89060623e+00 + 2.50000000e-01 0.00000000e+00 1.00000000e+00 6.23898126e-02 6.64818917e-06 8.16697398e-01 1.81391276e+00 + 3.00000000e-01 0.00000000e+00 1.00000000e+00 7.93393480e-02 1.61326577e-04 8.40671813e-01 1.75989435e+00 + 3.50000000e-01 0.00000000e+00 1.00000000e+00 9.78748834e-02 -1.77759946e-05 8.70734083e-01 1.71339565e+00 + 4.00000000e-01 0.00000000e+00 1.00000000e+00 1.17413484e-01 1.56113820e-04 9.15457222e-01 1.68044671e+00 + 4.50000000e-01 0.00000000e+00 1.00000000e+00 1.37725281e-01 -2.23908879e-05 9.77049237e-01 1.65219775e+00 + 5.00000000e-01 0.00000000e+00 1.00000000e+00 1.55580909e-01 1.33922615e-04 1.03800610e+00 1.63396242e+00 + 5.50000000e-01 0.00000000e+00 1.00000000e+00 1.68736536e-01 -6.52674902e-06 1.07027211e+00 1.62302053e+00 + 6.00000000e-01 0.00000000e+00 1.00000000e+00 1.78845399e-01 1.00678216e-04 1.09475286e+00 1.62017344e+00 + 6.50000000e-01 0.00000000e+00 1.00000000e+00 1.86022724e-01 2.49275655e-05 1.10965919e+00 1.62302723e+00 + 7.00000000e-01 0.00000000e+00 1.00000000e+00 1.92770843e-01 5.90869679e-05 1.14788490e+00 1.62498947e+00 + 7.50000000e-01 0.00000000e+00 1.00000000e+00 1.94650366e-01 6.29218533e-05 1.16598221e+00 1.63206382e+00 + 8.00000000e-01 0.00000000e+00 1.00000000e+00 1.92688425e-01 1.93887627e-05 1.17401958e+00 1.63830786e+00 + 8.50000000e-01 0.00000000e+00 1.00000000e+00 1.83917297e-01 1.03601564e-04 1.13898294e+00 1.65611602e+00 + 9.00000000e-01 0.00000000e+00 1.00000000e+00 1.73795342e-01 -8.86683104e-06 1.10874317e+00 1.66920199e+00 + 9.50000000e-01 0.00000000e+00 1.00000000e+00 1.61068196e-01 1.36120805e-04 1.07316142e+00 1.68877989e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.48486400e-01 -2.34401030e-05 1.05259556e+00 1.69766035e+00 + 1.05000000e+00 0.00000000e+00 1.00000000e+00 1.31956967e-01 1.53199154e-04 1.01396620e+00 1.71529520e+00 + 1.10000000e+00 0.00000000e+00 1.00000000e+00 1.13302216e-01 -1.78863508e-05 9.62669638e-01 1.72797152e+00 + 1.15000000e+00 0.00000000e+00 1.00000000e+00 9.28093313e-02 1.56425223e-04 9.02239663e-01 1.74645192e+00 + 1.20000000e+00 0.00000000e+00 1.00000000e+00 7.42134814e-02 7.54735195e-06 8.50658662e-01 1.75481003e+00 + 1.25000000e+00 0.00000000e+00 1.00000000e+00 5.82432548e-02 1.41656687e-04 8.16432489e-01 1.75809645e+00 + 1.30000000e+00 0.00000000e+00 1.00000000e+00 4.36300957e-02 4.39699391e-05 7.86699286e-01 1.75639907e+00 + 1.35000000e+00 0.00000000e+00 1.00000000e+00 3.01072618e-02 1.12782233e-04 7.59497986e-01 1.75182949e+00 + 1.40000000e+00 0.00000000e+00 1.00000000e+00 1.68512204e-02 8.86097610e-05 7.24532581e-01 1.74982797e+00 + 1.45000000e+00 0.00000000e+00 1.00000000e+00 8.24327201e-03 7.90023058e-05 6.98142929e-01 1.73760265e+00 + 1.50000000e+00 0.00000000e+00 1.00000000e+00 3.46630539e-03 1.30201567e-04 6.80496540e-01 1.72597963e+00 + 1.55000000e+00 0.00000000e+00 1.00000000e+00 4.69797999e-03 4.24259660e-05 6.79737707e-01 1.70248286e+00 + 1.60000000e+00 0.00000000e+00 1.00000000e+00 6.86729945e-03 1.58805017e-04 6.82065282e-01 1.68730483e+00 + 1.65000000e+00 0.00000000e+00 1.00000000e+00 1.20918724e-02 1.39834556e-05 6.85091592e-01 1.66630114e+00 + 1.70000000e+00 0.00000000e+00 1.00000000e+00 1.84205555e-02 1.73282212e-04 6.84871857e-01 1.65479452e+00 + 1.75000000e+00 0.00000000e+00 1.00000000e+00 3.03429550e-02 -8.25230207e-07 6.96626690e-01 1.63565918e+00 + 1.80000000e+00 0.00000000e+00 1.00000000e+00 4.50931888e-02 1.66552182e-04 7.24279248e-01 1.62240927e+00 + 1.85000000e+00 0.00000000e+00 1.00000000e+00 6.24910033e-02 -1.36564094e-06 7.65993217e-01 1.60561925e+00 + 1.90000000e+00 0.00000000e+00 1.00000000e+00 7.85995141e-02 1.42140736e-04 8.03653227e-01 1.59691616e+00 + 1.95000000e+00 0.00000000e+00 1.00000000e+00 9.42454923e-02 1.58511799e-05 8.33107064e-01 1.59013504e+00 + 2.00000000e+00 0.00000000e+00 1.00000000e+00 1.10358802e-01 1.05414264e-04 8.67599038e-01 1.58803831e+00 + 2.05000000e+00 0.00000000e+00 1.00000000e+00 1.27329532e-01 4.35383068e-05 9.13670927e-01 1.58648557e+00 + 2.10000000e+00 0.00000000e+00 1.00000000e+00 1.44326101e-01 6.05055061e-05 9.76266081e-01 1.58487723e+00 + 2.15000000e+00 0.00000000e+00 1.00000000e+00 1.57346176e-01 7.63110431e-05 1.02102141e+00 1.58744748e+00 + 2.20000000e+00 0.00000000e+00 1.00000000e+00 1.67212044e-01 1.86863365e-05 1.05350263e+00 1.59105421e+00 + 2.25000000e+00 0.00000000e+00 1.00000000e+00 1.72733737e-01 1.08476863e-04 1.06152069e+00 1.60245608e+00 + 2.30000000e+00 0.00000000e+00 1.00000000e+00 1.78186521e-01 -1.30629327e-05 1.08567256e+00 1.60936332e+00 + 2.35000000e+00 0.00000000e+00 1.00000000e+00 1.80485230e-01 1.30865935e-04 1.10421767e+00 1.62156255e+00 + 2.40000000e+00 0.00000000e+00 1.00000000e+00 1.80724425e-01 -2.95616750e-05 1.12538651e+00 1.62759125e+00 + 2.45000000e+00 0.00000000e+00 1.00000000e+00 1.74573135e-01 1.40205760e-04 1.10958516e+00 1.64428639e+00 + 2.50000000e+00 0.00000000e+00 1.00000000e+00 1.65690650e-01 -2.51046940e-05 1.08195747e+00 1.65739831e+00 + 2.55000000e+00 0.00000000e+00 1.00000000e+00 1.53885918e-01 1.35716658e-04 1.04391363e+00 1.67777398e+00 + 2.60000000e+00 0.00000000e+00 1.00000000e+00 1.42643640e-01 -1.99569456e-06 1.02023716e+00 1.68856190e+00 + 2.65000000e+00 0.00000000e+00 1.00000000e+00 1.29629196e-01 1.16332184e-04 9.95986232e-01 1.70212491e+00 + 2.70000000e+00 0.00000000e+00 1.00000000e+00 1.14573719e-01 3.49540438e-05 9.61217120e-01 1.71279672e+00 + 2.75000000e+00 0.00000000e+00 1.00000000e+00 9.72067010e-02 8.89764644e-05 9.13212282e-01 1.72675015e+00 + 2.80000000e+00 0.00000000e+00 1.00000000e+00 7.96299881e-02 8.11915981e-05 8.60837271e-01 1.73894081e+00 + 2.85000000e+00 0.00000000e+00 1.00000000e+00 6.48236218e-02 5.91727567e-05 8.23805244e-01 1.74242105e+00 + 2.90000000e+00 0.00000000e+00 1.00000000e+00 5.18567973e-02 1.24062391e-04 7.95579736e-01 1.74374327e+00 + 2.95000000e+00 0.00000000e+00 1.00000000e+00 4.11970749e-02 3.09404250e-05 7.76743916e-01 1.73615247e+00 + 3.00000000e+00 0.00000000e+00 1.00000000e+00 2.98073258e-02 1.56778021e-04 7.49331217e-01 1.73558517e+00 + 3.05000000e+00 0.00000000e+00 1.00000000e+00 2.13919504e-02 1.41292756e-05 7.24090190e-01 1.72534068e+00 + 3.10000000e+00 0.00000000e+00 1.00000000e+00 1.53573295e-02 1.74302640e-04 7.02180641e-01 1.71949348e+00 + 3.15000000e+00 0.00000000e+00 1.00000000e+00 1.55015302e-02 8.89836630e-06 6.96177586e-01 1.69990461e+00 + 3.20000000e+00 0.00000000e+00 1.00000000e+00 1.77296482e-02 1.69350896e-04 6.99448855e-01 1.68635881e+00 + 3.25000000e+00 0.00000000e+00 1.00000000e+00 2.28526892e-02 1.66386929e-05 7.07421942e-01 1.66660805e+00 + 3.30000000e+00 0.00000000e+00 1.00000000e+00 2.80254548e-02 1.47529458e-04 7.09878253e-01 1.65585517e+00 + 3.35000000e+00 0.00000000e+00 1.00000000e+00 3.66887556e-02 3.83775523e-05 7.15611195e-01 1.64112460e+00 + 3.40000000e+00 0.00000000e+00 1.00000000e+00 4.83725890e-02 1.11525730e-04 7.32881134e-01 1.62973027e+00 + 3.45000000e+00 0.00000000e+00 1.00000000e+00 6.33464833e-02 6.56164250e-05 7.66664592e-01 1.61600783e+00 + 3.50000000e+00 0.00000000e+00 1.00000000e+00 7.86774849e-02 6.75919184e-05 8.07205480e-01 1.60519552e+00 + 3.55000000e+00 0.00000000e+00 1.00000000e+00 9.26486964e-02 9.52715406e-05 8.38584801e-01 1.59902801e+00 + 3.60000000e+00 0.00000000e+00 1.00000000e+00 1.06252678e-01 2.71626856e-05 8.66646599e-01 1.59509266e+00 + 3.65000000e+00 0.00000000e+00 1.00000000e+00 1.19657258e-01 1.20922225e-04 8.95431316e-01 1.59603800e+00 + 3.70000000e+00 0.00000000e+00 1.00000000e+00 1.34585692e-01 -4.79723917e-06 9.44577862e-01 1.59343993e+00 + 3.75000000e+00 0.00000000e+00 1.00000000e+00 1.47042491e-01 1.34850750e-04 9.89563065e-01 1.59628133e+00 + 3.80000000e+00 0.00000000e+00 1.00000000e+00 1.57290347e-01 -2.17465423e-05 1.02988736e+00 1.59656558e+00 + 3.85000000e+00 0.00000000e+00 1.00000000e+00 1.62338538e-01 1.36638329e-04 1.03938446e+00 1.60659768e+00 + 3.90000000e+00 0.00000000e+00 1.00000000e+00 1.66437499e-01 -1.92362797e-05 1.05147865e+00 1.61301964e+00 + 3.95000000e+00 0.00000000e+00 1.00000000e+00 1.68077132e-01 1.24267591e-04 1.05956492e+00 1.62542068e+00 + 4.00000000e+00 0.00000000e+00 1.00000000e+00 1.69246780e-01 -6.42613426e-07 1.08090962e+00 1.63094063e+00 + 4.05000000e+00 0.00000000e+00 1.00000000e+00 1.65737438e-01 9.95482863e-05 1.08130751e+00 1.64315354e+00 + 4.10000000e+00 0.00000000e+00 1.00000000e+00 1.58852359e-01 3.22296656e-05 1.06480186e+00 1.65426842e+00 + 4.15000000e+00 0.00000000e+00 1.00000000e+00 1.48343839e-01 7.01776339e-05 1.02898322e+00 1.67142222e+00 + 4.20000000e+00 0.00000000e+00 1.00000000e+00 1.37517005e-01 7.29132540e-05 9.98099152e-01 1.68480744e+00 + 4.25000000e+00 0.00000000e+00 1.00000000e+00 1.26551497e-01 4.00561826e-05 9.76093891e-01 1.69529847e+00 + 4.30000000e+00 0.00000000e+00 1.00000000e+00 1.14441883e-01 1.11241966e-04 9.52873692e-01 1.70498720e+00 + 4.35000000e+00 0.00000000e+00 1.00000000e+00 1.00645269e-01 1.62761093e-05 9.20895781e-01 1.71287326e+00 + 4.40000000e+00 0.00000000e+00 1.00000000e+00 8.48545024e-02 1.42725384e-04 8.74287500e-01 1.72589073e+00 + 4.45000000e+00 0.00000000e+00 1.00000000e+00 7.09004857e-02 5.98769664e-06 8.35047693e-01 1.72970203e+00 + 4.50000000e+00 0.00000000e+00 1.00000000e+00 5.85168016e-02 1.59840621e-04 8.03267610e-01 1.73448942e+00 + 4.55000000e+00 0.00000000e+00 1.00000000e+00 4.97013354e-02 7.71336003e-06 7.87627194e-01 1.72630235e+00 + 4.60000000e+00 0.00000000e+00 1.00000000e+00 4.05098166e-02 1.58054709e-04 7.68452609e-01 1.72492581e+00 + 4.65000000e+00 0.00000000e+00 1.00000000e+00 3.32197032e-02 2.38191504e-05 7.49106022e-01 1.71545752e+00 + 4.70000000e+00 0.00000000e+00 1.00000000e+00 2.66341187e-02 1.41757173e-04 7.25819310e-01 1.71233351e+00 + 4.75000000e+00 0.00000000e+00 1.00000000e+00 2.51631362e-02 5.09907198e-05 7.14135578e-01 1.69817394e+00 + 4.80000000e+00 0.00000000e+00 1.00000000e+00 2.66788606e-02 1.10876714e-04 7.13584784e-01 1.68629206e+00 + 4.85000000e+00 0.00000000e+00 1.00000000e+00 3.15992929e-02 8.07262553e-05 7.23863808e-01 1.66896304e+00 + 4.90000000e+00 0.00000000e+00 1.00000000e+00 3.67150458e-02 7.32444543e-05 7.31423876e-01 1.65687069e+00 + 4.95000000e+00 0.00000000e+00 1.00000000e+00 4.33293007e-02 1.11010861e-04 7.36532071e-01 1.64552930e+00 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 5.22239762e-02 3.82123806e-05 7.45853501e-01 1.63523428e+00 + 5.05000000e+00 0.00000000e+00 1.00000000e+00 6.41445927e-02 1.33247499e-04 7.68322658e-01 1.62553494e+00 + 5.10000000e+00 0.00000000e+00 1.00000000e+00 7.82005759e-02 9.26607715e-06 8.05563801e-01 1.61382927e+00 + 5.15000000e+00 0.00000000e+00 1.00000000e+00 9.11878609e-02 1.42566845e-04 8.39726434e-01 1.60798542e+00 + 5.20000000e+00 0.00000000e+00 1.00000000e+00 1.03519980e-01 -5.08344927e-06 8.69214283e-01 1.60195304e+00 + 5.25000000e+00 0.00000000e+00 1.00000000e+00 1.14165176e-01 1.39267085e-04 8.88022581e-01 1.60386749e+00 + 5.30000000e+00 0.00000000e+00 1.00000000e+00 1.26454625e-01 -3.35556339e-06 9.22041556e-01 1.60162668e+00 + 5.35000000e+00 0.00000000e+00 1.00000000e+00 1.37519904e-01 1.20929691e-04 9.58434377e-01 1.60471475e+00 + 5.40000000e+00 0.00000000e+00 1.00000000e+00 1.47927887e-01 1.18464553e-05 1.00249356e+00 1.60363846e+00 + 5.45000000e+00 0.00000000e+00 1.00000000e+00 1.53484359e-01 9.27024308e-05 1.01999910e+00 1.61059205e+00 + 5.50000000e+00 0.00000000e+00 1.00000000e+00 1.56997960e-01 3.97523750e-05 1.02984605e+00 1.61651747e+00 + 5.55000000e+00 0.00000000e+00 1.00000000e+00 1.57775723e-01 6.07762718e-05 1.02823481e+00 1.62777272e+00 + 5.60000000e+00 0.00000000e+00 1.00000000e+00 1.58626132e-01 7.24045000e-05 1.04075059e+00 1.63493751e+00 + 5.65000000e+00 0.00000000e+00 1.00000000e+00 1.56926945e-01 2.92924919e-05 1.04821662e+00 1.64357413e+00 + 5.70000000e+00 0.00000000e+00 1.00000000e+00 1.52274182e-01 1.03176498e-04 1.04484046e+00 1.65304030e+00 + 5.75000000e+00 0.00000000e+00 1.00000000e+00 1.43857332e-01 7.13290885e-06 1.01964442e+00 1.66539475e+00 + 5.80000000e+00 0.00000000e+00 1.00000000e+00 1.33540877e-01 1.28136149e-04 9.85794747e-01 1.68024711e+00 + 5.85000000e+00 0.00000000e+00 1.00000000e+00 1.23540664e-01 -1.75020199e-06 9.60138077e-01 1.68954009e+00 + 5.90000000e+00 0.00000000e+00 1.00000000e+00 1.13181254e-01 1.39872439e-04 9.39188637e-01 1.69958124e+00 + 5.95000000e+00 0.00000000e+00 1.00000000e+00 1.02598649e-01 2.99309516e-06 9.20886883e-01 1.70321859e+00 + 6.00000000e+00 0.00000000e+00 1.00000000e+00 8.93655471e-02 1.37849147e-04 8.85522413e-01 1.71407592e+00 + 6.05000000e+00 0.00000000e+00 1.00000000e+00 7.67481798e-02 2.35337315e-05 8.49767691e-01 1.71783486e+00 + 6.10000000e+00 0.00000000e+00 1.00000000e+00 6.45777471e-02 1.23891096e-04 8.13583755e-01 1.72488675e+00 + 6.15000000e+00 0.00000000e+00 1.00000000e+00 5.63950669e-02 5.34472305e-05 7.95632950e-01 1.71922709e+00 + 6.20000000e+00 0.00000000e+00 1.00000000e+00 4.89044402e-02 9.81579999e-05 7.80728091e-01 1.71672457e+00 + 6.25000000e+00 0.00000000e+00 1.00000000e+00 4.32209267e-02 8.64734636e-05 7.69510734e-01 1.70783965e+00 + 6.30000000e+00 0.00000000e+00 1.00000000e+00 3.71781513e-02 6.93733732e-05 7.49578313e-01 1.70436665e+00 + 6.35000000e+00 0.00000000e+00 1.00000000e+00 3.43665007e-02 1.18536211e-04 7.34707175e-01 1.69535529e+00 + 6.40000000e+00 0.00000000e+00 1.00000000e+00 3.45766109e-02 4.25449463e-05 7.27935188e-01 1.68551384e+00 + 6.45000000e+00 0.00000000e+00 1.00000000e+00 3.85933648e-02 1.39553307e-04 7.35513529e-01 1.67186537e+00 + 6.50000000e+00 0.00000000e+00 1.00000000e+00 4.39466286e-02 2.12420039e-05 7.47347633e-01 1.65846669e+00 + 6.55000000e+00 0.00000000e+00 1.00000000e+00 4.96939492e-02 1.47683683e-04 7.55715641e-01 1.64882101e+00 + 6.60000000e+00 0.00000000e+00 1.00000000e+00 5.67219455e-02 1.33049402e-05 7.62542109e-01 1.63897279e+00 + 6.65000000e+00 0.00000000e+00 1.00000000e+00 6.55611108e-02 1.41932472e-04 7.74208367e-01 1.63266889e+00 + 6.70000000e+00 0.00000000e+00 1.00000000e+00 7.75794965e-02 1.69515242e-05 8.03082502e-01 1.62201807e+00 + 6.75000000e+00 0.00000000e+00 1.00000000e+00 8.94707724e-02 1.20695531e-04 8.35568022e-01 1.61634624e+00 + 6.80000000e+00 0.00000000e+00 1.00000000e+00 1.01292823e-01 3.16933338e-05 8.69789027e-01 1.60905538e+00 + 6.85000000e+00 0.00000000e+00 1.00000000e+00 1.10409819e-01 9.16246101e-05 8.86627577e-01 1.60985451e+00 + 6.90000000e+00 0.00000000e+00 1.00000000e+00 1.20293243e-01 5.58810201e-05 9.09997320e-01 1.60864697e+00 + 6.95000000e+00 0.00000000e+00 1.00000000e+00 1.29351688e-01 5.86834728e-05 9.33565828e-01 1.61166415e+00 + 7.00000000e+00 0.00000000e+00 1.00000000e+00 1.39079980e-01 8.10410206e-05 9.73335336e-01 1.61125543e+00 + 7.05000000e+00 0.00000000e+00 1.00000000e+00 1.45371186e-01 2.74607681e-05 9.98068925e-01 1.61497230e+00 + 7.10000000e+00 0.00000000e+00 1.00000000e+00 1.49146257e-01 1.04075041e-04 1.01302670e+00 1.62001856e+00 + 7.15000000e+00 0.00000000e+00 1.00000000e+00 1.49635275e-01 6.78192780e-06 1.00902038e+00 1.62896152e+00 + 7.20000000e+00 0.00000000e+00 1.00000000e+00 1.49562368e-01 1.20114175e-04 1.01057703e+00 1.63792822e+00 + 7.25000000e+00 0.00000000e+00 1.00000000e+00 1.48525259e-01 -2.12213992e-06 1.01604789e+00 1.64489995e+00 + 7.30000000e+00 0.00000000e+00 1.00000000e+00 1.45553246e-01 1.23922641e-04 1.01959419e+00 1.65323782e+00 + 7.35000000e+00 0.00000000e+00 1.00000000e+00 1.39659711e-01 3.40257751e-06 1.00913040e+00 1.66115048e+00 + 7.40000000e+00 0.00000000e+00 1.00000000e+00 1.30554584e-01 1.17962087e-04 9.79542475e-01 1.67489947e+00 + 7.45000000e+00 0.00000000e+00 1.00000000e+00 1.21245032e-01 2.37300850e-05 9.51954238e-01 1.68394513e+00 + 7.50000000e+00 0.00000000e+00 1.00000000e+00 1.11577030e-01 1.02223258e-04 9.26431110e-01 1.69463431e+00 + 7.55000000e+00 0.00000000e+00 1.00000000e+00 1.03142288e-01 5.18916563e-05 9.14331733e-01 1.69711962e+00 + 7.60000000e+00 0.00000000e+00 1.00000000e+00 9.25958357e-02 7.94734540e-05 8.90271492e-01 1.70459404e+00 + 7.65000000e+00 0.00000000e+00 1.00000000e+00 8.19923133e-02 8.46115004e-05 8.63903442e-01 1.70753045e+00 + 7.70000000e+00 0.00000000e+00 1.00000000e+00 7.04707414e-02 5.75082057e-05 8.27389743e-01 1.71461948e+00 + 7.75000000e+00 0.00000000e+00 1.00000000e+00 6.21922149e-02 1.15295676e-04 8.04978081e-01 1.71281637e+00 + 7.80000000e+00 0.00000000e+00 1.00000000e+00 5.54741811e-02 3.80839869e-05 7.88913863e-01 1.71034968e+00 + 7.85000000e+00 0.00000000e+00 1.00000000e+00 5.11008669e-02 1.35432893e-04 7.82953365e-01 1.70257625e+00 + 7.90000000e+00 0.00000000e+00 1.00000000e+00 4.64285929e-02 2.63031170e-05 7.70238070e-01 1.69728892e+00 + 7.95000000e+00 0.00000000e+00 1.00000000e+00 4.31533377e-02 1.44400856e-04 7.56316993e-01 1.69130837e+00 + 8.00000000e+00 0.00000000e+00 1.00000000e+00 4.21245740e-02 2.61490153e-05 7.45093061e-01 1.68360438e+00 + 8.05000000e+00 0.00000000e+00 1.00000000e+00 4.45294688e-02 1.38621708e-04 7.45770166e-01 1.67397852e+00 + 8.10000000e+00 0.00000000e+00 1.00000000e+00 4.96528478e-02 3.43230679e-05 7.57938804e-01 1.66097386e+00 + 8.15000000e+00 0.00000000e+00 1.00000000e+00 5.51388140e-02 1.18875757e-04 7.69772273e-01 1.65173097e+00 + 8.20000000e+00 0.00000000e+00 1.00000000e+00 6.13995738e-02 5.16682089e-05 7.79804290e-01 1.64193757e+00 + 8.25000000e+00 0.00000000e+00 1.00000000e+00 6.78640769e-02 9.21609656e-05 7.84777794e-01 1.63730484e+00 + 8.30000000e+00 0.00000000e+00 1.00000000e+00 7.74191368e-02 7.38861022e-05 8.03999371e-01 1.62900073e+00 + 8.35000000e+00 0.00000000e+00 1.00000000e+00 8.76428147e-02 6.08467902e-05 8.29131600e-01 1.62385428e+00 + 8.40000000e+00 0.00000000e+00 1.00000000e+00 9.89430740e-02 9.42007158e-05 8.65460774e-01 1.61650994e+00 + 8.45000000e+00 0.00000000e+00 1.00000000e+00 1.07561585e-01 3.26177730e-05 8.85751562e-01 1.61516791e+00 + 8.50000000e+00 0.00000000e+00 1.00000000e+00 1.15861747e-01 1.11180286e-04 9.05353273e-01 1.61443847e+00 + 8.55000000e+00 0.00000000e+00 1.00000000e+00 1.22944933e-01 1.39338035e-05 9.18268503e-01 1.61713887e+00 + 8.60000000e+00 0.00000000e+00 1.00000000e+00 1.31121402e-01 1.18960010e-04 9.47217392e-01 1.61817071e+00 + 8.65000000e+00 0.00000000e+00 1.00000000e+00 1.37649228e-01 5.54342820e-06 9.73613100e-01 1.62009474e+00 + 8.70000000e+00 0.00000000e+00 1.00000000e+00 1.42043434e-01 1.15842228e-04 9.94620371e-01 1.62372865e+00 + 8.75000000e+00 0.00000000e+00 1.00000000e+00 1.43094180e-01 1.13959170e-05 9.96430487e-01 1.63004818e+00 + 8.80000000e+00 0.00000000e+00 1.00000000e+00 1.42313251e-01 1.04590266e-04 9.90977669e-01 1.63928057e+00 + 8.85000000e+00 0.00000000e+00 1.00000000e+00 1.41132272e-01 2.91435280e-05 9.90676926e-01 1.64624892e+00 + 8.90000000e+00 0.00000000e+00 1.00000000e+00 1.38859109e-01 8.48833059e-05 9.92401188e-01 1.65404119e+00 + 8.95000000e+00 0.00000000e+00 1.00000000e+00 1.35193372e-01 5.36274458e-05 9.93798649e-01 1.65928775e+00 + 9.00000000e+00 0.00000000e+00 1.00000000e+00 1.27952070e-01 6.26510466e-05 9.73589860e-01 1.66997550e+00 + 9.05000000e+00 0.00000000e+00 1.00000000e+00 1.19729307e-01 8.26390216e-05 9.49851663e-01 1.67839137e+00 + 9.10000000e+00 0.00000000e+00 1.00000000e+00 1.10367463e-01 4.33108273e-05 9.19346816e-01 1.68922130e+00 + 9.15000000e+00 0.00000000e+00 1.00000000e+00 1.02889822e-01 1.08214304e-04 9.06011683e-01 1.69277792e+00 + 9.20000000e+00 0.00000000e+00 1.00000000e+00 9.44344980e-02 2.85197882e-05 8.88503245e-01 1.69781849e+00 + 9.25000000e+00 0.00000000e+00 1.00000000e+00 8.60882962e-02 1.25498603e-04 8.72836197e-01 1.69943817e+00 + 9.30000000e+00 0.00000000e+00 1.00000000e+00 7.60253345e-02 2.41734602e-05 8.42254210e-01 1.70481577e+00 + 9.35000000e+00 0.00000000e+00 1.00000000e+00 6.76975587e-02 1.33341982e-04 8.17281097e-01 1.70584233e+00 + 9.40000000e+00 0.00000000e+00 1.00000000e+00 6.10311968e-02 3.02509246e-05 7.97461888e-01 1.70479542e+00 + 9.45000000e+00 0.00000000e+00 1.00000000e+00 5.71278800e-02 1.27383203e-04 7.90777277e-01 1.69886163e+00 + 9.50000000e+00 0.00000000e+00 1.00000000e+00 5.39262766e-02 4.40328329e-05 7.85198721e-01 1.69231482e+00 + 9.55000000e+00 0.00000000e+00 1.00000000e+00 5.10794360e-02 1.10922350e-04 7.75618421e-01 1.68699276e+00 + 9.60000000e+00 0.00000000e+00 1.00000000e+00 4.94994687e-02 6.56712089e-05 7.64672303e-01 1.68076873e+00 + 9.65000000e+00 0.00000000e+00 1.00000000e+00 5.01288161e-02 8.81329616e-05 7.57963495e-01 1.67449614e+00 + 9.70000000e+00 0.00000000e+00 1.00000000e+00 5.42644537e-02 8.80978542e-05 7.66086251e-01 1.66365831e+00 + 9.75000000e+00 0.00000000e+00 1.00000000e+00 5.93643175e-02 6.12253519e-05 7.77949365e-01 1.65479854e+00 + 9.80000000e+00 0.00000000e+00 1.00000000e+00 6.55516004e-02 1.07040054e-04 7.93502400e-01 1.64492535e+00 + 9.85000000e+00 0.00000000e+00 1.00000000e+00 7.07613111e-02 3.86798610e-05 7.97709213e-01 1.64032633e+00 + 9.90000000e+00 0.00000000e+00 1.00000000e+00 7.80956788e-02 1.20404987e-04 8.09885798e-01 1.63413532e+00 + 9.95000000e+00 0.00000000e+00 1.00000000e+00 8.62066374e-02 2.36291153e-05 8.25085350e-01 1.63016448e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 9.63871386e-02 1.22407959e-04 8.57231175e-01 1.62372838e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S50 b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S50 new file mode 100644 index 00000000..4870911b --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S50 @@ -0,0 +1,22 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 5.00000000e-01 0.00000000e+00 1.00000000e+00 2.99392123e-01 6.40229169e-05 2.13463656e+00 2.70911549e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.50583989e-01 4.22651675e-05 1.03418438e+00 1.37413359e+00 + 1.50000000e+00 0.00000000e+00 1.00000000e+00 -1.37704018e-01 9.62575422e-05 1.34660032e+00 9.39690489e-01 + 2.00000000e+00 0.00000000e+00 1.00000000e+00 2.32947369e-01 8.55142692e-05 1.60708610e+00 2.67505192e+00 + 2.50000000e+00 0.00000000e+00 1.00000000e+00 2.23908754e-01 3.60675738e-05 1.26351368e+00 1.59202362e+00 + 3.00000000e+00 0.00000000e+00 1.00000000e+00 -1.25643152e-01 8.42087967e-05 1.45631185e+00 8.52043490e-01 + 3.50000000e+00 0.00000000e+00 1.00000000e+00 1.62052473e-01 8.65526490e-05 1.17627049e+00 2.35307853e+00 + 4.00000000e+00 0.00000000e+00 1.00000000e+00 2.63978456e-01 3.90828318e-05 1.46436562e+00 1.86403750e+00 + 4.50000000e+00 0.00000000e+00 1.00000000e+00 -9.58771757e-02 8.04292966e-05 1.44511765e+00 8.48807012e-01 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 8.38030180e-02 8.82117311e-05 7.93145232e-01 2.05810050e+00 + 5.50000000e+00 0.00000000e+00 1.00000000e+00 2.87471059e-01 4.53891093e-05 1.74431390e+00 2.17250368e+00 + 6.00000000e+00 0.00000000e+00 1.00000000e+00 -2.96507070e-02 7.55074656e-05 1.12211215e+00 1.08916410e+00 + 6.50000000e+00 0.00000000e+00 1.00000000e+00 1.72483951e-02 8.37737477e-05 6.72676444e-01 1.74956664e+00 + 7.00000000e+00 0.00000000e+00 1.00000000e+00 2.79427256e-01 5.81821258e-05 1.73329383e+00 2.35879790e+00 + 7.50000000e+00 0.00000000e+00 1.00000000e+00 3.23183851e-02 7.38991365e-05 9.65150899e-01 1.21729046e+00 + 8.00000000e+00 0.00000000e+00 1.00000000e+00 -3.70538678e-02 8.35190998e-05 7.06393788e-01 1.51815656e+00 + 8.50000000e+00 0.00000000e+00 1.00000000e+00 2.61844871e-01 6.84046916e-05 1.74457777e+00 2.46951433e+00 + 9.00000000e+00 0.00000000e+00 1.00000000e+00 1.07654735e-01 6.49223731e-05 9.67357321e-01 1.36538411e+00 + 9.50000000e+00 0.00000000e+00 1.00000000e+00 -6.64049027e-02 7.79485577e-05 8.73816959e-01 1.29725643e+00 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 2.16792733e-01 7.97987119e-05 1.41120033e+00 2.38078201e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S500 b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S500 new file mode 100644 index 00000000..ceb935a8 --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/data/result/watchpoint_SC_S500 @@ -0,0 +1,4 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 5.00000000e+00 0.00000000e+00 1.00000000e+00 -1.58819318e-01 9.83425158e-05 1.02409357e+00 6.04675721e-01 + 1.00000000e+01 0.00000000e+00 1.00000000e+00 -7.67725554e-02 1.25836037e-04 4.57725349e-01 1.98448936e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig15/insert-table-data-in-template.py b/plotting/perpendicular-flap/Fig15/insert-table-data-in-template.py new file mode 100644 index 00000000..5c79fb0d --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/insert-table-data-in-template.py @@ -0,0 +1,99 @@ +import pandas as pd +from jinja2 import Environment, FileSystemLoader +from pathlib import Path + +import argparse + +parser = argparse.ArgumentParser(description="Insert data into table in LaTeX code") +parser.add_argument( + "file", + type=Path, + help="Path to csv file for experiment." +) +args = parser.parse_args() + +experiment_file = args.file + +df = pd.read_csv(experiment_file, comment='#', sep=',') + +data = { + 'id': [], + '$\\Delta t$': [], + '$\\delta t_F$': [], + '$\\delta t_S$': [], + 'Avg. its.': [], +} + +linear_dts = [] +linear_refs = {} +linear_its = {} +wi_dts = [] +wi_refs = {} +wi_its = {} + +for r in df.to_dict(orient='records'): + dt = r['time window size'] + + is_ref = dt == r['time step size Fluid'] and dt == r['time step size Solid'] # is reference experiment + substeps_solid = r['substeps Solid'] + + if is_ref: + experiment_id = 'REF' + linear_dts.append(dt) + linear_refs[dt] = experiment_id + wi_dts.append(dt) + wi_refs[dt] = experiment_id + elif r['substeps']: + experiment_id = f'MC_S{substeps_solid}_rQNWI' + wi_dts.append(dt) + wi_refs[dt] = experiment_id + elif not r['substeps']: + experiment_id = f'SC_S{substeps_solid}' + linear_dts.append(dt) + linear_refs[dt] = experiment_id + + its_df = pd.read_csv(experiment_file.parent / experiment_file.stem / experiment_id / 'precice-Fluid-iterations.log', delimiter=r"\s+") + + its = '{0:0.2f}'.format(its_df['Iterations'].mean()) + + if is_ref: + wi_its[dt] = its + linear_its[dt] = its + elif r['substeps']: + wi_its[dt] = its + elif not r['substeps']: + linear_its[dt] = its + +# Load the Jinja2 template from the file system +env = Environment(loader=FileSystemLoader('.')) +template = env.get_template('tikzcode.tex.jinja2') + +df = pd.DataFrame(data) + +# Get the column labels and data for Jinja2 +columns = df.columns.tolist() # Get column names +data_rows = df.values.tolist() # Get the data as a list of rows + +# Render LaTeX table using the custom Jinja2 template +data = [] +for dt in wi_dts: + data.append( + { + 'dt':dt, + 'linear_ref':linear_refs[dt], + 'linear_its':linear_its[dt], + 'wi_ref': wi_refs[dt], + 'wi_its': wi_its[dt], + } + ) + +print(data) + +latex_code = template.render(data=data, + valid_refs=['REF'] + + [f'MC_S{it}_rQNWI' for it in [10,100,500]] + + [f'SC_S{it}' for it in [10,100,500]]) + +# Write the LaTeX code to file +with open('tikzcode.tex', 'w') as f: + f.write(latex_code) diff --git a/plotting/perpendicular-flap/Fig15/main.tex b/plotting/perpendicular-flap/Fig15/main.tex new file mode 100644 index 00000000..98caa93f --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/main.tex @@ -0,0 +1,60 @@ +\documentclass{standalone} + +\usepackage{amsmath} +\usepackage{booktabs} +\usepackage{pgfplots} +\pgfplotsset{compat=1.18} +\usepackage{tikz} +\usetikzlibrary{calc, intersections, positioning, hobby, fit, patterns} + +\pgfdeclarelayer{bg} % declare background layer +\pgfdeclarelayer{fg} % declare foreground layer +\pgfsetlayers{bg,main,fg} % set the order of the layers (main is the standard layer) + +%%% see https://tex.stackexchange.com/a/20426 and https://tex.stackexchange.com/a/419123 +\makeatletter +\pgfkeys{% + /tikz/on layer/.code={ + \pgfonlayer{#1}\begingroup + \aftergroup\endpgfonlayer + \aftergroup\endgroup + }, + /tikz/node on layer/.code={ + \gdef\node@@on@layer{% + \setbox\tikz@tempbox=\hbox\bgroup\pgfonlayer{#1}\unhbox\tikz@tempbox\endpgfonlayer\egroup} + \aftergroup\node@on@layer + }, + /tikz/end node on layer/.code={ + \endpgfonlayer\endgroup\endgroup + } +} +\def\node@on@layer{\aftergroup\node@@on@layer} +\makeatother +%%% + +%%% Define tuftelike pgfplots style +% see https://tex.stackexchange.com/questions/155194/tufte-like-axis-with-pgfplots + +\pgfkeys{/pgfplots/tuftelike/.style={ + semithick, + tick style={major tick length=4pt,semithick,black}, + separate axis lines, + axis x line*=bottom, + axis x line shift=10pt, + axis y line*=left, + axis y line shift=10pt, + enlarge x limits=false, + enlarge y limits=false + }} + +%%% END + +\definecolor{pblue}{RGB}{0,102,189} % precice blue +\definecolor{porange}{RGB}{243,98,33} % precice orange + +\tikzstyle{sample}=[circle,draw,inner sep=1.5pt,thick,fill=white] +\tikzstyle{stample}=[circle,inner sep=1.5pt,fill] + +\begin{document} +\input{tikzcode.tex} +\end{document} diff --git a/plotting/perpendicular-flap/Fig15/tikzcode.tex.jinja2 b/plotting/perpendicular-flap/Fig15/tikzcode.tex.jinja2 new file mode 100644 index 00000000..959a70ac --- /dev/null +++ b/plotting/perpendicular-flap/Fig15/tikzcode.tex.jinja2 @@ -0,0 +1,58 @@ +\begin{tikzpicture} + \begin{axis}[ + tuftelike, + xlabel={$t$}, + ylabel={$d_x$}, + align=center, + width=.45\textwidth, + height=.35\textwidth, + xmin=0, + xmax=5, + ymin=-0.2, + ymax=0.4, + xtick={0,5}, + % xticklabels={$0$,$5$}, + ytick={-0.2,0,0.2,0.4}, + yticklabel style={ + /pgf/number format/fixed, + /pgf/number format/precision=2, + }, + % scaled ticks=false, + clip=false, + legend style={at={(1.1,0.5)},anchor=west, draw=none}, + ] + \addplot[color=black, dotted] table[x=Time, y=Displacement0, col sep=space,restrict expr to domain={\thisrow{Time}}{0:5}]{data/result/watchpoint_ref}; + \label{plot:REF} + \addplot[color=red, mark=-, only marks] table[x=Time, y=Displacement0, col sep=space,restrict expr to domain={\thisrow{Time}}{0:5}]{data/result/watchpoint_MC_S10_rQNWI}; + \label{plot:MC_S10_rQNWI} + \addplot[color=blue, mark=|, only marks] table[x=Time, y=Displacement0, col sep=space,restrict expr to domain={\thisrow{Time}}{0:5}]{data/result/watchpoint_SC_S10}; + \label{plot:SC_S10} + \addplot[color=red, mark=otimes, only marks] table[x=Time, y=Displacement0, col sep=space,restrict expr to domain={\thisrow{Time}}{0:5}]{data/result/watchpoint_MC_S100_rQNWI}; + \label{plot:MC_S100_rQNWI} + \addplot[color=blue, mark=oplus, only marks] table[x=Time, y=Displacement0, col sep=space,restrict expr to domain={\thisrow{Time}}{0:5}]{data/result/watchpoint_SC_S100}; + \label{plot:SC_S100} + \addplot[color=red, mark=square, only marks, mark size=3] table[x=Time, y=Displacement0, col sep=space,restrict expr to domain={\thisrow{Time}}{0:5}]{data/result/watchpoint_MC_S500_rQNWI}; + \label{plot:MC_S500_rQNWI} + \addplot[color=blue, mark=o, only marks, mark size=3] table[x=Time, y=Displacement0, col sep=space,restrict expr to domain={\thisrow{Time}}{0:5}]{data/result/watchpoint_SC_S500}; + \label{plot:SC_S500} + + \node[anchor=west] at (axis cs:5.5,0.1){ + \small + \begin{tabular}{r|cc|cc} + $\Delta t$ & \multicolumn{2}{c|}{linear} & \multicolumn{2}{c}{WI} \\ + \midrule + {% for line in data -%} + ${{line.dt}}$ & + {% if line.linear_ref in valid_refs %} + \ref{plot:{{line.linear_ref}}} + {% endif %} + & {{line.linear_its}} & + {% if line.wi_ref in valid_refs %} + \ref{plot:{{line.wi_ref}}} + {% endif %} + & {{line.wi_its}} \\ + {% endfor -%} + \end{tabular} + }; + \end{axis} +\end{tikzpicture} diff --git a/plotting/perpendicular-flap/Fig16/Makefile b/plotting/perpendicular-flap/Fig16/Makefile new file mode 100644 index 00000000..45004d8b --- /dev/null +++ b/plotting/perpendicular-flap/Fig16/Makefile @@ -0,0 +1,13 @@ +main: main.tex + python3 insert-table-data-in-template.py data/result.csv + latexmk -interaction=nonstopmode -pdf -bibtex -shell-escape $^ + +name=main +auxiliary_files= $(name).log $(name).out $(name).aux $(name).bbl $(name).blg $(name).fdb_latexmk $(name).fls $(name).idx $(name).ilg $(name).ind $(name).lof $(name).lol $(name).lot $(name).run.xml $(name).toc $(name)-blx.bib $(name).loa + +clean_nopdf: + rm -rf $(auxiliary_files) + +clean: + rm -rf $(auxiliary_files) $(name).pdf + diff --git a/plotting/perpendicular-flap/Fig16/data/result.csv b/plotting/perpendicular-flap/Fig16/data/result.csv new file mode 100644 index 00000000..c0ac3e54 --- /dev/null +++ b/plotting/perpendicular-flap/Fig16/data/result.csv @@ -0,0 +1,14 @@ +# participants version:{'Fluid': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}, 'Solid': {'url': 'BenjaminRodenberg/test-cases-dissertation', 'repo': 'refs/pull/7/merge', 'chash': '4c031f00c705d9847942442c9c62ac413c142825'}} +# participants:{'Fluid': , 'Solid': } +# run cmd:python3 doConvergenceStudy.py precice-config-template.xml --silent --executor Github configs/Fig16.csv -o results/Fig16/data/result.csv +# args:Namespace(template_path='precice-config-template.xml', silent=True, executor='Github', time_config='configs/Fig16.csv', out_filename='results/Fig16/data/result.csv') +# precice.get_version_information():b'3.2.0;no-info [git failed to run];PRECICE_FEATURE_MPI_COMMUNICATION=Y;PRECICE_FEATURE_PETSC_MAPPING=Y;PRECICE_FEATURE_GINKGO_MAPPING=N;PRECICE_FEATURE_PYTHON_ACTIONS=Y;PRECICE_BINDINGS_C=Y;PRECICE_BINDINGS_FORTRAN=Y;CXX=GNU;CXXFLAGS= -O3 -DNDEBUG;LDFLAGS=' +# precice.__version__:3.2.1 +# precice_config_params:{'time_window_size': 0.2, 'max_time': 1, 'waveform_degree': 3, 'reduced': True, 'substeps': True, 'acceleration': 'qn'} +time window size,time step size Fluid,time step size Solid,substeps,waveform degree,reduced,acceleration,substeps Fluid,avg(iterations / window),max(iterations / window),no. QN,substeps Solid +0.02,0.001,0.001,True,3,True,qn,20,5.34,8,267,20 +0.2,0.01,0.005,True,3,True,qn,20,5.0,9,25,40 +0.2,0.01,0.01,True,3,True,qn,20,5.2,9,26,20 +0.2,0.01,0.02,True,3,True,qn,20,5.6,9,28,10 +0.2,0.01,0.04,True,3,True,qn,20,5.8,10,29,5 +0.2,0.01,0.1,True,3,True,qn,20,5.6,8,28,2 diff --git a/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_10 b/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_10 new file mode 100644 index 00000000..b2114a8d --- /dev/null +++ b/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_10 @@ -0,0 +1,7 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 2.00000000e-01 0.00000000e+00 1.00000000e+00 6.21730829e-02 1.88612736e-04 8.36642288e-01 1.97784181e+00 + 4.00000000e-01 0.00000000e+00 1.00000000e+00 1.39653492e-01 9.09414927e-05 1.00432966e+00 1.82497796e+00 + 6.00000000e-01 0.00000000e+00 1.00000000e+00 1.91771700e-01 -5.71260210e-05 1.16291388e+00 1.76127798e+00 + 8.00000000e-01 0.00000000e+00 1.00000000e+00 1.91037136e-01 9.04303334e-05 1.20983204e+00 1.69991985e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.30932806e-01 1.36132957e-04 1.01422671e+00 1.64661642e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_2 b/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_2 new file mode 100644 index 00000000..08eb8c19 --- /dev/null +++ b/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_2 @@ -0,0 +1,7 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 2.00000000e-01 0.00000000e+00 1.00000000e+00 2.81511681e-02 8.47461640e-05 7.31966855e-01 1.94910515e+00 + 4.00000000e-01 0.00000000e+00 1.00000000e+00 9.61331431e-02 1.42626704e-04 8.76817958e-01 1.81541756e+00 + 6.00000000e-01 0.00000000e+00 1.00000000e+00 1.60163143e-01 6.66430638e-05 1.06512354e+00 1.75713628e+00 + 8.00000000e-01 0.00000000e+00 1.00000000e+00 1.86136328e-01 1.10019653e-05 1.15789285e+00 1.70873120e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.59564528e-01 4.89600059e-05 1.07714502e+00 1.67037004e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_20 b/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_20 new file mode 100644 index 00000000..6090599b --- /dev/null +++ b/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_20 @@ -0,0 +1,7 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 2.00000000e-01 0.00000000e+00 1.00000000e+00 5.94834230e-02 9.96608008e-05 8.22774968e-01 1.97633688e+00 + 4.00000000e-01 0.00000000e+00 1.00000000e+00 1.35403367e-01 1.98967856e-04 9.84346168e-01 1.83309229e+00 + 6.00000000e-01 0.00000000e+00 1.00000000e+00 1.88373919e-01 2.01668995e-04 1.16335647e+00 1.76730941e+00 + 8.00000000e-01 0.00000000e+00 1.00000000e+00 1.90801670e-01 8.61669832e-05 1.21698998e+00 1.69609443e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.34547697e-01 -3.25441073e-05 1.02837597e+00 1.63931392e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_40 b/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_40 new file mode 100644 index 00000000..c3626b9a --- /dev/null +++ b/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_40 @@ -0,0 +1,7 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 2.00000000e-01 0.00000000e+00 1.00000000e+00 5.86758718e-02 4.23723537e-05 8.13379645e-01 1.97514061e+00 + 4.00000000e-01 0.00000000e+00 1.00000000e+00 1.34937156e-01 1.43144338e-04 9.76013718e-01 1.83432195e+00 + 6.00000000e-01 0.00000000e+00 1.00000000e+00 1.87120519e-01 2.00865171e-04 1.15238571e+00 1.77052776e+00 + 8.00000000e-01 0.00000000e+00 1.00000000e+00 1.89395499e-01 1.95542270e-04 1.20483656e+00 1.70525231e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.34414976e-01 1.76571554e-04 1.03943220e+00 1.65226847e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_5 b/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_5 new file mode 100644 index 00000000..d4b2688c --- /dev/null +++ b/plotting/perpendicular-flap/Fig16/data/result/watchpoint_MC_20_5 @@ -0,0 +1,7 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 2.00000000e-01 0.00000000e+00 1.00000000e+00 3.33111899e-02 1.91369741e-04 7.42170862e-01 1.94931159e+00 + 4.00000000e-01 0.00000000e+00 1.00000000e+00 1.04809748e-01 9.74701299e-05 9.08202634e-01 1.82703095e+00 + 6.00000000e-01 0.00000000e+00 1.00000000e+00 1.67461883e-01 -3.99375655e-05 1.09396338e+00 1.75898124e+00 + 8.00000000e-01 0.00000000e+00 1.00000000e+00 1.85976855e-01 1.31025774e-04 1.15270816e+00 1.70481368e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.52821433e-01 4.78248996e-05 1.06259206e+00 1.66923379e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig16/data/result/watchpoint_REF b/plotting/perpendicular-flap/Fig16/data/result/watchpoint_REF new file mode 100644 index 00000000..219af6c8 --- /dev/null +++ b/plotting/perpendicular-flap/Fig16/data/result/watchpoint_REF @@ -0,0 +1,52 @@ + Time Coordinate0 Coordinate1 Displacement0 Displacement1 Force0 Force1 + 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.29427968e+00 -3.02282515e-14 + 2.00000000e-02 0.00000000e+00 1.00000000e+00 1.96944161e-03 1.01527069e-04 1.09322949e+00 2.71535217e+00 + 4.00000000e-02 0.00000000e+00 1.00000000e+00 4.86670236e-03 2.17911996e-04 8.82405594e-01 2.68421169e+00 + 6.00000000e-02 0.00000000e+00 1.00000000e+00 7.22820579e-03 2.67600663e-04 7.76562568e-01 2.51286767e+00 + 8.00000000e-02 0.00000000e+00 1.00000000e+00 1.18017459e-02 1.24890730e-04 7.15580829e-01 2.19156164e+00 + 1.00000000e-01 0.00000000e+00 1.00000000e+00 1.91230777e-02 -2.48596544e-05 7.21873989e-01 2.27067029e+00 + 1.20000000e-01 0.00000000e+00 1.00000000e+00 2.76451628e-02 2.69712849e-05 7.39778674e-01 2.20532652e+00 + 1.40000000e-01 0.00000000e+00 1.00000000e+00 3.63172641e-02 1.61348684e-04 7.82996994e-01 2.12519997e+00 + 1.60000000e-01 0.00000000e+00 1.00000000e+00 4.49883469e-02 2.48786548e-04 8.03503895e-01 2.10153186e+00 + 1.80000000e-01 0.00000000e+00 1.00000000e+00 5.19473359e-02 1.23771667e-04 7.83060728e-01 1.99373584e+00 + 2.00000000e-01 0.00000000e+00 1.00000000e+00 6.10088507e-02 -1.41413637e-05 8.18507755e-01 2.00993272e+00 + 2.20000000e-01 0.00000000e+00 1.00000000e+00 6.99049817e-02 -4.22471839e-05 8.62618757e-01 1.96629393e+00 + 2.40000000e-01 0.00000000e+00 1.00000000e+00 7.75548216e-02 1.03278317e-04 8.79217654e-01 1.91139943e+00 + 2.60000000e-01 0.00000000e+00 1.00000000e+00 8.33293009e-02 2.17095431e-04 8.60753347e-01 1.88782309e+00 + 2.80000000e-01 0.00000000e+00 1.00000000e+00 8.89720785e-02 1.23515209e-04 8.68784383e-01 1.83719220e+00 + 3.00000000e-01 0.00000000e+00 1.00000000e+00 9.48390276e-02 -6.35896894e-07 8.36923935e-01 1.81698443e+00 + 3.20000000e-01 0.00000000e+00 1.00000000e+00 1.03251218e-01 -8.17982815e-05 8.89198080e-01 1.87226790e+00 + 3.40000000e-01 0.00000000e+00 1.00000000e+00 1.11145251e-01 5.88528154e-05 8.97152337e-01 1.85577056e+00 + 3.60000000e-01 0.00000000e+00 1.00000000e+00 1.18422211e-01 1.94846510e-04 9.33587753e-01 1.82421948e+00 + 3.80000000e-01 0.00000000e+00 1.00000000e+00 1.26554449e-01 1.58464577e-04 9.47577948e-01 1.84134356e+00 + 4.00000000e-01 0.00000000e+00 1.00000000e+00 1.34880934e-01 1.11636458e-05 9.78635119e-01 1.83360522e+00 + 4.20000000e-01 0.00000000e+00 1.00000000e+00 1.44447810e-01 -8.80413942e-05 1.02480716e+00 1.84408196e+00 + 4.40000000e-01 0.00000000e+00 1.00000000e+00 1.54000109e-01 3.30081309e-05 1.12243924e+00 1.85685851e+00 + 4.60000000e-01 0.00000000e+00 1.00000000e+00 1.61251649e-01 1.59692116e-04 1.14897626e+00 1.80663534e+00 + 4.80000000e-01 0.00000000e+00 1.00000000e+00 1.66016859e-01 1.91497451e-04 1.11213630e+00 1.74742388e+00 + 5.00000000e-01 0.00000000e+00 1.00000000e+00 1.71379921e-01 3.82993076e-05 1.13598181e+00 1.74476499e+00 + 5.20000000e-01 0.00000000e+00 1.00000000e+00 1.75472855e-01 -8.39366056e-05 1.12282705e+00 1.71342739e+00 + 5.40000000e-01 0.00000000e+00 1.00000000e+00 1.79726241e-01 -1.19971600e-05 1.16246826e+00 1.72022226e+00 + 5.60000000e-01 0.00000000e+00 1.00000000e+00 1.81876994e-01 1.25201028e-04 1.15205037e+00 1.69627116e+00 + 5.80000000e-01 0.00000000e+00 1.00000000e+00 1.82605378e-01 2.03799412e-04 1.12495842e+00 1.65946832e+00 + 6.00000000e-01 0.00000000e+00 1.00000000e+00 1.83757869e-01 5.41500309e-05 1.08659284e+00 1.66656577e+00 + 6.20000000e-01 0.00000000e+00 1.00000000e+00 1.86762800e-01 -7.39276111e-05 1.11696693e+00 1.70020460e+00 + 6.40000000e-01 0.00000000e+00 1.00000000e+00 1.89395483e-01 -5.63675417e-05 1.12898140e+00 1.69099502e+00 + 6.60000000e-01 0.00000000e+00 1.00000000e+00 1.92403352e-01 8.78804359e-05 1.19388229e+00 1.71821073e+00 + 6.80000000e-01 0.00000000e+00 1.00000000e+00 1.93740544e-01 1.95718821e-04 1.18499873e+00 1.69622785e+00 + 7.00000000e-01 0.00000000e+00 1.00000000e+00 1.93957578e-01 8.61123401e-05 1.16596238e+00 1.65803819e+00 + 7.20000000e-01 0.00000000e+00 1.00000000e+00 1.95393796e-01 -5.07897375e-05 1.19527627e+00 1.67483273e+00 + 7.40000000e-01 0.00000000e+00 1.00000000e+00 1.96074596e-01 -9.08095564e-05 1.23903080e+00 1.66626331e+00 + 7.60000000e-01 0.00000000e+00 1.00000000e+00 1.94509604e-01 7.31360329e-05 1.21012197e+00 1.63370815e+00 + 7.80000000e-01 0.00000000e+00 1.00000000e+00 1.90743607e-01 1.87631602e-04 1.17995583e+00 1.58355816e+00 + 8.00000000e-01 0.00000000e+00 1.00000000e+00 1.85710396e-01 1.28885535e-04 1.13483209e+00 1.55806705e+00 + 8.20000000e-01 0.00000000e+00 1.00000000e+00 1.80212517e-01 -5.22224293e-06 1.09630503e+00 1.55388634e+00 + 8.40000000e-01 0.00000000e+00 1.00000000e+00 1.76304509e-01 -9.30416900e-05 1.09729296e+00 1.59572130e+00 + 8.60000000e-01 0.00000000e+00 1.00000000e+00 1.70454763e-01 4.91443388e-05 1.06825690e+00 1.56168677e+00 + 8.80000000e-01 0.00000000e+00 1.00000000e+00 1.64471085e-01 1.81522612e-04 1.05413849e+00 1.56591676e+00 + 9.00000000e-01 0.00000000e+00 1.00000000e+00 1.58370580e-01 1.78866312e-04 1.00594148e+00 1.56558668e+00 + 9.20000000e-01 0.00000000e+00 1.00000000e+00 1.53251402e-01 1.81310624e-05 9.91572791e-01 1.57617195e+00 + 9.40000000e-01 0.00000000e+00 1.00000000e+00 1.49272657e-01 -8.45965257e-05 9.82278403e-01 1.59101152e+00 + 9.60000000e-01 0.00000000e+00 1.00000000e+00 1.46104241e-01 1.69064160e-05 1.04551442e+00 1.61992248e+00 + 9.80000000e-01 0.00000000e+00 1.00000000e+00 1.40176014e-01 1.49676998e-04 1.00523103e+00 1.56511854e+00 + 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.33590735e-01 2.02146955e-04 9.91535815e-01 1.54031319e+00 \ No newline at end of file diff --git a/plotting/perpendicular-flap/Fig16/insert-table-data-in-template.py b/plotting/perpendicular-flap/Fig16/insert-table-data-in-template.py new file mode 100644 index 00000000..5f0bdf25 --- /dev/null +++ b/plotting/perpendicular-flap/Fig16/insert-table-data-in-template.py @@ -0,0 +1,62 @@ +import pandas as pd +from jinja2 import Environment, FileSystemLoader +from pathlib import Path + +import argparse + +parser = argparse.ArgumentParser(description="Insert data into table in LaTeX code") +parser.add_argument( + "file", + type=Path, + help="Path to csv file for experiment." +) +args = parser.parse_args() + +experiment_file = args.file + +df = pd.read_csv(experiment_file, comment='#', sep=',') + +data = { + 'id': [], + '$\\Delta t$': [], + '$\\delta t_F$': [], + '$\\delta t_S$': [], + 'Avg. its.': [], +} + +for r in df.to_dict(orient='records'): + time_window = round(r['time window size'], ndigits=10) + time_step_1 = round(r['time step size Fluid'], ndigits=10) + substeps_1 = r['substeps Fluid'] + time_step_2 = round(r['time step size Solid'], ndigits=10) + substeps_2 = r['substeps Solid'] + + if time_window < 0.1: + experiment_id = 'REF' + else: + experiment_id = f'MC_{substeps_1}_{substeps_2}' + + its_df = pd.read_csv(experiment_file.parent / experiment_file.stem / experiment_id / 'precice-Fluid-iterations.log', delimiter=r"\s+") + + data['id'].append(f'\\ref{{plot:{experiment_id}}}') + data['$\\Delta t$'].append(time_window) + data['$\\delta t_F$'].append(time_step_1) + data['$\\delta t_S$'].append(time_step_2) + data['Avg. its.'].append('{0:0.2f}'.format(its_df['Iterations'].mean())) + +# Load the Jinja2 template from the file system +env = Environment(loader=FileSystemLoader('.')) +template = env.get_template('tikzcode.tex.jinja2') + +df = pd.DataFrame(data) + +# Get the column labels and data for Jinja2 +columns = df.columns.tolist() # Get column names +data_rows = df.values.tolist() # Get the data as a list of rows + +# Render LaTeX table using the custom Jinja2 template +latex_code = template.render(columns=columns, data=data_rows, acc_scheme=experiment_file.stem) + +# Write the LaTeX code to file +with open('tikzcode.tex', 'w') as f: + f.write(latex_code) diff --git a/plotting/perpendicular-flap/Fig16/main.tex b/plotting/perpendicular-flap/Fig16/main.tex new file mode 100644 index 00000000..98caa93f --- /dev/null +++ b/plotting/perpendicular-flap/Fig16/main.tex @@ -0,0 +1,60 @@ +\documentclass{standalone} + +\usepackage{amsmath} +\usepackage{booktabs} +\usepackage{pgfplots} +\pgfplotsset{compat=1.18} +\usepackage{tikz} +\usetikzlibrary{calc, intersections, positioning, hobby, fit, patterns} + +\pgfdeclarelayer{bg} % declare background layer +\pgfdeclarelayer{fg} % declare foreground layer +\pgfsetlayers{bg,main,fg} % set the order of the layers (main is the standard layer) + +%%% see https://tex.stackexchange.com/a/20426 and https://tex.stackexchange.com/a/419123 +\makeatletter +\pgfkeys{% + /tikz/on layer/.code={ + \pgfonlayer{#1}\begingroup + \aftergroup\endpgfonlayer + \aftergroup\endgroup + }, + /tikz/node on layer/.code={ + \gdef\node@@on@layer{% + \setbox\tikz@tempbox=\hbox\bgroup\pgfonlayer{#1}\unhbox\tikz@tempbox\endpgfonlayer\egroup} + \aftergroup\node@on@layer + }, + /tikz/end node on layer/.code={ + \endpgfonlayer\endgroup\endgroup + } +} +\def\node@on@layer{\aftergroup\node@@on@layer} +\makeatother +%%% + +%%% Define tuftelike pgfplots style +% see https://tex.stackexchange.com/questions/155194/tufte-like-axis-with-pgfplots + +\pgfkeys{/pgfplots/tuftelike/.style={ + semithick, + tick style={major tick length=4pt,semithick,black}, + separate axis lines, + axis x line*=bottom, + axis x line shift=10pt, + axis y line*=left, + axis y line shift=10pt, + enlarge x limits=false, + enlarge y limits=false + }} + +%%% END + +\definecolor{pblue}{RGB}{0,102,189} % precice blue +\definecolor{porange}{RGB}{243,98,33} % precice orange + +\tikzstyle{sample}=[circle,draw,inner sep=1.5pt,thick,fill=white] +\tikzstyle{stample}=[circle,inner sep=1.5pt,fill] + +\begin{document} +\input{tikzcode.tex} +\end{document} diff --git a/plotting/perpendicular-flap/Fig16/tikzcode.tex.jinja2 b/plotting/perpendicular-flap/Fig16/tikzcode.tex.jinja2 new file mode 100644 index 00000000..5b15d989 --- /dev/null +++ b/plotting/perpendicular-flap/Fig16/tikzcode.tex.jinja2 @@ -0,0 +1,59 @@ +\begin{tikzpicture} + \begin{axis}[ + tuftelike, + xlabel={$t$}, + ylabel={$d_x$}, + align=center, + width=.45\textwidth, + height=.25\textwidth, + xmin=0, + xmax=1, + ymin=0, + ymax=0.2, + yticklabel style={ + /pgf/number format/fixed, + /pgf/number format/precision=2, + }, + clip=false, + ytick={0,0.2}, + xtick={0,1}, + % xticklabels={$0$,$1$}, + legend columns=2, + legend cell align={left}, + legend style={ + at={(1,0.2)}, + anchor=east, + draw=none, + /tikz/column 2/.style={ + column sep=5pt, + }, + }, + ] + \addplot[color=black, dotted] table[x=Time, y=Displacement0, col sep=space]{data/result/watchpoint_ref}; \label{plot:REF} + \addplot[color=black, mark=o, only marks] table[x=Time, y=Displacement0, col sep=space]{data/result/watchpoint_MC_20_40}; \label{plot:MC_20_40} + \addplot[color=brown, mark=-, only marks, mark size=3] table[x=Time, y=Displacement0, col sep=space]{data/result/watchpoint_MC_20_20}; \label{plot:MC_20_20} + \addplot[color=blue, mark=|, only marks, mark size=3] table[x=Time, y=Displacement0, col sep=space]{data/result/watchpoint_MC_20_10}; \label{plot:MC_20_10} + \addplot[color=red, mark=triangle, only marks, mark size=3] table[x=Time, y=Displacement0, col sep=space]{data/result/watchpoint_MC_20_5}; \label{plot:MC_20_5} + \addplot[color=black, mark=star, only marks] table[x=Time, y=Displacement0, col sep=space]{data/result/watchpoint_MC_20_2}; \label{plot:MC_20_2} + + \node[anchor=west] at (axis cs:1.05,0.1){ + \small + \begin{tabular}{ {%- for n in range(columns|length) -%}c{%- endfor -%} } + {% set colsep = joiner(" & ") %} + {%- for column in columns -%} + {{ colsep() }}{{ column }} + {%- endfor -%} + \\ + \midrule + {%- set rowsep = joiner(" \\\\") %} + {%- for row in data -%} + {{ rowsep() }} + {%- set colsep = joiner(" & ") %} + {% for value in row -%} + {{ colsep() }}{{ value }} + {%- endfor -%} + {% endfor %} + \end{tabular} + }; + \end{axis} +\end{tikzpicture} diff --git a/plotting/perpendicular-flap/Makefile b/plotting/perpendicular-flap/Makefile new file mode 100644 index 00000000..cafb3386 --- /dev/null +++ b/plotting/perpendicular-flap/Makefile @@ -0,0 +1,7 @@ +DIRS := Fig15 Fig16 + +.PHONY: all $(MAKECMDGOALS) $(DIRS) +$(MAKECMDGOALS) all: $(DIRS) + +$(DIRS): + $(MAKE) -C $@ $(MAKECMDGOALS) diff --git a/plotting/requirements.txt b/plotting/requirements.txt new file mode 100644 index 00000000..7a857917 --- /dev/null +++ b/plotting/requirements.txt @@ -0,0 +1,4 @@ +pandas==2.2.3 +scipy==1.15.3 +matplotlib==3.10.1 +jinja2==3.1.2 \ No newline at end of file diff --git a/tools/docker/dealii-openfoam/Dockerfile b/tools/docker/dealii-openfoam/Dockerfile deleted file mode 100644 index 36cce64a..00000000 --- a/tools/docker/dealii-openfoam/Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -FROM precice/precice:3.2.0 - -USER root - -# Install tooling -RUN apt-get -qq update && \ - apt-get -qq install --no-install-recommends wget software-properties-common - -# Install OpenFOAM & add to bashrc -RUN wget -q -O - https://dl.openfoam.com/add-debian-repo.sh | bash && \ - apt-get -qq install openfoam2412-dev && \ - rm -rf /var/lib/apt/lists/* && \ - echo '. /usr/lib/openfoam/openfoam2412/etc/bashrc' >> /root/.bashrc && \ - echo '. /usr/lib/openfoam/openfoam2412/etc/bashrc' >> /home/precice/.bashrc - -# Install deal.ii -RUN apt-get -qq update && \ - apt-get -qq install --no-install-recommends libdeal.ii-dev && \ - rm -rf /var/lib/apt/lists/* - -# Install OpenFOAM adapter (Overwrite FOAM_USER_LIBBIN to install globally) -RUN wget https://github.com/precice/openfoam-adapter/releases/download/v1.3.1/openfoam-adapter-v1.3.1-OpenFOAMv1812-v2406-newer.tar.gz && \ - tar -xzf openfoam-adapter-v1.3.1-OpenFOAMv1812-v2406-newer.tar.gz && \ - cd openefoam-adapter-v1.3.1-master && \ - . /root/.bashrc && \ - export FOAM_USER_LIBBIN=$FOAM_LIBBIN && \ - ./Allwmake && \ - cd .. - -# Install deal.ii adapter -RUN git clone https://github.com/precice/dealii-adapter.git && \ - cd dealii-adapter && \ - git checkout 4c6d092 && \ - cmake . && \ - make && \ - cd .. diff --git a/tools/docker/fenics-openfoam/Dockerfile b/tools/docker/fenics-openfoam/Dockerfile index c6904838..9b3f40bd 100644 --- a/tools/docker/fenics-openfoam/Dockerfile +++ b/tools/docker/fenics-openfoam/Dockerfile @@ -1,4 +1,4 @@ -FROM precice/precice:3.2.0 +FROM benjaminrodenberg/precice-openfoam:3.2.0 USER root @@ -6,11 +6,12 @@ USER root RUN apt-get -qq update && \ apt-get -qq install --no-install-recommends wget software-properties-common -# Install OpenFOAM & add to bashrc -RUN wget -q -O - https://dl.openfoam.com/add-debian-repo.sh | bash && \ - apt-get -qq install openfoam2412-dev && \ - rm -rf /var/lib/apt/lists/* && \ - echo '. /usr/lib/openfoam/openfoam2412/etc/bashrc' >> /root/.bashrc && \ +# OpenFOAM.com does not work; OpenFOAM installation already provided in benjaminrodenberg/precice-openfoam:3.2.0 +# # Install OpenFOAM +# RUN wget -q -O - https://dl.openfoam.com/add-debian-repo.sh | bash && \ +# apt-get -qq install openfoam2412-dev && \ +# rm -rf /var/lib/apt/lists/* +RUN echo '. /usr/lib/openfoam/openfoam2412/etc/bashrc' >> /root/.bashrc && \ echo '. /usr/lib/openfoam/openfoam2412/etc/bashrc' >> /home/precice/.bashrc # Install FEniCS diff --git a/tools/docker/precice-openfoam/Dockerfile b/tools/docker/precice-openfoam/Dockerfile new file mode 100644 index 00000000..280152a0 --- /dev/null +++ b/tools/docker/precice-openfoam/Dockerfile @@ -0,0 +1,20 @@ +# Based on https://github.com/precice/precice/blob/625092d2c2f23f021708e8d74228d523742d1e1f/tools/releasing/packaging/docker/release.dockerfile + +# Use OpenFOAM docker container as basis. +FROM opencfd/openfoam-dev:2412 +# Remove OpenFOAM PPA +RUN rm /etc/apt/sources.list.d/openfoam.list +# Add the precice user +RUN useradd -m -s /bin/bash precice +# Fix the installation of tzdata for Ubuntu +ARG TIMEZONE=Europe/Berlin +RUN export TZ=$TIMEZONE && echo $TZ > /etc/timezone && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \ + apt-get -yy update && apt-get -yy install wget tzdata lsb-release && rm -rf /var/lib/apt/lists/* +# The version to fetch the package for: X.Y.Z +ARG version=3.2.0 +RUN echo "$version" | grep "[0-9]\+\.[0-9]\+\.[0-9]\+" > /dev/null # The version must follow the format X.Y.Z +RUN wget -q -O libprecice.deb https://github.com/precice/precice/releases/download/v${version}/libprecice`echo ${version} | sed 's/\([0-9]\+\)\.\([0-9]\+\.[0-9]\+\)/\1_\1.\2/'`_$(lsb_release -sc).deb && \ + apt-get update && apt-get -yy install ./libprecice.deb && \ + rm libprecice.deb && rm -rf /var/lib/apt/lists/* +# Make sure the installation is functional +RUN precice-tools version diff --git a/turek-hron-fsi3/README.md b/turek-hron-fsi3/README.md deleted file mode 100644 index ec087bc1..00000000 --- a/turek-hron-fsi3/README.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: Turek Hron FSI3 -permalink: tutorials-turek-hron-fsi3.html -keywords: OpenFOAM, deal.II, verification -summary: The Turek-Hron FSI cases are well-established numerical benchmarks and, therefore, well suited for verification of preCICE itself and the used adapters. In this tutorial, we focus on the FSI3 case, which presents the most challenging case in terms of added mass. Please note that the meshes of this case are significantly finer than for other tutorials. Running the simulation might take a few hours. We do not recommend to run this tutorials as your first preCICE tutorial. ---- - -{% note %} -Get the [case files of this tutorial](https://github.com/precice/tutorials/tree/master/turek-hron-fsi3). Read how in the [tutorials introduction](https://precice.org/tutorials.html). -{% endnote %} - -## Setup - -The setup is shown schematically here: - -![FSI3 setup](images/tutorials-turek-hron-fsi3-setup.png) - -For more information please refer to the original publication of the benchmark [1]. - -## Configuration - -preCICE configuration (image generated using the [precice-config-visualizer](https://precice.org/tooling-config-visualization.html)): - -![preCICE configuration visualization](images/tutorials-turek-hron-fsi3-precice-config.png) - -## Available solvers - -Fluid participant: - -* OpenFOAM (pimpleFoam). In case you are using a very old OpenFOAM version, you will need to adjust the solver to `pimpleDyMFoam` in the `Fluid/system/controlDict` file. For more information, have a look at the [OpenFOAM adapter documentation](https://precice.org/adapter-openfoam-overview.html). - -Solid participant: - -* deal.II. For more information, have a look at the [deal.II adapter documentation](https://precice.org/adapter-dealii-overview.html). This tutorial requires the nonlinear solid solver. Please copy the nonlinear solver executable to the `solid-dealii` folder or make it discoverable at runtime and update the `solid-dealii/run.sh` script. - -## Running the Simulation - -Open two separate terminals and start each participant by calling the respective run script. - -```bash -cd fluid-openfoam -./run.sh -``` - -and - -```bash -cd solid-dealii -./run.sh -``` - -You can also run OpenFOAM in parallel by `./run.sh -parallel`. The default setting here uses 25 MPI ranks. You can change this setting in `fluid-openfoam/system/decomposeParDict`. - -You may adjust the end time in the `precice-config.xml`, or interrupt the execution earlier if you want. - -In the first few timesteps, many coupling iterations are required for convergence. Don't lose hope, things get better quickly. - -## Post-processing - -You can visualize the results of the coupled simulation using e.g. ParaView. Fluid results are in the OpenFOAM format and you may load the `fluid-openfoam.foam` file. Solid results are in VTK format. - -If you want to visualize both domains with ParaView, keep in mind that the deal.II solver writes results every few timesteps, while the OpenFOAM solver writes in reference to simulated time. For this reason, make sure that you use compatible write intervals. You may also need to convert the OpenFOAM results to VTK (with the command `foamToVTK`). - -There is an [known issue](https://github.com/precice/openfoam-adapter/issues/26) that leads to additional "empty" result directories when running with some OpenFOAM versions, leading to inconveniences during post-processing. At the end of `run.sh`, we call `openfoam_remove_empty_dirs` (provided by `tools/openfoam-remove-empty-dirs`) to delete the additional files before importing the results in ParaView. - -Moreover, as we defined a watchpoint at the flap tip (see `precice-config.xml`), we can plot it with gnuplot using the script `plot-displacement.sh`. The resulting graph shows the vertical (y) displacement of the tip of the flap. - -![FSI3 watchpoint](images/tutorials-turek-hron-fsi3-tip-plot.png) - -Before running the simulation again, you may want to cleanup any result files using the script `clean-tutorial.sh`. - -## Mesh refinement - -In `fluid-openfoam/system/`, we provide three different fluid meshes: - -* `blockMeshDict`: the default mesh with approximately 21k cells, -* `blockMeshDict_refined`: a refined mesh with approximately 38k cells, -* `blockMeshDict_double_refined`: a refined mesh with approximately 46k cells. - -If you want to use one of the two refined meshes, simply swap the `blockMeshDict`: - -```bash -mv blockMeshDict blockMeshDict_original -mv blockMeshDict_refined blockMeshDict -``` - -For the double-refined mesh, it is wisely to use local basis functions in the RBF data mapping method instead of global ones. You can use: - -```xml - -``` - -You can find more information on RBF data mapping in the [documentation](https://precice.org/configuration-mapping.html#radial-basis-function-mapping). - -## References - -[1] S. Turek, J. Hron, M. Madlik, M. Razzaq, H. Wobker, and J. Acker. Numerical simulation and benchmarking of a monolithic multigrid solver for fluid-structure interaction problems with application to hemodynamics. In H.-J. Bungartz, M. Mehl, and M. Schäfer, editors, Fluid Structure Interaction II: Modelling, Simulation, Optimization, page 432. Springer Berlin Heidelberg, 2010. - -{% disclaimer %} -This offering is not approved or endorsed by OpenCFD Limited, producer and distributor of the OpenFOAM software via www.openfoam.com, and owner of the OPENFOAM® and OpenCFD® trade marks. -{% enddisclaimer %} diff --git a/turek-hron-fsi3/clean-tutorial.sh b/turek-hron-fsi3/clean-tutorial.sh deleted file mode 120000 index 4713f509..00000000 --- a/turek-hron-fsi3/clean-tutorial.sh +++ /dev/null @@ -1 +0,0 @@ -../tools/clean-tutorial-base.sh \ No newline at end of file diff --git a/turek-hron-fsi3/do_studies.sh b/turek-hron-fsi3/do_studies.sh deleted file mode 100755 index f00d648d..00000000 --- a/turek-hron-fsi3/do_studies.sh +++ /dev/null @@ -1,12 +0,0 @@ -# Figure 6.8 -./prep_fenics.sh -(cd ./solid-fenics && ./run_legacy.sh) & (cd ./fluid-openfoam && ./run.sh) -cp ./solid-fenics/precice-Solid-watchpoint-Flap-Tip.log ./studies/precice-Solid-watchpoint-Flap-Tip-legacy.log - -./prep_fenics.sh -(cd ./solid-fenics && ./run_WI.sh) & (cd ./fluid-openfoam && ./run.sh) -cp ./solid-fenics/precice-Solid-watchpoint-Flap-Tip.log ./studies/precice-Solid-watchpoint-Flap-Tip-WI.log - -./prep_dealii.sh -(cd ./solid-dealii && ./run.sh) & (cd ./fluid-openfoam && ./run.sh) -cp ./solid-dealii/precice-Solid-watchpoint-Flap-Tip.log ./studies/precice-Solid-watchpoint-Flap-Tip-nonlin.log diff --git a/turek-hron-fsi3/fluid-openfoam/0/U b/turek-hron-fsi3/fluid-openfoam/0/U deleted file mode 100644 index 8bd25ec5..00000000 --- a/turek-hron-fsi3/fluid-openfoam/0/U +++ /dev/null @@ -1,87 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class volVectorField; - object U; -} - -dimensions [0 1 -1 0 0 0 0]; - -internalField uniform (0 0 0); - -boundaryField -{ - - cylinder - { - type noSlip; - } - - flap - { - type movingWallVelocity; - value uniform (0 0 0); - } - - top - { - type noSlip; - } - - bottom - { - type noSlip; - } - - inlet - { - // Time-varying parabolic inlet profile - type codedFixedValue; - value uniform (1 0 0); - name parabolicVelocity; - - code - #{ - const vectorField& Cf = patch().Cf(); - vectorField& field = *this; - - const scalar pi = constant::mathematical::pi; - const scalar Umean = 2.0; - const scalar H = 0.41; // channel height - const scalar H_2 = H * H; // equals 0.1681 - const scalar t = this->db().time().value(); - // ramp up below 2 seconds - if (t < 2) - { - forAll(Cf, faceI) - { - const scalar y = Cf[faceI].y(); - field[faceI] = vector((1.5 * Umean * 4.0 / H_2) * y * (H - y) * ((1 - cos((pi / 2) * t)) / 2), 0, 0); - } - } - else - { - forAll(Cf, faceI) - { - const scalar y = Cf[faceI].y(); - field[faceI] = vector((1.5 * Umean * 4.0 / H_2) * y * (H - y), 0, 0); - } - } - #}; - } - - outlet - { - type zeroGradient; - } - - front - { - type empty; - } - back - { - type empty; - } -} diff --git a/turek-hron-fsi3/fluid-openfoam/0/p b/turek-hron-fsi3/fluid-openfoam/0/p deleted file mode 100644 index 2ea7217e..00000000 --- a/turek-hron-fsi3/fluid-openfoam/0/p +++ /dev/null @@ -1,54 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class volScalarField; - object p; -} - -dimensions [0 2 -2 0 0 0 0]; - -internalField uniform 0; - -boundaryField -{ - cylinder - { - type zeroGradient; - } - - flap - { - type zeroGradient; - } - - top - { - type zeroGradient; - } - - bottom - { - type zeroGradient; - } - - inlet - { - type zeroGradient; - } - - outlet - { - type fixedValue; - value uniform 0; - } - - front - { - type empty; - } - back - { - type empty; - } -} diff --git a/turek-hron-fsi3/fluid-openfoam/0/pointDisplacement b/turek-hron-fsi3/fluid-openfoam/0/pointDisplacement deleted file mode 100644 index ed27a7b3..00000000 --- a/turek-hron-fsi3/fluid-openfoam/0/pointDisplacement +++ /dev/null @@ -1,55 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class pointVectorField; - object pointDisplacement; -} - -dimensions [0 1 0 0 0 0 0]; - -internalField uniform (0 0 0); - -boundaryField -{ - inlet - { - type fixedValue; - value uniform (0 0 0); - } - - outlet - { - type fixedValue; - value uniform (0 0 0); - } - - cylinder - { - type fixedValue; - value $internalField; - } - flap - { - type fixedValue; - value $internalField; - } - - top - { - type slip; - } - - bottom - { - type slip; - } - front - { - type empty; - } - back - { - type empty; - } -} diff --git a/turek-hron-fsi3/fluid-openfoam/clean.sh b/turek-hron-fsi3/fluid-openfoam/clean.sh deleted file mode 100755 index b64fc510..00000000 --- a/turek-hron-fsi3/fluid-openfoam/clean.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env sh -set -e -u - -. ../../tools/cleaning-tools.sh - -clean_openfoam . diff --git a/turek-hron-fsi3/fluid-openfoam/constant/dynamicMeshDict b/turek-hron-fsi3/fluid-openfoam/constant/dynamicMeshDict deleted file mode 100644 index 1efc38fe..00000000 --- a/turek-hron-fsi3/fluid-openfoam/constant/dynamicMeshDict +++ /dev/null @@ -1,18 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object dynamicMeshDict; -} - -dynamicFvMesh dynamicMotionSolverFvMesh; - -motionSolverLibs ("libfvMotionSolvers.so"); - -solver displacementLaplacian; -// OpenFOAM9 or newer: rename "solver" to "motionSolver" - -displacementLaplacianCoeffs { - diffusivity quadratic inverseDistance (flap); -} diff --git a/turek-hron-fsi3/fluid-openfoam/constant/transportProperties b/turek-hron-fsi3/fluid-openfoam/constant/transportProperties deleted file mode 100644 index ff8f5e90..00000000 --- a/turek-hron-fsi3/fluid-openfoam/constant/transportProperties +++ /dev/null @@ -1,13 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object transportProperties; -} - -transportModel Newtonian; - -nu nu [0 2 -1 0 0 0 0 ] 0.001; - -pRef pRef [1 -1 -2 0 0 0 0 ] 0.0; diff --git a/turek-hron-fsi3/fluid-openfoam/constant/turbulenceProperties b/turek-hron-fsi3/fluid-openfoam/constant/turbulenceProperties deleted file mode 100644 index 24699959..00000000 --- a/turek-hron-fsi3/fluid-openfoam/constant/turbulenceProperties +++ /dev/null @@ -1,9 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object turbulenceProperties; -} - -simulationType laminar; diff --git a/turek-hron-fsi3/fluid-openfoam/run.sh b/turek-hron-fsi3/fluid-openfoam/run.sh deleted file mode 100755 index 8f55fbfa..00000000 --- a/turek-hron-fsi3/fluid-openfoam/run.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash -set -e -u - -. ../../tools/log.sh -exec > >(tee --append "$LOGFILE") 2>&1 - -blockMesh - -../../tools/run-openfoam.sh "$@" -. ../../tools/openfoam-remove-empty-dirs.sh && openfoam_remove_empty_dirs - -close_log diff --git a/turek-hron-fsi3/fluid-openfoam/system/blockMeshDict b/turek-hron-fsi3/fluid-openfoam/system/blockMeshDict deleted file mode 100644 index a51763df..00000000 --- a/turek-hron-fsi3/fluid-openfoam/system/blockMeshDict +++ /dev/null @@ -1,335 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} - -f -0.1; // z-front -b 0.1; // z-back - -// Grid refinement parameters -H1 21; // Nx first block -H2 35; // Nx second block -H3 78; // Nx third block flap in x -H4 120; // Nx last block -H5 14; // amount of cells above/below flap - -V1 22; // Ny first inlet/outlet block: Bottom wall to flap block -V2 35; // Ny second inlet block -V3 20; // Amount of cells in radius -V4 14; // Ny above/blow flap to back -V5 23; // Ny top inlet/outlet block: Top wall to flap block -V6 5; // Ny after flap - -GR 2.5; // Circular mesh gradient -GO 11.5; // Outlet grading - - -vertices -( - // Block 0 - (0 0 $f) // vertex 0 - (0.119526 0 $f) - (0.119526 0.119526 $f) - (0 0.119526 $f) // vertex 3 - - (0 0 $b) // vertex 4 - (0.119526 0 $b) - (0.119526 0.119526 $b) - (0 0.119526 $b) // vertex 7 - - // Block 1 - (0.280474 0 $f) // vertex 8 - (0.280474 0.119526 $f) - - (0.280474 0 $b) // vertex 10 - (0.280474 0.119526 $b) - - // Block 2 - (0.6 0 $f) // vertex 12 - (0.6 0.119526 $f) - - (0.6 0 $b) // vertex 14 - (0.6 0.119526 $b) - - // Block 3 - (2.5 0 $f) // vertex 16 - (2.5 0.119526 $f) - - (2.5 0 $b) // vertex 18 - (2.5 0.119526 $b) - - // Block 4 - (0.119526 0.280474 $f) // vertex 20 - (0 0.280474 $f) - - (0.119526 0.280474 $b) // vertex 22 - (0 0.280474 $b) - - // Block 5 - (0.164645 0.164645 $f) // vertex 24 - (0.164656 0.235355 $f) - - (0.164645 0.164645 $b) // vertex 26 - (0.164656 0.235355 $b) - - // Block 6 - (0.231623 0.16127 $f) // vertex 28 - (0.231623 0.16127 $b) - - // Block 7 - (0.299528 0.19 $f) // vertex 30 - (0.24899 0.19 $f) - - (0.299528 0.19 $b) // vertex 32 - (0.24899 0.19 $b) - - // Block 8 - (0.6 0.19 $f) // vertex 34 - (0.6 0.19 $b) - - // Block 9 - (2.5 0.19 $f) // vertex 36 - (2.5 0.19 $b) - - // Block 10 - (0.280474 0.280474 $f) // vertex 38 - (0.231623 0.238730 $f) - - (0.280474 0.280474 $b) // vertex 40 - (0.231623 0.238730 $b) - - // Block 11 - (0.299528 0.21 $f) // vertex 42 - (0.24899 0.21 $f) - - (0.299528 0.21 $b) // vertex 44 - (0.24899 0.21 $b) - - // Block 12 - (0.6 0.21 $f) // vertex 46 - (0.6 0.280474 $f) - - (0.6 0.21 $b) // vertex 48 - (0.6 0.280474 $b) - - // Block 14 - (2.5 0.21 $f) // vertex 50 - (2.5 0.280474 $f) - - (2.5 0.21 $b) // vertex 52 - (2.5 0.280474 $b) - - // Block 15 - (0.119526 0.41 $f) // vertex 54 - (0 0.41 $f) - - (0.119526 0.41 $b) // vertex 56 - (0 0.41 $b) - - // Block 16 - (0.280474 0.41 $f) // vertex 58 - (0.280474 0.41 $b) - - // Block 17 - (0.6 0.41 $f) // vertex 60 - (0.6 0.41 $b) - - // Block 18 - (2.5 0.41 $f) // vertex 62 - (2.5 0.41 $b) -); - - -blocks -( - // Block 0 - 4 - hex ( 0 1 2 3 4 5 6 7) ($H1 $V1 1) simpleGrading (1 1 1) - hex ( 1 8 9 2 5 10 11 6) ($H2 $V1 1) simpleGrading (1 1 1) - hex ( 8 12 13 9 10 14 15 11) ($H3 $V1 1) simpleGrading (1 1 1) - hex (12 16 17 13 14 18 19 15) ($H4 $V1 1) simpleGrading ($GO 1 1) - hex ( 3 2 20 21 7 6 22 23) ($H1 $V2 1) simpleGrading (1 1 1) - - // Block 5 - 9 - hex (24 25 20 2 26 27 22 6) ($H2 $V3 1) simpleGrading (1 $GR 1) - hex (28 24 2 9 29 26 6 11) ($H2 $V3 1) simpleGrading (1 $GR 1) - hex (31 28 9 30 33 29 11 32) ($H5 $V3 1) simpleGrading (1 $GR 1) - hex ( 9 13 34 30 11 15 35 32) ($H3 $V4 1) simpleGrading (1 1 1) - hex (13 17 36 34 15 19 37 35) ($H4 $V4 1) simpleGrading ($GO 1 1) - - // Block 10 - 14 - hex (25 39 38 20 27 41 40 22) ($H2 $V3 1) simpleGrading (1 $GR 1) - hex (39 43 42 38 41 45 44 40) ($H5 $V3 1) simpleGrading (1 $GR 1) - hex (42 46 47 38 44 48 49 40) ($H3 $V4 1) simpleGrading (1 1 1) - hex (34 36 50 46 35 37 52 48) ($H4 $V6 1) simpleGrading ($GO 1 1) - hex (46 50 51 47 48 52 53 49) ($H4 $V4 1) simpleGrading ($GO 1 1) - - // Block 15 - 18 - hex (21 20 54 55 23 22 56 57) ($H1 $V5 1) simpleGrading (1 1 1) - hex (20 38 58 54 22 40 59 56) ($H2 $V5 1) simpleGrading (1 1 1) - hex (38 47 60 58 40 49 61 59) ($H3 $V5 1) simpleGrading (1 1 1) - hex (47 51 62 60 49 53 63 61) ($H4 $V5 1) simpleGrading ($GO 1 1) -); - -edges -( - arc 9 2 (0.2 0.1 $f) // Block 1 - arc 11 6 (0.2 0.1 $b) - - arc 2 20 (0.1 0.2 $f) // Block 4 - arc 6 22 (0.1 0.2 $b) - - arc 24 25 (0.15 0.2 $f) // Block 5 - arc 26 27 (0.15 0.2 $b) - - arc 24 28 (0.2 0.15 $f) // Block 6 - arc 26 29 (0.2 0.15 $b) - - arc 9 30 (0.293144 0.156475 $f) // Block 7 - arc 28 31 (0.243369 0.175117 $f) - arc 11 32 (0.293144 0.156475 $b) // Block 7 - arc 29 33 (0.243369 0.175117 $b) - - arc 20 38 (0.2 0.3 $f) // Block 10 - arc 25 39 (0.2 0.25 $f) - arc 22 40 (0.2 0.3 $b) // Block 10 - arc 27 41 (0.2 0.25 $b) - - arc 39 43 (0.24092 0.228733 $f) // Block 11 - arc 41 45 (0.24092 0.228733 $b) - arc 38 42 (0.291756 0.248208 $f) // Block 11 - arc 40 44 (0.291756 0.248208 $b) -); - -boundary -( - front - { - type empty; - faces - ( - (0 1 2 3) - (3 2 20 21) - (21 20 55 54) - (1 8 9 2) - (2 9 28 24) - (2 24 25 20) - (25 39 38 20) - (20 38 58 54) - (9 30 31 28) - (43 42 38 39) - (8 12 13 9) - (9 13 34 30) - (42 46 47 38) - (38 47 60 58) - (12 16 17 13) - (13 17 36 34) - (34 36 50 46) - (46 50 51 47) - (47 51 62 60) - ); - } - - back - { - type empty; - faces - ( - (4 5 6 7) - (7 6 22 23) - (23 22 56 57) - (5 10 11 6) - (6 11 29 26) - (6 26 27 22) - (27 41 40 22) - (22 40 59 56) - (11 32 33 29) - (45 44 40 41) - (10 14 15 11) - (11 15 35 32) - (44 48 49 40) - (40 49 61 59) - (14 18 19 15) - (15 19 37 35) - (35 37 52 48) - (48 52 53 49) - (49 53 63 61) - ); - } - - inlet - { - type patch; - faces - ( - ( 0 4 7 3) - ( 3 7 23 21) - (21 23 57 55) - ); - } - - outlet - { - type patch; - faces - ( - (16 18 19 17) - (17 19 37 36) - (36 37 52 50) - (50 52 53 51) - (51 53 63 62) - ); - } - - top - { - type wall; - faces - ( - (55 54 56 57) - (54 58 59 56) - (58 60 61 59) - (60 62 63 61) - ); - } - - bottom - { - type wall; - faces - ( - (0 1 5 4) - (1 8 10 5) - (8 12 14 10) - (12 16 18 14) - ); - } - - flap - { - type wall; - faces - ( - (31 30 32 33) - (30 34 35 32) - (34 35 48 46) - (42 46 48 44) - (43 42 44 45) - ); - } - - cylinder - { - type wall; - faces - ( - (24 28 29 26) - (28 31 33 29) - (43 39 41 45) - (39 25 27 41) - (25 24 26 27) - ); - } -); diff --git a/turek-hron-fsi3/fluid-openfoam/system/blockMeshDict_double_refined b/turek-hron-fsi3/fluid-openfoam/system/blockMeshDict_double_refined deleted file mode 100644 index 1050699d..00000000 --- a/turek-hron-fsi3/fluid-openfoam/system/blockMeshDict_double_refined +++ /dev/null @@ -1,336 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} - -// Geometry parameters -f -0.1; // z-front -b 0.1; // z-back - -// Grid refinement parameters -H1 34; // Nx first block -H2 50; // Nx second block -H3 125; // Nx third block flap in x -H4 150; // Nx last block -H5 25; // amount of cells above/below flap - -V1 34; // Ny first inlet/outlet block: Wall to flap block -V2 50; // Ny second inlet block -V3 26; // Amount of cells in radius -V4 25; // Ny above/blow flap to back -V5 33; // Ny top inlet/outlet block: Wall to flap block -V6 8; // Ny after flap - -GR 2.5; // Circular mesh gradient -GO 11; // Outlet grading - - -vertices -( - // Block 0 - (0 0 $f) // vertex 0 - (0.119526 0 $f) - (0.119526 0.119526 $f) - (0 0.119526 $f) // vertex 3 - - (0 0 $b) // vertex 4 - (0.119526 0 $b) - (0.119526 0.119526 $b) - (0 0.119526 $b) // vertex 7 - - // Block 1 - (0.280474 0 $f) // vertex 8 - (0.280474 0.119526 $f) - - (0.280474 0 $b) // vertex 10 - (0.280474 0.119526 $b) - - // Block 2 - (0.6 0 $f) // vertex 12 - (0.6 0.119526 $f) - - (0.6 0 $b) // vertex 14 - (0.6 0.119526 $b) - - // Block 3 - (2.5 0 $f) // vertex 16 - (2.5 0.119526 $f) - - (2.5 0 $b) // vertex 18 - (2.5 0.119526 $b) - - // Block 4 - (0.119526 0.280474 $f) // vertex 20 - (0 0.280474 $f) - - (0.119526 0.280474 $b) // vertex 22 - (0 0.280474 $b) - - // Block 5 - (0.164645 0.164645 $f) // vertex 24 - (0.164656 0.235355 $f) - - (0.164645 0.164645 $b) // vertex 26 - (0.164656 0.235355 $b) - - // Block 6 - (0.231623 0.16127 $f) // vertex 28 - (0.231623 0.16127 $b) - - // Block 7 - (0.299528 0.19 $f) // vertex 30 - (0.24899 0.19 $f) - - (0.299528 0.19 $b) // vertex 32 - (0.24899 0.19 $b) - - // Block 8 - (0.6 0.19 $f) // vertex 34 - (0.6 0.19 $b) - - // Block 9 - (2.5 0.19 $f) // vertex 36 - (2.5 0.19 $b) - - // Block 10 - (0.280474 0.280474 $f) // vertex 38 - (0.231623 0.238730 $f) - - (0.280474 0.280474 $b) // vertex 40 - (0.231623 0.238730 $b) - - // Block 11 - (0.299528 0.21 $f) // vertex 42 - (0.24899 0.21 $f) - - (0.299528 0.21 $b) // vertex 44 - (0.24899 0.21 $b) - - // Block 12 - (0.6 0.21 $f) // vertex 46 - (0.6 0.280474 $f) - - (0.6 0.21 $b) // vertex 48 - (0.6 0.280474 $b) - - // Block 14 - (2.5 0.21 $f) // vertex 50 - (2.5 0.280474 $f) - - (2.5 0.21 $b) // vertex 52 - (2.5 0.280474 $b) - - // Block 15 - (0.119526 0.41 $f) // vertex 54 - (0 0.41 $f) - - (0.119526 0.41 $b) // vertex 56 - (0 0.41 $b) - - // Block 16 - (0.280474 0.41 $f) // vertex 58 - (0.280474 0.41 $b) - - // Block 17 - (0.6 0.41 $f) // vertex 60 - (0.6 0.41 $b) - - // Block 18 - (2.5 0.41 $f) // vertex 62 - (2.5 0.41 $b) -); - - -blocks -( - // Block 0 - 4 - hex ( 0 1 2 3 4 5 6 7) ($H1 $V1 1) simpleGrading (1 1 1) - hex ( 1 8 9 2 5 10 11 6) ($H2 $V1 1) simpleGrading (1 1 1) - hex ( 8 12 13 9 10 14 15 11) ($H3 $V1 1) simpleGrading (1 1 1) - hex (12 16 17 13 14 18 19 15) ($H4 $V1 1) simpleGrading ($GO 1 1) - hex ( 3 2 20 21 7 6 22 23) ($H1 $V2 1) simpleGrading (1 1 1) - - // Block 5 - 9 - hex (24 25 20 2 26 27 22 6) ($H2 $V3 1) simpleGrading (1 $GR 1) - hex (28 24 2 9 29 26 6 11) ($H2 $V3 1) simpleGrading (1 $GR 1) - hex (31 28 9 30 33 29 11 32) ($H5 $V3 1) simpleGrading (1 $GR 1) - hex ( 9 13 34 30 11 15 35 32) ($H3 $V4 1) simpleGrading (1 1 1) - hex (13 17 36 34 15 19 37 35) ($H4 $V4 1) simpleGrading ($GO 1 1) - - // Block 10 - 14 - hex (25 39 38 20 27 41 40 22) ($H2 $V3 1) simpleGrading (1 $GR 1) - hex (39 43 42 38 41 45 44 40) ($H5 $V3 1) simpleGrading (1 $GR 1) - hex (42 46 47 38 44 48 49 40) ($H3 $V4 1) simpleGrading (1 1 1) - hex (34 36 50 46 35 37 52 48) ($H4 $V6 1) simpleGrading ($GO 1 1) - hex (46 50 51 47 48 52 53 49) ($H4 $V4 1) simpleGrading ($GO 1 1) - - // Block 15 - 18 - hex (21 20 54 55 23 22 56 57) ($H1 $V5 1) simpleGrading (1 1 1) - hex (20 38 58 54 22 40 59 56) ($H2 $V5 1) simpleGrading (1 1 1) - hex (38 47 60 58 40 49 61 59) ($H3 $V5 1) simpleGrading (1 1 1) - hex (47 51 62 60 49 53 63 61) ($H4 $V5 1) simpleGrading ($GO 1 1) -); - -edges -( - arc 9 2 (0.2 0.1 $f) // Block 1 - arc 11 6 (0.2 0.1 $b) - - arc 2 20 (0.1 0.2 $f) // Block 4 - arc 6 22 (0.1 0.2 $b) - - arc 24 25 (0.15 0.2 $f) // Block 5 - arc 26 27 (0.15 0.2 $b) - - arc 24 28 (0.2 0.15 $f) // Block 6 - arc 26 29 (0.2 0.15 $b) - - arc 9 30 (0.293144 0.156475 $f) // Block 7 - arc 28 31 (0.243369 0.175117 $f) - arc 11 32 (0.293144 0.156475 $b) // Block 7 - arc 29 33 (0.243369 0.175117 $b) - - arc 20 38 (0.2 0.3 $f) // Block 10 - arc 25 39 (0.2 0.25 $f) - arc 22 40 (0.2 0.3 $b) // Block 10 - arc 27 41 (0.2 0.25 $b) - - arc 39 43 (0.24092 0.228733 $f) // Block 11 - arc 41 45 (0.24092 0.228733 $b) - arc 38 42 (0.291756 0.248208 $f) // Block 11 - arc 40 44 (0.291756 0.248208 $b) -); - -boundary -( - front - { - type empty; - faces - ( - (0 1 2 3) - (3 2 20 21) - (21 20 55 54) - (1 8 9 2) - (2 9 28 24) - (2 24 25 20) - (25 39 38 20) - (20 38 58 54) - (9 30 31 28) - (43 42 38 39) - (8 12 13 9) - (9 13 34 30) - (42 46 47 38) - (38 47 60 58) - (12 16 17 13) - (13 17 36 34) - (34 36 50 46) - (46 50 51 47) - (47 51 62 60) - ); - } - - back - { - type empty; - faces - ( - (4 5 6 7) - (7 6 22 23) - (23 22 56 57) - (5 10 11 6) - (6 11 29 26) - (6 26 27 22) - (27 41 40 22) - (22 40 59 56) - (11 32 33 29) - (45 44 40 41) - (10 14 15 11) - (11 15 35 32) - (44 48 49 40) - (40 49 61 59) - (14 18 19 15) - (15 19 37 35) - (35 37 52 48) - (48 52 53 49) - (49 53 63 61) - ); - } - - inlet - { - type patch; - faces - ( - ( 0 4 7 3) - ( 3 7 23 21) - (21 23 57 55) - ); - } - - outlet - { - type patch; - faces - ( - (16 18 19 17) - (17 19 37 36) - (36 37 52 50) - (50 52 53 51) - (51 53 63 62) - ); - } - - top - { - type wall; - faces - ( - (55 54 56 57) - (54 58 59 56) - (58 60 61 59) - (60 62 63 61) - ); - } - - bottom - { - type wall; - faces - ( - (0 1 5 4) - (1 8 10 5) - (8 12 14 10) - (12 16 18 14) - ); - } - - flap - { - type wall; - faces - ( - (31 30 32 33) - (30 34 35 32) - (34 35 48 46) - (42 46 48 44) - (43 42 44 45) - ); - } - - cylinder - { - type wall; - faces - ( - (24 28 29 26) - (28 31 33 29) - (43 39 41 45) - (39 25 27 41) - (25 24 26 27) - ); - } -); diff --git a/turek-hron-fsi3/fluid-openfoam/system/blockMeshDict_refined b/turek-hron-fsi3/fluid-openfoam/system/blockMeshDict_refined deleted file mode 100644 index af131558..00000000 --- a/turek-hron-fsi3/fluid-openfoam/system/blockMeshDict_refined +++ /dev/null @@ -1,336 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} - -// Geometry parameters -f -0.1; // z-front -b 0.1; // z-back - -// Grid refinement parameters -H1 34; // Nx first block -H2 45; // Nx second block -H3 88; // Nx third block flap in x -H4 130; // Nx last block -H5 24; // amount of cells above/below flap - -V1 34; // Ny first inlet/outlet block: Wall to flap block -V2 45; // Ny second inlet block -V3 26; // Amount of cells in radius -V4 24; // Ny above/blow flap to back -V5 37; // Ny top inlet/outlet block: Wall to flap block -V6 5; // Ny after flap - -GR 2.5; // Circular mesh gradient -GO 8; // Outlet grading - - -vertices -( - // Block 0 - (0 0 $f) // vertex 0 - (0.119526 0 $f) - (0.119526 0.119526 $f) - (0 0.119526 $f) // vertex 3 - - (0 0 $b) // vertex 4 - (0.119526 0 $b) - (0.119526 0.119526 $b) - (0 0.119526 $b) // vertex 7 - - // Block 1 - (0.280474 0 $f) // vertex 8 - (0.280474 0.119526 $f) - - (0.280474 0 $b) // vertex 10 - (0.280474 0.119526 $b) - - // Block 2 - (0.6 0 $f) // vertex 12 - (0.6 0.119526 $f) - - (0.6 0 $b) // vertex 14 - (0.6 0.119526 $b) - - // Block 3 - (2.5 0 $f) // vertex 16 - (2.5 0.119526 $f) - - (2.5 0 $b) // vertex 18 - (2.5 0.119526 $b) - - // Block 4 - (0.119526 0.280474 $f) // vertex 20 - (0 0.280474 $f) - - (0.119526 0.280474 $b) // vertex 22 - (0 0.280474 $b) - - // Block 5 - (0.164645 0.164645 $f) // vertex 24 - (0.164656 0.235355 $f) - - (0.164645 0.164645 $b) // vertex 26 - (0.164656 0.235355 $b) - - // Block 6 - (0.231623 0.16127 $f) // vertex 28 - (0.231623 0.16127 $b) - - // Block 7 - (0.299528 0.19 $f) // vertex 30 - (0.24899 0.19 $f) - - (0.299528 0.19 $b) // vertex 32 - (0.24899 0.19 $b) - - // Block 8 - (0.6 0.19 $f) // vertex 34 - (0.6 0.19 $b) - - // Block 9 - (2.5 0.19 $f) // vertex 36 - (2.5 0.19 $b) - - // Block 10 - (0.280474 0.280474 $f) // vertex 38 - (0.231623 0.238730 $f) - - (0.280474 0.280474 $b) // vertex 40 - (0.231623 0.238730 $b) - - // Block 11 - (0.299528 0.21 $f) // vertex 42 - (0.24899 0.21 $f) - - (0.299528 0.21 $b) // vertex 44 - (0.24899 0.21 $b) - - // Block 12 - (0.6 0.21 $f) // vertex 46 - (0.6 0.280474 $f) - - (0.6 0.21 $b) // vertex 48 - (0.6 0.280474 $b) - - // Block 14 - (2.5 0.21 $f) // vertex 50 - (2.5 0.280474 $f) - - (2.5 0.21 $b) // vertex 52 - (2.5 0.280474 $b) - - // Block 15 - (0.119526 0.41 $f) // vertex 54 - (0 0.41 $f) - - (0.119526 0.41 $b) // vertex 56 - (0 0.41 $b) - - // Block 16 - (0.280474 0.41 $f) // vertex 58 - (0.280474 0.41 $b) - - // Block 17 - (0.6 0.41 $f) // vertex 60 - (0.6 0.41 $b) - - // Block 18 - (2.5 0.41 $f) // vertex 62 - (2.5 0.41 $b) -); - - -blocks -( - // Block 0 - 4 - hex ( 0 1 2 3 4 5 6 7) ($H1 $V1 1) simpleGrading (1 1 1) - hex ( 1 8 9 2 5 10 11 6) ($H2 $V1 1) simpleGrading (1 1 1) - hex ( 8 12 13 9 10 14 15 11) ($H3 $V1 1) simpleGrading (1 1 1) - hex (12 16 17 13 14 18 19 15) ($H4 $V1 1) simpleGrading ($GO 1 1) - hex ( 3 2 20 21 7 6 22 23) ($H1 $V2 1) simpleGrading (1 1 1) - - // Block 5 - 9 - hex (24 25 20 2 26 27 22 6) ($H2 $V3 1) simpleGrading (1 $GR 1) - hex (28 24 2 9 29 26 6 11) ($H2 $V3 1) simpleGrading (1 $GR 1) - hex (31 28 9 30 33 29 11 32) ($H5 $V3 1) simpleGrading (1 $GR 1) - hex ( 9 13 34 30 11 15 35 32) ($H3 $V4 1) simpleGrading (1 1 1) - hex (13 17 36 34 15 19 37 35) ($H4 $V4 1) simpleGrading ($GO 1 1) - - // Block 10 - 14 - hex (25 39 38 20 27 41 40 22) ($H2 $V3 1) simpleGrading (1 $GR 1) - hex (39 43 42 38 41 45 44 40) ($H5 $V3 1) simpleGrading (1 $GR 1) - hex (42 46 47 38 44 48 49 40) ($H3 $V4 1) simpleGrading (1 1 1) - hex (34 36 50 46 35 37 52 48) ($H4 $V6 1) simpleGrading ($GO 1 1) - hex (46 50 51 47 48 52 53 49) ($H4 $V4 1) simpleGrading ($GO 1 1) - - // Block 15 - 18 - hex (21 20 54 55 23 22 56 57) ($H1 $V5 1) simpleGrading (1 1 1) - hex (20 38 58 54 22 40 59 56) ($H2 $V5 1) simpleGrading (1 1 1) - hex (38 47 60 58 40 49 61 59) ($H3 $V5 1) simpleGrading (1 1 1) - hex (47 51 62 60 49 53 63 61) ($H4 $V5 1) simpleGrading ($GO 1 1) -); - -edges -( - arc 9 2 (0.2 0.1 $f) // Block 1 - arc 11 6 (0.2 0.1 $b) - - arc 2 20 (0.1 0.2 $f) // Block 4 - arc 6 22 (0.1 0.2 $b) - - arc 24 25 (0.15 0.2 $f) // Block 5 - arc 26 27 (0.15 0.2 $b) - - arc 24 28 (0.2 0.15 $f) // Block 6 - arc 26 29 (0.2 0.15 $b) - - arc 9 30 (0.293144 0.156475 $f) // Block 7 - arc 28 31 (0.243369 0.175117 $f) - arc 11 32 (0.293144 0.156475 $b) // Block 7 - arc 29 33 (0.243369 0.175117 $b) - - arc 20 38 (0.2 0.3 $f) // Block 10 - arc 25 39 (0.2 0.25 $f) - arc 22 40 (0.2 0.3 $b) // Block 10 - arc 27 41 (0.2 0.25 $b) - - arc 39 43 (0.24092 0.228733 $f) // Block 11 - arc 41 45 (0.24092 0.228733 $b) - arc 38 42 (0.291756 0.248208 $f) // Block 11 - arc 40 44 (0.291756 0.248208 $b) -); - -boundary -( - front - { - type empty; - faces - ( - (0 1 2 3) - (3 2 20 21) - (21 20 55 54) - (1 8 9 2) - (2 9 28 24) - (2 24 25 20) - (25 39 38 20) - (20 38 58 54) - (9 30 31 28) - (43 42 38 39) - (8 12 13 9) - (9 13 34 30) - (42 46 47 38) - (38 47 60 58) - (12 16 17 13) - (13 17 36 34) - (34 36 50 46) - (46 50 51 47) - (47 51 62 60) - ); - } - - back - { - type empty; - faces - ( - (4 5 6 7) - (7 6 22 23) - (23 22 56 57) - (5 10 11 6) - (6 11 29 26) - (6 26 27 22) - (27 41 40 22) - (22 40 59 56) - (11 32 33 29) - (45 44 40 41) - (10 14 15 11) - (11 15 35 32) - (44 48 49 40) - (40 49 61 59) - (14 18 19 15) - (15 19 37 35) - (35 37 52 48) - (48 52 53 49) - (49 53 63 61) - ); - } - - inlet - { - type patch; - faces - ( - ( 0 4 7 3) - ( 3 7 23 21) - (21 23 57 55) - ); - } - - outlet - { - type patch; - faces - ( - (16 18 19 17) - (17 19 37 36) - (36 37 52 50) - (50 52 53 51) - (51 53 63 62) - ); - } - - top - { - type wall; - faces - ( - (55 54 56 57) - (54 58 59 56) - (58 60 61 59) - (60 62 63 61) - ); - } - - bottom - { - type wall; - faces - ( - (0 1 5 4) - (1 8 10 5) - (8 12 14 10) - (12 16 18 14) - ); - } - - flap - { - type wall; - faces - ( - (31 30 32 33) - (30 34 35 32) - (34 35 48 46) - (42 46 48 44) - (43 42 44 45) - ); - } - - cylinder - { - type wall; - faces - ( - (24 28 29 26) - (28 31 33 29) - (43 39 41 45) - (39 25 27 41) - (25 24 26 27) - ); - } -); diff --git a/turek-hron-fsi3/fluid-openfoam/system/controlDict b/turek-hron-fsi3/fluid-openfoam/system/controlDict deleted file mode 100644 index 3091c434..00000000 --- a/turek-hron-fsi3/fluid-openfoam/system/controlDict +++ /dev/null @@ -1,56 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object controlDict; -} - -application pimpleFoam; // latest OpenFOAM -// application pimpleDyMFoam; // OpenFOAM v1712, OpenFOAM 5.x, or older - -startFrom startTime; - -startTime 0; - -stopAt endTime; - -endTime 15; - -deltaT 1e-3; - -writeControl adjustableRunTime; - -writeInterval 0.1; - -purgeWrite 0; - -writeFormat ascii; - -writePrecision 10; - -writeCompression off; - -timeFormat general; - -timePrecision 8; - -functions -{ - forces - { - type forces; - libs ( "libforces.so" ); - patches (cylinder flap); - rho rhoInf; - log true; - rhoInf 1000; - CofR (0 0 0); - } - - preCICE_Adapter - { - type preciceAdapterFunctionObject; - libs ("libpreciceAdapterFunctionObject.so"); - } -} diff --git a/turek-hron-fsi3/fluid-openfoam/system/decomposeParDict b/turek-hron-fsi3/fluid-openfoam/system/decomposeParDict deleted file mode 100644 index 85cf083c..00000000 --- a/turek-hron-fsi3/fluid-openfoam/system/decomposeParDict +++ /dev/null @@ -1,23 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object decomposeParDict; -} - -numberOfSubdomains 3; - -method hierarchical; -hierarchicalCoeffs -{ - n (3 1 1); - delta 0.001; - order xyz; -} - -distributed false; -roots -( -); - diff --git a/turek-hron-fsi3/fluid-openfoam/system/fvSchemes b/turek-hron-fsi3/fluid-openfoam/system/fvSchemes deleted file mode 100644 index dac95a86..00000000 --- a/turek-hron-fsi3/fluid-openfoam/system/fvSchemes +++ /dev/null @@ -1,39 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object fvSchemes; -} - -ddtSchemes -{ - default backward; -} - -gradSchemes -{ - default cellLimited Gauss linear 1; -} - -divSchemes -{ - default none; - div(phi,U) Gauss linearUpwind grad(U); - div((nuEff*dev2(T(grad(U))))) Gauss linear; -} - -interpolationSchemes -{ - default linear; -} - -laplacianSchemes -{ - default Gauss linear corrected; -} - -snGradSchemes -{ - default corrected; -} diff --git a/turek-hron-fsi3/fluid-openfoam/system/fvSolution b/turek-hron-fsi3/fluid-openfoam/system/fvSolution deleted file mode 100644 index aa4449df..00000000 --- a/turek-hron-fsi3/fluid-openfoam/system/fvSolution +++ /dev/null @@ -1,125 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object fvSolution; -} - -solvers -{ - p - { - solver GAMG; - tolerance 1e-6; - relTol 1e-5; - smoother DICGaussSeidel; - } - - pFinal - { - $p; - tolerance 1e-07; - relTol 0; - } - - pcorr - { - solver GAMG; - tolerance 1e-5; - relTol 1e-4; - smoother GaussSeidel; - } - - pcorrFinal - { - $pcorr; - relTol 0; - } - - phi - { - $p; - } - - "(U|cellDisplacement)" - { - solver smoothSolver; - smoother symGaussSeidel; - tolerance 1e-8; - relTol 1e-6; - } - - "(U|cellDisplacement)Final" - { - $U; - relTol 0; - } -} - -PIMPLE -{ - nOuterCorrectors 50; - nCorrectors 2; - nNonOrthogonalCorrectors 1; - tolerance 1.0e-12; - - correctPhi yes; - relTol 1e-4; - pisoTol 1e-6; - consistent true; - - // OpenFOAM (.com), OpenFOAM 5 or older (.org) - residualControl - { - U - { - tolerance 1e-5; - relTol 0; - } - - p - { - tolerance 1e-5; - relTol 0; - } - } - - // OpenFOAM 6, 7, 8 (.org) - // see also https://bugs.openfoam.org/view.php?id=3336 - /* - outerResidualControl - { - U 1e-5; - p 1e-5; - } - */ - - // OpenFOAM 9 (.org) or newer - // see also https://github.com/OpenFOAM/OpenFOAM-dev/commit/4c8122783aedaa7dadf0486163a98350e625db32 - /* - outerCorrectorResidualControl - { - U - { - tolerance 1e-5; - relTol 0; - } - - p - { - tolerance 1e-5; - relTol 0; - } - } - */ - -} -PISO -{ - nNonOrthogonalCorrectors 1; -} -potentialFlow -{ - nNonOrthogonalCorrectors 1; -} diff --git a/turek-hron-fsi3/fluid-openfoam/system/preciceDict-dealii b/turek-hron-fsi3/fluid-openfoam/system/preciceDict-dealii deleted file mode 100644 index 69511d2b..00000000 --- a/turek-hron-fsi3/fluid-openfoam/system/preciceDict-dealii +++ /dev/null @@ -1,52 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object preciceDict; -} - -preciceConfig "../precice-config.xml"; - -participant Fluid; - -modules (FSI); - -interfaces -{ - Interface1 - { - mesh Fluid-Mesh-Centers; - patches (flap); - locations faceCenters; - - readData - ( - ); - - writeData - ( - Stress - ); - }; - Interface2 - { - mesh Fluid-Mesh-Nodes; - patches (flap); - locations faceNodes; - - readData - ( - Displacement - ); - - writeData - ( - ); - }; -}; - -FSI -{ - rho rho [1 -3 0 0 0 0 0] 1000; -} diff --git a/turek-hron-fsi3/fluid-openfoam/system/preciceDict-fenics b/turek-hron-fsi3/fluid-openfoam/system/preciceDict-fenics deleted file mode 100644 index 2a2b63d9..00000000 --- a/turek-hron-fsi3/fluid-openfoam/system/preciceDict-fenics +++ /dev/null @@ -1,52 +0,0 @@ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object preciceDict; -} - -preciceConfig "../precice-config.xml"; - -participant Fluid; - -modules (FSI); - -interfaces -{ - Interface1 - { - mesh Fluid-Mesh-Centers; - patches (flap); - locations faceCenters; - - readData - ( - ); - - writeData - ( - Force - ); - }; - Interface2 - { - mesh Fluid-Mesh-Nodes; - patches (flap); - locations faceNodes; - - readData - ( - Displacement - ); - - writeData - ( - ); - }; -}; - -FSI -{ - rho rho [1 -3 0 0 0 0 0] 1000; -} diff --git a/turek-hron-fsi3/images/tutorials-turek-hron-fsi3-precice-config.png b/turek-hron-fsi3/images/tutorials-turek-hron-fsi3-precice-config.png deleted file mode 100644 index e74878ef..00000000 Binary files a/turek-hron-fsi3/images/tutorials-turek-hron-fsi3-precice-config.png and /dev/null differ diff --git a/turek-hron-fsi3/images/tutorials-turek-hron-fsi3-setup.png b/turek-hron-fsi3/images/tutorials-turek-hron-fsi3-setup.png deleted file mode 100644 index 26f3ff18..00000000 Binary files a/turek-hron-fsi3/images/tutorials-turek-hron-fsi3-setup.png and /dev/null differ diff --git a/turek-hron-fsi3/images/tutorials-turek-hron-fsi3-tip-plot.png b/turek-hron-fsi3/images/tutorials-turek-hron-fsi3-tip-plot.png deleted file mode 100644 index ff477989..00000000 Binary files a/turek-hron-fsi3/images/tutorials-turek-hron-fsi3-tip-plot.png and /dev/null differ diff --git a/turek-hron-fsi3/precice-config-dealii.xml b/turek-hron-fsi3/precice-config-dealii.xml deleted file mode 100644 index 885de639..00000000 --- a/turek-hron-fsi3/precice-config-dealii.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/turek-hron-fsi3/precice-config-fenics.xml b/turek-hron-fsi3/precice-config-fenics.xml deleted file mode 100644 index 29215591..00000000 --- a/turek-hron-fsi3/precice-config-fenics.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/turek-hron-fsi3/prep_dealii.sh b/turek-hron-fsi3/prep_dealii.sh deleted file mode 100755 index d75aa2d1..00000000 --- a/turek-hron-fsi3/prep_dealii.sh +++ /dev/null @@ -1,2 +0,0 @@ -cp precice-config-dealii.xml precice-config.xml -cp fluid-openfoam/system/preciceDict-dealii fluid-openfoam/system/preciceDict diff --git a/turek-hron-fsi3/prep_fenics.sh b/turek-hron-fsi3/prep_fenics.sh deleted file mode 100755 index c856338d..00000000 --- a/turek-hron-fsi3/prep_fenics.sh +++ /dev/null @@ -1,2 +0,0 @@ -cp precice-config-fenics.xml precice-config.xml -cp fluid-openfoam/system/preciceDict-fenics fluid-openfoam/system/preciceDict diff --git a/turek-hron-fsi3/solid-dealii/clean.sh b/turek-hron-fsi3/solid-dealii/clean.sh deleted file mode 100755 index 4fc36445..00000000 --- a/turek-hron-fsi3/solid-dealii/clean.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env sh -set -e -u - -. ../../tools/cleaning-tools.sh - -clean_dealii . diff --git a/turek-hron-fsi3/solid-dealii/parameters.prm b/turek-hron-fsi3/solid-dealii/parameters.prm deleted file mode 100644 index b725e370..00000000 --- a/turek-hron-fsi3/solid-dealii/parameters.prm +++ /dev/null @@ -1,81 +0,0 @@ -# Listing of Parameters -# Dimensional quantities are in SI units -# -------------------------------------- - -subsection Time - # End time - set End time = 15 - - # Time step size - set Time step size = 0.001 - - # Write results every x timesteps - set Output interval = 100 - - # Output folder - set Output folder = dealii-output -end - -subsection Discretization - # Polynomial degree of the FE system - set Polynomial degree = 4 -end - -subsection System properties - # Poisson's ratio - set Poisson's ratio = 0.4 - - # Shear modulus - set Shear modulus = 2.0e6 - - # Density - set rho = 1000 - - # Body forces x,y,z - set body forces = 0.0,0.0,0.0 -end - -subsection Solver - # Structural model to be used: linear or neo-Hookean - set Model = neo-Hookean - - # Linear solver: CG or Direct - set Solver type = Direct - - # Max CG solver iterations (multiples of the system matrix size) - # In 2D, this value is best set at 2. In 3D, a value of 1 works fine. - set Max iteration multiplier = 1 - - # Relative drop criterion for CG solver residual (multiplied by residual norm, ignored if Model == linear or solver == direct) - # Hard-coded to absolute criterion of 1e-10 for the linear model. - set Residual = 1e-6 - - # Number of Newton-Raphson iterations allowed (ignored if Model == linear) - set Max iterations Newton-Raphson = 10 - - # Relative displacement error tolerance for non-linear iteration (ignored if Model == linear) - set Tolerance displacement = 1.0e-6 - - # Relative force residual tolerance for non-linear iteration (ignored if Model == linear) - set Tolerance force = 1.0e-9 -end - -subsection precice configuration - # Cases: FSI3 or PF for perpendicular flap - set Scenario = FSI3 - - # Name of the precice configuration file - set precice config-file = ../precice-config.xml - - # Name of the participant in the precice-config.xml file - set Participant name = Solid - - # Name of the coupling mesh in the precice-config.xml file - set Mesh name = Solid-Mesh - - # Name of the read data in the precice-config.xml file - set Read data name = Stress - - # Name of the write data in the precice-config.xml file - set Write data name = Displacement -end diff --git a/turek-hron-fsi3/solid-dealii/run.sh b/turek-hron-fsi3/solid-dealii/run.sh deleted file mode 120000 index 3db351e7..00000000 --- a/turek-hron-fsi3/solid-dealii/run.sh +++ /dev/null @@ -1 +0,0 @@ -../../tools/run-dealii.sh \ No newline at end of file diff --git a/turek-hron-fsi3/solid-fenics/clean.sh b/turek-hron-fsi3/solid-fenics/clean.sh deleted file mode 100755 index d3f3318b..00000000 --- a/turek-hron-fsi3/solid-fenics/clean.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env sh -set -e -u - -. ../../tools/cleaning-tools.sh - -clean_fenics . diff --git a/turek-hron-fsi3/solid-fenics/precice-adapter-config-fsi-s.json b/turek-hron-fsi3/solid-fenics/precice-adapter-config-fsi-s.json deleted file mode 100644 index 85d1d5c9..00000000 --- a/turek-hron-fsi3/solid-fenics/precice-adapter-config-fsi-s.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "participant_name": "Solid", - "config_file_name": "../precice-config.xml", - "interface": { - "coupling_mesh_name": "Solid-Mesh", - "write_data_name": "Displacement", - "read_data_name": "Force" - } -} diff --git a/turek-hron-fsi3/solid-fenics/requirements.txt b/turek-hron-fsi3/solid-fenics/requirements.txt deleted file mode 100644 index 72bfb5dc..00000000 --- a/turek-hron-fsi3/solid-fenics/requirements.txt +++ /dev/null @@ -1,11 +0,0 @@ -fenicsprecice~=2.2 -numpy >1, <2 -matplotlib - -# Assuming FEniCS from ppa:fenics-packages/fenics was installed https://fenicsproject.org/download/archive/ -# Use --system-site-packages in venv -fenics-dijitso~=2019.0 -fenics-dolfin~=2019.0 -fenics-ffc~=2019.0 -fenics-fiat~=2019.0 -fenics-ufl-legacy~=2022.0 \ No newline at end of file diff --git a/turek-hron-fsi3/solid-fenics/run_WI.sh b/turek-hron-fsi3/solid-fenics/run_WI.sh deleted file mode 100755 index 032cd009..00000000 --- a/turek-hron-fsi3/solid-fenics/run_WI.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -set -e -u - -. ../../tools/log.sh -exec > >(tee --append "$LOGFILE") 2>&1 - -python3 -m venv --system-site-packages .venv -. .venv/bin/activate -pip install -r requirements.txt && pip freeze > pip-installed-packages.log - -python3 solid.py - -close_log diff --git a/turek-hron-fsi3/solid-fenics/run_legacy.sh b/turek-hron-fsi3/solid-fenics/run_legacy.sh deleted file mode 100755 index edbdf89e..00000000 --- a/turek-hron-fsi3/solid-fenics/run_legacy.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -set -e -u - -. ../../tools/log.sh -exec > >(tee --append "$LOGFILE") 2>&1 - -python3 -m venv --system-site-packages .venv -. .venv/bin/activate -pip install -r requirements.txt && pip freeze > pip-installed-packages.log - -python3 solid.py --legacy - -close_log diff --git a/turek-hron-fsi3/solid-fenics/solid.py b/turek-hron-fsi3/solid-fenics/solid.py deleted file mode 100644 index fe59f426..00000000 --- a/turek-hron-fsi3/solid-fenics/solid.py +++ /dev/null @@ -1,262 +0,0 @@ -# Import required libs -from fenics import Constant, Function, AutoSubDomain, RectangleMesh, VectorFunctionSpace, interpolate, \ - TrialFunction, TestFunction, Point, Expression, DirichletBC, nabla_grad, \ - Identity, inner, dx, sym, grad, lhs, rhs, File, solve, assemble_system, div - -import numpy as np -from fenicsprecice import Adapter -from enum import Enum - -from argparse import ArgumentParser - -parser = ArgumentParser() -parser.add_argument('--legacy', default=False, action='store_true') - -args = parser.parse_args() - -# Beam geometry -dim = 2 # number of dimensions -L = 0.35 # length -H = 0.02 # height - -y_bottom = 0.2 - 0.5 * H # y coordinate of bottom surface of beam -y_top = y_bottom + H # y coordinate of top surface of beam -x_left = 0.25 # x coordinate of left surface of beam -x_right = x_left + L # x coordinate of right surface of beam - - -# define the two inside functions to determine the boundaries: clamped Dirichlet and coupling Neumann Boundary -def left_boundary(x, on_boundary): - """ - inside-function for the clamped Dirichlet Boundary. - - Apply Dirichlet boundary on left part of the beam. - """ - return on_boundary and abs(x[0] - x_left) < tol # left boundary of beam - - -def remaining_boundary(x, on_boundary): - """ - inside-function for the coupling Neumann Boundary. - - Apply Neumann boundary on top, bottom and right (=remaining) part of the beam. - """ - return on_boundary and (abs(x[1] - y_top) < tol or # top boundary of beam - abs(x[1] - y_bottom) < tol or # bottom boundary of beam - abs(x[0] - x_right) < tol) # right boundary of beam - - -# Numerical properties -tol = 1E-14 - -# Beam material properties -rho = 1000 # density -E = 5600000.0 # Young's modulus -nu = 0.4 # Poisson's ratio -lambda_ = Constant(E * nu / ((1.0 + nu) * (1.0 - 2.0 * nu))) # first Lame constant -mu = Constant(E / (2.0 * (1.0 + nu))) # second Lame constant - -# create Mesh -n_x_Direction = 20 # DoFs in x direction -n_y_Direction = 4 # DoFs in y direction -mesh = RectangleMesh(Point(x_left, y_bottom), Point(x_right, y_top), n_x_Direction, n_y_Direction) - -# create Function Space -V = VectorFunctionSpace(mesh, 'P', 2) - -# Trial and Test Functions -du = TrialFunction(V) -v = TestFunction(V) - -# displacement fields -u_np1 = Function(V) -saved_u_old = Function(V) - -# function known from previous timestep -u_n = Function(V) -v_n = Function(V) -a_n = Function(V) - -# initial value for force and displacement field -f_N_function = interpolate(Expression(("1", "0"), degree=1), V) -u_function = interpolate(Expression(("0", "0"), degree=1), V) - -# define coupling boundary -coupling_boundary = AutoSubDomain(remaining_boundary) - -# create Adapter -precice = Adapter(adapter_config_filename="precice-adapter-config-fsi-s.json") - -# create subdomains used by the adapter -clamped_boundary_domain = AutoSubDomain(left_boundary) -force_boundary = AutoSubDomain(remaining_boundary) - -# Initialize the coupling interface -# Function space V is passed twice as both read and write functions are defined using the same space -precice.initialize(coupling_boundary, read_function_space=V, write_object=V, fixed_boundary=clamped_boundary_domain) - -precice_dt = precice.get_max_time_step_size() -fenics_dt = precice_dt -dt = Constant(np.min([precice_dt, fenics_dt])) - -# alpha method parameters -alpha_m = Constant(0.2) -alpha_f = Constant(0.4) -# alpha_m = Constant(0) -# alpha_f = Constant(0) - -""" -Check requirements for alpha_m and alpha_f from - Chung, J., and Hulbert, G. M. (June 1, 1993). "A Time Integration Algorithm for Structural Dynamics With Improved Numerical Dissipation: - The Generalized-α Method." ASME. J. Appl. Mech. June 1993; 60(2): 371–375. https://doi.org/10.1115/1.2900803 -""" -assert (float(alpha_m) <= float(alpha_f)) -assert (float(alpha_f) <= 0.5) - -gamma = Constant(0.5 + alpha_f - alpha_m) -beta = Constant((gamma + 0.5) ** 2 * 0.25) - -# clamp (u == 0) the beam at the left -bc = DirichletBC(V, Constant((0, 0)), left_boundary) - - -# Define strain -def epsilon(u): - return 0.5 * (nabla_grad(u) + nabla_grad(u).T) - - -# Define Stress tensor -def sigma(u): - return lambda_ * div(u) * Identity(dim) + 2 * mu * epsilon(u) - - -# Define Mass form -def m(u, v): - return rho * inner(u, v) * dx - - -# Elastic stiffness form -def k(u, v): - return inner(sigma(u), sym(grad(v))) * dx - - -def update_a(u, u_old, v_old, a_old, ufl=True): - if ufl: - dt_ = dt - beta_ = beta - else: - dt_ = float(dt) - beta_ = float(beta) - - return (u - u_old - dt_ * v_old) / beta / dt_ ** 2 - .5 * (1 - 2 * beta_) / beta_ * a_old - - -def update_v(a, u_old, v_old, a_old, ufl=True): - if ufl: - dt_ = dt - gamma_ = gamma - else: - dt_ = float(dt) - gamma_ = float(gamma) - - return v_old + dt_ * ((1 - gamma_) * a_old + gamma_ * a) - - -def update_fields(u, u_old, v_old, a_old): - """Update all fields at the end of a timestep.""" - u_vec, u0_vec = u.vector(), u_old.vector() - v0_vec, a0_vec = v_old.vector(), a_old.vector() - - # call update functions - a_vec = update_a(u_vec, u0_vec, v0_vec, a0_vec, ufl=False) - v_vec = update_v(a_vec, u0_vec, v0_vec, a0_vec, ufl=False) - - # assign u->u_old - v_old.vector()[:], a_old.vector()[:] = v_vec, a_vec - u_old.vector()[:] = u.vector() - - -def avg(x_old, x_new, alpha): - return alpha * x_old + (1 - alpha) * x_new - - -# residual -a_np1 = update_a(du, u_n, v_n, a_n, ufl=True) -v_np1 = update_v(a_np1, u_n, v_n, a_n, ufl=True) - -res = m(avg(a_n, a_np1, alpha_m), v) + k(avg(u_n, du, alpha_f), v) - -a_form = lhs(res) -L_form = rhs(res) - -# Prepare for time-stepping -t = 0.0 -n = 0 -E_ext = 0 - -displacement_out = File("output/u_fsi.pvd") - -u_n.rename("Displacement", "") -u_np1.rename("Displacement", "") -displacement_out << u_n - -# time loop for coupling -while precice.is_coupling_ongoing(): - - if precice.requires_writing_checkpoint(): # write checkpoint - precice.store_checkpoint((u_n, v_n, a_n), t, n) - - precice_dt = precice.get_max_time_step_size() - dt = Constant(np.min([precice_dt, fenics_dt])) - - # read data from preCICE and get a new coupling expression - if(args.legacy): - # should break around 1s according to Hertrich2019; actually breaks before 0.5 according to Rodenberg2025 - read_data = precice.read_data(dt) - else: - # sample force F at $F(t_{n+1-\alpha_f})$ (see generalized alpha paper) - read_data = precice.read_data((1 - float(alpha_f)) * dt) - - # Update the point sources on the coupling boundary with the new read data - Forces_x, Forces_y = precice.get_point_sources(read_data) - - A, b = assemble_system(a_form, L_form, bc) - - b_forces = b.copy() # b is the same for every iteration, only forces change - - for ps in Forces_x: - ps.apply(b_forces) - for ps in Forces_y: - ps.apply(b_forces) - - assert (b is not b_forces) - solve(A, u_np1.vector(), b_forces) - - # Write new displacements to preCICE - precice.write_data(u_np1) - - # Call to advance coupling, also returns the optimum time step value - precice.advance(float(dt)) - - # Either revert to old step if timestep has not converged or move to next timestep - if precice.requires_reading_checkpoint(): # roll back to checkpoint - uva_cp, t_cp, n_cp = precice.retrieve_checkpoint() - u_cp, v_cp, a_cp = uva_cp - u_n.assign(u_cp) - v_n.assign(v_cp) - a_n.assign(a_cp) - t = t_cp - n = n_cp - else: - update_fields(u_np1, u_n, v_n, a_n) - u_n.assign(u_np1) - t += float(dt) - n += 1 - - if precice.is_time_window_complete(): - if n % 20 == 0: - displacement_out << (u_n, t) - -displacement_out << u_n - -precice.finalize()