Commit Graph

1076 Commits

Author SHA1 Message Date
Arne Morten Kvarving
e620d9d044 rocaluationSolverBackend: template Scalar type 2024-05-24 14:16:36 +02:00
Arne Morten Kvarving
0b22b62205 amgclSolverBackend: template Scalar type 2024-05-24 14:16:36 +02:00
Arne Morten Kvarving
23250b87e3 cusparseSolverBackend: template Scalar type 2024-05-24 14:16:34 +02:00
Arne Morten Kvarving
18f42b51b2 openclSolverBackend: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
d0773ef4f7 BdaSolver: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
e03f2394b9 BdaSolver.hpp: drop indent for namespace 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
7e1f4629ed CPR: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
1f39e6a9a9 BISAI: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
8ea523fa68 BILU0: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
b75ea188ee Preconditioner: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
05a89d1e96 cuWellContributions: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
d2637e53ea rocsparseWellContributions: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
ddcfcf681d openclWellContributions: template Scalar type 2024-05-24 14:09:11 +02:00
Arne Morten Kvarving
ff39bc3b03 WellContribution: template Scalar type 2024-05-24 14:09:11 +02:00
Arne Morten Kvarving
216f0bea0d MultisegmentWellContribution: template Scalar type 2024-05-24 14:09:11 +02:00
Arne Morten Kvarving
ba1c6db855 OpenclKernels: template Scalar type 2024-05-24 14:09:11 +02:00
Arne Morten Kvarving
be59203179 OpenclMatrix: template Scalar type 2024-05-24 14:09:11 +02:00
Arne Morten Kvarving
5fbd7635cd Matrix: template Scalar type 2024-05-24 14:09:11 +02:00
Arne Morten Kvarving
25374b0e54 BlockMatrix: template Scalar type 2024-05-24 14:09:10 +02:00
Arne Morten Kvarving
b9ee637d78 PreconditionerFactory: use Scalar type from operator 2024-05-24 14:03:28 +02:00
Arne Morten Kvarving
b7bc7b7bf5 Pressure(Bhp)TransferPolicy: template Scalar type 2024-05-24 14:03:28 +02:00
Bård Skaflestad
6f094c558a
Merge pull request #5256 from BigDataAccelerate/overlap_copy_jacmat_gpu
Overlap creation of jacobian matrix with GPU data transfers
2024-05-24 13:11:27 +02:00
Arne Morten Kvarving
60e91a0fb5 amgclSolverBackend: fix for block_size == 1 2024-05-23 13:41:26 +02:00
Arne Morten Kvarving
bf93915101 WellOperators: use field type 2024-05-22 15:39:24 +02:00
Arne Morten Kvarving
0f685d6b44 WellOperators: fix indent
also some formatting fixes, using instead of typedef
2024-05-22 15:30:48 +02:00
Bård Skaflestad
2fe957ca6c
Merge pull request #5368 from multitalentloes/fix_typo_cuda_aware_mpi
fix typo that would cause crash cuda aware openmpi
2024-05-21 11:15:00 +02:00
Tobias Meyer Andersen
9d6dcb00a3 fix typo that would cause crash cuda aware openmpi 2024-05-21 10:20:02 +02:00
Arne Morten Kvarving
ee1c531431 InitStateEquil: remove template parameter from Comm and use Parallel::Communication directly
in the process this quells a deprecation warning for
Dune::CollectiveCommunication usage
2024-05-15 11:20:29 +02:00
Tobias Meyer Andersen
73746b56bc Resolve warning delete-abstract-non-virtual-dtor 2024-05-15 10:00:14 +02:00
Tobias Meyer Andersen
e9d6b326cc Add HIP support for AMD GPUs
This commits adds cmake functionality that can
hipify the cuistl framework to support AMD GPUs.

Some tests have been written as HIP does not mirror
CUDA exactly.

CONVERT_CUDA_TO_HIP is the new CMAKE argument.
CMAKE version is increased to include HIP
as a language (3.21 required).

A macro is added to create a layer of indirection
that will make only cuistl files that have been
changed rehipified.

