Commit Graph

1766 Commits

Author SHA1 Message Date
Arne Morten Kvarving
5e801bc488 avoid dead stores 2023-10-27 08:59:15 +02:00
Tor Harald Sandve
90e791877c Implement Forchheimer term in wellIndex
Add output of CDFAC

Add effect of compaction on CTFAC
2023-10-23 08:55:21 +02:00
jakobtorben
ab0ca76194 Add DILU preconditioner 2023-10-18 14:30:17 +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
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
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
Atgeirr Flø Rasmussen
18883e7f83 Use the non-accelerated linear solver for some tests.
This is just for the type tag.
2023-09-25 10:44:06 +02:00
Bård Skaflestad
9c58585538
Merge pull request #4823 from akva2/ecltimestepping_separate
changed: put ecl time stepping parameters in separate struct
2023-09-04 10:54:46 +02:00
Tor Harald Sandve
80cbfe7fda
Merge pull request #4819 from hakonhagland/gecon3
Implement support for GECON keyword
2023-09-01 15:06:48 +02:00
Atgeirr Flø Rasmussen
06c706e7d6 Also copy flags, and helper function with test. 2023-08-31 13:01:50 +02:00
Arne Morten Kvarving
3c525aefae changed: put ecl time stepping parameters in separate struct
this to allow reuse in ebos simulators
2023-08-30 11:22:22 +02:00
Håkon Hægland
dba282c7a4 Added missing header file 2023-08-29 09:14:35 +02:00
Vegard Kippe
8666cd8dc3 re-introducing line that was deleted by mistake.. 2023-08-25 14:26:51 +02:00
Vegard Kippe
0944cbbed9 fixing indent 2023-08-25 14:13:04 +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
13b0e14f18 EclGenericProblem: remove unused time steppping parameters
and remove some hidden duplicates
2023-08-15 14:02:55 +02:00
Arne Morten Kvarving
46aae8cda6 changed: move EclInterRegFlows to opm/simulators/flow
no opm-models usage
2023-08-15 13:14:42 +02:00
Arne Morten Kvarving
933f28b575 add tests for LogOutputHelper
reference data was created before the refactoring
2023-08-14 11:44:32 +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
4d35ec26de isNumericalAquiferCell: put in separate struct for easier reuse 2023-07-04 14:56:10 +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
Vegard Kippe
7fc9a2eef3 Addressing review comments. 2023-06-30 12:21:25 +02:00
Vegard Kippe
7a0074f0e9 Cleaning up test code 2023-06-29 15:22:52 +02:00
Vegard Kippe
a80f44a3be Updating variable name in SimulatorFullyImplicitBlackoilEbos.hpp and adding tests 2023-06-29 15:20:38 +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
Arne Morten Kvarving
3c566a9e4e avoid dead store 2023-06-21 08:59:26 +02:00
Bård Skaflestad
a2d4153830
Merge pull request #4711 from atgeirr/well-additions-for-local-solves
Well additions for local solves.
2023-06-15 18:15:43 +02:00
Atgeirr Flø Rasmussen
654df6fd59 Well additions for local solves.
Also, remove uneeded function updatePerforationIntensiveQuantities().
2023-06-15 16:49:12 +02:00
Ove Sævareid
9dbadfdaae Some support for WAG hysteresis. 2023-06-15 12:03:39 +02:00
Bård Skaflestad
9d75915e4b Prepare for Revised Implementation of WBPn
This initial commit changes the API of the CollectDataToIORank
class' handling of WBPn values from collecting a set cell pressures
into communicating pre-computed WBPn values through the new
WellBlockAveragePressures container class.  This is in preparation
of moving the WBPn calculation to the simulator side for greater
parallelism.  For now we do not compute any of the actual WBPn
values.  That will be the subject of follow-up commits.

