Commit Graph

5718 Commits

Author SHA1 Message Date
Tor Harald Sandve
7ccce99e1c Do the schur complement after calling the getConvergence method 2018-11-08 10:41:41 +01:00
Tor Harald Sandve
5edd63c554 flow: let the wells be managed by EclProblem 2018-11-08 10:40:28 +01:00
Tor Harald Sandve
19622dab57 start the execution timer when creating the eWoms simulator object
this provides accurate performance timings from within eWoms
code. For example, this is useful for output of TCPU.
2018-11-08 10:26:02 +01:00
Tor Harald Sandve
8fe2be3b7f Compute well productivity index and pass it to the output 2018-11-07 15:36:31 +01:00
andrthu
a969fd198a Ignoring overlap cells in parallel ILU factorization (#1610)
* fixed the issue of including ghost cells in preconditioning, by zeroing out ghost rows and setting the diagonal to a large value.

* move altering of matrix to a function

* blockwise modification of matrix

* add findOverlapRowsAndColumns in BlacoilDetail. Add call to findOverlapRowsAndColumns in constructor of BlacoilModelEbos. Change makeOverlapRowsInvalid, by looping over precalculated inddies instead of grid

* Better formatting
2018-11-06 14:14:50 +01:00
Joakim Hove
6c5b540eaf
Merge pull request #1605 from totto82/drsdtr
Adapt to changes in schedule interface
2018-11-06 08:21:03 +01:00
Tor Harald Sandve
eff1c21bb3
Merge pull request #1609 from GitPaean/refactoring_well_test
Refactoring well test to prepare for Physical limit related well test.
2018-11-02 10:40:59 +01:00
Andreas Lauser
848a65c1c8 BlackoilAquiferModel: move the function bodies to the _impl.hpp file
... to make it more consistent with the existing code.
2018-11-01 15:19:33 +01:00
Andreas Lauser
6a929ca797 try to fix subtle lifetime bug
it is possible that a dune entity vanishes if its iterator gets out of
scope. Whether this is a problem or not seems to be be highly depend
on the used configuration...
2018-11-01 15:13:28 +01:00
Kai Bao
0c24a30459 some cleaning up
no funtionality changes.
2018-10-31 15:32:50 +01:00
Andreas Lauser
46b52448aa fix a few review comments 2018-10-31 15:20:56 +01:00
Andreas Lauser
339c76bcac make aquifers work again, quite a few cleanups 2018-10-31 15:20:56 +01:00
Andreas Lauser
805eec9566 make the CT aquifiers code do something 2018-10-31 15:20:56 +01:00
Andreas Lauser
7c81dbdaab let the aquifiers be managed by core ebos
also, clean them up a bit:
- do not use the intensive quantities cache directly anymore. (i.e.,
  that code should now work if the IQ cache is disabled)
- do not fiddle with the global Jacobian matrix and residual vector
  directly. Instead, implement the water fluxes to the reservoir as a
  source term like wells.

one thing that did not become fully clear to me is if each aquifer
ought to be assumed to be in contact with the whole reservoir or just
a few cells on the boundary. The current implementation goes down the
former path, while, without any deeper knowledge, I would rather
suppose that the latter applies. maybe my understanding of this is
just too limited, though.
2018-10-31 15:20:56 +01:00
Kai Bao
702c6e7b1f refactoring the wellTesting in BlackoilWellModel
so that we can do well test for different closing reason.
2018-10-31 15:00:21 +01:00
Andreas Lauser
b04c82a64e well model: fix valgrind complaints if either oil or gas are disabled 2018-10-31 13:18:10 +01:00
Kai Bao
4d58b9c34d splitting updateWellTestState to be two functions
one testing physical limits, and the other testing economic limits.
2018-10-31 12:54:39 +01:00
Tor Harald Sandve
52475eeea6 use specialized fluidstate in the aquifer model 2018-10-29 13:03:53 +01:00
Tor Harald Sandve
08c4a4857b Adapt to changes in schedule interface 2018-10-29 10:39:14 +01:00
Andreas Lauser
4cf81c69b1
Merge pull request #1602 from atgeirr/convergence-status
Add convergence status class
2018-10-25 14:16:29 +02:00
Atgeirr Flø Rasmussen
671ed75535 Made ReservoirFailure and WellFailure into classes. 2018-10-25 13:08:16 +02:00
Atgeirr Flø Rasmussen
852765a65b Address review comments. 2018-10-25 12:12:06 +02:00
Atgeirr Flø Rasmussen
2bf4d15285 Rename ConvergenceStatus -> ConvergenceReport. 2018-10-25 11:57:47 +02:00
Joakim Hove
58f84d3fb4
Merge pull request #1596 from totto82/minpvv
Add support for MINPVV
2018-10-25 09:05:10 +02:00
Atgeirr Flø Rasmussen
2bef8d7017 Use infinity as too-large boundary for multisegment pressure equation.
This is to preserve current behaviour. Infinity is used in the test
currently, rather than the provided parameter (that is only used for
mass balance/flux equations).
2018-10-24 21:43:26 +02:00
Andreas Lauser
d26fe45d52 flow: print the startup-banner only on the first rank
thanks to [at]atgeirr for catching this.
2018-10-24 14:30:21 +02:00
Atgeirr Flø Rasmussen
f9fae47f23 Use ConvergenceStatus in well subsystem. 2018-10-23 14:05:19 +02:00
Atgeirr Flø Rasmussen
37d4327ce3 Add Pressure equation type (for multisegment wells). 2018-10-23 14:04:27 +02:00
Atgeirr Flø Rasmussen
42cb36ab9f Improve severity feature, add severityOfWorstFailure(). 2018-10-23 11:28:32 +02:00
Atgeirr Flø Rasmussen
34afb0b254 Add severity (normal, too large, nan) to failure objects. 2018-10-23 10:52:34 +02:00
Atgeirr Flø Rasmussen
892b24c435 Make well failure types more informative.
Separating control eq failures with THP, BHP and Rate.
2018-10-23 10:26:39 +02:00
Atgeirr Flø Rasmussen
891912b04a Add ConvergenceFailure class and test. 2018-10-23 10:03:13 +02:00
Andreas Lauser
7d30a8408a flow: print the startup banner immediately
also, add a "reading deck" output. The idea is to make `flow`'s
behaviour less surprising by preventing people from thinking that
nothing happens after starting `flow` for a large deck.
2018-10-22 10:37:16 +02:00
Andreas Lauser
ab94700f9a ParallelOverlappingILU0: fix warning emitted by newish compilers 2018-10-22 10:37:16 +02:00
Tor Harald Sandve
df4db9dfbc Add support for MINPVV
The test and code for pinchprocessor is removed since it is no
longer used.
2018-10-15 13:39:47 +02:00
Arne Morten Kvarving
9ac269a304
Merge pull request #1583 from andlaus/more_flow_build_parallelism
make the build of flow fully parallelizable
2018-09-28 10:37:35 +02:00
Andreas Lauser
d7efb362a2 make the build of flow fully parallelizable
so far, the actual specializations of the simulator were compiled into
the `libopmsimulators` library and the build of the glue code
(`flow.cpp`) thus needed to be deferred until the library was fully
built. Since the compilation of the glue code requires a full property
hierarchy for handling command line parameters, this arrangement
significantly increases the build time for systems with a sufficient
number of parallel build processes. ("sufficient" here means 8 or more
threads, i.e., a quadcore system with hyperthreading is sufficient
provided that it has enough main memory.)

the new approach is not to include these objects in
`libopmsimulators`, but to directly deal with them in the `flow`
binary. this allows all of them and the glue code to be compiled in
parallel.

compilation time on my machine before this change:

```
> touch ../opm/autodiff/BlackoilModelEbos.hpp; time make -j32 flow 2> /dev/null
Scanning dependencies of target opmsimulators
[  2%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_gasoil.cpp.o
[  2%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_oilwater.cpp.o
[  2%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_blackoil.cpp.o
[  2%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_solvent.cpp.o
[  4%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_polymer.cpp.o
[  6%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_energy.cpp.o
[  6%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_oilwater_polymer.cpp.o
[  6%] Linking CXX static library lib/libopmsimulators.a
[ 97%] Built target opmsimulators
Scanning dependencies of target flow
[100%] Building CXX object CMakeFiles/flow.dir/examples/flow.cpp.o
[100%] Linking CXX executable bin/flow
[100%] Built target flow

real    1m45.692s
user    8m47.195s
sys     0m11.533s
```

after:

```
> touch ../opm/autodiff/BlackoilModelEbos.hpp; time make -j32 flow 2> /dev/null
[ 91%] Built target opmsimulators
Scanning dependencies of target flow
[ 93%] Building CXX object CMakeFiles/flow.dir/flow/flow.cpp.o
[ 95%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_gasoil.cpp.o
[ 97%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_oilwater_polymer.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_polymer.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_oilwater.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_solvent.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_blackoil.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_energy.cpp.o
[100%] Linking CXX executable bin/flow
[100%] Built target flow

real    1m21.597s
user    8m49.476s
sys     0m10.973s
```

(this corresponds to a ~20% reduction of the time spend on waiting for
the compiler.)
2018-09-26 11:49:12 +02:00
Alf Birger Rustad
dad7f72599 Increase default number of non-linear iterations for 10 to 20 2018-09-24 14:28:28 +02:00
Alf Birger Rustad
a81d13c227 Increase default number of iterations for linear solver from 150 to 200 2018-09-24 14:22:19 +02:00
Atgeirr Flø Rasmussen
46416008e6
Merge pull request #1566 from blattms/fix-parallel-file-merge
[bugfix] Make parallel file merge work again for any --output-dir.
2018-09-24 13:58:20 +02:00
Atgeirr Flø Rasmussen
1f7b8aa9d1
Merge pull request #1581 from blattms/fix-issue-1574-and-more
Remove dead code.
2018-09-24 13:37:32 +02:00
Markus Blatt
9f2f6705bc
Merge pull request #1564 from dr-robertk/PR/fix-compile-dune-master
[bugfix][ISTLSolverEbos] make compile with current dune master.
2018-09-24 07:25:30 +02:00
Markus Blatt
5aa07fca69 Remove more dead code from the ISTLSolver.hpp fork for ebos.
These functions are also not used.
2018-09-21 16:15:32 +02:00
Markus Blatt
abddcb74d3 Merge branch 'fix_build' into fix-issue-1574-and-more
It removes some dead code that appeared during the fork of
ISTLSolver.hpp for ebos.
2018-09-21 15:49:39 +02:00
Markus Blatt
2dd5a3d15c Fix compilation issue of flow_legacy without UMFPack.
The problem was only present if UMFPack was not found and therefore
FLOW_SUPPORT_AMG was defined to true. In that case we experienced compile
errors in a source branch that would never be executed. Therefore we remove
the code there and throw an exception.
2018-09-21 15:07:54 +02:00
Andreas Lauser
cfdf9f3e4d fix build on some Linux distributions
i.e., mine (openSuse Tumbleweed). the problem seems to be that the
specialization of `ISTLSolver::constructAMGPrecond()` is ambiguous and
some compilers seem to be more strict about this than others. Simply
removing the problematic method seems to work fine.

That said, for non-legacy `flow` this codepath is not taken at runtime
anyway because the `ISTLSolverEbos` class is used!?
2018-09-21 13:53:38 +02:00
Kai Bao
6e2334dcad removing the extra ; after BEGIN_PROPERTIES and END_PROPERTIES
which causes compilation warning.
2018-09-18 13:35:27 +02:00
Joakim Hove
e6be0f5ca6 Make sure the restart files used when testing are OPM style 2018-09-14 14:28:04 +02:00
Bård Skaflestad
c3de357f30
Merge pull request #1567 from blattms/tighten-regex-for-parallel-output
Let ParallelFileMerger only warn about CASENAME.[0-9]*.EXT files.
2018-09-12 12:21:47 +02:00
Joakim Hove
1a0ab98255
Merge pull request #1548 from joakim-hove/connection-updates
Get connection properties directly from the opm-common
2018-09-11 13:19:07 +02:00