Contributions may be made via a pull request. There is also a note here on the development model, and running the tests.
Ludwig has been developed largely at The University of Edinburgh as a collaboration between the School of Physics and Edinburgh Parallel Computing Centre. However, contributions are welcome.
The code is released under a BSD 3-clause license.
Various tests exist in the test
subdirectory. To check that no
obvious errors have been introduced by developments one can run
$ cd tests
$ make
which runs a series of unit tests and a series of regression tests for the
LB D3Q19 model.
See the Makefile
for further options.
Each test reports a pass or fail. Parallel tests are also available.
The development model is borrowed from a description by Vincent Driessen [https://nvie.com/posts/a-successful-git-branching-model/].
Two branches are always in existance: master and develop. The master represents the current release state. New developments should be based on the develop branch.
Create a feature branch from the develop branch
$ git checkout -b myfeature develop
When finished
$ git checkout develop
$ git merge --no-ff myfeature
$ git branch -d myfeature
$ git push origin develop
Fixes are intended to branch from the master and are merged back into both master and develop when the fix is made.
$ git checkout -b patch-0.1.2 master
Switched to a new branch 'patch-0.1.2'
Make the necessary changes (with tests), increment the patch level in version.h, and commit the changes
$ git commit -m "Fix such-and-such"
[patch-8-06 7dc40e0] Fix such-and-such
Merge the patch with the master, and then with develop
$ git checkout master
$ git merge --no-ff -m "Patch 0.1.2 " patch-0.1.2
Merge made by the 'recursive' strategy.
$ git checkout develop
$ git merge --no-ff -m "Patch 0.1.2" patch-0.1.2
Merge made by the 'recursive' strategy.
Remove the temporary branch
$ git branch -d patch-0.1.2
Release branches must branch from develop and must be merged back into both develop and master.