Kai Bao
9972dae32a
updating for the comments.
...
implement wells(), localWellsActive() and wellsActive() for the
BlackoilModelBase and its derived classed.
2016-04-06 12:54:01 +02:00
Kai Bao
4ad5d81296
fixing wrong codes from the rebase process and cleanup.
2016-04-06 12:54:01 +02:00
Kai Bao
8a52dd743b
making StandardWells a simple class.
2016-04-06 12:54:01 +02:00
Kai Bao
3947ff5b1d
moving localWellsActive and wellsActive to StandardWells
...
maybe later it can be something general for different types of wells.
2016-04-06 12:54:01 +02:00
Kai Bao
48483b23c7
update BlackoilSolventModel to fix the compilation.
2016-04-06 12:54:01 +02:00
Kai Bao
23288ce2e5
fixing the compilation after updated with master branch.
2016-04-06 12:54:01 +02:00
Kai Bao
5910c0db7c
recovering the buidling for flow_multisegment
2016-04-06 12:54:01 +02:00
Kai Bao
723da3e618
recovering the flow_polymer
2016-04-06 12:54:01 +02:00
Kai Bao
bef4b8c077
moving the wellOps to the StandardWells class.
2016-04-06 12:54:01 +02:00
Kai Bao
8367eaacb3
first attempt to introduce StandardWells struct.
...
To replace the const Wells struct in BlackoilModelBase.
Only testing with Flow for the moment. Will update other Flow siblings
later.
2016-04-06 12:54:00 +02:00
Robert Kloefkorn
54ea243c5f
SimulatorFullyImplicitBlackoilOutput: added threaded asynchronous output.
2016-04-06 11:10:01 +02:00
Tor Harald Sandve
e5254f3779
Adapt to changes interface of extractWellPerfProperties
...
The BlockoilmultisegmentModel is updated to account for changes in the
extractWellPerfProperties() interface.
2016-04-05 09:13:29 +02:00
Tor Harald Sandve
764d8a1c3f
Remove leftovers from a merge process going wrong
2016-04-05 09:03:22 +02:00
Tor Harald Sandve
89e540cb2c
Pass solutionState as first parameter
...
output parameters go last...
2016-04-05 08:57:07 +02:00
Tor Harald Sandve
925d0becf3
Fix to make flow_solvent run decks without solvent
2016-04-05 08:57:07 +02:00
Tor Harald Sandve
541475b2db
Implement computePropertiesForWellConnectionPressures for solvent model
...
The solvent specify part of computeWellConnectionPressures is factored
out to computePropertiesForWellConnectionPressures in order to reuse
the computeWellConnectionPressures from the base model.
2016-04-05 08:57:07 +02:00
Tor Harald Sandve
9cd0383d36
Factor out computation of properties for well connection pressures
...
Computation of properties used in computeConnectionPressureDelta
is factored out to computePropertiesForWellConnectionPressures
The motivation is to be able to use a modified version of
computePropertiesForWellConnectionPressures in the solvent model
2016-04-05 08:57:07 +02:00
Tor Harald Sandve
7b81facfb0
Make use of extractWellPerfProperties to avoid code duplication
...
The following changes are done in order to remove the duplicated code in
assemble().
- extractWellPerfProperties takes SolutionState as input (only used in
the solvent model)
- the computation of effective parameters is moved to computeAccum()
With these changes the solvent model can use assemble() from the base
model.
2016-04-05 08:53:09 +02:00
Atgeirr Flø Rasmussen
0e7e45c129
Merge pull request #627 from totto82/well_potentials
...
Compute well potentials
2016-04-04 15:11:19 +02:00
Atgeirr Flø Rasmussen
cf6ed11f46
Merge pull request #626 from qilicun/adapt-changes
...
adapt changes to relpermDiagnostics.
2016-04-04 15:04:50 +02:00
Tor Harald Sandve
a2bff9149a
Remove unused argument from computeWellPotentials()
2016-04-04 15:03:59 +02:00
Tor Harald Sandve
e4b52a457f
Only calculate well potentials for cases with well groups
2016-04-04 09:03:13 +02:00
Tor Harald Sandve
bd81bda57b
Remove well_perforation_pressure_diffs fr WellStateFullyImplicitBlackoil
...
- Calculate the well perforatino pressure difference based on bhp and
perforation pressures instead of storing it in
WellStateFullyImplicitBlackoil
2016-04-04 08:35:59 +02:00
Tor Harald Sandve
36a73591b0
Fix doc. for pressureMixingParameter
2016-04-01 15:59:17 +02:00
Tor Harald Sandve
a02a07289e
Implement pressure effects in the Todd-Longstaff mixing parameter
...
The Todd-Longstaff model is extended to incorporate pressure effects
The solvent viscosity is then caculated as
mu_eff = mu_s^(1-\alpha * \omega) * mu_mix^(\alpha * \omega)
where \omega accounts for the porous media effects and \alpha =
\alpha(pressure) accounts for the miscibility of the solvent and oil
when contacted.
The \alpha values can be given using the TLPMIXPA keyword
If no entries are given to TLPMIXPA the table specified using PMISC will
be used as default.
IF TLPMIXPA does not appear in the grid \alpha = 1 and the pressure
effect is neglected.
This is tested in test_solventprops_ad.cpp
2016-04-01 15:55:56 +02:00
Tor Harald Sandve
30bd24f2fe
Compute well potentials
...
The well potentials are caculated based on the well rates and pressure
drawdown at every time step. They are used to calculate default guide
rates used in group controlled wells.
well_perforation_pressure_diffs is stored in
WellStateFullyImplicitBlackoil as it is needed in the well potential
calculations.
2016-04-01 14:58:46 +02:00
Atgeirr Flø Rasmussen
8c9b17b943
Merge pull request #615 from totto82/fixes_solvent_model
...
Fixes to the solvent model
2016-04-01 13:40:00 +02:00
Liu Ming
778d318bb3
adapt changes to relpermDiagnostics.
2016-04-01 12:33:02 +08:00
Liu Ming
c314c30e79
if output_dir exists, save PRT file in that folder.
2016-04-01 09:27:39 +08:00
Liu Ming
0108216a68
Merge remote-tracking branch 'remotes/opm/master' into change-PRT-folder
2016-04-01 09:22:59 +08:00
Atgeirr Flø Rasmussen
6549658622
Merge pull request #624 from GitPaean/polymer_linearsolver
...
making the interleaved solver works for blackoil polymer simulator.
2016-03-31 15:39:54 +02:00
Atgeirr Flø Rasmussen
543c1655b9
Merge pull request #616 from jokva/accept-filename-without-DATA
...
Flow accepts base name for input Deck
2016-03-31 15:33:23 +02:00
Atgeirr Flø Rasmussen
b5c216f4f3
Merge pull request #621 from totto82/fix_lrat
...
Bugfix. Fix setting initial rates in updateWellControls
2016-03-31 14:33:33 +02:00
Atgeirr Flø Rasmussen
3aa5158842
Merge pull request #619 from kjellkongsvik/Move_OutputWriter_to_opm-output
...
Refactored to use OutputWriter from opm-output
2016-03-31 09:44:09 +02:00
Atgeirr Flø Rasmussen
13b86a7825
Revert "Asynchronous output."
2016-03-31 09:43:01 +02:00
Kai Bao
b39b9a85a2
making the interleaved solver works for blackoil polymer simulator.
...
The CPR solver does not work yet. An error will be thrown if people
specify to use CPR linear solver.
2016-03-30 16:19:56 +02:00
Robert Kloefkorn
8d11be71e0
SimulatorState --> SimulationDataContainer.
2016-03-30 11:01:34 +02:00
Robert Kloefkorn
9c67c0e135
Merge remote-tracking branch 'upstream/master' into PR/async-output
2016-03-30 10:45:40 +02:00
Jørgen Kvalsvik
9df3b2fda9
Flow accepts base name for input Deck
...
Enables flow to accept a basename for a case by appending a .DATA suffix
should it not be provided. It already supported reading the basename
from a .DATA extension file, but not opening said file by handing it to
the parser.
2016-03-30 08:51:41 +02:00
Robert Kloefkorn
5044a07e46
SimFullImplOutput: added future to ensure that write history is accounted for.
2016-03-29 15:22:33 +02:00
Kjell W. Kongsvik
a15085ad7d
Replace comment with "ifdef DISABLE_OUTPUT"
2016-03-29 14:57:58 +02:00
Kjell W. Kongsvik
3614defbd9
Commented out usage of OutputWriter in simulator
2016-03-29 14:56:25 +02:00
Robert Kloefkorn
d5c375f297
SimulatorFullyImplicitOutput: added flag for async output.
2016-03-29 10:49:49 +02:00
Robert Kloefkorn
29053dc18d
SimulFulImplBOOutput: asynchronous serial output.
2016-03-29 10:49:49 +02:00
Atgeirr Flø Rasmussen
463866b523
Create state_ in all cases.
2016-03-29 10:48:36 +02:00
Atgeirr Flø Rasmussen
98862f449c
Restore compilation (init -> constructor).
...
Also suppress new warnings due to unsigned/signed comparisons.
2016-03-29 10:48:36 +02:00
Joakim Hove
18c07d5d66
Replaced SimulatorState -> SimulationDataContainer
2016-03-29 10:48:36 +02:00
Tor Harald Sandve
d91831b971
Avoid comparsion of floating point numbers
2016-03-18 14:30:47 +01:00
Tor Harald Sandve
94aa360fe6
Bugfix. Fix setting initial rates in updateWellControls
...
- The initial rates are only set to target values for single phase
producers (orat, wrat, grat).
- For injectors compi is used to determine the initial target rates.
2016-03-18 13:16:23 +01:00
chflo
e63bf7aead
Changed includes due to OpmLog moved from parser to common
2016-03-17 16:19:07 +01:00
Kjell W. Kongsvik
ea9e572a65
Refactored to use OutputWriter from opm-output
...
As OutputWriter has been deleted from opm-core
Only changes in includes
2016-03-17 14:45:30 +01:00
Liu Ming
debf039175
rename ParseMode as ParseContext.
2016-03-17 08:55:52 +08:00
Tor Harald Sandve
753909b8b9
Fix convergence issues for negative relperm endpoints.
...
The relative permeabilty endpoints are scaled by the miscibility
function. The endpoints is not supposed to be negative therefore all
negative values are replaced by zero.
2016-03-16 11:04:56 +01:00
Tor Harald Sandve
41aa55ec82
Allow for shut wells in solvent run
2016-03-16 11:00:00 +01:00
Atgeirr Flø Rasmussen
a3ae13b892
Merge pull request #612 from qilicun/enable-solvent-diagnostics
...
enable relperm diagnostics for solvent model.
2016-03-16 10:32:18 +01:00
Liu Ming
f0a2959a6d
use EclipsePRTLog.
2016-03-15 09:43:18 +08:00
Liu Ming
b4b821521e
enable relperm diagnostics for solvent model.
2016-03-10 14:41:10 +08:00
Atgeirr Flø Rasmussen
77ea648e6a
Merge pull request #610 from GitPaean/performance_multisegment
...
adding flag to wops_ms_ to indicate if MSW is involved.
2016-03-09 12:54:30 +01:00
Kai Bao
8115d918dd
adding flag to wops_ms_ to indicate if MSW is involved.
...
to reduce some extra cost when MSW is not involved.
2016-03-09 11:20:16 +01:00
Andreas Lauser
bf283f8684
threshold pressures: consider the saturated case and fix a typo
...
the typo was caused the surface density of the oil phase to be used
instead of the one of gas. This caused the density to be off by a
factor of typically about 900.
using saturated FVFs does not change much, but it does not hurt
because it is also done that way in the simulator.
This makes the defaults for the threshold pressures reasonable again,
but for some reason they are not exactly the same as in the old
implementation. (although the differences are very tolerable.)
On the question why only "Model 2" is affected by this: the other
decks don't use threshold pressures (SPE-X) or do not default any
values (Norne).
2016-03-08 14:52:09 +01:00
Atgeirr Flø Rasmussen
d75516a705
Merge pull request #609 from totto82/powADB
...
Add power method for general f^g in the AutoDiffBlock
2016-03-08 11:15:00 +01:00
Tor Harald Sandve
35b34f1b3a
Add pow() for constant base raised to variable exponent in AutoDiffBlock
...
- associated tests are added
- this PR also contains some clean up
2016-03-08 10:35:29 +01:00
Atgeirr Flø Rasmussen
235bdedc55
Merge pull request #605 from totto82/supportForPMISC
...
Add support for PMISC
2016-03-08 10:03:03 +01:00
Atgeirr Flø Rasmussen
597cda6cbb
Merge pull request #608 from totto82/relperm_diagnostic_solvent
...
Skip the relperm diagnostics for the solvent model.
2016-03-08 08:41:27 +01:00
Tor Harald Sandve
b2e02f6d2b
Add power method for general f^g in the AutoDiffBlock
...
A power method where both f and g are ADB variables is added
using the general derivative rule
(f^g)' = f^g * ln(f) * g' + g * f^(g-1) * f'
Tests are added to test_block.cpp
2016-03-07 14:23:45 +01:00
Andreas Lauser
b39e579197
fix the fallout of the removal of the opm-core black-oil PVT classes
2016-03-07 11:32:12 +01:00
Tor Harald Sandve
20819b8a03
Skip the relperm diagnostics for the solvent model.
2016-03-07 09:19:42 +01:00
Liu Ming
74fedcc53b
Save PRT in the same folder as summary file.
2016-03-07 09:58:17 +08:00
Andreas Lauser
1f1dfbfc65
replace the blackoil PVT classes by the ones of opm-material
...
the opm-material classes are the ones which are now used by
opm-autodiff and this patch makes it much easier to keep the opm-core
and opm-autodiff results consistent. Also, the opm-material classes
seem to be a bit faster than the opm-core ones (see
https://github.com/OPM/opm-autodiff/pull/576 )
I ran the usual array of tests with `flow`: SPE1, SPE3, SPE9 and Norne
all produce the same results at the identical runtime (modulo noise)
and also "Model 2" seems to work.
2016-03-05 19:11:44 +01:00
Tor Harald Sandve
948d985f56
Add support for PMISC
...
Pressure effects are added to relative permeability, capillary pressure,
viscosity and density miscibility
2016-03-04 11:34:31 +01:00
Atgeirr Flø Rasmussen
96938548c1
Merge pull request #603 from atgeirr/remove-unused-parameter
...
Adapt to removed init() parameter.
2016-03-04 11:22:08 +01:00
Atgeirr Flø Rasmussen
f7f18c70bb
Merge pull request #604 from atgeirr/minor-fixes
...
Fix minor initialization and overriding bugs.
2016-03-04 11:21:09 +01:00
Atgeirr Flø Rasmussen
a19607fabc
Merge pull request #593 from qilicun/integrate_diagnostics
...
integrate relperm diagnostics into flow.
2016-03-04 09:49:10 +01:00
Atgeirr Flø Rasmussen
7bfa8f405e
Fix bug in overriding method.
2016-02-29 11:18:51 +01:00
Atgeirr Flø Rasmussen
b0b42d7dc7
Add missing initializer for 'singlePrecision'.
2016-02-29 11:17:54 +01:00
Atgeirr Flø Rasmussen
6dd3f0ebb3
Adapt to removed init() parameter.
2016-02-29 11:05:35 +01:00
Jørgen Kvalsvik
6ae1613765
Add missing opm-parser headers
...
opm-parser pull #695
https://github.com/OPM/opm-parser/pull/695
2016-02-26 11:56:44 +01:00
Bård Skaflestad
1237251ee4
Merge pull request #599 from joakim-hove/state-updates
...
PolymerState changes
2016-02-24 07:31:37 -06:00
Joakim Hove
7ddd1c1c80
PolymerState changes
...
- The PolymerState class will derive from SimulatorState, instead of
containing a TwoPhaseState instance.
- The Polymer calculation methods take PolymerState& input argument
instead of TwoPhaseState&
2016-02-22 18:42:13 +01:00
Andreas Lauser
7c3020822a
properly create state.temperature in the FullyImplicitCompressiblePolymerSolver class
2016-02-22 15:16:44 +01:00
Andreas Lauser
099c958137
fix the deprecation warnings caused by OPM/opm-parser#687
2016-02-21 17:45:56 +01:00
Jørgen Kvalsvik
19e41bd246
Change Deck access methods/types to references
...
opm-parser#677 changes the return types for the Deck family of classes.
This patch fixes all broken code from that patch set.
https://github.com/OPM/opm-parser/pull/677
2016-02-19 11:55:19 +01:00
Atgeirr Flø Rasmussen
5bb705fda8
Merge pull request #953 from andlaus/const_gridproperties
...
fix the build
2016-02-19 11:46:32 +01:00
Atgeirr Flø Rasmussen
af2455fdbe
Merge pull request #590 from dr-robertk/PR/bugfix-in-backup-restore
...
Bugfix in backup/restore.
2016-02-19 11:37:57 +01:00
Liu Ming
b15320b659
change diagnostics function call order.
2016-02-19 16:40:45 +08:00
Liu Ming
fe06257f27
rename LOG to PRT file.
2016-02-19 16:23:31 +08:00
Liu Ming
66cde4e052
integrate relperm diagnostics into flow.
2016-02-19 12:45:23 +08:00
Markus Blatt
c0b871a38a
Improves NNC error message.
2016-02-18 22:05:01 +01:00
Markus Blatt
51b8d9acb1
Fixes the exception for models with threshold pressures.
...
Since the support for threshold pressures running Norne with
flow_mpi aborted error messages like
```
Program threw an exception: [/home/mblatt/DUNE-test/opm-autodiff/opm/autodiff/BlackoilModelBase_impl.hpp:383] Illegal size of threshold_pressures input ( 153924 ), must be equal to number of faces + nncs ( 78316 + 0 ).
```
This commit now distributes the threshold pressures (if present) just like the rest
of the model properties and Norne does not abort here any more.
Please note:
1. If there are NNCs flow_mpi will abort with an error.
2. We might want to resort to reading and calculating the threshold pressure
(and maybe other properties) on distributed grids instead of using communication.
2016-02-18 17:00:08 +01:00
Atgeirr Flø Rasmussen
569df33ab2
Merge pull request #583 from totto82/solventSupportRegions
...
Support regions in the solvent model
2016-02-18 15:43:27 +01:00
Robert Kloefkorn
8b08be2b78
fastSparseAdd/Substruct: use operator += and -=.
2016-02-18 15:31:35 +01:00
Robert Kloefkorn
ce04e22399
BackupRestore: bugfix due to mixup of size_t and unsigned int.
2016-02-18 15:30:52 +01:00
Jørgen Kvalsvik
369050cc9c
Change Deck access methods/types to references
...
opm-parser#677 changes the return types for the Deck family of classes.
This patch fixes all broken code from that patch set.
https://github.com/OPM/opm-parser/pull/677
2016-02-18 08:50:26 +01:00
Atgeirr Flø Rasmussen
8dfc8d82fc
Merge pull request #582 from dr-robertk/PR/fast-sparse-add
...
Fast sparse add.
2016-02-17 19:55:15 +01:00
Robert Kloefkorn
d001cac5b7
equalSparsityPattern: address nitpicks.
2016-02-17 15:59:34 +01:00
Robert Kloefkorn
bc71458d44
AutoDiffMatrix: added braces in operator += and -=.
2016-02-17 14:24:55 +01:00
Tor Harald Sandve
fd219dd544
Add whitespaces and comments to beautify the code
2016-02-17 10:43:01 +01:00
Markus Blatt
696dfc23ee
Account for variable change in 2.4.1
...
Due to the upcomming release the name changes (j->j_, nnz->nnz_)already appear
in 2.4.1. This commit now checks for 2.4.1 and newer instead of 3.0 and newer.
2016-02-16 19:17:27 +00:00
Robert Kloefkorn
75ffd897da
AutoDiffBlock: revert changes in operator /.
...
equalSparsityPattern: also include outer index in check.
2016-02-16 17:18:04 +01:00
Robert Kloefkorn
9661973387
Also check outer ptr.
2016-02-16 15:24:52 +01:00
Robert Kloefkorn
4df4c9147a
fastSparseProduct.hpp --> fastSparseOperations.hpp
2016-02-16 10:25:57 +01:00
Robert Kloefkorn
743fad877a
remove unused typedef.
2016-02-16 10:25:57 +01:00
Robert Kloefkorn
2eebf73e1a
computeWellFlux: use operator -= when possible.
2016-02-16 10:25:57 +01:00
Robert Kloefkorn
98c49fd52f
AutoDiffMatrix: use operator += to add matrices
2016-02-16 10:25:57 +01:00
Robert Kloefkorn
fadf5528e3
squash
2016-02-16 10:25:56 +01:00
Robert Kloefkorn
d5b6566e06
AutoDiffMatrix: use fastSparse{Add,Substract} when sparsisty patterns match.
2016-02-16 10:25:56 +01:00
Andreas Lauser
e775df6d23
fix the build
...
it broke because EclipseState::get*GridProperty() now returns a
pointer to a constant object.
2016-02-15 15:06:05 +01:00
Tor Harald Sandve
b02589316f
Add support for MISC regions
...
- element wise power operator impemented in AutoDiffBlock
- TL parameters are given pr cell
2016-02-15 14:44:14 +01:00
Tor Harald Sandve
9328bd5af5
Support pvt and saturation regions in SolventPropsAdFromDeck
2016-02-15 10:07:47 +01:00
Robert Kloefkorn
530c0fe57f
MatrixBlock: cleanup invert implementation to be less confusing.
2016-02-12 12:17:01 +01:00
Robert Kloefkorn
3aa8ed200f
NewtonBlackoilInterleaved: increase maximal allowed iteration to 75.
2016-02-12 12:14:02 +01:00
Robert Kloefkorn
37e49a62c8
BlackoilModelBase: use single precision for solver when dt < 20 days.
2016-02-12 12:14:02 +01:00
Robert Kloefkorn
e3b578d685
NewtonIterationBlackoilInterleaved: single precision can be used whether UMFpack is
...
there or not.
2016-02-12 12:14:02 +01:00
Robert Kloefkorn
4111797822
BlackoilModelBase: added parameter singlePrecision and print residual to large at right
...
place.
2016-02-12 12:14:02 +01:00
Robert Kloefkorn
915177979c
SimulatorBase: also show total time at each time step for performance comparison.
2016-02-12 12:14:02 +01:00
Robert Kloefkorn
82d508727f
MatrixBlock: added function firstmatrixelement.
...
NewtonBlackoilInterleaved: some cleanup and variable naming.
2016-02-12 12:14:02 +01:00
Robert Kloefkorn
783f158c93
NewtonBlackoilInterleaved: anable the use of AMG preconditioner.
2016-02-12 12:14:02 +01:00
Robert Kloefkorn
31812bd2f9
NewtonBlackoilInterleaved: add solver option for single precision.
2016-02-12 12:14:02 +01:00
Robert Kloefkorn
37dc877074
CPRPreconditioner: extract creation of AMG into a function.
2016-02-12 12:14:02 +01:00
Atgeirr Flø Rasmussen
eb228835c2
Merge pull request #577 from totto82/solventMiscible
...
Add miscible effects to the solvent model
2016-02-12 11:21:56 +01:00
Tor Harald Sandve
0a30d912e8
Some more cleanup adressing PR comments.
2016-02-12 11:02:03 +01:00
Tor Harald Sandve
dee96db6b2
Cleaning and adding comments
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
c85f10046c
Density and viscosity as inputs instead of computed in computeMassFlux
...
Density and viscosity are given as input instead of calculated inside
computeMassFlux. This allow for modifying the properties prior to
calling computeMassFlux which avoids code duplication in the solvent
implementation.
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
0745be3eba
Various bugfixes in computing effective ToddLongstaff parameters
...
The most significant bug was in the computation of effective saturation
fraction for the gas phase. The current implementation differs from the
manual.
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
cf29eb9aa4
Adapt to changes in the TableContainer
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
a38964c641
Some cleaning
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
13117153a9
Use effective properties in the computation of well segment densities
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
beafccc038
Refactor the ToddLongstaffModel in separate function
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
b8e20917cc
Add Todd and Longstaff model
...
Add method to calculateEffectiveProperties (viscosity and density)
using the Todd and Longstaff model.
The effective properties are stored in mu_eff_ and b_eff_ in the
BlackoilSolventModel and accessed using fluidReciprocFVF and
fluidViscosity
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
17554b4921
Add support for TLMIXPAR
...
Add support for Todd-Longstaff mixing paramters
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
38c8cd981e
BUGFIX. Fix surfaceDensity calculations
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
1e64409f28
Scaling of relative permeability endpoints by the miscibility function
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
bcb0abd9c9
Fix well input and prepare for critical saturations
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
e448548d5a
Some refactoring to avoid code duplication
...
computeMassFlux in BlackoilSolventModel_impl.hpp is refactored to avoid
code duplication
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
238e7c19f3
Add support for miscibilty in the relperms
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
bbee43ef7a
Refactor computeMassFlux in the SolventModel
...
The computeMassFlux in the solventModel is refactored to allow for
modification of relperms for all phases.
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
3d2b7f23c0
Read MSFN and SOF2 and create accociated function
...
- makeAD() is added to avoid copying
2016-02-12 10:42:26 +01:00
Atgeirr Flø Rasmussen
3b294beb51
Merge pull request #575 from dr-robertk/PR/make-compile-with-current-master
...
DuneMatrix: adjust to changes in dune 3.0
2016-02-12 10:23:40 +01:00
Atgeirr Flø Rasmussen
885e3aa561
Merge pull request #576 from andlaus/opm-material_PVT
...
use the blackoil PVT classes from opm-material instead of the opm-core ones
2016-02-11 22:39:38 +01:00
Andreas Lauser
13d2f35493
BlackoilPropsAdFromDeck: fix a few typos
...
these definitively do not change the results.
2016-02-11 17:07:24 +01:00
Atgeirr Flø Rasmussen
a356a100f7
Fix minor issue with const POD requirements.
...
A user-defined default constructor is required in this situation
unless explicitly using the empty-brace-init syntax.
See discussion here:
http://stackoverflow.com/questions/7411515/why-does-c-require-a-user-provided-default-constructor-to-default-construct-a
2016-02-11 16:17:17 +01:00
chflo
399b4f11c4
restart flow
2016-02-10 14:47:55 +01:00
Andreas Lauser
64c94aebc7
use the blackoil PVT classes from opm-material instead of the opm-core ones
2016-01-29 12:56:19 +01:00
Robert Kloefkorn
a000c5a0b1
DuneMatrix: adjust to changes in dune 3.0
2016-01-28 13:50:25 -07:00
Jørgen Kvalsvik
850f0884f1
Improve includes from opm-parser
...
Adopting to opm-parser PR#661, add previously missing includes.
OPM/opm-parser#661
2016-01-26 13:32:34 +01:00
Jørgen Kvalsvik
087710df7d
Fixes includes wrt opm-parser PR-656
...
Several files stopped compiling due to relying on opm-parser headers doing
includes. From opm-parser PR-656 https://github.com/OPM/opm-parser/pull/656
this assumption is no longer valid.
2016-01-20 15:11:30 +01:00
Joakim Hove
b41f70cad0
Merge pull request #567 from joakim-hove/table-column
...
Table column
2016-01-08 15:29:21 +01:00
Atgeirr Flø Rasmussen
7e1af01ad7
Fix change in signature of extractPvtTableIndex() in solvent props.
2016-01-08 14:47:41 +01:00
Joakim Hove
24601480e3
Using new Table api.
2016-01-08 13:57:38 +01:00
Joakim Hove
833f5d053f
Avoid using Deck.
...
Removed incorrect use of Deck for polymer and solvent properties.
2016-01-08 13:57:37 +01:00
chflo
41b928a190
OPM-163: Changed signature for method extractPvtTableIndex
2016-01-07 16:43:38 +01:00
Atgeirr Flø Rasmussen
2505183887
Improve threshold pressure mismatch error message.
2015-12-28 09:22:53 +01:00
Atgeirr Flø Rasmussen
6839b811f2
Make polymer solver use direct solver only.
...
The interleaved solver should work for this case, but does not currently.
2015-12-21 15:05:32 +01:00
Atgeirr Flø Rasmussen
8507427d83
Use correct syntax for logical not.
2015-12-21 14:55:33 +01:00
Atgeirr Flø Rasmussen
dc4274f4a2
Include nncs in threshold pressures.
...
This was left out when rebasing (it had been introduced in the flow etc. mains).
This also fixes a bug: the nnc thresholds should be inserted at the end of the
vector to be consistent with the operators, not at the beginning.
2015-12-21 11:12:55 +01:00
Atgeirr Flø Rasmussen
78dbb79ea4
Fix compile error for in-class member init.
...
Reported by Kai Bao.
2015-12-21 11:12:01 +01:00
Atgeirr Flø Rasmussen
bfcbd09488
Create and use FlowMainPolymer class.
2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
b420cccfc3
Add warning about simulating without WPOLYMER.
...
Warning was in the main() of flow_polymer.cpp,
but will disappear from there after refactoring.
2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
b156ce0b55
Create and use FlowMainSolvent class.
2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
39900761a8
Transform FlowMain to use CRTP.
...
Main content is now in FlowMainBase, which takes Implementation as
a template parameter. FlowMain inherits from FlowMainBase with itself
as Implementation template parameter. Only the createSimulator() method
is implemented in FlowMain (as opposed to in FlowMainBase). All subclasses
must implement createSimulator().
2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
bb49ddbfc4
Improve comments.
2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
4d31a99f5b
Moved content of warnIfUnusedParams() into runSimulator().
2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
4711fd3dfe
Complete refactoring of FlowMain.
2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
7a536570dc
Split out readDeckInput() method.
2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
4fae28f3d3
Split out setupOutput() method.
2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
64eef0609a
Split out setupParameters() method.
2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
966ace2c53
Split out printStartupMessage() method.
2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
c1bd7670c6
Refine OpenMP number-of-threads output.
...
Now each MPI rank will report, making it easier to see how
MPI and OpenMP interacts w.r.t. processes and threads.
2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
f7c96b4fc5
Split out function setupParallelism().
2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
e3ceac44a6
Renamed flowMain.hpp -> FlowMain.hpp.
2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
abf5443f33
Replace flowMain() function with FlowMain class.
2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
b10b028aa1
Documented flowMain().
2015-12-14 16:11:35 +01:00
Atgeirr Flø Rasmussen
29d18261c6
Make multisegment flow variants use flowMain().
2015-12-14 16:11:35 +01:00
Atgeirr Flø Rasmussen
f02fd71404
Use Simulator::ReservoirState in flowMain().
2015-12-14 16:11:06 +01:00
Atgeirr Flø Rasmussen
51a03e6212
Extract content of flow main() to separate template function.
...
The function is templated on grid and simulator class, so this allows
flow and flow_mpi to be implemented without any macro tricks, instead
simply including and using different grid types.
2015-12-14 16:07:47 +01:00
Atgeirr Flø Rasmussen
af980ed93c
Creates GridInit template class.
2015-12-14 16:07:46 +01:00
Atgeirr Flø Rasmussen
e74a36d939
Silence int vs. size_t warnings.
2015-12-14 15:55:30 +01:00
Tor Harald Sandve
dbdc42f599
Fix typo in BlackoilPropsAdFromDeck
2015-12-14 12:27:57 +01:00
Atgeirr Flø Rasmussen
bd82e5ade9
Merge pull request #554 from totto82/nnc_thpress
...
NNC and threshold pressure
2015-12-14 11:33:30 +01:00
Tor Harald Sandve
afbf5ff366
Add code to use the pinchProcessor
...
MinpvfillProps is only called if OPMFIL is true, while
the pinchProcessor is only called if OPMFIL is false.
Currently opmfil is hardcoded to true i.e.
The pinchProcessor is never called and the minpvfillProps is always
called.
2015-12-14 11:14:46 +01:00
Atgeirr Flø Rasmussen
d30147abfd
Merge pull request #555 from totto82/residualSaturations
...
Add methods for critial gas and gas in oil saturations
2015-12-11 13:08:54 +01:00
Tor Harald Sandve
4b66b0874e
Add methods for critial gas and gas in oil saturations
...
Methods that returns the scaled critical gas (SGCR) saturation and the
scaled critical gas in oil saturation (SOGCR) is added to
BlackoilPropsAdFromDeck and BlackoilPropsAdInterface
A test is added in test_boprops_ad and fluid.data is modified to make
the test non trivial.
2015-12-11 12:53:54 +01:00
Atgeirr Flø Rasmussen
73a26fb8dd
Merge pull request #558 from totto82/powerAD
...
Add power operator to AutoDiffBlock
2015-12-11 09:49:25 +01:00
Tor Harald Sanve
650fef5bc2
Add power operator to AutoDiffBlock
2015-12-10 10:30:28 +01:00
Markus Blatt
afc3ad3522
Guard access of well variable with asImpl().localWellsActive()
...
Since PR #541 the arrays cq_s, mob_perfcells, and b_perfcells are
empty if there are no wells in the domain of the process. This
caused segementation faults at various places where we compute
on the wells. With this commit we now guard this places using
asImpl().localWellsActive() and only using the array if the call
returns true.
2015-12-09 15:18:03 +01:00
Tor Harald Sanve
6883db77cf
Adapt to changes in the NNC class
2015-12-08 13:05:44 +01:00
Tor Harald Sandve
153365f4d0
Adapt to changes in the NNC class
2015-12-08 13:03:15 +01:00
Tor Harald Sandve
e3393c5ee9
Handle combination of threshold_pressure and nnc
...
The nncs threshold pressures are calculated and appended to the face
threshold pressures
2015-12-08 11:03:05 +01:00
Tor Harald Sandve
99ddc46318
Store the nncs in geoprops
2015-12-08 10:38:58 +01:00
Tor Harald Sandve
298442c281
Cleanup after rebase
...
- cleanup of some rebase mess
- Added comments
- Use the maxDp for the NNCs
- remove misplaced break in the pinchprocessor
2015-12-08 09:50:07 +01:00
Tor Harald Sandve
5b1f249f96
Calculate thresholdPressures for the NNCs
2015-12-08 09:25:35 +01:00
Atgeirr Flø Rasmussen
ffc91bc35e
Remove unnecessary EclipseState argument from run().
2015-12-07 13:40:06 +01:00
Atgeirr Flø Rasmussen
e54f7ed2d7
Use warning suppression headers.
2015-12-07 13:40:06 +01:00
Arne Morten Kvarving
8808642708
Import examples/ and opm/ from opm-polymer w/ history
2015-12-07 10:45:34 +01:00
dr-robertk
bd8586b477
Merge pull request #541 from GitPaean/support_segment_well_rebased
...
Support multi-segment wells
2015-12-02 11:18:33 -07:00
Atgeirr Flø Rasmussen
241da90531
Merge pull request #547 from blattms/parallel-ilu
...
Parallel overlapping ILU0
2015-12-02 11:47:13 +01:00
Markus Blatt
cb9d566ec2
Added braces to one-line for loop.
2015-12-02 11:29:38 +01:00
Markus Blatt
99c1b988a7
Fixed typo "consistent consistent" -> consistent.
2015-12-01 15:13:22 +01:00
Markus Blatt
0da66bf45b
Removed more dead and code that was already commented out.
2015-12-01 15:11:27 +01:00
Markus Blatt
fd78f1c0b9
Moved includes to \*.cpp file.
2015-12-01 14:56:29 +01:00
Markus Blatt
4adf8487ea
Uses more speaking names for template parameter and adds more documentation.
2015-12-01 14:49:07 +01:00
Markus Blatt
e05e3fa478
Removes code that was commented out.
2015-12-01 14:48:35 +01:00
Markus Blatt
0fdd27267b
Adds empty lines around namespaces and comment about the end of a namespace.
2015-12-01 14:47:28 +01:00
Markus Blatt
dc1d7c526f
Moved ParallelOverlappingILU0 to its own file.
2015-12-01 14:41:06 +01:00
Atgeirr Flø Rasmussen
7edd081175
Silence some warnings.
2015-12-01 13:36:08 +01:00
Kai Bao
5a23406d9e
naming M to Matrix for better readability in WellMultiSegment
2015-12-01 10:44:05 +01:00
Kai Bao
f7782c30b7
fixing compilation due to update of master.
2015-12-01 00:06:46 +01:00
Kai Bao
38a9dbd9ff
parallel running for flow_mutlisegment
...
SPE9 can be run in parallel now.
2015-12-01 00:06:46 +01:00
Kai Bao
4c73f3c01c
refactoring the init() of WellStateMultiSegment
...
to handle better when nw = 0
2015-12-01 00:06:46 +01:00
Kai Bao
0022bb8465
adding one missing #pragma line resulting from rebasing conflicts.
2015-12-01 00:06:46 +01:00
Kai Bao
8116424f6d
documenting the class WellMultiSegment
2015-12-01 00:06:46 +01:00
Atgeirr Flø Rasmussen
57511641e2
Remove unused data members.
2015-12-01 00:06:46 +01:00
Atgeirr Flø Rasmussen
a40d93a170
Comment out changes to residual output.
2015-12-01 00:06:46 +01:00
Atgeirr Flø Rasmussen
c825b599e5
Remove unused include.
2015-12-01 00:06:46 +01:00
Kai Bao
bcc97b44d8
refactoring the construction of WellMultiSegment
...
for better readability.
2015-12-01 00:06:46 +01:00
Kai Bao
c946749c73
addressing some old comments in WellMultiSegment
2015-12-01 00:06:46 +01:00
Kai Bao
a684c390f5
cleaning up SimulatorFullyImplicitBlackoilMultiSegment_impl
2015-12-01 00:06:46 +01:00
Kai Bao
31061c8331
cleaning up function computeWellConnectionPressures() for ms wells.
2015-12-01 00:06:46 +01:00
Kai Bao
cfa5faab4e
cleaning up comments in BlackoilMultiSegmentModel_impl
2015-12-01 00:06:46 +01:00
Kai Bao
f90b96abf6
removing the use of wops_ from the BlackoilModelBase in ms well
...
Also some cleaning up of comments in BlackoilMultiSegmentModel
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
61cccfebf8
Refactor updatState() to use numWellVars().
...
This allows us to use the base version of updateState().
2015-12-01 00:06:45 +01:00
Kai Bao
df30546841
not handling SHUT wells when generating wells_multisegment
...
it fixed the 7th time step running for Norne.
2015-12-01 00:06:45 +01:00
Kai Bao
9114b56e9b
cleaning up comments in WellMultiSegment and WellStateMultiSegment
2015-12-01 00:06:45 +01:00
Kai Bao
edf3c9b08c
optimizing the addWellControlEq() for ms wells.
2015-12-01 00:06:45 +01:00
Kai Bao
fcd31d74ac
restoring the original wellstate when solveWelleq fails.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
233a275191
Made the solveWellEq() method return if it converged.
...
Also use this to avoid updating if not converged in the
multi-segment version.
2015-12-01 00:06:45 +01:00
Kai Bao
b6ede37ca3
WIP for fixing the solveWellEq running for ms wells.
...
refactoring needs to be done to finish it.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
2055c94269
Implement solveWellEq() for multisegment model.
...
Note that this initial version has only been tested on regular wells!
2015-12-01 00:06:45 +01:00
Kai Bao
57d796ca68
not extracting the mob and b inside computeWellFlux() ms wells
2015-12-01 00:06:45 +01:00
Kai Bao
4b9064a0f8
optimizing the function computeSegmentPressuresDelta()
...
Further optimization is possible by introducing new variable for the
model to avoid recomputation.
2015-12-01 00:06:45 +01:00
Kai Bao
79b9039ba1
fixing computeWellFlux() to recover the mutli-segment running.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
693f5c791b
Refactor computeWellFlux().
...
Now much faster, avoiding repeated use of subset() etc. by
vectorization of code.
2015-12-01 00:06:45 +01:00
Kai Bao
80723fee12
adding more operators to ms well ops
...
p2w w2p s2w w2s
2015-12-01 00:06:45 +01:00
Kai Bao
0c28bf5a75
recovering compilation and running after merging master.
2015-12-01 00:06:45 +01:00
Kai Bao
5a0efdba30
adding comments for addWellFluxEq()
2015-12-01 00:06:45 +01:00
Kai Bao
8ae74d5a47
optimizing addWellFluxEq() based on ms well ops
2015-12-01 00:06:45 +01:00
Kai Bao
55e4206c0b
adding s2s_inlets and s2s_outlets to ms well ops.
...
and also fix the s2p and p2s implementation.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
5b43018862
Fix ms well ops implementation.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
bbf86dcd4a
Add wops_ms_ member.
2015-12-01 00:06:45 +01:00
Kai Bao
9ee2d92f3f
recovering the compilation from the updated master branch.
2015-12-01 00:06:45 +01:00
Kai Bao
c3b4088448
recovering the compilation after updating opm-parser.
2015-12-01 00:06:45 +01:00
Kai Bao
c8fbb0b80d
clearning up some comments and debugging output
2015-12-01 00:06:45 +01:00
Kai Bao
b1fdda00af
calculating the pressure difference between segments and perforations.
2015-12-01 00:06:45 +01:00
Kai Bao
31f71dd6f7
calculating the depth difference between segments and perforations
2015-12-01 00:06:45 +01:00
Kai Bao
658ad0a400
calculation of pressure difference between perofration and cells
...
remained to be verified.
The calculation is explicit, should be performed only once at the
begining of the time step.
2015-12-01 00:06:45 +01:00
Kai Bao
f3b885dc0d
removing several member variables not useful
...
they are related to the presure correction caclulations.
2015-12-01 00:06:45 +01:00
Kai Bao
9f218ef1a3
adding segmentDiameter() to WellMultiSegment
2015-12-01 00:06:45 +01:00
Kai Bao
b9e5518b51
adding compPressureDrop() member function for WellMultiSegment
2015-12-01 00:06:45 +01:00
Kai Bao
5e64da6f8e
calculating the viscosity of the fluid in segments
2015-12-01 00:06:45 +01:00
Kai Bao
93a86019af
calculating the mass flow rate for the segments.
2015-12-01 00:06:45 +01:00
Kai Bao
3b3ac203d9
change the name of computeSegmentDensitiesAndCompVolumeDt
...
to computeSegmentFluidProperties to include calculation of more fluid mixture in the segments.
2015-12-01 00:06:45 +01:00
Kai Bao
8bde14d7ce
applying the volume effects to the well flux equation.
...
The effects on the result are really tiny, which makes the real
verfication not easy. It did not bring anything bad for the current
working case though.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
9dea3c6b57
Fix typo in variable name.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
81e9c25b10
Made methods const in multi-segment model as well.
2015-12-01 00:06:45 +01:00
Kai Bao
95eb44e530
calculating the surface volume of component in segment
...
For convinience, we calculate and store the surface volume by dt
instead.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
e82828527c
Make some methods const.
...
The methods are: computeWellFlux(), updatePerfPhaseRatesAndPressures()
and extractWellPerfProperties().
2015-12-01 00:06:45 +01:00
Kai Bao
847ae2ef8c
adding segment volume / dt to BlackoilMultiSegmentModel
...
to handle the wellbore volume effects.
2015-12-01 00:06:45 +01:00
Kai Bao
d5f917d1ac
computing the density of segment mixture and pressure drop earlier
...
the density of segmetn mixture will be used in the well flux
calculation.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
ba7b3e728c
Minor improvements in computeSegmentDensities().
...
Mainly improving comments, deleting unused code and moving some variable
definitions closer to where they are used.
2015-12-01 00:06:45 +01:00
Kai Bao
6190d002dd
adding the hydrostatic drop effects in segment pressure equation.
...
Verified with current working case.
2015-12-01 00:06:45 +01:00
Kai Bao
92c5927f30
fixing a typo bug in addWellControlEq
...
verified with a case with a simple horizontal multi-segment well.
2015-12-01 00:06:45 +01:00
Kai Bao
50938effc4
output the well equation residual.
2015-12-01 00:06:45 +01:00
Kai Bao
a44de6bb1d
changing p2s_gather to p2s mappling in well flux equation.
2015-12-01 00:06:45 +01:00
Kai Bao
19caace288
unifying the well flux equaions for multi-segment and non-segment wells
...
verified with non-segment wells.
2015-12-01 00:06:45 +01:00
Kai Bao
7d11b49732
re-organizing the output.
...
no functional change.
2015-12-01 00:06:44 +01:00
Kai Bao
885dfedc91
adding the pressure drop between segments
...
remains to be verfied and apply to the pressure equations for segments
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
702cd3170a
Remove unused code and fix a few warnings.
2015-12-01 00:06:44 +01:00
Kai Bao
b7b5672c86
deleting the old unused computeSegmentDensities()
...
which is a first version, whose implementation should not be used
anymore.
2015-12-01 00:06:44 +01:00
Kai Bao
617e4c1786
fixing one bug in computeSegmentDensities()
...
the flux rate for the producing well are negtive. NotEqualZero should
used for selector instead of GreaterZero.
2015-12-01 00:06:44 +01:00
Kai Bao
f3ce4dc530
finishing computeSegmentDensities()
...
the results remain to be verified.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
4dd8536afa
Make multi-segment model use Base::addWellContribution...() method.
...
Also make assemble() more similar to base version, using the
extractWellPerfProperties() member from Base.
To do this it was necessary to change the well_cells member of the
WellOps to be correct for the multi-segment wells (since they may
have different perforation order for some wells).
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
44f36c45cf
Add well_cells to WellOps to avoid recreating.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
b2787e24e7
Use value() in argument to make Selector constructor compile.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
920eeed3b2
Improve assemble() with new method extractWellPerfProperties().
2015-12-01 00:06:44 +01:00
Kai Bao
d79536b0dd
adding the function computeSegmentDensities()
...
Not verified yet.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
653e55d7db
Make assemble() more similar to base version.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
e6a81fca83
Make convergence methods work for multi-segment wells.
...
The convergenceReduction() method no longer takes a number-of-wells argument,
instead it infers the number of well fluxes to check from the size of the
well_flux_eq member of the residual.
After this, a custom getConvergence() method is no longer required for the
multi-segment well model.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
1c4f4c646d
Add asImpl() to some method calls.
...
This enables those methods (mostly well related) to be used polymorphically.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
ae512d5c83
Update location of ErrorMacros.hpp header in includes.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
9e664abe6e
Add a TODO comment to updateWellControls().
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
fce7247da5
Update the SolutionState's qs and bhp members.
...
This way they can be used instead of repeatedly extracting the top segment data,
which also could make it possible to use more of the existing implementation.
2015-12-01 00:06:44 +01:00
Kai Bao
433d76cd86
adding the related grid cell for each segment.
...
This concept can be removed in the future.
2015-12-01 00:06:44 +01:00
Kai Bao
98fe7f19c5
not trying to find outlet segment for top segment
2015-12-01 00:06:44 +01:00
Kai Bao
4854bae4cd
using s2s_outlet mapping in the pressure equation.
2015-12-01 00:06:44 +01:00
Kai Bao
1b6453c6ba
introducing new mapping s2s_outlet
...
from a segment to its outlet segment
2015-12-01 00:06:44 +01:00
Kai Bao
317cbb0af8
changing the mapping s2s_outlet to s2s_inlets
...
to better refect the real meaning of the mapping.
2015-12-01 00:06:44 +01:00
Kai Bao
cb3f54b618
the pressure fluctuation only apply for non-segmented well.
...
to recover previous residual history when running with only
non-segmented wells.
2015-12-01 00:06:44 +01:00
Kai Bao
be293962b6
changing the perforation pressure initialization
...
to make it slightly different from the pressure of the perforation cell
to avoid NaN for cqt_is.
anotehr way can be initialized them related to the bhp of the well.
some tests will be performed in the future.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
9c1c87a040
Remember to initialize the data members.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
f2c812fb3a
Made WellStateMultiSegment use inheritance properly.
...
Use base class' data members (via public methods),
also change method names to match existing ones.
2015-12-01 00:06:44 +01:00
Kai Bao
cc2d40a1a8
handling aliveWells when adding control equations
...
to recover the SPE9 running.
2015-12-01 00:06:44 +01:00
Kai Bao
4fe0ae4a58
correcting the index of phase rate of the top segment
...
When handling the rate control equations.
2015-12-01 00:06:44 +01:00
Kai Bao
70e1ccb736
using the first cell of the well to initialize bhp
...
instead of using the the first cell of all the wells in
WellStateMultiSegment
2015-12-01 00:06:44 +01:00
Kai Bao
9b5b5198b2
update the currentControls from prevState
...
when initializing WellStateMultiSegment
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
7aa2672a14
Add TODO comment.
2015-12-01 00:06:44 +01:00
Kai Bao
504dc45de2
some information output
...
for debugging puropose.
2015-12-01 00:06:44 +01:00
Kai Bao
2b4922a986
updating pressure and phase rates for top segments in updateWellControls
2015-12-01 00:06:44 +01:00
Kai Bao
70d6d253fe
correcting bugs when initializing the WellState by copying prevState
2015-12-01 00:06:44 +01:00
Kai Bao
0a3cbe0c1e
upating the segment pressure in updateWellState.
...
The running of the first time step is okay.
2015-12-01 00:06:44 +01:00
Kai Bao
8c522ccc34
correcting a bug in pressure initialization in WellStateMultiSegment
...
for the pressure of top segment and peforations.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
5d5ae7d271
Further silencing of warnings.
2015-12-01 00:06:44 +01:00
Kai Bao
247ae11fc3
fixing the compilation.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
15fd5dad47
Suppress warnings in the multisegment well code.
2015-12-01 00:06:44 +01:00
Kai Bao
d7900d4fe8
updating the pressure of perforations.
...
only for usual wells now.
for multisegment wells, need to solve the the pressure difference calculation
first.
2015-12-01 00:06:44 +01:00
Kai Bao
2f0818df79
adding a public member function for the top segment index.
2015-12-01 00:06:44 +01:00
Kai Bao
052b61e672
indexing the location of top segments in WellStateMultiSegment
...
it is better to be in the global well class if we decide to have it
later.
2015-12-01 00:06:44 +01:00
Kai Bao
f7951ef018
correcting the well control equation (rate control)
2015-12-01 00:06:44 +01:00
Kai Bao
cf766b5c3e
fixing warnings related to mutlie segment wells.
2015-12-01 00:06:44 +01:00
Kai Bao
09f8da0324
fixing compilation and running after rebasing.
2015-12-01 00:06:44 +01:00
Kai Bao
ca5dd0dca4
WIP debugging.
2015-12-01 00:06:44 +01:00
Kai Bao
0fee0059a6
outputing the well information after updateWellState
...
for debugging purpose.
2015-12-01 00:06:43 +01:00
Kai Bao
3bce63ed64
correcting the bhp value when calculating connection pressure
2015-12-01 00:06:43 +01:00
Kai Bao
72af213835
outputing the wellMap information.
...
for debugging purpose.
2015-12-01 00:06:43 +01:00
Kai Bao
5379467b4c
adding temperature for WellStateMultiSegment
...
it is not used though
2015-12-01 00:06:43 +01:00
Kai Bao
895e04b6fa
outputing all the information of the WellStateMultiSegment
...
for debugging purpose.
2015-12-01 00:06:43 +01:00
Kai Bao
4feee98457
correcting the mapping matrix in WellMultiSegment
...
correcting the calculation of s2s_gather
2015-12-01 00:06:43 +01:00
Kai Bao
34d72a774a
correcting some initialization for WellMultiSegment
2015-12-01 00:06:43 +01:00
Kai Bao
33c979b772
outputing all the information related to multisegment wells
...
for debugging purpose.
2015-12-01 00:06:43 +01:00
Kai Bao
709c030b10
adding public member function WellMultiSegment::inletSegments()
2015-12-01 00:06:43 +01:00
Kai Bao
3eae01de18
pure cleaning up in WellStateMultiSegment
2015-12-01 00:06:43 +01:00
Kai Bao
9526b5a9b1
WIP for addWellControlEq
...
P_n - P_n-1 = 0;
This is not making sense. remains to be corrected later.
It can run with NaN or too large solutions.
2015-12-01 00:06:43 +01:00
Kai Bao
d8634e41e5
some commenting.
2015-12-01 00:06:43 +01:00
Kai Bao
a137db6d37
using segment rates instead of well rates in addWellControlEq
2015-12-01 00:06:43 +01:00
Kai Bao
3b40a8d5b3
adding computeSegmentDensities for BlackoilMultiSegmentModel
...
cacluating the density of fluid mixture in segment, which is very
important for the pressure drop calculation for multi-segment wells.
This version is based on \sigma(q_s * dens_s) / \sigma(q_s * B).
More sophiscate techniques will be required to take into consideration
of the segment pressure and also the rs rv.
2015-12-01 00:06:43 +01:00
Kai Bao
bfe77db26f
adding p2s_average to the wellOps for WellMultiSegment
...
this mapping calculate the averaged perforation properties to their
related segments
2015-12-01 00:06:43 +01:00
Kai Bao
487f90ee88
small comments
2015-12-01 00:06:43 +01:00
Kai Bao
45e89c5d28
adding convergenceReduction for BlackoilMultiSegmentModel
2015-12-01 00:06:43 +01:00
Kai Bao
62b6e69de8
adding updateWellState to BlackoilMultiSegmentModel
...
no THP treament.
2015-12-01 00:06:43 +01:00
Kai Bao
f496646182
adding updateState() for BlackoilMultiSegmentModel
2015-12-01 00:06:43 +01:00
Kai Bao
2e74b7cbaf
WIP version for addWellControlEq()
...
not figuring out how to calculate the density of the mixuture.
2015-12-01 00:06:43 +01:00
Kai Bao
747a295122
adding addWellContributionToMassBalanceEq to BlackoilMultiSegmentModel
2015-12-01 00:06:43 +01:00
Kai Bao
f087ac14e8
adding addWellFluxEq to BlackoilMultiSegmentModel
...
while it causes segmentation fault.
Will check after adding well control equations
2015-12-01 00:06:43 +01:00
Kai Bao
9ccba2b0eb
adding a mapping from segments to their outlet segments
...
All the mapping related to the WellMultiSegment remained to be verfied.
2015-12-01 00:06:43 +01:00
Kai Bao
2e155c70de
WIP on addWellFluxEq().
2015-12-01 00:06:43 +01:00
Kai Bao
befc152071
adding Zero values for well_perforatoin_cell_pressure_diffs_
...
Trying to let the code run through first.
And for the current cases, they should be zeros.
2015-12-01 00:06:43 +01:00
Kai Bao
c1683c0c11
correcting the well mapping for WellMultiSegment
...
p2s_gather should be s2s_gather * p2s instead of s2s_gather * s2p
The mapping generation needs further investigation.
2015-12-01 00:06:43 +01:00
Kai Bao
5aa258fdd6
correcting a bug in computeWellFlux in BlackoilMultiSegmentModel
...
it should be segment rates instead of well rates.
2015-12-01 00:06:43 +01:00
Kai Bao
02b187e14c
friend class BlackoilModelBas in BlackoilMultiSegmentModel
...
and adding asImp() when using variableWellStateInitials and
variableWellStateInitials.
2015-12-01 00:06:43 +01:00
Kai Bao
eb73b64e3d
using Base::perfPhaseRates() and Base::currentControls() WellStateMultiSegment
...
so that WellStateMultiSegment can use the WellDensitySegmented.
which also implies that WellStateMultiSegment needs a big refactoring
later.
2015-12-01 00:06:43 +01:00
Kai Bao
d61e6b8a56
correcting a bug in the initialization of the WellStateMultiSegment
...
a_ = a_ to initialize some member variables cause later segmentation
fault.
2015-12-01 00:06:43 +01:00
Kai Bao
b3afd115ff
WIP updatePerfPhaseRatesAndPressures for BlackoilMultiSegmentModel
2015-12-01 00:06:43 +01:00
Kai Bao
3cc8a09a65
WIP computeWellFlux() for BlackoilMultiSegmentModel
2015-12-01 00:06:43 +01:00
Kai Bao
788440b6e0
WIP version of computeWellConnectionPressures() for BlackoilMultiSegmentModel
2015-12-01 00:06:43 +01:00
Kai Bao
9776559a21
adding updateWellControls to BlackoilMultiSegmentModel
2015-12-01 00:06:43 +01:00
Kai Bao
dd432c6400
cleaning up and fixing the compilation.
2015-12-01 00:06:43 +01:00
Kai Bao
5f543ea15e
pure cleaning up.
2015-12-01 00:06:43 +01:00
Kai Bao
b154779a44
adding variableStateExtractWellsVars() for BlackoilMultiSegmentModel
2015-12-01 00:06:43 +01:00
Kai Bao
01a5de4c4c
adding variableWellStateInitials to BlackoilMultiSegmentModel
2015-12-01 00:06:43 +01:00
Kai Bao
c4f7ef3a47
adding makeConstantState() to BlackoilMultiSegmentModel
2015-12-01 00:06:43 +01:00
Kai Bao
42c19e174b
adding segment phase rates to the SolutionState.
2015-12-01 00:06:43 +01:00