Some BDA stuff is extracted to make sure CUDA
is not accidentally included.
2024-05-06 15:56:53 +02:00
Tobias Meyer Andersen
d5c088bb20 remove unused headers 2024-05-03 13:45:24 +02:00
Tobias Meyer Andersen
d795561100 remove usage of thrust 2024-05-03 12:52:27 +02:00
Atgeirr Flø Rasmussen
da5f20a0d9
Merge pull request #5145 from multitalentloes/add_gpu_direct
Add GPU Direct
2024-04-29 14:08:25 +02:00
Tobias Meyer Andersen
f4b9e0a3a8 add safe conversion 2024-04-17 14:31:07 +02:00
Tobias Meyer Andersen
29cc7c4925 make variable naming convention more consistent 2024-04-17 13:49:08 +02:00
Tobias Meyer Andersen
2eefedf661 remove error logging in std::cerr 2024-04-17 13:46:49 +02:00
Tobias Meyer Andersen
ccd014cc1a remove some usage of this-> 2024-04-17 13:28:30 +02:00
Tobias Meyer Andersen
a649bef271 update GPU direct support check 2024-04-17 13:28:30 +02:00
Tobias Meyer Andersen
7235f34f0e Add classes handling correct MPI implementation
Make some changes to Georgs original code:
dynamically allocated arrays with std::vectors instead
Implement new class structure handling what
MPI communication implementation to use
create extra scopes to avoid reuse of index variable i

