cloudy  trunk
Functions
cooling.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void CoolZero (void)
void CoolAdd (const char *chLabel, realnum xlambda, double cool)
void CoolSum (double *total)
void CoolEvaluate (double *tot)
void coolpr (FILE *io, const char *chLabel, realnum lambda, double ratio, const char *chJOB)
void HeatSum (void)
void HeatZero (void)
void CoolAlum (void)
void CoolArgo (void)
void CoolCalc (void)
void CoolCarb (void)
void CoolChlo (void)
void CoolChro (void)
void CoolCoba (void)
void CoolDima (void)
void CoolFluo (void)
void CoolIron (void)
void CoolMagn (void)
void CoolMang (void)
void CoolNeon (void)
void CoolNick (void)
void CoolNitr (void)
void CoolOxyg (void)
void CoolPhos (void)
void CoolPota (void)
void CoolScan (void)
void CoolSili (void)
void CoolSodi (void)
void CoolSulf (void)
void CoolTita (void)
void CoolVana (void)
void CoolZinc (void)

Function Documentation

void CoolAdd ( const char *  chLabel,
realnum  xlambda,
double  cool 
)
void CoolAlum ( void  )
void CoolArgo ( void  )
void CoolCalc ( void  )
void CoolCarb ( void  )
Todo:
2 add term for protons from Rouef, E., & Le Bourlot, J. 1990, A&A, 236, 515
Todo:
1 add neutral helium Staemmler, V., & Flower, D. R. 1991, J. Phys. B, 24, 2343
Todo:
3 change to atom_level3

Definition at line 21 of file cool_carb.cpp.

References ASSERT, atom_level2(), atom_level3(), atom_pop3(), atoms, AtomSeqBeryllium(), AtomSeqBoron(), t_emission::Aul, t_co::C12_C13_isotope_ratio, t_colden::C1Pops, t_colden::C2Pops, t_colden::C3Pops, t_carb::c8727, t_carb::c9850, carb, t_dense::cdsqte, co, colden, t_transition::Coll, COLL_CONST, t_collision::cool, CoolAdd(), t_collision::cs, t_thermal::dCooldT, DEBUG_ENTRY, dense, DumpLine(), t_dense::eden, t_dense::EdenHCorr, t_embesq::em13C1910, t_embesq::em1908, embesq, t_transition::Emis, t_transition::EnergyErg, t_transition::EnergyK, t_transition::EnergyWN, fnzone, t_quantumState::g, h2, t_hmi::H2_total, t_thermal::halfte, t_dense::HCorrFac, t_transition::Hi, hmi, t_hmi::Hmolec, t_quantumState::IonStg, ioQQQ, ipC2_2324, ipC2_2325, ipC2_2327, ipC2_2328, ipC2_2329, ipc31175, ipCARBON, ipHELIUM, ipHYDROGEN, ipMH2g, ipT1335, ipT1548, ipT1550, ipT157, ipT1656, ipT1909, ipT270, ipT274, ipT280, ipT291, ipT310, ipT312, ipT370, ipT386, ipT610, ipT8727, ipT977, ipT9830, ligbar(), t_transition::Lo, MALLOC, MAX2, MIN2, t_quantumState::nelem, nWindLine, nzone, t_h2::ortho_density, t_emission::Pesc, phycon, t_quantumState::Pop, t_atoms::PopLevels, t_emission::PopOpc, t_emission::pump, PutCS(), t_carb::r9850, SDIV(), t_phycon::sqrte, T1CM, TauDummy, TauLine2, TauLines, t_phycon::te, t_phycon::te001, t_phycon::te003, t_phycon::te005, t_phycon::te01, t_phycon::te02, t_phycon::te03, t_phycon::te05, t_phycon::te10, t_phycon::te20, t_phycon::te30, t_phycon::te32, t_phycon::te70, thermal, TotalInsanity(), TransitionZero(), t_thermal::tsq1, and t_dense::xIonDense.

Referenced by CoolEvaluate().

Here is the call graph for this function:

void CoolChlo ( void  )
void CoolChro ( void  )
void CoolCoba ( void  )

Definition at line 10 of file cool_coba.cpp.

References atom_level2(), DEBUG_ENTRY, ipCo11527, PutCS(), and TauLines.

