__                  _           __
/              /'         /\ `\
\ \___      __  /\ ,/'  __  __\`     __
  _ ` /'_ `\\  /\ \/\ \`\` /'__`\
  \ \ \/\ \L\ \\ `\\ \_/ |`\/' \/ __/
   \_\ \_\ \____ \\ `\__\ \___/  /\__/\ \____\
    \/_/\/_/\/___L\ \`\/_/ \/__/   \/_/  \/____/

A collision between two particles in a DNS simulation from `CORIA <http://coria.fr>`_. The field displayed is the Gauss curvature.

A library to compute differential geometry properties on 3D objects

Mercur(v)e (or Hg(v)e) is a C++ library currently built on top of VTK aimed at calculating differential geometry properties of 3D objects within the framework of fluid dynamics. Use cases are categorization of 3D objects (i.e. liquid droplets) in DNS of two-phase flows or turbulent structure in DNS of single-phase flows.

Before diving into the documentation, please beware that:

BIG Repository!

This repository contains the dns folder with all the DNS simulation outputs. To develop you won’t need them, so to not lose time to download them (they are stored using Git LFS), you can clone doing:

GIT_LFS_SKIP_SMUDGE=1 git clone ...

This will prevent the download of the big files that will be replaced by the Git LFS pointers.

You can access the documentation at http://docs.hg.rdb.is

Building the Library

To build this library you need:

  • A fairly recent cmake

  • A fairly recent vtk (should work with VTK > 6.x)

You should be able to install them with your distribution package manager.

In order to build it just create a directory named build and do an out-of-source build with cmake

mkdir build
cd build
cmake ..

CMake should be able to find the dependencies by itself if they’re installed in standard location. If it doesn’t you can provide the path to the third party libraries manually, to force the discovery if you installed VTK in non-standard locations.

NOTE Remember to load the right modules if your system is equipped with some sort of environment modules manager

Testing the application

In order to enable the testing of the library, you need to switch on the right flag within cmake


In order to run the tests, you will need ``Catch2` <https://github.com/catchorg/Catch2>`_. If cmake is not able to find it in the PATH, it will download it for you automatically

Building the documentation

To build the documentation that is hosted at http://docs.hg.rdb.is, you will need doxygen and python with some packages. The CMakeLists.txt won’t download the dependencies for you (yet?), so you need to install with your package manager at least doxygen and python.

Then you can create a virtualenv and install the python packages that are needed to render the documentation doing

pip install -r requirements.txt

The requirements.txt file is found in the docs directory.