Update related tests:
Update test_cuowneroverlapcopy to account for new
class strucutre
Also remove line that invalidates the MPI tests for multiple processes
2024-04-17 13:28:30 +02:00
Georg Zitzlsberger
eb6f9dc1f9 Prototype implementation of CUDA aware MPI 2024-04-17 13:28:30 +02:00
Arne Morten Kvarving
7eba120662 avoid including MultisegmentWellContribution in WellContributions.hpp 2024-04-17 08:11:47 +02:00
Atgeirr Flø Rasmussen
d3b22323f1
Merge pull request #5284 from multitalentloes/fix_fast_amg_wrapper
Fix fast amg wrapper and generalize RebuildOnUpdatePreconditioner
2024-04-17 08:05:02 +02:00
Tobias Meyer Andersen
296f41ecc0 Make function that infers templates, avoid use of new 2024-04-16 15:39:17 +02:00
Arne Morten Kvarving
7311948b89 openCl preconditioners: make argument orders consistent 2024-04-16 09:39:56 +02:00
Arne Morten Kvarving
34e94256be Preconditioner: replace if nest with switch 2024-04-16 09:39:48 +02:00
Arne Morten Kvarving
cc5f362fdc changed: make PreconditionerType an enum class
this to avoid symbol clashes with the implementations.
while at it rename it to Type as Preconditioner::PreconditionerType is
redundant
2024-04-16 09:06:13 +02:00
Tobias Meyer Andersen
9e7b7b3e40 clang-format PreconditionerWithUpdate.hpp 2024-04-15 16:28:37 +02:00
Tobias Meyer Andersen
9ab15e3ff9 bugfix: make famg reconstruct on update 2024-04-15 16:24:43 +02:00
Tobias Meyer Andersen
0079a17889 re-enable DuneILU for multiprocess 2024-04-15 16:06:37 +02:00
Tobias Meyer Andersen
d97d7ba732 add some documentation 2024-04-15 15:41:58 +02:00
Tobias Meyer Andersen
e275c637f5 Proof Of Concept generic Preconditioner with update 2024-04-15 15:27:37 +02:00
Atgeirr Flø Rasmussen
4f53ea512b
Merge pull request #5028 from multitalentloes/update_prec_factory
Update prec factory
2024-04-15 14:09:58 +02:00
Tobias Meyer Andersen
b45c6cebbe update variable names 2024-04-15 10:36:05 +02:00
Tobias Meyer Andersen
2815a8db86 update variable and template names 2024-04-15 08:32:18 +02:00
Arne Morten Kvarving
0aacefeeec adjust to Parameters::isSet change 2024-04-15 08:12:05 +02:00
Razvan Nane
cc1dfca9e0 add support for single thread copy 2024-04-12 20:17:38 +02:00
Tobias Meyer Andersen
2a7251efc5 change pointers to const references 2024-04-12 15:39:35 +02:00
Tobias Meyer Andersen
8177400602 clang-format PreconditionerFactory_impl 2024-04-11 15:09:09 +02:00
Tobias Meyer Andersen
3d9b3a3013 clang-format PreconditionerWIthUpdate 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
1685f928f7 add RebuildOnUpdate for single process preconditioners. Also refactor wrapPreconditioner to match type of wrapper 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
6cfe647c81 clean up and fix multiprocess RebuildOnUpdate wrapper 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
71d58afc0e Add a valid wrapper through OwningBlockPreconditioner that rebuiilds the preconditioner on updates. Still has excessive matrix copy and misses a wrapper function 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
6b73856fd9 update comments 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
df401e52b8 add jac smoother 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
6c0ee61d6f add ILUn smoother 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
fd6319fe38 add SSOR smoother 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
f6c539f819 add SOR smoother 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
b02e001ae3 add gs preconditioner for amg and kamg 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
030720f855 add dune ILU0 for multiprocess simulations 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
8b5ab973e2 Add dune ILU when using only one process 2024-04-11 15:07:17 +02:00
Arne Morten Kvarving
078b0e8679 remove macro EWOMS_GET_PARAM 2024-04-05 14:54:53 +02:00
Arne Morten Kvarving
0161d69660 adjust to removal of EWOMS_GET_PARAM 2024-04-05 14:02:28 +02:00
Bård Skaflestad
bdb93b6e62 Merge pull request #890 from akva2/remove_ewoms_register_param_macro
Remove ewoms register param macro
2024-04-05 12:42:27 +02:00
Arne Morten Kvarving
6fba1a95c9 adjust to removal of EWOMS_REGISTER_PARAM 2024-04-05 12:24:48 +02:00
Arne Morten Kvarving
fdab87d336
Merge pull request #5255 from BigDataAccelerate/fix_dep_rocm_ocl
Bug fix: remove dependencies for rocm & cuda on opencl to run block Jacobi ILU
2024-04-05 12:02:30 +02:00
Arne Morten Kvarving
48fa0f3c59 drop macro EWOMS_REGISTER_PARAM 2024-04-05 10:05:30 +02:00
Arne Morten Kvarving
6103383c1a fixed: inconsistent parameter setups
registered as int and obtained as unsigned, or registered
as Scalar and obtained as int
2024-04-04 14:34:37 +02:00
Arne Morten Kvarving
46c3402eba adjust to EWOMS_PARAM_IS_SET macro removal 2024-04-03 19:54:45 +02:00
Razvan Nane
b0157def17 enable multithreaded copy only when openmp found 2024-04-03 15:29:32 +02:00
Razvan Nane
411a3978b6 OPT: overlap create jacMat with copy to GPU 2024-03-15 11:25:38 +01:00
Razvan Nane
0fcad4b0fc Bug fix: remove dep rocm & cuda on opencl for blockJacobi ILU 2024-03-13 16:47:55 +01:00
Markus Blatt
0c87b3386a
Merge pull request #5159 from akva2/quell_rocsparse_warnings
Quell rocsparse warnings
2024-03-08 16:44:40 +01:00
Arne Morten Kvarving
6949abbf0d move ebos/eclbasevanguard.hh to opm/simulators/flow 2024-03-08 12:39:48 +01:00
Arne Morten Kvarving
f95c114716 move ebos/alucartesianindexmapper.hh to opm/simulators/flow 2024-02-23 15:27:28 +01:00
Arne Morten Kvarving
991f89816e rename EclWellModel property to WellModel 2024-02-23 10:24:53 +01:00
Arne Morten Kvarving
b389e57d87 ISTLSolver: fix profiling timer names 2024-02-06 14:12:02 +01:00
Arne Morten Kvarving
917f0bca72 ISTLSolver: remove reference to ebos in comments 2024-02-06 14:03:38 +01:00
Arne Morten Kvarving
7a7d4435a4 WellOperators.hpp: fix comment 2024-02-06 14:03:08 +01:00
Arne Morten Kvarving
a30ed77094 quell rocsparse warnings 2024-02-02 22:50:40 +01:00
Arne Morten Kvarving
b6e47ab1e7 ISTLSolverEbos: rename to ISTLSolver 2024-02-01 15:49:40 +01:00
Arne Morten Kvarving
5bca6c2703 ISTLSolverEbosBda: rename to ISTLSolverBda 2024-02-01 15:49:40 +01:00
Bård Skaflestad
71b383d8e7
Merge pull request #5142 from akva2/blackoilmodel_remove_ebos
BlackoilModel: remove Ebos from class names
2024-02-01 12:34:12 +01:00
Arne Morten Kvarving
dd92a7446c BlackoilModelParametersEbos: rename to BlackoilModelParameters 2024-02-01 09:05:40 +01:00
Arne Morten Kvarving
ce4f138a92 header cleanups 2024-02-01 09:04:21 +01:00
Bård Skaflestad
859db850c0
Merge pull request #5111 from lisajulia/feature/deterministic-indicesSyncer
Construct the matrices in the AMG hierarchy with deterministic indices.
2024-01-29 13:37:54 +01:00
Lisa Julia Nebel
6dfa9b1b76 Add comment on trailing return type with decltype that is used for detecting the signature of the coarsen function of the Dune::Amg::IndicesCoarsener 2024-01-26 14:29:19 +01:00
Lisa Julia Nebel
74608147c0 Add comment on trailing return type with decltype that is used for detecting the existence of setUseFixedOrder member function 2024-01-26 14:29:15 +01:00
Lisa Julia Nebel
5b50a4801f Construct the matrices in the AMG hierarchy (created in the twolevelmethod) with deterministic indices if possible.
The function 'coarsen' for the coarser level is called with the respective flag if it is defined. Then the matrices in the AMG hierarchy are constructed with deterministic indices.
If it is not defined yet, it is called without the flag and the matrices in the AMG hierarchy are constructed with non-deterministic indices.
2024-01-26 13:51:41 +01:00
Lisa Julia Nebel
5d8fefca33 Add comment on trailing return type with decltype that is used for detecting existence of setUseFixedOrder member function 2024-01-25 16:04:41 +01:00
Atgeirr Flø Rasmussen
2626fbb84b
Merge pull request #5002 from multitalentloes/add_cudilu
Add cudilu
2024-01-25 15:43:39 +01:00
Tobias Meyer Andersen
4b0dd54f15 Add CUDA implementation of the DILU
preconditioner. Uses graph coloring to exploit
parallelism in upper and triangular solves when
computing a diagonal approximate inverse of a
sparse matrix. Supports blocksizes up to 3.
2024-01-25 14:26:38 +01:00
Lisa Julia Nebel
b99252e2b8 Construct the matrices in the AMG hierarchy with deterministic indices if possible.
The function 'setUseFixedOrder' is called if it is defined and the matrices in the AMG hierarchy are constructed with deterministic indices.
If its not defined yet, it is not called and the matrices in the AMG hierarchy are constructed with non-deterministic indices.
2024-01-25 11:32:51 +01:00
Lisa Julia Nebel
60b0a33bd4 Construct the matrices in the AMG hierarchy (created in the PreconditionerFactory) with deterministic indices if possible.
The function 'setUseFixedOrder' is called if it is defined and the matrices in the AMG hierarchy are constructed with deterministic indices.
If it is not defined yet, it is not called and the matrices in the AMG hierarchy are constructed with non-deterministic indices.
2024-01-25 11:32:09 +01:00
Atgeirr Flø Rasmussen
7c2f01996a Add cpr_trueimpesanalytic option for LinearSolver parameter. 2024-01-24 13:03:18 +01:00
Atgeirr Flø Rasmussen
ae838d0b84
Merge pull request #5103 from hnil/trueimpesanalytic
add analytic true impes
2024-01-18 22:51:57 +01:00
hnil
bec5a233eb removed more warings and a bug for strange index settings 2024-01-18 18:25:50 +01:00
hnil
cced62edc0 fixed warning 2024-01-18 18:18:42 +01:00
hnil
be27e2388d fixed name in cpp file 2024-01-18 11:40:59 +01:00
hnil
1900379343 changes to adjust to review comments 2024-01-18 10:37:48 +01:00
Atgeirr Flø Rasmussen
a52bcf51b1 Initialize the communication object in initialize(). 2024-01-17 12:39:52 +01:00
hnil
61329532a7 -- add true impes
-- moved code to hpp to avoid unnesseary logic
2024-01-12 15:33:09 +01:00
Arne Morten Kvarving
f2a2fc2938 add missing include 2023-11-22 13:18:56 +01:00
Tobias Meyer Andersen
ee95223b27 Use std::optional to only allocate reordered matrix when using multiple threads 2023-11-22 10:10:29 +01:00
Tobias Meyer Andersen
e22f4399a0 fix typo 2023-11-22 09:16:43 +01:00
Kai Bao
9f0fb32713 various cleaning up and refactoring for co2 ptflash simulation 2023-11-21 15:52:56 +01:00
Trine Mykkeltvedt
83cb5670b7 a simple 1D test demonstrating the usage of the PTFlash compostional modeling 2023-11-21 15:52:56 +01:00
Tobias Meyer Andersen
5f6c97ff3b add OpenMP parallelized version of DILU.
Implement graphcoloring to expose rows in level sets that that can be
executed in parallel during the sparse triangular solves.
Add copy of A matrix that is reordered to ensure continuous memory reads
when traversing the matrix in level set order.
TODO: add number of threads available as constructor argument in DILU
2023-11-21 15:41:53 +01:00
Tobias Meyer Andersen
e2a531dd65 replace loop with std function, remove print from test 2023-11-21 09:52:48 +01:00
Tobias Meyer Andersen
3cd1873771 add graph coloring 2023-11-20 16:57:56 +01:00
Tobias Meyer Andersen
54b7f9c44f GraphColoring.hpp: cosmetics 2023-11-20 13:06:40 +01:00
Tobias Meyer Andersen
9309f96d8f GraphColoring.hpp: reorder headers 2023-11-20 13:06:34 +01:00
Antonella Ritorto
166c31d5f8 Bugfix. Deprecated getCollectiveComminication warning 2023-10-31 08:40:46 +01:00
Razvan Nane
45d8750e93 Fix formatting and indentation 2023-10-26 09:45:48 +02:00
Razvan Nane
cd63cc83c2 Remove redundant cpu decomposition when using gpu 2023-10-26 06:40:06 +02:00
Bård Skaflestad
7a34c20120 Remove Leftover Debug Printout
This information already goes to the .DBG file so there's no need
to echo it to the main console as well.
2023-10-24 09:51:12 +02:00
jakobtorben
ab0ca76194 Add DILU preconditioner 2023-10-18 14:30:17 +02:00
Atgeirr Flø Rasmussen
8b480a0a49
Merge pull request #4852 from multitalentloes/cujac_preconditioner
Cujac preconditioner
2023-10-16 12:46:29 +02:00
Tobias Meyer Andersen
8b396fa3dc Update test properties of new tests using CUDA. Avoid comparison causing new warning 2023-10-16 11:31:00 +02:00
Tobias Meyer Andersen
533c5a1a3e Combine new diagonalMV kernels into one using
template arguements.
Use more consistent naming conventions.
Change printing function of CuVector from output
stream overload to toDebugString().
2023-10-16 09:53:02 +02:00
Markus Blatt
e9bb5d0539
Merge pull request #4582 from Tongdongq/rocsparse-separate-wells
RocsparseSolver separate wells
2023-10-13 15:33:03 +02:00
Tobias Meyer Andersen
c809819cbd Fuse kernels to optimize performance and update
the tests and documentation.
2023-10-13 10:31:17 +02:00
Tobias Meyer Andersen
fbeb006d45 Simplify and optimize the Jacobi preconditioner
apply. Fix .h and .cpp mistakes in cmake.
2023-10-13 10:31:17 +02:00
Tobias Meyer Andersen
1e4b0e97ee Add jacobi preconditioner that runs on the GPU.
Implement calls to cuBlas, cuSparse and implement necessary
CUDA kernels to perform a single iteration of the jacobi preconditioner.

