58 double *ts, *flux, *vL, *vR;
61 static double *sigma, **vi;
65 for (i = beg; i <= end; i++){
67 flux = state->
flux[
i];
71 ts = flux[
RHO] > 0.0 ? vL:vR;
79 phi = ts[
X_HeI] + ts[X_HeII];
80 for (nv =
X_HeI; nv <= X_HeII; nv++) flux[nv] /= phi;
85 for (nv = X_CI; nv < X_CI +
C_IONS; nv++) phi += ts[nv];
86 for (nv = X_CI; nv < X_CI +
C_IONS; nv++) flux[nv] /= phi;
91 for (nv = X_NI; nv < X_NI+
N_IONS; nv++) phi += ts[nv];
92 for (nv = X_NI; nv < X_NI+
N_IONS; nv++) flux[nv] /= phi;
97 for (nv = X_OI; nv < X_OI+
O_IONS; nv++) phi += ts[nv];
98 for (nv = X_OI; nv < X_OI+
O_IONS; nv++) flux[nv] /= phi;
103 for (nv = X_NeI; nv < X_NeI+
Ne_IONS; nv++) phi += ts[nv];
104 for (nv = X_NeI; nv < X_NeI+
Ne_IONS; nv++) flux[nv] /= phi;
109 for (nv = X_SI; nv < X_SI+
S_IONS; nv++) phi += ts[nv];
110 for (nv = X_SI; nv < X_SI+
S_IONS; nv++) flux[nv] /= phi;
114 #if COOLING == H2_COOL
126 if (flux[
RHO] >= 0.0) flux[ENTR] = state->
vL[
i][ENTR]*flux[
RHO];
127 else flux[ENTR] = state->
vR[
i][ENTR]*flux[
RHO];
double ** flux
upwind flux computed with the Riemann solver
double ** vR
Primitive variables to the right of the interface, .
double ** vL
Primitive variables to the left of the interface, .
void AdvectFlux(const State_1D *state, int beg, int end, Grid *grid)