Commit Graph

3093 Commits

Author SHA1 Message Date
Kai Bao
92a4d8687f adding bhp as a parameter of computeWellFlux in StandardWellsDense
To make the function usable for computing well potentionals.
2017-01-16 16:18:35 +01:00
Atgeirr Flø Rasmussen
5955cb07ba Merge pull request #1026 from andlaus/flow_ebos-sync-with-flow_legacy
Flow ebos sync with flow legacy
2017-01-16 15:56:20 +01:00
Andreas Lauser
ae38de70ef flow_ebos: update the solution of the eWoms model from the reservoir state before each time step
this is has become necessary by the recent SWATINIT changes and is
needed to calculate the fluid-in-place consistently as well as for
ebos to use the correct initial solution for the initial
linearization.
2017-01-16 12:42:35 +01:00
Andreas Lauser
30e9d3826d synchronize SimulatorFullyImplicitBlackoilEbos::run() with SimulatorFullyImplicitBlackoil::run() 2017-01-16 12:42:35 +01:00
Andreas Lauser
d87b788d09 BlackoilModelEbos: make computeFluidInPlace() work unconditionally
i.e. it now works regardless of whether the cache for intensive
quatities is available or not.
2017-01-16 12:42:35 +01:00
Atgeirr Flø Rasmussen
1d918453c9 Warn instead of throw when missing DIMS keyword.
Default values will be used for parsing.
2017-01-13 11:07:02 +01:00
Atgeirr Flø Rasmussen
8534b82c2e Merge pull request #1022 from atgeirr/silence-warning
Silence unused argument warning.
2017-01-13 09:26:46 +01:00
Atgeirr Flø Rasmussen
bc35b753b5 Merge pull request #1003 from blattms/merge-only-created-parallel-files
Only try to merge files from a parallel run if ouptput requested.
2017-01-12 17:00:12 +01:00
Atgeirr Flø Rasmussen
6ea858b6b9 Silence unused argument warning. 2017-01-12 15:35:13 +01:00
Atgeirr Flø Rasmussen
af3049b5a6 Merge pull request #1016 from andlaus/flow_ebos-remove-redundant-gravity
flow_ebos: remove the redundant gravity objects
2017-01-12 12:19:19 +01:00
Andreas Lauser
7a7ebc010f flow_ebos: remove the redundant gravity objects
the canonical source is now the EclProblem object.

v2: don't change the API of the DerivedGeology class. thanks to
    [at]atgeirr for noticing that this can be avoided.
2017-01-12 11:20:02 +01:00
Atgeirr Flø Rasmussen
0028b35e03 Merge pull request #1018 from andlaus/simplify_isParallel
simplify BlackoilModelEbos::isParallel()
2017-01-12 10:41:15 +01:00
Tor Harald Sandve
28bbe20344 Merge pull request #1012 from andlaus/cleanup_StandardWellsDense
small improvements to StandardWellsDense
2017-01-12 10:27:18 +01:00
Atgeirr Flø Rasmussen
af2c9a8200 Merge pull request #1015 from andlaus/flow_ebos-remove-redundancy
FlowMainEbos: remove the redundant pointer to the MaterialLawManager
2017-01-12 10:25:47 +01:00
Atgeirr Flø Rasmussen
eb8132453f Merge pull request #1017 from andlaus/remove_allcells
SimulatorFullyImplicitBlackoilEbos: remove unused "allcells_" attribute
2017-01-12 09:59:41 +01:00
Andreas Lauser
3a9146866a simplify BlackoilModelEbos::isParallel() 2017-01-11 18:57:47 +01:00
Andreas Lauser
f808c5b681 SimulatorFullyImplicitBlackoilEbos: remove unused "allcells_" attribute 2017-01-11 18:53:06 +01:00
Andreas Lauser
8c76bf5b9b FlowMainEbos: remove the redundant pointer to the MaterialLawManager 2017-01-11 17:16:46 +01:00
Andreas Lauser
f2115b44ac BlackoilModelEbos: remove the last traces of "SolutionState"
it was not used for real for a while anyway.
2017-01-11 17:07:08 +01:00
Andreas Lauser
b324d17003 small improvements to StandardWellsDense
the most significant change is that only a "PhaseUsage" object must be
passed to its constructor instead of a full "fluid object". also, the
pointers to the vector of "active" phases has been converted into a
full object. (this helps to avoid potential use-after-free errors.)
2017-01-11 17:02:20 +01:00
Markus Blatt
aacbdb1777 Switch off non-owner entries during accumulation.
Previously entries attached to cells that are present
on multiply processes were acumulated several times.
2017-01-11 12:20:32 +01:00
Joakim Hove
4411712dce Merge pull request #1008 from joakim-hove/correct-rsrv-dim
Fixed output units RS and RV.
2017-01-10 21:39:25 +01:00
Atgeirr Flø Rasmussen
cd9dcfc59d Merge pull request #1007 from blattms/StandardWells-support-no-wells
Make StandardWells support cases with no wells.
2017-01-09 17:05:04 +01:00
Atgeirr Flø Rasmussen
1c594100c2 Merge pull request #1006 from blattms/ebos-fip-global-sum
Added missing global sum for FIP totals.
2017-01-09 17:04:50 +01:00
Joakim Hove
6b0626272d Fixed output units RS and RV. 2017-01-09 16:20:19 +01:00
Markus Blatt
86209139db Make StandardWells support cases with no wells.
Dense case was handled in PR #1002. I was not aware that the same
regression was in the legacy code. wells_manager.c_wells() might return
a null pointer if there are no wells in the domain of a process.
2017-01-09 16:12:07 +01:00
Markus Blatt
7c91be92a9 Added missing global sum for FIP totals. 2017-01-09 15:55:39 +01:00
Markus Blatt
fb55aedf4b Fix unit conversion of fip totals (pav) again.
This was (accidentally?) introduced in c880efae5b (labelled
"mostly eliminate Eigen in the FIP and VFP code"). As it is neither
present in flow_ebos nor in flow_mpi and was previously removed in
ccec17f8 (labelled "Fixed missing unit conversion for total fluid in place")
I assume that this is a bug.
2017-01-09 15:31:40 +01:00
Atgeirr Flø Rasmussen
c292dd4975 Merge pull request #1004 from andlaus/fix_undefined_behaviour
avoid relying on undefined behaviour
2017-01-09 12:49:03 +01:00
Atgeirr Flø Rasmussen
fbad16aba7 Merge pull request #1001 from blattms/ebos-parallel-fip-total
Implement parallel fip total computation.
2017-01-09 12:33:43 +01:00
Markus Blatt
0a904deb02 Only try to merge files from a parallel run if ouptput requested.
If it is not requested then output_dir is not created and boost
will throw an exception if we try to read from a non existing
directory.
2017-01-09 12:09:49 +01:00
Andreas Lauser
12083ccfd0 BlackoilPropsAdFromDeck: don't rely on undefined behaviour when initializing the fluid system
in C++ references may be assumed to be non-null. thanks to
[at]atgeirr for pointing this out.
2017-01-09 12:08:29 +01:00
Andreas Lauser
f50dc9507f fix a few pesky sign comparison warnings
the problem here is that some types used as the `BVector` template
parameters return signed integers for the `size()` method, others
return unsigned ones.
2017-01-09 12:05:32 +01:00
Markus Blatt
601dc77a37 Fix typo in exception message 2017-01-09 11:41:34 +01:00
Markus Blatt
6b2c33978e Implement parallel fip total computation.
Up to now parallel runs aborted due to an exception with
the message "FIP not yet implemented for MPI". With this
commit we do the computation in parallel, too. And flow_ebos
runs a bit longer...
2017-01-09 11:40:57 +01:00
Markus Blatt
5bcdb01f5a Make StandardWellsDense support cases with no wells.
In that case `wells_manager.c_wells()` returns a null pointer
which made `updateListEconLimited` segfault. With this commit
we treat a null wells_struct as having zero wells.

