Tools, examples and notes for setting up fluidity simulations
545e03a2 — adigitoleo 11 months ago
Remove subfolder from archive
f1afdbb9 — adigitoleo 11 months ago
Fix deformation mechanism setter
9d053edd — adigitoleo 11 months ago
Rename variable in meshgen script


browse  log 



You can also use your local clone with git send-email.



This repository is part of an emerging collection of computational geodynamics utilities.

Fluidity is an open source CFD project, with adaptive mesh support and ready-made, tested solvers.

#Using the simulation template

A tarball of the template files can be downloaded from https://builds.sr.ht/~adigitoleo/fluidity-sim by clicking on the latest (top-most) build number and finding the fluidity-sim.tar.gz download link under "Artifacts". You can alternatively clone the repository with git.

The provided template requires a Fluidity executable built with Python support. You will also need gmsh version 4.4.1 and the accompanying Python bindings. Fluidity is not compatible with meshes from the most recent gmsh versions. Furthermore, the gmsh API is not stable across minor versions. Instead, you will need to clone the gmsh repository with git and git checkout gmsh_4_4_1 in the gmsh directory. Run the gmsh/api/gen.py script to create the API header files, and add gmsh/api to your PYTHONPATH (and ensure that gmsh is installed) before generating your mesh (see e.g. https://stackoverflow.com/questions/3402168/permanently-add-a-directory-to-pythonpath).

In general, you will want to edit all the files in the src/ folder:

  • functions.py defines functions for the diagnostic algorithms
  • constants.py defines constants that can be used in functions.py or in the flml file
  • meshgen.py is a script to generate the initial mesh (run automatically from the Makefile)
  • the .flml file defines the fluidity options in an XML tree

Finally, edit the option declarations at the top of the Makefile and run the simulation with make.


  • Somehow parse the number of dimensions from the flml file in the Makefile
  • Consider using pygmsh for mesh generation
  • Deploy archives somewhere permanent that is easier to link to.