Commit Graph

2829 Commits

Author SHA1 Message Date
Kai Bao
1ffa87561b adding computePerfRate() in MultisegmentWell
not tested yet.
2017-10-12 13:37:05 +02:00
Kai Bao
5d79a7f11b adding computeSegmentFluidProperties for MultisegmentWell
only considering the fluid densities for now.
more fluid densities needs to be considered.
2017-10-12 13:37:05 +02:00
Kai Bao
7b873d97c9 small improvements in StandardWell
there is not functional change.
2017-10-12 13:37:05 +02:00
Kai Bao
1e32b40837 adding function computeInitialComposition to MultisegmentWell 2017-10-12 13:37:05 +02:00
Kai Bao
eb119f245d adding a few functions to calculate the fractions in MultisegmentWell 2017-10-12 13:37:05 +02:00
Kai Bao
3e2a34239c removing two functions from WellInterface
computeWellConnectionPressures() and computeAccumWell().
They belongs to the implementation details of well models now.
2017-10-12 13:37:05 +02:00
Kai Bao
8922f3e041 adding a function calculateExplictQuantities to WellInterface
to hide some implementation details.
2017-10-12 13:37:05 +02:00
Kai Bao
47c7c54548 making the updateWellControl to WellInterface
instead of having two of them in StandardWell and MultisegmentWell
2017-10-12 13:37:05 +02:00
Kai Bao
553eeaaa82 adding updateWellControl to MultisegmentWell
it turned out to be same with the one in StandardWell
considerng to make it in the WellInterface.
2017-10-12 13:37:05 +02:00
Kai Bao
86c9115f1d adding function updateWellStateWithTarget for MultisegmentWell 2017-10-12 13:37:05 +02:00
Kai Bao
c26b5905a8 re-organizting the function prepareTimeStep() for StandardWellsDense
for better readibility and organization.
2017-10-12 13:37:05 +02:00
Kai Bao
1024ce31f6 adding function updatePrimaryVariables() to MultisegmentWell
Basically, calculate the value of primary variables based on WellState.
2017-10-12 13:37:05 +02:00
Kai Bao
16ecbddefb when encountering a multisegment well
we create a multisegment well instead of treating all the wells as
StandardWell. Making it compile.
2017-10-12 13:37:05 +02:00
Kai Bao
d694a72b53 adding initMSWell() to handle MS well related WellState. 2017-10-12 13:37:05 +02:00
Kai Bao
315c4a1659 more implementatin in WellStateMSWell
very likely that we will not use it.
2017-10-12 13:36:27 +02:00
Kai Bao
8c0af08056 adding comments for MultisegmentWell 2017-10-12 13:36:27 +02:00
Kai Bao
b5323b1b79 begin the class WellStateMSWell
it will be for each individual MS well.
it is kind of the start of the refactoring of the WellState.
2017-10-12 13:36:27 +02:00
Kai Bao
359de15f2b begining MultisegmentWell.hpp 2017-10-12 13:36:27 +02:00
Atgeirr Flø Rasmussen
f30b95e0e7 Merge pull request #1298 from blattms/cleanup-version-ifs
[cleanup] Removes unnecessary if clauses for unsupported DUNE versions.
2017-10-12 13:28:45 +02:00
Atgeirr Flø Rasmussen
91cac266b4 Merge pull request #1299 from andlaus/remove_SimulationParameter
do not set the SimulationParameter property anymore
2017-10-12 10:47:03 +02:00
Atgeirr Flø Rasmussen
9206909f75 Merge pull request #1297 from GitPaean/ratio_economic_well
handling WELL workover over ratio economic limit.
2017-10-12 06:52:33 +02:00
Atgeirr Flø Rasmussen
aba0b14907 Merge pull request #1301 from andlaus/update_banner2
update flow startup message
2017-10-12 06:49:06 +02:00
Andreas Lauser
d1ce08d654 update flow startup message
The old message was not really accurate anymore because flow also
supports the polymer and solvent extensions. (Also, the parentheses
around the version were removed because they are not necessary.)

