Commit Graph

97 Commits

Author SHA1 Message Date
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
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
Kai Bao
7a9fc2132e more cleaning up of StandardWellsDense.
not functional change.
2017-08-25 14:09:26 +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
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
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
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
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
Atgeirr Flø Rasmussen
757320c57d Merge pull request #1224 from blattms/only-created-step_timings.txt-if-output
Only create step_timing.txt file if it gets written to.
2017-06-21 09:01:33 +02:00
Markus Blatt
e6c2ab47b3 Equalize if statements governing step_timing.txt output 2017-06-20 15:46:04 +02:00
Markus Blatt
e0a7ced256 Only create step_timing.txt file if it gets written to.
If output=false is requested we created an empty file.
Now that file will only be created if output was requested
and it will only be opened on one rank in a parallel run.
2017-06-19 17:51:26 +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
Atgeirr Flø Rasmussen
42aa343d9f Write total solver time to TCPU. 2017-06-06 21:35:05 +02:00
Tor Harald Sandve
683ba7e929 Fix fallout from rebase 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
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
Kai Bao
8d96d835b3 removing the well potential from WellsManager constructor. 2017-04-11 16:51:16 +02:00
Kai Bao
653baae039 making the computeWellPotentials calculate potential for each well
Not store the well potentials to WellState anymore.
2017-04-11 16:51:16 +02:00
Andreas Lauser
ef2a560fb3 flow_ebos: print statistics about failed time steps
the performance summary at the end of a Norne run which are printed by
`flow_ebos` now looks like this on my machine:

```
Total time (seconds):         773.757
Solver time (seconds):        753.349
 Assembly time (seconds):     377.218 (Failed: 23.537; 6.23965%)
 Linear solve time (seconds): 352.022 (Failed: 23.2757; 6.61201%)
 Update time (seconds):       16.3658 (Failed: 1.13149; 6.91375%)
 Output write time (seconds): 22.5991
Overall Well Iterations:      870 (Failed: 35; 4.02299%)
Overall Linearizations:       2098 (Failed: 136; 6.48236%)
Overall Newton Iterations:    1756 (Failed: 136; 7.74487%)
Overall Linear Iterations:    26572 (Failed: 1786; 6.72136%)
```

