Tuesday, August 20, 2013

Galacticus v0.9.2 Released

We're happy to announce the release of Galacticus v0.9.2. As usual, you can get Galacticus direct from our repo at BitBucket, just use:

hg clone -u v0.9.2 https://abensonca@bitbucket.org/abensonca/galacticus

to grab v0.9.2, or you can download a source tarball. v0.9.2 becomes the stable version (supported and will receive bug fixes), v0.9.1 becomes deprecated (no longer supported and will not receive bug fixes) and development moves to v0.9.3.

In addition to the usual complement of bug fixes and minor improvements, this release sees a complete re-write of Galacticus' internal representation of galaxies and their halos. While this has no visible consequences for running Galacticus models, it makes the code much cleaner and greatly simplifies the process of adding new components to galaxies. Components are now specified by a domain specific language - essentially a simple description of the components properties. Galacticus' build system then takes care of generating classes and associated functions for the new component and all of its properties. This saves ~30,000 lines of code which would otherwise have to be written by hand!

In addition to this, there are a few other additions and improvements worth mentioning.

New components

We've added a component which tracks the statistics of recent halo mergers, and another which tracks averages of quantities (currently star formation rates) between successive outputs. Additionally, the merging statistics component now also reports the original depth of each halo in the structure formation hierarchy.

Optimization

We now make use of nested parallelism to speed up various calculations, including the integration of stellar population SEDs, tabulations of stellar recycling rates and metal yields, and numerical solution to the excursion set problem.

Stellar luminosities

An implementation of the Charlot & Fall (2000) model for dust extinction is now available.

The framework for postprocessing of stellar spectra has been made much more flexible, allowing for different chains of postprocessing filters to be applied to each luminosity computed. This allows, for example, calculation of a luminosity after absorption by the IGM, and the same luminosity after absorption by the IGM but including only light emitted in the past 100Myr for example.

New filters have been added, including a Lyman continuum, HST ACS and WFC3, Herschel SPIRE, Spitzer IRAC, UKIRT J & H, and CCAT SWCam and LWCam filters.

Updates

We've updated to interface with the latest versions of Cloudy (13.02) and FSPS (2.4).

Outputs

The survey output module now supports output of angular diameter distances, angular positions, and distance modulus.

The rotation curve and velocity dispersion of galaxies can be output at arbitrary radii (defined as absolute radii, multiples of galaxy scale lengths, or radii enclosing a specified fraction of mass or light).

Physics

We've added support for dark energy cosmologies with equation of state w(a) = w0 + w1 a (1-a).

Internal calculations of the density, enclosed mass, etc. at any point in a galaxy now fully account for adiabatic contraction of the dark matter profile. This allows the  "Cole2000" merger remnant size calculation to be fully consistent with what Cole et al. (2000) actually do.

Critical overdensity for halo collapse and halo virial density contrast can now be computed using the Kitayama & Suto (1996) fitting formula. This is less accurate than a numerical solution, but also faster.

A simple cooling radius model which assumes and isothermal density profile and cooling rate proportional to density squared has been added. This allows for an analytic calculation of cooling radius (so can be useful for fast models).

Tree building

We've added a new merger tree constructor, "fullySpecified", in which the full specification of a merger tree (including all properties of components) is read from an XML document. This is extremely useful for setting up idealized test calculations.

Reading of merger trees from file (usually N-body merger trees) now supports the full complexity of possible tree configurations, including handling of halos which never existed as isolated halos, processing of "forests" of connected merger trees, subhalos which jump between branches of the tree, and subhalos which escape their halo to become isolated halos once again.

Grasil interaction

Grasil is now downloaded as needed, and an analysis module allows calculation of the luminosity under any specified filter to be computed from Grasil spectra.

What to expect in Galacticus v0.9.3

Along with many under-the-hood improvements, and a few minor physics and interface improvements (more realistic hot halo profiles, better handling of subhalo merger times in N-body trees, ability to read merger trees in the IRATE format), v0.9.3 will also introduce tools to construct mock images of galaxy samples from Galacticus, and a complete framework for deriving detailed and accurate constraints on Galacticus model parameters from observed datasets.