Skip to content

Commit 671c30e

Browse files
committed
format, extract num rows in ml schwarz
1 parent e997e43 commit 671c30e

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed

include/OGL/Preconditioner/Jacobi.hpp

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,20 +49,13 @@ class BlockJacobi // : public PreconditionerWrapper
4949
.on(exec_));
5050
};
5151

52-
auto wrapper = [this](auto f) {
53-
if (multi_level_schwarz_) {
54-
return wrap_multi_level_schwarz(
55-
mtx_, exec_, f, d_.subDict("multiLevelConfig"), verbose_);
56-
} else {
57-
return wrap_schwarz(mtx_, exec_, std::move(f));
58-
}
59-
};
60-
6152
if (precision_ == "double") {
62-
return wrapper(builder(dbj::build()));
53+
return dispatch_schwarz(mtx_, exec_, builder(dbj::build()),
54+
d_, verbose);
6355
}
6456
if (precision_ == "float") {
65-
return wrapper(builder(fbj::build()));
57+
return dispatch_schwarz(mtx_, exec_, builder(fbj::build()),
58+
d_, verbose);
6659
}
6760

6861
return {};

include/OGL/Preconditioner/Schwarz.hpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,4 +116,18 @@ std::shared_ptr<gko::LinOp> wrap_multi_level_schwarz(
116116
}
117117
}
118118

119+
120+
template <typename PrecondFactory>
121+
std::shared_ptr<gko::LinOp> dispatch_schwarz(
122+
std::shared_ptr<const gko::LinOp> mtx, std::shared_ptr<gko::Executor> exec,
123+
std::shared_ptr<PrecondFactory> precond, const dictionary &d, label verbose)
124+
{
125+
if (d.lookupOrDefault<Switch>("multiLevelSchwarz", false)) {
126+
return wrap_multi_level_schwarz(mtx, exec, precond,
127+
d.subDict("multiLevelConfig"), verbose);
128+
} else {
129+
return wrap_schwarz(mtx, exec, std::move(precond));
130+
}
131+
}
132+
119133
} // namespace Foam

0 commit comments

Comments
 (0)