Developing CASINO

CASINO is developed in the open, one reviewed patch at a time, and the record of that work is public: the development log describes every change since 1997 and its reasons, under the name of whoever made it. Since late August 2026 Mike has been undertaking a ground-up review of everything, and the log has grown by over seven hundred entries by 11 October 2026, and most of them are the kind of change a serious user wants to read about: faults found and fixed, some of them twenty years old; costly routines measured and rewritten; the manual brought back into step with the code. This page is for anyone who would like to add to it.

How a change gets in

Nobody pushes to the repository but the maintainer. A change arrives as a git-formatted patch, mailed to Mike Towler. It is built and run against the regression suite in serial and in parallel, and read in full by a reviewer who is not its author. It is then either returned with the reasons, never quietly mended, or applied to the master repository under its author’s name, and its commit message becomes the entry in the development log; the programming guide says how to write one. This is slower than a pull request, and it is meant to be: a QMC code’s worst faults are the ones that produce a plausible number, and the review is where they are caught.

What we would like done

The list of things to do is kept against the log, and marks what has been done since August. Some of the most useful work needs no Fortran at all.

  • Converters. CASINO reads orbitals through four generic file formats, and a converter from any electronic-structure program to one of them opens that program’s users to QMC. The guide to writing an interface states the acceptance test a converter must pass: methane-like molecules with d, f and g functions, on which CASINO’s VMC energy without a Jastrow factor must reproduce the program’s Hartree–Fock energy. Converters are written in Fortran or Python 3, as the ones in the distribution are.
  • Pre- and post-processing. Tools that prepare input, drive calculations through batch systems or analyse output, in whatever language suits.
  • Test cases. A regression test that exercises something nothing yet covers is a real contribution, and a good first one.
  • The code itself. Methods, speed and correctness, in Fortran; the programming guide says how the code is written and why.

Items on the list carry the name of whoever is working on them, so that two people do not do the same thing.

Who is doing it

CASINO was begun by Richard Needs. Its principal authors are Richard Needs, Mike Towler, Neil Drummond and Pablo López Ríos. The code is maintained by Mike Towler at the Vallico Academy in Tuscany, with Neil Drummond and Pablo López Ríos.

This list names the people working on the code now; earlier contributors are credited in the development log and the manual.

Vladimir Konjkov is the most active contributor from outside the original group. His work in the current series alone includes the VMC step profile that makes the sampling of all-electron atoms and molecules two to five times cheaper, the analytical derivatives of the backflow parameters that make their optimisation five to seven times faster, the extension of the geminal wave function to open-shell systems, the adf2stowf converter that brought AMS/ADF back as a source of Slater-type orbitals, and, with Mike Deible, the molden2qmc converter through which nine quantum-chemistry programs now reach CASINO. If you want to know what a contributor to CASINO can do, read his entries in the log.

Aleksey Baglov, who writes in C and C++, joined in October 2026 and is exploring converters for VASP and OpenMX.

Anyone on this list can be asked questions, and anyone doing real work on the code will be added to it.

Access

The standard distribution is free for non-commercial use, and its source is obfuscated. Developers receive the full source: tick the developer box on the request form and say what you would like to do, or write to Mike Towler (mdt26 at cantab.net). With the developer password you can download the current development version, rebuilt whenever a change is shipped, or the 3.0 release; older developer versions remain on the developer downloads page. Access to the git repository, from which the current state can be pulled at any time, is by username and password from him. Pablo López Ríos’s guide to git as used in CASINO development explains the workflow, including how to format a patch for submission.

Reading

The development log: every change, with its reasons. The programming guide: how the code is written. Writing an interface: the four file formats and the acceptance test. Done and to do: what is open and who is on it. The key to the initials used in the log before 2011.

The best way to start is to pick something small from the list, do it, and send the patch. The second best is to find a fault and report it on the forum with the input that shows it; a reproducible fault is a contribution too.

Leave a Reply