[cig-commits] r13659 - doc/snac

echoi at geodynamics.org echoi at geodynamics.org
Thu Dec 11 13:18:17 PST 2008


Author: echoi
Date: 2008-12-11 13:18:17 -0800 (Thu, 11 Dec 2008)
New Revision: 13659

Modified:
   doc/snac/snac.lyx
Log:
Ch. 2 updated by adding Ch. 9.



Modified: doc/snac/snac.lyx
===================================================================
--- doc/snac/snac.lyx	2008-12-11 20:32:00 UTC (rev 13658)
+++ doc/snac/snac.lyx	2008-12-11 21:18:17 UTC (rev 13659)
@@ -1770,11 +1770,21 @@
 \end_layout
 
 \begin_layout Chapter
-Installation 
+Installation and Getting Help
 \end_layout
 
+\begin_layout Section
+Introduction
+\end_layout
+
 \begin_layout Standard
-StGermain and SNAC are bundled as SNAC and available at the 
+To install SNAC, follow the procedure that is commonly used with other open-sour
+ce software packages.
+ First, download the source package (in the form of a compressed 
+\family typewriter
+tar
+\family default
+ file) available at the 
 \begin_inset LatexCommand htmlurl
 name "Geodynamics Software Packages web page"
 target "geodynamics.org/cig/software/packages"
@@ -1782,45 +1792,192 @@
 \end_inset
 
 .
- Advanced users and software developers may be interested in downloading
- the latest SNAC source code directly from the CIG source code repository,
- instead of using the prepared source package; see Section 
-\begin_inset LatexCommand ref
-reference "sec:Software-Repository"
+ After unpacking the source, you run a prepackaged shell script to configure
+ SNAC for your system.
+ 
+\end_layout
 
+\begin_layout Section
+Getting Help
+\end_layout
+
+\begin_layout Standard
+For help, send e-mail to the 
+\begin_inset LatexCommand htmlurl
+name "CIG Long-term Tectonics Mailing List"
+target "cig-long at geodynamics.org"
+
 \end_inset
 
- later in this chapter.
+.
+ You can subscribe to the Mailing List and view archived discussion at the
+ 
+\begin_inset LatexCommand htmlurl
+name "Geodynamics Mail Lists web page"
+target "geodynamics.org/cig/lists"
+
+\end_inset
+
+.
 \end_layout
 
+\begin_layout Section
+System Requirements
+\end_layout
+
 \begin_layout Standard
-Before building Snac, you will need to have MPI and XML libraries available
- on your machine.
- 
+Installation of SNAC requires the following:
 \end_layout
 
+\begin_layout Itemize
+A C compiler
+\end_layout
+
+\begin_layout Itemize
+An MPI library
+\end_layout
+
+\begin_layout Itemize
+Libxml2
+\end_layout
+
 \begin_layout Standard
-SNAC has been tested on Linux and Mac OS X platforms.
+MPI installations are typically configured for a particular compiler, and
+ provide a special wrapper command to invoke the right compiler.
+ Therefore, the choice of MPI implementation often determines which C compiler
+ to use.
+\end_layout
+
+\begin_layout Subsection
+C Compiler
+\end_layout
+
+\begin_layout Standard
+On Unix or Linux systems, there is a high likelihood that a usable C compiler
+ is already installed.
+ To check, type 
+\family typewriter
+cc
+\family default
+ at the shell prompt:
+\end_layout
+
+\begin_layout LyX-Code
+$ cc
+\end_layout
+
+\begin_layout LyX-Code
+cc: no input files
+\end_layout
+
+\begin_layout LyX-Code
+$
+\end_layout
+
+\begin_layout Standard
+On Linux, if the 
+\family typewriter
+cc
+\family default
+ command is not found, install GCC using the package manager for your distributi
+on.
+\end_layout
+
+\begin_layout Standard
+The Mac OS X version of GCC is included in a software development suite
+ called Xcode.
+ Xcode is available as a free download at the 
+\begin_inset LatexCommand htmlurl
+name "Apple Developer Connection"
+target "developer.apple.com"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Quote
+
+\color red
+Warning:
+\color none
  
+\color black
+If you are using an Intel compiler on an Itanium CPU, do not use the
+\color none
+ 
+\family typewriter
+\color black
+-O3
+\family default
+\color none
+ 
+\color black
+optimization flag as reports indicate that this optimization level will
+ generate incorrect codes.
+ For any compiler, you should always be careful about the correctness of
+ the compiled codes when using an
+\color none
+ 
+\family typewriter
+\color black
+-O3
+\family default
+\color none
+ 
+\color black
+or higher optimization level.
 \end_layout
 
-\begin_layout Section
-MPI
+\begin_layout Subsection
+MPI Library
 \end_layout
 
 \begin_layout Standard
 StGermain requires an implementation of the MPI-1 standard for parallel
  message passing, even if you only intend to run the code in serial.
- Fortunately, there are several free implementations of MPI that run on
- all flavors of Unix.
- If you intend to run SNAC on your desktop or a commodity cluster that does
- not yet have an MPI implementation, the free, open source MPICH is recommended.
- It is available at: http://www-unix.mcs.anl.gov/mpi/mpich/ 
+ A popular choice is 
+\begin_inset LatexCommand htmlurl
+name "MPICH"
+target "www-unix.mcs.anl.gov/mpi/mpich"
+
+\end_inset
+
+.
+ Installing MPICH from source involves walking through the standard GNU
+ build procedure (
+\family typewriter
+configure && make && make install
+\family default
+).
 \end_layout
 
 \begin_layout Standard
