| version 1.1, 2001/09/20 14:12:01 |
version 1.2, 2002/07/07 21:56:52 |
| Line 24 void adjust(int isp) |
|
| Line 24 void adjust(int isp) |
|
| // extern float vnext(); |
// extern float vnext(); |
| extern float vnext(int, int); |
extern float vnext(int, int); |
| |
|
| |
secountl = secountr = 0; |
| |
|
| // INITIALIZE array for computing positions of injected particles |
// INITIALIZE array for computing positions of injected particles |
| if (init_flag) { |
if (init_flag) { |
| secsp = secondary -1; |
secsp = secondary -1; |
| Line 77 void adjust(int isp) |
|
| Line 79 void adjust(int isp) |
|
| //********* LHS wall diagnostics *************** {{{ |
//********* LHS wall diagnostics *************** {{{ |
| if (theRunWithXFlag) { |
if (theRunWithXFlag) { |
| dum = (vx[isp][i]*vx[isp][i] + vy[isp][i]*vy[isp][i] |
dum = (vx[isp][i]*vx[isp][i] + vy[isp][i]*vy[isp][i] |
| +vz[isp][i]*vz[isp][i] - emin[isp])/de[isp]; |
+vz[isp][i]*vz[isp][i] - emin[isp])/de[isp]; |
| s = dum; |
s = dum; |
| if (s<nbin[isp]-1 && dum>=0) { |
if (s<nbin[isp]-1 && dum>=0) { |
| dum -= s; |
dum -= s; |
| Line 86 void adjust(int isp) |
|
| Line 88 void adjust(int isp) |
|
| } |
} |
| |
|
| dum = -atan(sqrt(vy[isp][i]*vy[isp][i]+vz[isp][i]*vz[isp][i]) |
dum = -atan(sqrt(vy[isp][i]*vy[isp][i]+vz[isp][i]*vz[isp][i]) |
| /vx[isp][i])/dtheta[isp]; |
/vx[isp][i])/dtheta[isp]; |
| s = dum; |
s = dum; |
| dum -= s; |
dum -= s; |
| ftheta[isp][s] += (!s) ? 2*(1-dum) : 1-dum; |
ftheta[isp][s] += (!s) ? 2*(1-dum) : 1-dum; |
| Line 110 void adjust(int isp) |
|
| Line 112 void adjust(int isp) |
|
| if (theRunWithXFlag) { |
if (theRunWithXFlag) { |
| if (xs_mid[isp] <= x[isp][i] && x[isp][i] <= xf_mid[isp]) { |
if (xs_mid[isp] <= x[isp][i] && x[isp][i] <= xf_mid[isp]) { |
| s = (vx[isp][i]*vx[isp][i] |
s = (vx[isp][i]*vx[isp][i] |
| + vy[isp][i] * vy[isp][i] |
+ vy[isp][i] * vy[isp][i] |
| + vz[isp][i] * vz[isp][i] |
+ vz[isp][i] * vz[isp][i] |
| - emin_mid[isp]) / de_mid[isp]; |
- emin_mid[isp]) / de_mid[isp]; |
| |
|
| if (0 <= s && s< nbin_mid[isp]) |
if (0 <= s && s< nbin_mid[isp]) |
| fe_mid[isp][s] += 1; |
fe_mid[isp][s] += 1; |
| Line 271 L11: ddv = ksign*vt[isp][k]/128.; |
|
| Line 273 L11: ddv = ksign*vt[isp][k]/128.; |
|
| |
|
| do { |
do { |
| df = ddv*(vf + 4.*(vv+ddv)*fdist(vv+ddv,k,isp) + |
df = ddv*(vf + 4.*(vv+ddv)*fdist(vv+ddv,k,isp) + |
| (vv+ddv+ddv)*fdist(vv+ddv+ddv,k,isp))/3.; |
(vv+ddv+ddv)*fdist(vv+ddv+ddv,k,isp))/3.; |
| ddv *= 0.5; |
ddv *= 0.5; |
| } while (df >= ds); |
} while (df >= ds); |
| // If integral increases too much, go back w. dv/2 step |
// If integral increases too much, go back w. dv/2 step |
| Line 316 void sterm(int count) |
|
| Line 318 void sterm(int count) |
|
| |
|
| for (isp=0; isp<nsp; isp++) { |
for (isp=0; isp<nsp; isp++) { |
| if ((np[isp] - count) > maxnp[isp]) { |
if ((np[isp] - count) > maxnp[isp]) { |
| printf("np[isp] initnp[isp][k] maxnp[isp] %d %d %d \n ", |
for (k=0; k<2; k++) { |
| np[isp], initnp[isp][k], maxnp[isp]); |
printf("np[isp] initnp[isp][%d] maxnp[isp] %d %d %d \n ", |
| |
k, np[isp], initnp[isp][k], maxnp[isp]); |
| |
} |
| puts("source term: too many particles, species "); |
puts("source term: too many particles, species "); |
| putchar(isp+49); |
putchar(isp+49); |
| exit(1); |
exit(1); |