Commit Graph

327 Commits

Author SHA1 Message Date
Razvan Nane
7e8528b43a Disable only CUDA when ROCm also selected 2023-10-11 13:29:40 +02:00
Razvan Nane
7673118f14 CUDA and HIP not allowed at the same time 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
ca210612e1 Fix hipErrorNoBinaryForGpu when hip_FOUND 2023-10-08 08:58:35 +02:00
Markus Blatt
5a2a97d21c [cmake] Always demand rocblas to be there when activating rocsparse
This was somehow only done for hip version >=5.3, but Debian bookworm
is missing rocblas and using hipcc 2.3.0 and therefore compilation failed there.
2023-10-02 17:14:43 +02:00
Vegard Kippe
4ff08ffd2d Added testcase for TUNING/TSINIT and NEXTSTEP - depends on https://github.com/OPM/opm-tests/pull/1028 2023-08-25 14:01:51 +02:00
Arne Morten Kvarving
e03600f6ef added: build system option to enable Tracy profiler 2023-08-15 15:57:06 +02:00
Arne Morten Kvarving
896cb8484d added: option to disable the BDA solvers 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
Bård Skaflestad
95d715b807 Add Parallel Calculation Support for WBPn/WPAVE
This commit adds a parallel calculation object derived from the serial
PAvgCalculator class.  This parallel version is aware of MPI
communicators and knows how to aggregate contributions from wells that
might be distributed across ranks.

We also add a wrapper class, ParallelWBPCalculation, which knows how to
exchange information from PAvgCalculatorCollection objects on different
ranks and, especially, how to properly prune inactive cells/connections.
2023-07-07 15:01:05 +02:00
Arne Morten Kvarving
c3847e8325 simplify cmake code for tuning tests
add a post command to the runSimulator script and use this to
execute the unit test at the end of the run
2023-07-03 09:05:45 +02:00
Arne Morten Kvarving
ab3f6474aa fixed: parallel super builds
commit e5e7ff7287 introduced a dependency on a generated header in a
header file. this is problematic with super-builds as there is no
explicit dependency for the simulator objects to these generated
headers.

with the ninja-generator it is smart enough to figure out this across
the subdirectories, but the make generator is not. hence we explicitly
add a dependency on the opmcommon target in this case. ideally we would
only depend on the generated header to allow compiling opmcommon and
simulator objects in parallel. however there is as far as i know no way to
depend on OUTPUT targets across subdirectories.
2023-06-30 14:58:31 +02:00
Bård Skaflestad
506e7a0fef Tag Parallel Unit Tests With Accurate Number of Processors
Otherwise, we risk oversubscribing the host system when running
multiple tests in parallel ("ctest --parallel").
2023-06-29 12:32:37 +02:00
Bård Skaflestad
77adc6ea3b Add Container for Dynamic WBPn Source Values
This commit adds a new container class,

    ParallelPAvgDynamicSourceData

which inherits from PAvgDynamicSourceData and provides a parallel
view of source contributions.  Member function

    collectLocalSources

will call the user-provided source term evaluation function for each
source location in its purview--typically those locations owned by
the current MPI rank.  Those values will be distributed to other MPI
ranks through member function synchroniseSources which will fill the
base class' 'src_' data member, and become available to clients
through read-only item spans.
2023-06-21 12:06:49 +02:00
Kjetil Olsen Lye
ceb15e22e3 Expose CuISTL solver in FlexibleSolver. 2023-05-31 15:03:31 +02:00
Kjetil Olsen Lye
b57f6ea551 Added gpu_cuda label to cuseqilu0. 2023-05-30 11:50:02 +02:00
Bård Skaflestad
3549d85d83
Merge pull request #4568 from totto82/2psolvent
Add gaswater solvent
2023-05-30 11:36:16 +02:00
Atgeirr Flø Rasmussen
e5672ee816
Merge pull request #4634 from kjetilly/cuistl_vector_matrix
Path to multigpu: Cuistl vector and matrix classes
2023-05-30 11:35:15 +02:00
Tor Harald Sandve
7cf3f69cf9 Add gaswater solvent
Fix some places that assumed 3p + solvent
2023-05-26 16:24:38 +02:00
Tor Harald Sandve
1592ef8bd2 solvent + foam simulator 2023-05-24 16:03:09 +02:00
Tor Harald Sandve
ee39117771 Add energy + precsalt simulator 2023-05-12 10:49:17 +02:00
Kjetil Olsen Lye
171a205125 Set gpu_cuda labels for cuistl tests. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
4600c4a126 Changed set_tests_properties to one call for cuistl. 2023-05-09 16:00:57 +02:00
Kjetil Olsen Lye
066e9ab39c Set gpu_cuda labels for CuISTL tests. 2023-05-09 15:49:00 +02:00
Arne Morten Kvarving
e28196f8af tag gpu tests with appropriate labels 2023-05-09 12:27:41 +02:00
Arne Morten Kvarving
5a9f010b1f fixed: conditionally use Development.XXX in python find module
the split into Development.Module and Development.Embed was is introduced in cmake 3.18
2023-05-02 09:18:57 +02:00
Arne Morten Kvarving
0b174cdf5a fixed: only search for Development.Module component for python
no embedding here
2023-04-27 12:37:10 +02:00
Tong Dong Qiu
a4cf50c1fc Move rocalution check to files_hook, because otherwise rocalutionSolverBackend.cpp is included before it is disabled 2023-04-06 13:14:19 +02:00
Tong Dong Qiu
9708a96501 Enable hipcc, works if other modules are compiled by clang++
Disable rocalution for hipcc/clang with rocm < 5.3
2023-04-06 13:14:19 +02:00
Tong Dong Qiu
675fab3534 Moved HIP config into config_hook.
Disabled hipcc as compiler.
2023-04-06 13:14:19 +02:00
Tong Dong Qiu
35ea8d7e30 Remove debug prints 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
Arne Morten Kvarving
1ac2263bfb fixed: wrong order of OpmInit and use of the USE_MPI option 2023-03-08 12:38:22 +01:00
Atgeirr Flø Rasmussen
8efb30d2bb
Merge pull request #4482 from totto82/addGasWaterEnergy
Add gaswater energy simulator
2023-02-28 08:01:06 +01:00
Tor Harald Sandve
5028e0fbf1 Add gaswater energy simulator 2023-02-23 09:25:50 +01:00
Markus Blatt
970e448590 [fix] For parallel build with serial hdf5 issue warning and skip hdf5.
We rely on parallel hdf5 for a parallel build of OPM flow. Otherwise
compilation will fail. Hence if this is a parallel build but only a
serial hdf5 library is found, we now issue an informative warning and
deactivate hdf5/parallel restart.

Closes OPM/opm-common#3405
2023-02-22 10:43:25 +01:00
Arne Morten Kvarving
8c3400f562 added: parallel support to HDF5File / HDF5Serializer 2023-02-16 14:49:38 +01:00
Tor Harald Sandve
5854b8a7a1 Support gas dissolution in water (Rsw)
- adapt to interface change in waterPvt()
- add gas + water + disgasw simulator

Note
- MSW is not supported
- EQUIL initialization is not supported
2022-12-21 13:13:52 +01:00
Tong Dong Qiu
21b23b7aa4 Combine multiple defines into one 2022-11-18 13:09:39 +01:00
Tong Dong Qiu
35287a61ff Remove FPGASolver and references 2022-11-17 09:38:01 +01:00
Arne Morten Kvarving
d7c468575b disable flow_alugrid in buildsystem if dune-alugrid was not found 2022-11-15 13:52:02 +01:00
Tong Dong Qiu
3055c0e921 Simplify CMake for rocalution 2022-11-03 15:47:38 +01:00
Tong Dong Qiu
7e2a6800de Add test for rocalutionSolver 2022-11-03 15:47:32 +01:00
Tong Dong Qiu
ea73a1bf3c Add rocalutionSolver 2022-11-02 15:55:07 +01:00
Arne Morten Kvarving
ecc36f6ce8 fix cmake handling
- use imported target for linking
- use separate damaris cmake script
- handle HAVE_DAMARIS config variable in the usual way

fixing issues when user does not provide an outputDir via a command_line

avoid adding damaris's command lines when we dont have damaris
2022-10-13 12:23:06 +02:00
Joshua Bowden
fa7af3540c Changes needed to add Damaris functionality. The current state is that we output the pressure field and we use both HDF5 and parallel HDF5.
Damaris initialization is added after InitMpi but before starting the simulation. Damaris will invoke a separate core for writing in
parallel and leave the rest of cores for the simulator. The main changes are in main where start_damaris and then in eclwriterm where
we use damaris to output the PRESSURE. To test Damaris one can use --enable-damaris-output=true and to use parallel HDF5 one can use
--enable-async-damaris-output=true (false is the default choice)
2022-10-13 12:23:06 +02:00
Atgeirr Flø Rasmussen
d7ba860bf1 Rename so that flow_blackoil_tpfa becomes flow_blackoil. 2022-10-03 14:14:15 +02:00
Atgeirr Flø Rasmussen
f6033702c9 Ensure DIFFUSE is supported.
This is only instantiated for two-phase gas/oil and for 3-phase blackoil.
Runtime safeguards have been added to avoid the mistake of running with
a simulator combination that silently ignores DIFFUSE.
2022-09-30 15:28:58 +02:00
Atgeirr Flø Rasmussen
923b1c555c Make flow_blackoil_tpfa.cpp an OPM Flow variant in the build system. 2022-08-09 14:53:58 +02:00
hnil
18b03f3546 working refactoring 2022-08-09 11:09:48 +02:00
Atgeirr Flø Rasmussen
93ce28e9a2
Merge pull request #3972 from ElyesAhmed/alugrid2
Alugrid2
2022-08-04 15:43:24 +02:00
Elyes Ahmed
5c2b60bcd0 rebasing 2022-07-28 20:40:34 +02:00
Arne Morten Kvarving
90a983f942 remove faulty brace 2022-07-27 18:26:30 +02:00
Håkon Hægland
8af152dcff Make Python opm package a namespace package
Convert the Python opm package from a regular package to a namespace
package such that opm-simulators and opm-common can contribute to the
package from different filesystem paths. In this way, the two packages
opm.simulators and opm.io (in opm-common) can have a different parent
filesystem path.
2022-06-10 11:37:15 +02:00
Håkon Hægland
101a5ada82 Also search for development artifacts
We should also search for development artifacts when combining
FindPython3.cmake with find_package(pybind11)
2022-06-10 11:31:48 +02:00
Håkon Hægland
3c0498e55f Dynamically update schedule from Python
Adds some test cases that show how injection properties in Opm::Schedule
can be dynamically modified from Python.
2022-06-10 11:31:48 +02:00
Paul Egberts
c2fa5fc5a8 adding three-phase simulator including water evaporation and saltpreciopitation 2022-04-11 21:56:44 +02:00
Paul Egberts
d89672e4a3 some clean up 2022-03-06 20:51:57 +01:00
Paul Egberts
797fdc278b water-gas ratio input and output plus simulator for salt precipitation and water evaporation 2022-03-01 20:52:43 +01:00
Tong Dong Qiu
6c8ada4cd2 Reduced header inclusion and updated comments 2022-02-03 10:42:22 +01:00
Paul Egberts
98c8e691c3 Allow for brine and precipitation/dissolution of salt 2022-01-14 11:46:40 +01:00
Bård Skaflestad
3317f10c4a
Merge pull request #3729 from goncalvesmachadoc/gaswater_brine
allow for gas-water + brine
2022-01-12 12:31:34 +01:00
Jose Eduardo Bueno
c7ac97e215 [OpenCL] Moves all OpenCL kernels to *.cl files.
Kernel files are located in opm/simulators/linalg/bda/opencl/kernels.
CMake will combine them for usage in
${PROJECT_BINARY_DIR}/clSources.cpp that becomes part of the library.
2021-12-22 12:43:18 +01:00
goncalvesmachadoc
7f320102c3 allow for gas-water + brine 2021-12-08 14:35:22 +01:00
Tor Harald Sandve
4f75d1ab8d Add gasoil + energy simulator
Useful when combining CO2STORE + THERMAL

This PR also fixes an issue with missing phases in computation of output temperature
2021-12-07 09:18:38 +01:00
Markus Blatt
64cdc95fac Added man pages for flow.
Generated using:

declare -A short_desc
short_desc['flow']='Eclipse compatible parallel reservoir simulator'
short_desc['ebos']='Eclipse compatible parallel reservoir simulator for research'
for key in "${!short_desc[@]}"; do
           help2man -h "-h" --version-string="2021.04" --no-discard-stderr -n "${short_desc[$key]}" -N $key >\
           $key.1
done

Gbp-Pq: Name 0002-Added-man-pages-for-flow-and-ebos.patch
2021-11-15 12:06:05 +01:00
Arne Morten Kvarving
2120cbf043 added: utility to broadcast multiple variables in one operation 2021-11-09 13:02:05 +01:00
Tong Dong Qiu
803a2ac2f4 Allow CMake to set CHOW_PATEL variables 2021-11-04 15:47:33 +01:00
Atgeirr Flø Rasmussen
5503e6ca06 Remove ISTLSolverEbosFlexible and flow_blackoil_dunecpr.
The class ISTLSolverEbos has all features of the removed class, and
is not much more complex. The flow_blackoil_dunecpr is the only
program using it, and is redundant.
2021-11-02 15:02:48 +01:00
Arne Morten Kvarving
7de50b94c7 changed: probe for cl/opencl.hpp and use if found
this to avoid a spam of warnings
2021-11-01 19:41:05 +01:00
Arne Morten Kvarving
39a94863a0 remove ebos 2021-11-01 13:08:40 +01:00
Atgeirr Flø Rasmussen
16eafcca04
Merge pull request #3649 from akva2/separate_flow_binaries
changed: build separate simulator binaries for flow
2021-11-01 13:07:07 +01:00
Arne Morten Kvarving
9395c74b3e changed: build separate simulator binaries for flow
this is very convenient during development.
we can then remove the FLOW_BLACKOIL_ONLY option,
as it is no longer needed - use the flow_blackoil binary instead.
however we need to keep this support in Main.hpp due to the python
bindings relying on it.
2021-11-01 09:31:09 +01:00
Markus Blatt
4de52a8d30 Use OpenCl's CL/cl2.hpp instead of CL/cl.hpp
We still request Standard version 1.2 only.
We need to use KernelFunctor instead of make_kernel.
In addition cl::Sources now works on std::string and
does not support std::pair<const char*, in> anymore.
2021-10-28 16:42:43 +02:00
Arne Morten Kvarving
8c7f635dc2 build flow_brine_energy as an object library
improves parallel builds
2021-10-18 14:24:55 +02:00
Arne Morten Kvarving
21af223b92 rename flow_brine_thermal to flow_brine_energy
naming should be consistent with the established convention
2021-10-18 12:48:11 +02:00
Bård Skaflestad
09b7f287a0
Merge pull request #3604 from akva2/improve_test_drivers
changed: use getopts in test drivers
2021-10-17 17:48:23 +02:00
Tor Harald Sandve
f6f5badfde Add brine and thermal simulator 2021-10-15 11:50:17 +02:00
daavid00
48b175904a first version of micp implementation in flow 2021-10-14 17:44:57 +02:00
Arne Morten Kvarving
673b049b9a changed: use getopts in test drivers
the number of options were getting unmanagable as
a flat list.

