50 double T, mu, st, rho, pr, fn;
51 double N_H, n_el, cr, ci, rlosst, em[20], src_pr;
53 static double t00[18] = {0.0 , 0.0 , 1.18e5, 1.40e5, 2.46e5, 1.46e4,
54 92.1 , 6.18e4, 2.76e4, 2.19e4, 228.0 , 2.28e4,
55 3.86e4, 5.13e4, 410.0 , 2.13e4, 575.0 , 8980.0};
57 static double ep[18] = {0.0 , 0.0 , 10.2 , 1.89, 21.2 , 1.26,
58 0.0079, 5.33, 2.38 , 1.89, 0.0197, 1.96,
59 3.33 , 4.43, 0.0354, 1.85, 0.0495, 0.775};
61 static double critn[18] = {0.0 , 0.0 , 1.e10, 1.e10, 1.e10, 312.0,
62 0.849, 1.93e7, 124.0, 865.0, 1090.0, 3950.0,
63 177.0, 1.e10 , 16.8, 96.0, 580.0, 1130.0};
65 static double om[18] = {0.0 , 0.0 , 0.90, 0.35, 0.15 , 0.067,
66 0.63, 0.52, 0.90, 0.30, 0.0055, 0.19,
67 0.33, 8.0 , 2.85, 1.75, 0.3 ,0.39};
69 static double ab[18] = {0.0 , 0.0 , 1.0 , 1.0 , 0.1 , 0.0003,
70 0.0003, 0.0003 , 0.0001 , 0.0001 , 0.0006 , 0.0006,
71 0.0006, 0.00002, 0.00004, 0.00004, 0.00004, 0.00004};
73 static double fn1[20] = {0.0, 0.0, 0.0, 0.0, 0.0,
74 0.1, 1.0, 1.0, 0.0, 1.0,
75 0.0, 0.0, 1.0, 1.0, 1.0,
76 1.0, 1.0, 1.0, 0.0, 1.0};
78 static double fn2[20] = {0.0, 0.0, 1.0, 1.0, 1.0,
79 0.0, 0.0, 0.0, 1.0,-1.0,
80 1.0, 1.0,-1.0, 0.0, 0.0,
81 0.0, 0.0, 0.0, 1.0,-1.0};
82 static int first_call = 1;
129 printf (
"Negative mu in radiat \n");
139 ci = 1.08e-8*st*exp(-157890.0/T)/(13.6*13.6);
141 n_el = N_H*(1.0 - fn +
frac_Z);
142 rhs[
X_HI] = Unit_Time*n_el*(-(ci + cr)*fn + cr);
145 for (k = 2; k <= 17; k++){
146 em[
k] = 1.6e-12*8.63e-6*om[
k]*ep[
k]*exp(-t00[k]/T)/st;
147 em[
k] = em[
k]*critn[
k]*st/(n_el + critn[
k]*st);
148 em[
k] = em[
k]*ab[
k]*(fn1[
k] + fn*fn2[
k]);
149 em[1] = em[1] + em[
k];
152 em[18] = ci*13.6*1.6e-12*fn;
153 em[19] = cr*0.67*1.6e-12*(1.0 - fn)*T/11590.0;
154 em[1] = em[1] + em[18] + em[19];
166 #elif EOS == PVTE_LAW
170 rlosst = em[1]*n_el*N_H;
171 rhs[PRS] = -E_cost*rlosst*(g_gamma - 1.0);
226 if (V[nv] < 0.0) V[nv] = 0.0;
227 if (V[nv] > 1.0) V[nv] = 1.0;
234 double fracHe = N_He/N_H;
235 double fracZ = N_Z/N_H;
239 double munum = 1.0 +
A_He*(fracHe) +
A_Z*(fracZ);
240 double muden = 2 - fn + fracHe + fracZ + 0.5*
A_Z*(fracZ);
#define UNIT_DENSITY
Unit density in gr/cm^3.
#define CONST_amu
Atomic mass unit.
double g_smallPressure
Small value for pressure fix.
#define UNIT_VELOCITY
Unit velocity in cm/sec.
#define UNIT_LENGTH
Unit Length in cm.
double g_minCoolingTemp
The minimum temperature (in K) below which cooling is suppressed.
void Radiat(double *v, double *rhs)
double MeanMolecularWeight(double *V)