Commit Graph

43 Commits

Author SHA1 Message Date
Tor Harald Sandve
e9b097cbf4 Only compute well potential if needed
A boolen user parameter is added to controll the computation of well
potential.

This is a temporary fix to assure that no extra computation time is used
on well potential calculation if it is not needed. The long term fix
will require a more thorough revising of the well group implementation.
2016-04-19 16:24:28 +02:00
Tor Harald Sandve
18246263e9 Move computation of well potentials from simulator class ot model class
- the computation of well potentials in the model class calculates the
well potentials using computeWellFlux()
- in this way the well potential calculations also handle well where
some perforations are closed by the simulator due to cross-flow.
- the well potentials pr perforation and phase is stored in the well
state.
2016-04-19 09:21:15 +02:00
Tor Harald Sandve
a2bff9149a Remove unused argument from computeWellPotentials() 2016-04-04 15:03:59 +02:00
Tor Harald Sandve
e4b52a457f Only calculate well potentials for cases with well groups 2016-04-04 09:03:13 +02:00
Tor Harald Sandve
bd81bda57b Remove well_perforation_pressure_diffs fr WellStateFullyImplicitBlackoil
- Calculate the well perforatino pressure difference based on bhp and
perforation pressures instead of storing it in
WellStateFullyImplicitBlackoil
2016-04-04 08:35:59 +02:00
Tor Harald Sandve
30bd24f2fe Compute well potentials
The well potentials are caculated based on the well rates and pressure
drawdown at every time step. They are used to calculate default guide
rates used in group controlled wells.

well_perforation_pressure_diffs is stored in
WellStateFullyImplicitBlackoil as it is needed in the well potential
calculations.
2016-04-01 14:58:46 +02:00
Robert Kloefkorn
915177979c SimulatorBase: also show total time at each time step for performance comparison. 2016-02-12 12:14:02 +01:00
chflo
399b4f11c4 restart flow 2016-02-10 14:47:55 +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
Atgeirr Flø Rasmussen
ffc91bc35e Remove unnecessary EclipseState argument from run(). 2015-12-07 13:40:06 +01:00
Andreas Lauser
976d38bf37 implement abililty to change the geology during the simulation run
i.e. it now supports stuff like MULTFLT in the schedule
section. Possibly, the MPI-parallel code paths need some fixes. (but
if the geology is not changed during the simulation, the parallel code
will do the same as before.)

the most fundamental change of this patch is that the
reference/pointer to the DerivedGeology object is made
non-constant. IMO that's okay, though, becase the geology can no
longer assumed to be constant over the whole simulation run.
2015-11-26 13:35:33 +01:00
Bård Skaflestad
022bd6b8fe Merge pull request #536 from atgeirr/refactor-nonlinear
Refactor nonlinear solver
2015-11-18 11:47:43 +01:00
Markus Blatt
5449047682 Splits a very long line. 2015-11-13 15:52:01 +01:00
Markus Blatt
f8715e31e7 Calculate parallel averages in RateConverter.
Previously, local averages were calculated and used in the
well equations. With this commit we add versions of defineState and
calcAverages that take into account the parallel domain decomposition
and calculate correct averages.

Function  calcAverages has a boolean template parameter
indicating whether this is a parallel run. Additionally we introduce
AverageIncrementCalculator with the same boolean template parameter.
In a parallel run we check whether the cell is owned by the process and
only in this case return an increment bigger than zero. In a sequential run
(no MPI or just one process -> empty boost::any parameter) no overhead is
introduced.
2015-11-13 15:46:34 +01:00
Atgeirr Flø Rasmussen
7c21a630e5 Rename NewtonSolver -> NonlinearSolver. 2015-11-12 17:42:47 +01:00
Robert Kloefkorn
77f9977ca8 BlackOilModelBase: revision of adaptive time stepping such that time error is computed
by model.
2015-11-10 09:53:25 -07:00
Markus Blatt
ba9f227a5b Cater for wells null pointer
In the rare occasion that there are no wells int the model the wells_ pointer in
BlackoilModelBase class is a null pointer. Therefore we need to test whether it is
null and only process well information if it is not.

