Exemplo n.º 1
0
		public void mergeHessian(ShoNS.Array.SparseDoubleArray _hess)
		{
			for(int i=0;i<nNode;i++)
			{
				for(int j=0;j<__DIM;j++)
				{
					for(int k=0;k<nNode;k++)
					{
						for(int l=0;l<__DIM;l++)
						{
                            _hess[this.index[i] * __DIM + j, this.index[k] * __DIM + l] += this.hess[i * __DIM + j, k * __DIM + l];
						}
					}
				}
			}
		}
Exemplo n.º 2
0
 public int mergeJacobian(ShoNS.Array.SparseDoubleArray jacobian, int i)
 {
     for (int j = 0; j < nBIntPoint; j++)
     {
         for (int k = 0; k < 2; k++)
         {
             var grad = bIntP[j].getGradientOfBoundaryCondition(k);
             for(int f=0;f<nNode;f++)
             {
                 jacobian[i + j*2 + k, index[f]] = grad[f];
             }
         }
     }
     return i + nBIntPoint * 2;
 }
Exemplo n.º 3
0
 public int mergeJacobianOfPosition(ShoNS.Array.SparseDoubleArray jacob, int num)
 {
     for (int i = 0; i < nIntPoint; i++)
     {
         var grad = intP[i].N;
         for (int j = 0; j < nNode; j++)
         {
             jacob[num + i, index[j]] = grad[2, j * 3 + 2];
         }
     }
     return num + nIntPoint;
 }
Exemplo n.º 4
0
 public int mergeResidual(ShoNS.Array.DoubleArray residual, int i)
 {
     for (int j = 0; j < nBIntPoint; j++)
     {
         for (int k = 0; k < 2; k++)
         {
             double resid = bIntP[j].getResidualOfBoundaryCondition(node,k);
             residual[i + j * 2 + k] = resid;
         }
     }
     return i + nBIntPoint * 2;
 }