With this this and #1001 opm-data/equilibrium at least runs
through in parallel. Results will be checked next.
2017-01-09 11:36:12 +01:00
Atgeirr Flø Rasmussen
86b71e7d48 Merge pull request #989 from jokva/read-rock-compressibility-from-eclipsestate
RockCompressibility takes only EclipseState
2017-01-09 09:33:41 +01:00
Atgeirr Flø Rasmussen
a7922ecfa1 Merge pull request #998 from totto82/fix_so_initialization
Fix SOIL restart initialization
2017-01-09 09:32:19 +01:00
Tor Harald Sandve
5990201ee9 Fix SOIL restart initialization 2017-01-05 10:02:50 +01:00
Andreas Lauser
5fd83985a9 port the RateConverter to use the FluidSystem instead of the old fluid property API
this makes the RateConverter stuff independent of Eigen and it
simplifies some things because the the old PVT API is designed as a
"bulk-with-derivatives" API while the rate converter code used it in
"single shot" mode without derivatives.
2017-01-02 13:19:25 +01:00
Andreas Lauser
66decb4bda BlackoilPropsAdFromDeck: let the BlackOilFluidSystem manage the low level PVT objects
this makes it easier to migrate code away from BlackoilPropsAdFromDeck.
2017-01-02 13:19:25 +01:00
Andreas Lauser
ef731672c9 remove the BlackoilPropsAdInterface abstraction layer
instead, directly use BlackoilPropsAdFromDeck.
2017-01-02 13:19:23 +01:00
Atgeirr Flø Rasmussen
edf883e747 Merge pull request #996 from andlaus/no_eigen_in_VFP_and_FIP
mostly eliminate Eigen in the FIP and VFP code
2017-01-02 12:56:30 +01:00
Atgeirr Flø Rasmussen
d039fc6899 Merge pull request #994 from atgeirr/silence-ebos-warnings
Silence warnings
2017-01-02 09:36:04 +01:00
Andreas Lauser
98b9e2ef58 remove the phase enums from BlackoilPropsAdInterface
since the enums in BlackoilModelEnums.hpp are namespace-global this
does not require any code changes. (except replacing 'Liquid' by
'Oil', etc.)
2016-12-30 14:15:14 +01:00
Andreas Lauser
fb770faca0 fix Dune 2.3 build issue 2016-12-30 11:46:27 +01:00
Andreas Lauser
c880efae5b mostly eliminate Eigen in the FIP and VFP code
this code mostly used the Eigen vectors as arrays anyway, so let's use
`std::vector`.