for the flow_legacy family, nothing changes.
2017-04-11 11:12:11 +02:00
Atgeirr Flø Rasmussen
88e4646b71 Merge pull request #1084 from babrodtk/hysteresis_output
Adds hysteresis output and input (for restarting)
2017-04-11 07:44:59 +02:00
Atgeirr Flø Rasmussen
db8523e849 Merge pull request #1082 from totto82/satTableIdWells
Support for saturation table for each well completion
2017-04-07 14:43:28 +02:00
babrodtk
1fd36e9451 Fixed hysteresis input/output in flow_legacy 2017-04-07 14:36:36 +02:00
Atgeirr Flø Rasmussen
6f9fcdf7a5 Fix (debug log) output of time taken per report step.
First, the stepReport variable was not used with adaptive timestepping.
Second, even when properly updating stepReport, solver_time is still 0.
It just happens that lots of other timing variables are updated, but not
solver_time (nor total_time, pressure_time and transport_time). Simplest
way to handle is to just report the solver_timer seconds (which are still added
to the "full sim report"'s solver_time).
2017-04-06 21:08:21 +02:00
Tor Harald Sandve
cd564ade5f Support for saturation table for each well completion
Compute relperms for each well completion based on saturation table ids
(satnums)

Does not work in combination with hysteresis.
2017-04-06 14:21:59 +02:00
babrodtk
8340d26890 Adds hysteresis output and input (for restarting) 2017-04-06 14:17:15 +02:00
babrodtk
e0e1ca51e6 Added soMax to flow_legacy 2017-04-05 12:32:43 +02:00
babrodtk
bd0507cc3b Added somax to input/output to restart file 2017-04-05 12:32:43 +02:00
Markus Blatt
30f3d4e2d0 Get rid off TypeTag system in StandardWellsDense.
Previously, we kind of hard coded the problem using the TypeTag system.
Instead of this we now simply pass the only additional thing needed, the
ElementContext, as an additional template parameter.

Removes the include of removed header BlackoilModelEbosTypeTags.hpp.
2017-04-04 11:08:17 +02:00
Atgeirr Flø Rasmussen
711e9bacb7 Allow restarting without OPMEXTRA field in restart file. 2017-03-16 13:34:24 +01:00
Atgeirr Flø Rasmussen
5c7804935d Merge pull request #1078 from totto82/eventOve
Set timesteps after events
2017-03-15 11:20:20 +01:00
Andreas Lauser
aa9966d7b8 flow_ebos FIP: fix the field totals code
this unifies the code paths of the code that calculates the FIP field
totals for the parallel and the sequential cases and makes the code
more robust because it does not hard-code the presence of an intensive
quantities cache anymore. also, rock compressibility is now also
included in the field totals instead of just the FIP regions. this was
forgotten in the last FIP PR because the region values are calculated
in a different class using completely different code. (i.e., regions
are done by the model, field totals by the simulator. that design
should win an award, IMO.)

with this patch, the field totals for Norne and SPE1 seem to match
those produced by E100 _very_ closely and also parallel and sequential
runs for Norne and SPE1 of flow_ebos produce exactly the same
numbers. (This is probably the case for all decks, but I haven't
tested anything else.)
2017-03-15 11:07:45 +01:00
Andreas Lauser
3e1758f5c8 the first time FIP needs to be reported is before the simulation starts 2017-03-15 11:07:45 +01:00
nairr
71e2d63a6e Adds information regarding report step, elapsed time, simulation date,
simulator name, version, field title etc to the fip output
2017-03-13 16:48:19 +00:00
Tor Harald Sandve
19a16ceeca Set timesteps after events
The time step after an event can either be set using
timestep_in_days_after_event or using the TUNING keyword in the deck.
2017-03-09 08:54:44 +01:00
Atgeirr Flø Rasmussen
ffaa48295a Add restart I/O of suggested timestep length. 2017-03-01 08:45:34 +01:00
babrodtk
6ed7b9dcb9 Moved computation of FIP before output to summary 2017-02-24 11:32:36 +01:00
babrodtk
1e5df1b720 Added writing initial timestep data to restart 2017-02-22 10:12:47 +01:00
Andreas Lauser
9df4b21369 flow_ebos: fix the calculation of the original fluid in place
for Norne the numbers are now very close to those of the ECL
reference. ("very close" means < 0.01 % deviation of pressure and
initial fluid volume for the field totals.)
2017-02-20 16:28:20 +01:00
Robert Kloefkorn
4c118c6455 Merge remote-tracking branch 'upstream/master' into PR/cleanup-output-writers 2017-02-13 21:28:54 +01:00
Arne Morten Kvarving
86fbb36fd2 adjustments for imported files
- adjust include paths
- add new test to build system
- add new example to build system
2017-02-10 13:02:00 +01:00
Robert Kloefkorn
82658c92d0 Removal of SimulatorFullyImplicitBlackoilOutputEbos.{h,c}pp.
All simulators now use SimulationDataContainer to store intermediate data that
is passed to the output Solution container. This is in cases not the most
efficient way, but it's unified to avoid errors from code duplication.
2017-02-09 16:57:45 +01:00
Arne Morten Kvarving
a14f5392ee fixed: pass the fipnum data into the adaptive timer stepper
summary substep reports requires FIP data
2017-02-09 09:35:40 +01:00
Andreas Lauser
42ec0ca3c3 do not explicitly pass the permeability to the well model anymore
this information is already part of the EclipseState. The reason why
this should IMO be avoided is that this enforces an implementation
detail (ordering of the permeability matrices) of the simulator on the
well model. If this needs to be done for performance reasons, IMO it
would be smarter to pass an array of matrices instead of passing a raw
array of doubles.  I doubt that this is necessary, though: completing
the full Norne deck takes about 0.25 seconds longer on my machine,
that's substantially less than 0.1% of the total runtime.
2017-01-27 13:06:09 +01:00
Andreas Lauser
7d5c5f8acc Merge pull request #1029 from totto82/bugfix_swatinit
BUGFIX Pass solution from flowEbos to ebos initially
2017-01-20 15:02:50 +01:00
Tor Harald Sandve
ce2aa77cbd BUGFIX Pass solution from flowEbos to ebos initially
The initial solution in ebos and  in flowebos are different in cases where
swatinit is present. Pass the initial solution and recalculate the
intensive quantities make sure that the flowEbos initial solution is
used.
2017-01-19 09:18:55 +01:00
Kai Bao
4b47fa52ca adding well collection to StandardWellsDense
to make StandardWellsDense have access to the group information.
2017-01-16 16:18:35 +01:00