Two-integral Jeans Modeling Software
Authors
-------
* Roeland P. van der Marel,
1989-1992 : program development
1997 : minor modifications and installation on Sun Ultra 170
address : Space Telescope Science Institute
Research Programs Office (RPO)
3700 San Martin Drive
Baltimore, MD 21218
Tel : (+1) 410 338 4931
Fax : (+1) 410 338 4596
e-mail : marel@stsci.edu
homepage : http://sol.stsci.edu/~marel/
* James J. Binney
1985-1989 : algorithm development and initial fortran implementation
address : James J. Binney
Oxford University
Department of Theoretical Physics
Keble Road
Oxford OX1 3NP
Great-Britain
Tel : (+44) 1865 273979
Fax : (+44) 1865 273947
e-mail : binney@thphys.ox.ac.uk
Collaborators
-------------
Development of these programs took place in collaborative efforts with
Roger Davies, Garth Illingworth and Pierantonio Cinzano.
Summary of the method
---------------------
The observed kinematics of an (early-type) galaxies are modeled
starting from observed surface photometry, using the assumptions of:
- axisymmetry
- constant mass-to-light ratio
- a distribution function of the form f(E,Lz)
Both oblate and prolate models can be constructed. For oblate models
it is possible to assume that there is an infinitesimally thin disk
in the equatorial plane.
References
----------
The method and various applications are discussed at length in the following
papers:
- Binney, Davies & Illingworth 1990, ApJ, 361, 78
- van der Marel, Binney & Davies 1990, MNRAS, 245, 582
- van der Marel 1991, MNRAS, 253, 710
- Cinzano & van der Marel 1994, MNRAS, 270, 325-340
The latter three can be retrieved from the homepage of R. van der Marel.
Acknowledgments
---------------
If you have found this software useful for your research, we would
appreciate an acknowledgment to `use of the Two-integral Jeans Modeling
Software developed by R.P. van der Marel and J.J. Binney'.
Bug Reports
-----------
Please send bug reports and important comments or questions to
marel@stsci.edu
Caveats
-------
This software comes without guarantee and on an `as is' basis. It is
not being actively maintained or upgraded.
All original testing of the code was done on a UNIX Sparc 2
workstation with the SunOS operating system in the period
1989-1992. In 1997 I made several minor modifications in the code to
make it run properly on a Sun Ultra 170 workstation with the solaris
operating system, and to correct some minor bugs that had been
reported to me by various people. However, no further detailed testing
of the revised code was performed.
It is not guaranteed that the software will work without problems on
other platforms, with different operating systems and different
compilers. However, the code is close to standard fortran, so if any,
only minor revisions will be necessary.
The dynamical modeling programs require no external software. However,
to make plots of the results with the program dynprog/aftmon, you will
need to link this program to the standard MONGO (copyright: John
L. Tonry) library. To use a different package, such as SuperMongo, you
will need to rewrite the program dynprog/aftmon (should not be a major
hassle).
I will consider all requests for use of this software. However, I do
not allow people who have received the software from me to distribute
it to third parties. Anyone who uses this software is encouraged to
send me an email with their address, so that I can send the reports of
bugs and revisions.
Dynamical modeling with the enclosed software can be tricky, and
non-transparent. An understanding of the underlying physics is
required. So please do not draw inferences from this software in a
quick-and-dirty manner. This will almost certainly lead to erroneous
results.
Directory structure
-------------------
The directory structure of the software is as follows:
dynprog : source of the main programs
dynsub : subroutines used by the main programs
surfprog : programs to prepare surface photometry data for input into the
models
kinprog : programs to prepare kinematical data for input into the
models
lib : object libraries
bin : executables of all the programs
examples : examples of the use of the programs
README : this file
Installation
------------
To install the software, edit the file setup.com. All site dependent
environment variables should be made to point at the correct directories
and libraries. Then issue the UNIX command
prompt> source install.com
This will construct all executables and put them in the directory bin.
Once the programs have been installed and the executables created, the
environment variables in setup.com are not needed anymore. However, they
are required every time any of the programs is recompiled. Users who
will be modifying the programs regularly may wish to add the command
source ....path..../setup.com
to their .cshrc file (where ....path.... should be the path to the directory
that contains the file setup.com).
Main Programs
-------------
The main programs are contained in the directory dynprog/. The three
programs dynmain1, dynmain2 and dynmain3 do the actual modeling. The
program aftmon serves to plot the results. The directory dynsub/
contains subroutines that are linked to the main programs.
Here is a short description of the programs, and of the subroutines that
they use.
dynmain1.f :
____________
This program reads surface photometry data, and deprojects it using
Lucy's algorithm. The program requires a file grid.dat to set up the grid.
An example file grid.dat is contained in the directory examples/.
dynsub1a.f : subroutines to read input surface photometry and
interpolate onto grid.
dynsub1b.f : subroutines to fit a Hubble, Jaffe or Hernquist model
to the surface photometry on the grid, used as an initial
guess for the Lucy iteration.
dynsub1c.f : Subroutines to perform the Lucy iteration.
dynmain2.f :
_____________
This program reads a three dimensional axisymmetric luminosity density,
evaluates the potential using a multipole expansion, and solves the Jeans
equations to find sig^2 and v_phi^2 for every point in the meridional plane.
It is assumed that f=f(E,L_z) and that the galaxy has constant mass-to-light
ratio. Possibility to add to the potential a contribution of a disk
component. Possibility to test with a Satoh model.
dynsub2a.f : Subroutines to evaluate the potential that corresponds
to the 3D density on the grid.
dynsub2b.f : Subroutines to include the potential of a disk.
dynsub2c.f : Subroutines to evaluate Bessel functions.
dynmain3.f :
_____________
This program reads 3D-velocities and projects them onto the sky
dynsub3a.f : Subroutines to projected quantities onto the plane of
the sky.
dynsub3b.f : Subroutines to plot projected quantities along individual
slits.
dynsub3c.f : Subroutines to plot the ratio of major and minor axis
kinematics.
dynsub3d.f : Subroutines to fit a Gaussian to a double Gaussian
velocity profile, and to calculate Gauss-Hermite moments.
Used in the case in which the galaxy consists of separate
bulge and disk components.
dynsub3e.f : Subroutines to plot the results for the case in which
the galaxy consists of separate bulge and disk components.
subroutines used by multiple programs :
---------------------------------------
dynsub4.f : Cubic Spline interpolation subroutines from
Numerical Recipes (Press et. al.)
prepmon.f : mongo preprocessor. Dummy subroutines which are called from
the modeling programs to write to files plt*. The latter
can be transformed into real plots using aftmon.f
aftmon.f :
___________
This is the mongo `afterprocessor'. It reads files plt* created by
either dynmain1 or dynmain3, and uses MONGO to make plots that
can be send to a terminal or printer. See the comments under `Caveats'
above if you do not have access to MONGO.
mongo83.f : subroutines that convert from MONGO 1983 to MONGO 1987.
Preparing data for input into the modeling software
---------------------------------------------------
The program dynmain1 reads surface photometry data for a particular
galaxy, whereas the program dynmain3 reads kinematical data. These
data must be stored in files with particular names, so that the
programs can find them. Also they must be written in a particular
fashion so that the programs can understand them. The subdirectories
/kinprog and /surfprog contain programs that write such files. The
user must input the data by answering the questions of the programs.
Here is a short description of the files in surfprog/ and kinprog/:
surfprog/
surfmake.f : create a file containing a table of radii, surface
brightnesses, ellipticities, and cos(4theta) deviations.
The standard name of the output file is sp9999
if the galaxy is NGC 9999.
fillin.f : fit a Hubble, Hernquist, or Jaffe profile to the data
over a certain radial range. Use this model to
write a new surface photometry file in which the data
is extrapolated inwards to the inner edge of the grid,
using this particular model. The standard name of the
output file is sp9999l (for Hernquist extrapolation),
sp9999h (for Hubble extrapolation), or sp9999j
(for Jaffe extrapolation). Note: this step may not
be necessary if one uses high spatial resolution surface
photometry from HST, that extends all the way into the center
of the galaxy.
fillall.f : does the same as fillin.f, but now for many galaxies at the
same time.
kinprog/
kinmake.f : create a file containing radii, rotation velocities, and
formal errors, followed by radii, dispersions and formal
errors. Possibility to include a second dataset too (for
example data from other authors). The standard names of the
output files are
kin9999a for major axis data of NGC 9999
kin9999b for minor axis data of NGC 9999
kinz.f : if the velocities in the above output files are heliocentric
rather than rotation velocities, subtract the systemic
velocity.
kinrms.f : Read a kin-file and add at the bottom a table of radii,
SQRT(v^2 + sig^2) values and formal errors.
For this program to work one must first edit the kin-file,
adding an integer at the end of each row. The program
kinrms then takes v and sigma vales with the same integer
together to form one SQRT(v^2 + sig^2) value.
kinrat.f : This program reads files kin9999a and kin9999b
and creates a file kin9999m. This file
contains radii, values of SQRT(v^2+sig^2)_maj /
SQRT(v^2+sig^2)_min, and formal errors. For this program
to work, the files kin9999a and kin9999b must first
have been edited. At the end of each line that contains a
SQRT(v^2 + sig^2) value an integer must have been added.
The program kinrat takes all lines with the same integer
together to form one value of SQRT(v^2+sig^2)_maj /
SQRT(v^2+sig^2)_min.
Examples
--------
The subdirectory /examples contains example files that can be used to
run all programs on the case of NGC 2974. Please go to the directory
examples/, read the file examples.com, and the issue the command
prompt> source examples.com
This will allow you to test whether everything has been properly
installed. If everything is OK, you should be able to reproduce the
postscript files in the directory examples/ yourself.
Miscellaneous comments
----------------------
The paper by Cinzano & van der Marel, referenced above, explicitly
modeled the filtering in Fourier space that is done in the analysis of
real spectroscopic and kinematical data. However, this modeling of
Fourier filtering has not been implemented in the current set of
programs.
Known Bugs
----------
The line-of-sight projection of the intrinsic dynamical quantities is
more inaccurate for lower inclinations (i.e., more face-on
viewing). See the discussion in dynsub/franx/README.
(Note: the deprojection of the surface photometry is of course also
less well constrained for lower inclinations [it is unique only for
edge-on viewing]. However, this is a physical limitation, not a bug
in the programs).
Roeland van der Marel.
Return to my home page.
Last modified December 8, 1998.
Roeland van der Marel,
marel@stsci.edu.
Copyright © 1998 The Association of Universities for
Research in Astronomy, Inc. All Rights Reserved.