Commit Graph

803 Commits

Author SHA1 Message Date
Tong Dong Qiu
b2fea287bc Print time to apply wells for verbosity>=3 2023-10-08 08:58:35 +02:00
Tong Dong Qiu
abce3a897c Only compile HIP kernel with hipcc 2023-10-08 08:58:35 +02:00
Tong Dong Qiu
ef6be5859e Restore old HAVE_CUDA value 2023-10-08 08:58:35 +02:00
Tong Dong Qiu
684397129b Make sure rocsparse can get wellcontributions 2023-10-08 08:58:35 +02:00
Tong Dong Qiu
cb20d041c3 Allow WellContributionsRocsparse to be used 2023-10-08 08:58:35 +02:00
Tong Dong Qiu
50ccea0880 Allow rocsparseSolver to choose deviceID 2023-10-08 08:58:35 +02:00
Tong Dong Qiu
9bef10a018 Set hipStream for rocsparseWellcontributions 2023-10-08 08:58:35 +02:00
Tong Dong Qiu
a49aaf53d2 Add new files rocsparseWellContributions
With HIP stdwell_apply kernel
MultisegmentWells are done on CPU via UMFPack
2023-10-08 08:58:35 +02:00
Justin Chang
48a4ddec3a
Revert hipStreamSynchronize placement in rocsparseSolverBackend.cpp 2023-10-06 09:38:44 -05:00
Justin Chang
b5d8c3b5f0 Added detailed HIP exception handling 2023-10-03 15:40:20 -05:00
Justin Chang
54d82d349e Removed OpenCL dependencies from rocsparse backend 2023-10-03 15:40:20 -05:00
Arne Morten Kvarving
eedfafe423 fixed: quell unused variable warning without OpenCL 2023-09-26 09:11:48 +02:00
Atgeirr Flø Rasmussen
e4e32defc4 Fix various errors and clean up the ISTLSolvers.
Much of this went undiscovered because the ISTLSolverEbosBda class
was not really used before due to the typo disabling it.
2023-09-25 09:03:59 +02:00
Atgeirr Flø Rasmussen
ad35b2a72f Adapt to changes made to ISTLSolverEbos. 2023-09-21 12:41:03 +02:00
Atgeirr Flø Rasmussen
7aa33058c4 Fix typo in macro usage. 2023-09-21 11:39:14 +02:00
Atgeirr Flø Rasmussen
cede2b4add Improving generality and output of hybrid approach. 2023-09-04 13:13:52 +02:00
Atgeirr Flø Rasmussen
efa50c3640 Check for multiple solvers before trying to use them. 2023-09-01 13:18:09 +02:00
Atgeirr Flø Rasmussen
758b4bbdb6 Use "hybrid" linear solver choice to get multi-option. 2023-09-01 13:18:09 +02:00
Franz Georg Fuchs
6ee90b3f8f Support for multiple linear solvers. 2023-09-01 13:18:06 +02:00
Atgeirr Flø Rasmussen
91c2e12a25 Document new input parameter. 2023-09-01 11:19:36 +02:00
Atgeirr Flø Rasmussen
99fca58dca Improvements from review. 2023-09-01 08:48:11 +02:00
Atgeirr Flø Rasmussen
151eac9110 Copy overlap data after local solve.
Also update intensive quantities in overlap afterwards.
2023-08-31 13:01:50 +02:00
Atgeirr Flø Rasmussen
961a5fa482 Avoid collective copyParValues() call in serial run. 2023-08-31 13:01:50 +02:00
Atgeirr Flø Rasmussen
e1dd2bf148 Add forceSerial parameter to ISTLSolverEbos.
Used for single-domain solves.
2023-08-31 13:01:50 +02:00
Arne Morten Kvarving
7562b5b70f ISTLSolverEbosBda: mark parameter maybe_unused 2023-08-15 12:18:41 +02:00
Arne Morten Kvarving
e0c664d162 BdaBridge: mark some more parameters maybe_unused 2023-08-15 12:18:41 +02:00
Arne Morten Kvarving
92fa9577da consistently use std::size_t 2023-08-15 09:32:10 +02:00
Bård Skaflestad
e59a53820a Bring WellContributions Declaration in Scope
This restores the build on machines which enable the BDA bridge,
but which do not have OpenCL installed.
2023-08-11 17:04:24 +02:00
Arne Morten Kvarving
0883d46d50 rename ISTLSolverEbosWithGpu to ISTLSolverEbosBda
BDA also includes CPU (amgcl) solvers
2023-08-11 11:00:07 +02:00
Arne Morten Kvarving
896cb8484d added: option to disable the BDA solvers 2023-08-11 11:00:07 +02:00
hnil
07fb18422d hopefully fixed compilation and linking problems with WITHGPU 2023-08-11 11:00:07 +02:00
hnil
63b9b01671 fixed includegards 2023-08-11 11:00:07 +02:00
hnil
68322c06e5 added forgotten GPU versions 2023-08-11 11:00:07 +02:00
hnil
d623695d2a - moded all bda spesific tings to separete class 2023-08-11 11:00:07 +02:00
hnil
66ff026008 remove use of hidden private defines for poly and alugrid
- fixed polygrid
- renamed executables to include blackoil in name
2023-08-08 15:30:05 +02:00
Atgeirr Flø Rasmussen
840dd9de90
Merge pull request #4752 from hnil/linearsolver_timing
-- added more timing to get better coverage of cpr solver
2023-07-27 15:14:10 +02:00
Atgeirr Flø Rasmussen
7c9d57cc84 Add code path for the no-MPI case. 2023-07-25 13:20:16 +02:00
Atgeirr Flø Rasmussen
0d2d8dfe21
Merge pull request #4734 from atgeirr/add-linear-system-size-printout
Add output of linear system sizes to DBG file.
2023-07-25 10:51:29 +02:00
Atgeirr Flø Rasmussen
30a9e02998 Add output of linear system sizes to DBG file. 2023-07-25 09:43:51 +02:00
hnil
c065d34d0e -- added more timing to get better coverage of amg solver
-- added includes needed
2023-07-24 12:28:08 +02:00
Arne Morten Kvarving
db41bfb55c ISTLSolverEbos: add missing include 2023-07-04 15:25:47 +02:00
Atgeirr Flø Rasmussen
cbfe25d0f0 Add NLDD nonlinear solver option. 2023-06-23 16:24:18 +02:00
Arne Morten Kvarving
c8924d67ca PreconditionerAdapter: use override 2023-06-21 08:59:03 +02:00
Atgeirr Flø Rasmussen
a2b96eaa8f Clean up linear solver parameters and ISTLSolverEbos. 2023-06-11 11:51:59 +02:00
Atgeirr Flø Rasmussen
7f96922c3c Ensure UMFPACK works with FlexibleSolver.
Every apply() call for UMFPACK must (for now) recreate the solver.
2023-06-09 15:37:31 +02:00
Atgeirr Flø Rasmussen
712a7c8131 Add utilities that will be needed for NLDD solvers.
Includes:
 - SubDomain struct,
 - simple partitioning utilities for testing,
 - some matrix and vector manipulation functions,
 - tests for the above.
