New in C08

This page summarizes all major changes and improvements to Cloudy that are included in C08. You may also view the HotFixes and KnownProblems pages, or return to the main RevisionHistory page.

The C08.01 service release

Version C0.01 was released on 2010 Nov 19. This version contains all bug fixes through this date.

Important Caveat

Cloudy will no longer compile correctly with g++ compilers from the 3.4.x series due to a serious compiler bug in this series. All g++ versions except 2.96 and 3.4.x will work OK. The compiler will now issue an error when you try to compile with a g++ compiler form the 3.4.x series. For Linux users this will usually not be a problem since modern installations usually have 4.1.x or 4.2.x compilers which work fine. Users with an old Linux installation that contains a g++ 3.4.x compiler will have to upgrade to a newer g++ version, or use another compiler, like e.g. the  Sun Studio compiler for Linux. For other UNIX systems you can either use the native compiler, or upgrade to a newer g++ version.

For Cygwin users the situation is more serious. There g++ 3.4.4 is the standard compiler and no newer versions are available. Cygwin users are strongly advised to downgrade their g++ compiler to version 3.3.3 which is being offered by Cygwin as an alternative.

To find out what version of g++ you have, issue the command "g++ -v".

Important Caveat

Main programs that call Cloudy as a subroutine need to be modified. Starting with version C08, Cloudy can generate C++ exceptions that need to be caught. This needs to be done in the main program. If they are not caught your program will crash on an unhandled exception and part of your output may be lost! The solution is to surround the code in your current main program with a try / catch clause. A template showing how this can be done is included in the tsuite/programs directory of your distribution and is called template.cpp. See also the chapter on Cloudy as a subroutine in Hazy 3.


The new version is roughly a factor of 2 slower than C07.02. This is mostly due to a major expansion in the physics of the H-like iso-sequence. The l-levels of the H-like sequence are now fully resolved, making these atoms formally correct, much like the treatment of the He-sequence outlined in Porter et al (ApJ 622L, 73 and ApJ 644, 586). The predicted H~I emission line spectrum has changed as a result.

Models using the large H_2 models atoms will run considerably faster, in about half the time, due to improvements in the memory layout.

Constant-temperature molecular models, such as the Leiden F series of PDR simulations, will take longer. This is because the code now approaches the molecular limit using small temperature steps. This allows the new version to converge simulations that are fully molecular at the illuminated face. The code had trouble doing this before.

Models using grains in a hard X-ray radiation field will also consume more CPU time and memory due to the improved X-ray grain physics. The current implementation parallels that described in Weingartner, Draine, & Barr, 2006, ApJ, 645, 1188 with only minor modifications.

The code is more stable. This is due to improvements in some of the solvers and several bug fixes.

Version numbers

The version numbering has changed

The middle two digits from the C07 numbering scheme have been dropped. The major version is still the year, so the C08 version was released in 2008. The next number indicates the subversion, where C08.00 is the original release of version C08, C08.01 is the first bug-fix roll-up release, etc. In other words, the last two digits have the same meaning as the last two digits in the C07 numbering scheme.

Starting with the C08 release series we will post UNIX-style patch files for each hot-fix. Each of these will bump up the patch level of the code, which will also be printed in the output. So version "C08.00 (patch level 1)" will have the first set of patches on the initial C08.00 release installed. Please quote the full version string including patch level (if present) in any publication presenting Cloudy results.

Updates to the simulations and commands

The code no longer accepts multiple density commands. This was never useful as density commands are mutually exclusive. This is now checked by the code and Cloudy will refuse to execute any script that contains multiple density commands. Currently there are 4 density commands: HDEN, DLAW, GLOBule, and FLUCtuations (without the ABUNdances keyword). Please alter your script if it contains more than one of these.

The new assert Case B H-like xxxx yy command will check the code's predictions against the Hummer & Storey Case B values. The xxxx can be the name of any element between and including hydrogen and oxygen. yy is the the relative error. The command makes a list of all lines included in the output and compares their intensities with the Case B predictions. If any differ by more than yy then a botched assert is declared. You still have to step up a proper Case B calculation, and disable the extra physics Cloudy does, to do a meaningful comparison with Case B.

The atom H-like levels and atom He-like levels commands now have a print option. The number of resolved and collapsed levels for all atoms of all iso-sequences will be printed. The number of levels is not changed by this version of the command since it is intended as a way to discover the number of levels for all members of the iso-sequences.

The grid command has a new repeat option. If the keyword repeat appears then the value of the parameter will not be incremented. The same value will be repeated for each step in the grid. The number of grid steps is not affected. It will be the number that would have been done had the increment been taking place.

The punch line populations command now has an off option, to turn off the limit of printing only positive level populations. If used, all lines will have their upper and lower level populations printed, even those with a population density of zero.

