Commit Graph
78 Commits
Author SHA1 Message Date
Markus Blatt e997d7b130 Merge pull request #2751 from ducbueno/opencl-stdwell-clean
AddStandardWell functionality in OpenCL backend
2020-09-02 22:02:05 +02:00
Jose Eduardo Bueno 56c1c0862c Added StandardWell functionality to OpenCL backend 2020-09-02 15:00:34 -03:00
Arne Morten Kvarving 7305f84351 use std::make_unique where applicable 2020-09-02 15:35:39 +02:00
Arne Morten Kvarving 941e4916f8 changed: remove SET_PROP macro usage 2020-08-27 14:02:05 +02:00
Arne Morten Kvarving e8248b44ff changed: remove NEW_TYPE_TAG macro usage 2020-08-27 13:01:51 +02:00
Arne Morten Kvarving 914053ac3c changed: remove GET_PROP_VALUE macro usage 2020-08-27 13:01:51 +02:00
Arne Morten Kvarving 74fac38d85 changed: remove GET_PROP_TYPE / GET_PROP macro usage 2020-08-27 08:19:39 +02:00
Arne Morten Kvarving 70908d9017 changed: remove BEGIN_PROPERTIES/END_PROPERTIES macro usage 2020-08-21 15:50:35 +02:00
Markus Blatt faaee51d09 Merge pull request #2682 from Tongdongq/openclSolver
Added openclSolver
2020-07-10 13:38:32 +02:00
T.D. (Tongdong) Qiu 5971a7ae9e Split WellContributions into .cpp and .cu 2020-07-10 11:13:55 +02:00
T.D. (Tongdong) Qiu bb622449b6 Changed platformID and deviceID to commandline parameter. Make sure Flow exits cleanly upon invalid platform- or deviceID. 2020-07-06 13:38:57 +02:00
Atgeirr Flø Rasmussen c94eec872f Allow well operators with FlexibleSolver. 2020-06-30 12:33:57 +02:00
T.D. (Tongdong) Qiu b7f47c9787 Clarified preprocessor macros 2020-06-25 15:01:23 +02:00
Atgeirr Flø Rasmussen c2c79f0903 Move well operators to separate file.
Also introduce new class WellModelAsLinearOperator making a well model
into an actual Dune::LinearOperator, this prevents the TypeTag dependent
type from leaking into the type of the WellModelMatrixAdapter instantiation.

As a side benefit, the adapter classes can now adapt (i.e. combine with a
matrix operator) any linear operator.
2020-06-25 10:13:12 +02:00
T.D. (Tongdong) Qiu 3dc368b0b4 Added block_size templates to the BdaBridge. Removed unused gpu_mode variable 2020-06-24 16:46:04 +02:00
T.D. (Tongdong) Qiu 26133c4fd7 Fixed type of gpu_mode when HAVE_CUDA is false 2020-06-24 15:55:03 +02:00
Markus Blatt 27c9ed5c85 Consistently use ISTLSolverEbos::getMatrix to get correct matrix. 2020-06-24 15:37:43 +02:00
Markus Blatt 27ace20378 [bugfix] remove redundant copyjacToNoGhost in ISTLSolverEbos::solve
It uses a null pointer and make flow segfault. The copying is already
done in ISTLSolverEbos::prepare.
2020-06-24 15:25:24 +02:00
T.D. (Tongdong) Qiu b9e4bd3a95 Updated HAVE_XX guards. Replaced string == compare with .compare() 2020-06-23 18:19:33 +02:00
T.D. (Tongdong) Qiu f974a5f6db Added openclSolver
Usage: --gpu-mode=[cusparse|opencl|none] on command line
2020-06-22 18:26:49 +02:00
Atgeirr Flø Rasmussen 2dc2e053d1 Change order of constructor arguments.
This allows simplification, and having just two constructors.
2020-06-17 09:31:19 +02:00
Bernd Flemisch 21df1cbe31 [properties] adapt to changes in the property system
`NEW_PROP_TAG` is now a definition and not just a declaration.
Eliminate superfluous declarations, include headers with definitions.
Make one necessary forward declaration explicit.
2020-05-18 15:54:26 +02:00
Markus Blatt 74936c3239 Skip exception for unset verbosity, use fallback for default solvers
boost::property_try::get without a defaults throws an exception. As
result the nonlinear solver and timestepper think that there is a
problem with solving and chop the timnestep until they give up.

