}

q. close();

ofstream y("r. txt");

for(int i=0;i<n;i++)

{

y<<i<<"  "<<r[i]<<endl;        

}

y. close();

}

void pred ()

{

for(i=1; i<n-1; i++)

{

aa1[i]=a1[i]+tx*(b1[i]-b1[i+1]);

aa2[i]=a2[i]+tx*(b2[i]-b2[i+1]);

aa3[i]=a3[i]+tx*(b3[i]-b3[i+1]);

rr[i]=aa1[i];

uu[i]=aa2[i]/aa1[i];

ee[i]=aa3[i]/aa1[i];

pp[i]=(k-1)*aa1[i]*ee[i];

rr[0]=rr[1];

uu[0]=uu[1];

ee[0]=ee[1];

pp[0]=pp[1];

rr[n-1]=rr[n-2];

uu[n-1]=-uu[n-2];

ee[n-1]=ee[n-2];

pp[n-1]=pp[n-2];

}

}

void bbcom ()

{

for(i=0; i<n; i++)

{

bb1[i]=rr[i]*uu[i];

bb2[i]=rr[i]*uu[i]*uu[i]+pp[i];

bb3[i]=uu[i]*(rr[i]*ee[i]+pp[i]);

}

}

void correc ()

{

for(i=1; i<n-1; i++)

{

a1[i]=(a1[i]+aa1[i]+tx*(bb1[i-1]-bb1[i]))/2;

a2[i]=(a2[i]+aa2[i]+tx*(bb2[i-1]-bb2[i]))/2;

a3[i]=(a3[i]+aa3[i]+tx*(bb3[i-1]-bb3[i]))/2;

r[i]=a1[i];

u[i]=a2[i]/a1[i];

e[i]=a3[i]/a1[i];

p[i]=(k-1)*a1[i]*e[i];

r[0]=r[1];

u[0]=u[1];

e[0]=e[1];

p[0]=p[1];

r[n-1]=r[n-2];

u[n-1]=-u[n-2];

e[n-1]=e[n-2];

p[n-1]=p[n-2];

}

}

void bcom ()

{

for(i=0; i<n; i++)

{

b1[i]=r[i]*u[i];

b2[i]=r[i]*u[i]*u[i]+p[i];

b3[i]=u[i]*(r[i]*e[i]+p[i]);

}

}

int _tmain(int argc, _TCHAR* argv[])

{

for(i=0; i<m; i++)

{

r[i]=k/((k-1)/(k+1)+2/(k+1)/Max/Max);

p[i]=2*k/(k+1)*Max*Max-(k-1)/(k+1);

u[i]=(2*Max-2/Max)/(k+1);//((Max-1/Max)*2)/(k+1);

e[i]=p[i]/(k-1)/r[i];

}

for(i=m; i<n; i++)

{

r[i]=1.4;

u[i]=0.0;

e[i]=1.7857;

p[i]=1.0;

}

for(i=0; i<n; i++)

{

a1[i]=r[i];

НЕ нашли? Не то? Что вы ищете?

a2[i]=r[i]*u[i];

a3[i]=r[i]*e[i];

b1[i]=r[i]*u[i];

b2[i]=r[i]*u[i]*u[i]+p[i];

b3[i]=u[i]*(r[i]*e[i]+p[i]);

}

t=0;

do

{

pred();

bbcom();

correc();

bcom();

t=t+dt;

}while(t<20*dt);

vivod ();

system ("pause");

return 0;

}

ПРИЛОЖЕНИЕ 2

Программа расчета газодинамических характеристик при движении ударной волны в ударной трубе (двумерный случай).

// prosto. cpp: определяет точку входа для консольного приложения.

//

#include "stdafx. h"

#include "iostream"

#include "fstream"

#include "vector"

using namespace std;

int i, j;

const int n=11, m=11, l=5;

const double lx=1.0, ly=0.01, Mu=0.0001;

double dx=lx/(m-1), dy=ly/(n-1), dt=0.0004, tx=dt/dx, ty=dt/dy, t, k=1.4, Max=2.0;

double eps1, eps2, eps3, eps4, eps5, eps6;

double e[n][m],u[n][m],v[n][m],r[n][m],p[n][m],ee[n][m],uu[n][m],vv[n][m],rr[n][m],pp[n][m];

