Exemple #1
0
        public double PAitkenL2()
        {
            var currentMaxSquare = TriangleNetHandler.MaxSquare;

            TriangleNetHandler.MaxSquare = currentMaxSquare / 2;

            var dataInitializer = new DataInitializer(TriangleNetHandler, Points, Equation);

            var firstNewFemContext = dataInitializer.GetInitialData();

            CalculateAreas(firstNewFemContext);
            CalculateLength(firstNewFemContext);
            var fem = new FEMSolver.FEMSolver(firstNewFemContext);

            TriangleNetHandler.MaxSquare = currentMaxSquare / 4;

            dataInitializer = new DataInitializer(TriangleNetHandler, Points, Equation);

            var secondNewFemContext = dataInitializer.GetInitialData();

            CalculateAreas(secondNewFemContext);
            CalculateLength(secondNewFemContext);
            fem = new FEMSolver.FEMSolver(secondNewFemContext);

            var pL2 = Math.Abs(Math.Log(Math.Abs(NormaL2(firstNewFemContext) - NormaL2(CurrentFEMContext))) -
                               Math.Log(Math.Abs(NormaL2(secondNewFemContext) - NormaL2(firstNewFemContext)))) / Math.Log(2);

            TriangleNetHandler.MaxSquare = currentMaxSquare;

            return(pL2);
        }
Exemple #2
0
        public double PL2()
        {
            var currentMaxSquare = TriangleNetHandler.MaxSquare;

            TriangleNetHandler.MaxSquare = currentMaxSquare / 2;

            var dataInitializer = new DataInitializer(TriangleNetHandler, Points, Equation);

            var newFemContext = dataInitializer.GetInitialData();

            CalculateAreas(newFemContext);
            CalculateLength(newFemContext);
            var fem = new FEMSolver.FEMSolver(newFemContext);

            var pL2 = Math.Abs(Math.Log(NormaErrorL2(Functions.U, CurrentFEMContext)) - Math.Log(NormaErrorL2(Functions.U, newFemContext))) / Math.Log(2);

            TriangleNetHandler.MaxSquare = currentMaxSquare;

            return(pL2);
        }