-If you will be running StGermain on a cluster or machine that already has
- an MPI implementation installed, you should go ahead and set up the environment
+Linux users may have a prebuilt MPI package available for their distribution.
+ On Mac OS X, the Fink package manager offers a prepackaged version of 
+\begin_inset LatexCommand htmlurl
+name "LAM/MPI"
+target "www.lam-mpi.org"
+
+\end_inset
+
+; so if you have 
+\begin_inset LatexCommand htmlurl
+name "Fink"
+target "fink.sourceforge.net"
+
+\end_inset
+
+ installed, simply enter the following command from a Terminal window to
+ install LAM/MPI:
+\end_layout
+
+\begin_layout LyX-Code
+$ fink install lammpi lammpi-dev
+\end_layout
+
+\begin_layout Standard
+It is highly recommended to you should go ahead and set up the environment
  variables that allow StGermain to use MPI.
  
 \end_layout
@@ -1835,10 +1992,6 @@
 \end_layout
 
 \begin_layout LyX-Code
-export CXX=g++ 
-\end_layout
-
-\begin_layout LyX-Code
 export MPI_DIR=${HOME}/opt/mpich-1.2.7p1 
 \end_layout
 
@@ -1871,10 +2024,6 @@
 \end_layout
 
 \begin_layout LyX-Code
-setenv CXX g++ 
-\end_layout
-
-\begin_layout LyX-Code
 setenv MPI_DIR ${HOME}/opt/mpich-1.2.7p1 
 \end_layout
 
@@ -1923,25 +2072,26 @@
 In tcsh: setenv MPI_MACHINES -machinefile /home/raq/machinefile
 \end_layout
 
-\begin_layout Section
+\begin_layout Subsection
 Libxml2
 \end_layout
 
 \begin_layout Standard
-The Libxml2 library and toolkit are required to handle the input files.
+The Libxml2 library and toolkit are required for Snac to handle the input
+ files.
  Although already included in most of the recent linux systems, it can be
  obtained from http://xmlsoft.org and installed manually.
  Precompiled packages for various linux distributions and OS X are available
  through their own package management softwares, too.
 \end_layout
 
-\begin_layout Section
-Other useful environment variables
+\begin_layout Subsection
+Other environment variables
 \end_layout
 
 \begin_layout Standard
 It is handy to define the following environment variables for both building
- and running Snac.
+ and running SNAC.
 \end_layout
 
 \begin_layout Standard
@@ -1949,26 +2099,22 @@
 \end_layout
 
 \begin_layout LyX-Code
-# Snac 
+export SNAC_DIR=${HOME}/opt/SNAC
 \end_layout
 
 \begin_layout LyX-Code
-export SNAC_DIR=${HOME}/opt/SNAC/build
+export SNAC_BINDIR=${SNAC_DIR}/build/bin 
 \end_layout
 
 \begin_layout LyX-Code
-export SNAC_BINDIR=${SNAC_DIR}/bin 
+export SNAC_INCDIR=${SNAC_DIR}/build/include 
 \end_layout
 
 \begin_layout LyX-Code
-export SNAC_INCDIR=${SNAC_DIR}/include 
+export SNAC_LIBDIR=${SNAC_DIR}/build/lib 
 \end_layout
 
 \begin_layout LyX-Code
-export SNAC_LIBDIR=${SNAC_DIR}/lib 
-\end_layout
-
-\begin_layout LyX-Code
 export PATH=${SNAC_BINDIR}:${PATH}
 \end_layout
 
@@ -1981,45 +2127,110 @@
 \end_layout
 
 \begin_layout LyX-Code
-# Snac 
+setenv SNAC_DIR ${HOME}/opt/SNAC
 \end_layout
 
 \begin_layout LyX-Code
-setenv SNAC_DIR ${HOME}/opt/SNAC/build
+setenv SNAC_BINDIR ${SNAC_DIR}/build/bin 
 \end_layout
 
 \begin_layout LyX-Code
-setenv SNAC_BINDIR ${SNAC_DIR}/bin 
+setenv SNAC_INCDIR ${SNAC_DIR}/build/include 
 \end_layout
 
 \begin_layout LyX-Code
-setenv SNAC_INCDIR ${SNAC_DIR}/include 
+setenv SNAC_LIBDIR= ${SNAC_DIR}/build/lib 
 \end_layout
 
 \begin_layout LyX-Code
-setenv SNAC_LIBDIR= ${SNAC_DIR}/lib 
+setenv PATH ${SNAC_BINDIR}:${PATH}
 \end_layout
 
 \begin_layout LyX-Code
-setenv PATH ${SNAC_BINDIR}:${PATH}
+setenv LD_LIBRARY_PATH ${SNAC_LIBDIR}:${LD_LIBRARY_PATH}
 \end_layout
 
+\begin_layout Section
+Downloading and Unpacking Source
+\end_layout
+
+\begin_layout Standard
+Download SNAC from the 
+\begin_inset LatexCommand htmlurl
+name "Geodynamics website"
+target "geodynamics.org"
+
+\end_inset
+
+.
+ Click the 
+\family sans
+software
+\family default
+ tab at the top of the page.
+ Then click 
+\family sans
+Software Packages
+\family default
+, then 
+\family sans
+Long-Term Crustal Dynamics
+\family default
+.
+ Once you click the SNAC link, download the source archive and unpack it
+ using the 
+\family typewriter
+tar
+\family default
+ command: 
+\end_layout
+
 \begin_layout LyX-Code