Referenced by CoolEvaluate().

Here is the call graph for this function:

void CoolDima ( void  )
void CoolEvaluate ( double *  tot)

CoolEvaluate main routine to call others, to evaluate total cooling

Definition at line 40 of file cool_eval.cpp.

References t_wind::AccelTot, t_phycon::alogte, t_rfield::anu, ASSERT, atmol_popsolve(), atom_level2(), BOLTZMANN, t_CoolHeavy::brems_cool_h, t_CoolHeavy::brems_cool_he, t_CoolHeavy::brems_cool_hminus, t_CoolHeavy::brems_cool_metals, t_CoolHeavy::brems_cool_net, t_CoolHeavy::brems_heat_total, t_CoolHeavy::C12O16Rot, t_CoolHeavy::C13O16Rot, called, cdEXIT, t_dense::cdsqte, t_thermal::cextpw, t_CoolHeavy::cextxx, t_thermal::char_tran_cool, t_hmi::chH2_small_model_type, t_iso::cLya_cool, t_rfield::cmcool, t_transition::Coll, t_iso::coll_ion, t_CoolHeavy::colmet, t_rfield::ContBoltz, conv, t_dynamics::Cool, t_collision::cool, CoolAdd(), CoolAlum(), CoolArgo(), CoolCalc(), CoolCarb(), CoolChlo(), CoolChro(), CoolCoba(), CoolDima(), t_thermal::CoolExtra, CoolFluo(), CoolHeavy, t_hyperfine::cooling_total, CoolIron(), CoolMagn(), CoolMang(), CoolNeon(), CoolNick(), CoolNitr(), CoolOxyg(), CoolPhos(), CoolPota(), CoolScan(), CoolSili(), CoolSodi(), CoolSulf(), CoolSum(), CoolTita(), CoolVana(), CoolZero(), CoolZinc(), t_thermal::ctot, t_CoolHeavy::cyntrn, t_hydro::D2H_ratio, t_CoolHeavy::dC12O16Rot, t_CoolHeavy::dC13O16Rot, t_dynamics::dCooldT, t_thermal::dCooldT, t_dynamics::dDensityDT, DEBUG_ENTRY, dense, t_hmi::deriv_HeatH2Dexc_BD96, t_hmi::deriv_HeatH2Dexc_BHT90, t_hmi::deriv_HeatH2Dexc_BigH2, t_hmi::deriv_HeatH2Dexc_ELWERT, t_hmi::deriv_HeatH2Dexc_TH85, t_hmi::deriv_HeatH2Dexc_used, t_dynamics::dHeatdT, t_thermal::dHeatdT, dynamics, t_dense::eden, t_dense::EdenTrue, t_CoolHeavy::eebrm, EN1RYD, t_CoolHeavy::expans, t_rfield::flux, fndneg(), fndstr(), fnzone, fp_equal(), t_opac::FreeFreeOpacity, t_dense::gas_phase, t_gv::GasCoolColl, t_gv::GasHeatPhotoEl, t_gv::GasHeatTherm, t_rfield::gff, gv, h2, H21_cm_pops(), H21cm_electron(), H21cm_H_atom(), H21cm_proton(), H2_Cooling(), t_hmi::H2_total, t_CoolHeavy::h2line, t_CoolHeavy::H2PlsCool, t_hmi::h2plus_heat, t_thermal::halfte, t_CoolHeavy::HD, t_dynamics::Heat, t_hmi::HeatH2Dexc_BD96, t_hmi::HeatH2Dexc_BHT90, t_hmi::HeatH2Dexc_BigH2, t_hmi::HeatH2Dexc_ELWERT, t_hmi::HeatH2Dexc_TH85, t_hmi::HeatH2Dexc_used, t_hmi::HeatH2Dish_BD96, t_hmi::HeatH2Dish_BHT90, t_hmi::HeatH2Dish_BigH2, t_hmi::HeatH2Dish_ELWERT, t_hmi::HeatH2Dish_TH85, t_hmi::HeatH2Dish_used, t_thermal::heating, t_CoolHeavy::heavfb, t_hyperfine::HFLabundance, HFLines, t_transition::Hi, hmi, t_hmi::hmicol, t_hmi::hmihet, t_hmi::HMinus_photo_rate, t_hmi::Hmolec, t_thermal::htot, hydro, hyperfine, HyperfineCS(), ionbal, t_dense::IonHigh, t_dense::IonLow, t_quantumState::IonStg, ioQQQ, t_rfield::ipEnergyBremsThin, ipH1s, ipH_LIKE, ipHELIUM, t_opac::iphmra, ipHYDROGEN, ipLITHIUM, t_rfield::ipMaxBolt, ipMHm, iso, iso_cool(), iteration, t_gv::lgBakesPAH_heat, t_hmi::lgBigH2_evaluated, t_thermal::lgCExtraOn, t_thermal::lgCNegChk, t_gv::lgDHetOn, t_gv::lgDustOn, t_dense::lgElmtOn, t_CoolHeavy::lgFreeOn, t_gv::lgGrainPhysicsOn, t_hmi::lgH2_Thermal_BigH2, t_h2::lgH2ON, t_hmi::lgNoH2Mole, t_NumDeriv::lgNumDeriv, t_conv::lgSearch, t_called::lgTalk, t_thermal::lgTemperatureConstant, t_trace::lgTrace, LIMELM, magnetic, MAX2, MIN2, N21CM_TE, t_quantumState::nelem, t_rfield::nflux, nHFLines, NISO, t_conv::nPres2Ioniz, NumDeriv, t_rfield::nupper, nzone, opac, t_opac::OpacStack, t_dense::pden, phycon, PI8, POW2, t_magnetic::pressure, PRT_DERIV, PutCS(), t_radius::Radius, radius, rfield, t_ionbal::RR_rate_coef_used, SDIV(), sexp(), ShowMe(), SMALLFLOAT, t_phycon::sqrte, StatesElem, t_CoolHeavy::tccool, t_phycon::te, t_phycon::teinv, TempChange(), thermal, TotalInsanity(), trace, t_rfield::widflx, wind, t_wind::windv, and t_dense::xIonDense.