double a1[n][m],a2[n][m],a3[n][m],a4[n][m],aa1[n][m],aa2[n][m],aa3[n][m],aa4[n][m];

double b1[n][m],b2[n][m],b3[n][m],b4[n][m],bb1[n][m],bb2[n][m],bb3[n][m],bb4[n][m];

double c1[n][m],c2[n][m],c3[n][m],c4[n][m],cc1[n][m],cc2[n][m],cc3[n][m],cc4[n][m];

void vivod ()

{

ofstream z("y. txt");

for(int i=0;i<n;i++)

{

for(int j=0;j<m;j++)

{

z<<"  "<<i*dy<<endl;

}

}        

z. close();

ofstream o("x. txt");

for(int i=0;i<n ;i++)

{

for(int j=0;j<m;j++)

{

o<<"  "<<i*dy<<"  "<<j*dx<<endl;

}

}        

o. close();

ofstream f("u. txt");

for(int i=0;i<n;i++)

{

for(int j=0;j<m;j++)

{

f<<j*dx<<"  "<<i*dy<<"  "<<u[i][j]<<endl;

}

}        

f. close();

ofstream l("e. txt");

for(int i=0;i<n;i++)

{

for(int j=0;j<m;j++)

{

l<<j*dx<<"  "<<i*dy<<"  "<<e[i][j]<<endl;

}

}        

l. close();

ofstream q("p. txt");

for(int i=0;i<n;i++)

{

for(int j=0;j<m;j++)

{

q<<j*dx<<"  "<<i*dy<<"  "<<p[i][j]<<endl;

}

}        

q. close();

ofstream y("r. txt");

for(int i=0;i<n;i++)

{

for(int j=0;j<m;j++)

{

y<<j*dx<<"  "<<i*dy<<"  "<<r[i][j]<<endl;

}

}        

y. close();

ofstream s("v. txt");

for(int i=0;i<n;i++)

{

for(int j=0;j<m;j++)

{

s<<j*dx<<"  "<<i*dy<<"  "<<v[i][j]<<endl;

}

}        

s. close();

}

void pred ()

{

for(i=1; i<n-1; i++)

{

for(j=1; j<m-1; j++)

{

aa1[i][j]=a1[i][j]+tx*(b1[i][j]-b1[i][j+1])+ty*(c1[i][j]-c1[i+1][j]);

aa2[i][j]=a2[i][j]+tx*(b2[i][j]-b2[i][j+1])+ty*(c2[i][j]-c2[i+1][j]);

aa3[i][j]=a3[i][j]+tx*(b3[i][j]-b3[i][j+1])+ty*(c3[i][j]-c3[i+1][j]);

aa4[i][j]=a4[i][j]+tx*(b4[i][j]-b4[i][j+1])+ty*(c4[i][j]-c4[i+1][j]);

rr[i][j]=aa1[i][j];

uu[i][j]=aa2[i][j]/aa1[i][j];

vv[i][j]=aa3[i][j]/aa1[i][j];

ee[i][j]=aa4[i][j]/aa1[i][j];

pp[i][j]=(k-1)*aa1[i][j]*ee[i][j];

}

}

for(i=1; i<n-1; i++)

{

rr[i][0]=k/((k-1)/(k+1)+2/(k+1)/Max/Max);//*/rr[i][1];

uu[i][0]=(2*Max-2/Max)/(k+1);//*/uu[i][1];

vv[i][0]=vv[i][1];

pp[i][0]=2*k/(k+1)*Max*Max-(k-1)/(k+1);//*/pp[i][1];

ee[i][0]=p[i][0]/(k-1)/r[i][0];//*/ee[i][1];

rr[i][n-1]=rr[i][n-2];

uu[i][n-1]=-uu[i][n-2];

vv[i][n-1]=vv[i][n-2];

ee[i][n-1]=ee[i][n-2];

pp[i][n-1]=pp[i][n-2];

}

for(j=0; j<m; j++)

{

rr[0][j]=rr[1][j];

uu[0][j]=0.0;

vv[0][j]=0.0;

ee[0][j]=ee[1][j];

pp[0][j]=pp[1][j];

rr[n-1][j]=rr[n-2][j];

uu[n-1][j]=0.0;

vv[n-1][j]=0.0;

ee[n-1][j]=ee[n-2][j];

pp[n-1][j]=pp[n-2][j];

}

}

