Philippe Bourdin edited this page Apr 21, 2015 · 3 revisions

The Pencil Code is primarily designed to deal with weakly compressible turbulent flows, which is why we use high-order first and second derivatives. To achieve good parallelization, we use explicit (as opposed to compact) finite differences. Typical scientific targets include driven MHD turbulence in a periodic box, convection in a slab with non-periodic upper and lower boundaries, a convective star embedded in a fully nonperiodic box, accretion disc turbulence in the shearing sheet approximation, self-gravity, non-local radiation transfer, dust particle evolution with feedback on the gas, etc. A range of artificial viscosity and diffusion schemes can be invoked to deal with supersonic flows. For direct simulations regular viscosity and diffusion is being used.

Please find more details on our website.

Commit rights for the Pencil Code are given out quite liberally, but they come with responsibility:

  • only commit code that is meaningful and necessary
  • avoid committing code that breaks any of the auto tests
  • discuss major changes with other developers first (e.g. at the pencil-code-discuss mailing list)
  • follow the existing coding style guide

When developing the Pencil Code, we often communicate via commit messages. A typical example is

Fixed a bug in hydro.do_something().
@Paul, you wrote the original subroutine, can you check whether my
fix is OK?

and ideally a few commits down the line, we would have

Improved Peter's fix of the hydro.do_something() subroutine.
Thanks for finding and analyzing this.

For this mode of communication to work, we must be able to rely on our co-developers to read the commit messages. If they do not, their contributions have a strongly reduced value for the code, and they probably should not have commit rights in the first place.

By far the easiest way of reading the commit messages is to subscribe to pencil-code-commits@googlegroups.com and read at least superficially through the commit messages as they appear in the mailbox. Individual developers may prefer other ways of keeping up to date, but you should be aware that if you do not follow what is going on with the code, it is likely that parts of the code that you contributed will eventually get moved around, altered, or even removed.

If you want to become a member of any of the groups without being a committer, and if your name is not already known to us (or by googling) we would appreciate a brief email to us explaining your interest. This is to prevent spammers entering our lists. The pencil-code-core list, on the other hand, is reserved for project owners only.