Commit Graph

593 Commits

Author SHA1 Message Date
Markus Blatt
33edf62a78 Use set of names of defunct wells from load balancer for parallel WellManager.
Instead of the WellsManager guessing which wells are handled by other
processes we now use tha ouput of the load balancer to compute wells
that are handled by other processes.

With the previous approach it was not possible to calculate this information
correctly. Wells with only one completion next to the border of the
processes' partition were represented on multiple processes. In additition
wells that the eclipse schedule section defined with completions on non-active
cells in sequential runs were not at all calculated in parallel runs.

With the new approach the CpGrid::loaBalance routine returns the set names of
wells that are not handled by this process when setting up the simulation. This
information is then used throughout the simulation.
2016-09-13 10:58:26 +02:00
babrodtk
739976535f Added rs and rv output capabilities 2016-09-07 14:55:53 +02:00
babrodtk
40b2b95d87 Extended the support for keywords for restart file output 2016-09-07 14:55:53 +02:00
babrodtk
35bed24465 Initial version for outputting cell data 2016-09-07 14:55:53 +02:00
Liu Ming
4b88d4edd1 use PV weighted pressure when HCPV is zero. 2016-09-07 14:00:30 +08:00
Liu Ming
1943978dbd update PAV formulation. 2016-09-05 10:38:57 +08:00
Atgeirr Flø Rasmussen
b5e986df5f Remove well state argument from computeFluidInPlace(). 2016-08-30 13:34:18 +02:00
Liu Ming
a492a60a64 document computeFluidInPlace function. 2016-08-30 10:30:26 +02:00
Liu Ming
056708574c compute fluid in place by regions. 2016-08-30 10:30:25 +02:00
Liu Ming
28583e4237 Add computeFluidInPlace function. 2016-08-30 10:30:25 +02:00
Liu Ming
5f059da0a4 look for water injector only, if not find, just continue to next step. 2016-08-12 08:27:07 +08:00
Atgeirr Flø Rasmussen
ac11db635c Merge pull request from qilicun/polymer-well-iters
well iterations should start from 0.
2016-08-05 09:07:35 +02:00
Liu Ming
635c6b3986 well iterations should start from 0. 2016-08-04 10:54:31 +08:00
Liu Ming
6256199176 log the message to OpmLog. 2016-08-04 10:24:15 +08:00
Liu Ming
ec06eebc06 set polymer rates to the right well. 2016-08-04 10:22:49 +08:00
Atgeirr Flø Rasmussen
5581771917 Merge pull request from qilicun/debug-polymer
fix polymer in flow bug.
2016-08-03 08:52:17 +02:00
Liu Ming
3e2907f4bd fix polymer in flow bug. 2016-08-03 11:10:37 +08:00
Andreas Lauser
bec3ce31fd distinguish between the number of non linear iterations and the number of linearizations
while the printed number of "Non linear iterations" was correct in a
strict sense, it was very confusing if one was working on the
linearization code because the last Newton iteration of each time step
was linearized but not solved for (and the solution was thus not
updated hence it does not count as a "non linear iteration"). This
makes sense for large problems were the total runtime is completely
dominated by the performance of the linear solver, but smaller
problems exhibit the opposite behavior (i.e., for them, runtime is
typically dominated by the linearization proceedure), so one is more
interested in the number of linearizations, not the number of linear
solves.
2016-08-02 12:14:10 +02:00
Andreas Lauser
5410d97701 pass the simulation timer object instead of the time step size
models may need a more detailed picture of where they are in the
simulation. Note that since the timer objects are available at every
call site, this is also not a very deep change.
2016-07-12 15:55:12 +02:00
Kai Bao
b2524a7dc3 making a forwarded updateListEconLimited in SimulatorBase.
and some changes to make the code compile for all the simulators.
2016-07-05 13:02:28 +02:00
Kai Bao
98a6495abc makeing wellModel public for flow_polymer and flow_solvent. 2016-07-05 13:02:27 +02:00
Liu Ming
d3e6a657cd Initial well iterations as a special number, output it if it is valid. 2016-06-30 09:04:44 +08:00
Liu Ming
136839bd20 fix warnings. 2016-06-29 16:42:43 +08:00
Kai Bao
a1cc880ad7 only calculating repesentative radius when having PLYSHLOG. 2016-06-28 15:50:50 +08:00
Markus Blatt
4c9d359638 Print all well switching in parallel.
As for each well only one process is responsible, the output process
does not see all wells. Ergo some well switching information was never
printed in a parallel run.