void bbcom ()

{

for(i=0; i<n-1; i++)

{

for(j=0; j<m; j++)

{

bb1[i][j]=rr[i][j]*uu[i][j];

bb2[i][j]=rr[i][j]*uu[i][j]*uu[i][j]+pp[i][j];

bb3[i][j]=rr[i][j]*uu[i][j]*vv[i][j];

bb4[i][j]=uu[i][j]*(rr[i][j]*ee[i][j]+pp[i][j]);

cc1[i][j]=rr[i][j]*vv[i][j];

cc2[i][j]=rr[i][j]*uu[i][j]*vv[i][j]-Mu*(uu[i+1][j]-uu[i][j])/dy;

cc3[i][j]=rr[i][j]*vv[i][j]*vv[i][j]+pp[i][j]-1.33*Mu*(vv[i+1][j]-vv[i][j])/dy;

cc4[i][j]=vv[i][j]*(rr[i][j]*ee[i][j]+pp[i][j]);

}

}

}

void correc ()

{

for(i=1; i<n-1; i++)

{

for(j=1; j<m-1; j++)

{

a1[i][j]=(a1[i][j]+aa1[i][j]+tx*(bb1[i][j-1]-bb1[i][j])+ty*(cc1[i-1][j]-cc1[i][j]))/2;

a2[i][j]=(a2[i][j]+aa2[i][j]+tx*(bb2[i][j-1]-bb2[i][j])+ty*(cc2[i-1][j]-cc2[i][j]))/2;

a3[i][j]=(a3[i][j]+aa3[i][j]+tx*(bb3[i][j-1]-bb3[i][j])+ty*(cc3[i-1][j]-cc3[i][j]))/2;

a4[i][j]=(a4[i][j]+aa4[i][j]+tx*(bb4[i][j-1]-bb4[i][j])+ty*(cc4[i-1][j]-cc4[i][j]))/2;

r[i][j]=a1[i][j];

u[i][j]=a2[i][j]/a1[i][j];

v[i][j]=a3[i][j]/a1[i][j];

e[i][j]=a4[i][j]/a1[i][j];

p[i][j]=(k-1)*a1[i][j]*e[i][j];

}

}

for(i=1; i<n-1; i++)

{

r[i][0]=k/((k-1)/(k+1)+2/(k+1)/Max/Max);//*/r[i][1];

u[i][0]=(2*Max-2/Max)/(k+1);//*/u[i][1];

v[i][0]=v[i][1];

p[i][0]=2*k/(k+1)*Max*Max-(k-1)/(k+1);//*/p[i][1];

e[i][0]=p[i][0]/(k-1)/r[i][0];//*/e[i][1];

r[i][n-1]=r[i][n-2];

u[i][n-1]=-u[i][n-2];

v[i][n-1]=v[i][n-2];

e[i][n-1]=e[i][n-2];

p[i][n-1]=p[i][n-2];

}

for(j=0; j<m; j++)

{

r[0][j]=r[1][j];

u[0][j]=0.0;

v[0][j]=0.0;

e[0][j]=e[1][j];

p[0][j]=p[1][j];

r[n-1][j]=r[n-2][j];

u[n-1][j]=0.0;

v[n-1][j]=0.0;

e[n-1][j]=e[n-2][j];

p[n-1][j]=p[n-2][j];

}

}

void bcom ()

{

for(i=1; i<n; i++)

{

for(j=0; j<m; j++)

{

b1[i][j]=r[i][j]*u[i][j];

b2[i][j]=r[i][j]*u[i][j]*u[i][j]+p[i][j];

b3[i][j]=r[i][j]*u[i][j]*v[i][j];

b4[i][j]=u[i][j]*(r[i][j]*e[i][j]+p[i][j]);

c1[i][j]=r[i][j]*v[i][j];

c2[i][j]=r[i][j]*u[i][j]*v[i][j]-Mu*(u[i][j]-u[i-1][j])/dy;

c3[i][j]=r[i][j]*v[i][j]*v[i][j]+p[i][j]-1.33*Mu*(v[i][j]-v[i-1][j])/dy;

c4[i][j]=v[i][j]*(r[i][j]*e[i][j]+p[i][j]);

}

}

}

