3 static void WENO3_COEFF(
double **, 
double **, 
double **, 
double **, 
Grid *);
 
   24   double **v, **vp, **vm, *dvp, *dvm, *dx;
 
   25   double **Lv, **Rv, *lambda;
 
   26   double *R, *L, *P, *M;
 
   27   double b0, S0, wp, tau;
 
   32   static double **Rg, **Lg, **Pg, **Mg; 
 
   64   #if CHAR_LIMITING == NO   
   67    for (i = beg-1; i <= end; i++){
 
   68    for (nv = 
NVAR; nv--; ){
 
   69      dv[
i][nv] = v[i+1][nv] - v[
i][nv];
 
   72    for (i = beg; i <= end; i++){
 
   76      #if SHOCK_FLATTENING == MULTID     
   78         for (nv = 
NVAR; nv--;    ) {
 
   79           dmm = 
MINMOD(dvp[nv], dvm[nv]);
 
   80           vp[
i][nv] = v[
i][nv] + 0.5*dmm;
 
   81           vm[
i][nv] = v[
i][nv] - 0.5*dmm;
 
   88      for (nv = 0; nv < 
NVAR; nv++){
 
   89        b0 = dvp[nv]*dvp[nv] + dx2;
 
   90        b1 = dvm[nv]*dvm[nv] + dx2;
 
   92        tau = dvp[nv] - dvm[nv];
 
  104        vp[
i][nv] = v[
i][nv] + (S0*R[
i]*dvp[nv] + P[
i]*S1*R[i-1]*dvm[nv])
 
  106        vm[
i][nv] = v[
i][nv] - (M[
i]*S0*L[
i]*dvp[nv] + S1*L[i-1]*dvm[nv])
 
  118    for (nv = 
NVAR; nv--;   ) dv[i][nv] = v[i+1][nv] - v[i][nv];
 
  120    for (i = beg; i <= end; i++){
 
  139      #if SHOCK_FLATTENING == MULTID     
  141         for (nv = 
NVAR; nv--;    ) {
 
  142           dmm = 
MINMOD(dvp[nv], dvm[nv]);
 
  143           vp[
i][nv] = v[
i][nv] + 0.5*dmm;
 
  144           vm[
i][nv] = v[
i][nv] - 0.5*dmm;
 
  151      for (k = 
NVAR; k--; ){
 
  152        b0 = dwp[
k]*dwp[
k] + dx2;
 
  153        b1 = dwm[
k]*dwm[
k] + dx2;
 
  155        tau = dwp[
k] - dwm[
k];
 
  161        dwp_lim[
k] = (S0*dwp[
k] + 0.5*S1*dwm[
k])/(2.0*S0 + S1);
 
  162        dwm_lim[
k] = (S1*dwm[
k] + 0.5*S0*dwp[
k])/(2.0*S1 + S0);
 
  169      for (nv = 
NFLX; nv--;   ){
 
  172         if (nv == 
BXn) 
continue;
 
  174        for (k = 
NFLX; k--; ){
 
  175          dvpR += dwp_lim[
k]*Rv[nv][
k];
 
  176          dvmR += dwm_lim[
k]*Rv[nv][
k];
 
  178        vp[
i][nv] = v[
i][nv] + dvpR;
 
  179        vm[
i][nv] = v[
i][nv] - dvmR;
 
  191         vp[
i][nv] = v[
i][nv] + dwp_lim[nv];
 
  192         vm[
i][nv] = v[
i][nv] - dwm_lim[nv];
 
  204   for (i = beg; i <= end; i++){
 
  207     if (vp[i][
RHO] < 0.0 || vm[i][
RHO] < 0.0){
 
  208       for (nv = 
NFLX; nv--;  ){
 
  216      if (vp[i][PRS] < 0.0 || vm[i][PRS] < 0.0){
 
  217        for (nv = 
NFLX; nv--;  ){
 
  218          dmm = 
MINMOD(dvp[PRS], dvm[PRS]);
 
  219          vp[
i][PRS] = v[
i][PRS] + 0.5*dmm;
 
  220          vm[
i][PRS] = v[
i][PRS] - 0.5*dmm;  
 
  225      if (vp[i][ENTR] < 0.0 || vm[i][ENTR] < 0.0){
 
  226        dmm = 
MINMOD(dvp[ENTR], dvm[ENTR]);
 
  227        vp[
i][ENTR] = v[
i][ENTR] + 0.5*dmm;
 
  228        vm[
i][ENTR] = v[
i][ENTR] - 0.5*dmm;
 
  234     #if PHYSICS == RHD || PHYSICS == RMHD 
  244 #if SHOCK_FLATTENING == ONED  
  245   Flatten (state, beg, end, grid);
 
  253    for (i = beg - 1; i <= end; i++) {
 
  262 #if TIME_STEPPING == CHARACTERISTIC_TRACING 
  264 #elif TIME_STEPPING == HANCOCK 
  300     beg = 0; end = grid[d].
np_tot - 2;
 
  301     for (i = beg; i <= end; i++){
 
  302       R[d][
i] = dV[i + 1]/(dV[
i] + dV[i + 1]);
 
  303       L[d][
i] = 1.0 - R[d][
i];
 
  305     beg = 1; end = grid[d].
np_tot - 2;
 
  306     for (i = beg; i <= end; i++){
 
  307       P[d][
i] = dV[i + 1]/(dV[
i] + dV[i - 1]);
 
  308       M[d][
i] = dV[i - 1]/(dV[
i] + dV[i + 1]);
 
double ** v
Cell-centered primitive varables at the base time level, v[i] =  . 
 
void VelocityLimiter(double *, double *, double *)
 
void ConvertTo4vel(double **, int, int)
 
void Flatten(const State_1D *, int, int, Grid *)
 
void PrimEigenvectors(double *q, double cs2, double h, double *lambda, double **LL, double **RR)
 
void CharTracingStep(const State_1D *, int, int, Grid *)
 
double ** vR
Primitive variables to the right of the interface, . 
 
#define FLAG_MINMOD
Reconstruct using MINMOD limiter. 
 
void States(const State_1D *state, int beg, int end, Grid *grid)
 
static void WENO3_COEFF(double **, double **, double **, double **, Grid *)
 
void SoundSpeed2(double **v, double *cs2, double *h, int beg, int end, int pos, Grid *grid)
 
double ** vp
prim vars at i+1/2 edge, vp[i] = vL(i+1/2) 
 
int g_dir
Specifies the current sweep or direction of integration. 
 
double ** lambda
Characteristic speed associated to Lp and Rp. 
 
void ConvertTo3vel(double **, int, int)
 
void PrimToChar(double **L, double *v, double *w)
 
double ** vm
prim vars at i-1/2 edge, vm[i] = vR(i-1/2) 
 
long int NMAX_POINT
Maximum number of points among the three directions, boundaries excluded. 
 
void PrimToCons(double **uprim, double **ucons, int ibeg, int iend)
 
double * bn
Face magentic field, bn = bx(i+1/2) 
 
double ** um
same as vm, in conservative vars 
 
double ** vL
Primitive variables to the left of the interface, . 
 
double * a2
Sound speed squared. 
 
double ** up
same as vp, in conservative vars 
 
#define ARRAY_2D(nx, ny, type)          
 
double *** Rp
Left and right primitive eigenvectors. 
 
int np_tot
Total number of points in the local domain (boundaries included). 
 
void HancockStep(const State_1D *, int, int, Grid *)