also, this patch only "mostly eliminates" Eigen from from these parts
of the code because the source files of the VFP code still use
AutoDiffBlock; Unfortunately this cannot easily be changed because
`flow_legacy` depends on these methods. (`flow_ebos` does not use the
incriminating methods.)
2016-12-30 11:46:27 +01:00
Andreas Lauser
ac4dcba7e0 BlackoilModelEnums: don't use high-level classes
I consider the blackoil model enums to be pretty low level while the
"FluidProperties" code is IMO quite high level. this, using the latter
to define the former constitutes a layering violation IMO. note that
the fix is to simply use the enums from opm-core directly.
2016-12-29 18:03:05 +01:00
Atgeirr Flø Rasmussen
b0633110af Silence unused argument warning. 2016-12-29 14:52:03 +01:00
Atgeirr Flø Rasmussen
ae1d78f505 Remove unused argument, silence warnings. 2016-12-29 14:34:16 +01:00
babrodtk
c82887585e Fix for FIP output in ebos 2016-12-22 13:45:31 +01:00
babrodtk
5923f64322 Removed unused variable (which gave me compilation errors) 2016-12-22 13:00:51 +01:00
Atgeirr Flø Rasmussen
3e120d6e33 Merge pull request #964 from totto82/reuse_cache2
Reuse cache revisited
2016-12-20 14:46:00 +01:00
Jørgen Kvalsvik
d2b5327a72 RockCompressibility takes only EclipseState 2016-12-20 12:39:34 +01:00
Tor Harald Sandve
bb83504172 Let the simulator to re-assemble when iteration == minIter()
Let the simulator re-assemble and re-calculate the residuls for the case
when the simultor is converged but it was forced to take one more
iteration due to iteration < minIter().
2016-12-20 10:46:03 +01:00
Atgeirr Flø Rasmussen
6893aca90f Merge pull request #972 from GitPaean/fixing_polymer_omega
fixing the calculation when polymer not fully mixed
2016-12-19 13:22:48 +01:00
Atgeirr Flø Rasmussen
45fed6d591 Merge pull request #975 from totto82/clean_up_2p
Use templates to avoid hardcoded typedef
2016-12-19 13:01:05 +01:00
Atgeirr Flø Rasmussen
32c8303976 Merge pull request #978 from andlaus/flow_ebos-cleanups-1
BlackoilDetails: split it in two
2016-12-19 12:53:14 +01:00
Andreas Lauser
4020490a29 remove unused function Opm::detail::convergenceReduction() 2016-12-19 11:03:34 +01:00
Andreas Lauser
f29dae5409 BlackoilDetails: split it in two
now we have BlackoilDetails.hpp which contains all stuff that is used
by flow_ebos as well as flow and which does not include anything from
Eigen, and we have BlackoilLegacyDetails.hpp which contains all stuff
that depends on Eigen (and is thus not required by flow_ebos)
2016-12-19 11:03:34 +01:00
Tor Harald Sandve
4fdf57db04 Consider the timestep converged only when number of iteration > minIter 2016-12-19 10:55:28 +01:00
Tor Harald Sandve
a4bc2d455e Fix rebase 2016-12-19 10:55:28 +01:00
Tor Harald Sandve
ae5d812bc5 BUGFIX cache reuse.
invalidate cachedQuantities when updated and when timestep fails
2016-12-19 10:55:28 +01:00
Tor Harald Sandve
f65f5d2c3b Store whether timestep failed or not
Used in flow ebos to tell the simulator to recalculate the cached
quantities for failed timesteps.
2016-12-19 10:52:59 +01:00
Atgeirr Flø Rasmussen
7e2d46b9f0 Merge pull request #985 from blattms/log-failed-timesteps-on-one
Only log messages about failed timesteps on one processes.
2016-12-19 10:10:21 +01:00
babrodtk
841411037a Added throw if unsupported unit in deck for fluid in place 2016-12-16 13:40:20 +01:00
babrodtk
ccec17f81b Fixed missing unit conversion for total fluid in place 2016-12-16 13:15:22 +01:00
Markus Blatt
51dabf36f2 Only log messages about failed timesteps on one processes.
This OPM_THROW was introduced lately and results in all processes
logging the failure. With this commit the message is logged only once.
2016-12-16 11:30:04 +01:00
Kai Bao
b8e0cda83a putting update of water injection mobility to a separate function
computeInjectionMobility() in BlackoilPolymerModel
2016-12-16 08:56:35 +01:00
Kai Bao
4f3ce37b8e correcting one not helpful comments.
which results from the re-organization of the code.
2016-12-16 08:56:35 +01:00
Kai Bao
894bffd1b3 handling the injection mobility when mixing paramter not 1
The treatment with shear-thinning is not well tested yet.
2016-12-16 08:56:35 +01:00
Kai Bao
4f8ae4be73 putting the re-calculating wellflux inside if plyshlog
it only happens when shear effect calculation is needed. No point to
re-calculate the well flux when no shear thinning needed.
2016-12-16 08:56:35 +01:00
Kai Bao
9307a41fd5 using the polymer concentration in the polymer transport
since we already introduce the polymer viscosity there, we should apply
the water and polymer viscosity ratio again.
2016-12-16 08:56:35 +01:00
Atgeirr Flø Rasmussen
67374531e3 Merge pull request #880 from totto82/appelyard_fixes
Fixes in the Appelyard in updateState and updateWellState
2016-12-15 21:24:11 +01:00
Tor Harald Sandve
d856510b74 Merge pull request #980 from totto82/bugfix_flowebos_density
BUGFIX pass pvtnum to density in convertResults() in FlowEbos
2016-12-15 15:26:47 +01:00
Tor Harald Sandve
ad6b3f995f BUGFIX pass pvtnum to density in convertResults() in FlowEbos 2016-12-15 13:20:09 +01:00
Andreas Lauser
2761df3791 FlowMainEbos: fix the output of the initial condition
I probably did not see this warning when testing f7910af7d7 because
I'm currently flooded by deprecation warnings stemming from
Eigen. (these warnings are caused because I use Ubuntu 16.04 and an
old version of Eigen is cloned by the build system that is not system
installed.)
2016-12-15 09:57:53 +01:00
Atgeirr Flø Rasmussen
381c1cfbd6 Merge pull request #971 from totto82/solvent_fixes3
Fixes in solvent model related to handling vapoil in the well model
2016-12-14 15:31:26 +01:00
Tor Harald Sandve
2bfa96fddf Templatize to avoid hardcoded typedef
Prepare for changing the size of the blocks by templatize BVectors and
Evalution
2016-12-12 14:52:30 +01:00
Andreas Lauser
34c4053c65 StandardWellsDense: fix assert for the 2p case
this wasn't noticed earlier because it only bites in the water-oil
case and only if NDEBUG is not defined.
2016-12-12 14:26:34 +01:00
Tor Harald Sandve
4ac69d51d1 Don't force rs<rsSat and rv<rvSat in updateState 2016-12-12 12:54:57 +01:00
Tor Harald Sandve
4f052e466b Fixes in solvent model related to handling vapoil in the well model
Tested on SPE5 and Model2
2016-12-12 10:12:39 +01:00
Andreas Lauser
3fb55f06e5 flow*: reset the locale settings on startup 2016-12-08 12:17:36 +01:00
Andreas Lauser
d9c01406ea Merge pull request #967 from andlaus/no_opm-parser_pointers
flow_ebos: do not use (smart) pointers for opm-parser objects anymore
2016-12-08 10:03:24 +01:00
Robert Kloefkorn
bf18ee7fb9 fix the merge fallout 2016-12-06 20:05:24 +01:00
Andreas Lauser
ef15d76831 Merge commit 'refs/pull/947/head' of https://github.com/OPM/opm-simulators into no_opm-parser_pointers
* https://github.com/OPM/opm-simulators:
  [bugfix] add defunct_well_names to BlackoilModelEbos.
  [bugfix] fix ownerMask for parallel FIP code.
  flow_ebos: tell the ebos in ourselves to not handle SWATINIT
  [bugfix] Make initialization work in parallel for flow_ebos.
  [bugfix] make flow_ebos work when no wells are present.
  flow_ebos: only instantiate the grid once
