Skip to content

Commit

Permalink
e uses next level precision, but the coarest solver uses the last lev…
Browse files Browse the repository at this point in the history
…el precision.

Thus, we can not cast e to current level precision unless it is the last level
  • Loading branch information
yhmtsai committed Aug 20, 2024
1 parent 3bf0ce7 commit bee3291
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions core/solver/multigrid.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,7 @@ void MultigridState::run_cycle(multigrid::cycle cycle, size_type level,

auto r = r_list.at(level);
auto g = g_list.at(level);
auto e = as<VectorType>(e_list.at(level));
auto e = e_list.at(level);
// get mg_level
auto mg_level = multigrid->get_mg_level_list().at(level);
// get the pre_smoother
Expand Down Expand Up @@ -537,7 +537,7 @@ void MultigridState::run_cycle(multigrid::cycle cycle, size_type level,
// next level
if (level + 1 == total_level) {
// the coarsest solver use the last level valuetype
e->fill(zero<value_type>());
as<VectorType>(e)->fill(zero<value_type>());
}
auto next_level_matrix =
(level + 1 < total_level)
Expand Down

0 comments on commit bee3291

Please sign in to comment.