int _tmain(int argc, _TCHAR* argv[])

{

for(i=1; i<n-1; i++)

{

for(j=0; j<l; j++)

{

r[i][j]=k/((k-1)/(k+1)+2/(k+1)/Max/Max);

p[i][j]=2*k/(k+1)*Max*Max-(k-1)/(k+1);

u[i][j]=(2*Max-2/Max)/(k+1);

v[i][j]=0.0;

e[i][j]=p[i][j]/(k-1)/r[i][j];

}

}

for(i=1; i<n-1; i++)

{

for(j=l; j<m; j++)

{

r[i][j]=1.4;

u[i][j]=0.0;

v[i][j]=0.0;

e[i][j]=1.7857;

p[i][j]=1.0;

}

}

for(i=1; i<n-1; i++)

{

r[i][0]=k/((k-1)/(k+1)+2/(k+1)/Max/Max);//*/r[i][1];

u[i][0]=(2*Max-2/Max)/(k+1);//*/u[i][1];

v[i][0]=v[i][1];

p[i][0]=2*k/(k+1)*Max*Max-(k-1)/(k+1);//*/p[i][1];

e[i][0]=p[i][0]/(k-1)/r[i][0];//*/e[i][1];

r[i][n-1]=r[i][n-2];

u[i][n-1]=-u[i][n-2];

v[i][n-1]=v[i][n-2];

e[i][n-1]=e[i][n-2];

p[i][n-1]=p[i][n-2];

}

for(j=0; j<m; j++)

{

r[0][j]=r[1][j];

u[0][j]=0.0;

v[0][j]=0.0;

e[0][j]=e[1][j];

p[0][j]=p[1][j];

r[n-1][j]=r[n-2][j];

u[n-1][j]=0.0;

v[n-1][j]=0.0;

e[n-1][j]=e[n-2][j];

p[n-1][j]=p[n-2][j];

}

for(i=1; i<n; i++)

{

for(j=0; j<m; j++)

{

a1[i][j]=r[i][j];

a2[i][j]=r[i][j]*u[i][j];

a3[i][j]=r[i][j]*v[i][j];

a4[i][j]=r[i][j]*e[i][j];

b1[i][j]=r[i][j]*u[i][j];

b2[i][j]=r[i][j]*u[i][j]*u[i][j]+p[i][j];

b3[i][j]=r[i][j]*u[i][j]*v[i][j];

b4[i][j]=u[i][j]*(r[i][j]*e[i][j]+p[i][j]);

c1[i][j]=r[i][j]*v[i][j];

c2[i][j]=r[i][j]*u[i][j]*v[i][j]-Mu*(u[i][j]-u[i-1][j])/dy;

c3[i][j]=r[i][j]*v[i][j]*v[i][j]+p[i][j]-1.33*Mu*(v[i][j]-v[i-1][j])/dy;

c4[i][j]=v[i][j]*(r[i][j]*e[i][j]+p[i][j]);

}

}

t=0;

do

{

pred();

bbcom();

correc();

bcom();

t=t+dt;

}while(t<1600*dt);

vivod ();

system ("pause");

return 0;

}

ПРИЛОЖЕНИЕ 3

Программа для расчета характеристик течения электролита в МЭЗ.

// ruslan1504.cpp: определяет точку входа для консольного приложения.

//

#include "stdafx. h"

#include "iostream"

#include "fstream"

#include "vector"

using namespace std;

int i, j, schet;

const int n=7, m=7;

const double lx=0.1, ly=0.001, R=4.124, Mu=0.000018, Mu1=0.001,roh0=0.09;

double ean=0.00000029, cp=3760, t0=293, roan=7600, mu0=0.001, egas=0.0000000104, rgas4150, h=0.3, xi=0.025, ka0=11, uc=7, alf=1;

const int ro0=1000,u0=2,tma=300, tmk=300, tm0=300, tmv=300;

double dx=lx/(m-1), dy=ly/(n-1), dt=0.000000005, tx=dt/dx, ty=dt/dy;

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10