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
andrthu
866a661255
New owners-first based linear algebra operations (SoMV, SP and ILU.apply).
2020-03-11 12:41:38 +01:00
Arne Morten Kvarving
4ba7d3a7bc
changed: replace boost::any with std::any
2020-02-19 11:20:16 +01:00
Atgeirr Flø Rasmussen
5fe48dab8b
Merge pull request #2327 from akva2/bump_dune
...
Bump required dune version to 2.6
2020-02-11 09:41:44 +01:00
Arne Morten Kvarving
96b2e97b15
changed: rename local typedef to avoid shadowing warning
2020-02-10 12:30:14 +01:00
Arne Morten Kvarving
4978e72039
bump required dune version to 2.6
...
remove compatiblity code with older versions
2020-02-06 16:24:39 +01:00
Markus Blatt
b9062396be
Merge pull request #2209 from Tongdongq/master
...
Added cusparseSolver, needs GPU to be used
2019-12-20 11:37:27 +01:00
T.D. (Tongdong) Qiu
a491e64883
Added some whitespace around brackets in accordance with OPM suggested coding standard
2019-12-18 15:54:14 +01:00
Robert Kloefkorn
2fa90d24f6
[bugfix][ebos] Make compile with PolyhedralGrid again.
2019-12-18 11:03:42 +01:00
T.D. (Tongdong) Qiu
293bd5816f
Replaced exit() with OPM_THROW. Replaced primitive pointer with unique_ptr.
2019-12-16 10:05:12 +01:00
T.D. (Tongdong) Qiu
13e524dba2
Only print warning that cusparseSolver did not converge if it was chosen with --use-gpu=true
2019-12-09 10:02:21 +01:00
T.D. (Tongdong) Qiu
b6e13bffd2
Added headers to PUBLIC_HEADER_FILES. Added warning print when cusparseSolver did not converge. Added more synchronization points in cusparseSolver. Pinning b and x vector as well.
2019-12-05 18:02:27 +01:00
T.D. (Tongdong) Qiu
f19a3b09b1
Updated copyright notice
2019-12-05 14:24:37 +01:00
T.D. (Tongdong) Qiu
5cb6ec510c
Allow verbosity of cusparseSolver to be set via command line
2019-12-05 10:07:40 +01:00
T.D. (Tongdong) Qiu
69033ca7f2
Changed structure of cusparseSolver to fit into master branch
2019-12-04 16:59:58 +01:00
andrthu
5f68b71d0f
Remove makeOverlapInvalid
2019-12-04 15:43:31 +01:00
T.D. (Tongdong) Qiu
4db2e7ca4e
Added cusparseSolver. Automatically compiled when CUDA is detected. Must be enabled at runtime by adding '--use-gpu=true'
2019-12-03 14:29:06 +01:00
andrthu
b980637f74
Romove extra copyOwnerToAll calls. Set ghost diagonal to one. Remove ghost adjecency
2019-12-03 12:04:17 +01:00
Arne Morten Kvarving
d3d9831fc3
changed: ewoms/common -> opm/models/utils
2019-09-19 11:14:36 +02:00
Arne Morten Kvarving
ec007c1a86
quell shadowing warning
2019-09-18 13:03:13 +02:00
Arne Morten Kvarving
5599bb6d8c
changed: namespace Ewoms -> namespace Opm
2019-09-05 17:14:38 +02:00
Arne Morten Kvarving
b464896cc8
quell shadowing warnings
2019-07-10 10:08:39 +02:00
Arne Morten Kvarving
4dbf2428f7
suppress some unused variables warnings without mpi
2019-06-28 14:20:51 +02:00
Kai Bao
9a2fcdbfd5
fixing warnings in other folder under opm-simulators
2019-06-26 10:48:41 +02:00
Atgeirr Flø Rasmussen
fa016a6008
Moved all remaining files out of opm/autodiff.
2019-06-20 11:00:51 +02:00
Andreas Thune
c4e0bc2385
Moving findOverlapRowsAndColumns() to a separate file.
2019-06-20 11:00:51 +02:00
Andreas Lauser
e36ae88ab9
set the SparseMatrixAdapter property in the linear solver type tag
...
this is necessary because after OPM/ewoms#513 , the
`SparseMatrixAdapter` property will be "owned" by the linear solver
and because ISTLSolverEbos does not build on top of
`Ewoms::ParallelBaseBackend`.
2019-05-31 10:55:13 +02:00
Robert Kloefkorn
6c77fae891
[cleanup][istl] Adjust to shared_ptr change in dune-istl >= 2.7.
2019-05-09 11:28:52 +02:00
Atgeirr Flø Rasmussen
c17adf788f
Moved files to opm/simulators/ subdirs.
2019-05-08 12:58:19 +02:00