Commit Graph

6396 Commits

Author SHA1 Message Date
Markus Blatt
81b7af1d8a Support DUNE 2.5 with CPR reusing hierarchy 2019-04-10 15:01:35 +02:00
Markus Blatt
29e893dc8e Make sure the the OwnerOverlopCommunication object stays alive.
As the AMG hierarchy is kept and uses the initial OwnerOverlopCommunication object
we need to make sure that this object lives as long as the hierarchy. We assure
this by storing a shared_ptr to it in ISTLSolverEbosCpr and reuse it to construct
the WellModelMatrixAdapter.
2019-04-10 14:40:46 +02:00
Markus Blatt
8057c2ba83 Use a shared pointer to the OwnerOverlapCommunication in WellModelMatrixAdapter.
Previously the OwnerOverlapCommunication object was owned by the adapter as a
unique_ptr was used. The change to shared_ptr makes it possible to to extract
it and reuse even if OwnerOverlapCommunication is thrown away.
2019-04-10 14:40:46 +02:00
Markus Blatt
6538b59d9e Added parallel CPR that reuses the matrix hierarchy.
Currently this just compiles but still segfaults in parallel.
2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
07e495c9da More minor cleanup. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
7664d27849 Clean up formatting and get most types from superclass. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
be86b90bac Make typed protected rather than private, enabling inheritance. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
2cf990e404 Do not store copy of weights inside BlackoilAmgCpr class. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
416cc93f96 Remove code that is no longer needed. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
0e5a5c5266 Minor cleanup. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
3d9c776384 Disable most of the file, as the base version is sufficient.
All features have been added to BlackoilAmg.hpp.
2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
6d18c2849d Allow updating the AMG preconditioner.
This adds the significant modifications from the BlackoilAmgCpr
experimental class to BlackoilAmg.
2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
032701ffc9 Silence unused argument warnings. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
0e1db0c6bd Reindent, remove unused function (after refactoring). 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
5d68a308b5 Fix memory bug by refactoring.
Moving out of a matrix in the same function argument list as the matrix is passed
to another function is wrong. Simplified by avoiding the unwieldy tuple.
2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
c92d84432c Replace tabs with spaces. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
5f4f8b71a8 Silence override and member order warnings. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
29837be2e3 Changes to minimize differences to original istl versions.
Also added note pointing to original istl files.
2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
13c6463f89 Refactor to be closer to the original amg.hh.
Should minimize the diff when comparing.
2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
b39815edb5 Minor formatting and removing unused code. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
28dfef1ecf Compile fix: do not use undefined member. 2019-04-10 14:40:46 +02:00
hnil
4f1603407d Added timing of prepare call for linear solvers 2019-04-10 14:40:46 +02:00
hnil
ed24b3fcad changed code to use direct solver on coarses scale for amg. This should runtime stettings for this.. 2019-04-10 14:40:46 +02:00
hnil
f05a9fdb25 Version of cpr amg which can reuse setup and also change smoothers of fine and coarse system by changing tags 2019-04-10 14:40:46 +02:00
Kai Bao
1faf4de904 not throw for failure when failing in calculating well potentials
it is just a temporary approach to recover the prediction case. In the
case, there is no group control, while there is some requirements of
well potential output
2019-04-09 14:28:44 +02:00
Kai Bao
e73fc4ebe4 first version of using upwinding to handle mass balance for MSW
some details to come to make it complete.

We are not handling it for injectors and also we are not considering the
upwinding when handle the frictional pressure loss and acceleration
pressure loss.
2019-04-08 14:23:21 +02:00
Kai Bao
2c69556fad correcting of the sign when calculating perforation pressure
the sign of the perforation and cell pressure difference was wrong.
2019-04-08 14:23:05 +02:00
Kai Bao
dadb31f093 fixing some mistakes from rebasing 2019-04-07 14:55:08 +02:00
Kai Bao
e5090a26fb setting the simulation parameters 2019-04-07 14:55:08 +02:00
Kai Bao
49a8c7bfd1 changing the sign of the mass balance equations for ms wells
following the conventions with StandardWell
2019-04-07 14:55:08 +02:00
Kai Bao
23d2097d44 various improvements to the inner iteration of ms wells 2019-04-07 14:54:05 +02:00
Kai Bao
031c19fc78 fixing mistakes due to rebasing. 2019-04-07 14:54:05 +02:00
Kai Bao
e9c0bdba06 using B_avg for the inner iteration for multisegment wells 2019-04-07 14:54:05 +02:00
Kai Bao
1df65913d7 updating the primary variables before calculating accumulation term 2019-04-07 14:54:05 +02:00
Kai Bao
79e51ab724 handling the situation that not all the connections are open
Then Wells struct and well from parser hold different numbers of
connections.

The current approach is a temporary solution. The final approach should
be done through parser side.

Things can be difficult is because that connections can be removed due
to multiple different causes after parsing. How to keep information
always updated is not trivial.
2019-04-07 14:53:38 +02:00
Kai Bao
c78a59eb1f considering the pressure dependence of the segment volume
segment volume is fixed, while duo to composition and pressure change,
within the fixed segment volume, different amounts of fluids can be
contained.
2019-04-07 14:53:38 +02:00
Kai Bao
972fed602e using a small value drawdown for connection
when crossflow is banned from the well, while the crossflow is happening
for this connection for mutlisegment well.
2019-04-07 14:53:38 +02:00
Kai Bao
04c35c8916 UseMultisegmentWell is defaulted to be true
to make the testing of the multisegment well model easier.
2019-04-07 14:52:18 +02:00
Kai Bao
f8767e09ec cleaning up and fixing the compilation error from rebasing 2019-04-07 14:52:18 +02:00
Kai Bao
9d83affb1b first version of restarting for multisegment well 2019-04-07 14:52:18 +02:00
Kai Bao
0d99686e97 fixing the segment treatment in the init of WellStateFullyImplicitBlackoil 2019-04-07 14:52:18 +02:00
Bård Skaflestad
2932531572
Merge pull request #1782 from GitPaean/upadting_perforation_solution_msw
updating perforation pressure and rates for MSW well
2019-04-05 16:41:43 +02:00
Kai Bao
e2b8edd968 updating perforation pressure and rates for MSW well 2019-04-05 10:38:01 +02:00
Kai Bao
b62dc0b5f2 addressing review comments 2019-04-04 16:22:19 +02:00
Kai Bao
ca69e2334a recovering well restart data for multisegment well
When multisegment wells are involved for RESTART, based on the recovered
segment-related quantities as Opm::data::Segment objects, the segment
phase rates and segment pressure are recovered as part of the
WellStateFullyImplicitBlackoil.
2019-04-04 16:22:19 +02:00
Bård Skaflestad
7523ffe15f Construct Segment-Related Structures in initLegacy()
Forgotten in previous commit.  This restores our ability to run
flow-legacy with the new WellStateFullyImplicitBlackoil::report().

