c94 revision history
Home Up Other versions Revision history The future etcetera Acknowledgements Contacts, Mailing list Links Site map, search




Cloudy 94 Revision History

This page summarizes all major changes and improvements to C94. In some cases the summary includes a link to the Hot Fixes page. Hot Fixes are minor changes to the coding to correct problems not yet fixed in the distributed source. These fixes will be incorporated in the next release of the code  Changes in Hazy that have occurred since its last printing (Oct 1997) are described here.  Here is a list of known problems with the current version of the code.

The next release will be C96, a few months after the Lexington meeting on Astrophysics of Photoionized Plasmas.  That meeting will serve to identify sources of differences in results among various codes and atomic data that have changed and Cloudy will improve as a result.  The following section outlines changes that have been made since C94.00 was released in December of 1999.   

new in C96.00, April 2001

The grain physics has been updated as per Weingartner & Draine ApJ preprints.  The largest effects where that the work function for graphite has been changed from 0.5883 Ryd to 0.3235 Ryd and the sticking probabilities are much smaller.  The photoelectric heating efficiencies are quite different as a result and the grain photoelectric heating rates have changed considerably. 

The pgrains command makes it possible to resolve the grain size distribution function, solving for grain properties and emission as a function of their size.  This is described in van Hoof et al. (2000).

The emission line output has been reordered, with comments to indicate the origin of the lines.  

The wavelengths of lines between 1 and 10 microns are printed with one additional significant figure.  

The wavelengths in the emission line output now have a character to indicate the units - these are either "A" for ┼ngstrom or "m" for microns.  An integer to the right of this character indicates how many of the printed numbers are to the right of the decimal point.  (This new letter and number should not be included when a line is identified to the program by wavelength - only the integer part should be specified, as it always has been.)  The old format will be used instead if the command set oldwavelengths is entered.  

The resolution of the continuum array has been increased across the sub-mm through UV range.  This is to permit full resolution of the grain emission features now predicted.  

CO is now a multi-level rigid rotor model, with any number of levels and full treatment of radiative transfer.  

The boron iso-electronic sequence is now a better multi-level atom.  As a result all five lines within the first intercombination multiplet are explicitly predicted.  This includes the ions C II], N III], O IV], Si II], and S IV].  

The identifier in the printout for the summed intensity of the intercombination multiplet for the boron sequence has changed .  The old and new labels are C  2 2326 => TOTL 2326, N  3 1750 => TOTL 1750,O  4 1402 => TOTL 1402,  Si 2 2325 => TOTL 2325, and S  4 1406 => TOTL 1406. Each of these total intensities is now followed by the intensities of individual lines within the multiplet.  

Intensities of the intercominbation multiplet in the boron sequence are unchanged at very low or very high densities, but can be nearly a factor of two stronger when the lines are optically thick, since now two or more lines are able to radiate while, in the equivalent two-level atom, only one line was visible.  Intensities of the IR fine structure lines generally changed by less than 5%.  

print faint command is now the print line faint command

The form of the optical depth scale used in the wind command has been changed to equation 3 of Caster, Abbott, & Klein, 1975.  Previously it assumed constant velocity, and now uses the local value of the acceleration to establish the effective optical depth scale.  

Hydrogen collision data have been updated to Anderson, H., Ballance, C.P., Badnell, N.R., & Summers, H.P., 2000, J Phys B, 33, 1255, and helium collision data to Bray, I., Burgess, A., Fursa, D.V., & Tully, J.A., 2000, A&AS, 146, 481-49.

punch line optical depths command added.  The output file will list the line energy in Rydbergs, the log of the line optical depth, and a label giving the ionic species.  The log of the smallest optical depth can be specified as an optional number on the line.  The command accepts the units option to change the energy of the line to other units, such as Angstroms, microns, etc.

Charge transfer data base updated.  Jon Slavin noticed that one of the He+ charge transfer reactions listed in Arnaud & Rothenflug (A&AS, 60, 425) had "disappeared" from the code.  The entire CT database was revisited.  The papers by Pequignot & Aldrovandi (1986; A&A, 161, 169) and Prasad and Huntress (ApJS ApJS, 43, 1) were used for several reactions that had no quantal calculations.  This affected mainly atomic iron and silicon. Thanks to Jon Slavin for discovering this problem.  01 Jan 15.

The ISM oxygen abundance was changed to Meyer et al. (1998, ApJ, 493, 222).

background cosmic ray ionization rate changed to agree precisely with Tielens & Hollenbach 1985a (ApJ 291, 722) Table 10.  A range of values within an order of magnitude of their value can be found in the literature.  Exact agreement with their values makes PDR comparisons easier.

Hydrogenic bound-free cooling rate coefficients now from LaMothe & Ferland 2001.  These are exact for all levels of hydrogenic species.  The previous values for n<15 were valid, but no accurate rates for n>=15 were previously known.

The transition probability for SiIII 1892 has been updated to Callegari, F., & Trigueiros, A.G., ApJS, 119, 181.  The line is typically about 50% stronger in BLR calculations.

All atomic data for the SIII ion have been updated to Tayal, S.S., and Gupta, G.P. 1999 ApJ 526, 544.  Some collision strengths differ by large factors from Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347, which was used before.

