Skip to content

Commit 9416a48

Browse files
committed
use schwarz dispatch function
1 parent 671c30e commit 9416a48

File tree

4 files changed

+10
-37
lines changed

4 files changed

+10
-37
lines changed

include/OGL/Preconditioner/Cholesky.hpp

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -94,16 +94,6 @@ class Cholesky // : public PreconditionerWrapper
9494
auto precond_factory =
9595
gko::share(gko::preconditioner::Ic<>::build().on(exec_));
9696

97-
auto wrapper = [this](auto f) {
98-
if (multi_level_schwarz_) {
99-
return wrap_multi_level_schwarz(
100-
mtx_, exec_, f, d_.subDict("multiLevelConfig"), verbose_);
101-
} else {
102-
return wrap_schwarz(mtx_, exec_, std::move(f),
103-
generate_factorization());
104-
}
105-
};
106-
107-
return wrapper(precond_factory);
97+
return dispatch_schwarz(mtx_, exec_, precond_factory, d_, verbose_);
10898
}
10999
};

include/OGL/Preconditioner/ISAI.hpp

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,20 +62,13 @@ class ISAI // : public PreconditionerWrapper
6262

6363
virtual std::shared_ptr<gko::LinOp> create()
6464
{
65-
auto wrapper = [this](auto f) {
66-
if (multi_level_schwarz_) {
67-
return wrap_multi_level_schwarz(
68-
mtx_, exec_, f, d_.subDict("multiLevelConfig"), verbose_);
69-
} else {
70-
return wrap_schwarz(mtx_, exec_, std::move(f));
71-
}
72-
};
73-
7465
if (type_ == "SPD") {
75-
return wrapper(generate_precond_factory_spd());
66+
return dispatch_schwarz(mtx_, exec_, generate_precond_factory_spd(),
67+
d_, verbose_);
7668
}
7769
if (type_ == "General") {
78-
return wrapper(generate_precond_factory_general());
70+
return dispatch_schwarz(
71+
mtx_, exec_, generate_precond_factory_general(), d_, verbose_);
7972
}
8073
}
8174
};

include/OGL/Preconditioner/Jacobi.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@ class BlockJacobi // : public PreconditionerWrapper
5050
};
5151

5252
if (precision_ == "double") {
53-
return dispatch_schwarz(mtx_, exec_, builder(dbj::build()),
54-
d_, verbose);
53+
return dispatch_schwarz(mtx_, exec_, builder(dbj::build()), d_,
54+
verbose_);
5555
}
5656
if (precision_ == "float") {
57-
return dispatch_schwarz(mtx_, exec_, builder(fbj::build()),
58-
d_, verbose);
57+
return dispatch_schwarz(mtx_, exec_, builder(fbj::build()), d_,
58+
verbose_);
5959
}
6060

6161
return {};

include/OGL/Preconditioner/LU.hpp

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -94,16 +94,6 @@ class LU // : public PreconditionerWrapper
9494
auto precond_factory =
9595
gko::share(gko::preconditioner::Ilu<>::build().on(exec_));
9696

97-
auto wrapper = [this](auto f) {
98-
if (multi_level_schwarz_) {
99-
return wrap_multi_level_schwarz(
100-
mtx_, exec_, f, d_.subDict("multiLevelConfig"), verbose_);
101-
} else {
102-
return wrap_schwarz(mtx_, exec_, std::move(f),
103-
generate_factorization());
104-
}
105-
};
106-
107-
return wrapper(precond_factory);
97+
return dispatch_schwarz(mtx_, exec_, precond_factory, d_, verbose_);
10898
}
10999
};

0 commit comments

Comments
 (0)