wiki:CoolingRoutines

Version 7 (modified by trac, 12 years ago) ( diff )

Cooling in AstroBEAR

AstroBEAR currently supports 3 different versions of cooling routines. They are controlled by an integer switch, iCooling, in physics.data.

iCooling
Value Method Details
0 No Cooling An adiabatic EOS with no cooling.
1 Dalgarno-McCray Basic cooling code via a standard look-up based on equilibrium ionization values for HII in the ISM. Should be used for an adiabatic gamma.
2 Non-Equilibrium Cooling Defines its own EOS during runtime, but requires Xmu set to 1.0 in order to start
3 Analytic Cooling Functions intended to be used with the Thomas-Fermi module to simulate a specific EOS

NOTE: Non-Equilibrium Cooling

Non-Equilibrium cooling is entirely contained within contrib/astro/physics/cool/cool.f90 & i_evolove.f90. To run the routine, you will need the data-file neqcool.data, located in contrib/astro/sample_data_files. Within neqcool.data there are two namelists—one will determine the basic parameters for the cooling routine, the other will determine the different species that you will be tracking. Helium and molecular Hydrogen can be either very complicated or somewhat superfluous. The only two species that should be set to true are lH & lHII.

The routine begins by initializing all of the necessary tables: H-excitation and H-recombination tables. The routine will accurately model all of the hydrogen cooling directly from these tables and functions. The routine then explicitly populates a number density vector that it uses to calculate a polytropic gamma and mu based on the distribution of the atoms. If only using iH & iHII, the only important routines in cool.f90 are H_recomb, H_ioniz, Hex_cooling, and their corresponding tables. For each corresponding blob of gas ionized, the gas will lose 13.6 eV of energy per atom. For every recombination, the gas will lose energy E where:

H-excitation cooling is calculated via a look-up from HEXCOOL.tab.

To account for metals, we subtract off the hydrogen cooling from the Dalgarno-McCray table and create a new table. This should leave the contribution from the metal cooling based on the assumption of local thermodynamic equilibrium (LTE), which implies ionization equilibrium. However, material is not in equilibrium in astrophysical shocks. To account for this, AstroBear divides the normalized DM curve by the equilibrium ionization fraction and multiplies through by the actual ionization fraction. This method is only satisfactory for temperatures within 104-106 K. For high temperatures this is not a concern, but is problematic for lower temperatures due to complicated forbidden-line emission and electron density highly influenced by metals as hydrogen becomes more completely recombined. For this, a new, comprehensive metal cooling table relying on electron density, ionization fraction of hydrogen, and effective temperature should be implemented soon after updating.

All these routines are strung together in i_evolove.f90 under Cool_Derivatives.

Note: See TracWiki for help on using the wiki.