The punch H2 levels command now includes the sum of the transition probabilities out of each level, and the critical density for each of the colliders.

The syntax for the hextra command has changed. There are three optional keywords. Depth will make the heating depend on depth into the cloud - this was the only option in previous versions. Density will make the heating scale with density. Time will allow the heating to vary with time.

The syntax for entering numbers in the input files has changed. The input parser will now recognize any number that is correctly formatted according to C-style syntax. This means that you can use exponential notation, i.e. you can enter numbers like 1.e+40 into the input file. Note that Fortran-style syntax like 1.d+40 is not recognized!

The new command element limits off -6 will turn off all elements that have an abundance by number relative to hydrogen that is less than the limit set by the number on the line.

The crash exception command will cause the code to throw an exception, which should be caught by the handler in the main program.

The charge transfer rate coefficient for the process O0 + He+ => O+ + He0 is updated to Zhao et al., ApJ, 615, 1063

The grain treatment has been updated to include inner-shell photoionization, as well as the subsequent Auger cascade and emission of secondary electrons. This has important consequences for grains in X-ray environments. The treatment largely follows Weingartner, Draine, & Barr, 2006, ApJ, 645, 1188 with only minor modifications.

There is a new command no grain x-ray treatment that reverts the treatment back to the old one described in Weingartner & Draine, 2001, ApJS, 134, 263.

There is a new command assert grain potential to check on the potential of a grain bin.

There are new commands punch grain abundance and punch grain d/g ratio to punch the grain abundance in g/cm3 or the dust-to-gas mass ratio as a function of radius.

Ryan Porter extended the H-iso sequence to be parallel to the He-like sequence. The l-levels are now resolved. The precision of the H-like lines is improved greatly as a result. Some of the atom H-like and atom He-like commands have changed as a result. These include

atom He-like Bengamin no longer exists.

The compile He-like command has been renamed compile recombination coefficients with the options H-like and He-like. This computes large tables of state-specific recombination coefficients for use by the model atoms of the iso-sequences.

The option to print He-like emissivities rather than intensities has been removed.

The collision rate coefficients for H - H2 have been updated to Wrathmall, S. A.; Gusdorf, A.; Flower, D. R., 2007, MNRAS, 382, 133. These are often substantially larger than the previous values.

The punch lines structure and punch lines emissivity commands have long been the same code. The punch lines structure command has been removed. The quantity that is reported is an emissivity so this will remove a source of confusion.

There are now two sets of collision data sets, He-H2 and H-H2, for the hydrogen molecule. They are selected with the set atomic data molecule cs command.

The test command now has the molecular option, to do a smoke test in the cold molecular limit.

The coronal equilibrium command now has the vary option.

