{
ai=pE[i*2+j*ny*2].a[idx];
bi=pE[i*2+j*ny*2].b[idx];
ci=pE[i*2+j*ny*2].c[idx];
pE[i*2+j*ny*2].fi[idx]=GaussIntegral(2,js,fn,fnGaussLimit);
}
for(idx=0;idx<3;idx++) //for the second triangle in the rectangle
html5源代码免费 {
ai=pE[i*2+j*ny*2+1].a[idx];
bi=pE[i*2+j*ny*2+1].b[idx];
ci=pE[i*2+j*ny*2+1].c[idx];
pE[i*2+j*ny*2+1].fi[idx]=GaussIntegral(2,js,fn,fnGaussLimit2);
}
}printf("OK!\n");
//单元矩阵元素累加到总体矩阵相应的位置上
printf("单元矩阵元素累加到总体矩阵相应的位置上...\n");
for(idx=0;idx<nx*ny*2;idx++)
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
pMatrix[pE[idx].nd[i].number*iNode+pE[idx ].nd[j].number] +=pE[idx].Aij[i][j];
pMf[ pE[idx].nd[i].number ]+=pE[idx].fi[i];
}
printf("OK!\n");
double dBig=pow(10,20); //边界条件对角线扩大法处理所用的大数
double Ur=1.0; //边界条件1(边界条件2通过Galerkin弱解表达式自动满足)
for(i=0;i<nx+1;i++)
{ j=nx+1;
pMatrix[(j*nx+i)*iNode+(j*nx+i)]*=dBig;
pMf[(j*nx+i)]*=dBig*Ur;
}
for(j=0;j<nx+1;j++)
{ i=(nx+1)*(j+1)-1;
pMatrix[i*iNode+i]*=dBig;
pMf[i]*=dBig*Ur;
}
printf("调用全选主元高斯消去法函数解方程组...\n");
Gauss(pMatrix,pMf,iNode); //调用全选主元高斯消去法函数解方程组
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论