v2: use the message proposed by [at]atgeirr
v3: re-add accidentially removed website URL
2017-10-11 23:33:47 +02:00
Atgeirr Flø Rasmussen
d770e16abf Merge pull request #1289 from totto82/removeWellStateFullyImplicitBlackoilDense.hpp
Remove WellStateFullyImplicitBlackoilDense
2017-10-11 18:59:53 +02:00
Andreas Lauser
ae3842fa80 remove do not set the SimulationParameter property anymore
this needs to merged before the SimulationParameter hack can be
removed from eWoms. the patch will cause spurious deprecation warnings
until then. (i.e., it is best to merge them together.)
2017-10-11 16:01:55 +02:00
Markus Blatt
6a5dc78249 [cleanup] Removes unnecessary if clauses for unsupported DUNE versions.
We are targetting DUNE 2.4.* and 2.5.* currently. Therefore this commit removes
the if checks for lower versions to cleanup the code.
2017-10-11 15:53:45 +02:00
Atgeirr Flø Rasmussen
67401d7d63 Merge pull request #1287 from andlaus/improve_polymorphic_flow
Improve polymorphic flow
2017-10-11 15:44:54 +02:00
Atgeirr Flø Rasmussen
0264a1f609 Merge pull request #1294 from akva2/there_there_mr_ocd
quell signed/unsigned mismatch warning
2017-10-11 14:07:03 +02:00
Kai Bao
5328de6361 handling WELL workover over ratio economic limit. 2017-10-11 13:35:07 +02:00
Tor Harald Sandve
dc8f811cbe Remove WellStateFullyImplicitBlackoilDense
After the restructuring of of the well model, keeping an extra class for
the "Dense" model is not needed. The only thing still left in
WellStateFullyImplicitBlackoilDense was some solvent related stuff, this
PR moves this to WellStateFullyImplicitBlackoil and removes
WellStateFullyImplicitBlackoilDense.

In addition to a cleaning code this PR fixes missing solvent well output.
2017-10-11 10:54:59 +02:00
Kai Bao
2458b45901 removing GEFAC and SSOL from MissingFeatures.cpp 2017-10-10 15:53:12 +02:00
Atgeirr Flø Rasmussen
de1be6b5ef Merge pull request #1273 from GitPaean/different_oscillation
avoiding the oscillation treatment applied to well solution
2017-10-10 14:29:04 +02:00
Andreas Lauser
ab93f58371 some minor cleanups
this fixes a few warnings and removes now-unnecessary function arguments.
2017-10-10 14:07:07 +02:00
Arne Morten Kvarving
a0b81a131a quell signed/unsigned mismatch warning 2017-10-09 14:45:08 +02:00
Atgeirr Flø Rasmussen
63b38cfe20 Merge pull request #1281 from totto82/fixRESV
Use pore volume weighted averaged hydrocarbon state in rateConverted.
2017-10-09 13:42:43 +02:00
dr-robertk
682424a7bf Merge pull request #1286 from blattms/communicate-ebos-solution-in-run
Communicate the ebos solution at the beginning of the run method.
2017-10-09 13:13:58 +02:00
Andreas Lauser
cede806bd5 flow: refactor the specializations
The motivation for this PR is that currently the build fails on my
Ubuntu 17.10 laptop with two processes because that machine "only" has
8 GB of RAM (granted, the optimization options may have been a bit too
excessive). under the new scheme, each specialization of the simulator
is put into a separate compile unit which is part of
libopmsimulators. this has the advantages that the specialized
simulators and the main binary automatically stay consistent, the
compilation is faster (2m25s vs 4m16s on my machine) because all
compile units can be built in parallel and that compilation takes up
less RAM because there is no need to instantiate all specializations
in a single compile unit.

