Nov 29, 2013 at 9:36am UTC
Hi,All
I am a beginner to C++ coding and I have managed to write the following code. I had successfully cleared all my coding and syntax errors. Now, I am stuck up with Linking errors 2028 and 2019. I was hoping my errors would get solved but thats not the case.
my code:
#include<math.h>
#include<stdio.h>
const int ie=22,je=11,me=13,ninp=5;
const double dx=0.0425,dy=0.0425,dz=0.0425,ro=1000,uinp=-0.2591,poua=0,pi=3.1415,dt=0.03,dtt=0.04,g=-9.806,sk=1.0,se=1.3,cmu=0.09,ce1=1.44,ce2=1.92,nui=1e-6;
double u[ie+2][je+2][me+2],v[ie+2][je+2][me+2],w[ie+2][je+2][me+2],p[ie+2][je+2 ][me+2],k[ie+2][je+2][me+2],e[ie+2][je+2][me+2];
double rhsu[ie+2][je+2][me+2],rhsv[ie+2][je+2][me+2],rhsw[ie+2][je+2][me+2],rhsk[ie+2][je+2][me+2],rhse[ie+2][je+2][me+2],gt[ie+2][je+2][me+2],nut[ie+2][je+2][me+2],ub[ie+2][je+2][me+2],vb[ie+2][je+2][me+2],wb[ie+2][je+2][me+2];
double ap[ie+1][je+1][me+1],apn[ie+1][je+1][me+1],ape[ie+1][je+1][me+1],aps[ie+1][je+1][me+1],apw[ie+1][je+1][me+1],apt[ie+1][je+1][me+1],apb[ie+1][je+1][me+1],bp[ie+1][je+1][me+1];
void init();
void prescof();
void rhs();
void solver();
void bound();
void starturbu();
void turbound();
void kepsilon();
void surfdat();
long t;
void main(){
FILE *res;
res=fopen("Res.txt","w");
fprintf(res,"ie=%i, je=%i, me=%i, ninp=%i",ie,je,me,ninp);
fprintf(res,", dt=%f, dx=%f, dy=%f, dz=%f, ro=%f, uinp=%f, poua=%f ,g=%f",dt,dx,dy,dz ,ro,uinp,poua,g);
fprintf(res,"\nStep p[%i][%i][%i] u[%i][3][%i]\n",ie,je-2,me,ie+1,me);
init();
prescof();
for(t=1;t<400;t++){
printf("\nTry=%i",t);
rhs();
solver();
bound();
starturbu();
turbound();
kepsilon();
fprintf(res,"%i %f %f %f %f\n",t,p[ie][je-2][me],u[ie+1][3][me],k[ie][je-2][me],e[ie+1][3][me]);};
surfdat();
fclose (res);}
void init(){
int i,j,m;
for(i=0;i<ie+2;i++){for(j=0;j<je+2;j++){ for(m=0;m<me+2;m++){
p[i][j][m]=poua;v[i][j][m]=0;u[i][j][m]=0;w[i][j][m]=0;rhsu[i][j][m]=0;rhsv[i][j][m]=0;rhsw[i][j][m]=0;nut[i][j][m]=1e-4;}}}
for(j=7;j<je+1;j++){u[ie][j][me]=uinp;rhsu[ie][j][me]=uinp;}
for(j=1;j<6;j++)p[ie][j][me]=poua;}
void prescof(){
int i,j,m;
for(i=1;i<ie+1;i++)for(j=1;j<je+1;j++)for(m=1;m<me+1;m++){
apt[i][j][m]=1/(ro*dz*dz);apn[i][j][m]=1/(ro*dy*dy);ape[i][j][m]=1/(ro*dx*dx);
apb[i][j][m]=1/(ro*dz*dz);aps[i][j][m]=1/(ro*dy*dy);apw[i][j][m]=1/(ro*dx*dx);}
for(i=1;i<ie+1;i++)for(m=1;m<me+1;m++){aps[i][1][m]=0;apn[i][je][m]=0;};
for(i=6;i<ie+1;i++)for(m=1;m<me+1;m++){aps[i][7][m]=0;apn[i][5][m]=0;}
for(j=1;j<je+1;j++)for(m=1;m<me+1;m++){apw[1][j][m]=0;}
for(j=1;j<6;j++){apn[ie][j][me]=0;aps[ie][j][me]=0;apw[ie][j][me]=0;ape[ie][j][me]=0;apt[ie][j][me]=0;apb[ie][j][me]=0;}}
void rhs(){
int i,j,m;
double ua,va,wa,tp;
for(i=2;i<ie+1;i++)for(j=1;j<je+1;j++)for(m=1;m<me+1;m++){
ua=(u[i-1][j][m]+u[i][j][m])/2;
if(ua>0)tp=-ua*u[i-1][j][m]/dx;else tp=-ua*u[i][j][m]/dx;
ua=(u[i][j][m]+u[i+1][j][m])/2;
void bound(){
int i,j,m;
v[6][6][m]=-v[5][6][m];w[6][6][m]=-w[5][6][m];};
for(j=1;j<6;j++)u[ie+1][j][me]=-(dx/dy)*(v[ie][j+1][me]-v[ie][j][me])-(dx/dz)*(w[ie][j][me+1]-w[ie][j][me])+u[ie][j][me];}
void solver(){
int i,j,m;
for(i=6;i<ie+1;i++)for(j=7;j<je+1;j++)for(m=1;m<me+1;m++){
p[i][j][m]=p[i-1][j][m]*apw[i][j][m]+p[i+1][j][m]*ape[i][j][m]+p[i][j-1][m]*aps[i][j][m]+p[i][j+1][m]*apn[i][j][m]+p[i][j][m-1]*apb[i][j][m]+p[i][j][m+1]*apt[i][j][m]-bp[i][j][m];}
for(i=2;i<6;i++)for(j=1;j<je+1;j++)for(m=1;m<me+1;m++){
u[i][j][m]=(-dt/(ro*dx))*(p[i][j][m]-p[i-1][j][m])+rhsu[i][j][m];}
for(i=6;i<ie+1;i++)for(j=1;j<6;j++)for(m=1;m<me+1;m++){
u[i][j][m]=(-dt/(ro*dx))*(p[i][j][m]-p[i-1][j][m])+rhsu[i][j][m];}
for(i=6;i<ie+1;i++)for(j=7;j<je+1;j++)for(m=1;m<me+1;m++){
u[i][j][m]=(-dt/(ro*dx))*(p[i][j][m]-p[i-1][j][m])+rhsu[i][j][m];}
for(i=1;i<6;i++)for(j=2;j<je+1;j++)for(m=1;m<me+1;m++){
v[i][j][m]=(-dt/(ro*dy))*(p[i][j][m]-p[i][j-1][m])+rhsv[i][j][m];}
for(i=6;i<ie+1;i++)for(j=2;j<6;j++)for(m=1;m<me+1;m++){
v[i][j][m]=(-dt/(ro*dy))*(p[i][j][m]-p[i][j-1][m])+rhsv[i][j][m];}
for(i=6;i<ie+1;i++)for(j=8;j<je+1;j++)for(m=1;m<me+1;m++);{
v[i][j][m]=(-dt/(ro*dy))*(p[i][j][m]-p[i][j-1][m])+rhsv[i][j][m];}
for(i=1;i<6;i++)for(j=1;j<je+1;j++)for(m=2;m<me+1;m++){
w[i][j][m]=(-dt/(ro*dz))*(p[i][j][m]-p[i][j][m-1])+rhsw[i][j][m];}
for(i=6;i<ie+1;i++)for(j=1;j<6;j++)for(m=2;m<me+1;m++){
w[i][j][m]=(-dt/(ro*dz))*(p[i][j][m]-p[i][j][m-1])+rhsw[i][j][m];}
for(i=6;i<ie+1;i++)for(j=7;j<je+1;j++)for(m=2;m<me+1;m++){
w[i][j][m]=(-dt/(ro*dz))*(p[i][j][m]-p[i][j][m-1])+rhsw[i][j][m];}}
void starturbu(){
int i,j,m;
double ux,vy,wz,uy,uz,vx,vz,wx,wy;
for(i=1;i<ie+1;i++)for(j=1;j<je+1;j++)for(m=1;m<me+1;m++){
ux=(u[i][j][m]-u[i+1][j][m])/dx; vy=(v[i][j][m]-v[i][j+1][m])/dy;wz=(w[i][j][m]-w[i][j][m+1])/dz;uy=((u[i+1][j+1][m]+u[i][j+1][m])-(u[i+1][j-1][m]+u[i][j-1];uz=((u[i+1][j][m+1]+u[i][j][m+1])-(u[i+1][j][m-1]+u[i][j][m-1]))/(4*dz);vx=((v[i+1][j+1][m]+v[i+1][j][m])-(v[i-1][j+1][m]+v[i-1][j][m]))/(4*dx);vz=((v[i][j+1][m+1]+v[i][j][m+1])-(v[i][j+1][m-1]+v[i][j][m-1]))/(4*dz); wx=((w[i+1][j][m+1]+w[i+1][j][m])-(w[i-1][j][m+1]+w[i-1][j][m]))/(4*dx);wy=((w[i][j+1][m+1]+w[i][j+1][m])-(w[i][j-1][m+1]+w[i][j-1][m]))/(4*dy);
gt[i][j][m]=2*(ux*ux+vy*vy+wz*wz)+(uy+vx)*(uy+vx)+(uz+wx)*(uz+wx)+(vz+wy)*(vz+wy);};}
void turbond(){
int i,j,m;
double um,vm,wm,M,ut,C,K,A;
for(i=1;i<ie+1;i++)for(j=1;j<je+1;j++){
k[i][j][me]=0; e[i][j][me]=0;}
for(i=1;i<ie+1;i++)for(j=1;j<je+1;j++)for(m=1;m<me+1;m++){
um=(u[i][j][m]+u[i+1][j][m])/2; vm=(v[i][j][m]+v[i][j+1][m])/2;wm=(w[i][j][m]+w[i][j][m+1])/2;ub[i][j][m]=sqrt((vm*vm)+(um*um));vb[i][j][m]=sqrt((vm*vm)+(wm*wm));wb[i][j][m]=sqrt((um*um)+(wm*wm));}
for(i=2;i<ie;i++)for(m=2;m<me;m++){ut=0.01;
do{ut=ut+0.001;M=wb[i][2][m]*0.41/log(dy*ut/nui);}
while(ut!=M&&M>=0);
k[i][2][m]=M*M/sqrt(cmu);e[i][2][m]=M*M*M/(0.41*dy);}
for(i=2;i<ie;i++)for(m=2;m<me;m++){ut=0.01;
do{ut=ut+0.001;M=wb[i][je][m]*0.41/log(dy*ut/nui);}
while(ut!=M&&M>=0);
k[i][je][m]=M*M/sqrt(cmu);e[i][je][m]=M*M*M/(0.41*dy);}
for(j=2;j<je;j++)for(m=2;m<me;m++){ut=0.01;
do{ut=ut+0.001;M=vb[2][j][m]*0.41/log(dx*ut/nui);}
while(ut!=M&&M>=0);
k[2][j][m]=M*M/sqrt(cmu);e[2][j][m]=M*M*M/(0.41*dx);}
for(j=2;j<5;j++)for(m=2;m<me;m++){ut=0.01;
do{ut=ut+0.001; M=vb[ie][j][m]*0.41/log(dx*ut/nui);}
while(ut!=M&&M>=0);
k[ie][j][m]=M*M/sqrt(cmu);e[ie][j][m]=M*M*M/(0.41*dx);}
for(j=7;j<je;j++)for(m=2;m<me;m++){ut=0.01;
do{ut=ut+0.001;M=vb[ie][j][m]*0.41/log(dx*ut/nui);}
while(ut!=M&&M>=0);
k[ie][j][m]=M*M/sqrt(cmu);e[ie][j][m]=M*M*M/(0.41*dx);}
for(i=6;i<ie;i++)for(m=2;m<me;m++){ut=0.01;
do{ut=ut+0.001;M=wb[i][4][m]*0.41/log(dx*ut/nui);}
while(ut!=M&&M>=0);
k[i][4][m]=M*M/sqrt(cmu);e[i][4][m]=M*M*M/(0.41*dx);}
for(i=6;i<ie;i++)for(m=2;m<me;m++){ut=0.01;
do{ut=ut+0.001; M=wb[i][7][m]*0.41/log(dx*ut/nui);}
while(ut!=M&&M>=0);
k[i][7][m]=M*M/sqrt(cmu);e[i][7][m]=M*M*M/(0.41*dx);}
for(j=5;j<7;j++)for(m=2;m<me;m++){ut=0.01;
do{ut=ut+0.001;M=wb[5][j][m]*0.41/log(dx*ut/nui);}
while(ut!=M&&M>=0);
k[5][j][m]=M*M/sqrt(cmu);e[5][j][m]=M*M*M/(0.41*dx);}
for(i=1;i<ie+1;i++)for(j=1;j<je+1;j++){ut=0.01;
do{ut=ut+0.001;M=wb[i][j][2]*0.41/log(dx*ut/nui);}
while(ut!=M&&M>=0);
k[i][j][2]=M*M/sqrt(cmu);e[i][j][2]=M*M*M/(0.41*dx);}
C=pow(cmu,0.75);K=(uinp*0.03)*(uinp*0.03)*3/2;A=pow(K,1.5);
for(j=7;j<je+1;j++){k[ie][j][me]=K;e[ie][j][me]=C*A/0.06545;}}
void kepsilon(){
int i,j,m;double ua,va,wa,tu;
for(i=1;i<ie+1;i++)for(j=1;j<je+1;j++)for(m=1;m<me+1;m++){
ua=(u[i][j][m]+u[i+1][j][m])/2;if(ua>0)tu=ua*k[i-1][j][m]/dx;else tu=ua*k[i][j][m]/dx;va=(v[i][j][m]+v[i][j+1][m])/2;if(va>0)tu=tu+va*k[i][j-1][m]/dy;else tu=tu+va*k[i][j][m]/dy;wa=(w[i][j][m]+w[i][j][m+1])/2;if(wa>0)tu=tu+wa*k[i][j][m-1]/dz;else tu=tu+wa*k[i][j][m]/dz;rhsk[i][j][m]=k[i][j][m]-dt*tu+(dtt*nut[i][j][m]/sk)*((k[i-1][j][m]-2*k[i][j][m]+k[i+1][j][m])+(k[i][j-1][m]-2*k[i][j][m]+k[i][j+1][m])+(k[i][j][m-1]-2*k[i][j][m]+k[i][j][m+1]));}