Commit Graph

185 Commits

Author SHA1 Message Date
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
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
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
f9b7094075 fixing of some comments
no functional change.
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
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
a02a0d8599 removing updateWellStateWithTarget from StandardWellsDense
and also fixing the assertion error related to disabling the residual()
    function of StandardWellsDense.
2017-08-25 14:09:26 +02:00
Kai Bao
f1677015fe using getWellConvergence in BlackoilModelEbos
Tested with SPE1.

TODO: with the current way, we are not outputting any well residual
information. We need to address what kind of residual information we
want to output with the new well model.
2017-08-25 14:09:26 +02:00
Kai Bao
ab67635134 adding applySolutionWellState to apply solution from reservoir
to update well state.

With this way, the BlackoilModelEbos does not need to know the data type
assocated with different well type.

It is not well tested yet.
2017-08-25 14:09:26 +02:00
Kai Bao
51226af445 refactoring solveJacobianSystem() not to handle xw.
which is one step to avoid to access the type of xw, which is related to
the implementation of the well model.
2017-08-25 14:09:26 +02:00
Tor Harald Sandve
6716ca63c9 Force solvent saturation between [0,1] 2017-08-23 09:50:40 +02:00
Atgeirr Flø Rasmussen
58eea94460 Merge pull request #1247 from totto82/removeState-PR
Remove reservoirState from BlackoilModelEbos
2017-08-22 20:47:16 +02:00
Tor Harald Sandve
6146190844 Fixes comments from PR
Don't sum ghost cells in the RateConverter
Some cleaning and comments.
2017-08-18 08:46:44 +02:00
Tor Harald Sandve
6bca2ea69c Fix rebase 2017-08-17 11:34:33 +02:00
Tor Harald Sandve
593546da4b Fix 2p case in relativeChange(...) in BlackoilModelEbos 2017-08-17 11:13:00 +02:00
Tor Harald Sandve
ce84a59b29 Remove reservoirState from BlackoilModelEbos
1) Use the solution variable directly in RelativeChange(...)
2) Add a method in the RateConverter that takes the simulator instead of the state.
3) Pass the reservoir pressure directly to the well initialization.
4) Move convertInput(...) to SimulatorFullyImplicitBlackoilEbos.hpp.
This code is only used to convert the initial reservoir state.
5) Modify  updateState(...). The solution variable is updated directly and adaptPrimaryVariable(...)
from ewoms is used to switch primary variables. An epsilon is passed to adaptPrimaryVarible(...) after a switch
of primary variables to make it harder to immediately switch back.

The following code used by flow_ebos still uses the reservoirState
1) the initialization
2) restart
3) output of the initial state
4) the step methods in AdaptiveTimeStepping and NonlinearSolver.
The reservoirState is not used by this methods, so after the initial step, an empty reservoirState is passed around in the code.
2017-08-17 11:13:00 +02:00
Markus Blatt
7b3b99f692 Output bubble/dew point computation problems only on rank 0.
We do this by switching to output the global index of the cells.
In a first step the problematic cell indices are gather on process 0.
Then they are logged there.

This should prevent spurious ouput at the end of PRT and DEBUG files after the
simulation time is printed. This happened previously for some parallel
runs of model 2. Unfortunately, it seems these problems do not appear any
more for the current master. At least I could not reproduce them.
2017-08-14 21:34:54 +02:00
Kai Bao
c59aa9127e making rate_converter to be reference to the one in Simulator
keeping the const property in the Well Model.
2017-08-10 11:20:09 +02:00
Kai Bao
cf902e1a8b Simulator Blackoil and StandardWellsDense uses same rate_converter
fixing the running of group control.
2017-08-10 10:25:39 +02:00
Atgeirr Flø Rasmussen
0a440d98ce Merge pull request #1238 from totto82/removeConvertResults2
Ask ebos to formulate the equation by surface volumes directly
2017-08-10 10:01:32 +02:00
Kai Bao
338828fdce fixing the running of the vfp related for flow_ebos
the output of the THP is still not yet correct.
2017-08-07 11:39:11 +02:00
Tor Harald Sandve
082e00d4ec Ask ebos to formulate the equation by surface volumes directly 2017-06-29 13:58:20 +02:00
Tor Harald Sandve
1bc2550541 Fix polymer in well model for producers. 2017-06-26 08:03:54 +02:00
Tor Harald Sandve
e9a1aa2a83 Clean up after rebase 2017-06-26 08:03:54 +02:00
Tor Harald Sandve
0068c175a7 Add polymer option to flow_ebos
No extra equation is added for polymer in the well equation.

Seperate executables are added for polymer: flow_ebos_polymer
and solvent: flow_ebos_solvent

Tested and verified on the test cases in polymer_test_suite

This PR should not effect the performance and results of the blackoil
simulator
2017-06-26 08:03:54 +02:00
Robert Kloefkorn
2f13de8592 [cleanup][Ebos::getConvergence] removed unnecessary creation of vectors
for temporary quantities.
2017-06-22 14:37:43 +02:00
Andreas Lauser
dc9ad10f87 flow_ebos: do not use BlackoilPropsAdFromDeck anymore
the only thing that was used of this class was the phase usage object,
but the phase usage object can be accessed via much leaner interfaces.