Dielectronic and radiative recombination rate coefficients for the Mg-like sequence have been updated to Altun et al A&A, 474, 1051 (2007. This changed the ionization distribution of some species by significant amounts.

More than one line can occur within a continuum cell in the output produced by the punch continuum command. The new print line cell xx command will print the label for every line that falls into a particular continuum cell. The number of the cell, with the lowest energy cell being 1, must appear.

The ionization distribution and H I emission spectrum of an unconverged one-iteration model will be different. The code had tried to guess total Lyman optical depths for the first iteration so that transfer through the cloud could be done. This often inhibited convergence when the guess was wrong. It now only includes the effects of gas between the continuum source and a zone during the first iteration. All effects are included during later iterations. This change has no effect on a converged simulation.

The Haardt & Madau 2005 continuum did not extend to the low-energy limit of the code. At high redshift the CMB filled inthis continuum but there was an obvious break in the continuum at at z = 0. Their table will be extrapolated to long wavelengths assuming a Rayleigh-Jeans energy distribution.

The hextra command now has the vary option.

The ionization fractions option of the punch averages command will give the hydrogen molecular fraction, 2n(H2)/n(Htot), if ionization stage zero of element hydrogen is requested.

The BOUNDS_CHECK macro makes it possible to do array bounds checking on multi-dimensional arrays. The crash bounds multi command checks that it works for direct access to the array. If the keyword iter is added, it will check if bounds checking works for access through iterators (pointers).

Ryan Porter enhanced the H-like isoelectronic sequence so that it now resolves l-levels.

The set drmin and set drmax commands now accept linear radius, and the keyword log.

Cloudy now supports the most recent version of the Rauch hydrogen-only grid. If you have the older version installed (prior to Nov 2006), you will need to upgrade. Simply delete the rauch_hydr.ascii and rauch_hydr.mod files, download the new grid, and recompile the ascii and binary atmosphere files. For links and more detailed instructions, see the StellarAtmospheres page.

The limit keyword has been removed from the atom H-like command. This is part of the merge of the H- and He-like iso-sequences, which will lead to a fully resolved model of the H-like ions.

The punch line list command now has a ratio option, which will give the ratio of the lines listed in the file the command reads. There must be an even number of lines in the file, and the code will find the ratio of the first over the second. As an example, if the file linelist.dat contains the following:

o  3     5007
totl     4363

The following input script

c following three commands do H and O-only, and set O
c ionization so that no O+3 is present (to prevent formation
c of 4363 by recombination).  
init "honly.ini"
element oxygen on
element oxygen ionization 1 1 1 0.01
c set the continuum
blackbody 40,000K
ionization parameter -2
c next 4 commands vary kinetic temperature and density
constant temperature 4 vary
grid 4000 17000 3000
hden 4 vary
grid 2 6.1 1
c must stop this constant temperature model
stop zone 1
punch line list "test.pun" "linelist.dat" ratio  no hash
punch grid "test.grd"

will create two files, test.grd with the densities and temperatures given, and line ratios in test.pun. The following shows the [O III] 5007 / 4363 ratio as a function of density and temperature:

A new command, print version, will print the code and compiler version numbers.

The atom he-like levels huge and atom he-like benjamin commmands will no longer be available.

The new stop velocity command will stop a wind model when the velocity falls below the entered value.

Photoexcitation of upper levels of split ground terms by the UV radiation field is included using the "level2 lines", a large set of optically allowed transitions that D. Verner brought in from the Opacity Project. This pumping will not be included if the "no level2 lines" command is entered, since these lines are not computed. The code will no longer print column densities of excited levels if the level2 lines are disabled.

The physics of cosmic ray interactions with molecular hydrogen has been improved. We now treat excitation to singlets by scaling electric dipole transition probabilities by a plane-wave collision cross section. Cosmic ray excitations to the triplets are treated following Dalgarno et al. (1999, ApjS, 125, 237). This results in more cosmic ray dissociation of molecular hydrogen than the previous treatment. This is described in further detail in Shaw et al. (2007; ApJ submitted).

Energies for lower levels of FeII updated to Aldenius & Johansson 2007, A&A, 467, 753

The routines cdPressure_depth and cdPressure_last now include all forms of pressure in the total pressure rather than just the gas and line radiation pressure.

The set dynamics start command has been renamed to set dynamics relax. The argument is still the number of static iterations to perform in a dynamical or time dependent calculation. These allow the solution to relax to the correct geometry before changes are tracked. The default is still two iterations. This applies to both the dynamics and time-variable options.

The dynamical and time variable solutions will not permit the simulation to go deeper than it did during the first static iterations as set with the set dynamics relax command. The prevents the advection of material that is off the grid in the upstream direction from entering the modeled region and causing unphysical effects.

The set atomic data command now has the option sulphur DR to change the treatment of S dielectronic recombination. This change was merged into the C07.02.01 release. The guesses which are used when no DR data are available are now the mean of the logs of the DR rates. This is better due to the large dispersion in rate coefficients. Accurate DR rates do not now exist for low stages of ionization of S at photoionization temperatures. The relative [S III] / [S II] ratio is an important diagnostic indicator of conditions in many nebulae. This ratio depends on the DR rates chosen. This command changes the DR rates assumed for the lowest four ionization stages of S. The default, which can also be set with the keyword _mix, is to use the larger of the Badnell (1991; ApJ, 379, 356 ) or guessed rates. The keyword pure says to use only the Badnell rates. The keyword scale says to use scaled oxygen DR rates. In this case one to four scale factors, one for each ionization stage, will be parsed off the command line. If fewer than four numbers occur then the last number entered will be used for the missing scale factors. The DR rate for ions of S will be equal to the DR rate for the same ionization stage of O multiplied by its scale factor.

The column density command now has the keyword linear to force that interpretation.

The ionization parameter command now has the keyword linear to force that interpretation.

The ionic emission measures in the standard output now includes C+.

The dielectronic recombination rate coefficient for Fe+14 forming Fe+13 has been updated to Lukic et al. (2007, astro-ph 0704.0905).

It is possible to change the temperature units on the constant temperature command. The default is Kelvin but the keywords eV and keV are accepted.

The ORNL H2-He collision data set is now the default. The sets of collision data are available, Le Bourlot, J., Pineau des Forets, G., & Flower, D.R. 1999, MNRAS, 305, 802, and the ORNL data (Lee et al in preparation). These are selected with the commands atom H2 He collisions [ORNO or Le Bourlet].

The punch helium line wavelengths command will produce a file with the wavelengths of all lines produced by the n=2 complex of the He-like species.

The punch line labels command includes a comment explaining the origin of the line.

Return to the RevisionHistory page.

Return to the StepByStep instructions.

Return to main wiki page

Return to