From d33fc5ef671252486c1a189ac1012203191cd345 Mon Sep 17 00:00:00 2001 From: Benjamin Uekermann Date: Wed, 20 Mar 2024 16:12:56 +0100 Subject: [PATCH 1/3] Make oscillator python consistent --- .../{python => mass-left-python}/clean.sh | 0 oscillator/mass-left-python/run.sh | 4 ++++ oscillator/mass-right-python/clean.sh | 8 +++++++ oscillator/mass-right-python/run.sh | 4 ++++ oscillator/python/run.sh | 24 ------------------- .../{python => solver-python}/oscillator.py | 0 .../problemDefinition.py | 0 .../{python => solver-python}/timeSteppers.py | 0 8 files changed, 16 insertions(+), 24 deletions(-) rename oscillator/{python => mass-left-python}/clean.sh (100%) create mode 100755 oscillator/mass-left-python/run.sh create mode 100755 oscillator/mass-right-python/clean.sh create mode 100755 oscillator/mass-right-python/run.sh delete mode 100755 oscillator/python/run.sh rename oscillator/{python => solver-python}/oscillator.py (100%) rename oscillator/{python => solver-python}/problemDefinition.py (100%) rename oscillator/{python => solver-python}/timeSteppers.py (100%) diff --git a/oscillator/python/clean.sh b/oscillator/mass-left-python/clean.sh similarity index 100% rename from oscillator/python/clean.sh rename to oscillator/mass-left-python/clean.sh diff --git a/oscillator/mass-left-python/run.sh b/oscillator/mass-left-python/run.sh new file mode 100755 index 000000000..2784cfeba --- /dev/null +++ b/oscillator/mass-left-python/run.sh @@ -0,0 +1,4 @@ +#!/bin/sh +set -e -u + +python3 ../solver-python/oscillator.py Mass-Left \ No newline at end of file diff --git a/oscillator/mass-right-python/clean.sh b/oscillator/mass-right-python/clean.sh new file mode 100755 index 000000000..c7e3552ac --- /dev/null +++ b/oscillator/mass-right-python/clean.sh @@ -0,0 +1,8 @@ +#!/bin/sh +set -e -u + +. ../../tools/cleaning-tools.sh + +rm -rfv ./output/ + +clean_precice_logs . diff --git a/oscillator/mass-right-python/run.sh b/oscillator/mass-right-python/run.sh new file mode 100755 index 000000000..775d6a83e --- /dev/null +++ b/oscillator/mass-right-python/run.sh @@ -0,0 +1,4 @@ +#!/bin/sh +set -e -u + +python3 ../solver-python/oscillator.py Mass-Right \ No newline at end of file diff --git a/oscillator/python/run.sh b/oscillator/python/run.sh deleted file mode 100755 index f20c841ec..000000000 --- a/oscillator/python/run.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -set -e -u - -usage() { echo "Usage: cmd [-l] [-r]" 1>&2; exit 1; } - -# Check if no input argument was provided -if [ -z "$*" ] ; then - usage -fi - -# Select appropriate case -while getopts ":lr" opt; do - case ${opt} in - l) - python3 oscillator.py Mass-Left - ;; - r) - python3 oscillator.py Mass-Right - ;; - *) - usage - ;; - esac -done \ No newline at end of file diff --git a/oscillator/python/oscillator.py b/oscillator/solver-python/oscillator.py similarity index 100% rename from oscillator/python/oscillator.py rename to oscillator/solver-python/oscillator.py diff --git a/oscillator/python/problemDefinition.py b/oscillator/solver-python/problemDefinition.py similarity index 100% rename from oscillator/python/problemDefinition.py rename to oscillator/solver-python/problemDefinition.py diff --git a/oscillator/python/timeSteppers.py b/oscillator/solver-python/timeSteppers.py similarity index 100% rename from oscillator/python/timeSteppers.py rename to oscillator/solver-python/timeSteppers.py From 7cfc11e66b725cfd1199bf43761a11ad27de8f02 Mon Sep 17 00:00:00 2001 From: Benjamin Uekermann Date: Wed, 20 Mar 2024 16:36:54 +0100 Subject: [PATCH 2/3] Make fmi oscillator case consistent --- oscillator/fmi/run.sh | 40 ------------------- oscillator/{fmi => mass-left-fmi}/clean.sh | 0 .../fmi-settings.json | 2 +- .../precice-settings.json | 0 oscillator/mass-left-fmi/run.sh | 18 +++++++++ oscillator/mass-right-fmi/clean.sh | 8 ++++ .../fmi-settings.json | 2 +- .../precice-settings.json | 0 oscillator/mass-right-fmi/run.sh | 18 +++++++++ .../{fmi => solver-fmi}/calculate-error.py | 0 .../{fmi => solver-fmi}/fmu/CMakeLists.txt | 0 .../fmu/Oscillator/FMI2.xml | 0 .../fmu/Oscillator/FMI3.xml | 0 .../fmu/Oscillator/buildDescription.xml | 0 .../fmu/Oscillator/config.h | 0 .../fmu/Oscillator/model.c | 0 .../fmu/Oscillator/readme.html | 0 oscillator/{fmi => solver-fmi}/fmu/README.md | 0 .../{fmi => solver-fmi}/fmu/include/FMI.h | 0 .../{fmi => solver-fmi}/fmu/include/FMI2.h | 0 .../{fmi => solver-fmi}/fmu/include/FMI3.h | 0 .../fmu/include/cosimulation.h | 0 .../fmu/include/fmi2FunctionTypes.h | 0 .../fmu/include/fmi2Functions.h | 0 .../fmu/include/fmi2TypesPlatform.h | 0 .../fmu/include/fmi3FunctionTypes.h | 0 .../fmu/include/fmi3Functions.h | 0 .../fmu/include/fmi3PlatformTypes.h | 0 .../fmu/include/fmiFunctions.h | 0 .../fmu/include/fmiModelFunctions.h | 0 .../fmu/include/fmiModelTypes.h | 0 .../fmu/include/fmiPlatformTypes.h | 0 .../{fmi => solver-fmi}/fmu/include/model.h | 0 .../fmu/set_tool_version.py | 0 oscillator/{fmi => solver-fmi}/fmu/src/FMI.c | 0 oscillator/{fmi => solver-fmi}/fmu/src/FMI2.c | 0 oscillator/{fmi => solver-fmi}/fmu/src/FMI3.c | 0 .../fmu/src/cosimulation.c | 0 .../fmu/src/fmi2Functions.c | 0 .../fmu/src/fmi3Functions.c | 0 .../fmu/thirdparty/LICENSE.txt | 0 41 files changed, 46 insertions(+), 42 deletions(-) delete mode 100755 oscillator/fmi/run.sh rename oscillator/{fmi => mass-left-fmi}/clean.sh (100%) rename oscillator/{fmi/MassLeft => mass-left-fmi}/fmi-settings.json (90%) rename oscillator/{fmi/MassLeft => mass-left-fmi}/precice-settings.json (100%) create mode 100755 oscillator/mass-left-fmi/run.sh create mode 100755 oscillator/mass-right-fmi/clean.sh rename oscillator/{fmi/MassRight => mass-right-fmi}/fmi-settings.json (90%) rename oscillator/{fmi/MassRight => mass-right-fmi}/precice-settings.json (100%) create mode 100755 oscillator/mass-right-fmi/run.sh rename oscillator/{fmi => solver-fmi}/calculate-error.py (100%) rename oscillator/{fmi => solver-fmi}/fmu/CMakeLists.txt (100%) rename oscillator/{fmi => solver-fmi}/fmu/Oscillator/FMI2.xml (100%) rename oscillator/{fmi => solver-fmi}/fmu/Oscillator/FMI3.xml (100%) rename oscillator/{fmi => solver-fmi}/fmu/Oscillator/buildDescription.xml (100%) rename oscillator/{fmi => solver-fmi}/fmu/Oscillator/config.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/Oscillator/model.c (100%) rename oscillator/{fmi => solver-fmi}/fmu/Oscillator/readme.html (100%) rename oscillator/{fmi => solver-fmi}/fmu/README.md (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/FMI.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/FMI2.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/FMI3.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/cosimulation.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/fmi2FunctionTypes.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/fmi2Functions.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/fmi2TypesPlatform.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/fmi3FunctionTypes.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/fmi3Functions.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/fmi3PlatformTypes.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/fmiFunctions.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/fmiModelFunctions.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/fmiModelTypes.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/fmiPlatformTypes.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/include/model.h (100%) rename oscillator/{fmi => solver-fmi}/fmu/set_tool_version.py (100%) rename oscillator/{fmi => solver-fmi}/fmu/src/FMI.c (100%) rename oscillator/{fmi => solver-fmi}/fmu/src/FMI2.c (100%) rename oscillator/{fmi => solver-fmi}/fmu/src/FMI3.c (100%) rename oscillator/{fmi => solver-fmi}/fmu/src/cosimulation.c (100%) rename oscillator/{fmi => solver-fmi}/fmu/src/fmi2Functions.c (100%) rename oscillator/{fmi => solver-fmi}/fmu/src/fmi3Functions.c (100%) rename oscillator/{fmi => solver-fmi}/fmu/thirdparty/LICENSE.txt (100%) diff --git a/oscillator/fmi/run.sh b/oscillator/fmi/run.sh deleted file mode 100755 index 3cc384bb9..000000000 --- a/oscillator/fmi/run.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -set -e -u - -usage() { echo "Usage: cmd [-l] [-r]" 1>&2; exit 1; } - -# Check if no input argument was provided -if [ -z "$*" ] ; then - usage -fi - -if [ ! -f Oscillator.fmu ]; then - cd fmu - rm -rf build - mkdir build - cd build - # Both FMI_VERSION=3 and FMI_VERSION=2 are supported - cmake -DFMI_TYPE=CS -DFMI_VERSION=3 .. - make - cp ./Oscillator.fmu ../.. - cd ../../ -fi - -# Select appropriate case -while getopts ":lr" opt; do - case ${opt} in - l) - fmiprecice ./MassLeft/fmi-settings.json MassLeft/precice-settings.json - python3 calculate-error.py MassLeft/fmi-settings.json MassLeft/precice-settings.json MassRight/fmi-settings.json MassRight/precice-settings.json Mass-Left - - ;; - r) - fmiprecice MassRight/fmi-settings.json MassRight/precice-settings.json - python3 calculate-error.py MassLeft/fmi-settings.json MassLeft/precice-settings.json MassRight/fmi-settings.json MassRight/precice-settings.json Mass-Right - - ;; - *) - usage - ;; - esac -done diff --git a/oscillator/fmi/clean.sh b/oscillator/mass-left-fmi/clean.sh similarity index 100% rename from oscillator/fmi/clean.sh rename to oscillator/mass-left-fmi/clean.sh diff --git a/oscillator/fmi/MassLeft/fmi-settings.json b/oscillator/mass-left-fmi/fmi-settings.json similarity index 90% rename from oscillator/fmi/MassLeft/fmi-settings.json rename to oscillator/mass-left-fmi/fmi-settings.json index 1b7006286..dc4d752c2 100644 --- a/oscillator/fmi/MassLeft/fmi-settings.json +++ b/oscillator/mass-left-fmi/fmi-settings.json @@ -10,7 +10,7 @@ "mass.a": -197.392088022 }, "simulation_params": { - "fmu_file_name": "./Oscillator.fmu", + "fmu_file_name": "../solver-fmi/Oscillator.fmu", "output_file_name": "./output/trajectory-Mass-Left.csv", "output": ["mass.u", "mass.v"], "fmu_read_data_names": ["force_in"], diff --git a/oscillator/fmi/MassLeft/precice-settings.json b/oscillator/mass-left-fmi/precice-settings.json similarity index 100% rename from oscillator/fmi/MassLeft/precice-settings.json rename to oscillator/mass-left-fmi/precice-settings.json diff --git a/oscillator/mass-left-fmi/run.sh b/oscillator/mass-left-fmi/run.sh new file mode 100755 index 000000000..23c150102 --- /dev/null +++ b/oscillator/mass-left-fmi/run.sh @@ -0,0 +1,18 @@ +#!/bin/sh +set -e -u + + +if [ ! -f ../solver-fmi/Oscillator.fmu ]; then + cd ../solver-fmi/fmu + rm -rf build + mkdir build + cd build + # Both FMI_VERSION=3 and FMI_VERSION=2 are supported + cmake -DFMI_TYPE=CS -DFMI_VERSION=3 .. + make + cp ./Oscillator.fmu ../.. + cd ../../../mass-left-fmi +fi + +fmiprecice fmi-settings.json precice-settings.json +python3 ../solver-fmi/calculate-error.py ../mass-left-fmi/fmi-settings.json ../mass-left-fmi/precice-settings.json ../mass-right-fmi/fmi-settings.json ../mass-right-fmi/precice-settings.json Mass-Left diff --git a/oscillator/mass-right-fmi/clean.sh b/oscillator/mass-right-fmi/clean.sh new file mode 100755 index 000000000..c7e3552ac --- /dev/null +++ b/oscillator/mass-right-fmi/clean.sh @@ -0,0 +1,8 @@ +#!/bin/sh +set -e -u + +. ../../tools/cleaning-tools.sh + +rm -rfv ./output/ + +clean_precice_logs . diff --git a/oscillator/fmi/MassRight/fmi-settings.json b/oscillator/mass-right-fmi/fmi-settings.json similarity index 90% rename from oscillator/fmi/MassRight/fmi-settings.json rename to oscillator/mass-right-fmi/fmi-settings.json index 3fdb5875b..fc59edc20 100644 --- a/oscillator/fmi/MassRight/fmi-settings.json +++ b/oscillator/mass-right-fmi/fmi-settings.json @@ -10,7 +10,7 @@ "mass.a": 157.913670417 }, "simulation_params": { - "fmu_file_name": "./Oscillator.fmu", + "fmu_file_name": "../solver-fmi/Oscillator.fmu", "output_file_name": "./output/trajectory-Mass-Right.csv", "output": ["mass.u", "mass.v"], "fmu_read_data_names": ["force_in"], diff --git a/oscillator/fmi/MassRight/precice-settings.json b/oscillator/mass-right-fmi/precice-settings.json similarity index 100% rename from oscillator/fmi/MassRight/precice-settings.json rename to oscillator/mass-right-fmi/precice-settings.json diff --git a/oscillator/mass-right-fmi/run.sh b/oscillator/mass-right-fmi/run.sh new file mode 100755 index 000000000..fd69b3d84 --- /dev/null +++ b/oscillator/mass-right-fmi/run.sh @@ -0,0 +1,18 @@ +#!/bin/sh +set -e -u + + +if [ ! -f ../solver-fmi/Oscillator.fmu ]; then + cd ../solver-fmi/fmu + rm -rf build + mkdir build + cd build + # Both FMI_VERSION=3 and FMI_VERSION=2 are supported + cmake -DFMI_TYPE=CS -DFMI_VERSION=3 .. + make + cp ./Oscillator.fmu ../.. + cd ../../../mass-right-fmi +fi + +fmiprecice fmi-settings.json precice-settings.json +python3 ../solver-fmi/calculate-error.py ../mass-left-fmi/fmi-settings.json ../mass-left-fmi/precice-settings.json ../mass-right-fmi/fmi-settings.json ../mass-right-fmi/precice-settings.json Mass-Right diff --git a/oscillator/fmi/calculate-error.py b/oscillator/solver-fmi/calculate-error.py similarity index 100% rename from oscillator/fmi/calculate-error.py rename to oscillator/solver-fmi/calculate-error.py diff --git a/oscillator/fmi/fmu/CMakeLists.txt b/oscillator/solver-fmi/fmu/CMakeLists.txt similarity index 100% rename from oscillator/fmi/fmu/CMakeLists.txt rename to oscillator/solver-fmi/fmu/CMakeLists.txt diff --git a/oscillator/fmi/fmu/Oscillator/FMI2.xml b/oscillator/solver-fmi/fmu/Oscillator/FMI2.xml similarity index 100% rename from oscillator/fmi/fmu/Oscillator/FMI2.xml rename to oscillator/solver-fmi/fmu/Oscillator/FMI2.xml diff --git a/oscillator/fmi/fmu/Oscillator/FMI3.xml b/oscillator/solver-fmi/fmu/Oscillator/FMI3.xml similarity index 100% rename from oscillator/fmi/fmu/Oscillator/FMI3.xml rename to oscillator/solver-fmi/fmu/Oscillator/FMI3.xml diff --git a/oscillator/fmi/fmu/Oscillator/buildDescription.xml b/oscillator/solver-fmi/fmu/Oscillator/buildDescription.xml similarity index 100% rename from oscillator/fmi/fmu/Oscillator/buildDescription.xml rename to oscillator/solver-fmi/fmu/Oscillator/buildDescription.xml diff --git a/oscillator/fmi/fmu/Oscillator/config.h b/oscillator/solver-fmi/fmu/Oscillator/config.h similarity index 100% rename from oscillator/fmi/fmu/Oscillator/config.h rename to oscillator/solver-fmi/fmu/Oscillator/config.h diff --git a/oscillator/fmi/fmu/Oscillator/model.c b/oscillator/solver-fmi/fmu/Oscillator/model.c similarity index 100% rename from oscillator/fmi/fmu/Oscillator/model.c rename to oscillator/solver-fmi/fmu/Oscillator/model.c diff --git a/oscillator/fmi/fmu/Oscillator/readme.html b/oscillator/solver-fmi/fmu/Oscillator/readme.html similarity index 100% rename from oscillator/fmi/fmu/Oscillator/readme.html rename to oscillator/solver-fmi/fmu/Oscillator/readme.html diff --git a/oscillator/fmi/fmu/README.md b/oscillator/solver-fmi/fmu/README.md similarity index 100% rename from oscillator/fmi/fmu/README.md rename to oscillator/solver-fmi/fmu/README.md diff --git a/oscillator/fmi/fmu/include/FMI.h b/oscillator/solver-fmi/fmu/include/FMI.h similarity index 100% rename from oscillator/fmi/fmu/include/FMI.h rename to oscillator/solver-fmi/fmu/include/FMI.h diff --git a/oscillator/fmi/fmu/include/FMI2.h b/oscillator/solver-fmi/fmu/include/FMI2.h similarity index 100% rename from oscillator/fmi/fmu/include/FMI2.h rename to oscillator/solver-fmi/fmu/include/FMI2.h diff --git a/oscillator/fmi/fmu/include/FMI3.h b/oscillator/solver-fmi/fmu/include/FMI3.h similarity index 100% rename from oscillator/fmi/fmu/include/FMI3.h rename to oscillator/solver-fmi/fmu/include/FMI3.h diff --git a/oscillator/fmi/fmu/include/cosimulation.h b/oscillator/solver-fmi/fmu/include/cosimulation.h similarity index 100% rename from oscillator/fmi/fmu/include/cosimulation.h rename to oscillator/solver-fmi/fmu/include/cosimulation.h diff --git a/oscillator/fmi/fmu/include/fmi2FunctionTypes.h b/oscillator/solver-fmi/fmu/include/fmi2FunctionTypes.h similarity index 100% rename from oscillator/fmi/fmu/include/fmi2FunctionTypes.h rename to oscillator/solver-fmi/fmu/include/fmi2FunctionTypes.h diff --git a/oscillator/fmi/fmu/include/fmi2Functions.h b/oscillator/solver-fmi/fmu/include/fmi2Functions.h similarity index 100% rename from oscillator/fmi/fmu/include/fmi2Functions.h rename to oscillator/solver-fmi/fmu/include/fmi2Functions.h diff --git a/oscillator/fmi/fmu/include/fmi2TypesPlatform.h b/oscillator/solver-fmi/fmu/include/fmi2TypesPlatform.h similarity index 100% rename from oscillator/fmi/fmu/include/fmi2TypesPlatform.h rename to oscillator/solver-fmi/fmu/include/fmi2TypesPlatform.h diff --git a/oscillator/fmi/fmu/include/fmi3FunctionTypes.h b/oscillator/solver-fmi/fmu/include/fmi3FunctionTypes.h similarity index 100% rename from oscillator/fmi/fmu/include/fmi3FunctionTypes.h rename to oscillator/solver-fmi/fmu/include/fmi3FunctionTypes.h diff --git a/oscillator/fmi/fmu/include/fmi3Functions.h b/oscillator/solver-fmi/fmu/include/fmi3Functions.h similarity index 100% rename from oscillator/fmi/fmu/include/fmi3Functions.h rename to oscillator/solver-fmi/fmu/include/fmi3Functions.h diff --git a/oscillator/fmi/fmu/include/fmi3PlatformTypes.h b/oscillator/solver-fmi/fmu/include/fmi3PlatformTypes.h similarity index 100% rename from oscillator/fmi/fmu/include/fmi3PlatformTypes.h rename to oscillator/solver-fmi/fmu/include/fmi3PlatformTypes.h diff --git a/oscillator/fmi/fmu/include/fmiFunctions.h b/oscillator/solver-fmi/fmu/include/fmiFunctions.h similarity index 100% rename from oscillator/fmi/fmu/include/fmiFunctions.h rename to oscillator/solver-fmi/fmu/include/fmiFunctions.h diff --git a/oscillator/fmi/fmu/include/fmiModelFunctions.h b/oscillator/solver-fmi/fmu/include/fmiModelFunctions.h similarity index 100% rename from oscillator/fmi/fmu/include/fmiModelFunctions.h rename to oscillator/solver-fmi/fmu/include/fmiModelFunctions.h diff --git a/oscillator/fmi/fmu/include/fmiModelTypes.h b/oscillator/solver-fmi/fmu/include/fmiModelTypes.h similarity index 100% rename from oscillator/fmi/fmu/include/fmiModelTypes.h rename to oscillator/solver-fmi/fmu/include/fmiModelTypes.h diff --git a/oscillator/fmi/fmu/include/fmiPlatformTypes.h b/oscillator/solver-fmi/fmu/include/fmiPlatformTypes.h similarity index 100% rename from oscillator/fmi/fmu/include/fmiPlatformTypes.h rename to oscillator/solver-fmi/fmu/include/fmiPlatformTypes.h diff --git a/oscillator/fmi/fmu/include/model.h b/oscillator/solver-fmi/fmu/include/model.h similarity index 100% rename from oscillator/fmi/fmu/include/model.h rename to oscillator/solver-fmi/fmu/include/model.h diff --git a/oscillator/fmi/fmu/set_tool_version.py b/oscillator/solver-fmi/fmu/set_tool_version.py similarity index 100% rename from oscillator/fmi/fmu/set_tool_version.py rename to oscillator/solver-fmi/fmu/set_tool_version.py diff --git a/oscillator/fmi/fmu/src/FMI.c b/oscillator/solver-fmi/fmu/src/FMI.c similarity index 100% rename from oscillator/fmi/fmu/src/FMI.c rename to oscillator/solver-fmi/fmu/src/FMI.c diff --git a/oscillator/fmi/fmu/src/FMI2.c b/oscillator/solver-fmi/fmu/src/FMI2.c similarity index 100% rename from oscillator/fmi/fmu/src/FMI2.c rename to oscillator/solver-fmi/fmu/src/FMI2.c diff --git a/oscillator/fmi/fmu/src/FMI3.c b/oscillator/solver-fmi/fmu/src/FMI3.c similarity index 100% rename from oscillator/fmi/fmu/src/FMI3.c rename to oscillator/solver-fmi/fmu/src/FMI3.c diff --git a/oscillator/fmi/fmu/src/cosimulation.c b/oscillator/solver-fmi/fmu/src/cosimulation.c similarity index 100% rename from oscillator/fmi/fmu/src/cosimulation.c rename to oscillator/solver-fmi/fmu/src/cosimulation.c diff --git a/oscillator/fmi/fmu/src/fmi2Functions.c b/oscillator/solver-fmi/fmu/src/fmi2Functions.c similarity index 100% rename from oscillator/fmi/fmu/src/fmi2Functions.c rename to oscillator/solver-fmi/fmu/src/fmi2Functions.c diff --git a/oscillator/fmi/fmu/src/fmi3Functions.c b/oscillator/solver-fmi/fmu/src/fmi3Functions.c similarity index 100% rename from oscillator/fmi/fmu/src/fmi3Functions.c rename to oscillator/solver-fmi/fmu/src/fmi3Functions.c diff --git a/oscillator/fmi/fmu/thirdparty/LICENSE.txt b/oscillator/solver-fmi/fmu/thirdparty/LICENSE.txt similarity index 100% rename from oscillator/fmi/fmu/thirdparty/LICENSE.txt rename to oscillator/solver-fmi/fmu/thirdparty/LICENSE.txt From 52a764ab5040b3fb1208698fa311f8db246a294d Mon Sep 17 00:00:00 2001 From: Benjamin Uekermann Date: Wed, 20 Mar 2024 16:54:39 +0100 Subject: [PATCH 3/3] Update README and post-processing --- oscillator/README.md | 14 +++++++------- oscillator/plot-trajectory.py | 6 ++++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/oscillator/README.md b/oscillator/README.md index 42322024f..aba9ee992 100644 --- a/oscillator/README.md +++ b/oscillator/README.md @@ -22,32 +22,32 @@ Note that this case applies a Schwarz-type coupling method and not (like most ot There are two different implementations: - *Python*: A solver using the preCICE [Python bindings](https://www.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 `. Using the option `-ts` allows you to pick the time stepping scheme being used. Available choices are Newmark beta, generalized alpha, explicit Runge Kutta 4, and implicit RadauIIA. The solver uses subcycling: Each participant performs 4 time steps in each time window. The data of these 4 substeps is then used by preCICE to create a third order B-spline interpolation (`waveform-degree="3"` in `precice-config.xml`). -- *FMI*: A solver using the [preCICE-FMI runner](https://github.com/precice/fmi-runner) (requires at least v0.2). The Runner executes the FMU model `Oscillator.fmu` for computation. The provided run script (see below) builds this model if not already there. If you want to change the model parameters or the initial conditions of the simulation, have a look inside the setting files for [MassLeft](https://github.com/precice/tutorials/tree/master/oscillator/fmi/MassLeft) and [MassRight](https://github.com/precice/tutorials/tree/master/oscillator/fmi/MassRight). For more information, please refer to [2]. +- *FMI*: A solver using the [preCICE-FMI runner](https://github.com/precice/fmi-runner) (requires at least v0.2). The Runner executes the FMU model `Oscillator.fmu` for computation. The provided run scripts (see below) build this model if not already there. For more information, please refer to [2]. ## Running the simulation Open two separate terminals and start both participants. For example, you can run a simulation where the left participant is computed in Python and the right participant is computed with FMI with these commands: ```bash -cd python -./run.sh -l +cd mass-left-python +./run.sh ``` and ```bash -cd fmi -./run.sh -r +cd mass-right-fmi +./run.sh ``` Of course, you can also use the same solver for both sides. ## Post-processing -Each simulation run creates two files containing position and velocity of the two masses over time. These files are called `trajectory-Mass-Left.csv` and `trajectory-Mass-Right.csv`. You can use the script `plot-trajectory.py` for post-processing. Type `python3 plot-trajectory --help` to see available options. You can, for example, plot the trajectory of the Python solver by running +Each simulation run creates two files containing position and velocity of the two masses over time. These files are called `trajectory-Mass-Left.csv` and `trajectory-Mass-Right.csv`. You can use the script `plot-trajectory.py` for post-processing. Type `python3 plot-trajectory --help` to see available options. You can, for example, plot the trajectory of the left mass of the Python solver by running ```bash -python3 plot-trajectory.py python/output/trajectory-Mass-Left.csv TRAJECTORY +python3 plot-trajectory.py mass-left-python/output/trajectory-Mass-Left.csv TRAJECTORY ``` The solvers allow you to study the effect of different time stepping schemes on energy conservation. Newmark beta conserves energy: diff --git a/oscillator/plot-trajectory.py b/oscillator/plot-trajectory.py index 53d3a11db..dd26e43c5 100644 --- a/oscillator/plot-trajectory.py +++ b/oscillator/plot-trajectory.py @@ -16,8 +16,10 @@ class PlotType(Enum): args = parser.parse_args() filename = args.csvFile -split_filename = filename.split('/') -solver = split_filename[0] +split_foldername = filename.split('/') +casename = split_foldername[0] +split_casename = casename.split('-') +solver = split_casename[-1] if solver == 'python': df = pd.read_csv(filename, delimiter=';')