Referenced by ConvBase(), and PunchLineData().

Here is the call graph for this function:

void CoolFluo ( void  )

Definition at line 11 of file cool_fluo.cpp.

References atom_level3(), DEBUG_ENTRY, ipF0229, ipF0267, ipF425, ipF444, MIN2, phycon, PutCS(), TauDummy, TauLines, t_phycon::te001, t_phycon::te003, t_phycon::te01, t_phycon::te05, t_phycon::te10, and t_phycon::te20.

Referenced by CoolEvaluate().

Here is the call graph for this function:

void CoolIron ( void  )
Todo:
2 - ground term is actually a fix level system, the vectors are created, with pointers ipFe1_54m , ipFe1_111m, must add collision date, use larger model atom
Todo:
2 following to stop insane FeX strengths >>chng 96 jul 11, removed 1 / 10 factor, so using real data, 90.01 cs = cs * 0.1 >>chng 96 jun 03, transferred following >>chng 97 jan 31, I give up on this mess, use cs of unity
Todo:
2 update atomic data to Chidichimo et al 1999 AASup 137, 175
Todo:
2 * following not in cooling function

Definition at line 670 of file cool_iron.cpp.

References t_phycon::alogte, atom_level2(), atom_level3(), atom_pop2(), atom_pop3(), atoms, AtomSeqBeryllium(), AtomSeqBoron(), t_CoolHeavy::c1118, t_CoolHeavy::c1242, t_CoolHeavy::c1328, t_CoolHeavy::c2170, t_CoolHeavy::c242, t_CoolHeavy::c2568, t_CoolHeavy::c263, t_CoolHeavy::c3892, t_CoolHeavy::c5177, t_CoolHeavy::c5303, t_CoolHeavy::c592, t_CoolHeavy::c7082, CoolAdd(), CoolHeavy, t_thermal::dCooldT, DEBUG_ENTRY, dense, DumpLine(), t_dense::eden, t_transition::Emis, Fe11Lev5(), Fe13Lev5(), fe14cs(), Fe2_cooling(), Fe3Lev14(), Fe4Lev12(), Fe7Lev8(), Fe_10_11_13_cs(), t_quantumState::g, t_transition::Hi, t_quantumState::IonStg, ioQQQ, ipFe106375, ipFe18975, ipFe1_24m, ipFe1_35m, ipFe22_217, ipFe22_247, ipFe22_253, ipFe22_292, ipFe22_348, ipFe22_846, ipFeI2966, ipFeI3021, ipFeI3457, ipFeI3729, ipFeI3884, ipHYDROGEN, ipIRON, ipT11, ipT1122, ipT192, ipT245, ipT255, ipT347, ipT352, ipT353, ipTFe13, ipTFe20_578, ipTFe20_721, ipTFe23, ligbar(), LineConvRate2CS(), t_transition::Lo, MakeCS(), MALLOC, MAX2, nWindLine, phycon, t_quantumState::Pop, t_atoms::PopLevels, t_emission::PopOpc, t_emission::pump, PutCS(), sexp(), TauDummy, TauLine2, TauLines, t_phycon::te, t_phycon::te0001, t_phycon::te0003, t_phycon::te0005, t_phycon::te001, t_phycon::te003, t_phycon::te01, t_phycon::te02, t_phycon::te03, t_phycon::te05, t_phycon::te10, t_phycon::te20, t_phycon::te40, thermal, TotalInsanity(), t_thermal::tsq1, and t_dense::xIonDense.