Thanks to Kai Bao for alerting me to the issue.
2019-04-04 16:22:19 +02:00
Bård Skaflestad
55e452c605 Well State FIBO: Report() Segment Results by Seg-Numbers
This commit adds a new data member, seg_number_, that maps a linear
segment index (0 .. #segments - 1) to the appropriate segment number
(segment ID).  This ensures that member function report() is able to
produce segment results in terms of user-assigned segment numbers
rather than linear indices internal to the simulator and its state
variables.  This, in turn, decouples the well state object from the
output (summary/restart) code and makes the restart facility more
self contained.

Rewrite the unit test for WellStateFullyImplicitBlackoil to account
for the new indexing scheme when assigning the synthetic segment
results.

While here, also abide by the file's naming convention for data
members and locals.
2019-04-04 16:22:19 +02:00
Bård Skaflestad
e958ee1139 WellState FIBO: Initialize 'nseg_' in init()
Needed to guarantee that numSegments(wellID) returns sensible values
for wellID = numWells()-1 in the case of no multi-segment wells.
2019-04-04 16:22:19 +02:00
Bård Skaflestad
2418df701f WellState FIBO: Return Segment Vectors from report()
This commit extends class WellStateFullyImplictBlackoil to report
segment-related quantities as Opm::data::Segment objects (included
in Opm::data::WellRates objects).  All wells have at least a top
segment in the context of WellState FIBO, so there is a meaningful
value to report for each well.

We put the extraction of segment-related quantities into a new
helper function

    WellStateFullyImplicitBlackoil::reportSegmentResults()

to avoid cluttering up the body of report() more than absolutely
needed.

The primary use-case for this is assigning appropriate values to
items 8 through 11 of restart vector RSEG.  In turn, this will
enable restoring these quantities from a restart file.
2019-04-04 16:22:19 +02:00
Bård Skaflestad
519e6ad174 Make WellStateFIBO Header Self Contained
In particular, include Schedule.hpp since commit 222241b made the
init() member function depend on Schedule but failed to add the
requisite header.
2019-04-04 16:22:19 +02:00
hnil
3a0db3adff fixed indentation 2019-04-03 09:09:57 +02:00
hnil
30368ca7c5 Merge branch 'master' of https://github.com/OPM/opm-simulators into fix_cpr_oil_gas 2019-04-01 12:57:18 +02:00
hnil
88beff7a9d Fixed pressure equation for case where water is not pressent, often used for co2 simulations 2019-04-01 12:55:06 +02:00
Joakim Hove
66b7d1596a Remove ECHO and NOECHO from list of unsupported keywords 2019-03-29 12:27:11 +01:00
Joakim Hove
798c20a886 Remove EDITNNC from list of unsupported keywords 2019-03-29 12:26:54 +01:00
Joakim Hove
a9f680119a Remove WTEST from list of unsupported keywords 2019-03-29 12:26:35 +01:00
Joakim Hove
415694f206 Remove RPTSCHED from list of unsupported keywords 2019-03-29 12:26:15 +01:00
Tor Harald Sandve
17c249fa46
Merge pull request #1765 from andlaus/minor_cleanups
Minor cleanups
2019-03-26 12:38:50 +01:00
Joakim Hove
e16b19adc7
Merge pull request #1764 from joakim-hove/move-events
Move events
2019-03-21 14:51:52 +01:00
Joakim Hove
27c78eb3dc Extract NEW_WELL event from Schedule 2019-03-21 14:49:49 +01:00
Andreas Lauser
f1d3be27a7 ISTLSolverEbos: fix valgrind complaint that isIORank_ is not initialized
like most of the rest of the code, we now simply assume that rank 0
does all printing.
2019-03-21 12:35:26 +01:00
Joakim Hove
222241b3b3 Extract production update events from Schedule 2019-03-21 11:45:29 +01:00
Atgeirr Flø Rasmussen
f18477ce71
Merge pull request #1757 from atgeirr/improve_cpr_mod
Improve CPR solver
2019-03-21 11:19:10 +01:00
Atgeirr Flø Rasmussen
19b78b78c0 Updated after review comments. 2019-03-20 10:24:44 +01:00
Andreas Lauser
685a193558 make the branch self contained
Concretely this avoids having to patch eWoms by adding a generic
`Opm::transposeDenseMatrix()` template function instead of relying on
the dense matrix class to provide a `transpose()` method.
2019-03-19 15:09:19 +01:00
hnil
41acbcf861 change verbosity level setting for cpr to be more finegrained 2019-03-19 14:38:40 +01:00
hnil
b27e56e386 fixed bug in scaling of rhs for cpr 2019-03-19 14:32:32 +01:00
hnil
31f4c01938 Changes to make CPR able to use general indexing. 2019-03-15 11:27:38 +01:00
Arne Morten Kvarving
bedd88bc77 remove unused variables 2019-03-14 15:21:59 +01:00
Arne Morten Kvarving
d8d8050de9 convert to unix eol
unmark sources as executable
2019-03-14 13:37:05 +01:00
Arne Morten Kvarving
e1db2d2344 simplify: use dotproduct in DRS for vector 2019-03-14 11:52:21 +01:00
Arne Morten Kvarving
f98be9d43b simplify: use matrix-vector product in DRS for matrix 2019-03-14 11:52:21 +01:00
Arne Morten Kvarving
41ff0da2b4 fixed: drs without matrix-add-well-contributions 2019-03-14 11:52:21 +01:00
Arne Morten Kvarving
e05e5e4f0e Fix indenting 2019-03-14 11:52:21 +01:00
Atgeirr Flø Rasmussen
111feead14 Formatting fixes and removing unused code. 2019-03-14 11:22:07 +01:00
Atgeirr Flø Rasmussen
6ee5406a9f Formatting and indentation fixes. 2019-03-14 10:37:46 +01:00
Atgeirr Flø Rasmussen
4eb44b4808 Remove unused code and fix indentation changes. 2019-03-14 10:05:20 +01:00
Franz G. Fuchs
25299b7a0a correct exception handling in wells for parallel runs 2019-03-13 15:19:31 +01:00
hnil
40537f1999 Changes to make cpr work 2019-03-12 13:55:11 +01:00
Joakim Hove
485db348f0 Move well includes to subdirectory Well/ 2019-03-07 15:30:33 +01:00
Kai Bao
3c88cb2f9d correcting the sign of the accumulation term of StandardWell
Following the sign of the production rates.

And also keep the primary variables updated when calculating the
explicit quantities.
2019-03-06 09:48:30 +01:00
Andreas Lauser
c37bc1cf38 flow: hide a few unused eWoms parameters
these parameters where introduced with support for the TUNIING keyword
in `ebos`. since `flow` implements its own time stepping these
parameters are unused and should thus be hidden from view in it.
2019-03-04 13:58:38 +01:00
Andreas Lauser
21f5c1fbd3 ISTLSolverEbos: throw NumericalIssue instead of LinearSolverProblem
the former is caught by `ebos`, while the latter isn't. Alternatively,
this can be fixed by deriving `LinearSolverProblem` from
`NumericalIssue`, if preferred.
2019-03-04 13:58:38 +01:00
Andreas Lauser
0a9d6a0760 include missing header files
this makes the well model and the equil initializer header more autonomous.
2019-03-04 13:58:38 +01:00
Andreas Lauser
f36680bf3a EclProblem: Rename NewtonRawTolerance to NewtonTolerance
this property is not used by `flow` because `flow` implements its own
Newton method, but it not renaming the property prevents `flow` from
building.
2019-03-01 10:48:06 +01:00
Andreas Lauser
6753e9ca31 aquifers: add missing serialize() and deserialize() methods
the original purpose of those is to provide a checkpoint/restart
mechanism using an ad-hoc file format. They might also be useful for
implementing the adjoint functionality, though.
2019-02-25 15:04:16 +01:00
Andreas Lauser
46e41228b5 flow: call getConvergence() on the raw reservoir residual
i.e., the residual without the Schur complement for the wells being
applied. This hopefully fixes the issue pointed out by
[at]totto82.
2019-02-25 11:24:30 +01:00
Andreas Lauser
f5e7ca9bb3 well model: fix application of Schur complements
using the eWoms API for wells, the Schur compliment was not applied at
all. If `BlackOilWellModel::linearize()` was made non-trivial, the
Schur complement was applied twice in `flow`. With this patch, we only
apply this using the eWoms API (in
`BlackOilWellModel::linearize()`). I could not observe a signficant
effect on the convergence behaviour of `flow` for the cases which I
tested (Norne and realization 5 of Model 2).
2019-02-25 10:51:30 +01:00
Joakim Hove
935642ba88
Merge pull request #1716 from joakim-hove/unsupported-keywords
The missing features check takes a ParseContext argument
2019-02-22 07:49:43 +01:00
Andreas Lauser
d1fa4e3248 do not print the new core-ebos time step tuning parameters in the usage message
they are not used by `flow`.
2019-02-20 10:51:24 +01:00
WesselDeZeeuw
73faaf95b4 added aquiferConstants() 2019-02-18 09:19:26 +01:00
Arne Morten Kvarving
2bba0a395f fix initialization order 2019-02-18 09:19:26 +01:00
WesselDeZeeuw
fd4bdd6492 Trying to fix the WReorder Warning 2019-02-18 09:19:26 +01:00
WesselDeZeeuw
a72d61cb50 Base Class and AquiferCarterTracy and AquiferFetkovich implementation
Reordering of Aquifer Codes
2019-02-18 09:19:26 +01:00
Markus Blatt
2575cf715c
Merge pull request #1724 from blattms/strip-milu-debug-out
Remove bogus debug output printing in MILU.
2019-02-07 16:34:41 +01:00
Atgeirr Flø Rasmussen
dbd8b323da
Merge pull request #1721 from fgfuchs/parallel_well_logging
Correct Logging for Black Oil Well Model for parallel runs
2019-02-06 11:38:29 +01:00
Markus Blatt
29464cd832 Remove bogus debug output printing in MILU.
Somehow some standard output when running MILU () is still there and
it really clutters the output and and makes it unusable. This commit
removes it from flow.
2019-02-06 10:37:35 +01:00
Franz G. Fuchs
42f6f4d784 Correct Logging for Black Oil Well Model for parallel runs using DeferredLogger 2019-02-05 15:24:10 +01:00
Andreas Lauser
c379823dec Really adapt to the new linear solver API used by eWoms
I tested #1712 without deriving the `EclFlowProblem` type tag from
`FlowIstlSolver`, and it worked because the linear solver was still
`Opm::ISTLSolverEbos` because the linear solver is set via the
`LinearSolverSplice` a few lines down.

This time, I verified that the
`Ewoms::Linear::ParallelBiCGStabSolverBackend` was used if the
offending line was commented out. also, Norne worked fine with the
default solver as long as the Schur complement for the wells was done
explicitly.

Finally, the naming of the eWoms API is a bit inconsistent
(`setMatrix()` vs. `setResidual()`). any opinions here? I'm fine with
whatever.
2019-01-30 15:26:39 +01:00
Joakim Hove
13aeee109c The missing features check takes a ParseContext argument 2019-01-25 18:03:32 +01:00
Atgeirr Flø Rasmussen
e39f68787f
Merge pull request #1715 from atgeirr/fix-missing-virtual-destructor
Add virtual destructor to base class.
2019-01-21 21:58:15 +01:00
Atgeirr Flø Rasmussen
7c30ee46ce
Merge pull request #1713 from fgfuchs/replace_well_switching_logger
Replace well switching logger
2019-01-21 21:56:56 +01:00
Atgeirr Flø Rasmussen
6b6daa228a Add virtual destructor to base class. 2019-01-21 15:05:05 +01:00
Atgeirr Flø Rasmussen
037367bb03
Merge pull request #1714 from akva2/janitoring
Some janitoring
2019-01-21 15:00:58 +01:00
Atgeirr Flø Rasmussen
a00972dc0b
Merge pull request #1712 from andlaus/fix_ebos_convergence
adapt to the new preparation procedure of ewoms linear solvers
2019-01-21 14:54:09 +01:00
Arne Morten Kvarving
3f79495593 convert to unix line endings 2019-01-21 12:41:52 +01:00
Arne Morten Kvarving
fbc3491fe9 fixed: initializer list order 2019-01-21 12:41:36 +01:00
Franz G. Fuchs
7f1df40b74 fixed naming conventions, messages and comments 2019-01-21 08:26:28 +01:00
Franz G. Fuchs
26bc063a0c report rank only if size>1 2019-01-18 15:48:05 +01:00
Franz G. Fuchs
80747fc123 log rank 2019-01-18 15:16:59 +01:00
Franz G. Fuchs
129e7d181e replace well switching logger with deferred logger 2019-01-18 14:04:30 +01:00
Andreas Lauser
2563a58db8 adapt to the new preparation procedure of ewoms linear solvers 2019-01-18 09:05:24 +01:00
Bård Skaflestad
a689973760
Merge pull request #1708 from blattms/warn-parallel-logging-fallout
Warn about parallel logging fallout only on request / Use uppercase logfiles

Fixes OPM/opm-common#606
2019-01-17 16:13:25 +01:00
Markus Blatt
2dd0b62eff [bugfix] Added missing ) to make code compile 2019-01-16 12:03:01 +01:00
Markus Blatt
4f4f5cbca3 [bugfix] Only strip ".DATA" or "." extensions.
As there might models named MODEL.01.DATA for which a call
"flow MODEL.01" would have stripped the extension.
2019-01-16 12:03:01 +01:00
Markus Blatt
20d12f5b53 [bugfix] Use file not filename to remove files not in current directory.
Passing just the filename to remove only will remove files in the
current directory. When --output-dir the files would not have been
removed.
2019-01-16 12:01:46 +01:00
Markus Blatt
0c2edcfe47 Remove debugging output 2019-01-16 11:56:47 +01:00
Atgeirr Flø Rasmussen
f9f02724b9
Merge pull request #1710 from blattms/fix-parallel-well-hasTHPConstraints
Make BlackoilWellModel::hasTHPConstraints() work correctly in parallel.
2019-01-15 09:50:55 +01:00
Markus Blatt
89ec35e0d2 Make BlackoilWellModel::hasTHPConstraints() work correctly in parallel.
Previously, this method did not take parallelism into account but just
checked the local wells for the constraints. Depending on the load balancing
of the wells this sometimes led to different return values of the function on different
processors. As the output is used to limit the time step size, different processors
were sometimes using different time steps in their local computations. This screwed
up convergence checks int the nonlinear operator such that only some processor thought
convergence was already achieved while others wanted to do more iterations.

