Skip to content

Commit

Permalink
fix build
Browse files Browse the repository at this point in the history
Signed-off-by: Steven Hahn <hahnse@ornl.gov>
  • Loading branch information
quantumsteve committed Jul 3, 2024
1 parent 800a3d8 commit fb6ca88
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 28 deletions.
25 changes: 11 additions & 14 deletions src/solver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,8 @@ bicgstab_euler(const P dt, imex_flag imex,
template<typename P, resource resrc>
gmres_info<P>
simple_gmres_euler(adapt::distributed_grid<P> const &adaptive_grid, int const elem_size,
P dt, kronmult_matrix<P> const &mat,
P const dt, imex_flag imex,
kron_operators<P> const &ops,
fk::vector<P, mem_type::owner, resrc> &x,
fk::vector<P, mem_type::owner, resrc> const &b,
int const restart, int const max_iter, P const tolerance)
Expand All @@ -175,12 +176,12 @@ simple_gmres_euler(adapt::distributed_grid<P> const &adaptive_grid, int const el
adaptive_grid, elem_size,
[&](P const alpha, fk::vector<P, mem_type::view, resrc> const x_in,
P const beta, fk::vector<P, mem_type::view, resrc> y) -> void {
tools::time_event performance("kronmult - implicit", mat.flops());
tools::time_event performance("kronmult - implicit", ops.flops());
auto plan = adaptive_grid.get_distrib_plan();
// switch to elem_size?
auto const size_r = elem_size * adaptive_grid.get_subgrid(get_rank()).nrows();
fk::vector<P, mem_type::owner, resrc> y_local(size_r), y_tmp(size_r);
mat.template apply<resrc>(-dt * alpha, x_in.data(), P{0}, y_local.data());
ops.template apply<resrc>(-dt * alpha, x_in.data(), P{0}, y_local.data());
reduce_results(y_local, y_tmp, plan, get_rank());
y_local.resize(y.size());
exchange_results(y_tmp, y_local, elem_size, plan, get_rank());
Expand All @@ -194,9 +195,8 @@ simple_gmres_euler(adapt::distributed_grid<P> const &adaptive_grid, int const el
ignore(adaptive_grid);
ignore(elem_size);
#endif
return simple_gmres_euler(dt, mat, x, b, restart, max_iter, tolerance);
return simple_gmres_euler(dt, imex, ops, x, b, restart, max_iter, tolerance);
}
#endif

/*! Generates a default number inner iterations when no use input is given
* \param num_cols Number of columns in the A matrix.
Expand Down Expand Up @@ -811,23 +811,22 @@ simple_gmres_euler(const double dt, imex_flag imex,
fk::vector<double, mem_type::owner, resource::device> const &b,
int const restart, int const max_iter, double const tolerance);
template gmres_info<double>
bicgstab_euler(adapt::distributed_grid<double> const &adaptive_grid, int const elem_size,
const double dt, imex_flag imex,
bicgstab_euler(const double dt, imex_flag imex,
kron_operators<double> const &ops,
fk::vector<double, mem_type::owner, resource::device> &x,
fk::vector<double, mem_type::owner, resource::device> const &b,
int const max_iter, double const tolerance);

template gmres_info<double>
simple_gmres_euler(adapt::distributed_grid<double> const &adaptive_grid, int const elem_size,
const double dt, kronmult_matrix<double> const &mat,
const double dt, kron_operators<double> const &ops,
fk::vector<double> &x, fk::vector<double> const &b,
int const restart, int const max_iter,
double const tolerance);

template gmres_info<double> simple_gmres_euler(
adapt::distributed_grid<double> const &adaptive_grid, int const elem_size,
double const dt, kronmult_matrix<double> const &mat,
double const dt, kron_operators<double> const &ops,
fk::vector<double, mem_type::owner, resource::device> &x,
fk::vector<double, mem_type::owner, resource::device> const &b,
int const restart, int const max_iter, double const tolerance);
Expand Down Expand Up @@ -859,16 +858,15 @@ bicgstab(fk::matrix<float> const &A, fk::vector<float> &x,
int const max_iter, float const tolerance);

template gmres_info<float>
simple_gmres_euler(adapt::distributed_grid<double> const &adaptive_grid, int const elem_size,
simple_gmres_euler(adapt::distributed_grid<float> const &adaptive_grid, int const elem_size,
const float dt, imex_flag imex,
kron_operators<float> const &ops,
fk::vector<float, mem_type::owner, resource::host> &x,
fk::vector<float, mem_type::owner, resource::host> const &b,
int const restart, int const max_iter, float const tolerance);

template gmres_info<float>
bicgstab_euler(adapt::distributed_grid<double> const &adaptive_grid, int const elem_size,
const float dt, imex_flag imex,
bicgstab_euler(const float dt, imex_flag imex,
kron_operators<float> const &ops,
fk::vector<float, mem_type::owner, resource::host> &x,
fk::vector<float, mem_type::owner, resource::host> const &b,
Expand All @@ -884,8 +882,7 @@ simple_gmres_euler(adapt::distributed_grid<double> const &adaptive_grid, int con
int const restart, int const max_iter, float const tolerance);

template gmres_info<float>
bicgstab_euler(adapt::distributed_grid<double> const &adaptive_grid, int const elem_size,
const float dt, imex_flag imex,
bicgstab_euler(const float dt, imex_flag imex,
kron_operators<float> const &ops,
fk::vector<float, mem_type::owner, resource::device> &x,
fk::vector<float, mem_type::owner, resource::device> const &b,
Expand Down
3 changes: 1 addition & 2 deletions src/solver.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,7 @@ simple_gmres_euler(adapt::distributed_grid<P> const &adaptive_grid, int const el
// solves ( I - dt * mat ) * x = b
template<typename P, resource resrc>
gmres_info<P>
bicgstab_euler(adapt::distributed_grid<P> const &adaptive_grid, int const elem_size,
const P dt, imex_flag imex,
bicgstab_euler(const P dt, imex_flag imex,
kron_operators<P> const &ops,
fk::vector<P, mem_type::owner, resrc> &x,
fk::vector<P, mem_type::owner, resrc> const &b,
Expand Down
12 changes: 2 additions & 10 deletions src/solver_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ void test_kronmult(parser const &parse, P const tol_factor)
asgard::kron_operators<P> operator_matrices;
asgard::adapt::distributed_grid adaptive_grid(*pde, opts);
operator_matrices.make(imex_flag::unspecified, *pde, adaptive_grid, opts);
P const dt = pde->get_dt();
P const dt = pde->get_dt();
auto const &grid = adaptive_grid.get_subgrid(get_rank());
// perform matrix-free gmres
fk::vector<P> const matrix_free_gmres = [&adaptive_grid, elem_size, &grid, &operator_matrices, &gold, &b,
Expand All @@ -128,16 +128,8 @@ void test_kronmult(parser const &parse, P const tol_factor)
std::copy_n(b.data(grid.col_start * elem_size), len, b_dist.data());
int const restart = parser::DEFAULT_GMRES_INNER_ITERATIONS;
int const max_iter = parser::DEFAULT_GMRES_OUTER_ITERATIONS;
<<<<<<< HEAD
P const tolerance = std::is_same_v<float, P> ? 4e-6 : 1e-12;
solver::simple_gmres_euler(adaptive_grid, elem_size, dt, imex_flag::unspecified, operator_matrices, x,
=======
P const tolerance = std::is_same_v<float, P> ? 1e-6 : 1e-12;
#ifdef KRON_MODE_GLOBAL
ignore(adaptive_grid);
ignore(elem_size);
solver::simple_gmres_euler(dt, matrix_entry::regular, operator_matrices.kglobal, x,
>>>>>>> 1f21f3c7... revert precision regressions
b, restart, max_iter, tolerance);
return x;
}();
Expand All @@ -151,7 +143,7 @@ void test_kronmult(parser const &parse, P const tol_factor)
fk::vector<P> x(gold);
int const max_iter = parser::DEFAULT_GMRES_OUTER_ITERATIONS;
P const tolerance = std::is_same_v<float, P> ? 1e-6 : 1e-12;
solver::bicgstab_euler(adaptive_grid, elem_size, dt, imex_flag::unspecified, operator_matrices, x,
solver::bicgstab_euler(dt, imex_flag::unspecified, operator_matrices, x,
b, max_iter, tolerance);
return x;
}();
Expand Down
3 changes: 1 addition & 2 deletions src/time_advance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ implicit_advance(PDE<P> &pde, kron_operators<P> &operator_matrices,
int const degree = pde.get_dimensions()[0].get_degree();
int const elem_size = static_cast<int>(std::pow(degree, pde.num_dims()));
auto const &plan = adaptive_grid.get_distrib_plan();
auto const size = elem_size * adaptive_grid.get_subgrid(get_rank()).nrows();
auto const size = elem_size * adaptive_grid.get_subgrid(get_rank()).nrows();

#ifdef ASGARD_USE_SCALAPACK
fk::vector<P> x(size);
Expand Down Expand Up @@ -964,7 +964,6 @@ imex_advance(PDE<P> &pde, kron_operators<P> &operator_matrices,
adaptive_grid, elem_size,
P{0.5} * pde.get_dt(), imex_flag::imex_implicit, operator_matrices,
f_2, f, restart, max_iter, tolerance);

}
else if (solver == solve_opts::bicgstab)
{
Expand Down

0 comments on commit fb6ca88

Please sign in to comment.