Referenced by CoolEvaluate().

Here is the call graph for this function:

void CoolMagn ( void  )
void CoolMang ( void  )
void CoolNeon ( void  )
void CoolNick ( void  )
void CoolNitr ( void  )
Todo:
2 use atom_level3

Terry's Addition

Todo:
1 update cs these to following reference: >>refer n2 cs Hudson, C.E. & Bell, K.L. 2004, MNRAS, 348, 1275 and A&A, 430, 725 they agree with Lennon & Burke

Definition at line 104 of file cool_nitr.cpp.

References ASSERT, atom_level2(), atom_level3(), atom_pop3(), atom_pop5(), atoms, AtomSeqBeryllium(), AtomSeqBoron(), t_nitro::c10400, t_nitro::c3466, t_nitro::c5200, t_nitro::c5755, t_nitro::c6584, cdEXIT, t_dense::cdsqte, CoolAdd(), t_atoms::d5200r, t_thermal::dCooldT, DEBUG_ENTRY, dense, DumpLine(), t_embesq::em1486, embesq, t_transition::Emis, t_thermal::halfte, t_transition::Hi, t_quantumState::IonStg, ioQQQ, ipN3_1747, ipN3_1749, ipN3_1751, ipN3_1752, ipN3_1754, ipNITROGEN, ipT1085, ipT1200, ipT122, ipT1239, ipT1243, ipT1486, ipT205, ipT209, ipT2140, ipT315, ipT324, ipT333, ipT374g, ipT374x, ipT57, ipT671, ipT765, ipT990, t_dense::lgElmtOn, ligbar(), MALLOC, MAX2, MIN2, nitro, nWindLine, t_atoms::p2nit, phycon, t_atoms::PopLevels, t_emission::pump, t_nitro::pump_rate_N1, PutCS(), t_nitro::quench_5200, SDIV(), t_phycon::sqrte, TauDummy, TauLine2, TauLines, t_phycon::te, t_phycon::te01, t_phycon::te02, t_phycon::te03, t_phycon::te10, t_phycon::te70, thermal, TotalInsanity(), t_thermal::tsq1, t_dense::xIonDense, t_nitro::xN10397, t_nitro::xN10398, t_nitro::xN10407, t_nitro::xN10408, t_nitro::xN2_A3_tot, t_nitro::xN3466, t_nitro::xN3467, t_nitro::xN5198, t_nitro::xN5200, and xNI_coll_stren().

Referenced by CoolEvaluate().

Here is the call graph for this function:

void CoolOxyg ( void  )
Todo:
2 put all these in cooling

Definition at line 35 of file cool_oxyg.cpp.