2016-12-06 19:43:47 +01:00
jokva
efc2a79540 Merge pull request #898 from joakim-hove/remove-stale-output
Removed all calls to writeECLData.
2016-12-06 16:06:15 +01:00
Atgeirr Flø Rasmussen
508da6689f Change include path for writeVtkData.hpp, or remove include. 2016-12-06 09:48:03 +01:00
Atgeirr Flø Rasmussen
14ab6b6810 Add writeVtkData(), including version for UnstructuredGrid. 2016-12-06 09:26:45 +01:00
Joakim Hove
7ef40b3512 Removed all calls to writeECLData. 2016-12-06 08:34:17 +01:00
Andreas Lauser
f7910af7d7 flow_ebos: do not use (smart) pointers for opm-parser objects anymore
this patch also includes code to make FlowMainEbos more autonomous
(i.e. it does not derive from FlowMainBase anymore). this allows more
flexibility how and what stuff gets created.
2016-12-05 20:11:43 +01:00
Kai Bao
8148105ae3 Revert "changing polymer production concentration to be the grid block concnetration." 2016-12-05 15:05:56 +01:00
Tor Harald Sandve
e614c42818 Avoid hard-coded appelyard parameter in flow_ebos
Start using the parameters in the parameter file instead of the hard-
coded ones.
Unify the restriction of the drs and drv in black-oil and black-oil-
solvent updateState
2016-12-05 13:44:33 +01:00
Tor Harald Sandve
6e03b9706f Apply Appleyard fixes to solven model
Tested on SPE5 and Model2 + co2
2016-12-05 13:44:33 +01:00
Tor Harald Sandve
294ca31fc8 Fixes in the Appelyard in updateState and updateWellState
1) changes dp_max_rel default to 0.2
2) introduces a dbhp_max_rel paramter to restrict the bhp update in the
updateWellState() (instead of using the dp_max_rel) Default is set to
1.0
3) Restrict rs and rv between 0,and the satruation value
4) Set rs and rv to zero for the water only cases
5) Guard against zero rs and rv when calcuating the maximum allowed rs
and rv change.

Tested on norne, model 2 and model 2.2

