diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b298d37..47114cc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,7 +42,7 @@ jobs: - name: Run vagrant up run: | - vagrant up --provider=${{ matrix.provider }} + VAGRANT_DISABLE_VBOXSYMLINKCREATE=1 vagrant up --provider=${{ matrix.provider }} - name: Package Vagrant box run: vagrant package --base "preCICE-VM" --output preCICE.box diff --git a/.gitignore b/.gitignore index 87f6b1f..a14106b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ .vagrant -vagrant \ No newline at end of file +vagrant + +# Editors +settings.json diff --git a/README.md b/README.md index f28ed0a..a52559f 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ You can afterwards also see and manage the produced VM in VirtualBox. A few things you may need: - The username and password are `vagrant`/`vagrant` -- The keyboard layout is US English (QWERTY). You can change this in [`install-basics.sh`](./install-basics.sh) or through the keyboard setting shortcut on `~/Desktop`. +- The keyboard layout is US English (QWERTY). You can change this in [`install-basics.sh`](./provisioning/install-basics.sh) or through the keyboard setting shortcut on `~/Desktop`. - Find scripts to install additional software on `~/Desktop/shared`. ### What else can I do? @@ -40,25 +40,29 @@ A few things you may need: ## What is included? -This box is based on the [generic/ubuntu2004](https://github.com/lavabit/robox/tree/master/scripts/ubuntu2004) base box and installs: +This box is based on the ~~[generic/ubuntu2004](https://github.com/lavabit/robox/tree/master/scripts/ubuntu2004)~~ [bento/ubuntu-20.04](https://github.com/chef/bento) base box and installs: - Xubuntu-core (Xfce desktop environment) and related tools - VirtualBox guest additions - Terminator (a nice split-window terminal emulator, find it in `Applications > System`) - Git, CMake, ccmake - Editors: nano, vim, gedit -- preCICE latest for the master branch -- preCICE config visualizer (master) +- Diff viewer: meld +- preCICE latest from the master branch (built in release-with-debug-info mode) +- preCICE config visualizer with its GUI (master) - preCICE Python bindings (PIP) - preCICE Julia bindings (Pkg) -- OpenFOAM v2112 and the OpenFOAM-preCICE adapter (master) +- preCICE Rust bindings (Cargo) +- preCICE FMI Runner (PIP) +- preCICE Micro Manager (PIP) +- OpenFOAM v2312 and the OpenFOAM-preCICE adapter (master) - deal.II 9.3 from the official backports and the deal.II-preCICE adapter (master) -- CalculiX 2.19 from source and the CalculiX-preCICE adapter (master) +- CalculiX 2.20 from source and the CalculiX-preCICE adapter (master) - FEniCS latest from the FEniCS PPA and the FEniCS-preCICE adapter (PIP) -- Nutils latest from PIP -- SU2 6.0.0 and the SU2-preCICE adapter (master) +- SU2 7.5.1 and the SU2-preCICE adapter (master) - code_aster 14.6 and the code_aster-preCICE adapter (master) -- DUNE 2.8 and the experimental DUNE-preCICE adapter (master) +- DUNE 2.9.1 and the experimental DUNE-preCICE adapter (main) +- DuMuX 3.8 and the DuMuX-preCICE adapter (v2.0.0) - ASTE (master) - Paraview from APT - Gnuplot @@ -117,6 +121,11 @@ vagrant box remove test-box If you require a more responsive experience, lower overhead, or exotic features such as GPU pass through, then the `libvirt` vagrant box is for you. This allows you to run the vagrant box via libvirt and QEMU as a Kernerl Virtual Machine (KVM). +> Note +> The libvirt variant does not work with the `bento/ubuntu-20.04` base image, but also the VirtualBox variant does not at the moment work with the `generic/ubuntu2004` image. +> Change the base image in the beginning of the Vagrantfile if you need this feature. +> See https://github.com/precice/vm/issues/83 for details. + To use this box, first install the vagrant plugin `vagrant-libvirt` following the [official installation instructions](https://github.com/vagrant-libvirt/vagrant-libvirt#installation). Then you follow the normal usage instructions above, but you need to tell vagrant to use the `libvirt` box by passing one additional option: ``` diff --git a/Vagrantfile b/Vagrantfile index 761339e..a2878d3 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -4,7 +4,9 @@ Vagrant.configure("2") do |config| # The generic/ images support virtualbox as well as libvirt and hyperv. # This allows us to create performance oriented images for Linux (libvirt) and Windows (hyperv). - config.vm.box = "generic/ubuntu2004" + # However, it does not build: https://github.com/precice/vm/issues/83 + # config.vm.box = "generic/ubuntu2004" + config.vm.box = "bento/ubuntu-20.04" # We don't want the box to automatically update every time it starts. # We can instead handle updates internally, without destroying the machine. @@ -46,11 +48,11 @@ Vagrant.configure("2") do |config| # Install solvers, adapters, and related tools config.vm.provision "shell", path: "provisioning/install-config-visualizer.sh", privileged: false config.vm.provision "shell", path: "provisioning/install-openfoam.sh", privileged: false - config.vm.provision "file", source: "provisioning/prebuilt/swak4Foam/swak4Foam.tar.gz", destination: "~/OpenFOAM/vagrant-v2206/platforms/linux64GccDPInt32Opt/swak4Foam.tar.gz" config.vm.provision "shell", path: "provisioning/install-dealii.sh", privileged: false config.vm.provision "shell", path: "provisioning/install-calculix.sh", privileged: false config.vm.provision "shell", path: "provisioning/install-fenics.sh", privileged: false - config.vm.provision "shell", path: "provisioning/install-nutils.sh", privileged: false + config.vm.provision "shell", path: "provisioning/install-fmiprecice.sh", privileged: false + config.vm.provision "shell", path: "provisioning/install-micro-manager.sh", privileged: false config.vm.provision "shell", path: "provisioning/install-su2.sh", privileged: false config.vm.provision "shell", path: "provisioning/install-code_aster.sh", privileged: false config.vm.provision "shell", path: "provisioning/install-dune.sh", privileged: false diff --git a/provisioning/.alias b/provisioning/.alias index 4831f56..67234b9 100644 --- a/provisioning/.alias +++ b/provisioning/.alias @@ -1,12 +1,12 @@ # preCICE config visualizer function preciceToPNG(){ - cat "${1:-precice-config.xml}" | precice-config-visualizer | dot -Tpng > precice-config.png + precice-config-visualizer -o precice-config.png "${1:-precice-config.xml}" } function preciceToPDF(){ - cat "${1:-precice-config.xml}" | precice-config-visualizer | dot -Tpdf > precice-config.pdf + precice-config-visualizer -o precice-config.pdf "${1:-precice-config.xml}" } function preciceToSVG(){ - cat "${1:-precice-config.xml}" | precice-config-visualizer | dot -Tsvg > precice-config.svg + precice-config-visualizer -o precice-config.svg "${1:-precice-config.xml}" } diff --git a/provisioning/install-basics.sh b/provisioning/install-basics.sh index ff78f0b..d3939b8 100644 --- a/provisioning/install-basics.sh +++ b/provisioning/install-basics.sh @@ -12,6 +12,7 @@ sudo apt-get upgrade -qy # Install the Xfce desktop environment and basic applications sudo apt-get install -y xubuntu-core^ sudo apt-get install -y thunar xfce4-terminal terminator bash-completion tree atril firefox firefox-locale-en baobab catfish +sudo apt-get install -y python3-dev pipx python-is-python3 python3-venv # Setup auto-login for the graphical session # Disabled due to https://github.com/precice/vm/issues/40 diff --git a/provisioning/install-config-visualizer.sh b/provisioning/install-config-visualizer.sh index 06359ac..2e2bde0 100644 --- a/provisioning/install-config-visualizer.sh +++ b/provisioning/install-config-visualizer.sh @@ -1,18 +1,24 @@ #!/usr/bin/env bash set -ex -# Get the config-visualizer from GitHub -if [ ! -d "config-visualizer/" ]; then - git clone --depth=1 --branch master https://github.com/precice/config-visualizer.git -fi -pip3 install --user -e config-visualizer +# Install CLI dependencies +sudo apt-get install -y graphviz +# Install GUI depedencies +sudo apt-get install -y build-essential pkg-config python3-dev libcairo2-dev libgirepository1.0-dev gir1.2-gtk-3.0 + +# Get the config-visualizer from PIP +PRECICE_CONFIG_VISUALIZER_VERSION=1.1.3 +PRECICE_CONFIG_VISUALIZER_GUI_VERSION=0.1.0 +pipx install --force precice-config-visualizer==${PRECICE_CONFIG_VISUALIZER_VERSION} +pipx install --force precice-config-visualizer-gui==${PRECICE_CONFIG_VISUALIZER_GUI_VERSION} # Add the config-visualizer to PATH -echo "export PATH=\"\${HOME}/config-visualizer/bin:\${PATH}\"" >>~/.bashrc +# shellcheck disable=SC2016 +echo 'export PATH="${HOME}/.local/bin:${PATH}"' >> ~/.bashrc -# By default, there is no `python` executable, there is only `python3`, -# which causes issues to the config-visualizer -sudo apt-get install -y python-is-python3 +# Add the GUI in the apps menu +mkdir -p ~/.local/share/applications ~/.local/share/icons -# Install graphviz, which provides dot, an almost required package to make this useful -sudo apt-get install -y graphviz +CV_LOC_SHARE=~/.local/pipx/venvs/precice-config-visualizer-gui==${PRECICE_CONFIG_VISUALIZER_GUI_VERSION}/share +cp $CV_LOC_SHARE/applications/org.precice.config_visualizer.desktop ~/.local/share/applications/ +cp $CV_LOC_SHARE/icons/hicolor/scalable/apps/org.precice.config_visualizer.svg ~/.local/share/icons/ diff --git a/provisioning/install-devel.sh b/provisioning/install-devel.sh index 9757a40..0a3d005 100644 --- a/provisioning/install-devel.sh +++ b/provisioning/install-devel.sh @@ -3,6 +3,11 @@ set -ex sudo apt-get install -y build-essential git cmake cmake-curses-gui +# For the Rust bindings of preCICE, installed by the elastic-tube-1d tutorial +sudo apt-get install -y cargo + sudo apt-get install -y nano vim gedit +sudo apt-get install -y meld + sudo apt-get install -y ipython3 diff --git a/provisioning/install-dune.sh b/provisioning/install-dune.sh index 792e736..2507ae5 100755 --- a/provisioning/install-dune.sh +++ b/provisioning/install-dune.sh @@ -1,76 +1,89 @@ #!/usr/bin/env bash set -ex -# Make a folder to collect all DUNE-related code (-p to allow re-provisioning) -mkdir -p dune && cd dune +# Make a folder to collect all DUNE-related code +mkdir -p dune-dumux && cd dune-dumux -# Get required DUNE modules +# Modules used by DUNE and DuMux +# While the installdumux.py script clones these as well, +# we explicitly clone them to control the versions. if [ ! -d "dune-common/" ]; then - git clone --branch v2.8.0 --depth=1 https://gitlab.dune-project.org/core/dune-common.git + git clone --depth 1 --branch v2.9.1 https://gitlab.dune-project.org/core/dune-common.git fi if [ ! -d "dune-istl/" ]; then - git clone --branch v2.8.0 --depth=1 https://gitlab.dune-project.org/core/dune-istl.git + git clone --depth 1 --branch v2.9.1 https://gitlab.dune-project.org/core/dune-istl.git fi if [ ! -d "dune-localfunctions/" ]; then - git clone --branch v2.8.0 --depth=1 https://gitlab.dune-project.org/core/dune-localfunctions.git + git clone --depth 1 --branch v2.9.1 https://gitlab.dune-project.org/core/dune-localfunctions.git fi if [ ! -d "dune-grid/" ]; then - git clone --branch v2.8.0 --depth=1 https://gitlab.dune-project.org/core/dune-grid.git + git clone --depth 1 --branch v2.9.1 https://gitlab.dune-project.org/core/dune-grid.git fi if [ ! -d "dune-geometry/" ]; then - git clone --branch v2.8.0 --depth=1 https://gitlab.dune-project.org/core/dune-geometry.git + git clone --depth 1 --branch v2.9.1 https://gitlab.dune-project.org/core/dune-geometry.git fi -if [ ! -d "dune-functions/" ]; then - git clone --branch v2.8.0 --depth=1 https://gitlab.dune-project.org/staging/dune-functions.git +if [ ! -d "dune-foamgrid/" ]; then + # The missing v in the tag in this module originates from the project itself + git clone --depth 1 --branch 2.9.1 https://gitlab.dune-project.org/extensions/dune-foamgrid.git fi -if [ ! -d "dune-uggrid/" ]; then - git clone --branch v2.8.0 --depth=1 https://gitlab.dune-project.org/staging/dune-uggrid.git +if [ ! -d "dune-functions/" ]; then + git clone --depth 1 --branch v2.9.1 https://gitlab.dune-project.org/staging/dune-functions.git fi if [ ! -d "dune-typetree/" ]; then - git clone --branch v2.8.0 --depth=1 https://gitlab.dune-project.org/staging/dune-typetree.git + git clone --depth 1 --branch v2.9.1 https://gitlab.dune-project.org/staging/dune-typetree.git fi -if [ ! -d "dune-foamgrid/" ]; then - git clone --branch releases/2.8 --depth=1 https://gitlab.dune-project.org/extensions/dune-foamgrid.git +if [ ! -d "dune-uggrid/" ]; then + git clone --depth 1 --branch v2.9.1 https://gitlab.dune-project.org/staging/dune-uggrid.git fi -# Get the dune-elastodynamics module (solid solver) +# Get the dune-elastodynamics module (solid solver for the plain dune adapter) if [ ! -d "dune-elastodynamics/" ]; then - git clone --branch master --depth=1 https://github.com/maxfirmbach/dune-elastodynamics.git + git clone --depth 1 --branch master https://github.com/maxfirmbach/dune-elastodynamics.git fi ( cd dune-elastodynamics git pull ) -# Get the DUNE-preCICE adapter +# Get the plain DUNE-preCICE adapter if [ ! -d "dune-adapter/" ]; then - git clone --branch main --depth=1 https://github.com/precice/dune-adapter.git + git clone --depth 1 --branch main https://github.com/precice/dune-adapter.git fi ( cd dune-adapter/dune-precice git pull ) -# Build all the DUNE and DUNE-preCICE related modules -DUNE_CONTROL_PATH=~/dune ./dune-common/bin/dunecontrol all +./dune-common/bin/dunecontrol all -# Set the DUNE_CONTROL_PATH (DUNE recursively finds modules in this directory) -echo "export DUNE_CONTROL_PATH=\"\${HOME}/dune\"" >> ~/.bashrc +# Get DuMux and the DuMux-preCICE adapter +if [ ! -d "dumux/" ]; then + git clone --depth 1 --branch releases/3.8 https://git.iws.uni-stuttgart.de/dumux-repositories/dumux.git +fi -# Copy the built example code to the tutorials -cp ~/dune/dune-adapter/dune-precice-howto/build-cmake/examples/dune-perpendicular-flap ~/tutorials/perpendicular-flap/solid-dune +# Build DuMux +CMAKE_FLAGS="$CMAKE_FLAGS -DCMAKE_DISABLE_FIND_PACKAGE_Kokkos=TRUE" ./dune-common/bin/dunecontrol --only=dumux all + +if [ ! -d "dumux-adapter/" ]; then + git clone --depth 1 --branch v2.0.0 https://github.com/precice/dumux-adapter.git +fi -# Install dune-fem from PIP +# Build the DuMux-preCICE adapter +CMAKE_FLAGS="$CMAKE_FLAGS -DCMAKE_DISABLE_FIND_PACKAGE_Kokkos=TRUE" ./dune-common/bin/dunecontrol --only=dumux-precice all -pip3 install --user dune-fem==2.8 +# Set the DUNE_CONTROL_PATH (DUNE recursively finds modules in this directory) +echo "export DUNE_CONTROL_PATH=\"\${HOME}/dune-dumux\"" >> ~/.bashrc + +# Copy the built example code to the tutorials +cp ~/dune-dumux/dune-adapter/dune-precice-howto/build-cmake/examples/dune-perpendicular-flap ~/tutorials/perpendicular-flap/solid-dune # We are done with DUNE, let's do back home cd ~ diff --git a/provisioning/install-fmiprecice.sh b/provisioning/install-fmiprecice.sh new file mode 100644 index 0000000..3a59461 --- /dev/null +++ b/provisioning/install-fmiprecice.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -ex + +# Install the FMI runner from PIP +pip3 install --user fmiprecice diff --git a/provisioning/install-micro-manager.sh b/provisioning/install-micro-manager.sh new file mode 100644 index 0000000..bf0ea3b --- /dev/null +++ b/provisioning/install-micro-manager.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -ex + +pip install --user micro-manager-precice diff --git a/provisioning/install-nutils.sh b/provisioning/install-nutils.sh deleted file mode 100644 index dd2b068..0000000 --- a/provisioning/install-nutils.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -set -ex - -# Install Nutils from PIP (we will also need matplotlib in our examples) -pip3 install --user matplotlib nutils==7.0 diff --git a/provisioning/install-openfoam.sh b/provisioning/install-openfoam.sh index acb2b62..10c6b8a 100644 --- a/provisioning/install-openfoam.sh +++ b/provisioning/install-openfoam.sh @@ -4,10 +4,10 @@ set -ex # Add the signing key, add the repository, update: wget -q -O - https://dl.openfoam.com/add-debian-repo.sh | sudo bash -# Install OpenFOAM v2206: -sudo apt-get install -y openfoam2206-dev +# Install OpenFOAM v2312: +sudo apt-get install -y openfoam2312-dev # Enable OpenFOAM by default: -echo ". /usr/lib/openfoam/openfoam2206/etc/bashrc" >> ~/.bashrc +echo ". /usr/lib/openfoam/openfoam2312/etc/bashrc" >> ~/.bashrc # Get the OpenFOAM-preCICE adapter if [ ! -d "openfoam-adapter/" ]; then @@ -16,26 +16,9 @@ fi ( cd openfoam-adapter git pull - openfoam2206 ./Allwmake + openfoam2312 ./Allclean + openfoam2312 ./Allwmake ) -# Get swak4Foam (provides groovyBC, needed for the turek-hron-fsi3 tutorial) -# -# # Option 1: Build from source -# sudo apt-get install -y mercurial -# hg clone http://hg.code.sf.net/p/openfoam-extend/swak4Foam swak4Foam -# ( -# cd swak4Foam -# hg checkout develop -# openfoam2206 ./AllwmakeAll -# ) -# -# # Remove some swak4Foam files to save space (approx. 150MB) -# rm -rfv .~swak4Foam -# sudo apt-get purge --autoremove -y mercurial # This also removes Python2, yipieh! -# -# # Option 2: Use pre-built binaries -# # (see Vagrantfile and post-install.sh, rebuild and update for OpenFOAM version other than v2206) - # Build the tutorials partitioned-heat-conduction solver -cd ~/tutorials/partitioned-heat-conduction/openfoam-solver && openfoam2206 wmake +cd ~/tutorials/partitioned-heat-conduction/solver-openfoam && openfoam2312 wmake diff --git a/provisioning/install-precice.sh b/provisioning/install-precice.sh index 906ddd4..cda6d35 100644 --- a/provisioning/install-precice.sh +++ b/provisioning/install-precice.sh @@ -14,10 +14,10 @@ fi cd precice git pull mkdir -p build && cd build/ - cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=OFF -Wno-dev .. + cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DPRECICE_RELEASE_WITH_DEBUG_LOG=ON -DBUILD_TESTING=OFF -Wno-dev .. make -j "$(nproc)" rm -fv ./*.deb && make package - sudo apt-get install -y ./libprecice2_*.deb + sudo apt-get install -y ./libprecice*_*.deb # Remove generated packages to save space (approx. 70MB) rm -rfv ./*.deb ./*.tar.gz _CPack_Packages ) @@ -41,11 +41,13 @@ if [ ! -d "tutorials/" ]; then ln -sf ~/tutorials ~/Desktop/ fi ( - cd tutorials/elastic-tube-1d/fluid-cpp/ && mkdir build && cd build && cmake .. && make && cd ../.. - cd solid-cpp/ && mkdir build && cd build && cmake .. && make + cd tutorials/quickstart/solid-cpp/ && cmake . && make ) ( - cd tutorials/quickstart/solid-cpp/ && cmake . && make + cd tutorials/elastic-tube-1d/solid-rust/ && mkdir -p .cargo && cargo vendor > .cargo/config.toml +) +( + cd tutorials/elastic-tube-1d/fluid-rust/ && mkdir -p .cargo && cargo vendor > .cargo/config.toml ) ( cd tutorials/heat-exchanger && ./download-meshes.sh @@ -60,20 +62,7 @@ pip3 install --upgrade pip pip3 install --user pyprecice # Additional python packages -pip3 install --user pandas # Needed for the post-processing script of the oscillator tutorial - -# Temporary workaround for https://github.com/precice/vm/issues/61 -# Remove as soon as https://github.com/precice/tutorials/issues/217 gets resolved -sudo apt-get install -y python3.8-venv -( - cd tutorials/perpendicular-flap/fluid-nutils/ - python3 -m venv nutils6-env - # shellcheck source=/dev/null - source nutils6-env/bin/activate - pip3 install nutils==6.3 pyprecice - sed -i "s/python3/nutils6-env\/bin\/python3/g" ./run.sh - deactivate -) +pip3 install --user pandas matplotlib polars # Needed for the post-processing scripts # Get the Python solverdummy into the examples if [ ! -d "python-bindings/" ]; then diff --git a/provisioning/install-su2.sh b/provisioning/install-su2.sh index 69dc370..35eb466 100644 --- a/provisioning/install-su2.sh +++ b/provisioning/install-su2.sh @@ -1,18 +1,21 @@ #!/usr/bin/env bash set -ex -# Get SU2 6.0.0 from GitHub -wget --quiet https://github.com/su2code/SU2/archive/v6.0.0.tar.gz -tar -xzf v6.0.0.tar.gz -rm -fv v6.0.0.tar.gz +# Install dependencies +pip3 install --user mpi4py -# Add SU2 to PATH and apply. +# Get SU2 7.5.1 from GitHub +wget --quiet https://github.com/su2code/SU2/archive/refs/tags/v7.5.1.tar.gz +tar -xzf v7.5.1.tar.gz +rm -fv v7.5.1.tar.gz + +# Add SU2 and the SU2 adapter to PATH and apply. # We first export to a separate script, so that we can load it here (non-interactive shell). { - echo "export SU2_HOME=\"\${HOME}/SU2-6.0.0\"" - echo "export SU2_RUN=\"\${SU2_HOME}/SU2_CFD/bin\"" - echo "export PATH=\"\${SU2_RUN}:\${PATH}\"" - echo "export PYTHONPATH=\"\${SU2_RUN}:\${PYTHONPATH}\"" + echo "export SU2_HOME=\"\${HOME}/SU2-7.5.1\"" + echo "export SU2_RUN=\"\${SU2_HOME}/SU2_CFD\"" + echo "export PATH=\"\${SU2_RUN}/bin/:\${HOME}/su2-adapter/run/:\${PATH}\"" + echo "export PYTHONPATH=\"\${SU2_RUN}/bin/:\${PYTHONPATH}\"" } >> ~/.su2-bashrc echo ". \${HOME}/.su2-bashrc" >> ~/.bashrc @@ -32,13 +35,9 @@ fi # Configure and build the SU2 adapter ( cd "${SU2_HOME}" - ./configure --disable-metis --disable-parmetis --disable-cgns --disable-DOT \ - --disable-MSH --disable-DEF --disable-SOL --disable-GEO \ - --prefix="${SU2_RUN}" CXXFLAGS='-std=c++11' - make -j "$(nproc)" - # We still need sudo for whatever reason - sudo make install + ./meson.py build -Denable-pywrapper=true --prefix="${SU2_RUN}" &&\ + ./ninja -C build install ) # Remove the libSU2Core.a library to save space (approx. 500MB) -rm -fv ~/SU2-6.0.0/SU2_CFD/obj/libSU2Core.a +rm -fv ~/SU2-7.5.1/SU2_CFD/obj/libSU2Core.a diff --git a/provisioning/post-install.sh b/provisioning/post-install.sh index ce34535..6f082c2 100644 --- a/provisioning/post-install.sh +++ b/provisioning/post-install.sh @@ -1,15 +1,9 @@ #!/usr/bin/env bash set -ex -# Setup swak4Foam -( - cd "${HOME}/OpenFOAM/vagrant-v2206/platforms/linux64GccDPInt32Opt/" - tar -xzvf swak4Foam.tar.gz -) - # Remove fenics-ufl package # Workaround for https://github.com/precice/vm/issues/4 -pip3 uninstall -y fenics-ufl +# pip3 uninstall -y fenics-ufl # Create a link to the default shared folder ln -sf /vagrant/ ~/Desktop/shared diff --git a/provisioning/prebuilt/swak4Foam/README.txt b/provisioning/prebuilt/swak4Foam/README.txt deleted file mode 100644 index a8b587f..0000000 --- a/provisioning/prebuilt/swak4Foam/README.txt +++ /dev/null @@ -1,17 +0,0 @@ -Prebuilt libraries and tools of swak4Foam for Ubuntu 20.04 and OpenFOAM v2206, based on the develop branch of swak4Foam (built on November 2022): - -```bash -vagrant@precicevm:~/swak4Foam$ hg tip -changeset: 3999:481d96f16780 -branch: develop -tag: tip -parent: 3997:4d33e38246ad -parent: 3998:12dad7c691d1 -user: Bernhard F.W. Gschaider -date: Mon Jul 04 01:06:48 2022 +0200 -summary: flow: Promoted 'port/of9' (12dad7c691d1) to 'develop'. -``` - -The files are extracted from `/home/vagrant/OpenFOAM/vagrant-/platforms/` and copied there. - -Find the source code on http://hg.code.sf.net/p/openfoam-extend/swak4Foam/rev/ea7680cdcf8b diff --git a/provisioning/prebuilt/swak4Foam/swak4Foam.tar.gz b/provisioning/prebuilt/swak4Foam/swak4Foam.tar.gz deleted file mode 100644 index 1e469cd..0000000 --- a/provisioning/prebuilt/swak4Foam/swak4Foam.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:284da0859454c970ebbc208e477a8572060280eff4ba6252cd33ed24b25c4fd1 -size 20097408