4 void Radiat (
double *v,
double *rhs)
42 double T, mu, st, rho, prs, fn;
43 double N_H, n_el, cr, ci, rlosst, em[20], src_pr;
45 static double t00[18] = {0.0 , 0.0 , 1.18e5, 1.40e5, 2.46e5, 1.46e4,
46 92.1 , 6.18e4, 2.76e4, 2.19e4, 228.0 , 2.28e4,
47 3.86e4, 5.13e4, 410.0 , 2.13e4, 575.0 , 8980.0};
49 static double ep[18] = {0.0 , 0.0 , 10.2 , 1.89, 21.2 , 1.26,
50 0.0079, 5.33, 2.38 , 1.89, 0.0197, 1.96,
51 3.33 , 4.43, 0.0354, 1.85, 0.0495, 0.775};
53 static double critn[18] = {0.0 , 0.0 , 1.e10, 1.e10, 1.e10, 312.0,
54 0.849, 1.93e7, 124.0, 865.0, 1090.0, 3950.0,
55 177.0, 1.e10 , 16.8, 96.0, 580.0, 1130.0};
57 static double om[18] = {0.0 , 0.0 , 0.90, 0.35, 0.15 , 0.067,
58 0.63, 0.52, 0.90, 0.30, 0.0055, 0.19,
59 0.33, 8.0 , 2.85, 1.75, 0.3 ,0.39};
61 static double ab[18] = {0.0 , 0.0 , 1.0 , 1.0 , 0.1 , 0.0003,
62 0.0003, 0.0003 , 0.0001 , 0.0001 , 0.0006 , 0.0006,
63 0.0006, 0.00002, 0.00004, 0.00004, 0.00004, 0.00004};
65 static double fn1[20] = {0.0, 0.0, 0.0, 0.0, 0.0,
66 0.1, 1.0, 1.0, 0.0, 1.0,
67 0.0, 0.0, 1.0, 1.0, 1.0,
68 1.0, 1.0, 1.0, 0.0, 1.0};
70 static double fn2[20] = {0.0, 0.0, 1.0, 1.0, 1.0,
71 0.0, 0.0, 0.0, 1.0,-1.0,
72 1.0, 1.0,-1.0, 0.0, 0.0,
73 0.0, 0.0, 0.0, 1.0,-1.0};
74 static int first_call = 1;
75 static double E_cost, Unit_Time, N_H_rho;
128 printf (
"Negative mu in radiat \n");
138 ci = 1.08e-8*st*exp(-157890.0/T)/(13.6*13.6);
140 n_el = N_H*(1.0 - fn +
frac_Z);
141 rhs[
X_HI] = Unit_Time*n_el*(-(ci + cr)*fn + cr);
144 for (k = 2; k <= 17; k++){
145 em[
k] = 1.6e-12*8.63e-6*om[
k]*ep[
k]*exp(-t00[k]/T)/st;
146 em[
k] = em[
k]*critn[
k]*st/(n_el + critn[
k]*st);
147 em[
k] = em[
k]*ab[
k]*(fn1[
k] + fn*fn2[
k]);
148 em[1] = em[1] + em[
k];
151 em[18] = ci*13.6*1.6e-12*fn;
152 em[19] = cr*0.67*1.6e-12*(1.0 - fn)*T/11590.0;
153 em[1] = em[1] + em[18] + em[19];
163 rlosst = em[1]*n_el*N_H;
169 rhs[RHOE] = -E_cost*rlosst;
213 double cr, ci, st, n_e;
216 ci = 1.08e-8*st*exp(-157890.0/T)/(13.6*13.6);
217 v[
X_HI] = cr / (ci + cr);
#define UNIT_DENSITY
Unit density in gr/cm^3.
#define T_CUT_RHOE
Sets the lowest cut-off temperature used in the PVTE_LAW equation of state.
double InternalEnergy(double *v, double T)
#define CONST_amu
Atomic mass unit.
void Radiat(double *v, double *rhs)
double g_smallPressure
Small value for pressure fix.
#define UNIT_VELOCITY
Unit velocity in cm/sec.
int GetEV_Temperature(double rhoe, double *v, double *T)
#define UNIT_LENGTH
Unit Length in cm.
#define CONST_AZ
Mean atomic weight of heavy elements.
double g_minCoolingTemp
The minimum temperature (in K) below which cooling is suppressed.
double MeanMolecularWeight(double *V)
#define CONST_AHe
Atomic weight of Helium.
double CompEquil(double N, double T, double *v)