Calling the CHIMES Solver
The CHIMES solver replaces the standard cooling routines in the hydrodynamics code. Every hydrodynamic time-step, at the point where you would do the standard cooling, you will need to do the following:
Loop through all active gas particles/cells.
Update the
gasVariables
structure with the particle/cell’s current hydrodynamic quantities (density, temperature etc.). ThegasVariables.hydro_timestep
should be set to the length of the particle/cell’s hydrodynamic time-step, in seconds. This tells CHIMES how long it needs to integrate the chemistry and cooling for.Call the
chimes_network(*myGasVars, *myGlobalVars)
function, where*myGasVars
and*myGlobalVars
are pointers to thegasVariables
structure for the given particle/cell and theglobalVariables
structure, respectively. This is the function that will actually integrate the chemical abundances and, ifgasVariables.ThermEvolOn == 1
, the temperature.If cooling was included in the above integration, you will then need to update the particle/cell’s thermodynamic variable(s) in the hydrodynamics code (e.g. the internal energy or the entropy, depending on what is used in the hydro solver), using the final temperature that the particle/cell reached at the end of the time-step, as given in
gasVariables.temperature
.