on the minus side, all specializations must now always be compiled,
the approach means slightly more work for the maintainers and the
flow_* startup code gets even more complicated.
2017-10-06 15:35:00 +02:00
Andreas Lauser
0c92c24dcb flow_ebos*: make it build and (the sequential part) work if dune-fem is available
in particular, this implied some changes to the MPI initialization
code. since dune-fem's GridPart class currently has issues with
CpGrid's implementation of loadBalance(), parallel computations still
do not work if dune-fem is around, but at least sequential ones now
do even if MPI is enabled.
2017-10-06 15:35:00 +02:00
Andreas Lauser
64d7366de2 mark the non-template methods of the adaptive time stepper as inline
this is needed to avoid linker errors if this class ought to be used
in multiple compile units. IMO the main problem here is the use of an
_impl.hpp file.
2017-10-06 15:34:59 +02:00
Markus Blatt
9adc4d5d3c Communicate the ebos solution at the beginning of the run method.
Currently, the ReservoirState passed to the method and converted
to the initial solution of the Ebos simulator might have wrong
values in the ghost layer (this is the case for SPE9, Norne, Model 2).
This commit uses the syncOverlap method to update these values once they
are converted to the Ebos solution. The  ReservoirState remains untouched.
This is enough to have consistent values throughout the simulation and only
introduces one additional communication step.
2017-10-05 14:33:48 +02:00
Arne Morten Kvarving
35fbe03ca7 remove unused variables
quells warnings
2017-10-05 12:02:10 +02:00
Arne Morten Kvarving
167147acc4 use std::remove_const instead of Dune::remove_const 2017-10-05 12:02:10 +02:00
Tor Harald Sandve
ebc2f46967 Use pore volume weighted averaged hydrocarbon state in rateConverted.
- pressure, rs and rv is averaged using hydrocarbon pore volume weights.
- pvtRegions is used as input in the conversion factor calculations.
- the pvt cell of the first well cell is used as the pvt index.
(Completing a well in two different PVT regions sounds like a very bad
idea anyway)
- FIP region support is added to the rate converter also for the ebos
interface.
2017-10-03 10:25:56 +02:00
Kai Bao
28a7167d61 avoiding the oscillation treatment applied to well solution
it is a design to avoid some performance degeneration for parallel
running.
2017-09-29 17:15:39 +02:00
Atgeirr Flø Rasmussen
f7529cf33e Merge pull request #1269 from GitPaean/fixing_well_efficiency
correcting the way to use efficiency factor in assembleWelEq
2017-09-25 10:26:55 +02:00
Atgeirr Flø Rasmussen
83ca6d41e3 Merge pull request #1263 from totto82/gasoil
Make 2p gas oil compile and run
2017-09-21 14:03:33 +02:00
Tor Harald Sandve
5839962e31 Some trivial cleaning 2017-09-21 12:16:46 +02:00
Atgeirr Flø Rasmussen
c1024ce2d1 Merge pull request #1268 from blattms/log-wells-debug-messages-only-on-master
Log debug messages about wells only on master.
2017-09-21 10:33:04 +02:00
Tor Harald Sandve
992ab84435 Remove support and tests for pseudo 2p model in flow ebos 2017-09-20 08:11:44 +02:00
Tor Harald Sandve
b452d16f46 Fix parallell run 2017-09-19 11:16:34 +02:00
Tor Harald Sandve
69c608829f Include RESV in the scaling factor
- solvent + RESV is not correct. Make the simulator throw until this is
sorted out.

- remove unused parameter
2017-09-18 11:28:13 +02:00
Tor Harald Sandve
352dccd5e9 Make 2p gas oil compile and runs
-- use mapping from canonicalToActiveCompIdx from Ebos
-- add guards againts non-existing components
2017-09-18 11:28:13 +02:00
Alf Birger Rustad
7b1e034a90 Merge pull request #1270 from atgeirr/fix-output-timestep
Fix report step number associated with substeps.
2017-09-17 20:25:33 +02:00
Atgeirr Flø Rasmussen
60fe6b2687 Fix report step number associated with substeps.
It appears summary files by convention expect all substep data points to
be chunked together with the data point at the end of the report step.
2017-09-15 12:04:30 +02:00
Kai Bao
fa03db07f8 correcting the way to use efficiency factor in assembleWelEq 2017-09-11 13:01:55 +02:00
Markus Blatt
a1f960b467 Reallow logging fatal errors for well convergence on all ranks 2017-09-07 14:45:00 +00:00
Markus Blatt
5d1eff5107 Log debug messages about wells only on master.
Previously all ranks logged the message and did clutter the
output files quite a bit.
2017-09-07 14:17:56 +00:00
Kai Bao
cd4d17bfa7 removing a few unused nw variable in StandardWell_impl. 2017-09-07 15:04:09 +02:00
Atgeirr Flø Rasmussen
77f3bdaeda Merge pull request #1257 from totto82/add_invert4x4
Add invert4x4 specialization for invertMatrix()
2017-09-04 09:08:32 +02:00
Tor Harald Sandve
210f1edf25 Add test for invert 4x4 matrix specialization 2017-08-29 11:01:20 +02:00
Kai Bao
b4538af164 not throwing when encountering multisegment wells. 2017-08-29 10:01:31 +02:00
Kai Bao
9accb56c86 adding a test for well model.
It is just test for StandardWell.
2017-08-25 14:09:26 +02:00
Kai Bao
355be6c26c collecting the NaN and too large well residuals
make sure all the processes will throw if there is any of the processes
found abnormal residual values.
2017-08-25 14:09:26 +02:00
Kai Bao
8abe48a693 making destructor of WellInterface virtual
to avoid memory leaking.
2017-08-25 14:09:26 +02:00
Kai Bao
a60a969257 fixing one memory-leaking for flow_ebos running 2p case. 2017-08-25 14:09:26 +02:00
Kai Bao
96340a23ff computePerfRate and crossFlowAllowed protected in StandardWell 2017-08-25 14:09:26 +02:00
Kai Bao
bc78553686 renaming well_solutions_ and well_variables
to give slightly easier understanding.
2017-08-25 14:09:26 +02:00
Kai Bao
25869026e5 renaming a few functions
to reflect the functions better. No functional change.
2017-08-25 14:09:26 +02:00
Kai Bao
9a4a9a2bcc using well name and allow_cf form well_ecl. 2017-08-25 14:09:26 +02:00
Kai Bao
a908bd7cf1 makding createWellContainer a static function. 2017-08-25 14:09:26 +02:00
Kai Bao
f9b7094075 fixing of some comments
no functional change.
2017-08-25 14:09:26 +02:00
Kai Bao
52af70ad0e adding debugging output for solveWellEq
to tell if the solveWellEq is successful.
2017-08-25 14:09:26 +02:00
Kai Bao
a29be796e7 adding comments about function calculateBhpFromThp. 2017-08-25 14:09:26 +02:00
Kai Bao
277d26df8a cleaning up well residual related in BlackoilModelEbos
TODO: how to output the information for debugging well iteration
process.
2017-08-25 14:09:26 +02:00
Kai Bao
7a9fc2132e more cleaning up of StandardWellsDense.
not functional change.
2017-08-25 14:09:26 +02:00
Kai Bao
68edfd7235 removing several unused variables. 2017-08-25 14:09:26 +02:00
Kai Bao
fe3d2f91e0 adding functions to calcuate between thp and bhp
to reduce some code duplication in StandardWell
2017-08-25 14:09:26 +02:00
Kai Bao
8a12ec677f more cleaning up
not funtional change.
2017-08-25 14:09:26 +02:00
Kai Bao
66b5226039 removing some unused variables
to reduce warnings.
2017-08-25 14:09:26 +02:00
Kai Bao
f1c0e84878 cleaning up for StandardWellsDense. 2017-08-25 14:09:26 +02:00
Kai Bao
49df0c12f6 cleaing up and fixing the error from rebasing. 2017-08-25 14:09:26 +02:00
Kai Bao
af6155d15a updating the well group status before updating targets.
This recovers the running with group control.
2017-08-25 14:09:26 +02:00
Kai Bao
31ce880ba7 fixing the prallel running.
It needs WellSwitchingLogger for all the processes even there are not
wells in some of the processes.
2017-08-25 14:09:26 +02:00
Kai Bao
5cb0a5109e adding setWellSolutions to StandardWellsDense.
the function will calculate the well_solutions_ based on well_state.
It will be used when we recover the well_state from a failed iteration,
then we should also update well_solutions_ for consistence.
2017-08-25 14:09:26 +02:00
Kai Bao
5af15fa63f removing well_soltutions_ from WellStateFullyImplicitBlackoilDense
adding function setWellSolutions() to StandardWell.