-setenv LD_LIBRARY_PATH ${SNAC_LIBDIR}:${LD_LIBRARY_PATH}
+$ tar xzf SNAC-1.0.0.tar.gz
 \end_layout
 
+\begin_layout Standard
+If you don't have GNU Tar, try the following command instead: 
+\end_layout
+
+\begin_layout LyX-Code
+$ gunzip -c SNAC-1.0.0.tar.gz | tar xf -
+\end_layout
+
 \begin_layout Section
-Configuring using the VMake build system
+Installation Procedure
 \end_layout
 
+\begin_layout Standard
+After unpacking the source, use the following procedure to install SNAC:
+\end_layout
+
 \begin_layout Enumerate
-Tell the build system where libraries are as described above.
+Navigate (i.e., 
+\family typewriter
+cd
+\family default
+) to the directory containing the SNAC source
+\family typewriter
+.
+\newline
+
+\newline
+$ cd SNAC-1.0.0
 \end_layout
 
 \begin_layout Enumerate
-Type 
+Type .
 \family typewriter
-./configure.sh 
+/configure.sh
+\family default
+ to configure the package for your system
+\family typewriter
+.
+\newline
+
+\newline
+$ ./configure.sh
 \end_layout
 
 \begin_layout Enumerate
@@ -2027,10 +2238,39 @@
 \family typewriter
 make
 \family default
- 
+ to build the package.
+\family typewriter
+
+\newline
+
+\newline
+$ make
 \end_layout
 
 \begin_layout Standard
+All the newly created files during the building procedure are placed in
+ the 
+\family typewriter
+build
+\family default
+ subdirectory.
+ Upon successful completion, the 
+\family typewriter
+make
+\family default
+ command executable 
+\family typewriter
+Snac
+\family default
+ in the 
+\family typewriter
+build/bin
+\family default
+ subdirectory.
+ Currently, installing SNAC into another location is not supported.
+\end_layout
+
+\begin_layout Standard
 The following options can be included in the options argument during configurati
 on in comma-separated form.
  
@@ -2130,9 +2370,132 @@
 \end_layout
 
 \begin_layout LyX-Code
-$ ./configure.sh --options=cautious,memory_stats 
+$ ./configure.sh --options=cautious,memory_stats
 \end_layout
 