While here, also split a number of very long lines for readability.
2023-06-09 13:25:43 +02:00
Bård Skaflestad
665be4e435
Merge pull request #4699 from atgeirr/nldd-utilities
Add utilities that will be needed for NLDD solvers.
2023-06-09 10:35:48 +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
Bård Skaflestad
479a575539 Add Brief Documentation Block to Test Property AWK Script
Mostly to aid future maintainers.
2023-06-08 12:05:16 +02:00
Arne Morten Kvarving
4a3a47c764 changed: no need to manually specify test data in update script
rather specify it as properties on the tests themself and extract
using some awk-ing.
2023-06-08 10:33:36 +02:00
Håkon Hægland
bdfa287fec Add missing include file 2023-06-02 09:25:34 +02:00
Torbjørn Skille
afe0ede324 start regression testing of test case with VAPPARS keyword in Solution section 2023-06-01 13:05:32 +02:00
Atgeirr Flø Rasmussen
ee6edd83a0
Merge pull request #4636 from kjetilly/cuistl_multigpu
Path to multigpu: Cuistl multigpu
2023-06-01 07:23:39 +02:00
Bård Skaflestad
4faa5e1fe7
Merge pull request #4667 from akva2/no_adap_timestep_flag_in_driver
changed: stop forcing no adaptive time stepping in parallel restart test driver
2023-05-31 21:37:51 +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
ceb15e22e3 Expose CuISTL solver in FlexibleSolver. 2023-05-31 15:03:31 +02:00
Atgeirr Flø Rasmussen
0923698667
Merge pull request #4635 from kjetilly/cuistl_preconditioners
Path to multigpu: Cuistl preconditioners
2023-05-31 14:43:49 +02:00
Markus Blatt
290e7146ad Added working PINCH test cases as regressions.
This hopefully will prevent breaking things when further work for
PINCH is done.

The following tests are still known to fail with current master:
T2A_NOPINCH T2A_GAP T2A_NOGAP T4A1_NOGAP T4A1_GAP
2023-05-31 12:23:00 +02:00
Arne Morten Kvarving
0f010daaf8 remove unused variables 2023-05-31 09:35:16 +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
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
Kjetil Olsen Lye
dfa7034f1b Made error tolerances stricter. 2023-05-30 10:12:31 +02:00
Kjetil Olsen Lye
63fb363a83 Renamed CopyConstructor to CopyAssignment. 2023-05-30 10:06:08 +02:00
Tor Harald Sandve
77d6a99376 add SPE1CASE2_GASWATER_SOLVENT as test case 2023-05-30 09:44:08 +02:00
Bård Skaflestad
f156bc9b7d Enable Restart Tests for Constant Flux Aquifers
Uses the example models AQUFLUX-01 and AQUFLUX-02 from OPM-Tests.
Both sequential and parallel modes activated for both models.
2023-05-26 20:21:52 +02:00
Arne Morten Kvarving
9b93046a69 changed: stop forcing no adaptive time stepping in parallel restart test driver
this should be controllable on a per-test level as other options.

keep current behavior for existing test by re-adding the option
using TEST_ARGS.
2023-05-25 20:23:48 +02:00
Tor Harald Sandve
8c9220c8e9 add solvent+foam test 2023-05-24 16:03:09 +02:00
Kjetil Olsen Lye
133a8897a0 Fixed indexing mistake in cuistl/vector_operations 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
f006b0b4f5 Removed unused type variable. 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
Torbjørn Skille
d5100fac23 start regression testing of WGRUPCON tests 2023-05-10 20:52:50 +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
bf9dd4e1dd Added safe call macros for CUDA, CuBlas and CuSparse. 2023-05-09 15:20:34 +02:00
Arne Morten Kvarving
60079dc065 gputests: missing device is a test failure 2023-05-09 12:27:41 +02:00
Kai Bao
c3f5d0c81c adding parallel tests and reference update for network modeling 2023-05-08 15:29:01 +02:00
Kai Bao
b9348ee435 try to honor the network balance tolerance
without considering the iteration number. Because of the different
implementaion from other simulators, it is difficult to honour
procedure-dependent parameters.
2023-05-08 10:43:49 +02:00
Kai Bao
bb7ed4d78e making sure to update the pressure when needing network balance 2023-05-08 10:43:49 +02:00
Atgeirr Flø Rasmussen
77d151e0b5 Refactor get_error_report() for more flexibility. 2023-04-25 10:33:20 +02:00
Torbjørn Skille
e98b26aa55 Remove two tests from regression testing
There are issues with both of these that should be fixed before these are used for regression testing
2023-04-13 15:55:39 +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
ed8f37ec82 Initialize HIP/rocsparse in constructor 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
11ea024fbe Add test_rocsparseSolver 2023-04-06 13:14:19 +02:00
Bård Skaflestad
62f8a6433d
Merge pull request #4474 from tskille/regtest_pinch_multz-
Regression testing for PINCH and MULTZ- barrier
2023-03-30 15:16:44 +02:00
Tor Harald Sandve
a2ae7d5bed Fix resv for groups 2023-03-27 16:03:40 +02:00
Bård Skaflestad
7abfdc52e0 Refactor Construction of Analytic Aquifer Objects
In particular, split the 'static' aquifer object initialisation
of member function 'init()' into a new helper function

  initializeStaticAquifers()

