mirror of
https://github.com/OPM/opm-simulators.git
synced 2026-09-05 04:40:19 -05:00
@@ -53,9 +53,9 @@ void solve_transposed_3x3(const Scalar* A,
|
||||
+ A[2+0*B] *A[0+1*B]*b[1] - A[2+0*B]*A[1+1*B]*b[0]) / d;
|
||||
}
|
||||
|
||||
#define INSTANTIATE_TYPE(T)\
|
||||
template void solve_transposed_3x3<T>(const T* A, const T* b, T* x);\
|
||||
template T get_absmax<T>(const T* data, const int N);
|
||||
#define INSTANTIATE_TYPE(T) \
|
||||
template void solve_transposed_3x3<T>(const T* A, const T* b, T* x); \
|
||||
template T get_absmax<T>(const T* data, const int N);
|
||||
|
||||
INSTANTIATE_TYPE(double)
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ public:
|
||||
// via Lz = y
|
||||
// and Ux = z
|
||||
void apply(const cl::Buffer& y, cl::Buffer& x) override;
|
||||
void apply(Scalar& y, Scalar& x) {}
|
||||
void apply(Scalar&, Scalar&) {}
|
||||
|
||||
std::tuple<std::vector<int>, std::vector<int>, std::vector<int>>
|
||||
get_preconditioner_structure()
|
||||
|
||||
@@ -125,7 +125,7 @@ public:
|
||||
|
||||
// apply preconditioner, x = prec(y)
|
||||
void apply(const cl::Buffer& y, cl::Buffer& x) override;
|
||||
void apply(Scalar& y, Scalar& x) {}
|
||||
void apply(Scalar&, Scalar&) {}
|
||||
};
|
||||
|
||||
/// Similar function to csrPatternToCsc. It gives an offset map from CSR to CSC instead of the full CSR to CSC conversion.
|
||||
|
||||
@@ -95,7 +95,7 @@ public:
|
||||
// applies blocked ilu0
|
||||
// also applies amg for pressure component
|
||||
void apply(const cl::Buffer& y, cl::Buffer& x) override;
|
||||
void apply(Scalar& y, Scalar& x) {}
|
||||
void apply(Scalar&, Scalar&) {}
|
||||
|
||||
bool create_preconditioner(BlockedMatrix<Scalar>* mat) override;
|
||||
bool create_preconditioner(BlockedMatrix<Scalar>* mat,
|
||||
|
||||
@@ -71,13 +71,13 @@ openclSolverBackend(int verbosity_,
|
||||
OPM_THROW(std::logic_error, "Error unknown value for argument --linear-solver, " + linsolver);
|
||||
}
|
||||
|
||||
using PreconditionerType = typename Opm::Accelerator::PreconditionerType;
|
||||
using PCType = typename Opm::Accelerator::PreconditionerType;
|
||||
if (use_cpr) {
|
||||
prec = openclPreconditioner<Scalar, block_size>::create(PreconditionerType::CPR, verbosity, opencl_ilu_parallel);
|
||||
prec = openclPreconditioner<Scalar, block_size>::create(PCType::CPR, verbosity, opencl_ilu_parallel);
|
||||
} else if (use_isai) {
|
||||
prec = openclPreconditioner<Scalar, block_size>::create(PreconditionerType::BISAI, verbosity, opencl_ilu_parallel);
|
||||
prec = openclPreconditioner<Scalar, block_size>::create(PCType::BISAI, verbosity, opencl_ilu_parallel);
|
||||
} else {
|
||||
prec = openclPreconditioner<Scalar, block_size>::create(PreconditionerType::BILU0, verbosity, opencl_ilu_parallel);
|
||||
prec = openclPreconditioner<Scalar, block_size>::create(PCType::BILU0, verbosity, opencl_ilu_parallel);
|
||||
}
|
||||
|
||||
std::ostringstream out;
|
||||
|
||||
Reference in New Issue
Block a user