Rayleigh: Pseudo-spectral MHD
Switch branches/tags
Nothing to show
Clone or download
Latest commit a474391 Nov 11, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake/modules Add initial version of a cmake configuration system. Sep 27, 2018
doc Implements the cover page title correclty. Sep 24, 2018
docker Don't checkout devel, using master in the future Sep 18, 2018
etc Use /bin/sh instead of /bin/csh (#12) Sep 13, 2018
input_examples moved etc/input_examples and etc/analysis to input_examples and post_… Aug 17, 2018
post_processing Convert all the array indices (rad_inds, theta_inds, phi_inds) to be … Oct 23, 2018
src Removed commented "include" line (deprecated). Nov 10, 2018
.devel Merging devel into master. Apr 28, 2018
.gitignore updated .gitignore files Sep 18, 2018
.zenodo.json Added zonodo json file and edited authors file (version info) Jan 23, 2018
ACKNOWLEDGE Housecleaning before initial commit of source code. Jan 23, 2018
AUTHORS minor update to AUTHORS Jan 24, 2018
CMakeLists.txt Also detect the C compiler. Sep 27, 2018
CONTRIBUTING.md Update Contributing.md, fix link (#11) Sep 13, 2018
INSTALL added instructions to INSTALL for Macs Nov 2, 2018
Jenkinsfile Merge pull request #61 from tjesser-ucdavis-edu/master Sep 19, 2018
LICENSE Added license file (GPL3) Dec 20, 2017
Makefile remove old "cp src/Utility/*.py", there are no python files anymore Nov 9, 2018
README.md Add a link to Contributing to Readme Sep 19, 2018
VERSION updated version number Apr 28, 2018
configure remove python from build. it is now based on shell commands handled i… Nov 9, 2018
dev_build one of these days... Jun 27, 2018


Rayleigh Version 0.9.1


Rayleigh is a 3-D convection code designed for the study of dynamo behavior in spherical geometry. It evolves the incompressible and anelastic MHD equations in spherical geometry using a pseudo-spectral approach. Rayleigh employs spherical harmonics in the horizontal direction and Chebyshev polynomials in the radial direction. The code has undergone extensive accuracy testing using the Christensen et al. (2001) Boussinesq benchmarks and the Jones et al. (2011) anelastic benchmarks. Rayleigh has been developed with NSF support through the Computational Infrastructure for Geodynamics (CIG).

Contributing to Rayleigh

Rayleigh is a community project that lives by the participation of its members -- i.e., including you! It is our goal to build an inclusive and participatory community so we are happy that you are interested in participating! We have collected a set of guidelines and advice on how to get involved in the community and keep them in the CONTRIBUTING.md file in Rayleigh's repository.


The pseudo-spectral nature of Rayleigh means that its parallelization necessarily relies heavily on global communication patterns. That said, Rayleigh's parallelization is based around a 2-D domain decomposition and large-message-size all-to-alls. These features allow the code to overcome many of the obstacles that traditionally limit the scalability of spectral methods. The end result is a pseudo-spectral code optimized for petascale machines. Rayleigh's pure-MPI mode has demonstrated highly efficient strong scaling on 131,000 cores of the Mira Blue Gene/Q supercomputer for problems with approximately 2048^3 grid points (2048 spherical harmonics). Performance numbers from Mira are shown below. A summary of Rayleigh's performance and how it compares against other popular dynamo codes (albeit at at smaller process counts) may be found in the recent performance benchmark results of Matsui et al. (2016).

Getting Started

The following documents form the initial Rayleigh documentation. Note that the html version of the Diagnostics_Plotting document, which is automatically generated from a Jupyter notebook, is more cleanly formatted than the pdf version.

Document Description
INSTALL in-depth installation instructions
doc/Rayleigh_User_Guide.pdf Overview of compiling and running Rayleigh
doc/Diagnostic_Plotting.{html,pdf} Guide to generating and plotting Rayleigh output (text version)
etc/analysis/Diagnostic_Plotting.ipynb Same as above (interactive Jupyter notebook)
doc/Rayleigh_Output_Variables.pdf Tables of Rayleigh output menu codes


Rayleigh was written by Nicholas Featherstone with NSF support through CIG. Please see the ACKNOWLEDGEMENT file for citation information.


Raleigh v0.9.1 is released under the GPL v3 license.