With this commit the method now returns whether there is any well on any processor
with the constraint being true.
2019-01-14 22:14:01 +01:00
Bård Skaflestad
767df6c6fe Deferred Logger: Support Older MPI Implementations
The MPI_Pack() function does not support pointers-to-const until
MPI-3.
2019-01-14 18:10:53 +01:00
Atgeirr Flø Rasmussen
8927df3095
Merge pull request #1705 from fgfuchs/feature_gatherdeferredlogger
gather deferredLogger implemented
2019-01-14 14:56:45 +01:00
Markus Blatt
4b6144bb65 Only warn and show parallel logging fallout on demand.
This commit adds an option that allows to enable detecting parallel
logging fallout (option --enable-logging-fallout-warning). It is now
false by default (previous behavior was as if the option was true).

If option is true a warning will be printed for any process with nonzero
rank that does try to log to *.PRT or *.DBG and the logged output will be appended
to these files at the end.
2019-01-14 13:06:21 +01:00
Markus Blatt
52270e7ac7 Use uppercase basename for *DBG and *PRT files for any extension.
Previously runs of flow started with 'flow base.' Would result in base..DBG
files; note the double dot and the case sensitivity. Now the file will be
BASE.DBG in this case. Note that any extension will be stipped (not only
.DATA as before).
2019-01-14 13:03:03 +01:00
Franz G. Fuchs
70425a681f style changes 2019-01-14 09:22:17 +01:00
Franz G. Fuchs
f61e55995a query mpi pack size 2019-01-11 21:23:09 +01:00
Franz G. Fuchs
828c3c7949 fix for variable number of messages 2019-01-11 19:05:11 +01:00
Joakim Hove
848072f658
Merge pull request #1362 from GitPaean/fixing_history_mode
Fixing history mode
2019-01-11 18:05:01 +01:00
Franz G. Fuchs
37d691e678 bugfixes 2019-01-11 15:47:22 +01:00
Franz G. Fuchs
5d902c8bd4 removed commented out line 2019-01-11 13:56:58 +01:00
Franz G. Fuchs
831a374d02 gather deferredLogger implemented 2019-01-11 13:53:18 +01:00
Tor Harald Sandve
2d2d0c4433 Adapt to linear solver api from ewoms 2019-01-10 15:50:09 +01:00
Atgeirr Flø Rasmussen
578923f93a
Merge pull request #1685 from GitPaean/sliencing_extra_
removing some white spaces.
2019-01-10 14:52:41 +01:00
Atgeirr Flø Rasmussen
601cce155c
Merge pull request #1693 from GitPaean/ignoring_well_no_perf
not adding wells without perforations to WellsManager
2019-01-10 14:47:20 +01:00
Kai Bao
affb767017
Merge pull request #1642 from WesselDeZeeuw/AquiferFetkovich
Aquifer fetkovich
2019-01-10 13:06:08 +01:00
Atgeirr Flø Rasmussen
9c799b9c97
Merge pull request #1698 from fgfuchs/new-feature-deferredlogger
New feature deferredlogger
2019-01-09 07:27:49 +01:00
Kai Bao
a9f40df678 not adding wells without perforations to WellsManager 2019-01-08 14:08:14 +01:00
Andreas Lauser
69e21eec0b
Merge pull request #1684 from andlaus/fix_tabulation_api
use the common API opm-material for functions
2019-01-08 13:34:58 +01:00
Franz G. Fuchs
040d576839 Use angle brackets for includes
verify that the tagged messages are forwarded correctly
2019-01-08 13:26:19 +01:00
Franz G. Fuchs
5b2a38fee5 doxygen comment 2019-01-08 11:41:19 +01:00
Franz G. Fuchs
c815c56287 new feature: DeferredLogger class 2019-01-08 11:28:18 +01:00
Kai Bao
47b933a58e removing DynamicListEconLimited
it is not used anymore. A lot of related implementation has been moved
to WellTestState.

Its existence makes some logic rather confusing and some new development
not easy.
2019-01-08 11:28:11 +01:00
Kai Bao
60e5a95972 only using Wells for determination of the RESV well
One of them is redundant, we do not need both of them.
2019-01-07 12:14:33 +01:00
Joakim Hove
8a9df385af Add ErrorGuard when parsing 2019-01-07 10:44:33 +01:00
Kai Bao
98450b5aa8 fixing the way in handling the RESV rates for WCONHIST 2019-01-04 15:10:18 +01:00
WesselDeZeeuw
1b5e65eedd fixing grid_index for AquiferFetkovich 2019-01-03 15:56:55 +01:00
Zeeuw
73445a3055 solves merging conflicts 2019-01-03 13:18:01 +01:00
WesselZ
d6f1f1bd3d Implementation of Fetkovich Aquifers. Makes changes to the files for BlackOilAquiferModel(_impl) and AquiferFetkovich file. 2019-01-03 13:04:10 +01:00
Kai Bao
bfc915849a BHP limit is taken care of from parser side
WellsManager does not need to provide default bhp limit anymore.
2019-01-03 09:48:02 +01:00
Kai Bao
ecdb299671 handling the RESV well distr calculation correctly
more work has been done in the parser side, and the simulator side is
also updated accoridingly.
2019-01-03 09:48:02 +01:00
Kai Bao
9a6f390f38
Merge pull request #1691 from atgeirr/fix-missing-grat
Fix missing GRAT in switch.
2019-01-02 21:22:41 +01:00
Atgeirr Flø Rasmussen
9ba0184da4
Merge pull request #1676 from GitPaean/fixing_grid_indices
fixing grid_index for AquiferCarterTracy
2019-01-02 15:32:28 +01:00
Atgeirr Flø Rasmussen
10c77257ad Fix missing GRAT in switch. 2019-01-02 15:29:22 +01:00
Kai Bao
b3f29de675 using compressed cell index for cellToConnectionIdx_ in AquiferCarterTracy 2019-01-02 14:59:12 +01:00
Kai Bao
dcf036e757 removing some white spaces. 2019-01-02 13:39:00 +01:00
Andreas Lauser
868f447f20 use the common API opm-material for functions
the way to get the result of an evaluation is by return value, i.e.,

 z = fn.eval(x, y);