In the current version of the code the line wavelength is an integer.  This is to allow a precise match with a wavelength specified during a search.  An integer format has obvious limitations in specifying fractions.  To overcome this, the format of the wavelength changes with wavelength, in an attempt to have several significant figures.  For wavelengths longward of 100mm the wavelength is given in mm.  For wavelengths longward of one micron the wavelength is given in tenths of microns.  For wavelengths between 10┼ and 100┼ the wavelength is given in tenths of ┼, and in hundredths of ┼ below this. In previous versions of the code the wavelength was in tenths of an ┼ below 100┼.  A new command, the set oldwavelength command, will cause the code to behave as it did in the past.

Fixes to C94

The values of the reflected continuum in the output could be orders of magnitude too large, due to division by an inappropriate variable.  The reflected emission predicted in the punch continuum commands is correct however.  This mainly affected continuum points below the Lyman edge.  A correction for C94.00 is on the  Hot Fixes page.  Thanks to Kirk Korista for discovering this problem.  00 Dec 02.

Some of the continuum points printed with the print diffuse continuum command were designed to lie on either side of major edges.  In some cases the nearest continuum bin could occur on the wrong side of a edge, resulting in surprising intensities.  The continuum energies has been adjusted so that they always lie on the correct side of major edges.

C94.00 1999 Dec 24

The hextra command has an optional dependence on depth into the cloud.  The form of this dependence tended to infinity at the illuminated face.  The radius dependence has been changed to exp(-depth/Rscale) with 94.01.  Thanks for Ivan Hubeny for pointing out this problem.

Internal testing found that the code could crash for some optically thin models.  A correction is on the Hot Fixes page. 2000 Jan 01

The output from the punch transmitted continuum is incorrect.  This will be fixed on the next revision.  The short-term fix is to use column 5 of the punch continuum output rather than the punch transmitted continuum command (they should be the same).  Thanks to Stefan Kimeswenger for uncovering this problem  2000 Jan 03

Beta 2, 1999 Oct 1

Beta 1, 1999 July 19

C94 improvements over C90:

bulletMuch of the code is now double precision.  As a result the code will work for a broader range of densities than before.  Densities well below 10-6 cm-3 or above 1017 cm-3 can be computed without under/over flow.  In particular, very low density IGM models should now have no problem with underflow.
bulletTwo additional sets of stellar atmospheres are available - the CoStar windy O-star  grids, and the Rauch low-metallicity grid.
bulletAll hydrogenic species, the thirty ions from HII through Zn XXXI, are treated with a common model atom that uses a single code base.  This atom reproduces accurate hydrogenic emissivity to within the uncertainties in the atomic data.  The 30 hydrogenic ions can have up to 400 levels, limited mainly by the processor speed and amount of memory available. Most of the differences between predictions of C90 and C94 are due to the improved He+ ion.
bulletThe continuum now extends down to 1E-8 Ryd.  This is needed because the continuum must extend to the energy of the 400 - 399 transition of hydrogen.  If the continuum entered does not also extend down to 1E-8 Ryd the code will complain but still compute the model with the intensity of the unspecified portion set to zero.
bulletPrevious versions used simple approximations for the hydrogenic ionization and level balance for temperatures too low to compute a NLTE departure coefficient.  The new version determines level populations for low temperatures rather than departure coefficients, so low temperature predictions are as valid as high temperature results.
bulletThe recombination continua of all stages of ionization of the first 30 elements are now included in the output produced by the punch continuum command.  These were included in the calculation but not in the punch output in previous versions.
bulletThe code is now strict ANSI/ISO 89 C.  As a result Cloudy is now exceptionally GNU gcc and Linux friendly. After this version is released the development version will move to C++ as gcc evolves onto the ANSI/ISO C++ standard and the C++ standard template library matures.  C94 is "clean C", meaning that it has been compiled and tested as a C++ code by renaming the *.c files as *.cpp.  My notes on converting a large Fortran program into C are here.
bulletAll large storage items are dynamically allocated at run time, taking only the needed memory.  As a result, in its default state, C94 actually takes less memory than C90, but C94 can bring any machine to its knees by making the hydrogenic sequence of atoms very large.
bulletThe ionization/thermal kernel has been totally rewritten to incorporate all the lessons learned from known convergence problems.  As a result C94 is more stable than C90, with far better convergence properties. 
bulletC94 is slightly faster than C90, although it does more work, because the kernel is cleaner and convergence more efficient.  This is the first time in the history of Cloudy that the code has not gotten vastly slower with a major new release.   All previous releases were about three times slower than its predecessor.  
bulletAll previous versions only considered ionization stages that could be produced by the incident continuum.  This limit has been lifted, so collisional or coronal equilibrium models can be computed with very soft incident continua.  It is no longer necessary to specify a very hard but faint continuum to get the code to behave as expected in the collisional ionization limit.
bulletThe assert command has been introduced.  This tells the code to verify that its predictions agree (within a stated  uncertainty) with a known result, and will cause the code to terminate with an error condition if it does not.  The test cases make extensive use of this feature, which provides an automatic way to validate the code.  Today, the entire test suite of standard models is recomputed and verified every single night.

Hit Counter
Last changed 03/31/03.
Return to the Cloudy Home Page.
Copyright 1978-2003 Gary J. Ferland