1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
//*****************************************************************************
void inline f1(double***u,double***v,double***w,double***p,double***nus,
const double&dt,const double&C2,const int&filtre){
const int nxm5=nx-5;
int i,j,k,im2,im3,ip1,ip2,ip3,ip4,km3,jm3;
double dtdv;
for(k=3;k<nzm3;k++){
km3=k-3;
for(j=3;j<nym3;j++){
jm3=j-3;
for(i=0;i<nxm5;i++){
ip1=i+1;
ip2=i+2;
ip3=i+3;
ip4=i+4;
f2(C2,p[ip1][j][k],p[ip2][j][k],p[ip3][j][k],p[ip4][j][k],
u[ip1][j][k],u[ip2][j][k],u[ip3][j][k],u[ip4][j][k],
v[ip1][j][k],v[ip2][j][k],v[ip3][j][k],v[ip4][j][k],
w[ip1][j][k],w[ip2][j][k],w[ip3][j][k],w[ip4][j][k],
nus[ip1][j][k],nus[ip2][j][k],nus[ip3][j][k],nus[ip4][j][k],dt,
V[ip1][j][k],V[ip2][j][k],V[ip3][j][k],V[ip4][j][k],Sx[jm3][km3],
wall[ip1][j][k],wall[ip2][j][k],wall[ip3][j][k],wall[ip4][j][k],
f[0][i],f[1][i],f[2][i],f[3][i],f[4][i],filtre);
if(wall[ip2][j][k]==0 || wall[ip3][j][k]==0)
f[2][i]=f[3][i]=f[4][i]=nul;
}
for(i=3;i<nxm3;i++){
if(wall[i][j][k]==1){
im2=i-2;
im3=i-3;
dtdv=dt/V[i][j][k];
p[i][j][k]-=dtdv*(f[0][im2]-f[0][im3]);
u[i][j][k]-=dtdv*(f[1][im2]-f[1][im3]);
v[i][j][k]-=dtdv*(f[2][im2]-f[2][im3]);
w[i][j][k]-=dtdv*(f[3][im2]-f[3][im3]);
nus[i][j][k]-=dtdv*(f[4][im2]-f[4][im3]);
}
}
}
}
} |
Partager