diff --git a/CMakeLists_files.cmake b/CMakeLists_files.cmake index f8a47b0fad5..a9915c68544 100644 --- a/CMakeLists_files.cmake +++ b/CMakeLists_files.cmake @@ -167,6 +167,7 @@ list (APPEND MAIN_SOURCE_FILES opm/simulators/linalg/FlexibleSolver4.cpp opm/simulators/linalg/FlexibleSolver5.cpp opm/simulators/linalg/FlexibleSolver6.cpp + opm/simulators/linalg/FlexibleSolver7.cpp opm/simulators/linalg/FlowLinearSolverParameters.cpp opm/simulators/linalg/ISTLSolver.cpp opm/simulators/linalg/MILU.cpp @@ -178,6 +179,7 @@ list (APPEND MAIN_SOURCE_FILES opm/simulators/linalg/PreconditionerFactory4.cpp opm/simulators/linalg/PreconditionerFactory5.cpp opm/simulators/linalg/PreconditionerFactory6.cpp + opm/simulators/linalg/PreconditionerFactory7.cpp opm/simulators/linalg/PropertyTree.cpp opm/simulators/linalg/setupPropertyTree.cpp opm/simulators/timestepping/AdaptiveSimulatorTimer.cpp diff --git a/opm/simulators/linalg/FlexibleSolver7.cpp b/opm/simulators/linalg/FlexibleSolver7.cpp new file mode 100644 index 00000000000..c6e24600656 --- /dev/null +++ b/opm/simulators/linalg/FlexibleSolver7.cpp @@ -0,0 +1,35 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/* + Copyright 2025 NORCE AS + + This file is part of the Open Porous Media project (OPM). + + OPM is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + OPM is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with OPM. If not, see . + + Consult the COPYING file in the top-level source directory of this + module for the precise wording of the license and the list of + copyright holders. +*/ +#include "config.h" + +#include + + +INSTANTIATE_FLEXIBLESOLVER(double, 7) + +#if FLOW_INSTANTIATE_FLOAT +INSTANTIATE_FLEXIBLESOLVER(float, 7) +#endif + diff --git a/opm/simulators/linalg/ISTLSolver.cpp b/opm/simulators/linalg/ISTLSolver.cpp index ebb53f0506c..c7d7031a25b 100644 --- a/opm/simulators/linalg/ISTLSolver.cpp +++ b/opm/simulators/linalg/ISTLSolver.cpp @@ -184,7 +184,8 @@ using CommunicationType = Dune::Communication; INSTANTIATE_FLEX(T,3) \ INSTANTIATE_FLEX(T,4) \ INSTANTIATE_FLEX(T,5) \ - INSTANTIATE_FLEX(T,6) + INSTANTIATE_FLEX(T,6) \ + INSTANTIATE_FLEX(T,7) INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/ISTLSolverGpuBridge.cpp b/opm/simulators/linalg/ISTLSolverGpuBridge.cpp index 0a103d0e3bd..c00b5ce1110 100644 --- a/opm/simulators/linalg/ISTLSolverGpuBridge.cpp +++ b/opm/simulators/linalg/ISTLSolverGpuBridge.cpp @@ -274,7 +274,8 @@ using PolyHedralGrid3D = Dune::PolyhedralGrid<3, 3>; INSTANTIATE(T,3) \ INSTANTIATE(T,4) \ INSTANTIATE(T,5) \ - INSTANTIATE(T,6) + INSTANTIATE(T,6) \ + INSTANTIATE(T,7) INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/MILU.cpp b/opm/simulators/linalg/MILU.cpp index c1d848a871f..37dcca025b2 100644 --- a/opm/simulators/linalg/MILU.cpp +++ b/opm/simulators/linalg/MILU.cpp @@ -283,7 +283,8 @@ void milun_decomposition(const M& A, int n, MILU_VARIANT milu, M& ILU, INSTANTIATE_DIM(T,3) \ INSTANTIATE_DIM(T,4) \ INSTANTIATE_DIM(T,5) \ - INSTANTIATE_DIM(T,6) + INSTANTIATE_DIM(T,6) \ + INSTANTIATE_DIM(T,7) INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/ParallelOverlappingILU0.cpp b/opm/simulators/linalg/ParallelOverlappingILU0.cpp index 6b27473ccf7..47679303bf1 100644 --- a/opm/simulators/linalg/ParallelOverlappingILU0.cpp +++ b/opm/simulators/linalg/ParallelOverlappingILU0.cpp @@ -52,7 +52,8 @@ namespace Opm INSTANTIATE(T,3) \ INSTANTIATE(T,4) \ INSTANTIATE(T,5) \ - INSTANTIATE(T,6) + INSTANTIATE(T,6) \ + INSTANTIATE(T,7) INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/PreconditionerFactory7.cpp b/opm/simulators/linalg/PreconditionerFactory7.cpp new file mode 100644 index 00000000000..97f5f8e5e6c --- /dev/null +++ b/opm/simulators/linalg/PreconditionerFactory7.cpp @@ -0,0 +1,37 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/* + Copyright 2025 NORCE AS + + This file is part of the Open Porous Media project (OPM). + + OPM is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + OPM is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with OPM. If not, see . + + Consult the COPYING file in the top-level source directory of this + module for the precise wording of the license and the list of + copyright holders. +*/ +#include "config.h" + +#include + +namespace Opm { + +INSTANTIATE_PF(double, 7) + +#if FLOW_INSTANTIATE_FLOAT +INSTANTIATE_PF(float, 7) +#endif + +} diff --git a/opm/simulators/linalg/gpubridge/CprCreation.cpp b/opm/simulators/linalg/gpubridge/CprCreation.cpp index b98c0345e59..7de181754d3 100644 --- a/opm/simulators/linalg/gpubridge/CprCreation.cpp +++ b/opm/simulators/linalg/gpubridge/CprCreation.cpp @@ -308,7 +308,8 @@ analyzeAggregateMaps() template class CprCreation; \ template class CprCreation; \ template class CprCreation; \ - template class CprCreation; + template class CprCreation; \ + template class CprCreation; INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/GpuBridge.cpp b/opm/simulators/linalg/gpubridge/GpuBridge.cpp index fa7d52397ca..40411cb87af 100644 --- a/opm/simulators/linalg/gpubridge/GpuBridge.cpp +++ b/opm/simulators/linalg/gpubridge/GpuBridge.cpp @@ -370,7 +370,8 @@ initWellContributions([[maybe_unused]] WellContributions& wellContribs, INSTANTIATE_GPU_FUNCTIONS(T,3) \ INSTANTIATE_GPU_FUNCTIONS(T,4) \ INSTANTIATE_GPU_FUNCTIONS(T,5) \ - INSTANTIATE_GPU_FUNCTIONS(T,6) + INSTANTIATE_GPU_FUNCTIONS(T,6) \ + INSTANTIATE_GPU_FUNCTIONS(T,7) INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/amgclSolverBackend.cpp b/opm/simulators/linalg/gpubridge/amgclSolverBackend.cpp index 5582d8ebfe0..ba930f9e4db 100644 --- a/opm/simulators/linalg/gpubridge/amgclSolverBackend.cpp +++ b/opm/simulators/linalg/gpubridge/amgclSolverBackend.cpp @@ -434,7 +434,8 @@ solve_system(std::shared_ptr> matrix, template class amgclSolverBackend; \ template class amgclSolverBackend; \ template class amgclSolverBackend; \ - template class amgclSolverBackend; + template class amgclSolverBackend; \ + template class amgclSolverBackend; INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/cuda/amgclSolverBackend.cu b/opm/simulators/linalg/gpubridge/cuda/amgclSolverBackend.cu index 6e5d05e8969..10e96023f9b 100644 --- a/opm/simulators/linalg/gpubridge/cuda/amgclSolverBackend.cu +++ b/opm/simulators/linalg/gpubridge/cuda/amgclSolverBackend.cu @@ -78,7 +78,8 @@ void amgclSolverBackend::solve_cuda(Scalar* b) template void amgclSolverBackend::solve_cuda(T*); \ template void amgclSolverBackend::solve_cuda(T*); \ template void amgclSolverBackend::solve_cuda(T*); \ - template void amgclSolverBackend::solve_cuda(T*); + template void amgclSolverBackend::solve_cuda(T*); \ + template void amgclSolverBackend::solve_cuda(T*); INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/cuda/cusparseSolverBackend.cu b/opm/simulators/linalg/gpubridge/cuda/cusparseSolverBackend.cu index 1f0c640151b..822617dd86f 100644 --- a/opm/simulators/linalg/gpubridge/cuda/cusparseSolverBackend.cu +++ b/opm/simulators/linalg/gpubridge/cuda/cusparseSolverBackend.cu @@ -724,7 +724,8 @@ solve_system(std::shared_ptr> matrix, template class cusparseSolverBackend; \ template class cusparseSolverBackend; \ template class cusparseSolverBackend; \ - template class cusparseSolverBackend; + template class cusparseSolverBackend; \ + template class cusparseSolverBackend; INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/opencl/ChowPatelIlu.cpp b/opm/simulators/linalg/gpubridge/opencl/ChowPatelIlu.cpp index ca0fd42d584..a290d975e46 100644 --- a/opm/simulators/linalg/gpubridge/opencl/ChowPatelIlu.cpp +++ b/opm/simulators/linalg/gpubridge/opencl/ChowPatelIlu.cpp @@ -998,6 +998,7 @@ INSTANTIATE_GPU_FUNCTIONS(3); INSTANTIATE_GPU_FUNCTIONS(4); INSTANTIATE_GPU_FUNCTIONS(5); INSTANTIATE_GPU_FUNCTIONS(6); +INSTANTIATE_GPU_FUNCTIONS(7); #undef INSTANTIATE_GPU_FUNCTIONS diff --git a/opm/simulators/linalg/gpubridge/opencl/openclBILU0.cpp b/opm/simulators/linalg/gpubridge/opencl/openclBILU0.cpp index 2ad6a9ec98a..da247723c7f 100644 --- a/opm/simulators/linalg/gpubridge/opencl/openclBILU0.cpp +++ b/opm/simulators/linalg/gpubridge/opencl/openclBILU0.cpp @@ -340,7 +340,8 @@ void openclBILU0::apply(const cl::Buffer& y, cl::Buffer& x, [ template class openclBILU0; \ template class openclBILU0; \ template class openclBILU0; \ - template class openclBILU0; + template class openclBILU0; \ + template class openclBILU0; INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/opencl/openclBISAI.cpp b/opm/simulators/linalg/gpubridge/opencl/openclBISAI.cpp index 2036c4cbe3e..bb094f632b1 100644 --- a/opm/simulators/linalg/gpubridge/opencl/openclBISAI.cpp +++ b/opm/simulators/linalg/gpubridge/opencl/openclBISAI.cpp @@ -359,7 +359,8 @@ void openclBISAI::apply(const cl::Buffer& y, cl::Buffer& x, [ template class openclBISAI; \ template class openclBISAI; \ template class openclBISAI; \ - template class openclBISAI; + template class openclBISAI; \ + template class openclBISAI; INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/opencl/openclCPR.cpp b/opm/simulators/linalg/gpubridge/opencl/openclCPR.cpp index 8a224eb74fd..351556e12dc 100644 --- a/opm/simulators/linalg/gpubridge/opencl/openclCPR.cpp +++ b/opm/simulators/linalg/gpubridge/opencl/openclCPR.cpp @@ -320,7 +320,8 @@ void openclCPR::apply(const cl::Buffer& y, cl::Buffer& x, Wel template class openclCPR; \ template class openclCPR; \ template class openclCPR; \ - template class openclCPR; + template class openclCPR; \ + template class openclCPR; INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/opencl/openclPreconditioner.cpp b/opm/simulators/linalg/gpubridge/opencl/openclPreconditioner.cpp index adaf2f0b71b..76e8d6b1c27 100644 --- a/opm/simulators/linalg/gpubridge/opencl/openclPreconditioner.cpp +++ b/opm/simulators/linalg/gpubridge/opencl/openclPreconditioner.cpp @@ -67,7 +67,8 @@ setOpencl(std::shared_ptr& context_, template class openclPreconditioner; \ template class openclPreconditioner; \ template class openclPreconditioner; \ - template class openclPreconditioner; + template class openclPreconditioner; \ + template class openclPreconditioner; INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/opencl/openclSolverBackend.cpp b/opm/simulators/linalg/gpubridge/opencl/openclSolverBackend.cpp index 01f092b2784..13b6ad91d17 100644 --- a/opm/simulators/linalg/gpubridge/opencl/openclSolverBackend.cpp +++ b/opm/simulators/linalg/gpubridge/opencl/openclSolverBackend.cpp @@ -713,7 +713,8 @@ solve_system(std::shared_ptr> matrix, template class openclSolverBackend; \ template class openclSolverBackend; \ template class openclSolverBackend; \ - template class openclSolverBackend; + template class openclSolverBackend; \ + template class openclSolverBackend; INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/rocm/rocalutionSolverBackend.cpp b/opm/simulators/linalg/gpubridge/rocm/rocalutionSolverBackend.cpp index 460959983be..6921796dadb 100644 --- a/opm/simulators/linalg/gpubridge/rocm/rocalutionSolverBackend.cpp +++ b/opm/simulators/linalg/gpubridge/rocm/rocalutionSolverBackend.cpp @@ -243,7 +243,8 @@ solve_system(std::shared_ptr> matrix, template class rocalutionSolverBackend; \ template class rocalutionSolverBackend; \ template class rocalutionSolverBackend; \ - template class rocalutionSolverBackend; + template class rocalutionSolverBackend; \ + template class rocalutionSolverBackend; INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/rocm/rocsparseBILU0.cpp b/opm/simulators/linalg/gpubridge/rocm/rocsparseBILU0.cpp index 0ae206a079b..e677b792703 100644 --- a/opm/simulators/linalg/gpubridge/rocm/rocsparseBILU0.cpp +++ b/opm/simulators/linalg/gpubridge/rocm/rocsparseBILU0.cpp @@ -472,7 +472,8 @@ apply(const Scalar& y, Scalar& x, [[maybe_unused]] WellContributions& we template class rocsparseBILU0; \ template class rocsparseBILU0; \ template class rocsparseBILU0; \ - template class rocsparseBILU0; + template class rocsparseBILU0; \ + template class rocsparseBILU0; INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/rocm/rocsparseCPR.cpp b/opm/simulators/linalg/gpubridge/rocm/rocsparseCPR.cpp index 1582c8ba0b2..e159a4eb3ca 100644 --- a/opm/simulators/linalg/gpubridge/rocm/rocsparseCPR.cpp +++ b/opm/simulators/linalg/gpubridge/rocm/rocsparseCPR.cpp @@ -518,7 +518,8 @@ apply(const Scalar& y, template class rocsparseCPR; \ template class rocsparseCPR; \ template class rocsparseCPR; \ - template class rocsparseCPR; + template class rocsparseCPR; \ + template class rocsparseCPR; INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/rocm/rocsparsePreconditioner.cpp b/opm/simulators/linalg/gpubridge/rocm/rocsparsePreconditioner.cpp index 3e7e306ac7a..65b6f568cb7 100644 --- a/opm/simulators/linalg/gpubridge/rocm/rocsparsePreconditioner.cpp +++ b/opm/simulators/linalg/gpubridge/rocm/rocsparsePreconditioner.cpp @@ -83,7 +83,8 @@ setJacMat(const BlockedMatrix& jMat) template class rocsparsePreconditioner; \ template class rocsparsePreconditioner; \ template class rocsparsePreconditioner; \ - template class rocsparsePreconditioner; + template class rocsparsePreconditioner; \ + template class rocsparsePreconditioner; INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpubridge/rocm/rocsparseSolverBackend.cpp b/opm/simulators/linalg/gpubridge/rocm/rocsparseSolverBackend.cpp index 37f1d39a626..89401151d75 100644 --- a/opm/simulators/linalg/gpubridge/rocm/rocsparseSolverBackend.cpp +++ b/opm/simulators/linalg/gpubridge/rocm/rocsparseSolverBackend.cpp @@ -678,7 +678,8 @@ solve_system(std::shared_ptr> matrix, template class rocsparseSolverBackend; \ template class rocsparseSolverBackend; \ template class rocsparseSolverBackend; \ - template class rocsparseSolverBackend; + template class rocsparseSolverBackend; \ + template class rocsparseSolverBackend; INSTANTIATE_TYPE(double) diff --git a/opm/simulators/linalg/gpuistl/GpuDILU.cpp b/opm/simulators/linalg/gpuistl/GpuDILU.cpp index 18a2f348e20..9c4916e3f8b 100644 --- a/opm/simulators/linalg/gpuistl/GpuDILU.cpp +++ b/opm/simulators/linalg/gpuistl/GpuDILU.cpp @@ -551,6 +551,7 @@ INSTANTIATE_CUDILU_DUNE(double, 3); INSTANTIATE_CUDILU_DUNE(double, 4); INSTANTIATE_CUDILU_DUNE(double, 5); INSTANTIATE_CUDILU_DUNE(double, 6); +INSTANTIATE_CUDILU_DUNE(double, 7); INSTANTIATE_CUDILU_DUNE(float, 1); INSTANTIATE_CUDILU_DUNE(float, 2); @@ -558,3 +559,4 @@ INSTANTIATE_CUDILU_DUNE(float, 3); INSTANTIATE_CUDILU_DUNE(float, 4); INSTANTIATE_CUDILU_DUNE(float, 5); INSTANTIATE_CUDILU_DUNE(float, 6); +INSTANTIATE_CUDILU_DUNE(float, 7); diff --git a/opm/simulators/linalg/gpuistl/GpuSeqILU0.cpp b/opm/simulators/linalg/gpuistl/GpuSeqILU0.cpp index 381f2fa68b5..8b1db37aa8c 100644 --- a/opm/simulators/linalg/gpuistl/GpuSeqILU0.cpp +++ b/opm/simulators/linalg/gpuistl/GpuSeqILU0.cpp @@ -334,6 +334,7 @@ INSTANTIATE_GPUSEQILU0_DUNE(double, 3); INSTANTIATE_GPUSEQILU0_DUNE(double, 4); INSTANTIATE_GPUSEQILU0_DUNE(double, 5); INSTANTIATE_GPUSEQILU0_DUNE(double, 6); +INSTANTIATE_GPUSEQILU0_DUNE(double, 7); template class ::Opm::gpuistl::GpuSeqILU0, ::Opm::gpuistl::GpuVector, ::Opm::gpuistl::GpuVector>; @@ -344,6 +345,7 @@ INSTANTIATE_GPUSEQILU0_DUNE(float, 3); INSTANTIATE_GPUSEQILU0_DUNE(float, 4); INSTANTIATE_GPUSEQILU0_DUNE(float, 5); INSTANTIATE_GPUSEQILU0_DUNE(float, 6); +INSTANTIATE_GPUSEQILU0_DUNE(float, 7); template class ::Opm::gpuistl::GpuSeqILU0, ::Opm::gpuistl::GpuVector, ::Opm::gpuistl::GpuVector>; diff --git a/opm/simulators/linalg/gpuistl/OpmGpuILU0.cpp b/opm/simulators/linalg/gpuistl/OpmGpuILU0.cpp index 25a678fc9b5..8e831961cce 100644 --- a/opm/simulators/linalg/gpuistl/OpmGpuILU0.cpp +++ b/opm/simulators/linalg/gpuistl/OpmGpuILU0.cpp @@ -448,6 +448,7 @@ INSTANTIATE_GPUILU_DUNE(double, 3); INSTANTIATE_GPUILU_DUNE(double, 4); INSTANTIATE_GPUILU_DUNE(double, 5); INSTANTIATE_GPUILU_DUNE(double, 6); +INSTANTIATE_GPUILU_DUNE(double, 7); INSTANTIATE_GPUILU_DUNE(float, 1); INSTANTIATE_GPUILU_DUNE(float, 2); @@ -455,3 +456,4 @@ INSTANTIATE_GPUILU_DUNE(float, 3); INSTANTIATE_GPUILU_DUNE(float, 4); INSTANTIATE_GPUILU_DUNE(float, 5); INSTANTIATE_GPUILU_DUNE(float, 6); +INSTANTIATE_GPUILU_DUNE(float, 7); diff --git a/opm/simulators/linalg/gpuistl/detail/gpusparse_matrix_operations.cu b/opm/simulators/linalg/gpuistl/detail/gpusparse_matrix_operations.cu index 9413658ff1e..0540930c393 100644 --- a/opm/simulators/linalg/gpuistl/detail/gpusparse_matrix_operations.cu +++ b/opm/simulators/linalg/gpuistl/detail/gpusparse_matrix_operations.cu @@ -194,12 +194,14 @@ INSTANTIATE_KERNEL_WRAPPERS_WITH_SCALAR_AND_BLOCKSIZE(float, 3); INSTANTIATE_KERNEL_WRAPPERS_WITH_SCALAR_AND_BLOCKSIZE(float, 4); INSTANTIATE_KERNEL_WRAPPERS_WITH_SCALAR_AND_BLOCKSIZE(float, 5); INSTANTIATE_KERNEL_WRAPPERS_WITH_SCALAR_AND_BLOCKSIZE(float, 6); +INSTANTIATE_KERNEL_WRAPPERS_WITH_SCALAR_AND_BLOCKSIZE(float, 7); INSTANTIATE_KERNEL_WRAPPERS_WITH_SCALAR_AND_BLOCKSIZE(double, 1); INSTANTIATE_KERNEL_WRAPPERS_WITH_SCALAR_AND_BLOCKSIZE(double, 2); INSTANTIATE_KERNEL_WRAPPERS_WITH_SCALAR_AND_BLOCKSIZE(double, 3); INSTANTIATE_KERNEL_WRAPPERS_WITH_SCALAR_AND_BLOCKSIZE(double, 4); INSTANTIATE_KERNEL_WRAPPERS_WITH_SCALAR_AND_BLOCKSIZE(double, 5); INSTANTIATE_KERNEL_WRAPPERS_WITH_SCALAR_AND_BLOCKSIZE(double, 6); +INSTANTIATE_KERNEL_WRAPPERS_WITH_SCALAR_AND_BLOCKSIZE(double, 7); #define INSTANTIATE_KERNEL_WRAPPER_WITH_SCALAR(T) \ template Opm::gpuistl::GpuBuffer Opm::gpuistl::detail::getDiagPtrs( \ diff --git a/opm/simulators/linalg/gpuistl/detail/gpusparse_matrix_utilities.hpp b/opm/simulators/linalg/gpuistl/detail/gpusparse_matrix_utilities.hpp index c5ee59041e2..df6bd455a51 100644 --- a/opm/simulators/linalg/gpuistl/detail/gpusparse_matrix_utilities.hpp +++ b/opm/simulators/linalg/gpuistl/detail/gpusparse_matrix_utilities.hpp @@ -247,7 +247,8 @@ validateVectorMatrixSizes(size_t vectorSize, size_t matrixBlockSize, size_t matr INSTANTIATE_SPARSE_MATRIX_DUNE_OPERATIONS(CLASS_NAME, T, 3); \ INSTANTIATE_SPARSE_MATRIX_DUNE_OPERATIONS(CLASS_NAME, T, 4); \ INSTANTIATE_SPARSE_MATRIX_DUNE_OPERATIONS(CLASS_NAME, T, 5); \ - INSTANTIATE_SPARSE_MATRIX_DUNE_OPERATIONS(CLASS_NAME, T, 6) + INSTANTIATE_SPARSE_MATRIX_DUNE_OPERATIONS(CLASS_NAME, T, 6); \ + INSTANTIATE_SPARSE_MATRIX_DUNE_OPERATIONS(CLASS_NAME, T, 7); } // namespace Opm::gpuistl::detail diff --git a/opm/simulators/linalg/gpuistl/detail/preconditionerKernels/DILUKernels.cu b/opm/simulators/linalg/gpuistl/detail/preconditionerKernels/DILUKernels.cu index 4a7780a783c..9810ca2afae 100644 --- a/opm/simulators/linalg/gpuistl/detail/preconditionerKernels/DILUKernels.cu +++ b/opm/simulators/linalg/gpuistl/detail/preconditionerKernels/DILUKernels.cu @@ -747,12 +747,14 @@ INSTANTIATE_KERNEL_WRAPPERS(float, 3); INSTANTIATE_KERNEL_WRAPPERS(float, 4); INSTANTIATE_KERNEL_WRAPPERS(float, 5); INSTANTIATE_KERNEL_WRAPPERS(float, 6); +INSTANTIATE_KERNEL_WRAPPERS(float, 7); INSTANTIATE_KERNEL_WRAPPERS(double, 1); INSTANTIATE_KERNEL_WRAPPERS(double, 2); INSTANTIATE_KERNEL_WRAPPERS(double, 3); INSTANTIATE_KERNEL_WRAPPERS(double, 4); INSTANTIATE_KERNEL_WRAPPERS(double, 5); INSTANTIATE_KERNEL_WRAPPERS(double, 6); +INSTANTIATE_KERNEL_WRAPPERS(double, 7); #define INSTANTIATE_SOLVE_LEVEL_SET_SPLIT(blocksize, LinearSolverScalar, MatrixScalar, DiagonalScalar) \ template void solveUpperLevelSetSplit( \ @@ -785,5 +787,6 @@ INSTANTIATE_SOLVE_LEVEL_SET_SPLIT_ALL(3); INSTANTIATE_SOLVE_LEVEL_SET_SPLIT_ALL(4); INSTANTIATE_SOLVE_LEVEL_SET_SPLIT_ALL(5); INSTANTIATE_SOLVE_LEVEL_SET_SPLIT_ALL(6); +INSTANTIATE_SOLVE_LEVEL_SET_SPLIT_ALL(7); } // namespace Opm::gpuistl::detail::DILU diff --git a/opm/simulators/linalg/gpuistl/detail/preconditionerKernels/ILU0Kernels.cu b/opm/simulators/linalg/gpuistl/detail/preconditionerKernels/ILU0Kernels.cu index e66c42f8a56..e134f6c57e9 100644 --- a/opm/simulators/linalg/gpuistl/detail/preconditionerKernels/ILU0Kernels.cu +++ b/opm/simulators/linalg/gpuistl/detail/preconditionerKernels/ILU0Kernels.cu @@ -512,7 +512,8 @@ LUFactorizationSplit(InputScalar* srcReorderedLowerMat, INSTANTIATE_KERNEL_WRAPPERS(T, 3); \ INSTANTIATE_KERNEL_WRAPPERS(T, 4); \ INSTANTIATE_KERNEL_WRAPPERS(T, 5); \ - INSTANTIATE_KERNEL_WRAPPERS(T, 6); + INSTANTIATE_KERNEL_WRAPPERS(T, 6); \ + INSTANTIATE_KERNEL_WRAPPERS(T, 7); INSTANTIATE_BLOCK_SIZED_KERNEL_WRAPPERS(float) INSTANTIATE_BLOCK_SIZED_KERNEL_WRAPPERS(double) @@ -554,4 +555,5 @@ INSTANTIATE_MIXED_PRECISION_KERNEL_WRAPPERS(3); INSTANTIATE_MIXED_PRECISION_KERNEL_WRAPPERS(4); INSTANTIATE_MIXED_PRECISION_KERNEL_WRAPPERS(5); INSTANTIATE_MIXED_PRECISION_KERNEL_WRAPPERS(6); +INSTANTIATE_MIXED_PRECISION_KERNEL_WRAPPERS(7); } // namespace Opm::gpuistl::detail::ILU0 diff --git a/opm/simulators/linalg/gpuistl/detail/preconditionerKernels/JacKernels.cu b/opm/simulators/linalg/gpuistl/detail/preconditionerKernels/JacKernels.cu index 8080e227ee1..3b9ef9d32b7 100644 --- a/opm/simulators/linalg/gpuistl/detail/preconditionerKernels/JacKernels.cu +++ b/opm/simulators/linalg/gpuistl/detail/preconditionerKernels/JacKernels.cu @@ -78,11 +78,13 @@ INSTANTIATE_KERNEL_WRAPPERS(float, 3); INSTANTIATE_KERNEL_WRAPPERS(float, 4); INSTANTIATE_KERNEL_WRAPPERS(float, 5); INSTANTIATE_KERNEL_WRAPPERS(float, 6); +INSTANTIATE_KERNEL_WRAPPERS(float, 7); INSTANTIATE_KERNEL_WRAPPERS(double, 1); INSTANTIATE_KERNEL_WRAPPERS(double, 2); INSTANTIATE_KERNEL_WRAPPERS(double, 3); INSTANTIATE_KERNEL_WRAPPERS(double, 4); INSTANTIATE_KERNEL_WRAPPERS(double, 5); INSTANTIATE_KERNEL_WRAPPERS(double, 6); +INSTANTIATE_KERNEL_WRAPPERS(double, 7); } // namespace Opm::gpuistl::detail::JAC