2023-06-09 10:08:29 +02:00
Kjetil Olsen Lye
c478e46c8d Setting CUDA device for MPI runs. 2023-05-31 21:47:46 +02:00
Kjetil Olsen Lye
e35318b6bb
Removed unused block_size 2023-05-31 21:36:15 +02:00
Kjetil Olsen Lye
ea86e45fef SolverAdapter now takes a reference to scalar product. 2023-05-31 16:39:45 +02:00
Kjetil Olsen Lye
042172588d Added CuSeqILU0 as a parallel preconditioner as well. 2023-05-31 16:28:51 +02:00
Kjetil Olsen Lye
411bf6b0ca Added missing file 2023-05-31 15:52:50 +02:00
Kjetil Olsen Lye
ceb15e22e3 Expose CuISTL solver in FlexibleSolver. 2023-05-31 15:03:31 +02:00
Kjetil Olsen Lye
0269f7215c Added conversion preconditioner. 2023-05-31 14:55:48 +02:00
Kjetil Olsen Lye
90c9eedc79 Fixed typo in error message. 2023-05-31 14:03:59 +02:00
Kjetil Olsen Lye
dfb3ccb72b Typo in variable name. 2023-05-31 13:14:37 +02:00
Kjetil Olsen Lye
697c49a08b Documentation fixes. 2023-05-31 13:13:48 +02:00
Kjetil Olsen Lye
e8bc314e04 Documentation update. 2023-05-31 13:11:39 +02:00
Kjetil Olsen Lye
54598a44d5 Removed commented code line. 2023-05-30 11:50:02 +02:00
Kjetil Olsen Lye
bb9c51a6cc Cleaned up fiz_zero_diagonal.hpp and added documentation. 2023-05-30 11:50:02 +02:00
Kjetil Olsen Lye
9c28b485ef Added some missing header files. 2023-05-30 11:50:02 +02:00
Kjetil Olsen Lye
dea49a5406 Added CUILU0 to the PreconditionerFactory. 2023-05-30 11:50:02 +02:00
Kjetil Olsen Lye
dfc5331696 Marked constructor as explicit. 2023-05-30 11:50:02 +02:00
Kjetil Olsen Lye
84305a7a8d Added conversion preconditioner. 2023-05-30 11:50:02 +02:00
Kjetil Olsen Lye
b30e6d79d5 Added CuSeqILU0 with the preconditioner adapter. 2023-05-30 11:49:58 +02:00
Kjetil Olsen Lye
1bd2edb003 Renamed types. 2023-05-30 10:30:55 +02:00
Kjetil Olsen Lye
ed2747db1c Added sanity check. 2023-05-30 10:28:29 +02:00
Kjetil Olsen Lye
a8dd329307 Typo in documentation. 2023-05-30 10:14:30 +02:00
Kjetil Olsen Lye
0eb60e5336 Added test of size for copyToHost. 2023-05-30 10:03:54 +02:00
Kjetil Olsen Lye
b4b1a7b77f Added TODO for perf, renamed to bvector. 2023-05-30 09:54:22 +02:00
Kjetil Olsen Lye
70310160c0 Updated documentation to reflect limitations on int. 2023-05-16 10:01:39 +02:00
Kjetil Olsen Lye
b4aa427bbe Fixed documentation for vector_operations.hpp. 2023-05-16 09:56:21 +02:00
Kjetil Olsen Lye
bc3cb8c1db Fixed typo in documentation. 2023-05-15 11:32:25 +02:00
Kjetil Olsen Lye
1a6720996a Switched from size_t to std::size_t in safe_conversion.hpp. 2023-05-15 11:23:33 +02:00
Kjetil Olsen Lye
a703e9f7bd Removed exceptions from destructors. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
133a8897a0 Fixed indexing mistake in cuistl/vector_operations 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
046ef6cdc0 Replaced some macro size checks with function calls. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
e32b6ac0a8 Removed use of macro to check equal size. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
42b6a74ce5 Made CuSparseMatrix non-copyable. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
67f94ce8a3 Now handling sparsity pattern copying in a more elegant way. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
e14da5e053 Formatting fixes. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
cc8db08e83 Fixed unsafe type conversion. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
3f1cbbe1b8 Used safe conversion in CuVector 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
5fee5cece8 Inlined safe conversion functions. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
b6a67275c9 Rename to to_int and to_size_t 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
5373fb7a9c Added int to size_t conversion. Added some static_asserts. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
9418d5311d Added safe conversion from size_t to int. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
31e7ef04ba Added a CuSparse matrix wrapper. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
858d8b189b Added CuVector with tests. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
a6b0ffac70 Removed unused using statement. 2023-05-09 15:20:34 +02:00
Kjetil Olsen Lye
4228daf670 Added cusparseWarnIfError and CUSPARSE_WARN_IF_ERROR. 2023-05-09 15:20:34 +02:00
Kjetil Olsen Lye
81bc76384d Documentation fix. 2023-05-09 15:20:34 +02:00
Kjetil Olsen Lye
863647f592 Added cudaWarnIfError/OPM_CUDA_WARN_IF_ERROR 2023-05-09 15:20:34 +02:00
Kjetil Olsen Lye
cab0efeec5 Added cublasWarnIfError/CUBLAS_WARN_IF_ERROR. 2023-05-09 15:20:34 +02:00
Kjetil Olsen Lye
e4c0ce08dc Fixed documentation and formatting. 2023-05-09 15:20:34 +02:00
Kjetil Olsen Lye
b456fee209 Updated copyright headers. 2023-05-09 15:20:34 +02:00
Kjetil Olsen Lye
062d692c83 Added handles for cusparse and cublas. 2023-05-09 15:20:34 +02:00
Kjetil Olsen Lye
03a7fb6c9d Added error macros to check last CUDA error. 2023-05-09 15:20:34 +02:00
Kjetil Olsen Lye
a204708f37 Refactored CUDA error macros to call inline functions. 2023-05-09 15:20:34 +02:00
Kjetil Olsen Lye
bf9dd4e1dd Added safe call macros for CUDA, CuBlas and CuSparse. 2023-05-09 15:20:34 +02:00
Markus Blatt
8142788b58
Merge pull request #4406 from Tongdongq/rocsparse
Add rocsparseSolver
2023-04-12 12:07:58 +02:00
Arne Morten Kvarving
f2983ac6af minimum dune version required is now 2.7 2023-04-12 09:41:23 +02:00
Tong Dong Qiu
270dcd53fc Restore old HAVE_CUDA value 2023-04-11 14:30:20 +02:00
Tong Dong Qiu
bec51c4471 Prevent throwing in destructors 2023-04-06 13:14:19 +02:00
Tong Dong Qiu
f124792879 Detect ROCm version to suppress deprecated warning 2023-04-06 13:14:19 +02:00
Tong Dong Qiu
ed8f37ec82 Initialize HIP/rocsparse in constructor 2023-04-06 13:14:19 +02:00
Tong Dong Qiu
2c50951ddd Implement PR comments 2023-04-06 13:14:19 +02:00
Tong Dong Qiu
eaef4b8c85 Update CMakeLists for rocm 2023-04-06 13:14:19 +02:00
Tong Dong Qiu
91a3e238ce Add rocsparseSolver 2023-04-06 13:14:19 +02:00
Kai Bao
4b95123895 removing extra bracket to restore compilation 2023-04-03 14:15:16 +02:00
hnil
1773ea8229 fixed comment 2023-03-31 11:03:57 +02:00
hnil
528921ee6f - added flexiblegmres 2023-03-31 11:01:49 +02:00
Markus Blatt
b4b8e7aff1
Merge pull request #4558 from Tongdongq/move-cpu-decomposition
Only do CPU decomposition if needed, when using GPU
2023-03-29 12:54:38 +02:00
Bård Skaflestad
dcdb9413b4
Merge pull request #4565 from hnil/reduced_linearsolver_option
Reduced linearsolver option
2023-03-29 10:44:56 +02:00
Arne Morten Kvarving
5f6339f6fd FlexibleSolver: use std::make_shared 2023-03-29 09:50:09 +02:00
hnil
2e4d5ee57b - Remove wrong output if already converged 2023-03-29 09:47:02 +02:00
hnil
445e4f10fe fixed spelling 2023-03-29 08:55:31 +02:00
hnil
6b4082a1fe better messages 2023-03-28 13:54:09 +02:00
hnil
992edc1fec - added a reduced tolerance for linear for the nonlinear solver to accept the result 2023-03-28 11:43:00 +02:00
Tong Dong Qiu
0bf91691fe Only do CPU decomposition if needed, when using GPU 2023-03-27 11:43:26 +02:00
Arne Morten Kvarving
aaaf00f2fd adjust to timing macro header split 2023-03-01 13:18:16 +01:00
Atgeirr Flø Rasmussen
7acc6feb18 Make names more consistent. 2023-02-28 13:58:02 +01:00
hnil
79d7698dd8 added timeblocks in linear solver 2023-02-15 15:07:58 +01:00
hnil
fd98d8ea27 added timing blocks to most important parts 2023-02-15 09:41:37 +01:00
Atgeirr Flø Rasmussen
235a8a7f78 Avoid copying the matrix in the ILU preconditioner.
When the matrix already exists and has the correct sparsity structure
(which is assumed by the calling update()), we can copy just the data,
avoiding the need for allocation and matrix construction.
2023-02-02 14:10:16 +01:00
Bård Skaflestad
7c1cf03773
Merge pull request #4400 from blattms/use-cpr-from-datafile
Use CPR if specified in RUNSPEC / Make cprw the default
2023-01-19 16:59:48 +01:00
Markus Blatt
a69c8436ad Use cprw as default CPR variant if CPR is requested. 2023-01-19 15:54:33 +01:00
Markus Blatt
b67388e6f0 Use cpr if requested in RUNSPEC section of data file.
Can be overwritten using command line parameter `--linear-solver=...`.
2023-01-18 22:02:35 +01:00
Bård Skaflestad
171a591659 Tag Unused Parameter as [[maybe_unused]]
Suppresses warnings about unused arguments.  While here, also split
a long line for readability and include a number of standard headers
that were missing before.
2023-01-16 14:50:58 +01:00
Bård Skaflestad
11c0e085f9
Merge pull request #4193 from hnil/amgcl_fix
- fix compilation of amgcl bindings in bda by not doing anything for …
2023-01-16 11:23:39 +01:00
Arne Morten Kvarving
df5edfb96f BISAI: remove unnecessary iostream include 2023-01-03 15:25:00 +01:00
Arne Morten Kvarving
f00ebc8b1c setupPropertyTree: avoid use of sstream 2023-01-02 15:23:14 +01:00
Arne Morten Kvarving
48bdf6f14c add missing sstream includes 2023-01-02 15:21:42 +01:00
Arne Morten Kvarving
e25d77f705 WellContributions: avoid use of sstream 2023-01-02 15:19:40 +01:00
Arne Morten Kvarving
bcf64b4be8 PreconditionerFactory: avoid use of sstream 2023-01-02 15:19:26 +01:00
Arne Morten Kvarving
ccce1cfe86 OwningTwoLevelPreconditioner: avoid use of sstream 2023-01-02 15:19:08 +01:00
Arne Morten Kvarving
6d033fcf56 MILU: avoid use of sstream 2023-01-02 15:18:50 +01:00
Arne Morten Kvarving
4a0bdc38e1 ISTLSolverEbos: avoid use of sstream 2023-01-02 15:18:34 +01:00
Arne Morten Kvarving
52d871f998 FlexibleSolver: avoid use of sstream 2023-01-02 15:18:10 +01:00
Atgeirr Flø Rasmussen
ba734bc9ad Change default CPR preconditioner recreation behaviour. 2022-12-21 13:23:26 +01:00
Atgeirr Flø Rasmussen
3832b02367 Adjust default behaviours for CPR variants.
- Remove two unused parameters. CprEllSolvetype is never used, and CprEllMaxIter
   is not used correctly as is (if used, it should change the maximum iterations of
   the coarse solver, not the repeats of the preconditioner) and is better left for
   JSON file customization.
 - Make the default AMG setup for "cpr" (including "cpr_trueimpes" and "cpr_quasiimpes")
   match the setup for "cprw". In particular, beta = 0.0 (not 1e-4) and
   prolongationdamping = 1.0 (not 1.6).
 - Just as we override the default maximum number of linear iterations for cpr and cprw
   (unless the user actually specified on the command line) to 20 instead of 100, we
   change the default reduction to be 0.005 instead of 0.01.