Number of problems for the different models with and without this fix
Case
this PR master
Norne
10
45
Model 2
21
78
Model 2.2
200
248
2016-12-05 13:44:33 +01:00
Kai Bao
81a73650de polymer production concentration to be the grid block concnetration.
To be more consistent with the injection well.
2016-12-05 12:52:21 +01:00
Andreas Lauser
676af2b00b AdaptiveTimeStepping: fix stupid (but harmless) mistake in the sub-step info message
that was a copy-and-pasto: newton iterations = linearizations - 1
2016-12-03 15:04:32 +01:00
Markus Blatt
dcb3a20f7a Specialize direct solver for Dune::MatrixBlock.
In upstream they expect to be used with FielMatrix as
the block type only. Thus it it is impossible to use AMG
with a direct coarse solver within OPM. With this patch
it would be possible if we did not use field type float.
2016-12-02 15:34:31 +01:00
Robert Kloefkorn
42ab4d133f [bugfix] add defunct_well_names to BlackoilModelEbos. 2016-12-02 11:13:06 +01:00
Robert Kloefkorn
2eca5d71e6 [bugfix] fix ownerMask for parallel FIP code. 2016-12-01 22:25:46 +01:00
Andreas Lauser
e6acf888cc flow_ebos: tell the ebos in ourselves to not handle SWATINIT
because the flow part also wants to do this. (and it is quite a bit
more stubborn!)
2016-12-01 16:50:31 +01:00
Robert Kloefkorn
c5ca9649d7 [bugfix] Make initialization work in parallel for flow_ebos. 2016-12-01 16:50:31 +01:00
Robert Kloefkorn
1c2a2c417c [bugfix] make flow_ebos work when no wells are present. 2016-12-01 16:50:28 +01:00
Andreas Lauser
5ebed2f500 flow_ebos: only instantiate the grid once
it now uses the grid object which gets created by ebos for everything
which should make the parallelization efforts easier. I also tried to
cut back the use of the legacy property objects (i.e., for the fluid,
geologic and rock properties), but this effort ran aground because of
the initialization and output code. (also, if those two were fixed,
there would probably be issues with the Newton update.)

I ran Norne with this and there did not seem to be any notable
performance regressions or benefits.
2016-12-01 16:50:06 +01:00
Jørgen Kvalsvik
28c36ef949 Mini deck is reference, not pointer 2016-12-01 16:18:04 +01:00
Atgeirr Flø Rasmussen
2abb2c8144 Merge pull request #914 from GitPaean/test_iterative_wellcontrol
[WIP] making the updateWellControls an iterative process for StandardWells
2016-12-01 10:52:03 +01:00
Atgeirr Flø Rasmussen
63b0498843 Merge pull request #951 from andlaus/improve_SimulatorReport
extend and clean up the SimulatorReport
2016-11-30 19:34:11 +01:00
Andreas Lauser
6720eb7a75 clean up and extend the SimulationReport class
it now also accounts for assembly, linear solve, update and output
write time and indicates if an operation has converged.
2016-11-30 11:27:49 +01:00
Andreas Lauser
69240fe435 StandardWellsDense: fix two assertations
the compiler suggested braces around the conditions, and by look of
it, it was right: these asserts most likely want express that only the
threephase case or the twophase case without gas are handled...
2016-11-29 14:29:51 +01:00
Andreas Lauser
fdb01cb9a3 flow_ebos: fix build with debugging flags
once more, it seems like we became a victim of the combinatorial
explosion of possibilities.
2016-11-29 11:36:30 +01:00
Andreas Lauser
5bb23cfe9d Merge pull request #946 from andlaus/implement_two-phase_blackoil
Implement two phase blackoil
2016-11-28 15:16:19 +01:00
Andreas Lauser
8c5f92dbc4 extend and clean up the SimulatorReport 2016-11-25 21:19:57 +01:00
Kai Bao
69d5ec94c9 adding localWellsActive() checking for two MSW functions
updatePerfPhaseRatesAndPressures() and addWellFluxEq()
2016-11-25 13:45:38 +01:00
Arne Morten Kvarving
312491f349 Merge pull request #2 from andlaus/flow_ebos-fix-kr-units
also fix the units of the relperm in SimulatorFullyImplicitBlackoilOutputEbos
2016-11-24 18:19:33 +01:00
Andreas Lauser
12bed02b1e also fix the units of the relperm in SimulatorFullyImplicitBlackoilOutputEbos 2016-11-24 18:13:49 +01:00
Arne Morten Kvarving
f813d829e4 fixed: [WAT|OIL|GAS)KR are ratios and thus dimensionless 2016-11-24 17:43:06 +01:00
Kai Bao
e57da11fbd making the updateWellControls an iterative process for StandardWells
Seperating the updateWellStateWithTarget from updateWellControls, will
update the controls when any of the control constraints gets broken.

