 | 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. |
 | Two additional sets of stellar atmospheres are available
- the CoStar windy O-star grids, and the Rauch low-metallicity grid.
|
 | 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. |
 | 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. |
 | 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. |
 | 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. |
 | 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. |
 | 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. |
 | 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. |
 | 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. |
 | 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. |
 | 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. |