2022-12-21 13:23:13 +01:00
Arne Morten Kvarving
f17a90170d use exception classes from opm-common 2022-12-13 12:56:13 +01:00
Tong Dong Qiu
a8e568f4c5 Moved initializing CUDA device to constructor 2022-11-21 15:54:14 +01:00
Tong Dong Qiu
5620b08033 Fix segfaults rocalutionSolver 2022-11-18 14:19:10 +01:00
Tong Dong Qiu
21b23b7aa4 Combine multiple defines into one 2022-11-18 13:09:39 +01:00
Tong Dong Qiu
65128d1616 Removed unused reordering functions, file, header inclusions 2022-11-17 09:38:23 +01:00
Tong Dong Qiu
35287a61ff Remove FPGASolver and references 2022-11-17 09:38:01 +01:00
Arne Morten Kvarving
bdb2738034 ISTLSolverEbos: instance for ALUGrid 2022-11-14 14:54:11 +01:00
Markus Blatt
4988f98060
Merge pull request #4178 from Tongdongq/rocalution
Add rocalutionSolver
2022-11-09 16:44:35 +01:00
Tong Dong Qiu
b51a4a863e Fix reduction calculation 2022-11-09 10:27:10 +01:00
Tong Dong Qiu
1dd6af15dc Print via fmt 2022-11-08 13:05:57 +01:00