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
.