Therefore with this commit the well switching
message is printed regardless on which process it appears.
2016-06-28 15:50:50 +08:00
Liu Ming
ad01934670 initial IterationReport. 2016-06-28 15:48:20 +08:00
Liu Ming
ed09cfa7e4 fix indentation. 2016-06-28 14:38:20 +08:00
Liu Ming
c6586d36c8 return IterationReport for assemble and solver well eq methods. 2016-06-28 14:37:48 +08:00
Liu Ming
922490a9d8 Merge remote-tracking branch 'remotes/opm/master' into format-step-output 2016-06-21 09:28:30 +08:00
Liu Ming
d13d21231d keep the unity of the API. 2016-06-21 08:36:15 +08:00
Liu Ming
969f6f1d1b return well iteration from simulators. 2016-06-21 08:35:33 +08:00
Joakim Hove
efa9a604a8 Merge pull request from jokva/deprecate-wellptr
Well shared_ptr alias deprecated
2016-06-20 14:57:02 +02:00
Atgeirr Flø Rasmussen
bf5fecfe9a Make prepareStep() parameters const. 2016-06-17 08:41:02 +02:00
Jørgen Kvalsvik
ef51e9a2eb Well shared_ptr alias deprecated
The shared_ptr aliasing is deprecated, and in the Well case this has
been removed upstream.
2016-06-16 10:01:04 +02:00
Jørgen Kvalsvik
71560b5fb2 BlackoilOutputWriter rewritten to use opm-output
Changes to BlackoilOutputWriter as mandated by the split and rewrite of
opm-output. Notable changes:

* BlackoilOutputWriter is no longer a child class of OutputWriter.
* Minor interface changes; writeTimeStep requires a Wells pointer
* restore requires a Wells* pointer
* VTK/Matlab support rewrites; no longer inherits OutputWriter
* WellStateFullyImplicitBlackoil::report added, to write its data to a
  opm-output understood format

Relies on utility/Compat.hpp for quick conversion to the opm-output
defined formats.
2016-06-07 10:15:07 +02:00
Kai Bao
fbe7143f54 using WellModel functions in BlackoilPolymerModel.
reducing some repeated code.
2016-05-23 15:11:52 +02:00
Kai Bao
184bff95ba using well_model_ to represent the WellModel member 2016-05-23 15:11:51 +02:00
Kai Bao
06775ee02c Make BlackoilMultisegmentModel constructured from MultisegmentWells
Instead of being coustructed based StandardWells and having a
MultisegmentWells member.
2016-05-23 15:11:51 +02:00
Kai Bao
4254b48b57 unifying interface of a few functions of Wells classes
updateWellControls()
updateWellState()
addWellControlEq()

The change of function computeWellConnectionPressures() is not done
completely. Should find a solution later.
2016-05-23 15:11:51 +02:00
Kai Bao
1f2442fe80 reducing paramter list for more functions in StandardWells
computeWellFlux
updateWellState
updateWellControls
addWellControlEq
computeWellPotentials
2016-05-23 15:11:50 +02:00
Kai Bao
0667fceb35 reducing the number of arguments of computeWellConnectionPressures
and computeWellConnectionDensitesPressures.

These functions need to be renamed.
2016-05-23 15:11:50 +02:00
Tor Harald Sandve
01c782dbf3 Remove primalvariable_ and use hydroCarbonState instead
the hydrocarbonstate is stored in the reservoir state and
used instead of the primalvariable_
The initial hydrocarbonstate is computed using
initHydroCarbonState(...);
2016-05-13 09:04:48 +02:00
Kai Bao
8236a32aee sliencing a few shadowing warnings. 2016-05-06 17:59:00 +02:00
Kai Bao
13acc8ee03 moving computeWellConnectionPressures to StandardWells
the results look okay, while the running for flow_solvent needs further
investigation even the results with flow_solvent actually look okay.

With two different version of
computePropertiesForWellConnectionPressures, flow_solvent produces the
same results. This is something needs further investigation.

The current implementation requires a copy of
computeWellConnectionPressure in StandardWells and StandardWellsSolvent.
That means probably we need to introduce the asImpl() for the Wells.
2016-04-29 10:07:10 +02:00
Kai Bao
dcca0b0b76 moving addWellControlEq to StandardWells 2016-04-29 10:07:10 +02:00
Kai Bao
eb278c3c9a moving addWellFluxEq() to StandardWells
Conflicts:
	opm/autodiff/BlackoilModelBase_impl.hpp
