def solve(verbose=False): return helpers.perform_convergence_tests( Poisson(), exact_sol, get_mesh, range(6), verbose=verbose )
def solve(problem, max_k, verbose=False): def solver(mesh): matrix, rhs = pyfvm.discretize_linear(problem, mesh) ml = pyamg.smoothed_aggregation_solver(matrix) u = ml.solve(rhs, tol=1e-10) return u return helpers.perform_convergence_tests( solver, problem.exact_sol, problem.get_mesh, range(max_k), verbose=verbose )
def solve(problem, max_k, verbose=False): def solver(mesh): f, jacobian = pyfvm.discretize(problem, mesh) def jacobian_solver(u0, rhs): from scipy.sparse import linalg jac = jacobian.get_linear_operator(u0) return linalg.spsolve(jac, rhs) u0 = numpy.zeros(len(mesh.node_coords)) u = pyfvm.newton(f.eval, jacobian_solver, u0, verbose=False) return u return helpers.perform_convergence_tests( solver, problem.exact_sol, problem.get_mesh, range(max_k), verbose=verbose )
def solve(problem, max_k, verbose=False): def solver(mesh): f, jacobian = pyfvm.discretize(problem, mesh) def jacobian_solver(u0, rhs): from scipy.sparse import linalg jac = jacobian.get_linear_operator(u0) return linalg.spsolve(jac, rhs) u0 = numpy.zeros(len(mesh.node_coords)) u = pyfvm.newton(f.eval, jacobian_solver, u0, verbose=False) return u return helpers.perform_convergence_tests(solver, problem.exact_sol, problem.get_mesh, range(max_k), verbose=verbose)