Basic class for a GMRES(k) (with restarts) solver.
Inheritance: IterativeSolver
示例#1
0
        public MatrixValue Function(MatrixValue M, MatrixValue phi)
        {
            if (M.IsSymmetric)
            {
                var cg = new CGSolver(M);
                return cg.Solve(phi);
            }
            else if (M.DimensionX == M.DimensionY && M.DimensionY > 64) // Is there a way to "guess" a good number for this?
            {
                var gmres = new GMRESkSolver(M);
                gmres.Restart = 30;
                return gmres.Solve(phi);
            }

            return M.Inverse() * phi;
        }
示例#2
0
 public MatrixValue Function(MatrixValue A, MatrixValue x, MatrixValue b)
 {
     var gmres = new GMRESkSolver(A);
     gmres.X0 = x;
     return gmres.Solve(b);
 }