not by passing a separate argument to the eval() function like

 fn.eval(x, y, z);

the `XYTabulated2DFunction` used the latter approach causing an API
inconsistency with all other tabulation classes in
opm-material. OPM/opm-material#319 fixes that but requires this mop-up
as a consequence.
2018-12-20 10:46:22 +01:00
Atgeirr Flø Rasmussen
483d6c50e1
Merge pull request #1681 from atgeirr/fix-shutting-new-well
Avoid opening well that was shut on same time step.
2018-12-17 11:47:31 +01:00
Atgeirr Flø Rasmussen
a48fbac322
Merge pull request #1680 from GitPaean/flow_polymw_remake
adding the simulator for flow injectivity study
2018-12-17 10:26:41 +01:00
Kai Bao
3a55e4aac2 fixing grid_index for AquiferCarterTracy
adding the mapping from cartisian indices to the actual grid indices.
2018-12-14 15:36:49 +01:00
Kai Bao
0c42a179d5 makig StandardWellV can handle producer
now StandardWellV should be able to be used as the general Standard
Well.
2018-12-14 10:24:08 +01:00
Atgeirr Flø Rasmussen
b1c16e536b Avoid opening well that was shut on same time step. 2018-12-14 10:04:59 +01:00
Kai Bao
76edcc0d91 addressing the second part of comments form PR#1680 2018-12-13 21:31:36 +01:00
Kai Bao
c4254240e2 addressing the first part of comments form PR#1680
there should be no functional change.
2018-12-13 13:29:59 +01:00
Kai Bao
5535406b67 cleaning StandardWell and StandardWellV
to make them more comparable, so that we can do refactoring easier
later.
2018-12-12 15:58:15 +01:00
Kai Bao
525caad508 finishing the function addWellContributions for StandardWellV 2018-12-11 21:40:47 +01:00
Kai Bao
612ac74b89 finish the injecivity functionality
the result looks okay
2018-12-11 21:40:47 +01:00
Kai Bao
391d31e1d6 adding the polymer molecular related to the well model 2018-12-11 21:40:47 +01:00
Kai Bao
7923628f83 adding the few injectivity related functions to StandardWellV 2018-12-11 21:40:47 +01:00
Kai Bao
a08216efd5 creating StandardWellV as the new well model
to employ dynamic-size Evalution, vectors and matrices.
2018-12-11 21:40:47 +01:00
Kai Bao
b079c0a1e5 adding flow_injecitivity executable target 2018-12-11 21:40:47 +01:00
Kai Bao
e1ede3c9d5 adding polymer molecular weight to BlackoilPhases and phaseUsageFromDeck 2018-12-11 21:31:47 +01:00
Kai Bao
93fb5a2c52 add a few fields related to injectivity to WellStateFullyImplicitBlackoil
to account for the water throughput, skin pressure and water velocity
for each perforation.
2018-12-11 21:31:47 +01:00
Atgeirr Flø Rasmussen
56cc37f255 Move throw-if-nan to after storing convergence report. 2018-12-11 13:10:22 +01:00
Tor Harald Sandve
3d866812a6
Merge pull request #1671 from atgeirr/fix-infinite-loop
Fix potential infinite loop
2018-12-07 12:41:37 +01:00
Atgeirr Flø Rasmussen
69cd2f9b84
Merge pull request #1668 from totto82/remove_logging
Remove repetitive logging info
2018-12-07 10:53:31 +01:00
Atgeirr Flø Rasmussen
cb06770b54
Merge pull request #1638 from trinemykk/addtracer
add method for getting the surfacevolume well connection rate
2018-12-07 10:38:21 +01:00
Atgeirr Flø Rasmussen
cf687c19fb
Merge pull request #1571 from kel85uk/fix_#14_aquifer_making_connections
Fixes for carter tracy aquifer model
2018-12-07 09:56:36 +01:00
Tor Harald Sandve
77869606f3 Remove repetitive logging info 2018-12-07 09:28:27 +01:00
Atgeirr Flø Rasmussen
23edd39c63 Revise logic of shutting wells vs. chopping step.
An infinite loop was possible if no wells were actually shut,
yet the step was restarted with no chopping.
2018-12-03 13:25:19 +01:00
Atgeirr Flø Rasmussen
6b896d178e Add bool return value to forceShutWellByNameIfPredictionMode().
Returns true if the well requested was actually shut.
2018-12-03 13:24:34 +01:00
kel85uk
4ccbfefe0b Factor out face area calculation to a separate function. 2018-11-29 09:43:55 +01:00
kel85uk
875fec79fc Makes the necessary interface changes to check for nullptr instead of values for the influx_coeff and aquifer initial pressure. 2018-11-29 07:56:53 +01:00
Kai Bao
575907941d removing some repeated code in phaseUsageFromDeck 2018-11-27 14:55:26 +01:00
Arne Morten Kvarving
51da91c1ad remove files moved to opm-simulators-legacy 2018-11-27 11:00:21 +01:00
Atgeirr Flø Rasmussen
b6f8128260
Merge pull request #1661 from akva2/removeBlackoilStateCorr
Remove usage of BlackoilState class
2018-11-27 10:14:06 +01:00
Tor Harald Sandve
b661791a63 Remove usage of BlackoilState class
This allows (re)moving of the following files
opm/autodiff/RateConverter.hpp
opm/autodiff/Compat.cpp
opm/autodiff/Compat.hpp
opm/core/props/BlackoilPropertiesInterface.hpp
opm/core/simulator/BlackoilState.cpp
opm/core/simulator/BlackoilState.hpp
opm/core/simulator/BlackoilStateToFluidState.hpp
opm/core/utility/initHydroCarbonState.hpp
opm/polymer/PolymerBlackoilState.cpp
opm/polymer/PolymerBlackoilState.hpp
tests/test_blackoilstate.cpp
2018-11-27 09:38:38 +01:00
Atgeirr Flø Rasmussen
7e91381cd8 Fix another parallel bug.
A WellSwitchingLogger was created in a local context (meaning not
all processes might be there), but since its destructor does
communication it must be called in a global context (guaranteeing
that all processes create it).
2018-11-26 10:21:25 +01:00
Atgeirr Flø Rasmussen
09405ce6f5 Fix bug in parallel case.
Since computeAverageFormationFactor() involves communication to reduce
values across the whole reservoir, it must be called by all processes,
also those with no wells to reopen.
2018-11-26 09:39:54 +01:00
Kai Bao
76271e3960 not shut a well because of cannot-produce-inject reason
which is a numerical reason. Removing it for now for better result.

It minght come back with more complete strategy and understanding.
2018-11-25 20:31:56 +01:00
Kai Bao
3dac7266b0 typo correction and message output adjustment for WTEST
recovering the const for updateWellStateWithTarget

there is no functional change.
2018-11-25 20:31:56 +01:00
Kai Bao
680c45b8f8 not updateWellControl for non-operable wells 2018-11-25 20:31:56 +01:00
Kai Bao
eaa3ad19f5 first version of the well testing for physical reason
the key difficulty is that we do not have reliable explicit information
to do the testing.

In this version, we try to obtain the explicit information by finishing
one converged solving.
2018-11-25 20:31:56 +01:00
Atgeirr Flø Rasmussen
48db4062b5 Count lower/upper entries simpler and faster. 2018-11-23 21:38:22 +01:00
Atgeirr Flø Rasmussen
8a038401ce Avoid in-loop allocation in convertToCRS().
This is done by counting entries first.
2018-11-23 21:38:22 +01:00
Atgeirr Flø Rasmussen
8bd3cbc1c1 Only shut down wells if under prediction-type control. 2018-11-23 12:51:13 +01:00
Atgeirr Flø Rasmussen
1979fc8f5d Avoid deep chopping by shutting down misbehaving wells. 2018-11-22 16:24:52 +01:00
Atgeirr Flø Rasmussen
422d477945 Add method BlackoilWellModel::forceShutWellByName(). 2018-11-22 16:24:17 +01:00
Atgeirr Flø Rasmussen
3bbc13a9ce Add step numbers to convergence reports, add query method. 2018-11-22 11:14:39 +01:00
Atgeirr Flø Rasmussen
9167d08839 Limit timestep when we have THP constraints present.
Using 16 days as the current limit. Could be made a user parameter.
2018-11-22 11:03:18 +01:00
Kai Bao
7d721408f2 adding canProduceInjectWithCurrentBhp to StandardWell
and use it the operability_status determination.
2018-11-22 07:05:46 +01:00
Kai Bao
f9988057af fixing comments from review of PR#1648
there should be no functional change
2018-11-20 13:56:14 +01:00
Kai Bao
8330c3a6a7 adjusting OperabilityStatus of WellInterface
hopefully, it improves the readability
2018-11-20 13:56:14 +01:00
Kai Bao
bf9b5367d9 some cleaning up, no functional changes 2018-11-20 13:56:14 +01:00
Kai Bao
90f805bf3e we need to open the cross-flow to solve the sigularity
if a well is banned from cross-flow. When it is under RATE control, its
BHP might be initialized in way causing all the drawdown in the wrong
direction. It will cause singular well equations.

