📄 并行源程序.txt
字号:
for(j=0;j<=Y;j++)
for(k=0;k<=Z1;k++)
{xey[j][k][m+1]=xey[j][k][m];
xey[j][k][m]=ey1[g][j][k];
xey[j][k][m+3]=xey[j][k][m+2];
xey[j][k][m+2]=xey[j][k][m+4];
xez[j][k][m+1]=xez[j][k][m];
xez[j][k][m]=ez1[g][j][k];
xez[j][k][m+3]=xez[j][k][m+2];
xez[j][k][m+2]=xez[j][k][m+4];}
}
/////////////////////////////////////////////////////////////////////////////////
void mury1(int g)
{ int gg,m,i,k;
float w1,w2,w3,w4,w5;
gg=abs(g-1);
if (g==0) m=0;
else m=5;
for (i=0;i<=X1;i++)
for (k=0;k<=Z1;k++)
{ yexb[i][k][m+4]=ex1[i][gg][k];
yezb[i][k][m+4]=ez1[i][gg][k]; }
for (i=1;i<=X1-1;i++)
for (k=1;k<=Z1-1;k++)
{ w1=yexb[i][k][m+4]+yexb[i][k][m+1];
w2=yexb[i][k][m+2]+yexb[i][k][m];
w3=yexb[i+1][k][m+2]-4*yexb[i][k][m]-4*yexb[i][k][m+2];
w4=yexb[i-1][k][m+2]+yexb[i+1][k][m]+yexb[i-1][k][m];
w5=yexb[i][k+1][m+2]+yexb[i][k-1][m]+yexb[i][k+1][m]+yexb[i][k-1][m+2];
ex1[i][g][k]=-yexb[i][k][m+3]+A*w1+B*w2+C*(w3+w4+w5); }
for (i=1;i<=X1-1;i++)
for (k=1;k<=Z1-1;k++)
{ w1=yezb[i][k][m+4]+yezb[i][k][m+1];
w2=yezb[i][k][m+2]+yezb[i][k][m];
w3=yezb[i+1][k][m+2]-4*yezb[i][k][m]-4*yezb[i][k][m+2];
w4=yezb[i-1][k][m+2]+yezb[i+1][k][m]+yezb[i-1][k][m];
w5=yezb[i][k+1][m+2]+yezb[i][k-1][m]+yezb[i][k+1][m]+yezb[i][k-1][m+2];
if ((i==30 || i==50) && k<=35) ez1[i][g][k]=0;
else ez1[i][g][k]=-yezb[i][k][m+3]+A*w1+B*w2+C*(w3+w4+w5); }
for (i=0;i<=X1;i++)
for (k=0;k<=Z1;k++)
{yexb[i][k][m+1]=yexb[i][k][m];
yezb[i][k][m+1]=yezb[i][k][m];
yexb[i][k][m]=ex1[i][g][k];
yezb[i][k][m]=ez1[i][g][k];
yexb[i][k][m+3]=yexb[i][k][m+2];
yexb[i][k][m+2]=yexb[i][k][m+4];
yezb[i][k][m+3]=yezb[i][k][m+2];
yezb[i][k][m+2]=yezb[i][k][m+4];}
}
/////////////////////////////////////////////////////////////////////////////////
void mury2(int g)
{ int gg,m,i,k,k1;
float w1,w2,w3,w4,w5;
gg=abs(g-1);
if (g==0) m=0;
else m=5;
for(i=0;i<=X2;i++)
{yexs[i][0][m+4]=yexb[i+30][1][m+4];
yezs[i][0][m+4]=yezb[i+30][1][m+4];}
for (i=0;i<=X2;i++)
for (k=0;k<=Z2;k++)
{ yexs[i][k+1][m+4]=ex2[i][gg][k];
yezs[i][k+1][m+4]=ez2[i][gg][k];}
for (i=1;i<=X2-1;i++)
for (k=0;k<=Z2-1;k++)
{ k1=k+1;
w1=yexs[i][k1][m+4]+yexs[i][k1][m+1];
w2=yexs[i][k1][m+2]+yexs[i][k1][m];
w3=yexs[i+1][k1][m+2]-4*yexs[i][k1][m]-4*yexs[i][k1][m+2];
w4=yexs[i-1][k1][m+2]+yexs[i+1][k1][m]+yexs[i-1][k1][m];
w5=yexs[i][k1+1][m+2]+yexs[i][k1-1][m]+yexs[i][k1+1][m]+yexs[i][k1-1][m+2];
ex2[i][g][k]=-yexs[i][k1][m+3]+A*w1+B*w2+C*(w3+w4+w5); }
for (i=1;i<=X2-1;i++)
for (k=0;k<=Z2-1;k++)
{ k1=k+1;
w1=yezs[i][k1][m+4]+yezs[i][k1][m+1];
w2=yezs[i][k1][m+2]+yezs[i][k1][m];
w3=yezs[i+1][k1][m+2]-4*yezs[i][k1][m]-4*yezs[i][k1][m+2];
w4=yezs[i-1][k1][m+2]+yezs[i+1][k1][m]+yezs[i-1][k1][m];
w5=yezs[i][k1+1][m+2]+yezs[i][k1-1][m]+yezs[i][k1+1][m]+yezs[i][k1-1][m+2];
ez2[i][g][k]=-yezs[i][k1][m+3]+A*w1+B*w2+C*(w3+w4+w5); }
for (i=0;i<=X2;i++)
for (k=0;k<=Z2+1;k++)
{yexs[i][k][m+1]=yexs[i][k][m];
yezs[i][k][m+1]=yezs[i][k][m];
yexs[i][k][m+3]=yexs[i][k][m+2];
yexs[i][k][m+2]=yexs[i][k][m+4];
yezs[i][k][m+3]=yezs[i][k][m+2];
yezs[i][k][m+2]=yezs[i][k][m+4];}
for (i=0;i<=X2;i++)
for (k=0;k<=Z2;k++)
{ k1=k+1;
yexs[i][k1][m]=ex2[i][g][k];
yezs[i][k1][m]=ez2[i][g][k];}
for (i=0;i<=X2;i++)
{ yexs[i][0][m]=ex1[i+30][g][1];
yezs[i][0][m]=ez1[i+30][g][1];}
for(i=0;i<=X2;i++)
{ ex1[i+30][g][0]=yexs[i][1][m];
ez1[i+30][g][0]=yezs[i][1][m];
yexb[i+30][0][m]=yexs[i][1][m];
yezb[i+30][0][m]=yexs[i][1][m];}
}
//////////////////////////////////////////////////////////////////////////
void murz(int g,int xs,int xf,int yf)
{ int gg,m,tx,i,j,i1;
float w1,w2,w3,w4,w5,tempx,tempy;
gg=abs(g-1);
if (g==Z1) m=0;
else m=5;
if (xf==X2-1) tx=31;
else if(xs==51) tx=2;
else tx=0;
for(j=0;j<=Y;j++)
for(i=xs-1;i<=xf+1;i++)
{ i1=i+tx;
if(xf==X2-1){zex[i1][j][m+4]=ex2[i][j][gg];
zey[i1][j][m+4]=ey2[i][j][gg];}
else {zex[i1][j][m+4]=ex1[i][j][gg];
zey[i1][j][m+4]=ey1[i][j][gg];} }
for (i=xs;i<=xf;i++)
for (j=1;j<=yf;j++)
{i1=i+tx;
w1=zex[i1][j][m+4]+zex[i1][j][m+1];
w2=zex[i1][j][m+2]+zex[i1][j][m];
w3=zex[i1+1][j][m+2]-4*zex[i1][j][m]-4*zex[i1][j][m+2];
w4=zex[i1-1][j][m+2]+zex[i1+1][j][m]+zex[i1-1][j][m];
w5=zex[i1][j+1][m+2]+zex[i1][j-1][m+2]+zex[i1][j+1][m]+zex[i1][j-1][m];
tempx=-zex[i1][j][m+3]+A*w1+B*w2+C*(w3+w4+w5);
if(xf==X2-1) ex2[i][j][g]=tempx;
else ex1[i][j][g]=tempx; }
for (i=xs;i<=xf;i++)
for (j=1;j<=yf;j++)
{i1=i+tx;
w1=zey[i1][j][m+4]+zey[i1][j][m+1];
w2=zey[i1][j][m+2]+zey[i1][j][m];
w3=zey[i1+1][j][m+2]-4*zey[i1][j][m]-4*zey[i1][j][m+2];
w4=zey[i1-1][j][m+2]+zey[i1+1][j][m]+zey[i1-1][j][m];
w5=zey[i1][j+1][m+2]+zey[i1][j-1][m+2]+zey[i1][j+1][m]+zey[i1][j-1][m];
tempy=-zey[i1][j][m+3]+A*w1+B*w2+C*(w3+w4+w5);
if(xf==X2-1) ey2[i][j][g]=tempy;
else ey1[i][j][g]=tempy; }
for (j=0;j<=Y;j++)
for (i=xs-1;i<=xf+1;i++)
{i1=i+tx;
zex[i1][j][m+1]=zex[i1][j][m];
zey[i1][j][m+1]=zey[i1][j][m];
if(xf==X2-1) { zex[i1][j][m]=ex2[i][j][Z2];
zey[i1][j][m]=ey2[i][j][Z2];}
else {zex[i1][j][m]=ex1[i][j][g];
zey[i1][j][m]=ey1[i][j][g]; }
zex[i1][j][m+3]=zex[i1][j][m+2];
zex[i1][j][m+2]=zex[i1][j][m+4];
zey[i1][j][m+3]=zey[i1][j][m+2];
zey[i1][j][m+2]=zey[i1][j][m+4]; }
}
/////////////////////////////////////////////////////////////////////////////////////////////
void liaoy(int xx,int zz)
{ int m,m0,tx,tx0,nl,nl0,ml,ml0,lm,l,i,j,i1,i2;
float r,temp,tempy1[Y+1],tempy2[Y+1];
if (xx==0) {m=0;tx0=0;}
else {m=7;tx0=15;}
if (zz==0) {m0=0;tx=0;}
else {m0=7;tx=15;}
for (j=0;j<=Y;j++)
{ez1[xx][j][zz]=0;
nl=m;
for(l=1;l<=7;l++)
{r=0;
lm=2*l;
for(ml=0;ml<=lm;ml++)
{ml0=ml+tx;
r=r+tt[l][ml]*yez1[j][ml0][nl];}
temp=pow(-1,l+1)*c7[l]*r;
ez1[xx][j][zz]=ez1[xx][j][zz]+temp;
nl++;} }
for (j=0;j<=Y;j++)
{ex1[xx][j][zz]=0;
nl=m0;
for(l=1;l<=7;l++)
{r=0;
lm=2*l;
for(ml=0;ml<=lm;ml++)
{ml0=ml+tx0;
r=r+tt[l][ml]*yex2[j][ml0][nl];}
temp=pow(-1,l+1)*c7[l]*r;
ex1[xx][j][zz]=ex1[xx][j][zz]+temp;
nl++;} }
for (j=0;j<=Y;j++)
{tempy1[j]=0;
nl=m;
for(l=1;l<=7;l++)
{r=0;
lm=2*l;
for(ml=0;ml<=lm;ml++)
{ml0=ml+tx;
r=r+tt[l][ml]*yey1[j][ml0][nl];}
temp=pow(-1,l+1)*c7[l]*r;
tempy1[j]=tempy1[j]+temp;
nl++; } }
for (j=0;j<=Y;j++)
{tempy2[j]=0;
nl=m0;
for(l=1;l<=7;l++)
{r=0;
lm=2*l;
for(ml=0;ml<=lm;ml++)
{ml0=ml+tx0;
r=r+tt[l][ml]*yey2[j][ml0][nl];}
temp=pow(-1,l+1)*c7[l]*r;
tempy2[j]=tempy2[j]+temp;
nl++; } }
for(j=0;j<=Y;j++)
{ey1[xx][j][zz]=(tempy1[j]+tempy2[j])/2; }
for(j=0;j<=Y;j++)
for(i=0;i<=14;i++)
for(nl=6;nl>=1;nl--)
{ i1=i+tx;
nl0=nl+m;
yey1[j][i1][nl0]=yey1[j][i1][nl0-1];
yez1[j][i1][nl0]=yez1[j][i1][nl0-1]; }
for(j=0;j<=Y;j++)
for(i=0;i<=14;i++)
for(nl=6;nl>=1;nl--)
{ i1=i+tx0;
nl0=nl+m0;
yey2[j][i1][nl0]=yey2[j][i1][nl0-1];
yex2[j][i1][nl0]=yex2[j][i1][nl0-1]; }
for(j=0;j<=Y;j++)
for(i=0;i<=14;i++)
{ i1=i+tx;
if(zz==0) i2=zz+i;
else i2=zz-i;
yey1[j][i1][m]=ey1[xx][j][i2];
yez1[j][i1][m]=ez1[xx][j][i2];}
for(j=0;j<=Y;j++)
for(i=0;i<=14;i++)
{ i1=i+tx0;
if(xx==0) i2=xx+i;
else i2=xx-i;
yey2[j][i1][m0]=ey1[i2][j][zz];
yex2[j][i1][m0]=ex1[i2][j][zz]; }
}
////////////////////////////////////////////////////////////////////////////////////
void liaoz(int xx,int yy)
{ int m,m0,tx,tx0,nl,nl0,ml,ml0,lm,l,i,k,i1,i2;
float r,temp,tempz1[Z1+1],tempz2[Z1+1];
if (xx==0) {m=0;tx0=0;}
else {m=7;tx0=15;}
if (yy==0) {m0=0;tx=0;}
else {m0=7;tx=15;}
for (k=0;k<=Z1;k++)
{ey1[xx][yy][k]=0;
nl=m;
for(l=1;l<=7;l++)
{r=0;
lm=2*l;
for(ml=0;ml<=lm;ml++)
{ml0=ml+tx;
r=r+tt[l][ml]*zey1[k][ml0][nl];}
temp=pow(-1,l+1)*c7[l]*r;
ey1[xx][yy][k]=ey1[xx][yy][k]+temp;
nl++;} }
for (k=0;k<=Z1;k++)
{ex1[xx][yy][k]=0;
nl=m0;
for(l=1;l<=7;l++)
{r=0;
lm=2*l;
for(ml=0;ml<=lm;ml++)
{ml0=ml+tx0;
r=r+tt[l][ml]*zex2[k][ml0][nl];}
temp=pow(-1,l+1)*c7[l]*r;
ex1[xx][yy][k]=ex1[xx][yy][k]+temp;
nl++;} }
for (k=0;k<=Z1;k++)
{tempz1[k]=0;
nl=m;
for(l=1;l<=7;l++)
{r=0;
lm=2*l;
for(ml=0;ml<=lm;ml++)
{ml0=ml+tx;
r=r+tt[l][ml]*zez1[k][ml0][nl];}
temp=pow(-1,l+1)*c7[l]*r;
tempz1[k]=tempz1[k]+temp;
nl++; } }
for (k=0;k<=Z1;k++)
{tempz2[k]=0;
nl=m0;
for(l=1;l<=7;l++)
{r=0;
lm=2*l;
for(ml=0;ml<=lm;ml++)
{ml0=ml+tx0;
r=r+tt[l][ml]*zez2[k][ml0][nl];}
temp=pow(-1,l+1)*c7[l]*r;
tempz2[k]=tempz2[k]+temp;
nl++; } }
for(k=0;k<=Z1;k++)
{ez1[xx][yy][k]=(tempz1[k]+tempz2[k])/2; }
for(k=0;k<=Z1;k++)
for(i=0;i<=14;i++)
for(nl=6;nl>=1;nl--)
{ i1=i+tx;
nl0=nl+m;
zey1[k][i1][nl0]=zey1[k][i1][nl0-1];
zez1[k][i1][nl0]=zez1[k][i1][nl0-1]; }
for(k=0;k<=Z1;k++)
for(i=0;i<=14;i++)
for(nl=6;nl>=1;nl--)
{ i1=i+tx0;
nl0=nl+m0;
zez2[k][i1][nl0]=zez2[k][i1][nl0-1];
zex2[k][i1][nl0]=zex2[k][i1][nl0-1]; }
for(k=0;k<=Z1;k++)
for(i=0;i<=14;i++)
{ i1=i+tx;
if(yy==0) i2=yy+i;
else i2=yy-i;
zey1[k][i1][m]=ey1[xx][i2][k];
zez1[k][i1][m]=ez1[xx][i2][k];}
for(k=0;k<=Z1;k++)
for(i=0;i<=14;i++)
{ i1=i+tx0;
if(xx==0) i2=xx+i;
else i2=xx-i;
zez2[k][i1][m0]=ez1[i2][yy][k];
zex2[k][i1][m0]=ex1[i2][yy][k]; }
}
/////////////////////////////////////////////////////////////////////////////
void liaox(int xs,int xf,int yy,int zz)
{ int m,m0,tx,tx0,nl,nl0,ml,ml0,lm,l,i,j,i1,i2;
float r,temp,tempx1[X1+1],tempx2[X1+1],tempy[X1+1],tempz[X1+1];
if (yy==0) {m=0;tx0=0;}
else {m=7;tx0=15;}
if (zz==Z1) {m0=0;tx=0;}
else {m0=7;tx=15;}
for (i=xs;i<=xf;i++)
{if(zz==Z2) i1=i+30;
else i1=i;
tempy[i1]=0;
nl=m;
for(l=1;l<=7;l++)
{r=0;
lm=2*l;
for(ml=0;ml<=lm;ml++)
{ml0=ml+tx;
r=r+tt[l][ml]*xey1[i1][ml0][nl];}
temp=pow(-1,l+1)*c7[l]*r;
tempy[i1]=tempy[i1]+temp;
nl++;} }
for(i=xs;i<=xf;i++)
{ if(zz==Z2) ey2[i][yy][zz]=tempy[i+30];
else ey1[i][yy][zz]=tempy[i]; }
for (i=xs;i<=xf;i++)
{if(zz==Z2) i1=i+30;
else i1=i;
tempz[i1]=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -