public static MatrixFEM GenerateMatrixFEM_WithStDerative(UniversalDeriative universalDeriative = UniversalDeriative.Without)
        {
            MatrixFEM matrix = new MatrixFEM();

            for (var i = 0; i < MatrixFEM.N; ++i)
            {
                matrix[0, i] = func_N1(UniversalElement.IntegralPoints[i].Xi, UniversalElement.IntegralPoints[i].Eta, universalDeriative);
                matrix[1, i] = func_N2(UniversalElement.IntegralPoints[i].Xi, UniversalElement.IntegralPoints[i].Eta, universalDeriative);
                matrix[2, i] = func_N3(UniversalElement.IntegralPoints[i].Xi, UniversalElement.IntegralPoints[i].Eta, universalDeriative);
                matrix[3, i] = func_N4(UniversalElement.IntegralPoints[i].Xi, UniversalElement.IntegralPoints[i].Eta, universalDeriative);
            }

            return(matrix);
        }
        static Double func_N4(Double xi, Double eta, UniversalDeriative universalDeriative = UniversalDeriative.Without)
        {
            Double value = 0;

            switch (universalDeriative)
            {
            case UniversalDeriative.Without:
                value = 0.25f * (1 - xi) * (1 + eta);
                break;

            case UniversalDeriative.DerEta:
                value = 0.25f * (1 - xi);
                break;

            case UniversalDeriative.DerXi:
                value = -0.25f * (1 + eta);
                break;
            }

            return(value);
        }