here, we open the croff-flow to fix the singularity and rely on Newton
iteraton to get desired result.

possible alternative approach is to adust the BHP to avoid the situation
that all the drawdown are in the wrong direction.
2018-11-20 13:56:14 +01:00
Kai Bao
bba373c0b5 THP control tolerance changed to 1.e4
to fix some convergence problem.
2018-11-20 13:55:34 +01:00
Kai Bao
c994a99583 WCON keyword can open a well closed due to physical reason
more tests will be required to figure out more accurate specific way to
open a well closed due to physcal reason with WCON input.
2018-11-20 13:55:34 +01:00
Kai Bao
30742112c6 switching to BHP limit when THP limit is not operable
a well is specified with THP target, while it can not work under its THP
target. For this case, we will switch to its BHP limit.
2018-11-20 13:55:34 +01:00
Kai Bao
8e17d4aeba shut/close well based on physical limits 2018-11-20 13:55:34 +01:00
Kai Bao
ea42d1de9d adding function isOperable() to WellInterface
to indicate if the well is operable.
2018-11-20 13:55:34 +01:00
Kai Bao
ae3b514e0b not switching to THP/BHP limit when not operable under them 2018-11-20 13:54:45 +01:00
Kai Bao
5204bbe4ca adding function checkWellOperatability() to StandardWell
it includes BHPLimit check, THPlimit check, and also to see whether if
the well can produce/inject in the correct direction.
2018-11-20 13:54:45 +01:00
Kai Bao
dbe047a8a5 adding function operabilityCheckingUnderTHP to VFPProdProperties
To test the operability under THP limit.
2018-11-20 13:54:21 +01:00
Kai Bao
b27dc3ec2e stopping use function crossflowAllowed()
it turns on the crossflow when all the drawdown in the wrong direction,
then the well get rates in the wrong direction.

flow is not ready to handle this type of situation, then the only result
will be chopped time step.
2018-11-20 13:54:21 +01:00
Kai Bao
2e43b440e0 adding OperabilityStatus to WellInterface
to check the operability status of a well.
2018-11-20 13:54:21 +01:00
Trine S Mykkeltvedt
9fa2c09783 add method for getting the surfacevolume well connection rate
changed wellpointer from unique to shared to make it accecible from outside the wellmodel
add method for surfacevolume well connection rate
2018-11-20 08:59:50 +01:00
Atgeirr Flø Rasmussen
83ce1eb919 Ensure all residuals are checked for convergence.
Looping over all components instead of phases, to handle polymer etc.
correctly. Also slight refactoring of how component names for output
are handled.
2018-11-19 14:46:31 +01:00
Atgeirr Flø Rasmussen
b42165b560 Store convergence reports from all steps and iterations. 2018-11-19 11:48:07 +01:00
Atgeirr Flø Rasmussen
fe79a9fc07 Refactor getConvergence() to use ConvergenceReport.
Note: the communication and reduction for computing reservoir
convergence is not done by gathering ConvergenceReports, but
as before, using the convergenceReduction() method.
2018-11-19 11:48:07 +01:00
Atgeirr Flø Rasmussen
c006ea23f2
Merge pull request #1651 from totto82/speed_up_add_cell_rates
Speed up add cell rates
2018-11-19 10:49:19 +01:00
Tor Harald Sandve
9903738690 Avoid copying of SummaryConfig 2018-11-19 09:41:00 +01:00
Tor Harald Sandve
54e33a00d2 Only update intensiveQuantities for perforated cells 2018-11-19 09:41:00 +01:00
Tor Harald Sandve
3a38b9fe53 Move addCellRates to interface and add is_cell_penetrated 2018-11-19 09:41:00 +01:00
Atgeirr Flø Rasmussen
b5cb7bb829
Merge pull request #1644 from GitPaean/fixing_control_initialization
using control in DECK to initialize the control in WellState
2018-11-16 15:38:22 +01:00
Arne Morten Kvarving
f027262ec4 remove files 2018-11-16 14:53:37 +01:00
Kai Bao
7ded0907fe using control in DECK to initialize the control in WellState
otherwise, it might not be initialized if the well does not exisit in
previous well state, which will result in undefined behavoir.

it causes failure in running some realizations.
2018-11-16 13:47:43 +01:00
Arne Morten Kvarving
78158bf44a
Merge pull request #1643 from atgeirr/legacy-split-work
Avoid using legacy stuff for ebos linear solvers.
2018-11-16 13:29:24 +01:00
Atgeirr Flø Rasmussen
92a9b5fa9b Avoid using legacy stuff for ebos linear solvers. 2018-11-16 12:06:12 +01:00
Arne Morten Kvarving
fb7bdffbc7 fixed: signed/unsigned warnings 2018-11-16 08:48:53 +01:00
Kai Bao
b2be13ced4 changing std::cout to OpmLog with VFPProdProperties
for better output of information.
2018-11-15 11:46:22 +01:00
Kai Bao
76a3f2a1f5 adding function updateWellStateWithTHPTargetIPR()
this function can update the well state related based on the inflow
perfomance relationship and THP target.
2018-11-15 11:46:22 +01:00
Kai Bao
eeae6aa4fc adding two THP control related fucntions to WellInterface
getTHPConstraint() and getTHPControlIndex();
2018-11-15 11:46:22 +01:00
Kai Bao
01efbc639c adding function underPredictionMode() to WellInterface
to indicate whether a well is under prediction mode.
2018-11-15 11:46:22 +01:00
Kai Bao
9bfa39224f re-organize the interface of function findIntersectionForBhp()
hopefully, make it easier to use.

and also, there is no mistake introduced.
2018-11-15 11:46:22 +01:00
Kai Bao
8445c802c0 adding function calculateBhpWithTHPTarget to VFPProdProperties
it calculate bhp value based on THP target/limit, VFP curves and
inflow-performance relationship
2018-11-15 11:46:22 +01:00
Kai Bao
9b5e25ae0f function to calculate bhp from thp through intersection
of VFP curves and IPR relationship.

Some small adjustment of the interface will be done later.
2018-11-15 11:46:22 +01:00
Kai Bao
32b8e79eae adding function updateIPR() to StandardWell 2018-11-15 11:46:22 +01:00
Atgeirr Flø Rasmussen
0761850e7a
Merge pull request #1637 from OPM/fix-gather-convergemcereport-for-openmpi
Make MPI calls in gatherConvergenceReport with void*.
2018-11-15 11:04:35 +01:00
Markus Blatt
8cafb0e92a Make MPI calls in gatherConvergenceReport with void* instead of const void*
Fixes compilation of PR #1612 with open-mpi 1.6.5.
Compiler complained about not being able to transform const void* to void*
as needed by MPI.
2018-11-15 09:30:51 +00:00
Atgeirr Flø Rasmussen
5e51d6982b Add missing includes. 2018-11-14 21:09:40 +01:00
Atgeirr Flø Rasmussen
258c019989
Merge pull request #1617 from andlaus/sparse_matrix_abstraction
Sparse matrix abstraction
2018-11-14 16:14:00 +01:00
Andreas Lauser
e110fac52a
Merge pull request #1633 from akva2/rogue_and_unwanted
Remove some rogue includes and unwanted opm/autodiff/GridHelpers.hpp usage
2018-11-14 16:00:30 +01:00
Atgeirr Flø Rasmussen
db8c00db00
Merge pull request #1632 from akva2/use_istl_ebos
Use ebos ISTL class
2018-11-14 15:44:26 +01:00
Arne Morten Kvarving
fe8adb51d8 remove rogue includes 2018-11-14 15:37:44 +01:00
Arne Morten Kvarving
023924d057 changed: use UgGridHelpers directly
GridHelpers.hpp will be moved
2018-11-14 15:37:44 +01:00
Andreas Lauser
f58f5d3c7a MPIUtilities.hpp: include required header file 2018-11-14 14:36:11 +01:00
Andreas Lauser
d5089076d9 ISTLSolver: add now-necessary include 2018-11-14 14:35:52 +01:00
Andreas Lauser
f9104ca3d7 adapt to the eWoms interface for abstracting sparse matrices 2018-11-14 14:35:52 +01:00
Andreas Lauser
46641d5ace move the MatrixBlock class and assorted code to its own header
this avoids recompiles if something changes in ewoms because
ISTLSolver.hpp included ISTLSolverEbos.hpp . also, it is better style.
2018-11-14 14:35:52 +01:00
Kai Bao
bf967e50a7 adding hasTable() method to the VFP properties
and give a clear message about non-accessible table ID in the function
isVFPActive() in WellInterface.
2018-11-14 14:29:28 +01:00
Kai Bao
cf2eb1c336 remove a useless #if HAVE_OPENMP in BlackoilWellModel 2018-11-14 12:47:49 +01:00
Kai Bao
5a5c1bfcd3 addressing review comments from PR 1622 2018-11-14 12:45:41 +01:00
Arne Morten Kvarving
911a89fc4c fixed: use the ebos ISTL class
to avoid legacy code in tests that will sit in this repo
2018-11-14 12:27:39 +01:00
Kai Bao
afcdbcf202 detecting the NAN and INF values during VFP calculation
and give warning messages when they happen, since they can be the
culprits of the termination of simulation later.

