Commit Graph

3152 Commits

Author SHA1 Message Date
Kai Bao
402a5a125a adding computeWellRatesWithBhp() to calculate well rates
for one well based on the give Bhp.
2017-04-11 16:51:16 +02:00
Kai Bao
7b2e6760e1 adding wellHasTHPConstraints() to decide if there is THP control
for a specific well.
2017-04-11 16:51:16 +02:00
Kai Bao
86dc231cc3 adding more things related to group control when restarting
with a new time step due to convergence failure.
2017-04-11 16:51:16 +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
4a6dbbe0a7 updating the control index for both well state and well_controls struct
when applying VREP group controls.
2017-04-11 16:51:16 +02:00
Kai Bao
cb85319a72 set thp() value to zero when no THP constraints exist
in updateWellState()
2017-04-11 16:51:16 +02:00
Kai Bao
7a7dcdf3ba correcting a comment in computeWellFlux() in StandardWellsDense 2017-04-11 16:51:16 +02:00
Kai Bao
d02f028260 not resetWellControlFromState in assemble() in StandardWellsDense
other places should gurantee the control indices from the well_state and
well_controls struct are the same.

And also, since the first element in wellSolutions() depends on the type
of the control, this function is complete yet.
2017-04-11 16:51:16 +02:00
Kai Bao
34385ee58f synchronizing the control index at the beginning of assemble()
in StandardWellsDense class.

It takes effects after restarting from a previous unconverged solution.
2017-04-11 16:51:16 +02:00
Kai Bao
2bc1c8702e copying the thp value from prevState. 2017-04-11 16:51:16 +02:00
Kai Bao
77ec45cdd2 recovering the well_controls if solveWellEq not convergent
since we are using the control index from both WellState and
well_controls.
2017-04-11 16:51:16 +02:00
Kai Bao
ea3adb3c37 using reference of WellState in resetWellControlFromState() 2017-04-11 16:51:16 +02:00
Kai Bao
0acb646a4d when there is group control, we should update WellState
since the group targets are updated.
TODO: maybe it is not necessary, need to investigate the design of getBhp() and
getQs().
2017-04-11 16:51:16 +02:00
Kai Bao
087b9471c7 completing prepareTimeStep() for StandardWellsDense
updating all the group control related.
2017-04-11 16:51:16 +02:00
Kai Bao
b83f37dcc0 considering the distr has zero values for non-injecting phases
to avoid NaN resulting from devided by zero.
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
68eaf6ac1f Not copying the wellSolutions from previous WellState
in WellStateFullyImplicitBlackoilDense.
2017-04-11 16:51:16 +02:00
Kai Bao
ed4e87ac24 not copying the contrl_index from the previous WellState
when there is new control keywords enter, the combination of control /
constraints change. Under this kind of situation, copying the control
index does not mean you copy the same types of control.

Using the control index from the previous WellState for many situation
is a good practice, while it also risks copying a random and rather bad
choice. It is a major problem when we have VFP, VFP can have very
damaging values for certain situation to show it is not desirable to
be in this kind of situation.
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
Kai Bao
4b5e1dfadc more treatment for zero rate wells in updateWellStateWithTarget 2017-04-11 16:51:16 +02:00
Kai Bao
f70bb960dd updating rates of multiphase with updateWellStateWithTargets
for StandardWellsDense model.
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
Kai Bao
57f7650228 adding a function computeWellPotentials for StandardWellsDense
for each well. It is a temporay approach for testing without breaking
any compilation before changing the interface for WellsManager.
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
Atgeirr Flø Rasmussen
2dff8ef141 Merge pull request #1135 from nairr/terminal_output_mod
Minor terminal output modifications
2017-04-11 11:39:27 +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
Rohith Nair
1fd91b2ce0 edit 2017-04-11 10:03:22 +02:00
Rohith Nair
be74630699 minor changes to output tag 2017-04-11 09:49:59 +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
Rohith Nair
375e4e2678 Changed output classification of NaN residuals to "Bug" from "Problem" 2017-04-10 18:55:54 +02:00
dr-robertk
9b29b57960 Merge pull request #1124 from atgeirr/output-dir
Refactor directory creation
2017-04-10 13:04:42 +02:00
babrodtk
4d286cf0b3 Makes hysteresis and somax optional in restart file 2017-04-07 16:20:35 +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
29f3b86ef0 Merge pull request #1123 from blattms/fix-parallel-istl-verbosity
Fix verbosity parameter used for parallel istl solvers.
2017-04-07 10:32:34 +02:00
Atgeirr Flø Rasmussen
d9daa651ac Merge pull request #960 from dr-robertk/PR/flow_ebos_polyhedral
Allow to run flow_ebos with PolyhedralGrid (UnstructuredGrid)
2017-04-07 10:13:25 +02:00
Atgeirr Flø Rasmussen
289b24689f Merge pull request #1126 from atgeirr/refined-output
Refined output to terminal and log
2017-04-06 22:17:34 +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
Atgeirr Flø Rasmussen
98debed741 Fix minor output bug and refine output.
Previously the substep summary reports were cumulative, misleading the user.
Also, made output a little more compact and readable, ensuring numbers line up
unless unusually many digits are needed for times and iteration counts.
2017-04-06 14:54:08 +02:00
Atgeirr Flø Rasmussen
e325dcd04b Excessive nonlinear iterations is reported as problem, not error. 2017-04-06 14:52:19 +02:00
Tor Harald Sandve
ac36ad5ad1 BUGFIX. Store soMax also for the solvent model 2017-04-06 14:39:30 +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
Atgeirr Flø Rasmussen
85e1544553 Use ensureDirectoryExists() instead of boost::filesystem directly.
Motivated by
 - proliferation of identical code
 - need to avoid strange behaviour with "." directory on some boost versions
 - potenial for further refactoring to avoid boost entirely
2017-04-06 12:14:54 +02:00
Atgeirr Flø Rasmussen
d267c1a77d Create ensureDirectoryExists() free function. 2017-04-06 12:14:06 +02:00
Markus Blatt
9ed02b33bc Fix verbosity parameter used for parallel istl solvers.
These are not aware whether they are parallel or not. Therefore
the user should only specify a verbose verbosity only on one rank.
With this commit we do this on the process responsible for terminal
output.
2017-04-06 12:11:26 +02:00
Robert Kloefkorn
8a7141fa88 [feature] Add GridInit for PolyhedralGrid. 2017-04-05 13:54:12 +02:00
Robert Kloefkorn
11f36de73e [bugfix] Use AutoDiffGrid in unspecialized version of ParallelDebugOutput. 2017-04-05 13:53:28 +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