Build and run Musubi

Subsequently is a short explanation on how to use Musubi:

  • Checkout:
    • hg clone https://geb.inf.tu-dresden.de/hg/musubi

then you have the repository with sub-repos aotus and treelm in the folder musubi. - Note: You need MPI in order to compile the code.

  • Set environment variables
    • export CC=mpicc
    • export FC=mpif90
  • Configure
    • ./waf configure
  • Build
    • ./waf build
  • Change settings in musubi.lua
  • Run
    • ./build/musubi

You will get .vtk files, if you have activated the output in musubi.lua. The current test case is a Gaussian Pulse with a wall in order to test the correct behavior of the bounce back boundaries.

Configuration options

There are several configuration options available to influence the build. You can obtain a list of those with ./waf --help.

It is possible to choose between the "PULL" (default) and "PUSH" streaming approach via the --stream=PULL or --stream=PUSH option.

Build variants

Aside from the default build, there is also a debug target which creates an executable with debugging information. Other variants, for example for performance profiling can be found in the output of ./waf --help

Coco preprocessing

Musubi utilizes the CoCo preprocessor to modify code at compile time. Its behavior can be modified by changing the default.coco file, and by setting the COCOFLAGS environment variable.

Limiting what is build

It is possible to restrict to build to individual targets with the --targets option. For example to only build the musubi and mus_harvesting executables, add the option --targets=musubi,mus_harvesting to the waf command.

Generate a geometry

A different geometry can be generated with the tree-based Mesh generator Seeder.

Build and run Seeder

  • Checkout: hg clone https://geb.inf.tu-dresden.de/hg/seeder then you have the repository with sub-repos aotus and treelm in the folder seeder.
  • Note: You need MPI in order to compile the code.

Set environment variables export CC=mpicc export FC=mpif90

  • Configure ./waf configure
  • Build ./waf build
  • Generate mesh folder in current folder: mkdir ./mesh
  • Change settings in input/config.lua. Specify the STL file(s) and set the min and max tree levels. Note: In the current version, Musubi only supports uniform grids, which can be generated by setting maxrefine = minrefine.
  • Run ./build/seeder input/config.lua
  • Generated mesh is in the mesh/ folder
  • Copy all files from mesh to the musubi mesh folder ../musubi/mesh

You will receive a VTK file, in order to check the fluid domain. The fluid is identified by placing the seed in the correct position in seeder.f90, which will be changed later. A good start is in the first position, just make sure that it is part of the continuous fluid domain.

The parallel version has not been tackled yet but has a high priority on our task-list. The next step will be parallel functionality and inlet/outlet boundaries.

Please make sure to check out musubi and start a few runs. Please also report any bugs here in the tickets.