private void Chage_GraphicsAreas_Values(Node_ND[] Side_Nodes, int[] NNPE_Side, int Resolution, ref Side TheSide)
        {
            ParametricInterpolation_ND_Square Node_Interpolator = new ParametricInterpolation_ND_Square(NNPE_Side[0], NNPE_Side[1]);
            int Res_NNPE_l = Resolution * (NNPE_Side[0] - 1) + 1;
            int Res_NNPE_m = Resolution * (NNPE_Side[1] - 1) + 1;
            ParametricInterpolation_ND_Square Resolution_Interpolaor = new ParametricInterpolation_ND_Square(Res_NNPE_l, Res_NNPE_m);
            Vector Area_DisplayValues = Calculate_Area_DisplayValues(Side_Nodes, Node_Interpolator, Resolution_Interpolaor);
            int    NA = Resolution * (NNPE_Side[0] - 1) * Resolution * (NNPE_Side[1] - 1);

            TheSide.AreaValues = new Vector[NA];
            int index_1 = 0;
            int index_2 = NNPE_Side[0];
            int index   = 0;

            for (int j = 0; j < Res_NNPE_m - 1; j++)
            {
                for (int i = 0; i < Res_NNPE_l - 1; i++)
                {
                    TheSide.AreaValues[index]           = new Vector(4);
                    TheSide.AreaValues[index].Values[0] = Area_DisplayValues.Values[index_1 + i];
                    TheSide.AreaValues[index].Values[1] = Area_DisplayValues.Values[index_1 + i + 1];
                    TheSide.AreaValues[index].Values[2] = Area_DisplayValues.Values[index_2 + i + 1];
                    TheSide.AreaValues[index].Values[3] = Area_DisplayValues.Values[index_2 + i];
                    //TheSide.AreaValues[index].Values[4] = TheSide.AreaValues[index].Values[0];
                    index++;
                }
                index_1  = index_2;
                index_2 += NNPE_Side[0];
            }
        }
        private Vector[] Calculate_Area_Locations(Node_ND[] ElementNodes, ParametricInterpolation_ND_Square Nodes_Interpolator, ParametricInterpolation_ND_Square TheResInterpolation)
        {
            int NNPE = TheResInterpolation.NNPE;

            Vector[] X       = new Vector[NNPE];
            Vector[] Nodal_X = Get_ElementNodal_X(ElementNodes);
            for (int i = 0; i < NNPE; i++)
            {
                X[i] = Nodes_Interpolator.Interpolate_Variable(TheResInterpolation.NodeXi[i], Nodal_X);
            }
            return(X);
        }
        private Vector Calculate_Area_DisplayValues(Node_ND[] ElementNodes, ParametricInterpolation_ND_Square Nodes_Interpolator, ParametricInterpolation_ND_Square TheResInterpolation)
        {
            int    NNPE               = TheResInterpolation.NNPE;
            Vector DisplayValues      = new Vector(NNPE);
            Vector NodalDisplayValues = Get_Nodal_DisplayValues(ElementNodes);

            for (int i = 0; i < NNPE; i++)
            {
                DisplayValues.Values[i] = Nodes_Interpolator.Interpolate_Variable(TheResInterpolation.NodeXi[i], NodalDisplayValues.Values);
            }
            return(DisplayValues);
        }