This is in preparation of adding a similar function to handle
dynamic aquifer object initialisation from a restart file.  To that
end, also add a new member function

  createDynamicAquifers(episode_index)

containing the current implementation of beginEpisode().  Creating
the dynamic objects from a restart file then amounts to calling this
function with a different 'episode_index'.  As another aid to
maintainability, add a new templated member function

  createAnalyticAquiferPointer()

which forms 'unique_ptr<AquiferInterface>' objects for every known
type of analytic aquifer.  This, in turn, requires reordering the
parameters of the AquiferConstantFlux constructor to match those of
the existing Fetkovich and Carter-Tracy types.

Finally, split the calculation of the constant flux aquifer's total
flux rate out to a new helper function

  AquiferConstantFlux::totalFluxRate()
2023-03-09 18:04:55 +01:00
Arne Morten Kvarving
bd767923b3 fixed: remove opm-material from data update script 2023-03-06 12:02:09 +01:00
Arne Morten Kvarving
ac6e0d3e7e add restart serialization test for Inplace 2023-02-27 13:57:05 +01:00
Arne Morten Kvarving
e3d9ee9780 add restart serialization test for EclHysteresisTwoPhaseLawParams 2023-02-24 09:59:37 +01:00
Bård Skaflestad
d364b7b80c
Merge pull request #4479 from akva2/serialization_missing_perfdata
RestartSerialization: add missing PerfData
2023-02-22 15:53:42 +01:00
Arne Morten Kvarving
da4784b314 AquiferConstantFlux: add restart serialization support 2023-02-22 14:41:07 +01:00
Arne Morten Kvarving
8d339c464c PerfData: add serialization support 2023-02-22 13:59:59 +01:00
Kai Bao
7a67b16c3e addressing review comments for PR OPM/opm-simulators#4429 2023-02-21 15:27:05 +01:00
Torbjørn Skille
8714630cd7 Regression testing for PINCH and MULTZ- barrier
Both test cases are using PINCH + ALL in item 5. One case have
a MULTZ barrier the other not.
2023-02-21 08:20:54 +01:00
Bård Skaflestad
85a2703e88 Add Regression Test for NOPINCH Feature
Thanks a lot to [at]tskille for providing a test case.
2023-02-19 15:05:53 +01:00
Bård Skaflestad
b73440d794 Add Regression Test for JFUNC Feature
There are no such tests in the test suite and we've already had one
instance of the feature breaking during code refactoring.

Thanks to [at]tskille for providing the test case.
2023-02-17 17:46:44 +01:00
Bård Skaflestad
e861d72f78 Use Uniform Initialization
Avoids "most vexing parse" for non-MPI builds.
2023-02-16 17:32:04 +01:00
Arne Morten Kvarving
55e3c8fe27 added: parallel serialization restart test for spe1 2023-02-16 14:49:38 +01:00
Arne Morten Kvarving
8c3400f562 added: parallel support to HDF5File / HDF5Serializer 2023-02-16 14:49:38 +01:00
Arne Morten Kvarving
eb00299373 added: serialization restart test for spe1 2023-02-16 13:56:29 +01:00
Arne Morten Kvarving
a21d59977d SimulatorReport: add serialization support 2023-02-16 11:56:40 +01:00
Arne Morten Kvarving
f0ca3120ff SimulatorReportSingle: add serialization support 2023-02-16 11:56:40 +01:00
Arne Morten Kvarving
28e7da5468 BlackoilWellModelGeneric: add serialization support 2023-02-16 11:19:06 +01:00
Arne Morten Kvarving
90fbdcee0a WGState: add serialization support 2023-02-16 10:48:34 +01:00
Arne Morten Kvarving
b7a531b93a WellState: add serialization support 2023-02-16 09:43:39 +01:00
Arne Morten Kvarving
6d93b2d12f ALQState: add serialization support 2023-02-16 08:35:34 +01:00
Arne Morten Kvarving
b87bf2b3ae GroupState: add serialization support 2023-02-15 22:57:44 +01:00