Add tests that verify new kernels and the preconditioner in its totality.

The preconditioner is verified on 2x2 and 3x3 blocks, which as of now
are the only supported sizes. 1x1 are not supported because cuSparse
does not support it.
2023-10-13 10:31:17 +02:00
Arne Morten Kvarving
3e047ab9cd
Merge pull request #4927 from blattms/spelling-fix1
Fixed spelling: achived -> achieved
2023-10-13 08:25:07 +02:00
Markus Blatt
50815209a0 Fixed spelling: achive -> achieved 2023-10-12 22:01:12 +02:00
Kjetil Olsen Lye
628b69c83c
Casting to support {fmt} v10.
Due to issues with anonymous enums, newer versions of {fmt} (v10) do not seem to handle the implicit conversion from enum value to `int`. Hence we need a cast for `fmt::format`-calls involving `Matrix::block_matrix::rows` (or `cols`) to compile. This seems to only be relevant for one part of the code. 

For an isolated example, see https://github.com/kjetilly/fmt_fails_with_enum
2023-10-10 10:58:21 +02:00
Kjetil Olsen Lye
df0fdbbd0b
Removed call to deprecated cudaThreadExit
`cudaThreadExit` has been deprecated in favour of `cudaDeviceReset`, which is already being called.
2023-10-09 10:49:31 +02:00
Razvan Nane
dcc3bd70f0 Reinclude changes lost in adaptation to ISTLSolverEbosBda 2023-10-08 08:58:35 +02:00
Razvan Nane
e4abc12a05 Adapt rocsparse separate wells PR to changes made to ISTLSolverEbos 2023-10-08 08:58:35 +02:00
Razvan Nane
177a46366d Add <rocsparse> to accelerator-mode option in doc 2023-10-08 08:58:35 +02:00
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
Arne Morten Kvarving
97a52d25fe clean up some headers 2023-06-08 14:15:34 +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