Anmhd (short for anelastic magnetohydrodynamic solver) solves the three-dimensional system of magnetohydrodynamic equations in the anelastic approximation using a streamfunction formalism. The system is solved on a uniform Cartesian mesh. For a description of the numerical techniques, and the anelastic formalism in general, see * Fan Y., Zweibel, E. G., Linton, M. G., & Fisher, G. H., 1999, ApJ, 521, 460 * Abbett, W. P., Fisher, G. H., & Fan, Y., 2001, ApJ, 546, 1194 and references therein. Anmhd-1.0.2 can be downloaded from http://solarmuri.ssl.berkeley.edu/public/software/Anmhd/ -------------------- Contact information: -------------------- Dave Bercik Bill Abbett ------------------------------------ To install the Anmhd-1.0.2 software: ------------------------------------ 1) Unpack the compressed tarball in the directory where you want it to reside. tar -zxvf Anmhd-1.0.2.tar.gz 2) The software will be installed under the directory Anmhd-1.0.2. In the Anmhd-1.0.2 directory there are five subdirectories: prog - the main source directory run - the main run directory init - the initial state source directory initrun - the initial state run directory idl - a directory with some example IDL I/O procedures utilities - unformatted fortran to sdf conversion tools 3) There are a few external code dependencies. First, an external FFT program must be linked in when compiling. A few common routines on different platforms can be set with pre-processor directives as described below. A second external dependency is that lapack and blas packages must be linked in when compiling. Many platforms have these packages available in a standard install, but optimized vendor versions can be used as well. If you wish to use "Simple Data Format" (SDF) for the binary file i/o for anmhd, then this package must be linked in when compiling as well. If not, the code will use unformatted fortran for binary i/o. SDF files have the advantage of being platform independent, so that they can be easily moved to other systems for further analysis. Fortran unformatted files differ between compilers and platforms and can be endian-dependent, but on the other hand, fortran unformatted file i/o is probably faster. The SDF source code and installation instructions can be obtained from: http://solarmuri.ssl.berkeley.edu/~fisher/public/software/SDF . Get version 0.74 (or more recent). Pre-processor flags: ------------------- CRAY - use scfft2d/csfft2d for FFT, use shared-memory multitasking FFTW2 - support for FFTW2 libraries (not compatible with CRAY, IBM, SGI) FFTW3 - support for FFTW3 libraries (not compatible with CRAY, IBM, SGI) IBM - use drcft2/dcrft2 for FFT INTEL - set for x86 and x86-64 platforms OPENMP - support for OpenMP parallel libraries (not compatible with CRAY, IBM, INTEL) PPIV - use LAPACK genral banded matrix solver with partial pivoting instead of default pentadiagonal matrix solver SGI - use dzfft2du/zdfft2du for FFT SINGLE - set for systems where default precision is double precision (not compatible with CRAY) SDF - use sdf format for binary file i/o instead of unf. fortran i/o ------------------- To use Anmhd-1.0.2: ------------------- 1) First, you need to make an initial state, which needs to be named fatmos.dat (or fatmos.sdf if using SDF). There are some example initialization routines in the init directory. You should modify one of the examples to suit your needs. Make sure that your file is symbolically linked to the file init.F. The example initialization routines are as follows: init_scratch_hd.F - a purely hydrodynamic starting state with random entropy fluctuations init_rfatmos.F - generates a fresh starting state from a restart Fourier- variables data file init_rfatmos_addB.F - generates a fresh starting state from a restart Fourier-variables data file and adds random magnetic field fluctuations init_rpatmos.F - generates a fresh starting state from a physical-variables data file 2) Edit the files paramt.h and paramz.h in the include subdirectory to indicate the desired grid size for the simulation. Note that n1=nx, n2=ny and n3=nz 3) Edit the appropriate makefile for your architecture in the makefiles subdirectory. Make sure that the C pre-processor definition CPP is consistent with its location on your system. Make sure you have set pre-processor flags for any of the desired software libraries, as noted above. This is done by editing the CPPFLAGS variable in the Makefile, using -D