For ADB related, I did not find a good way to do the detection, so there
is no warning message given.
2018-11-14 11:35:44 +01:00
Kai Bao
32b00b61f8 updating the thp value if VFP table is valid
through function isVFPActive().
2018-11-14 11:27:00 +01:00
Kai Bao
0d1a4b2d13 adding function isVFPActive() for WellInterface
Even the well does not have a THP target/constraint, but if it is
specified with a valid VFP table, we are supposed to update the thp
value for output purposes.
2018-11-14 11:27:00 +01:00
Atgeirr Flø Rasmussen
49a7773b30
Merge pull request #1630 from akva2/split_vfp
Split VFP classes in ebos and legacy
2018-11-14 11:04:05 +01:00
Arne Morten Kvarving
c5ae3adbbf changed: split VFP classes in base (ebos) and legacy
to get rid of eigen usage in ebos based classes
2018-11-14 09:54:33 +01:00
Atgeirr Flø Rasmussen
e1e39b4bd9
Merge pull request #1626 from GitPaean/fixing_different_number_of_wells_due_to_wtest
fixing different well number between Wells and Well_containers
2018-11-14 09:37:09 +01:00
Atgeirr Flø Rasmussen
54cc52dcaf
Merge pull request #1629 from akva2/remove_rogue_includes
remove two rogue includes
2018-11-14 09:06:13 +01:00
Arne Morten Kvarving
e8c2029166 remove two rogue includes
motivation: getting rid of BlackoilPropsAdFromDeck in ebos code path
2018-11-14 08:35:21 +01:00
Atgeirr Flø Rasmussen
8d2bc0e449 Add missing include for std::vector. 2018-11-13 20:26:44 +01:00
Kai Bao
8f56634b69 fixing different well number between Wells and Well_containers
when the solveWellEq did not get converged.
2018-11-13 20:01:38 +01:00
Atgeirr Flø Rasmussen
58642254e0
Merge pull request #1624 from akva2/split_mpi_func
split mpi function from newtoniterationutilities
2018-11-13 19:21:56 +01:00
Arne Morten Kvarving
e0a9e13a97 split mpi function from newtoniterationutilities 2018-11-13 15:26:44 +01:00
Kai Bao
2ed2c20f12
Merge pull request #1623 from atgeirr/use-convergencereport-gather
Use gatherConvergenceReport() in BlackoilWellModel.
2018-11-13 15:16:34 +01:00
Atgeirr Flø Rasmussen
d858f2901a
Merge pull request #1614 from totto82/well_ppp
Output of well potential when asked for
2018-11-13 14:29:58 +01:00
Atgeirr Flø Rasmussen
446dbdf86d Use gatherConvergenceReport().
This avoids multiple all-reduce blocks, simplifying the code and
enabling us to return the report from getWellConvergence().
2018-11-13 14:02:55 +01:00
Atgeirr Flø Rasmussen
6e7cc756de Move implementation of gatherConvergenceReport() to cpp file.
No templates involved, no reason to keep it in header. This also makes
building more robust by only invoking HAVE_MPI in the cpp file, after
including config.h.
2018-11-13 14:01:01 +01:00
Atgeirr Flø Rasmussen
566f6813dd Created gatherConvergenceReport() function and test. 2018-11-13 10:30:32 +01:00
Atgeirr Flø Rasmussen
48b0024855 Refactor BlackoilModelEbos::getConvergence().
The loop over elements to extract data has been moved to a separate
function localConvergenceData().
2018-11-13 10:19:15 +01:00
Atgeirr Flø Rasmussen
576852b299 Remove cell_index from ReservoirFailure struct. 2018-11-13 10:19:15 +01:00
Atgeirr Flø Rasmussen
58eedf0d65
Merge pull request #1615 from GitPaean/using_events_for_well_states_2
detecting whether some well control events happens to a well
2018-11-13 07:42:19 +01:00
Kai Bao
eb86404934 addressing review comments of PR #1615 2018-11-12 15:20:23 +01:00
Kai Bao
5e736fc4c7 decoupe the rate and fraction relaxation
the relaxation for these two have different goals and problems, it is
wise to decuple them.
2018-11-09 14:28:44 +01:00
Kai Bao
179a505b83 addressing the review comments #1597 2018-11-09 14:28:44 +01:00
Kai Bao
7e17a60c58 relaxation to avoid overshoot during Newton update in StandardWell
Solvent model is not handled yet.
2018-11-09 14:28:44 +01:00
Kai Bao
73f8ed912e detecting whether some well control events happens to a well
When there is some events happen to a well, we use the control mode
 from the DECK, and update the WellState based on the new control model.
 Otherwise, we can use the control mode from the previous well state,
 and keep the values from the previous well state as an intial guess.
2018-11-09 13:36:49 +01:00
Tor Harald Sandve
8dc874dda4 Make the computation of the productivity index only when asked for 2018-11-08 13:28:52 +01:00
Tor Harald Sandve
3bc292d168 Store well potential in well_state and pass it for output if asked for
A zero well potential is passed if the computation fails or
if it is a multisegmented well.
2018-11-08 13:28:24 +01:00
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
Arne Morten Kvarving
af863c82a0
Merge pull request #1562 from andlaus/threading_fixes
flow: default to 2 threads if OpenMP is available
2018-09-11 12:37:13 +02:00
Joakim Hove
b9df94a70f Use Well CF and Kh calculations from opm-common 2018-09-10 12:23:59 +02:00
Markus Blatt
8455c0457b ParallelFileMerger: Remove old local regex and fileWaringRegex_ instead 2018-09-05 16:42:13 +02:00
Markus Blatt
5aab0dfb7b Really only warn about CASENAME.[0-9]+.[A-Z]+.
Previously we did warn about files not starting with CASENAME.
2018-09-05 16:06:36 +02:00
Markus Blatt
07bc4396ab Let ParallelFileMerger only warn about CASENAME.[0-9]*.EXT files.
Previously the regex issued warning for all files containing ".[0-9]*." in the name
in the output directory. That was too general and created more warnings than we wanted.
2018-09-05 16:06:36 +02:00
Markus Blatt
0863f665aa [bugfix] Make parallel file merge work again for any --output-dir.
This fixes fallout from the merge of PR #1512. Since then the
ParallelFileMerger was always given the current directory even if
another output directory was requested. This resulted in
CASENAME.<procid>.<ext> files in that directory never being merged and removed.
Now the ParallelFileMerger gets the output directory path again.
2018-09-05 14:03:00 +02:00
Robert Kloefkorn
97f8f76d13 [bugfix][ISTLSolverEbos] make compile with current dune master. 2018-09-04 12:39:40 +02:00
Andreas Lauser
05dfe43fd2 flow: default to 2 threads if OpenMP is available
I still think it is better to specify `--threads-per-process`
explicitly, but this patch is better than the current machinery...
2018-08-31 12:32:41 +02:00
Markus Blatt
9a692b2d09 Improvements to MILU help strings 2018-08-30 18:22:17 +02:00
Markus Blatt
324cb70d3e Renamed MIluVariant to MiluVariant to correct --m-ilu-variant parameter.
It should be --milu-variant and is it now. Maybe the parameter system
could be a bit smart and detect consecutive upper case letters and treat
them correctly.
2018-08-30 18:02:24 +02:00
Atgeirr Flø Rasmussen
c4c461b389
Merge pull request #1558 from totto82/changeDefaultTolMB
Change default ToleranceMB from 1e-5 to 1e-6
2018-08-27 16:09:09 +02:00
Tor Harald Sandve
b0101647a1 Change default ToleranceMB from 1e-5 to 1e-6 2018-08-27 11:54:32 +02:00
Arne Morten Kvarving
518634f994 fixed: need to init ewoms thread manager 2018-08-24 15:44:09 +02:00
Tor Harald Sandve
61b4b34ad6
Merge pull request #1542 from andlaus/use_ewoms_blackoil_update
flow: use the update procedure of the eWoms blackoil model
2018-08-21 09:16:35 +02:00
Andreas Lauser
445a36972b FlowMainEbos: remove unused typedef ThreadManager
this may avoid a compiler warning under some circumstances.
2018-08-20 13:10:15 +02:00
Andreas Lauser
455b38e729 remove some now unused parameters 2018-08-17 13:16:11 +02:00
Andreas Lauser
66b95c7f8d flow: use the update procedure of the eWoms blackoil model 2018-08-17 13:03:37 +02:00
Andreas Lauser
f2b0630040 flow: minor parameter related fixes
- Change the brief description slightly
- Do not print anything anymore if there are no unused parameters
- Change the boiler plate text for printing the parameters to the
  PRT/DBG files

in part, this has been requested by [at]atgeirr.
2018-08-15 23:36:56 +02:00
Andreas Lauser
620a89587c fix a few parameter names
bph should be "bhp" and "DWellFractionMax" looks weird as a command
line parameter (-d-well-fraction-max). now, it only looks slightly
weird in the c++ code.
2018-08-15 23:34:32 +02:00
Andreas Lauser
43ac2e36c6 remove the Flow prefixes of parameters only used by flow
this has been requested by [at]atgeirr.

