13 void pass_1d_line_multipl_paraline(
int MULTIPLTYPE,
int whichquantity,
int dir,
int do_weight_or_recon,
int recontype,
int whichreduce,
int preforder,
int bs,
int ps,
int pe,
int be,
int *minorder,
int *maxorder,
int *shift,
FTYPE (*shockindicator)[
NBIGM],
FTYPE *stiffindicator,
FTYPE (*Vline)[NBIGM],
FTYPE (*Pline)[NBIGM],
FTYPE (*df)[
NUMDFS][NBIGM],
FTYPE (*dP)[NBIGM],
FTYPE (*etai)[
NUMTRUEEOMSETS][NBIGM],
FTYPE (*monoindicator)[
NUMMONOINDICATORS][NBIGM],
FTYPE (*yprim)[2][NBIGM],
FTYPE (*ystencilvar)[2][NBIGM],
FTYPE (*yin)[2][NBIGM],
FTYPE (*yout)[2][NBIGM],
FTYPE (*youtpolycoef)[
MAXSPACEORDER][NBIGM],
struct of_trueijkp *trueijkp)
15 int nprlocalstart,nprlocalend;
16 int nprlocallist[MAXNPR];
28 void jonparasmooth_compute(
int realisinterp,
int dqrange,
int pl,
FTYPE *y,
FTYPE *dq1,
FTYPE *dq2,
FTYPE *lout,
FTYPE *rout,
int *smooth);
40 #if(DOPPMREDUCE && SHOCKINDICATOR==0)
41 #error "Paraline needs SHOCKINDICATOR==1 when DOPPMREDUCE==1"
44 #if(DOPPMCONTACTSTEEP && CONTACTINDICATOR==0)
45 #error "If Steepen in paraline, must turn on CONTACTINDICATOR"
66 setup_nprlocalist(whichquantity,&nprlocalstart,&nprlocalend,nprlocallist,&numprims);
76 NUMPRIMLOOP(pliter,pl)
for( i = ps; i <= pe+1; i++ ) {
77 paracont(df[pl][
DF2OFMONO][i], &yin[pl][0][i], &facecont[pl][i]);
86 NUMPRIMLOOP(pliter,pl)
for( i = ps; i <= pe; i++ ) {
92 right=facecont[pl][i+1];
99 jonparasmooth_compute(realisinterp,dqrange,pl,&yin[pl][0][i],&df[pl][
DFONESIDED][i],&df[pl][
DFCENT][i],&left,&right,&smooth);
105 #if(DOPPMCONTACTSTEEP)
106 if(smooth==0 && (whicheom==
EOMSETMHD || whicheom==
EOMSETRAD&&
RADSHOCKFLAT)) parasteepgen(pl,etai[pl][whicheom][i],&Vline[whicheom][i],&Pline[whicheom][i],&yin[pl][0][i],&df[pl][
DFMONO][i],&left,&right);
116 checkparamonotonicity(smooth, dqrange, pl, &yin[pl][0][i], &df[pl][
DF2OFMONO][i], &df[pl][
DFMONO][i], &left,&right,&left,&right);
121 #if(PARALINEUSESMONO)
124 if(monoindicator[pl][
MONOLEFTSET][i]==0.0) yout[pl][0][
i]=0.0;
125 if(monoindicator[pl][
MONORIGHTSET][i]==0.0) yout[pl][1][
i]=0.0;
133 yout[pl][0][
i] = left * (1.0-mymono) + yout[pl][0][i] * mymono;
134 yout[pl][1][
i] = right * (1.0-mymono) + yout[pl][1][i] * mymono;
137 yout[pl][0][
i] = left;
138 yout[pl][1][
i] = right;
150 yout[pl][0][
i] = yin[pl][0][
i] - 0.5*mydq;
151 yout[pl][1][
i] = yin[pl][0][
i] + 0.5*mydq;
154 #if(NONMONOLIM>0 && DOPPMREDUCE)
156 if(whicheom==
EOMSETMHD || whicheom==
EOMSETRAD&&
RADSHOCKFLAT) paraflatten(dir,pl,&yin[pl][0][i],shockindicator[whicheom][i],&yout[pl][0][i],&yout[pl][1][i]);
169 void pass_1d_line_paraline(
int whichquantity,
int dir,
int do_weight_or_recon,
int recontype,
int whichreduce,
int preforder,
int pl,
int bs,
int ps,
int pe,
int be,
int *minorder,
int *maxorder,
int *shift,
FTYPE (*shockindicator)[NBIGM],
FTYPE *stiffindicator,
FTYPE (*Vline)[NBIGM],
FTYPE (*Pline)[NBIGM],
FTYPE (*df)[NBIGM],
FTYPE (*dP)[NBIGM],
FTYPE (*etai)[NBIGM],
FTYPE (*monoindicator)[NBIGM],
FTYPE (*yprim)[2][NBIGM],
FTYPE (*ystencilvar)[NBIGM],
FTYPE (*yin)[NBIGM],
FTYPE (*yout)[NBIGM],
FTYPE (*youtpolycoef)[NBIGM],
struct of_trueijkp *trueijkp)
174 dualfprintf(
fail_file,
"pass_1d_line_paraline() not setup\n");
186 void get_limit_slopes(
int reallim,
int extremum,
FTYPE *dq1l,
FTYPE *dq1r,
FTYPE *dq2,
FTYPE *dqout);