New in Next Release

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.


The code has been ported to C++11. This implies that you need a compiler with full support for C++11. For g++ that means version 4.8.1 or later, for LLVM/clang++ version 3.3 or later, for the Intel compiler version 15.0 or later, and for the Oracle Studio compiler version 12.5 or later.

To fix compiler warnings with g++ 8, the state file of the phymir optimizer has been altered. This implies that state files from older versions of the code are no longer accepted. Continuing an optimization run with a different version of Cloudy is not recommended in any case.

All TABLE STAR commands now work directly on the ascii file. This means that you now need to have the *.ascii versions of the SED grid files in your data search path and can remove the compiled *.mod files. Compiling *.ascii files is still supported (though it is now optional) using the same commands as in previous Cloudy versions. This command now produces index files with names ending in *.idx. These files help speed up reading the ascii file and are strongly recommended for large grids. Note that despite the simple appearance of these files, they are (in principle) still platform dependent. The big advantage of this setup is that there is no longer a dependence on the frequency mesh, so you do not need to recompile the ascii grids when you change the frequency mesh. Compiling grids that are not in the standard Cloudy format (e.g. Starburst99 output) is still mandatory.

The code now catches OS signals like FP exceptions and segmentation faults on supported platforms. These are then rethrown into C++ exceptions that need to be caught by the main program. This allows a grid run to continue despite such an error. When the code aborts (e.g. due to excessive convergence failures) this now also generates a C++ exception. In order to be fully compliant with these changes, programs that call Cloudy as a subroutine need to update the main program to catch the new exceptions. See tsuite/programs/template.cpp for an example of the new code.

Parser and related changes

In c17.01 using comment characters other than '#' and '##' was deprecated. These have now been removed.

The implementation of the search path for finding input files has been finalized. This implies that the code now uses a consistent policy for finding files that it needs to read. All commands will now look in the local directory first, and then in the data directory. The user can alter the search path by defining the environment variable CLOUDY_DATA_PATH before the code is started up. See the new sections "Reading and Writing Files" and "The Search Path for Input Files" in Hazy 1 for a more detailed explanation.

Setting the search path in the file path.h was deprecated. This file has now been removed.

Setting the search path as a command line parameter during compilation was deprecated. This option has now been removed.

Saving files to a destination outside the local directory, e.g. using

save continuum "subdir/"

was never intended to be supported. This is now checked and the code will abort when this is attempted. The reason for this change is that saving files outside the local directory does not work in grid runs.

The restriction to NKRD (4000) input lines has been removed. Also the restriction on the input line length (was 2000 characters) has been removed. The code now accepts an arbitrary number of input lines of arbitrary length.

Changed commands or options

The executable now accepts the -e option which allows you to supply Cloudy commands directly on the command line, e.g.

cloudy.exe -e test

to execute the smoke test. See RunCode for details.

The command species "Fe+6" dataset="alt" has been added. This allows multiple Stout datasets for a given species to be supported.

Critical densities for l-changing collisions for H-like and He-like iso-sequences can be printed now, e.g.

print critical densities h-like helium

This line will print a column with the main quantum number n (starting with n=3) and another with the critical densities for H-like helium. If no element is specified, then the entire iso-sequence (for all elements included in the simulation) will be printed.

The commands crash segfault, crash abort, and crash grid have been added to emulate additional sources of errors.

The executable no longer accepts the -a option on the command line. This option was deprecated and has now been removed. This was used for debugging only and caused a failed assert to abort rather than emit a C++ exception.

The set assert abort command has been removed. This had the same effect as the -a command line option described above.

The stop nTotalIoniz command has been removed. This was a debugging tool that was very rarely used.

The drive family of commands have been removed. These were designed to interactively test certain aspects of the code. They have not been used in a long time and were obsolete.

The atomic, molecular, and grain database

The molecular hydrogen level energies, which we use to derive line wavelengths, have been updated to Komasa (2011). This results in ~1 wavenumber changes in level energies.

We now use the Lique 2015 H - H2 collisional data by default. Compared with previous calculations, these data extend to higher vibrational manifolds and include ortho-para changing reactive collisions. Tests show that the 2.121 micron line intensity changes by roughly 50%, becoming stronger in some PDR sims.

Fe III collision strengths are updated to Badnell and Balance 2014. We had previously used data from Zhang 1996. Tests show that the total Fe III cooling increases by nearly 50%.

The refractive index data for astronomical silicate and graphite from Draine, 2003, ApJ, 598, 1026 have been added. These can be found in the files sdraine03.rfi and gdraine03.rfi.

Improved physics and numerical methods

Other changes

A well-known problem is that the output of grid runs could be incomplete when certain sims in the grid failed. A workaround has now been implemented that replaces missing or empty output files with stub files that are generated by taking a correct file and replacing all the numbers by zeros. This should give plotting programs a fighting chance to produce meaningful output. Note that partial output will not be replaced by a stub file.

On supported platforms the code will now generate a backtrace when an error is encountered.

Return to the RevisionHistory page.

Return to the StepByStep instructions.

Return to main wiki page

Last modified 3 days ago Last modified on 2018-12-12T19:02:50Z