diff --git a/src/solver.cpp b/src/solver.cpp index b07873112..98470761e 100644 --- a/src/solver.cpp +++ b/src/solver.cpp @@ -805,12 +805,6 @@ bicgstab_euler(const double dt, imex_flag imex, #ifdef ASGARD_USE_CUDA template gmres_info -simple_gmres_euler(const double dt, imex_flag imex, - kron_operators const &ops, - fk::vector &x, - fk::vector const &b, - int const restart, int const max_iter, double const tolerance); -template gmres_info bicgstab_euler(const double dt, imex_flag imex, kron_operators const &ops, fk::vector &x, @@ -819,17 +813,11 @@ bicgstab_euler(const double dt, imex_flag imex, template gmres_info simple_gmres_euler(adapt::distributed_grid const &adaptive_grid, int const elem_size, - const double dt, kron_operators const &ops, - fk::vector &x, fk::vector const &b, + const double dt, imex_flag imex, kron_operators const &ops, + fk::vector &x, + fk::vector const &b, int const restart, int const max_iter, double const tolerance); - -template gmres_info simple_gmres_euler( - adapt::distributed_grid const &adaptive_grid, int const elem_size, - double const dt, kron_operators const &ops, - fk::vector &x, - fk::vector const &b, - int const restart, int const max_iter, double const tolerance); #endif template int default_gmres_restarts(int num_cols); @@ -874,7 +862,7 @@ bicgstab_euler(const float dt, imex_flag imex, #ifdef ASGARD_USE_CUDA template gmres_info -simple_gmres_euler(adapt::distributed_grid const &adaptive_grid, int const elem_size, +simple_gmres_euler(adapt::distributed_grid const &adaptive_grid, int const elem_size, const float dt, imex_flag imex, kron_operators const &ops, fk::vector &x, diff --git a/src/solver_tests.cpp b/src/solver_tests.cpp index a26240d8d..463feda8d 100644 --- a/src/solver_tests.cpp +++ b/src/solver_tests.cpp @@ -160,7 +160,7 @@ void test_kronmult(parser const &parse, P const tol_factor) int const restart = parser::DEFAULT_GMRES_INNER_ITERATIONS; int const max_iter = parser::DEFAULT_GMRES_OUTER_ITERATIONS; P const tolerance = std::is_same_v ? 1e-6 : 1e-12; - solver::simple_gmres_euler(adaptive_grid, dt, imex_flag::unspecified, operator_matrices, + solver::simple_gmres_euler(adaptive_grid, elem_size, dt, imex_flag::unspecified, operator_matrices, x_d, b_d, restart, max_iter, tolerance); return x_d.clone_onto_host(); }(); diff --git a/src/time_advance.cpp b/src/time_advance.cpp index e86a149c3..447d487aa 100644 --- a/src/time_advance.cpp +++ b/src/time_advance.cpp @@ -528,8 +528,7 @@ imex_advance(PDE

&pde, kron_operators

&operator_matrices, P const max = pde.get_dimensions()[0].domain_max; int const N_elements = fm::two_raised_to(level); - auto nodes = gen_realspace_nodes(degree, level, min, max); - int const elem_size = static_cast(std::pow(degree, pde.num_dims())); + auto nodes = gen_realspace_nodes(degree, level, min, max); #ifdef ASGARD_USE_CUDA fk::vector f = f_0.clone_onto_device(); fk::vector f_orig_dev = @@ -537,13 +536,13 @@ imex_advance(PDE

&pde, kron_operators

&operator_matrices, #else fk::vector f = f_0; fk::vector f_orig_dev = f_0; - +#endif auto const &plan = adaptive_grid.get_distrib_plan(); auto const &grid = adaptive_grid.get_subgrid(get_rank()); + int const elem_size = static_cast(std::pow(degree, pde.num_dims())); int const A_local_rows = elem_size * grid.nrows(); fk::vector reduced_fx(A_local_rows); -#endif // Create moment matrices that take DG function in (x,v) and transfer to DG // function in x @@ -818,6 +817,7 @@ imex_advance(PDE

&pde, kron_operators

&operator_matrices, exchange_results(reduced_fx, fx, elem_size, plan, get_rank()); fm::axpy(fx, f, dt); // f here is f_1s #else + ignore(plan); fm::axpy(fx, f, dt); // f here is f_1s #endif