+\begin_layout Section
+\begin_inset LatexCommand label
+name "sec:Software-Repository"
+
+\end_inset
+
+Installing from the Software Repository
+\end_layout
+
+\begin_layout Standard
+The SNAC source code is available via a Subversion server at the 
+\begin_inset LatexCommand htmlurl
+name "Geodynamics website"
+target "geodynamics.org"
+
+\end_inset
+
+.
+ This allows users to view the revision history of the code and check out
+ the most recent development version of the software.
+\end_layout
+
+\begin_layout Quote
+
+\series bold
+NOTE:
+\series default
+ If you are content with the prepared source package, you may skip this
+ section.
+\end_layout
+
+\begin_layout Subsection
+Tools You Will Need
+\end_layout
+
+\begin_layout Standard
+In addition to the usual system requirements, you will need a handful of
+ additional development tools installed in order to work with the source
+ from the CIG software repository.
+\end_layout
+
+\begin_layout Standard
+First, you must have a Subversion client installed.
+ To check, type 
+\family typewriter
+svn
+\family default
+; it should return a usage message.
+\end_layout
+
+\begin_layout LyX-Code
+$ svn
+\end_layout
+
+\begin_layout LyX-Code
+Type 'svn help' for usage.
+\end_layout
+
+\begin_layout Standard
+For more information on Subversion, visit the 
+\begin_inset LatexCommand htmlurl
+name "Subversion website"
+target "subversion.tigris.org"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+Download Source from Subversion
+\end_layout
+
+\begin_layout Standard
+To check out the latest version of the software, use the 
+\family typewriter
+svn checkout
+\family default
+ command:
+\end_layout
+
+\begin_layout LyX-Code
+$ svn checkout http://geodynamics.org/svn/cig/long/3D/SNAC/trunk SNAC
+\end_layout
+
+\begin_layout Standard
+This will create the local directory 
+\family typewriter
+SNAC
+\family default
+ (if it doesn't already exist) and fill it with the latest SNAC source from
+ the CIG software repository.
+\end_layout
+
+\begin_layout Standard
+The 
+\family typewriter
+SNAC
+\family default
+ directory thus created is called a 
+\emph on
+working copy
+\emph default
+.
+ To merge the latest changes into an existing working copy, use the 
+\family typewriter
+svn update
+\family default
+ command:
+\end_layout
+
+\begin_layout LyX-Code
+$ cd SNAC
+\end_layout
+
+\begin_layout LyX-Code
+$ svn update
+\end_layout
+
+\begin_layout Standard
+This will preserve any local changes you have made to your working copy.
+\end_layout
+
 \begin_layout Chapter
 Running SNAC
 \end_layout
@@ -2332,8 +2695,7 @@
 \family typewriter
 complete
 \family default
-: Robust force assembly at nodes.
- Should be always used.
+: Robust nodal force assembly.
 \end_layout
 
 \begin_layout Description
@@ -3776,11 +4138,8 @@
  given as arguments.
  The converted output files are always written in the directory where snac2dx
  is run.
- The naming convention for the ascii dx files is 
-\begin_inset Quotes sld
-\end_inset
-
-snac.{processor ID}.{time step in 6 digits}.dx
+ The naming convention for the ascii dx files is ``snac.{processor ID}.{time
+ step in 6 digits}.dx
 \begin_inset Quotes srd
 \end_inset
 
@@ -3863,11 +4222,7 @@
 \begin_layout Standard
 Let's assume that the global mesh has 51 x 31 x 41 nodes and was decomposed
  in 3D by 8 processors.
- Also, we assume that the contents of sim.0 is 
-\begin_inset Quotes sld
-\end_inset
-
-25 15 20
+ Also, we assume that the contents of sim.0 is ``25 15 20
 \begin_inset Quotes srd
 \end_inset
 
@@ -3884,20 +4239,12 @@
 \end_layout
 
 \begin_layout Standard
-The name of a combined file has the format of 
-\begin_inset Quotes sld
-\end_inset
-
-snac.{time step in 6 digits}.dx
+The name of a combined file has the format of ``snac.{time step in 6 digits}.dx
 \begin_inset Quotes srd
 \end_inset
 
 .
- 
-\begin_inset Quotes sld
-\end_inset
-
-snac.000035.dx
+ ``snac.000035.dx
 \begin_inset Quotes srd
 \end_inset
 
@@ -3923,8 +4270,8 @@
 \begin_layout Standard
 A program called snac2vtk is provided to convert the binary outputs from
  Snac to ascii files in the XML VTK Structured Grid format (.vts).
- snac2vtk is compiled during the building process and installed in ${SNAC_BINDIR
-}.
+ snac2vtk is compiled during the building procedure and installed in ${SNAC_BIND
+IR}.
  The usage is
 \end_layout
 
@@ -3941,8 +4288,8 @@
 
 \begin_layout Standard
 snac2vtk automatically generates Parallel VTK Structures Grid files (.pvts)
- for each time step so that there is no need to run an extra script even
- for the parallel cases.
+ for each time step so that there is no need for an extra step to combine
+ data even for the parallel cases.
  However, .vts files should not be removed because .pvts files only refer
  to .vts files rather than contain actual data.
 \end_layout
@@ -5102,1414 +5449,10 @@
 No content was in the original manual
 \end_layout
 
-\begin_layout Chapter
-Installation and Getting Help -- TODO -- for inclusion in earlier sections
-\end_layout
-
-\begin_layout Section
-Introduction
-\end_layout
-
 \begin_layout Standard
-To install SNAC, follow the procedure that is commonly used with other open-sour
-ce software packages.
- First, download the source package (in the form of a compressed 
-\family typewriter
-tar
-\family default
- file) available at the 
-\begin_inset LatexCommand htmlurl
-name "Geodynamics Software Packages web page"
-target "geodynamics.org/cig/software/packages"
 
-\end_inset
-
-.
- After unpacking the source, you run a prepackaged shell script to configure
- SNAC for your system.
- 
 \end_layout
 
-\begin_layout Section
-Getting Help
-\end_layout
-
-\begin_layout Standard
-For help, send e-mail to the 
-\begin_inset LatexCommand htmlurl
-name "CIG Mantle Convection Mailing List"
-target "cig-mc at geodynamics.org"
-
-\end_inset
-
-.
- You can subscribe to the Mailing List and view archived discussion at the
- 
-\begin_inset LatexCommand htmlurl
-name "Geodynamics Mail Lists web page"
-target "geodynamics.org/cig/lists"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Section
-System Requirements
-\end_layout
-
-\begin_layout Standard
-Installation of CitcomS.py requires the following:
-\end_layout
-
-\begin_layout Itemize
-A C compiler
-\end_layout
-
-\begin_layout Itemize
-An MPI library
-\end_layout
-
-\begin_layout Itemize
-Python 2.3 or greater (Python 2.4 or greater is required on 64-bit machines),
- including header files
-\end_layout
-
-\begin_layout Standard
-MPI installations are typically configured for a particular compiler, and
- provide a special wrapper command to invoke the right compiler.
- Therefore, the choice of MPI implementation often determines which C compiler
- to use.
-\end_layout
-
-\begin_layout Quote
-
-\series bold
-Note:
-\series default
- Users familiar with older versions of CitcomS may prefer to install only
- the legacy CitcomS tools, 
-\family typewriter
-CitcomSFull
-\family default
- and 
-\family typewriter
-CitcomSRegional
-\family default
-, and forgo use of Python and the Pyre framework.
- This process requires only a C compiler and an MPI library.
- For more information, see Section 
-\begin_inset LatexCommand ref
-reference "sec:Installing-without-Pyre"
-
-\end_inset
-
- later in this chapter.
-\end_layout
-
-\begin_layout Standard
-If you are going to use solver coupling, you will also need a decent C++
- compiler (e.g., g++ 3.2 or newer) and the Exchanger package; see Section 
-\begin_inset LatexCommand ref
-reference "sec:Exchanger-Configuration-(Optional)"
-
-\end_inset
-
-.
- Optionally, CitcomS can be configured to use a parallel HDF5 library; see
- Section 
-\begin_inset LatexCommand vref
-reference "sec:HDF5-Configuration"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Subsection
-C Compiler
-\end_layout
-
-\begin_layout Standard
-On Unix or Linux systems, there is a high likelihood that a usable C compiler
- is already installed.
- To check, type 
-\family typewriter
-cc
-\family default
- at the shell prompt:
-\end_layout
-
-\begin_layout LyX-Code
-$ cc
-\end_layout
-
-\begin_layout LyX-Code
-cc: no input files
-\end_layout
-
-\begin_layout LyX-Code
-$
-\end_layout
-
-\begin_layout Standard
-On Linux, if the 
-\family typewriter
-cc
-\family default
- command is not found, install GCC using the package manager for your distributi
-on.
-\end_layout
-
-\begin_layout Standard
-The Mac OS X version of GCC is included in a software development suite
- called Xcode.
- Xcode is available as a free download at the 
-\begin_inset LatexCommand htmlurl
-name "Apple Developer Connection"
-target "developer.apple.com"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Quote
-
-\color red
-Warning:
-\color none
- 
-\color black
-If you are using an Intel compiler on an Itanium CPU, do not use the
-\color none
- 
-\family typewriter
-\color black
--O3
-\family default
-\color none
- 
-\color black
-optimization flag as reports indicate that this optimization level will
- generate incorrect codes.
- For any compiler, you should always be careful about the correctness of
- the compiled codes when using an
-\color none
- 
-\family typewriter
-\color black
--O3
-\family default
-\color none
- 
-\color black
-or higher optimization level.
-\end_layout
-
-\begin_layout Subsection
-MPI Library
-\end_layout
-
-\begin_layout Standard
-CitcomS requires a library which implements the MPI standard (either version
- 1 or 2).
- Several free, open-source implementations of MPI are available.
-\end_layout
-
-\begin_layout Standard
-A popular choice is 
-\begin_inset LatexCommand htmlurl
-name "MPICH"
-target "www-unix.mcs.anl.gov/mpi/mpich"
-
-\end_inset
-
-.
- Installing MPICH from source involves walking through the standard GNU
- build procedure (
-\family typewriter
-configure && make && make install
-\family default
-).
-\end_layout
-
-\begin_layout Standard
-Linux users may have a prebuilt MPI package available for their distribution.
- On Mac OS X, the Fink package manager offers a prepackaged version of 
-\begin_inset LatexCommand htmlurl
-name "LAM/MPI"
-target "www.lam-mpi.org"
-
-\end_inset
-
-; so if you have 
-\begin_inset LatexCommand htmlurl
-name "Fink"
-target "fink.sourceforge.net"
-
-\end_inset
-
- installed, simply enter the following command from a Terminal window to
- install LAM/MPI:
-\end_layout
-
-\begin_layout LyX-Code
-$ fink install lammpi lammpi-dev
-\end_layout
-
-\begin_layout Subsubsection
-MPI C Compiler Command
-\end_layout
-
-\begin_layout Standard
-Once you have an MPI library installed, make sure its C complier command
- is on your PATH.
- Unfortunately, the name of this command varies from one MPI implementation
- to the next.
- The CitcomS configuration script searches for the following MPI C command
- names:
-\end_layout
-
-\begin_layout LyX-Code
-mpicc hcc mpcc mpcc_r mpxlc cmpicc
-\end_layout
-
-\begin_layout Subsection
-Python
-\end_layout
-
-\begin_layout Standard
-Your system may already have a suitable Python interpreter installed.
- To check, type the 
-\family typewriter
-python
-\family default
- command:
-\end_layout
-
-\begin_layout LyX-Code
-$ python -V
-\end_layout
-
-\begin_layout LyX-Code
-Python 2.3.4
-\end_layout
-
-\begin_layout Standard
-Mac OS X 10.3 and later ships with a suitable version of Python preinstalled.
- If you're using an older version of Mac OS X, or for more information in
- general, see 
-\begin_inset LatexCommand htmlurl
-name "Python on the Mac"
-target "www.python.org/download/mac"
-
-\end_inset
-
- at the Python web site.
-\end_layout
-
-\begin_layout Standard
-On Linux, simply install the binary system package available for your distributi
-on.
- Be sure to select the Python development package (typically called 
-\family typewriter
-python-dev
-\family default
-) in addition to the core Python package -- even if you don't plan on doing
- any Python software development.
- The development package contains the Python include files, which are necessary
- for building CitcomS.
-\end_layout
-
-\begin_layout Standard
-If you are working on a cluster and 
-\family typewriter
-python
-\family default
- is too old, try poking around a little.
- Sometimes multiple versions of Python are installed on the same system:
-\end_layout
-
-\begin_layout LyX-Code
-$ python -V
-\end_layout
-
-\begin_layout LyX-Code
-Python 2.2.3
-\end_layout
-
-\begin_layout LyX-Code
-$ which python
-\end_layout
-
-\begin_layout LyX-Code
-/usr/bin/python
-\end_layout
-
-\begin_layout LyX-Code
-$ ls /usr/bin/python*
-\end_layout
-
-\begin_layout LyX-Code
-/usr/bin/python /usr/bin/python2 /usr/bin/python2.2
-\end_layout
-
-\begin_layout LyX-Code
-/usr/bin/python24 /usr/bin/python2.4
-\end_layout
-
-\begin_layout LyX-Code
-$
-\end_layout
-
-\begin_layout Standard
-In the above scenario, it is useful to create an alias to the newer Python:
-\end_layout
-
-\begin_layout LyX-Code
-$ cd ~/bin
-\end_layout
-
-\begin_layout LyX-Code
-$ ln -s /usr/bin/python2.4 python
-\end_layout
-
-\begin_layout LyX-Code
-$ cd
-\end_layout
-
-\begin_layout LyX-Code
-$ hash -r
-\end_layout
-
-\begin_layout LyX-Code
-$ which python
-\end_layout
-
-\begin_layout LyX-Code
-~/bin/python
-\end_layout
-
-\begin_layout LyX-Code
-$ python -V
-\end_layout
-
-\begin_layout LyX-Code
-Python 2.4.1
-\end_layout
-
-\begin_layout LyX-Code
-$
-\end_layout
-
-\begin_layout Standard
-If absolutely necessary, one can easily build Python from source using a
- C compiler.
- You can download Python from the 
-\begin_inset LatexCommand htmlurl
-name "Python website"
-target "www.python.org"
-
-\end_inset
-
-.
- 
-\end_layout
-
-\begin_layout Section
-Downloading and Unpacking Source
-\end_layout
-
-\begin_layout Standard
-Download CitcomS.py from the 
-\begin_inset LatexCommand htmlurl
-name "Geodynamics website"
-target "geodynamics.org"
-
-\end_inset
-
-.
- Click the 
-\family sans
-software
-\family default
- tab at the top of the page.
- Then click 
-\family sans
-Software Packages
-\family default
-, then 
-\family sans
-Mantle Convection
-\family default
-.
- Once you click the CitcomS link, download the source archive and unpack
- it using the 
-\family typewriter
-tar
-\family default
- command: 
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xzf CitcomS-3.0.3.tar.gz
-\end_layout
-
-\begin_layout Standard
-If you don't have GNU Tar, try the following command instead: 
-\end_layout
-
-\begin_layout LyX-Code
-$ gunzip -c CitcomS-3.0.3.tar.gz | tar xf -
-\end_layout
-
-\begin_layout Section
-Installation Procedure
-\end_layout
-
-\begin_layout Standard
-After unpacking the source, use the following procedure to install CitcomS:
-\end_layout
-
-\begin_layout Enumerate
-Navigate (i.e., 
-\family typewriter
-cd
-\family default
-) to the directory containing the CitcomS source
-\family typewriter
-.
-\newline
-
-\newline
-$ cd CitcomS-3.0.3
-\end_layout
-
-\begin_layout Enumerate
-Type .
-\family typewriter
-/configure
-\family default
- to configure the package for your system
-\family typewriter
-.
-\newline
-
-\newline
-$ ./configure
-\end_layout
-
-\begin_layout Enumerate
-Type 
-\family typewriter
-make
-\family default
- to build the package.
-\family typewriter
-
-\newline
-
-\newline
-$ make
-\end_layout
-
-\begin_layout Standard
-If you are content to run CitcomS from the build directory, then you are
- done.
- Upon successful completion, the 
-\family typewriter
-make
-\family default
- command creates a script called 
-\family typewriter
-citcoms
-\family default
- in the 
-\family typewriter
-bin
-\family default
- subdirectory; this is the script you will use to run CitcomS.
- You may wish to add the 
-\family typewriter
-bin
-\family default
- directory to your 
-\family typewriter
-PATH
-\family default
-.
-\end_layout
-
-\begin_layout Standard
-For more details about 
-\family typewriter
-configure
-\family default
-, see Section 
-\begin_inset LatexCommand ref
-reference "sec:Configuration"
-
-\end_inset
-
- below.
-\end_layout
-
-\begin_layout Subsection
-Installing to a Secondary Location
-\end_layout
-
-\begin_layout Standard
-Optionally, after building CitcomS, you can install it in a secondary location
- using the 
-\family typewriter
-make install
-\family default
- command.
-\end_layout
-
-\begin_layout Quotation
-
-\series bold
-Note:
-\series default
- The following is not recommended if you plan on modifying the CitcomS source.
-\end_layout
-
-\begin_layout Standard
-By default, CitcomS is configured to install under 
-\family typewriter
-/usr/local
-\family default
-, which requires that you become 
-\family typewriter
-root
-\family default
- before issuing the 
-\family typewriter
-make install
-\family default
- command.
-\end_layout
-
-\begin_layout LyX-Code
-
-\family typewriter
-$ su
-\end_layout
-
-\begin_layout LyX-Code
-
-\family typewriter
-Password:
-\end_layout
-
-\begin_layout LyX-Code
-
-\family typewriter
-# make install
-\end_layout
-
-\begin_layout Standard
-To install as an ordinary user instead of 
-\family typewriter
-root
-\family default
-, give 
-\family typewriter
-configure
-\family default
- the 
-\family typewriter
---prefix
-\family default
- option, specifying a directory to which you have write access:
-\end_layout
-
-\begin_layout LyX-Code
-$ cd CitcomS-3.0.3
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure --prefix=$HOME/cig
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout Standard
-The above commands will install CitcomS under 
-\family typewriter
-$HOME/cig
-\family default
-.
- Afterwards, you may wish to add 
-\family typewriter
-PREFIX/bin
-\family default
- (
-\family typewriter
-$HOME/cig/bin
-\family default
-, in this example) to your 
-\family typewriter
-PATH
-\family default
-.
-\end_layout
-
-\begin_layout Standard
-After running 
-\family typewriter
-make install
-\family default
-, you may (if desired) run 
-\family typewriter
-make clean
-\family default
- in the build directory to save disk space.
- You are also free to delete the source/build directory altogether.
- (Note that 
-\family typewriter
-make install
-\family default
- installs the examples under 
-\family typewriter
-PREFIX/share/CitcomS/examples
-\family default
-.)
-\end_layout
-
-\begin_layout Section
-\begin_inset LatexCommand label
-name "sec:Configuration"
-
-\end_inset
-
-Configuration
-\end_layout
-
-\begin_layout Standard
-The 
-\family typewriter
-configure
-\family default
- script checks for various system features.
- As it runs, it prints messages informing you of which features it is checking
- for.
- Upon successful completion, it generates a 
-\family typewriter
-Makefile
-\family default
- in each source directory of the package.
- It also generates a 
-\family typewriter
-config.h
-\family default
- header file, which contains system-dependent definitions.
- 
-\end_layout
-
-\begin_layout Standard
-The 
-\family typewriter
-configure
-\family default
- script will attempt to guess the correct values of various installation
- parameters.
- In the event that the default values used by 
-\family typewriter
-configure
-\family default
- are incorrect for your system, or 
-\family typewriter
-configure
-\family default
- is unable to guess the value of a certain parameter, you may have to specify
- the correct value by hand.
-\end_layout
-
-\begin_layout Quote
-
-\series bold
-Important:
-\series default
- If the 
-\family typewriter
-configure
-\family default
- script fails, and you don't know what went wrong, examine the log file
- 
-\family typewriter
-config.log
-\family default
-.
- This file contains a detailed transcript of all the checks 
-\family typewriter
-configure
-\family default
- performed.
- More importantly, it includes the error output (if any) from your compiler.
- When seeking help for 
-\family typewriter
-configure
-\family default
- failures on the 
-\begin_inset LatexCommand htmlurl
-name "CIG Mantle Convection Mailing List"
-target "cig-mc at geodynamics.org"
-
-\end_inset
-
-, please send 
-\family typewriter
-config.log
-\family default
- as an attachment.
-\end_layout
-
-\begin_layout Standard
-Upon successful completion, 
-\family typewriter
-configure
-\family default
- will print a brief configuration summary.
-\end_layout
-
-\begin_layout Standard
-The 
-\family typewriter
-configure
-\family default
- script will automatically check for needed Python dependencies, including
- the Pythia package (which includes the Pyre framework).
- If necessary, 
-\family typewriter
-configure
-\family default
- will download missing Python packages from the Internet.
-\end_layout
-
-\begin_layout Standard
-CitcomS 3.0.1 requires Pythia v0.8.1.x, which 
-\family typewriter
-configure
-\family default
- downloads directly from CIG.
- (Pythia v0.8.1.x is distinct from Pythia v0.8, which you may have installed
- previously.) Pythia v0.8.1.x is pure Python, and resides in a file or directory
- with the extension 
-\family typewriter
-.egg
-\family default
- (e.g., 
-\family typewriter
-pythia-0.8.1.0.egg
-\family default
-).
- The 
-\family typewriter
-configure
-\family default
- script may download other 
-\family typewriter
-.egg
-\family default
- packages, in addition to Pythia, and store them under 
-\family typewriter
-\shape italic
-\emph on
-deps/
-\family default
-\shape default
-\emph default
-.
- These are Python packages which are required (either directly or indirectly)
- by CitcomS.py.
-\end_layout
-
-\begin_layout Subsection
-Configure Usage
-\end_layout
-
-\begin_layout Standard
-For a detailed list of 
-\family typewriter
-configure
-\family default
- variables and options, give 
-\family typewriter
-configure
-\family default
- the 
-\family typewriter
---help
-\family default
- option:
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure --help
-\end_layout
-
-\begin_layout Standard
-The following is a summary of the variables and options that are important
- when installing CitcomS.
- 
-\end_layout
-
-\begin_layout Subsection
-Environment Variables
-\end_layout
-
-\begin_layout Standard
-Environment variables may be specified as arguments to 
-\family typewriter
-configure
-\family default
-, e.g.,
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure CC=icc # use the Intel compiler
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float table
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="2">
-<features>
-<column alignment="center" valignment="top" leftline="true" width="1in">
-<column alignment="left" valignment="top" leftline="true" rightline="true" width="3.5in">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\series bold
-Variable
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\series bold
-Description
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-PYTHON
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Python interpreter.
- This is useful if you have Python installed in a non-standard location,
- e.g.,
-\end_layout
-
-\begin_layout Standard
-
-\family typewriter
-\InsetSpace ~
-\InsetSpace ~
-./configure 
-\backslash
-
-\end_layout
-
-\begin_layout Standard
-
-\family typewriter
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-PYTHON=/opt/python2.3/bin/python
-\family default
- 
-\end_layout
-
-\begin_layout Standard
-By default, 
-\family typewriter
-configure
-\family default
- will search for a suitable Python interpreter using your 
-\family typewriter
-PATH
-\family default
- environment variable.
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-CC
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-C compiler command.
- This is usually set to the name of an MPI wrapper command.
- See Section 
-\begin_inset LatexCommand vref
-reference "sec:MPI-Configuration"
-
-\end_inset
-
- for details and examples.
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-CPPFLAGS
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-C preprocessor flags; e.g., 
-\family typewriter
--I<dir>
-\family default
- if you have headers in a nonstandard directory.
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-LDFLAGS
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-linker flags; e.g., 
-\family typewriter
--L<dir>
-\family default
- if you have libraries in a nonstandard directory.
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-\begin_inset LatexCommand label
-name "sec:MPI-Configuration"
-
-\end_inset
-
-MPI Configuration
-\end_layout
-
-\begin_layout Standard
-By default, 
-\family typewriter
-configure
-\family default
- will search for a C compiler using your 
-\family typewriter
-PATH
-\family default
- environment variable.
- It prefers MPI wrapper commands (such as 
-\family typewriter
-mpicc
-\family default
-) to ordinary compiler commands (such as 
-\family typewriter
-cc
-\family default
- or 
-\family typewriter
-gcc
-\family default
-).
- You may specify the compiler command name manually using the 
-\family typewriter
-CC
-\family default
- variable:
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure CC=/opt/mpich-1.2.6/bin/mpicc
-\end_layout
-
-\begin_layout Standard
-The 
-\family typewriter
-configure
-\family default
- script will test for the presence of the MPI header (
-\family typewriter
-mpi.h
-\family default
-) and an MPI library using the C compiler command.
- If 
-\family typewriter
-CC
-\family default
- is set to an MPI wrapper command such as 
-\family typewriter
-mpicc
-\family default
-, and/or the MPI header and library files are installed in a standard location
- (i.e., 
-\family typewriter
-/usr/include
-\family default
- and 
-\family typewriter
-/usr/lib
-\family default
-), these 
-\family typewriter
-configure
-\family default
- tests should succeed without difficulty.
-\end_layout
-
-\begin_layout Standard
-But if CC is set to an ordinary compiler command name (e.g., 
-\family typewriter
-cc
-\family default
- or 
-\family typewriter
-gcc
-\family default
-) and MPI is installed in a non-standard location, you must manually specify
- 
-\family typewriter
-CPPFLAGS
-\family default
- and 
-\family typewriter
-LDFLAGS
-\family default
-, so that the compiler can find the MPI header files and libraries.
-\end_layout
-
-\begin_layout Subsubsection
-Manually Specifying MPI 
-\family typewriter
-include
-\family default
- and 
-\family typewriter
-lib
-\family default
- Directories
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-CPPFLAGS="-I/opt/mpich-1.2.6/include" 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-LDFLAGS="-L/opt/mpich-1.2.6/lib -lmpich"
-\end_layout
-
-\begin_layout Subsubsection
-Manually Specifying MPI 
-\family typewriter
-include
-\family default
- and 
-\family typewriter
-lib
-\family default
- Directories and an Alternative Compiler
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-CC=icc 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-CPPFLAGS="-I/opt/mpich-1.2.6/include" 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-LDFLAGS="-L/opt/mpich-1.2.6/lib -lmpich"
-\end_layout
-
-\begin_layout Standard
-Note that it may be necessary to specify the name of the MPI library itself
- in 
-\family typewriter
-LDFLAGS
-\family default
- using the 
-\family typewriter
--l
-\family default
- compiler option.
- If a library name is not given -- or if the given option doesn't work --
- 
-\family typewriter
-configure
-\family default
- will automatically try linking using 
-\family typewriter
--lmpi
-\family default
- and, if that fails, 
-\family typewriter
--lmpich
-\family default
-.
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout Section
-\begin_inset LatexCommand label
-name "sec:Software-Repository"
-
-\end_inset
-
-Installing from the Software Repository
-\end_layout
-
-\begin_layout Standard
-The CitcomS source code is available via a Subversion server at the 
-\begin_inset LatexCommand htmlurl
-name "Geodynamics website"
-target "geodynamics.org"
-
-\end_inset
-
-.
- This allows users to view the revision history of the code and check out
- the most recent development version of the software.
-\end_layout
-
-\begin_layout Quote
-
-\series bold
-NOTE:
-\series default
- If you are content with the prepared source package, you may skip this
- section.
-\end_layout
-
-\begin_layout Subsection
-Tools You Will Need
-\end_layout
-
-\begin_layout Standard
-In addition to the usual system requirements, you will need a handful of
- additional development tools installed in order to work with the source
- from the CIG software repository.
-\end_layout
-
-\begin_layout Standard
-First, you must have a Subversion client installed.
- To check, type 
-\family typewriter
-svn
-\family default
-; it should return a usage message.
-\end_layout
-
-\begin_layout LyX-Code
-$ svn
-\end_layout
-
-\begin_layout LyX-Code
-Type 'svn help' for usage.
-\end_layout
-
-\begin_layout Standard
-For more information on Subversion, visit the 
-\begin_inset LatexCommand htmlurl
-name "Subversion website"
-target "subversion.tigris.org"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-Second, you must have the GNU tools Autoconf, Automake, and Libtool installed.
- To check, enter the following commands:
-\end_layout
-
-\begin_layout LyX-Code
-$ autoconf --version
-\end_layout
-
-\begin_layout LyX-Code
-$ automake --version
-\end_layout
-
-\begin_layout LyX-Code
-$ libtoolize --version
-\end_layout
-
-\begin_layout Standard
-For more information about these GNU tools, see the 
-\begin_inset LatexCommand htmlurl
-name "GNU website"
-target "www.gnu.org/software"
-
-\end_inset
-
-.
- The CitcomS v3.0.3 source package was created with Autoconf 2.59, Automake
- 1.9.2, and Libtool 1.5.6.
-\end_layout
-
-\begin_layout Subsection
-Download Source from Subversion
-\end_layout
-
-\begin_layout Standard
-To check out the latest version of the software, use the 
-\family typewriter
-svn checkout
-\family default
- command:
-\end_layout
-
-\begin_layout LyX-Code
-$ svn checkout http://geodynamics.org/svn/cig/long/3D/SNAC/trunk SNAC
-\end_layout
-
-\begin_layout Standard
-This will create the local directory 
-\family typewriter
-SNAC
-\family default
- (if it doesn't already exist) and fill it with the latest SNAC source from
- the CIG software repository.
-\end_layout
-
-\begin_layout Standard
-The 
-\family typewriter
-SNAC
-\family default
- directory thus created is called a 
-\emph on
-working copy
-\emph default
-.
- To merge the latest changes into an existing working copy, use the 
-\family typewriter
-svn update
-\family default
- command:
-\end_layout
-
-\begin_layout LyX-Code
-$ cd SNAC
-\end_layout
-
-\begin_layout LyX-Code
-$ svn update
-\end_layout
-
-\begin_layout Standard
-This will preserve any local changes you have made to your working copy.
-\end_layout
-
 \begin_layout Chapter
 \begin_inset LatexCommand label
 name "cha:License"



More information about the CIG-COMMITS mailing list