This commit fixes this by using a default and falling back to the
command line specified value for the default solvers.
2020-05-18 08:33:49 +02:00
Markus Blatt b887492285 Write out the linear system when ultra high verbosity is requested.
This added to ISTLSolverEbosFlexible and should be available form
ISTLSolverEbos for consistency reasons, too. Done with this commit.
2020-05-15 16:21:48 +02:00
Markus Blatt 85fffee06e Pass a mutable matrix to BdaBridge::solve_system
That function will overwrite zero diagonal values with small nonzero ones.
2020-05-13 16:28:15 +02:00
Markus Blatt d54268513e Add getMatrix() const method needed for GPU solvers.
Somehow I missed testing with CUDA.
2020-05-13 15:33:34 +02:00
Markus Blatt 664e582b5f [bugfix] Use correct matrix for scaling.
For some of the scaling approaches the wrong matrix (dereferenced
nullptr) would have been used which should have resulted segmentation
faults. With this commit we add a method getMatrix() that returns the
correct one and use that for scaling.
2020-05-13 13:38:02 +02:00
Markus Blatt 9f278db5a6 Removes additional member for matrix used by the preconditioner.
Somehow that approach went missing in action and it is always the
same as the assembled matrix. Hence no need for that member anymore
and we remove it to prevent confusion.
2020-05-13 13:38:02 +02:00
Markus Blatt 7ed960b6d1 Use normal pointer to assembled matrix. 2020-05-13 12:23:20 +02:00
Markus Blatt ddd947bf0a Use correct matrix for flexible solver when parallel.
In this case matrix_ is a nullptr and noGhostMat_ is the optimized
matrix to use. Before this commit we experienced a segmentation fault
as the nullptr was dereferenced and passed to the solver.
2020-05-12 19:06:12 +02:00
Markus Blatt 1f177b33e7 Use communicator to decide whether this is a truly parallel. 2020-05-12 12:46:04 +02:00
Markus Blatt 1ff1f24fbb Fix when the matrix with no ghosts will be used. 2020-05-12 12:46:04 +02:00
Markus Blatt e8b79b2b63 Prevent matrix copy in serial run. 2020-05-12 12:46:04 +02:00
Markus Blatt 357469dc21 Only extract overlap and interior information if needed.
That is, if actually set up the additional matrix with no ghosts.
2020-05-12 11:52:19 +02:00
Markus Blatt 47acb6ecb3 Make flexible solvers and CPR accessible for flow binary.
Previously, one had to call a seperate binary called
flow_blackoil_dunecpr. Unforntunately, that was only built if users
requested that the tests (`-DBUILD_TESTING=ON`) and the flow
variants (`-DBUILD_FLOW_VARIANTS=ON`) should be built. In addition
it would use a slightly different nonlinear solver implementation.

With this commit flow can be asked to either use
CPR (`--use-cpr=true --matrix-add-well-contributions=true`) or to use
the flexible solvers bx setting the `--linear-solver-configuration`
option. In all other cases the usual solver implementations are still
used.

Note that the flexible solvers still need
`--matrix-add-well-contributions=true` and hence cannot cope with
multi-segment wells.
2020-05-12 11:52:19 +02:00
Markus Blatt 5b4acd5417 Do not query wells for solver if it is actually not needed. 2020-05-12 11:52:19 +02:00
Atgeirr Flø Rasmussen 0c8ce54b71 Merge pull request #2498 from blattms/cherry-pick-hnil-flexible-clean-interface-rebased
Cleaned up flexible solver improvements.
2020-04-02 15:28:10 +02:00
Markus Blatt 70cff4b342 Refactor to a single function that calculates true impes weights.
Two identical versions seemed like a lot of maintenance for no gain.
2020-03-31 16:49:37 +02:00
Robert Kloefkorn 8afe8c3f96 [bugfix][ISTLSolverEbos] fix compilation when dune-fem is used in
conjunction with opm-simulators.
2020-03-31 14:22:11 +02:00
Atgeirr Flø Rasmussen 8ef508cc08 Merge pull request #2491 from blattms/flexible-fixes
Fixes ILU0 when using flexible solvers.
2020-03-24 17:39:27 +01:00
Atgeirr Flø Rasmussen 1e84624ea7 Add override spec to silence warnings. 2020-03-23 11:57:59 +01:00
Markus Blatt b41b449c7d Removed suplicated code for calculating quasi impes weights.
Maintaining two versions is just to error prone.
2020-03-23 09:40:14 +01:00
Markus Blatt c0a82ff335 Merge pull request #2475 from Tongdongq/separate_wellcontributions_for_gpu
Separate wellcontributions for gpu
2020-03-20 12:14:06 +01:00
T.D. (Tongdong) Qiu 75268f1166 Changed ISTLSolverEbos-BdaBridge usage. BdaBridge->solve_system() is not called when GPU is not selected or disabled 2020-03-19 16:08:29 +01:00
T.D. (Tongdong) Qiu fdcf46792a BdaBridge and WellContributions are only included and compiled when CUDA is found 2020-03-18 19:03:14 +01:00
T.D. (Tongdong) Qiu ce73337769 Disable GPU when using MPI 2020-03-18 13:53:40 +01:00
Markus Blatt 1c2d3fbcc7 Do not use local id set to index matrices.
That the local ids were consecutive and starting from 0 was just
a coincidence and they should never be used to access linear systems
or vectors. This commit fixes this by using the correct mappers instead.

Note the we removed some computations from the constructor of
ISTLSolverEbosCpr as it inherits from ISTLSolverEbos and the operations
already happnen in constructor of the base class.
2020-03-13 17:56:49 +01:00
andrthu 3d0d0f9624 Remove GhostLast ILU 2020-03-13 15:03:31 +01:00
T.D. (Tongdong) Qiu 581cbc6a3e cusparseSolver can now apply wellcontributions separately, so --matrix-add-wellcontributions=true is not required anymore 2020-03-13 14:21:59 +01:00
andrthu c91eb330d3 remove 2.6 and move ownerFirst in lb 2020-03-11 12:42:55 +01:00