{
                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小时内删除。