The old BlackoilPropsFromDeck (without "Ad") is still required to
compute the initial condition, but the init code should be refactored
soon anyway.
2017-06-16 15:13:47 +02:00
Andreas Lauser
e3d0bbc144 specify the number of iterations where we use a "strict" Newton convergence criterion using a separate parameter
that parameter is called "max_strict_iter". This increases the
flexibility of this slightly and it avoids screwing up the default
value for the "max_iter" parameter in the future. The credits for this
patch go to [at]atgeirr for proposing it.
2017-06-14 14:22:22 +02:00
Andreas Lauser
e58fed9956 ignore the CNV convergence criterion for the last few newton iterations
the cell based residual can cause problems for cells with
almost-singular shapes and/or small pore volume.
2017-06-14 14:22:22 +02:00
Kai Bao
908b2bdf81 making wellMod_ in WellModelMatrixAdapter is actually a well model
instead of the BlackoilModelEbos, which reduces some confusion and also
removes a few unnecessary wrapping functions.
2017-06-07 14:26:00 +02:00
Tor Harald Sandve
f671af6cd6 Clean-up of the solvent implementation 2017-05-30 14:33:17 +02:00
Tor Harald Sandve
441a8895ac Improvments for solvent model
- add dss to appleyard chopping
- support for bhp injectors with solvent
- copy perfSolventRates between the time steps.
- fix bug in well access indicies when numComponents ~= numPhases
2017-05-30 14:22:19 +02:00
Tor Harald Sandve
b987e4b324 Implement solvent model in flow_ebos
1) Extends the well model to account for solvent surface volumes
2) Add solvent to updateState
3) Add solvent to well and field output

The solvent parts is encapsled in if (has_solvent_) and should not effect
the standard runs.
2017-05-30 14:22:19 +02:00
Markus Blatt
79799a5c5c Use pressure for guiding coarsening in flow_ebos, too.
For flow_legacy the first component a block is used, which is the
oil pressure. As flow_ebos uses different indices this commit
explicitly uses BlackoilIndices::pressureSwitchIdx to tell the AMG
at which index the pressure is stored.
2017-05-22 12:09:58 +02:00
Andreas Lauser
48b7d6ea56 improve writing of the INIT file
now, the dune APIs are used whereever possible and the data is
computed for the global grid, i.e. for parallel runs it does not need
to be gathered across the processes anymore. Also, the INIT file is
now only written once instead of twice.

I've verified that the sequential and the parallel INIT files stay
identical for the Norne case and that the INIT file does not change
w.r.t. before this patch.
2017-05-12 15:44:55 +02:00
Andreas Lauser
e2e0e3290d flow_ebos: do no longer use the legacy object for geologic properties
it was already almost unused (except for output). Besides making the
overall flow_ebos code leaner because it reduces redundancies, this
patch also implies a small reduduction of memory consumption and a
minor performance improvement. the latter is due to the fact that the
transmissibilities now do not need to be calculated more often than
necessary anymore.
2017-05-12 15:43:51 +02:00
Andreas Lauser
f3e0b9c692 Merge pull request #1169 from totto82/prepare_solvent
Prepare for 2p and  extended models.
2017-05-08 13:47:43 +02:00
Tor Harald Sandve
6084721812 Prepare for extended models.
Let the code loop over number of components instead of phase
Pass TypeTag as template parameter instead of all the properties.
2017-05-08 09:52:30 +02:00
Arne Morten Kvarving
3c0cb9e950 adjust for changed ParameterGroup namespacing 2017-04-28 15:36:25 +02:00
Tor Harald Sandve
dad89974ae Make initial viscosity output similar with Ecl 2017-04-24 13:29:47 +02:00
Markus Blatt
b5612806ac Revert to using standard algorithms instead of using masks.
This is now possible as the values stored for ghost/overlap elements
(minimum where we compute the maxiumum, zero where we sum up)
will not influence the result of the computation any more.
2017-04-12 13:42:02 +02:00
Markus Blatt
0db663fe51 Only compute convergence markers for interior elements. 2017-04-12 13:42:02 +02:00
Markus Blatt
b72a167c76 Correctly compute maximum in a parallel flow_ebos run. 2017-04-12 13:42:02 +02:00
Kai Bao
e39ffefb2e performing prepareTimeStep in assemble for StandardWellsDense
instead of model->preppareStep()

to avoid segmenttation error from eclSimulator and also not intervening
with NonlinearSolver
2017-04-11 16:51:16 +02:00
Kai Bao
b21f577989 when there is VREP control, updateRateConverter in prepareStep
in BlackoilModelEbos.
2017-04-11 16:51:16 +02:00
Kai Bao
819aa90d84 adding prepareTimeStep() to the StandardWellsDense
to handle the well potential related calculation
2017-04-11 16:51:16 +02:00
Atgeirr Flø Rasmussen
189d91bc9e Merge pull request #1134 from andlaus/report-failure
flow_ebos: print statistics about failed time steps
2017-04-11 12:29:33 +02:00