References t_phycon::alnte, atom_level2(), atom_level3(), atom_oi_calc(), atom_pop3(), atom_pop5(), atoms, AtomSeqBeryllium(), AtomSeqBoron(), t_emission::Aul, t_atoms::c12, t_atoms::c13, t_CoolHeavy::c3727, t_CoolHeavy::c4363, t_CoolHeavy::c5007, t_CoolHeavy::c5577, t_CoolHeavy::c5577_frac_emit, t_CoolHeavy::c6300, t_CoolHeavy::c6300_frac_emit, t_CoolHeavy::c6363, t_CoolHeavy::c7325, t_dense::cdsqte, CO_findrate(), colden, t_transition::Coll, ConvRate2CS(), t_collision::cool, CoolAdd(), CoolHeavy, t_CoolHeavy::coolOi, t_collision::cs, t_oxy::d5007r, t_oxy::d5007t, t_oxy::d6300, t_thermal::dCooldT, DEBUG_ENTRY, dense, DumpLine(), t_dense::EdenHCorr, t_embesq::em1218, embesq, t_transition::Emis, t_transition::EnergyErg, t_transition::EnergyK, fnzone, h2, t_hmi::H2_total, t_thermal::halfte, t_transition::Hi, hmi, t_quantumState::IonStg, ioQQQ, ipHELIUM, ipHYDROGEN, ipO4_1397, ipO4_1400, ipO4_1401, ipO4_1405, ipO4_1407, ipOXYGEN, ipT1032, ipT1037, ipT1214, ipT146, ipT150, ipT1661, ipT1666, ipT26, ipT304, ipT52, ipT5577, ipT63, ipT630, ipT6300, ipT6363, ipT789, ipT834, ipT835, ipTO88, t_dense::lgAsChoose, ligbar(), t_transition::Lo, MALLOC, MAX2, MIN2, nWindLine, t_colden::O1Pops, t_CoolHeavy::O2471, t_CoolHeavy::O2_A2_tot, t_CoolHeavy::O2_A3_tot, t_CoolHeavy::O3726, t_CoolHeavy::O3730, t_oxy::o3br32, t_oxy::o3cs12, t_oxy::o3cs13, t_oxy::o3enro, t_oxy::o3ex23, t_CoolHeavy::O7323, t_CoolHeavy::O7332, oi3Pcs(), t_h2::ortho_density, oxy, t_emission::Pesc, phycon, t_oxy::poiexc, t_oxy::poiii2, t_oxy::poiii3, t_quantumState::Pop, t_atoms::PopLevels, t_emission::PopOpc, t_emission::pump, PutCS(), SDIV(), sexp(), SMALLFLOAT, t_phycon::sqrte, TauDummy, TauLine2, TauLines, t_phycon::te, t_phycon::te0001, t_phycon::te0002, t_phycon::te0003, t_phycon::te0004, t_phycon::te0005, t_phycon::te0007, t_phycon::te001, t_phycon::te002, t_phycon::te003, t_phycon::te004, t_phycon::te005, t_phycon::te007, t_phycon::te01, t_phycon::te02, t_phycon::te03, t_phycon::te04, t_phycon::te05, t_phycon::te07, t_phycon::te10, t_phycon::te20, t_phycon::te30, t_phycon::te32, t_phycon::te70, thermal, TotalInsanity(), t_thermal::tsq1, and t_dense::xIonDense.

Referenced by CoolEvaluate().

Here is the call graph for this function:

void CoolPhos ( void  )
void CoolPota ( void  )
void coolpr ( FILE *  io,
const char *  chLabel,
realnum  lambda,
double  ratio,
const char *  chJOB 
)

coolpr stores coolants before block printed, when printing cooling agents

Parameters:
*iothe label for the coolant
*chLabel
lambdathe wavelength
ratiothe ratio of this coolant, to total cooling, may be negative
*chJOBwhich job, either ZERO, DOIT, or DONE

Definition at line 9 of file cool_pr.cpp.

References ASSERT, cdEXIT, DEBUG_ENTRY, ioQQQ, MIN2, NCOLNT_LAB_LEN, NCOLSAV, and ShowMe().

Referenced by dmpary(), fndstr(), and map_do().

Here is the call graph for this function:

void CoolScan ( void  )
void CoolSili ( void  )
void CoolSodi ( void  )
void CoolSulf ( void  )
Todo:
1 upgrade SV to more levels there is intercombination line at 0.7634 ryd upgrade to atomic data described in >>refer s5 cs Hudson, C.E> & Bell, K.L. 2006, A&A, 452, 1113