2016-04-29 10:07:10 +02:00
Kai Bao
a72f04a564 fixing the compilation and running of flow_polymer 2016-04-20 14:26:13 +02:00
Kai Bao
5da57973fe adding updateWellState and updateWellControls to StandardWells 2016-04-14 16:05:18 +02:00
Kai Bao
376c940f09 moving updatePerfPhaseRatesAndPressures to StandardWells 2016-04-14 16:05:18 +02:00
Kai Bao
c398a6e424 puting computeWellFlux in StandardWells 2016-04-14 16:05:18 +02:00
Kai Bao
c120313f09 renaming visc parameters to mu_w for better readability 2016-04-14 15:09:03 +02:00
Kai Bao
104f6053f1 removing blank spaces and replacing the tab with spaces by retab 2016-04-14 14:57:26 +02:00
Kai Bao
30774d8309 correcting buggy visc pointer usage in effective viscosity calculation 2016-04-14 14:52:00 +02:00
Kai Bao
666f91505d using effective polymer viscosity for polymer mobility calculation. 2016-04-14 13:45:21 +02:00
Pål Grønås Drange
77fc26475b Using new EclipseState API, made ->s into .s 2016-04-12 14:47:50 +02:00
Kai Bao
9972dae32a updating for the comments.
implement wells(), localWellsActive() and wellsActive() for the
BlackoilModelBase and its derived classed.
2016-04-06 12:54:01 +02:00
Kai Bao
8a52dd743b making StandardWells a simple class. 2016-04-06 12:54:01 +02:00
Kai Bao
3947ff5b1d moving localWellsActive and wellsActive to StandardWells
maybe later it can be something general for different types of wells.
2016-04-06 12:54:01 +02:00
Kai Bao
723da3e618 recovering the flow_polymer 2016-04-06 12:54:01 +02:00
Atgeirr Flø Rasmussen
6549658622 Merge pull request from GitPaean/polymer_linearsolver
making the interleaved solver works for blackoil polymer simulator.
2016-03-31 15:39:54 +02:00
Atgeirr Flø Rasmussen
3aa5158842 Merge pull request from kjellkongsvik/Move_OutputWriter_to_opm-output
Refactored to use OutputWriter from opm-output
2016-03-31 09:44:09 +02:00
Kai Bao
b39b9a85a2 making the interleaved solver works for blackoil polymer simulator.
The CPR solver does not work yet. An error will be thrown if people
specify to use CPR linear solver.
2016-03-30 16:19:56 +02:00
Joakim Hove
18c07d5d66 Replaced SimulatorState -> SimulationDataContainer 2016-03-29 10:48:36 +02:00
Kjell W. Kongsvik
ea9e572a65 Refactored to use OutputWriter from opm-output
As OutputWriter has been deleted from opm-core
Only changes in includes
2016-03-17 14:45:30 +01:00
Atgeirr Flø Rasmussen
7bfa8f405e Fix bug in overriding method. 2016-02-29 11:18:51 +01:00
Bård Skaflestad
1237251ee4 Merge pull request from joakim-hove/state-updates
PolymerState changes
2016-02-24 07:31:37 -06:00
Joakim Hove
7ddd1c1c80 PolymerState changes
- The PolymerState class will derive from SimulatorState, instead of
   containing a TwoPhaseState instance.

 - The Polymer calculation methods take PolymerState& input argument
   instead of TwoPhaseState&
2016-02-22 18:42:13 +01:00
Andreas Lauser
7c3020822a properly create state.temperature in the FullyImplicitCompressiblePolymerSolver class 2016-02-22 15:16:44 +01:00
Jørgen Kvalsvik
19e41bd246 Change Deck access methods/types to references
opm-parser#677 changes the return types for the Deck family of classes.
This patch fixes all broken code from that patch set.

https://github.com/OPM/opm-parser/pull/677
2016-02-19 11:55:19 +01:00
Robert Kloefkorn
743fad877a remove unused typedef. 2016-02-16 10:25:57 +01:00
Robert Kloefkorn
4111797822 BlackoilModelBase: added parameter singlePrecision and print residual to large at right
place.
2016-02-12 12:14:02 +01:00
Tor Harald Sandve
dee96db6b2 Cleaning and adding comments 2016-02-12 10:42:26 +01:00
Tor Harald Sandve
c85f10046c Density and viscosity as inputs instead of computed in computeMassFlux
Density and viscosity are given as input instead of calculated inside
computeMassFlux. This allow for modifying the properties prior to
calling computeMassFlux which avoids code duplication in the solvent
implementation.
2016-02-12 10:42:26 +01:00
Jørgen Kvalsvik
850f0884f1 Improve includes from opm-parser
Adopting to opm-parser PR#661, add previously missing includes.

