New in C94


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


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.

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

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

C94 improvements over C90: bullet Much 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. bullet 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. bullet Two additional sets of stellar atmospheres are available - the CoStar? windy O-star grids, and the Rauch low-metallicity grid. bullet All 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. bullet The 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. bullet Previous 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. bullet The 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. bullet The 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. bullet All 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. bullet The 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. bullet C94 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. bullet All 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. bullet The 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.


Return to the RevisionHistory page.

Return to the StepByStep instructions.

Return to main wiki page

Return to  nublado.org