Cooling routine with "adaptive time-step refinement"

patch for the ZEUS3D hydrodynamic code

Description:

This patch for ZEUS3D v3.4.2 implements new cooling which is able to work in case of extremely fast cooling like for instance during the thermal instability of the gas. It is achieved by using more stable root finding algorithm (Brent's method) for solving the energy equation, and in particular by controlling the size of the time-step by the cooling rate.

The "cooling" time-step is defined dtcool = e/[ρΛ(T,z)] where ρ and e are the local mass and energy densities, Λ(T,z) is the cooling function, and CCN is the "cooling Courant number" - a dimensionless quantity which denotes the relative amount of internal energy that can be radiated away during dtcool.

Local sub-steps for the computation of the energy equation are used to increase the code performance; the global time-step is

where dtHD is the hydrodynamic time-step and δ (typically δ≈0.1) is a dimensionless parameter.

This procedure does not let the global time-step decrease below δ× dtHD. However, the accuracy in solving the equation of energy is ensured by the sub-steps of size dtcool which are only applied to fast cooling regions.

Download

change-deck for ZEUS3d v3.4.2

Diagram of subroutine calls

Scheme of the algorithm of the
cooling implementation