Using Mercurial
All codes for the Magma Dynamic Demonstration Suite (MADDs) are being hosted at CIG in mercurial software repositories. Mercurial (hg) is a distributed source code managment system similar to subversion but allows distributed development which will be useful for coordinating various aspects of this project.
Source code, change sets and revisions can all be viewed using the browser of your choice at http://geodynamics.org/hg/.
There are currently four Principal software repositories with benchmark codes for different aspects of the magma migration problem.
Repository Contents as of October 4, 2007:
stgMADDS: C codes built on the stGermain framework for finite Element solutions of Solid Stokes Flow. (VPAC) This repository is broken up into several sub-repositories for different aspects of the stGermain framework. To acces this software, you only need to clone the top level directory stgMADDS and then invoke a script to clone the sub-repositories (see below) The overall structure of the stgMADDS directory is stgMADDS: master repository stgMADDS/Magma Main Magma Specific codes/Models and Milestones stgMADDS/Underworld Rheology and general driving routines for model building stgMADDS/PICellerator Particle in cell Libraries (required for Underworld) stgMADDS/StgFEM Finite Element Libraries for stG (required for PICellerator and Underworld) stgMADDS/StGermain Base StGermain framework (required for all stG codes) stgMADDS/gLucifer Interactive graphics interface to StGermain (required for magma) stgMADDS/VMake stG Buildsystem directory stgMADDS/Machines directory of parallelmachines SpecRidge: matlab codes for 2D & 3D spectral solutions for Solid flow and pressure benchmarks beneath MOR spreading centers (mspieg) SolitaryWaves2DSL: PETSc code for solving 2D solitary wave problems using fast-block preconditioners, multgrid and semi-Lagrangian schemes (must be built on petsc-dev post hg revision 11143) NNcorner: Laurent Montesi's matlab code for 2D corner flow with a non-linear power law rheology.
Download instructions
Mercurial
To access and use the source codes you will need to install mercurial which is a Python-based version-control system.
Downloads, installation and use instructions can be found at http://www.selenic.com/mercurial/wiki/
It may also be useful to install hgk for viewing changes and (for emacs fans) mercurial.el, which are emacs extensions for working with mercurial. Both extensions are included in the mercurial-0.9.4 release.
Magma Software
Once mercurial is successfully installed, you can clone the magma repositories using hg clone e.g.,
hg clone http://geodynamics.org/hg/magma/3D/SpecRidgeto get current updates to the repositories, change directory to the repository of choice and run
hg pull hg update
See the mercurial website for more instructions or type hg help.
stgMADDs-specific instructions for cloning
For a first-time download of the repository do the following (described in the stgMADDs repository in README_stgMADDS.txt):
- Create the topmost repository with
hg clone http://geodynamics.org/hg/magma/3D/stgMADDs
- Then clone all the subdirectories using
./cloneall.sh
- For updates to all repositories, simply use
./pullall.sh
Further build and test instructions can be found in stgMADDS/README_stgMADDS.txt
If you have any questions, please contact Marc Spiegelman, chair, Magma Dynamics Working Group.