The class WellStateFullyImplicitBlackoilDense is ready to be removed
now, while the only thing can go wrong compred with the original version
is the group control, which is not tested yet.
2017-08-25 14:09:26 +02:00
Kai Bao
8441eb77bd not using wellSolutions() from WellState
while not sure whether we can remove it totally because of the comments
related to group control.
2017-08-25 14:09:26 +02:00
Kai Bao
6dcb0dfba1 fixing the vfp running with flow_ebos. 2017-08-25 14:09:26 +02:00
Kai Bao
78dd9d1d16 more cleaning up of the interface of WellInterface and StandardWell 2017-08-25 14:09:26 +02:00
Kai Bao
1550fb7600 WIP in cleaning up the interfaces of WellInterface and StandardWell
commiting now to save some changes.
2017-08-25 14:09:26 +02:00
Kai Bao
d4f26ad47a recovering the running of flow_ebos for 2p + dummy phase. 2017-08-25 14:09:26 +02:00
Kai Bao
c43505d007 cleaning up some interface in WellInterface. 2017-08-25 14:09:26 +02:00
Kai Bao
6bbbe5061d adding the copyright information. 2017-08-25 14:09:26 +02:00
Kai Bao
3e26a8b467 using different size of block size of well and reservoir 2017-08-25 14:09:26 +02:00
Kai Bao
894529be57 small cleaning up. 2017-08-25 14:09:26 +02:00
Kai Bao
f19dd03387 using Base to represent WellInterface<TypeTag>
for better readability.
2017-08-25 14:09:26 +02:00
Kai Bao
bd84e3c9f3 making a trival way to reduce the covergence of the wells.
to be improved later.
2017-08-25 14:09:26 +02:00
Kai Bao
4f716a633d using legacyDepth_ for the perfoation depth
for StandardWell. It turns out that it can be different with the
grid.getCellDepth() from the parser.
2017-08-25 14:09:26 +02:00
Kai Bao
6e0da756dc fixing the running of flow_ebos_2p.
by not adding the dummy phase.
2017-08-25 14:09:26 +02:00
Kai Bao
c1ee941195 adding shear calculation to the polymer simulation. 2017-08-25 14:09:26 +02:00
Kai Bao
d4fa8c06f1 adding computeRepRadiusPerfLength() to WellInterface. 2017-08-25 14:09:26 +02:00