The reason is that the updated well control can still break some of
other the contstaints. We need to choose one control to make sure all the
constraints are honored.
2016-11-24 11:27:59 +01:00
Atgeirr Flø Rasmussen
bda6a42299 Merge pull request #939 from blattms/fix-ebos-warnings
Fixes unsused parameter warnings for ebos stuff
2016-11-22 15:33:34 +01:00
Tor Harald Sandve
d23270c98f Fix the 2p simulator
Only tested for oil+water case
The blockmatrix and vectors are hardcoded to be 3
and a trivial equation is used for the Gas phase.
2016-11-22 15:01:48 +01:00
Andreas Lauser
5e0804b39f some twophase fixes for flow_ebos
this changes the conversion of the results to hopefully make it work
with twophase simulations. Note that flow_ebos still does not work
because there is a crash in the well model that I don't understand
(and also, I've disabled an assertation in the well model plus I'm not
completely sure if the conversion code need to do something about the
primary variables in the twophase case).
2016-11-22 15:01:48 +01:00
Joakim Hove
21b1b2318d Merge pull request #943 from jokva/write-init-and-egrid-rename
Rename to EclipseWriter.writeInitial
2016-11-22 12:59:51 +01:00
Atgeirr Flø Rasmussen
621a72bb25 Merge pull request #941 from blattms/read-write-perforation-rates-and-pressure
Read write perforation rates, pressure, phase reates, and control of wells.
2016-11-22 11:16:19 +01:00
Jørgen Kvalsvik
ffc3de0f6e Rename to EclipseWriter.writeInitial 2016-11-22 09:52:41 +01:00
Markus Blatt
0179a17704 Gather well controll, too. 2016-11-21 21:20:47 +01:00
Markus Blatt
f601ac4013 Gather perforation phase rates, too.
To do this we needed to switch from WellState to WellStateFullyImplicitBlackoil
as only the latter stores this information.
2016-11-21 21:19:51 +01:00
Markus Blatt
88e118d76a Consistently use WellStateFullyImplicitBlackoil in output
Otherwise we cannot write out all the data in a parallel run.
2016-11-21 21:19:51 +01:00
Markus Blatt
a6c323c48b Read and write rate and pressure per well perforation when gathering. 2016-11-21 21:19:39 +01:00
Robert Kloefkorn
feea8c1753 Introduce parameter for time step in days when single precision should be used
in the linear solvers. Also, a parameter was introduced to toggle the use of AMG.
2016-11-21 17:18:24 +01:00
Markus Blatt
a16bce8785 Fixes unsused parameter warnings for ebos stuff 2016-11-21 15:23:12 +01:00
Atgeirr Flø Rasmussen
720d341c76 Merge pull request #938 from dr-robertk/PR/cleanup-paralleldebugoutput
ParallelDebugOutput: remove unused variable and tabbing.
2016-11-21 12:20:32 +01:00
Robert Kloefkorn
a2b2e6dd27 [cleanup][ParallelDebugOutput] remove unused variable and tabbing. 2016-11-21 11:26:08 +01:00
Atgeirr Flø Rasmussen
95cc415fba Merge pull request #937 from akva2/quell_warnings
Quell some compiler warnings
2016-11-21 11:11:46 +01:00
Arne Morten Kvarving
caac9d7843 fixed: put variable under ifdef to avoid unused warnings without mpi 2016-11-21 10:21:11 +01:00
Arne Morten Kvarving
b0aae037f6 quell unused variable warning 2016-11-21 10:20:24 +01:00
Atgeirr Flø Rasmussen
e223c03647 Merge pull request #800 from OPM/frankenstein
Frankenstein V2
2016-11-18 15:49:31 +01:00
Robert Kloefkorn
5fce54fd44 [bugfix][ISTLSolver] make code compile with AMG when different matrix operator
is used.
2016-11-18 12:47:54 +01:00
Robert Kloefkorn
59f40ba14e [cleanup][WellModelMatrixAdapter] use only one implementation of the matrix
adapter to avoid confusion.
2016-11-18 12:47:54 +01:00
Robert Kloefkorn
a0da20378c [bugfix][WellModelMatrixAdapter] fix applyscaleadd method. 2016-11-18 12:47:54 +01:00
Robert Kloefkorn
439a084508 [bugfix][BlockoilModelEbos] fix invalidation of intensive quantities after
linear solver failure.
2016-11-18 12:47:54 +01:00
Atgeirr Flø Rasmussen
54ad92ff40 Merge pull request #931 from atgeirr/fix-deck-error
Do not assign to dereferenced null pointers.
2016-11-18 11:59:40 +01:00
Andreas Lauser
2f208962f0 revert AutoDiffMatrix back to the master version
that class is not used by flow_ebos anymore...
2016-11-18 11:24:35 +01:00
Andreas Lauser
b2f7b8c989 Merge remote-tracking branch 'origin/master' into frankenstein 2016-11-18 11:09:41 +01:00
Atgeirr Flø Rasmussen
1bd58cf471 Merge pull request #862 from GitPaean/group_control
group control_updating well production targets within a group
2016-11-17 23:27:00 +01:00
Andreas Lauser
a3fecc8edc flow_ebos: fix the build
this broke after the latest master merge (again, the reason were API
changes. this time they did not lead to merge conflicts.)

I've verified that flow_ebos works with Norne and that the performance
did not regress.
2016-11-17 16:34:53 +01:00
Andreas Lauser
0d00579f7d Merge remote-tracking branch 'origin/master' into frankenstein_merge_master_v12
* origin/master:
  Start with a clean globalCellData_ for each data gathering.
  Added assertion that entry was added to globalCellData_ for pack/unpack
  Use data::Solution to gather cell data including user requested data.
  Warn about broken parallel matlab output.
  a few warning fixing.
  Removed second implementation of matlab output.
  Fix spelling in warning about unhandled parallel ouput.
