예제 #1
0
 public Load(Shape shape)
 {
     this.shape = shape;
     p          = new ApproximationFunctionsFirst(shape.H);
     F1         = new Func1D[Constants.APROXIMATION_FIRST];
     F3         = new Func1D[Constants.APROXIMATION_FIRST];
 }
예제 #2
0
 public Vector F(Vector alfa)
 {
     if (alfa.Length == Constants.DIMENSION_COUNT)
     {
         Vector res = new Vector(Constants.DIMENSION_COUNT);
         for (int i = 0; i < Constants.APROXIMATION_FIRST; i++)
         {
             res[0] += F1[i](alfa[0]) * p[i](alfa[2]);
             res[2] += F3[i](alfa[0]) * p[i](alfa[2]);
         }
         res[1] = 0;
         return(res);
     }
     else
     {
         throw new Exception("Error while evaluating F Vector; Reason: Support only 3D!!!");
     }
 }
예제 #3
0
        public ApproximationResult(Shape shape, Vector result)
        {
            this.shape  = shape;
            this.result = result;
            N           = result.Length / 6;
            p           = new ApproximationFunctionsFirst(shape.H);
            nodes       = new Vector(N);
            double interval = shape.L / (N - 1);

            for (int i = 0; i < N; i++)
            {
                nodes[i] = interval * i;
            }
            U1    = new Func1D[Constants.APROXIMATION_FIRST];
            U3    = new Func1D[Constants.APROXIMATION_FIRST];
            U1[0] = U10;
            U1[1] = U11;
            U1[2] = U12;
            U3[0] = U30;
            U3[1] = U31;
            U3[2] = U32;
        }