Note: The FlowLinearSolverVerbosity, FlowNewtonMaxIterations and
FlowNewtonMinIterations parameters are still prefixed because they
clashes with parameters registered deeply within eWoms.
2018-08-15 23:34:32 +02:00
Andreas Lauser
1ac74c62ee flow: print the parameters at the beginning of the .PRT and .DBG files 2018-08-15 23:34:32 +02:00
Andreas Lauser
0714ab5930 add the parameters which were introduced by the MILU PR
i.e., make it possible to specify them via the eWoms parameter system.
2018-08-15 23:34:32 +02:00
Andreas Lauser
61650a22df fix the fallout of OPM/opm-simulators#1495 2018-08-15 23:34:32 +02:00
Andreas Lauser
076312b28a fix the CPR warning
this was probably a rebase mistake. thanks to [at]blattms for noticing
this.
2018-08-15 23:34:32 +02:00
Andreas Lauser
d94be85a9d flow: do not mention unused parameters in the help message
while they do no longer appear in the help message, in the code they
are still there and can be specified and used as normal.

also, this patch makes --print-parameters=1 and --print-properties=1
work.
2018-08-15 23:34:32 +02:00
Andreas Lauser
66b749c2eb undo most of the variable changes of the previous commits
a few were probably forgotten.
2018-08-15 23:34:32 +02:00
Andreas Lauser
394790475f make it possible to disable the terminal output
the well model and (probably) the ECL output writing code look like
they cannot be gagged.
2018-08-15 23:34:32 +02:00
Andreas Lauser
b5cddef928 flow: switch it to use the eWoms parameter system
this has several advanges:

- a consistent and complete help message is now printed by passing the
  -h or --help command line parameters. most notably this allows to
  generically implement tab completion of parameters for bash
- the full list of runtime parameters can now be printed before the simulator
  has been run.
- all runtime parameters understood by ebos can be specified
- no hacks to marry the two parameter systems anymore
- command parameters now follow the standard unix convention, i.e.,
  `--param-name=value` instead of `param_name=value`

on the negative side, some parameters have been renamed and the syntax
has changed so calls to `flow` that specify parameters must adapted.
2018-08-15 23:34:32 +02:00
Andreas Lauser
976ab03f68 fork ISTLSolver into a legacy and non-legacy version
this is necessary because only the latter can use the property system.
2018-08-15 23:33:50 +02:00
Andreas Lauser
ca2428cf13 adapt to the rename of the EclOutputDir parameter to OutputDir in eWoms 2018-08-14 10:37:24 +02:00
Bård Skaflestad
b087cf54af
Merge pull request #1495 from blattms/red-black-ilu
Added support for red black ilu
2018-08-01 18:52:07 +02:00
Markus Blatt
8482b435eb Added clarifying comment on definedness of const_cast 2018-08-01 18:06:45 +02:00
Markus Blatt
f850f04c93 Prevent unnecessary copies of vectors using references. 2018-08-01 15:22:07 +02:00
Markus Blatt
458cd8768f Rely less on implicit includes of header files 2018-08-01 15:20:45 +02:00
Atgeirr Flø Rasmussen
b4bdea1d3f
Merge pull request #1535 from akva2/remove_unnecessary_includes
Remove unnecessary includes
2018-07-30 16:40:57 +02:00
Andreas Lauser
ac2bc410f3 adapt to the fluid system naming convention change in opm-material
note that almost the only thing which is affected is legacy code.
2018-07-27 12:54:02 +02:00
Markus Blatt
019835b123 Added support for red-black ordering to ILUn. 2018-07-20 14:43:40 +02:00
Markus Blatt
865a690243 Allow usage of red-black ILU0.
We introduced two runtime parameters for this: ilu_redblack and
ilu_reorder_spheres. If the last one is false, we try to preserve
the ordering within in the colors. Otherwise we try to achieve a D2
(alternative diagonal) ordering.
2018-07-20 14:43:40 +02:00
Markus Blatt
190272e21d Added two alternatives for reordering based on colors 2018-07-20 14:43:40 +02:00
Markus Blatt
3953b20215 Also return the number of vertices for each color from Welsh-Powell-Algorithm. 2018-07-20 14:43:40 +02:00
Markus Blatt
a1650a58f4 Added Welsh Powell graph coloring 2018-07-20 14:43:40 +02:00
Markus Blatt
43c1714478 Added various other variants of MILU.
These versions are inspired by the ones used in SuperLU and the enums
to choose them have simuilar names, but without leading S (MILU_1-MILU_3).

The following variants are supported (chosen by the enum MILU_VARIANT):
ILU: plain ILU
MILU_1:  lump diagonal with dropped row entries.
MILU_2:  lump diagonal with the sum of the absolute values of the dropped row
         entries.
MILU_3: if diagonal is positive add sum of dropped row entrires. Otherwise substract them.
MILU_4: if diagonal is positive add sum of dropped row entrires. Otherwise do nothing
2018-07-20 14:43:40 +02:00
Markus Blatt
63058559bc Added various other variants of MILU.
These versions are inspired by the ones used in SuperLU and the enums
to choose them have simuilar names, but without leading S (MILU_1-MILU_3).

The following variants are supported (chosen by the enum MILU_VARIANT):
ILU: plain ILU
MILU_1:  lump diagonal with dropped row entries.
MILU_2:  lump diagonal with the sum of the absolute values of the dropped row
         entries.
MILU_3: if diagonal is positive add sum of dropped row entrires. Otherwise substract them.
MILU_4: if diagonal is positive add sum of dropped row entrires. Otherwise do nothing
2018-07-20 14:42:46 +02:00
Markus Blatt
e0a138e23c [MILU] Add dropped elements only to diagonal.
We did add the dropped matrix blocks to the diagonal blocks,
but this is not MILU where oone only modifies the diagonal.
With this patch we fix this behaviour and now only modify the
diagonal of the diagonal block.
2018-07-20 14:42:46 +02:00
Markus Blatt
0bae240a42 Allow user to choose modified ILU0 decomposition.
Using the parameter ilu_milu=true|false (default=false) the user can now choose
to use the modified ILU0 decomposition. If selected values will
not be dropped for nonzero entries but added to the diagonal of U.
This approach will result in A*e = L*U*e for vector e with all entries
beging 1.
2018-07-20 14:42:46 +02:00
Markus Blatt
e1e289dc1e Added MILU0 decomposition 2018-07-20 14:42:46 +02:00
Arne Morten Kvarving
1b44ba751a FlowMainEbos: only need the interface for blackoil newton iterations 2018-07-12 11:39:31 +02:00
Arne Morten Kvarving
57ddd9dc05 FlowMainEbos: remove unused includes 2018-07-12 10:12:13 +02:00
Arne Morten Kvarving
ab4d0e63af BlackOilModelEbos: remove unused include 2018-07-12 10:12:13 +02:00
Andreas Lauser
7f8120d609 flow: do not set the ExportGlobalTransmissibility property anymore
this has not been required anymore since the output code was moved to
the ebos core.
2018-07-11 13:49:17 +02:00
Arne Morten Kvarving
4fe6ac5bab
Merge pull request #1531 from andlaus/better_well_API
use a raw pointer to specify the auxiliary module for wells
2018-07-10 13:26:33 +02:00
Joakim Hove
b4fa06f305 Mark keyword ACTIONX as not supported 2018-07-10 09:37:25 +02:00
Andreas Lauser
ccd0da2e4c use a raw pointer to specify the auxiliary module for wells
this is necessiated by the replacement of `std::shared_ptr` by raw
pointers for the eWoms auxiliary equation infrastructure. Note that by
default `flow` will *not* create an auxiliary equation module because
it modifies the operator that is used by the linear solver instead.
2018-07-09 12:14:43 +02:00
Tor Harald Sandve
4a2780d161 split close wells from close connection 2018-07-03 15:13:30 +02:00
Tor Harald Sandve
a5f5581441 Fix more minor issues based on review 2018-07-03 14:07:53 +02:00
Tor Harald Sandve
6606bb75b2 Minor fix based on code review 2018-06-29 13:33:56 +02:00
Tor Harald Sandve
d769e7649a Name completion and connection consistently 2018-06-28 13:47:10 +02:00
Tor Harald Sandve
834f680587 Add support for COMPLUMP in WECON and WTEST 2018-06-28 13:28:30 +02:00
Tor Harald Sandve
22755cc257 Add support for combination of multi-segmented wells and WTEST 2018-06-28 10:16:29 +02:00
Tor Harald Sandve
3e53ed6386 implement WTEST support 2018-06-28 10:16:29 +02:00
Joakim Hove
7568ec0f90
Merge pull request #1519 from joakim-hove/completion-refactor
Completion refactor
2018-06-28 09:58:51 +02:00
Tor Harald Sandve
b1e03d5196
Merge pull request #1523 from atgeirr/fix-currentDateTime
Cast argument for milliseconds() call to an integer.
2018-06-28 07:51:53 +02:00
Andreas Lauser
c794028bcf flow: fix the time held by the simulator object 2018-06-27 12:13:50 +02:00
Atgeirr Flø Rasmussen
53e46ca017 Cast argument for milliseconds() call to an integer.
Apparently required by boost::posix_time::milliseconds.
2018-06-27 11:11:27 +02:00
Joakim Hove
514cdc574c Completion refactor 2018-06-26 12:30:54 +02:00
Atgeirr Flø Rasmussen
576612c4b2 Rename .CASE.DEBUG -> CASE.DBG. 2018-06-25 22:22:29 +02:00
Alf Birger Rustad
e72ef6bcc7 Reduce default number of threads from four to two with OpenMP 2018-06-24 21:51:04 +02:00
Joakim Hove
06149a3b05
Merge pull request #1500 from joakim-hove/rename-completion-set
Refactor of connections & completions
2018-06-21 08:13:56 +02:00
Joakim Hove
94d57f686c Refactor of connecrions & completions 2018-06-20 11:51:00 +02:00
Tor Harald Sandve
a255f8cc6f
Merge pull request #1497 from andlaus/pass_async_output_param
Pass the async_output parameter to core ebos
2018-06-20 10:38:14 +02:00
Markus Blatt
1bd735428f Deactivate selection of CPR via eclipse keyword
as this preconditioner is still considered experimental
and fails miserably for some models. Users can select
CPR using the command line.
2018-06-15 15:34:01 +02:00
Andreas Lauser
830c119362 Pass the async_output to core ebos
this was forgotten when moving the output writing code into the ebos
core. (this does not really matter for most people because
asynchronous output is wanted anyway and it was unconditionally
enabled.)
2018-06-15 11:44:07 +02:00
Joakim Hove
bd57d574d3 Rename Completion -> Connection 2018-06-11 17:23:28 +02:00
Andreas Lauser
5a9b81db33 remove the hasDisgas and hasVapoil arguments from SimulatorFullyImplicitBlackoilEbos
They seemed to be unused already. I suspect that were only there for
API compatibility reasons.
2018-06-06 10:59:42 +02:00
Andreas Lauser
37b6a540af remove BlackoilOutputEbos
after the actual output writing code has been moved to core ebos, this
was just a unnecessary glue layer for API compatibility.
2018-06-06 10:59:41 +02:00
Andreas Lauser
dfbc24b35f flow: avoid wrangling around with dummy state objects
these objects are only used by flow_legacy, so not having to deal with
them anymore lets non-legacy flow avoid to jump through a lot of hoops
for the sake of having a common API.