2016-11-17 16:08:21 +01:00
Kai Bao
0ab04b04cd checking whethter group control is active
When applying group control related functions.
2016-11-17 16:01:59 +01:00
Andreas Lauser
b8a0bb6aea Merge pull request #926 from totto82/frankenstein_revertChanges
Revert som changes in default values
2016-11-17 13:46:37 +01:00
Atgeirr Flø Rasmussen
71bd419c03 Do not assign to dereferenced null pointers. 2016-11-17 13:18:02 +01:00
Atgeirr Flø Rasmussen
cf84626da0 Merge pull request #929 from blattms/flexible-parallel-ouput
Allow output for user requested data in parallel runs.
2016-11-17 11:40:09 +01:00
Markus Blatt
80bbabc0b6 Start with a clean globalCellData_ for each data gathering.
Otherwise there might entries from the last call that should
either not be there this time or might have a different size.
2016-11-16 21:21:51 +01:00
Markus Blatt
098bd8f9fc Added assertion that entry was added to globalCellData_ for pack/unpack 2016-11-16 21:20:14 +01:00
Bård Skaflestad
8cc64402be Merge pull request #927 from GitPaean/warning_fixing
a few warning fixing.
2016-11-16 18:48:51 +01:00
Markus Blatt
00440ab344 Use data::Solution to gather cell data including user requested data.
Previously only the cell data registered with SimulationDataContainer
war gathered during parallel output. User requested data was neglected
and a warning was issued. With this commit we intialize the local view
of data::Solution on all processes with the data registered in
SimulationDataContainer and add cell data requested by the user. This is
then gathered on the IO process, and used for the output layer. To
rudimentarily support matlab we also create a global view of
SimulationDataContainer for it.
2016-11-16 17:11:24 +01:00
Markus Blatt
5ad813b4bd Warn about broken parallel matlab output.
If this is a parallel run and matlab output is requested then
we issue a warning that it is broken because of wrong velocities.
2016-11-16 17:09:53 +01:00
Tor Harald Sandve
b66bb27a65 Revert som changes in default values
Make sure flow in Frankenstein and flow in master uses the same default
values
2016-11-16 15:09:54 +01:00
Kai Bao
d38a6eb459 adapting the change of the function findWellNode(). 2016-11-16 14:28:35 +01:00
Kai Bao
d06acaa4b5 adapting to the change in opm-core 2016-11-16 14:06:20 +01:00
Kai Bao
f85da3768e cleaning up and updating MultisegmentWells 2016-11-16 13:27:30 +01:00
Kai Bao
6bbc726bc2 checking and outputing the residuals for the well equations.
Before, the tolerance for the norm of the residual of the well control
equations was 1bar, which makes no sense for rate control.
For some rate controls, we are not able to update the well state with
the target rates, we have to enforce the convergence throught the
residual checking.
2016-11-16 13:26:54 +01:00
Kai Bao
002439c5b1 WIP in testing new group update strtegy.
results with min_iter=2 works okay, while not min_iter=1.

It means the iteration stop at the wrong situation.
2016-11-16 13:26:28 +01:00
Kai Bao
753da2dd36 putting the VREP control update after updateWellControls
which makes it almost should be put inside updateWellControls function.

it does not change the result.
2016-11-16 13:25:35 +01:00
Kai Bao
a5aaf9b802 easier way to update whether the well under group control
potentially can be more consistent way.
It does not change the result.
2016-11-16 13:25:35 +01:00
Kai Bao
8a1e1e010a using findWellNode() to avoid dynamic_casting
form WellGroupInterface* to WellNode*.
2016-11-16 13:25:35 +01:00
Kai Bao
337693cc65 removing the wrongly wrapped std::vector
adding more comments for future reference.
2016-11-16 13:25:35 +01:00
Kai Bao
9150c217f2 making the VREP enforcement into a small method.
in BlackoilModelBase.
2016-11-16 13:25:35 +01:00
Kai Bao
9a95697fde updating some comments. 2016-11-16 13:25:35 +01:00
Kai Bao
75e0ff0018 Trying always to give a valid control when initing WellState.
Without the fix, when we specify GRUP control for WCONINJE, the control
mode will be initialized to be -1.
2016-11-16 13:25:35 +01:00
Kai Bao
8474ff2895 fixing all the simulators that call solveWellEq.
Not all the group control functionalities working for allt the
simulators. Some need to be fixed later.
2016-11-16 13:25:35 +01:00
Kai Bao
0f3e34bb25 cleaning up some comments. 2016-11-16 13:25:35 +01:00
Kai Bao
cb897b07d0 Adding VREP injection support.
As part of it, adding a function to calculate reservoir voidage rate.
2016-11-16 13:25:35 +01:00
Kai Bao
a15513e546 adding a rate converter to the BlackoilModelBase 2016-11-16 13:25:35 +01:00
Kai Bao
e65d24aa16 removing outdated log ouptut code about control switching
Which results from the rebasing process.
2016-11-16 13:25:35 +01:00
Kai Bao
e13cf827b5 applying the efficiency factors to the multi-segment wells. 2016-11-16 13:25:35 +01:00
Kai Bao
623ef3850e applying the efficiency factor to flow 2016-11-16 13:25:35 +01:00
Kai Bao
aca587b76b calculate efficiency factor in StandardWells
which will be used to scale the perforation flow rate when entering the
matrial balance equations.
2016-11-16 13:25:35 +01:00
Kai Bao
ac67a10316 removing one updateWellControls from solveWellEq
not recalling why adding it in the first place.

