|Porting the CMBEASY software package
|Page 1 of 1|
|Author:||t00fri [ Sun, 28-11-10, 16:46 GMT ]|
|Post subject:||Porting the CMBEASY software package|
CMBEASY is a very well-known professional software package for calculating the evolution of density fluctuations in the Universe. Most notably, the Cosmic Microwave Background (CMB) temperature anisotropies. 1-year and 5-year WMAP data are part of the package. It features a Markov Chain Monte-Carlo driver and many routines to compute likelihoods of any given cosmological model.
Here is theURL of the Homepage, where the source code of the latest version, cmbeasy-4.4.1.tar.bz2 may be downloaded..
Both my daughter and I are using this code (and modifications thereof) for our scientific work. Actually, most scientific projects in Cosmology rely on this program in some way. It was developed at the University of Heidelberg and now is fully in C++, offering a cmake setting for cross-platform compilations. For its GUI, it requires a Qt4-development installation in version >= 4.2.
Unfortunately in its latest 4.4.1 version, a number of errors occur when building the sources in modern standard installations different from MAC-OS (PPC and universal). For MACs even binary downloads exist.
So I spent some time to port the code to (OpenSuSE) Linux with Qt-4.7. I am quite sure that the code also compiles without problems on 32bit Windows, using VS 2010++ Express, Qtcreator 2.0x and Qt > 4.5. The Qt creator IDE can get along well with cmake projects.
Mostly, my modifications were fixes of improper or missing includes of header files, four altogether. You may download my patch from here
http://www.celestialmatters.org/users/t ... .patch.zip
Next, here are brief instructions on how to apply the patch:
-- download a virgin archive cmbeasy-4.4.1.tar.bz2 from the server into your Linux Home directory and unpack it with 'bzip2'.
-- download and unpack my patch cmbeasy_4.4.1.patch.zip in the same Home directory where a subdirectory cmbeasy is now seen after unpacking the bzip2 archive.
The patching of the sources is done with this single Linux statement in an open shell terminal:
> patch -p0 < cmbeasy_4.4.1.patch
The corresponding terminal output should look like so
patching file cmbeasy/anisotropy/newdatreader.cc
patching file cmbeasy/CMakeLists.txt
patching file cmbeasy/cosmos/quintcosmos.cc
Hunk #1 succeeded at 25 with fuzz 1.
patching file cmbeasy/mathobject/miscmath.h
patching file cmbeasy/mathobject/spline.h
That's it for the patch.
Next you need to make sure that a number of auxiliary packages are installed:
-- Qt4 >=4.2 (just like for Celestia, e.g. libqt4-4.6.3, libqt4-4.6.3-devel)
-- cmake (cross-platform make, e.g. cmake-4.8.1, http://www.cmake.org/)
-- gsl and gsl-devel ( GNU Scientific library)
-- openmpi and openmpi-devel (Open Source High Performance Computing)
-- cfitsio (http://heasarc.gsfc.nasa.gov/fitsio/, a fits file library)
In OpenSuSE 11.x all required packages are available as binary RPMs, except cfitsio, which is very easy to compile and install.
The next steps are:
> cd cmbeasy
> mkdir build
> cd build
> cmake ..
Possibly (depending on the version of cmake) you'll get a cmake warning/error associated with the policy CMP0004. You may ignore it, although there is a way to get rid of the complaints, too. Next type
Then the code compiles for 15-20 minutes, hopefully without any errors. Finally, you may type
> make install
which copies the executables in build/bin ( xcmb, cmb, cmbeasy, mc_general, distill, jlens, jlgen ) to /usr/local/bin.
You may start cmbeasy now, by typing
> cmbeasy &
After a nice splash image, the Qt GUI opens and shows on the top left a plot of the familiar WMAP data (as of the 1st year). You may add-in from the Data table (bottom center) also the 5 year WMAP data and the Acbar 08 data, notably extending to the largest multipole moments.
As a next initial test step you may click in the menue, Calculation -> Start calculation.
After a minute or so, the theoretical curve corresponding to the default cosmological model will be drawn into the data plot. By means of the middle mouse button you may map out a rectancle around some data region of interest that will then appear zoomed.
Here are two screenshots illustrating the initial GUI environment:
and with the theoretical curve overlaid:
There is much to be done with this big scientific package, but this would go too far here...
|Page 1 of 1||All times are UTC|
|Powered by phpBB® Forum Software © phpBB Group