13 #define ORTHO_PARA_MODE 1
33 static double *lnT, *funcdum;
54 if (y > lnT[nsteps-2]) {
55 *funcdum_val = funcdum[nsteps-2];
56 }
else if (y < lnT[0]) {
57 *funcdum_val = funcdum[0];
60 indx = floor((y - lnT[0])/dy);
62 if (indx >= nsteps || indx < 0){
63 print1 (
"! GetFuncDum: indx out of range, indx = %d\n",indx);
64 print1 (
"! T = %12.6e\n",T);
67 *funcdum_val = (funcdum[indx]*(lnT[indx+1] - y)
68 + funcdum[indx+1]*(y - lnT[indx]))/dy;
152 double Tmax = 1.0e12;
153 double dy = log(Tmax/Temp0)*(1./nsteps);
154 double dT = Temp0*exp(dy);
155 double T,
a, b, b1,
scrh, inv_T2;
156 double zetaP, dzetaP, zetaO, dzetaO, zetaR, dzetaR;
157 double dum1, dum2, dum3;
158 double alpha, beta, gamma;
159 double dzO_zO_m, db, sum1, sum2;
161 print1 (
"> MakeZetaTables(): generating Zeta tables...\n");
164 alpha = 1.0; beta = 0.0; gamma = 0.0;
166 alpha = 0.25; beta = 0.75; gamma = 0.0;
168 alpha = 1.0; beta = 0.0; gamma = 1.0;
172 for(j = 0; j < nsteps; j++){
175 zetaO = zetaP = dzetaP = dzetaO = 0.0;
176 dzO_zO_m = sum1 = sum2 = 0.0;
177 for(i = 0; i <= 10000; i++){
193 zetaO = exp(-b1/T)*sum1;
194 dzetaO = exp(-b1/T)*(b1*sum1 + sum2)*inv_T2;
196 dzO_zO_m = sum2/sum1*inv_T2;
204 scrh = zetaO*exp(2.0*
THETA_R/T);
206 zetaR = pow(zetaP,alpha)*pow(scrh,beta) + 3.0*gamma*zetaO;
207 dzetaR = (zetaR - 3.0*gamma*zetaO)*(alpha*(dzetaP/zetaP) +
208 beta*dzO_zO_m) + 3.0*gamma*dzetaO;
210 dum2 = dum1*exp(-dum1)/(1.0 - exp(-dum1));
211 dum3 = (T/zetaR)*dzetaR;
212 funcdum[
j] = 1.5 + dum2 + dum3;
#define T_CUT_RHOE
Sets the lowest cut-off temperature used in the PVTE_LAW equation of state.
void print1(const char *fmt,...)
static void MakeZetaTables(double *, double *, int)
void GetFuncDum(double T, double *funcdum_val)
#define ARRAY_1D(nx, type)
#define QUIT_PLUTO(e_code)