And correcting some comments for clarification.
2016-11-16 13:25:35 +01:00
Kai Bao
e049508eec adding the group control related part to MultisegmentWells
while looks like the well potentials part may not work with multisegment
wells.

Will check later.
2016-11-16 13:25:35 +01:00
Kai Bao
0df52603d7 fixing the interface of wellModel constructors
to make all the simulators compile.
2016-11-16 13:25:35 +01:00
Kai Bao
26b16c1050 cleaning up the output and adding more comments. 2016-11-16 13:25:11 +01:00
Kai Bao
d992161b82 output cleaning up and add more comment. 2016-11-16 13:24:39 +01:00
Kai Bao
e323f15d2f putting more things in the prototyping test. 2016-11-16 13:23:55 +01:00
Kai Bao
e0dd9bfabd keeping putting group control in. 2016-11-16 13:22:52 +01:00
Kai Bao
f62d40fc05 adding a pointer to the well_collection of WellsManger
might change to reference later. Using pointer now is trying to keep the
WellModel constant.
2016-11-16 13:22:52 +01:00
Kai Bao
1c34af4dea a few warning fixing. 2016-11-16 13:17:35 +01:00
Markus Blatt
b91f747a3e Removed second implementation of matlab output.
There is already a generic one with the Grid implementation
being the template parameter in the header file. The other
implementation using UnstructuredGrid does exactly the same.
Therefore we remove it with this commit.
2016-11-16 12:16:40 +01:00
Atgeirr Flø Rasmussen
fd4d57e68c Merge pull request #923 from blattms/fix-spelling-for-unhandled-ouput
Fix spelling in warning about unhandled parallel ouput.
2016-11-15 20:50:40 +01:00
Andreas Lauser
89f2636b2e Merge pull request #921 from totto82/frankenstein_output_fixes
Frankenstein output fixes
2016-11-15 13:05:27 +01:00
Tor Harald Sandve
b04f79b15f Fix 2phase celldata output 2016-11-15 12:48:25 +01:00
Andreas Lauser
fc4dfea185 Merge remote-tracking branch 'origin/master' into frankenstein
* origin/master:
  checking the residual for the well control equations.
2016-11-15 12:27:04 +01:00
Tor Harald Sandve
f8bf7c392c Fix some temporary fallouts in the outputwriter 2016-11-15 12:23:46 +01:00
Markus Blatt
55362ecdc2 Fix spelling in warning about unhandled parallel ouput. 2016-11-15 12:08:58 +01:00
Andreas Lauser
e1178455a2 flow_ebos: fix a memory error in the fluid in place code
as usual for such errors, this was found using valgrind.
2016-11-14 19:49:33 +01:00
Andreas Lauser
293f7ca1c7 Merge pull request #916 from totto82/frankenstein_fix_appleyard2
Improvments in convergence for flow_ebos
2016-11-14 15:02:00 +01:00
Andreas Lauser
e84de929cf flow_ebos: alter the startup message
... to make apparent from the output which simulator was used.
2016-11-14 14:18:11 +01:00
Andreas Lauser
4271da8d84 flow_ebos: fix the build
mainly, the "linsolver_" attribute is called "istlSolver_" in the
BlackoilModelEbos class. Also, this problem possibly only occured if
MPI was enabled...
2016-11-14 13:36:01 +01:00
Tor Harald Sandve
739c0906ef Improvments in convergence for flow_ebos
- restrict pressure changes. Set default to 1.0 (this also effects flow)
- change default number of linear iterations to 150
- tell stabilized newton the residual occilates even if it occilates in
only one phase (this also effects flow)
- avoid problems realated to division on small numbers

Tested on SPE9, norne and Model 2 with significant improvments.
2016-11-14 13:26:38 +01:00
Atgeirr Flø Rasmussen
ae9cd62a5c Merge pull request #906 from GitPaean/test_residual_checking
checking the residual for the well control equations.
2016-11-14 10:44:44 +01:00
Tor Harald Sandve
36ce159411 Calculation the original FIP at the beginning 2016-11-14 10:16:57 +01:00
Tor Harald Sandve
5a917a4828 Output FIP in flow_ebos 2016-11-14 09:34:40 +01:00
Andreas Lauser
d989c1e2fc Merge remote-tracking branch 'origin/master' into frankenstein
* origin/master:
  Do not throw for unrecognized file when merging log files.
  Do not populate cellData but issue a warning in parallel.
  Removed ternary operator in inline initialization.
  Correctly mark transfer of ownership for ouptut writer
  Indent nested #if
  Remove Solution.sdc assignment
  Cater variable name change in BCRSMatrix of DUNE 2.5
  Fix using local active cells for writing eclipse files in parallel.
  add restart test for SPE1CASE2_ACTNUM
  rename the 'flow' binary to 'flow_legacy' and set a symbolic link
  Added ctest for restart files
2016-11-11 18:29:46 +01:00