39 double x, rho, e, mu, kT;
79 double me, kT, h3,
c, x,
n;
89 c = me*kT*sqrt(me*kT)/(h3*
n)*exp(-chi/kT);
91 x = 2.0/(sqrt(1.0 + 4.0/c) + 1.0);
96 void GetMu(
double T,
double rho,
double *mu)
146 double cv, mu, chirho = 1.0, chiT = 1.0, rho,
rhoe;
147 double epp, emm, ep, em, delta = 1.e-3;
148 double Tpp, Tmm, Tp, Tm, mupp, mumm, mup, mum, rhopp, rhomm, rhop, rhom;
149 double dmu_dT, dmu_drho, de_dT;
172 Tp = T*(1.0 + delta);
173 Tm = T*(1.0 - delta);
174 Tmm = T*(1.0 - 2.0*delta);
175 Tpp = T*(1.0 + 2.0*delta);
190 de_dT = (ep - em)/(2.0*delta*T);
191 #elif DIFF_ORDER == 4
192 de_dT = (emm - 8.0*em + 8.0*ep - epp)/(12.0*delta*T);
194 #error Order not allowed in Gamma1()
202 GetMu(Tp, rho, &mup);
203 GetMu(Tm, rho, &mum);
204 GetMu(Tpp, rho, &mupp);
205 GetMu(Tmm, rho, &mumm);
208 dmu_dT = (mup - mum)/(2.0*delta*T);
209 #elif DIFF_ORDER == 4
210 dmu_dT = (mumm - 8.0*mum + 8.0*mup - mupp)/(12.0*delta*T);
212 #error Order not allowed in Gamma1()
215 chiT = 1.0 - T/mu*dmu_dT;
217 rhop = rho*(1.0 + delta);
218 rhom = rho*(1.0 - delta);
219 rhopp = rho*(1.0 + 2.0*delta);
220 rhomm = rho*(1.0 - 2.0*delta);
222 GetMu(T, rhop, &mup);
223 GetMu(T, rhom, &mum);
224 GetMu(T, rhopp, &mupp);
225 GetMu(T, rhomm, &mumm);
228 dmu_drho = (mup - mum)/(2.0*delta*rho);
229 #elif DIFF_ORDER == 4
230 dmu_drho = (mumm - 8.0*mum + 8.0*mup - mupp)/(12.0*delta*rho);
232 #error Order not allowed in Gamma1()
234 chirho = 1.0 - rho/mu*dmu_drho;
244 gmm1 = v[PRS]/(cv*T*v[
RHO])*chiT*chiT + chirho;
#define CONST_h
Planck Constant.
static double SahaXFrac(double T, double rho)
#define UNIT_DENSITY
Unit density in gr/cm^3.
double InternalEnergy(double *v, double T)
#define CONST_eV
Electron Volt in erg.
#define CONST_amu
Atomic mass unit.
#define CONST_mp
Proton mass.
#define CONST_me
Electron mass.
#define UNIT_VELOCITY
Unit velocity in cm/sec.
#define CONST_kB
Boltzmann constant.
#define CONST_mH
Hydrogen atom mass.
double MeanMolecularWeight(double *V)
void GetMu(double T, double rho, double *mu)
int GetPV_Temperature(double *v, double *T)
double InternalEnergyFunc(double *v, double T)