Definition at line 36 of file cool_sulf.cpp.

References t_phycon::alogte, atom_level2(), atom_level3(), atom_pop2(), atom_pop3(), atom_pop5(), atoms, AtomSeqBeryllium(), AtomSeqBoron(), t_CoolHeavy::c10330, t_CoolHeavy::c1213, t_CoolHeavy::c1715, t_CoolHeavy::c1826, t_CoolHeavy::c488, t_CoolHeavy::c6312, t_CoolHeavy::c6731, t_CoolHeavy::c9532, CoolAdd(), CoolHeavy, t_thermal::dCooldT, DEBUG_ENTRY, dense, DumpLine(), t_dense::eden, t_embesq::em1198, embesq, t_transition::Emis, t_quantumState::g, t_thermal::halfte, t_transition::Hi, t_quantumState::IonStg, ioQQQ, ipfsS1114, ipfsS1119, ipfsS1207, ipfsS810, ipfsS912, ipfsS938, ipHYDROGEN, ipS12_520, ipS1_25m, ipS1_56m, ipS4_1398, ipS4_1405, ipS4_1407, ipS4_1417, ipS4_1424, ipSULPHUR, ipT1194, ipT1198, ipT1256, ipT786, ipT933, ipT944, ipTS11, ipTS1720, ipTS19, ipTS34, ipTSu30, ipTSu418, ipTSu446, ligbar(), LineConvRate2CS(), MALLOC, MAX2, MIN2, nWindLine, phycon, t_atoms::PopLevels, t_emission::pump, PutCS(), t_CoolHeavy::S10289, t_CoolHeavy::S10323, t_CoolHeavy::S10339, t_CoolHeavy::S10373, S2cs(), t_CoolHeavy::S4070, t_CoolHeavy::S4078, t_CoolHeavy::S6718, t_CoolHeavy::S6733, t_phycon::sqrte, TauDummy, TauLine2, TauLines, t_phycon::te, t_phycon::te0002, t_phycon::te0004, t_phycon::te001, t_phycon::te003, t_phycon::te004, t_phycon::te005, t_phycon::te01, t_phycon::te02, t_phycon::te03, t_phycon::te04, t_phycon::te05, t_phycon::te10, t_phycon::te20, t_phycon::te30, thermal, TotalInsanity(), t_thermal::tsq1, and t_dense::xIonDense.

Referenced by CoolEvaluate().

Here is the call graph for this function:

void CoolSum ( double *  total)
void CoolTita ( void  )
void CoolVana ( void  )
void CoolZero ( void  )

CoolZero set cooling and heating stack to zero

Definition at line 50 of file cool_etc.cpp.

References t_thermal::cooling, t_thermal::dCooldT, DEBUG_ENTRY, t_thermal::heatnt, t_thermal::lgCoolEvalOK, t_thermal::ncltot, NCOLNT, and thermal.

Referenced by CoolEvaluate(), and zero().

void CoolZinc ( void  )

Definition at line 10 of file cool_zinc.cpp.

References atom_level2(), DEBUG_ENTRY, ipZn04363, PutCS(), and TauLines.

Referenced by CoolEvaluate().

Here is the call graph for this function:

void HeatSum ( void  )

HeatSum evaluate all heating agents to determine total heating for this zone, called at end of ionize

total number of neutral colliders (atoms & molecules)

Todo:
1 add part of hard heat to secondaries
Todo:
2 find correct high-energy limit for these

Definition at line 29 of file heat_sum.cpp.

References COmole, DEBUG_ENTRY, dense, t_hmi::H2_total, molecule::hevmol, hmi, t_hmi::Hmolec, ipMH2p, ipMH3p, ipMHm, LIMELM, mole, NISO, t_mole::num_comole_calc, and t_dense::xIonDense.

Referenced by ConvBase().

void HeatZero ( void  )

HeatZero zeroes out the heating array, called at start of ionize

Definition at line 885 of file heat_sum.cpp.

References DEBUG_ENTRY, t_thermal::heating, LIMELM, and thermal.

Referenced by ConvBase(), and zero().

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated for cloudy by doxygen 1.7.6.1