|
|
|
|
|
# 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](HotFixes) and [KnownProblems](KnownProblems) pages, or return to the main [RevisionHistory](RevisionHistory) page.
|
|
|
|
... | ... | @@ -24,19 +21,31 @@ Internal testing found that the code could crash for some optically thin models. |
|
|
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.
|
|
|
|
|
|
* 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.
|
|
|
|
|
|
* 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.
|
|
|
|
|
|
* 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.
|
|
|
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.
|
|
|
|
|
|
* 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 s
|
|
|
tages 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.
|
|
|
|
|
|
-------
|
|
|
|
... | ... | |