2016-01-26 13:32:34 +01:00
Jørgen Kvalsvik
087710df7d Fixes includes wrt opm-parser PR-656
Several files stopped compiling due to relying on opm-parser headers doing
includes. From opm-parser PR-656 https://github.com/OPM/opm-parser/pull/656
this assumption is no longer valid.
2016-01-20 15:11:30 +01:00
Joakim Hove
24601480e3 Using new Table api. 2016-01-08 13:57:38 +01:00
Joakim Hove
833f5d053f Avoid using Deck.
Removed incorrect use of Deck for polymer and solvent properties.
2016-01-08 13:57:37 +01:00
Atgeirr Flø Rasmussen
b420cccfc3 Add warning about simulating without WPOLYMER.
Warning was in the main() of flow_polymer.cpp,
but will disappear from there after refactoring.
2015-12-18 13:58:13 +01:00
Tor Harald Sandve
e3393c5ee9 Handle combination of threshold_pressure and nnc
The nncs threshold pressures are calculated and appended to the face
threshold pressures
2015-12-08 11:03:05 +01:00
Andreas Lauser
e0a1abba09 adapt to the "mutable geology" changes from opm-autodiff 2015-11-26 12:20:15 +01:00
Atgeirr Flø Rasmussen
e3a5e1682d Adapt to refactored/renamed NonlinearSolver (was NewtonSolver). 2015-11-18 10:19:32 +01:00
Atgeirr Flø Rasmussen
b918f20771 Add model() and relativeChange() methods. 2015-11-13 13:58:41 +01:00
Atgeirr Flø Rasmussen
bbf1862023 Update for new surfaceDensity() interface. 2015-11-13 13:30:01 +01:00
Atgeirr Flø Rasmussen
b2bf88e689 Silence warning about missing initializer. 2015-11-13 13:29:32 +01:00
Kai Bao
0936917610 removing some white spaces. 2015-10-24 13:23:25 +02:00
Kai Bao
2b5f7c2b5c correcting the typo when reading PLYROCK table.
PlymaxTable was used instead.
2015-10-24 13:19:36 +02:00
paean
956b8fc633 silencing a shadowing warning related to shrate. 2015-10-19 07:53:27 +02:00
Andreas Lauser
651bd91482 use the error macros from opm-common 2015-10-12 15:24:59 +02:00
Atgeirr Flø Rasmussen
0054c90e45 Merge pull request from atgeirr/refactor-getconvergence
Refactor getConvergence()
2015-10-06 10:27:39 +02:00
Joakim Hove
1a0358d85a Using TableContainer. 2015-10-04 09:00:01 +02:00
Atgeirr Flø Rasmussen
058e4326ca Remove unused functions. 2015-10-01 10:47:13 +02:00
Atgeirr Flø Rasmussen
b885c8e454 Add "Polymer" material and disable custom getConvergence(). 2015-09-30 14:49:15 +02:00
Atgeirr Flø Rasmussen
b324606084 Update to work with AutoDiffBlock::M now being AutoDiffMatrix. 2015-09-08 09:57:17 +02:00
Atgeirr Flø Rasmussen
6c00cddb35 Whitespace fix.
Made as a separate commit in order to make the next commit diff understandable.
2015-09-08 09:36:42 +02:00
Joakim Hove
86dfd557a0 Using TableManager to get tables. 2015-09-01 13:02:15 +02:00
Kai Bao
d9cb0066df correcting the determination of out-of-table-range velocity
comparing the location to the line instead of comparing the velocity
value directly.
2015-08-17 18:17:23 +02:00
Atgeirr Flø Rasmussen
834d607d57 Update to match changes in opm-autodiff.
BlackoilModelBase now requires an EclipseState constructor argument.
Also silenced two minor warnings.
2015-07-10 12:57:30 +02:00
Kai Bao
c88b1d6a8b adapting to the change in autodiff#408 2015-06-24 14:23:25 +02:00
Kai Bao
f00f7c38b6 using size_t to avoid signed/unsigned comparison. 2015-06-23 14:39:04 +02:00
Kai Bao
1f36eaa27e constructing vector directly instead of using std::copy. 2015-06-23 14:33:02 +02:00