also add help/usage to the scripts
2021-10-13 14:24:55 +02:00
Tor Harald Sandve
24bf13c26f
Merge pull request #3429 from akva2/remove_plain
remove ebos_plain
2021-08-19 14:11:27 +02:00
Arne Morten Kvarving
0fa74c4a9d fix build without variants and/or poly grid 2021-08-17 08:52:16 +02:00
Arne Morten Kvarving
c05f67a382 changed: build polygrid simulator as a object library
allows for building in parallel with the main library
2021-08-16 12:55:40 +02:00
Arne Morten Kvarving
46087f8f00 changed: build onephase simulators as object libraries
allows for building in parallel with the main library
2021-08-16 12:55:36 +02:00
Arne Morten Kvarving
23c2dd15aa remove ebos_plain
the ebos well model is severely limited, I doubt
anyone would ever use this binary.
2021-08-05 11:48:09 +02:00
Joakim Hove
ea4cf8d28f
Merge pull request #3428 from akva2/remove_altidx
remove ebos_altidx
2021-08-03 14:10:00 +02:00
Tong Dong Qiu
f77d745b51 Factor out CUDA part of amgclSolver 2021-07-07 16:24:52 +02:00
Markus Blatt
7b004d34e8 Prevent warnings form VexCL/amgcl using system include directories. 2021-07-07 16:24:52 +02:00
Markus Blatt
adc2bf46b9 Search for VexCL and create an imported target.
Unfortunately, we cannot us the imported targets. They add some compile
parameters using generator expressions based on the CXX_COMPILER_ID.
While we are using the system CXX compiler for most of the stuff, some
cuda code is compiled with nvcc which at least for some versions does
not support -Wno-catch-value (which gets passed as normal compiler
option).
2021-07-07 16:24:52 +02:00
Tong Dong Qiu
282f611f92 Make sure amgcl can be used without CUDA 2021-07-07 16:24:52 +02:00
Markus Blatt
b197130b3e Use amgcl::amgcl target, but only extract INTERFACE_INCLUDE_DIRS.
There is no AMGCL_INCLUDE_DIRS when using find_package. We now query
the target amgcl::amgcl for INTERFACE_INCLUDE_DIRS and store the
result in AMGCL_INCLUDE_DIRS.

Note that we cannot link amgcl::amgcl target to libopmsimulators as
this sets the -fopenmp flag for all the source files and makes
compilation with nvcc fail.
2021-07-07 16:24:52 +02:00
Tong Dong Qiu
a08195a983 Use CMake config of amgcl itself 2021-07-07 16:24:52 +02:00
Tong Dong Qiu
c2869810e2 Added amgclSolverBackend 2021-07-07 16:24:51 +02:00
Arne Morten Kvarving
8443306fb6 remove ebos_altidx
building a whole simulator for this, and then not even
running a test for it, seems rather excessive. if a test for
index-conformance is wanted, a better approach should be taken.
2021-07-05 13:17:13 +02:00
Arne Morten Kvarving
ed1b36e836 fixed: do not build test_parallelwellinfo.cpp twice
mark the parallel test NO_COMPILE and specify the binary
2021-04-30 17:01:11 +02:00
Markus Blatt
13f62a718b
Merge pull request #2998 from g-marchiori/fpgasolver-integration
Added fpgaSolver, requires Xilinx Alveo U280 FPGA board
2021-04-15 11:21:39 +02:00
Arne Morten Kvarving
38b2e5a571 fixed: we have to "link" these to the fmt::fmt target
if not, the required defines are not set when building
with external libfmt
2021-04-09 11:31:56 +02:00
Markus Blatt
a53139b20a Consistently use keyword version of target_link_libraries.
Fixes:

CMake Error at CMakeLists.txt:458 (target_link_libraries):
  The keyword signature for target_link_libraries has already been used with
  the target "opmsimulators".  All uses of target_link_libraries with a
  target must be either all-keyword or all-plain.

  The uses of the keyword signature are here:

   * /var/lib/jenkins/workspace/opm-common-PR-builder/mpi/install/share/opm/cmake/Modules/OpmCompile.cmake:61 (target_link_libraries)

-- Configuring incomplete, errors occurred!
2021-04-07 18:42:28 +02:00