Inconsistency in parallelhelpers?
The function prepareLinearAlgebraParallel
in dumux/linear/parallelhelpers.hh
has, among others, two template parameters LinearSolverTraits
and ParallelTraits
. It receives three parameters
std::shared_ptr<typename ParallelTraits::...>& comm, fop, sp.
ParallelTraits
is then used for branching between an overlapping and a nonoverlapping treatment.
Later on, actual values are assigned to these parameters not employing the types shown above, but rather in terms of, for example,
using Traits = typename LinearSolverTraits::template ParallelNonoverlapping<Matrix, Vector>;
comm = std::make_shared<typename Traits::Comm>(pHelper.gridView().comm(), category);
The local alias Traits
should always coincide with the template parameter ParallelTraits
, otherwise the assigments won't work.
To me, using the local alias is confusing. Can it be deleted or was it done on purpose? Maybe it's a leftover from the time before if constexpr
?