openCl preconditioners: make argument orders consistent

This commit is contained in:
Arne Morten Kvarving 2024-04-16 09:39:56 +02:00
parent 34e94256be
commit 7311948b89
5 changed files with 11 additions and 10 deletions

View File

@ -44,7 +44,7 @@ using Opm::OpmLog;
using Dune::Timer;
template <unsigned int block_size>
CPR<block_size>::CPR(int verbosity_, bool opencl_ilu_parallel_) :
CPR<block_size>::CPR(bool opencl_ilu_parallel_, int verbosity_) :
Preconditioner<block_size>(verbosity_), opencl_ilu_parallel(opencl_ilu_parallel_)
{
bilu0 = std::make_unique<BILU0<block_size> >(opencl_ilu_parallel, verbosity_);

View File

@ -115,8 +115,7 @@ private:
void create_preconditioner_amg(BlockedMatrix *mat);
public:
CPR(int verbosity, bool opencl_ilu_parallel);
CPR(bool opencl_ilu_parallel, int verbosity);
bool analyze_matrix(BlockedMatrix *mat) override;
bool analyze_matrix(BlockedMatrix *mat, BlockedMatrix *jacMat) override;

View File

@ -44,13 +44,13 @@ void Preconditioner<block_size>::setOpencl(std::shared_ptr<cl::Context>& context
template <unsigned int block_size>
std::unique_ptr<Preconditioner<block_size>>
Preconditioner<block_size>::create(Type type, int verbosity, bool opencl_ilu_parallel)
Preconditioner<block_size>::create(Type type, bool opencl_ilu_parallel, int verbosity)
{
switch (type ) {
case Type::BILU0:
return std::make_unique<BILU0<block_size> >(opencl_ilu_parallel, verbosity);
case Type::CPR:
return std::make_unique<CPR<block_size> >(verbosity, opencl_ilu_parallel);
return std::make_unique<CPR<block_size> >(opencl_ilu_parallel, verbosity);
case Type::BISAI:
return std::make_unique<BISAI<block_size> >(opencl_ilu_parallel, verbosity);
}
@ -70,7 +70,7 @@ bool Preconditioner<block_size>::create_preconditioner(BlockedMatrix *mat, [[may
}
#define INSTANTIATE_BDA_FUNCTIONS(n) \
template std::unique_ptr<Preconditioner<n> > Preconditioner<n>::create(Type, int, bool); \
template std::unique_ptr<Preconditioner<n> > Preconditioner<n>::create(Type, bool, int); \
template void Preconditioner<n>::setOpencl(std::shared_ptr<cl::Context>&, std::shared_ptr<cl::CommandQueue>&); \
template bool Preconditioner<n>::analyze_matrix(BlockedMatrix *, BlockedMatrix *); \
template bool Preconditioner<n>::create_preconditioner(BlockedMatrix *, BlockedMatrix *);

View File

@ -58,7 +58,9 @@ public:
BISAI
};
static std::unique_ptr<Preconditioner> create(Type type, int verbosity, bool opencl_ilu_parallel);
static std::unique_ptr<Preconditioner> create(Type type,
bool opencl_ilu_parallel,
int verbosity);
virtual ~Preconditioner() = default;

View File

@ -67,11 +67,11 @@ openclSolverBackend<block_size>::openclSolverBackend(int verbosity_, int maxit_,
using PreconditionerType = typename Preconditioner<block_size>::Type;
if (use_cpr) {
prec = Preconditioner<block_size>::create(PreconditionerType::CPR, verbosity, opencl_ilu_parallel);
prec = Preconditioner<block_size>::create(PreconditionerType::CPR, opencl_ilu_parallel, verbosity);
} else if (use_isai) {
prec = Preconditioner<block_size>::create(PreconditionerType::BISAI, verbosity, opencl_ilu_parallel);
prec = Preconditioner<block_size>::create(PreconditionerType::BISAI, opencl_ilu_parallel, verbosity);
} else {
prec = Preconditioner<block_size>::create(PreconditionerType::BILU0, verbosity, opencl_ilu_parallel);
prec = Preconditioner<block_size>::create(PreconditionerType::BILU0, opencl_ilu_parallel, verbosity);
}
std::ostringstream out;