This problem was reintroduced with PR #460 and gets fixed by this
one. No we can run the equilibrium examples without wells again.
Sorry for the inconvenience.
2015-10-22 16:28:18 +02:00
Robert Kloefkorn
c32749b129 SolverFullyImpl: avoid multiple output of redundant information in parallel. 2015-09-16 14:36:28 +02:00
Atgeirr Flø Rasmussen
85993f4eb0 Silence some more warnings. 2015-09-14 17:23:20 +02:00
Tor Harald Sandve
53c1195b64 Rename variable from i to injector 2015-09-03 11:29:12 +02:00
Tor Harald Sandve
944092bd89 Add support for WCONINJH
Explicitly adds bhp control on rate controlled history matching
injector.The default bhp limit is a large number to make sure that the
well does not switch. Alternativly bhp limit can be specified using
WELTARG. This is typically done to make sure the bhp limit stays within
the pressure limits in the PVT tables. Support for WELTARG is also added
to the history matching producers (WCONHIST)
2015-09-03 11:26:07 +02:00
babrodtk
62c2373a9d Minor refactoring 2015-08-19 11:46:29 +02:00
babrodtk
6b3356e74d Minor fixes for comments in PR 2015-08-19 08:07:51 +02:00
babrodtk
c513ed4a17 Implemented support for VFPINJ tables. Runs through synthetic non-trivial example 2015-08-11 16:31:43 +02:00
babrodtk
503885fd93 Fixed warnings 2015-08-10 15:34:19 +02:00
babrodtk
bc2fb23af9 Minor beatuifications of code 2015-08-10 15:04:21 +02:00
babrodtk
32e4c8caab Minor bug-fixes 2015-08-10 08:55:05 +02:00
babrodtk
d27403b427 Initial integration of VFPProdTables 2015-08-10 08:54:34 +02:00
babrodtk
15d3171ae1 Partial integration of VFPProperties into BlackoilModel 2015-08-10 08:53:42 +02:00
Robert Kloefkorn
affc64f346 SimulatorBase: avoid using update operator for bool. 2015-07-29 10:21:55 +02:00
Robert Kloefkorn
3ef2e883f8 SimulatorBase[bugfix]: is_parallel_run_ was not initialized when output_terminal was
false.
2015-07-27 13:08:36 +02:00
Tor Harald Sandve
065b2f595c Add support for NNC in the simulator
1) NNC are added the grad, div and average operators
2) NNC are added the upwindSelector
3) NNC transmissibilities are added to the face transmissibilities
2015-07-09 12:15:59 +02:00
Kai Bao
0f123a8890 correcting typo in 'to large' 2015-06-16 17:03:53 +02:00
Atgeirr Flø Rasmussen
512d18a669 Create solver and model parameters only once. 2015-06-01 13:07:45 +02:00
Atgeirr Flø Rasmussen
9b30e2e0d7 Use unique_ptr instead of shared and raw pointers. 2015-05-29 14:57:49 +02:00
Atgeirr Flø Rasmussen
2bec485184 Fix a few warnings. 2015-05-29 14:57:30 +02:00
Andreas Lauser
496c32d2a6 do not use std::shared_ptr where it is deemed inappropriate by the maintainers
note that I don't agree with this change and will assume no
responsibility if something goes down the gutter.
2015-05-29 14:34:47 +02:00
Andreas Lauser
5666df807b some stylistic changes
in particular, where to put empty lines and spaces. Also added a
copyright statement for myself to a few files and added a comment. the
new comment was requested by [at]bska, the rest was requested by
[at]atgeirr.
2015-05-29 12:35:56 +02:00
Andreas Lauser
553f32e6cf SimulatorBase: move the new method bodies from the .hpp to the _impl.hpp file 2015-05-28 13:55:54 +02:00
Andreas Lauser
662cd9791e SimulatorBase: only care about the solver in the run() method
this is necessary because some older simulations only provide the
full-fledged solver class but no physical model.

(also, this allows to use something else than the standard newton
solver.)
2015-05-28 13:55:54 +02:00
Andreas Lauser
a154c8394d Simulator, Model: add everthing which is required by the polymer simulators
basically, this adds some hooks to the SimulatorBase class and the
model and introduces a few types to the SimulatorTraits.
2015-05-28 13:55:54 +02:00
Andreas Lauser
45fb80f547 SimulatorBase: remove the opaque pointer pattern
because the class is (and will stay) a template and for templates the
benefits of the opaque pointer pattern go from "small" to "zero".
2015-05-28 13:55:53 +02:00
Andreas Lauser
3eec9f3432 introduce a "SimulatorBase" class
so, far it is just a copy of the old "SimulatorFullyImplicitBlackoil"
class (which became a simple forward to the base class). The intention
is to unify the common simulator code in this class to avoid excessive
copy-and-pasting.
2015-05-28 13:55:53 +02:00