Atgeirr Flø Rasmussen
baa6104f39
Silence unused argument warnings.
2017-04-12 11:13:10 +02:00
Atgeirr Flø Rasmussen
246118d794
Silence sign mismatch warnings.
2017-04-12 11:12:34 +02:00
Atgeirr Flø Rasmussen
a17442f578
Remove unused variables.
2017-04-12 11:12:07 +02:00
Andreas Lauser
d334fc1c70
Merge pull request #1118 from GitPaean/calculating_well_potentials_for_each_timestep
...
[WIP] Changes to improve the StandardWellsDense
2017-04-12 10:33:57 +02:00
Atgeirr Flø Rasmussen
df3f763ec4
Merge pull request #1136 from joakim-hove/restart-optional-keys
...
Using optional restart loading instead of extra.
2017-04-12 07:13:29 +02:00
Joakim Hove
527c0a9e75
Using optional restart loading instead of extra.
2017-04-11 22:59:26 +02:00
Kai Bao
0700c8cf67
adding more checking for the potential values
...
during the well well potential calculation.
2017-04-11 16:51:16 +02:00
Kai Bao
ce0e580cee
fixing comments.
...
no functional change.
2017-04-11 16:51:16 +02:00
Kai Bao
dd95114e6d
fixing well potentials calculation after introducing the saturation table
...
The calculation of well potentials of newly added well failed after using the saturation
table. Here, we fix it using much smaller parameters to stablize the
calculation, while it slows down the iteration process.
TODO: improves the convergence rate by either introducing better
paramters or better iteration strategy.
2017-04-11 16:51:16 +02:00
Kai Bao
972b911495
fixing two warnings.
...
no function change.
2017-04-11 16:51:16 +02:00
Kai Bao
72e2b7c6c3
fixing errors resulting from the rebasing procedure.
2017-04-11 16:51:16 +02:00
Kai Bao
7a4d0bb8aa
slightly re-organizing prepareTimeStep()
...
should not impact the simulation results.
2017-04-11 16:51:16 +02:00
Kai Bao
7038b6eb57
recovering the running of flow_multsigement without group control
...
flow_multisegment should not be able to handel group control yet.
2017-04-11 16:51:16 +02:00
Kai Bao
e0d96b3410
removing compute_well_potentials_ from BlackoilModelParameters
2017-04-11 16:51:16 +02:00
Kai Bao
4ed95fcbf0
calculate well potentials based on requireWellPotentials()
...
from well_colllection. Not based on command line paramters anymore.
2017-04-11 16:51:16 +02:00
Kai Bao
181112491b
recovering group control for legacy_flow.
2017-04-11 16:51:16 +02:00
Kai Bao
8fa3c4b324
removing one unnecessary if condition
2017-04-11 16:51:16 +02:00
Kai Bao
e627f35176
removing well_potential_ from WellStateFullyImplicitBlackoil
2017-04-11 16:51:16 +02:00
Kai Bao
72d0d4ddb8
revising the computeWellPotentials in StandardWells
...
so it compute the potentials for each well instead of each perforation.
2017-04-11 16:51:16 +02:00
Kai Bao
8d96d835b3
removing the well potential from WellsManager constructor.
2017-04-11 16:51:16 +02:00
Kai Bao
1aff98c4f4
adding the extra template type from recent merged PR
2017-04-11 16:51:16 +02:00
Kai Bao
22b2217dd3
removing setWellSolutionsFromPrevState from WellStateFullyImplicitBlackoilDense
...
Not used anymore.
2017-04-11 16:51:16 +02:00
Kai Bao
032f9803be
cleaning up unuseful comments and code fragments.
2017-04-11 16:51:16 +02:00
Kai Bao
279fbad17c
removing the comments from the NonlinearSolver_impl
...
which is from the development process.
2017-04-11 16:51:16 +02:00
Kai Bao
ef7769b77e
tracking if wells are newly added in WellStateFullyImplicitBlackoil
...
For a newly added well, the initialized rate cans cause big problem when
applied to VFP interploation when THP control is involved.
2017-04-11 16:51:16 +02:00
Kai Bao
a8ae9276c5
adding computeWellPotentialWithTHP() to compute well potential
...
in an iterative way. When VFP interpolation is performed, the bhp and
rates are coupled together. Some iteration will be required to get the
consistent bhp and well potential.
2017-04-11 16:51:16 +02:00
Kai Bao
182c5897c8
adding leastStrictBhpFromBhpLimits()
...
to pick the least strict bhp limits in the well controls. It is used to
calculate the well potential when there is no thp limits there.
If there is thp limits there, it will be used for further chosing of the
bhp value for well potential calculation.
2017-04-11 16:51:16 +02:00
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