Proteus Documentation
1.1-development (MasterShake)
Proteus is an environment for generalized quantitative scientific analysis of the output of grid-based astrophysical hydrodynamical codes. Proteus is the library of basic data structures and functions necessesary to efficiently and simply manage 2 or 3-dimensional hydrodynamic data, and is used by other tools to calculate interesting astronomical observables, e.g. X-ray images, spectra, multi-wavelength long-slit emission or absorption line spectra, as well as quantiofy the basic physical properties of the data.
The emphasis of Proteus at present is to provide an environment in which essentially any 2-D or 3-D grid-based simulation can easily and consistently be processed to calculate the observable properties (at whatever observational wavelength, be it IR, optical, FUV, X-ray etc) of the modelled scenario using accurate physics.
The real aim is to move away from the current way astrophysical hydrodynamics is done, in which theorists produce a simulation and a variety of pretty pictures and some plotted variables, all of which are visually impressive but have little or no relation to direct observables, and where there is little effort to quantitatively test the simulations against observational reality. Many of these simulations would be shown to be physically incorrect, meaningless or otherwise unrealistic if the observables had been calculated. Even papers which play lip service to the idea of the observable properties of their models do this in such a simplistic way as to get incorrect results - a common example is assuming that the soft X-ray emissivity is proportional to n^2 T^0.5 (only true for pure Bremsstrahlung) when in fact line emission is the dominant process and hence its crudely proportional to n^2 T^-0.5. Continuing with the example of X-ray emission, with Proteus we can calculate the X-ray emissivity exactly, using one of several hot plasma codes, at an arbitary energy band or for a specific line transition, using an arbitary set of elemental abundances and even some non-equlibrium ionization history. Furthermore, we can calculate artficial X-ray observations using on of several X-ray telescopes, including effects such as Poisson noise, intervening and intrinsic X-ray absorption, and so on.
- Written in pure ANSI C++.
- Support the analysis of hydrodynamical data from multiple hydro codes: currently VH-1 (including the parallel MPI version) and the Bologna Astrophysics code BOH. FLASH output will soon be added.
- Licensing (once released to the public) will be GPL v2.
The list below is a set of recommended reading - basically the reference works used in developing Proteus.
-
The C++ Programming Language (Special Edition), Bjarne Stroustrup (2000):
The ultimate reference for C++.
-
Introducing C++ for scientists, engineers and mathematicians, D.M. Capper (1994):
An excellent intro to C++ for Fortran refugees, but it doesn't cover templates much, or the STL at all. Still a good book for scientific C++.
-
Scientific and engineering C++, J.J. Barton & L.R. Nackman (1994):
Very high level, migraine-inducing C++ book which aims to inform on how to exploit existing Fortran code within C++ but is a little too complex. Occasionally of some use.
-
Managing projects with make, A. Oram and S. Talbot, (1993):
Nice guide to UNIX make and Makefiles.
-
Doxygen manual, D. van Heesh (2000):
Instructions for the self-documenting comment format employed within Proteus that produced these html pages.
-
Parallel programming with MPI, P.S. Pacheco (1997):
Nice intro and guide to the message passing interface, aimed at C programmers (and hence can be used in C++). Postscript versions of the document for Fortran programmers exist on the WWW.
-
STL programming from the ground up, H. Schildt (1999):
A guide and reference manual to the C++ Standard Template Library, employed within Proteus for some data structures.