this required a fork of the NonlinearSolver and AdaptiveTimeStepping
classes. this is not a problem because the original classes would get
pruned to look like the new ones once flow_legacy gets moved out of
the opm-simulators module.
2018-06-06 10:59:41 +02:00
Kai Bao
1b587fa118 removing some whitespaces 2018-06-05 09:24:50 +02:00
kel85uk
e560242a19 Resolved conflicts by taking changes from pull request 2018-06-04 16:33:34 +02:00
kel85uk
1237724c9a Cleans up the BlackoilModelEbos.hpp file to address the final comments. 2018-06-04 15:28:58 +02:00
kel85uk
963d42aab3 Corrects the whitespace again for blackoilmodelebos.hpp 2018-06-04 15:28:57 +02:00
kel85uk
b7fbe66c91 Cleans up the Aquifer model classes. 2018-06-04 15:28:56 +02:00
kel85uk
2fe24e16cf Adds the influx coefficient multipler to the face area fraction calculation. Also removes more unnecessary variables and reordered initialization list to prevent ordering warnings in gcc compiler 2018-06-04 15:28:54 +02:00
kel85uk
1a33e81d9c Cleans up the code and removes unused functions 2018-06-04 15:28:53 +02:00
kel85uk
0df51a8797 Implements the correct check for aquifer face connections to make sure face is connected to the boundary 2018-06-04 15:28:52 +02:00
kel85uk
d8f8646452 Removes Eigen from interpolation of influence tables 2018-06-04 15:28:51 +02:00
kel85uk
e2513038c4 Implemented initialization procedure. 2018-06-04 15:28:49 +02:00
kel85uk
89255da464 Working aquifer object with equations implemented. Still need to do initialization solve. 2018-06-04 15:28:48 +02:00
kel85uk
ac7204fb2b Working and building skeleton which works for multiple aquifers. Also gets the properties of the aquifers using AQUCT keyword. 2018-06-04 15:28:47 +02:00
kel85uk
5a87818bb2 First addition of the class BlackoilAquiferModel. 2018-06-04 15:28:46 +02:00
Tor Harald Sandve
e128dc7e87
Merge pull request #1478 from GitPaean/adding_control_equations
Adding well control equations
2018-06-04 15:12:31 +02:00
Kai Bao
477740ca38 introducing aquiferActive() to reduce of the overhead
for the models that does not include a aquifer model.
2018-05-31 09:51:54 +02:00
Kai Bao
cb9fea6ba0 changing GTotal to WQTotal for StandardWell 2018-05-30 15:44:05 +02:00
Joakim Hove
dd3fb03286 THPRES API updates 2018-05-30 14:27:32 +02:00
kel85uk
677255055d Cleans up the BlackoilModelEbos.hpp file to address the final comments. 2018-05-30 14:26:07 +02:00
kel85uk
e99fb80ce3 Corrects the whitespace again for blackoilmodelebos.hpp 2018-05-30 14:21:32 +02:00
kel85uk
7f2c2444f0 Cleans up the Aquifer model classes. 2018-05-30 14:21:30 +02:00
kel85uk
2170a00b21 Adds the influx coefficient multipler to the face area fraction calculation. Also removes more unnecessary variables and reordered initialization list to prevent ordering warnings in gcc compiler 2018-05-30 14:21:28 +02:00
kel85uk
8d3d7ccc2f Cleans up the code and removes unused functions 2018-05-30 14:21:24 +02:00
kel85uk
ec680664fd Implements the correct check for aquifer face connections to make sure face is connected to the boundary 2018-05-30 14:21:22 +02:00
kel85uk
0d55b7aace Removes Eigen from interpolation of influence tables 2018-05-30 14:21:21 +02:00
kel85uk
7e1bb457cd Implemented initialization procedure. 2018-05-30 14:21:19 +02:00
kel85uk
5ca8bb676d Working aquifer object with equations implemented. Still need to do initialization solve. 2018-05-30 14:21:17 +02:00
kel85uk
ae22d18e20 Working and building skeleton which works for multiple aquifers. Also gets the properties of the aquifers using AQUCT keyword. 2018-05-30 14:21:14 +02:00
kel85uk
10e896fa6b First addition of the class BlackoilAquiferModel. 2018-05-30 14:21:10 +02:00
Joakim Hove
e09c86c5bf Mark keyword GNETINJE as not supported 2018-05-29 16:48:55 +02:00
Kai Bao
53ab8bc132 lowering the singular limit for the invertMatrix function.
to avoid failure due to singularity detection.
2018-05-29 09:36:55 +02:00
Kai Bao
97c51a7d02 addressing some comments
and handle the situation that a non-zero target specified for a
non-producing phases. We set the rates to zero for this case.
2018-05-28 16:05:02 +02:00
Kai Bao
ce849fe18e adding a fix for the zero rate control for StandardWell
to avoid under-determined problem.
2018-05-28 16:05:02 +02:00
Kai Bao
efbac8a628 adding function updateThp() to StandardWell
hopefully, to improve the readability.
2018-05-28 16:05:02 +02:00
Kai Bao
f3f096dbbb recovering some unecessary changes.
PR #1477 introduced different ways to improve the WellState initialization.
Basically, the WellState initialization will be something challenging to
handle along with the improvement of the well model.
2018-05-28 16:05:02 +02:00
Kai Bao
18917b81f4 adding THP well control equation 2018-05-28 16:05:02 +02:00
Kai Bao
b2bace449e adding function processFractions()
to reduce the length of the function updatePrimaryVariablesNewton()
2018-05-28 16:05:02 +02:00
Kai Bao
e2e24ec355 adding the checking of tolerance of well control equation 2018-05-28 16:05:02 +02:00
Kai Bao
179a03144f more bug fixing
mainly to recover the runnign related to group control example
2018-05-28 16:05:02 +02:00
Kai Bao
1d218d2fe4 small bug fixes. 2018-05-28 16:05:02 +02:00
Kai Bao
3b70f5004f adding assembleControlEq to StandardWell
solvent model needs to be handled for the injector control.
2018-05-28 16:05:02 +02:00
Kai Bao
62947c85b9 updating updatePrimaryVariablesNewton with new primary variables. 2018-05-28 16:05:02 +02:00
Kai Bao
6066884a3d refactoring updateWellState in StandardWell to be two functions
for other use.
2018-05-28 16:05:02 +02:00
Kai Bao
eb851b6580 adding BHP to the primary variables for StandardWell 2018-05-28 16:05:02 +02:00
Joakim Hove
a0538ff4bb
Merge pull request #1470 from joakim-hove/use-restart-value
Use RestartValue when saving eclipse output
2018-05-18 08:58:28 +02:00
Joakim Hove
c76898d0c9 Use RestartValue when saving eclipse output 2018-05-15 16:56:03 +02:00
Tor Harald Sandve
2534cc46db WIP fix vfp in flow 2018-05-15 10:24:50 +02:00