Commit Graph

2146 Commits

Author SHA1 Message Date
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
Kai Bao
40f245deef adding prepareStep() for the BlackoilMultiSegmentModel
Have not added the wellbore volume related part.
2015-12-01 00:06:43 +01:00
Kai Bao
cdb2b92bb6 correcting a bug when generate s2p mapping. 2015-12-01 00:06:43 +01:00
Kai Bao
f0b363baa5 adding wells_multisegment_ member for multisegment model
and also updating the createSolver() function.
2015-12-01 00:06:43 +01:00
Kai Bao
00d9a57cc2 listing the function prototype need to update. 2015-12-01 00:06:43 +01:00
Kai Bao
da6d88707c correcting a typo in the name of WellMultiSegmentConstPtr 2015-12-01 00:06:43 +01:00
Kai Bao
ca253cebc3 adding the variable for pressure correction.
for both perforation and segments.
2015-12-01 00:06:43 +01:00
Kai Bao
fbe0c19032 some cleaning up. 2015-12-01 00:06:43 +01:00
Kai Bao
a9ad791d2b changing init function of WellStateMultiSegment to use ConstPtr
the compilation is fixed.
2015-12-01 00:06:42 +01:00
Kai Bao
ac0fdda48b A WIP version BlackoilMultiSegmentModel
and also a Simulator Class and example for multisegment wells.
2015-12-01 00:06:42 +01:00
Kai Bao
76be27a64c recovering BlackoilModelBase BlackoilModelBase_impl
to be the same with the master branch.
The multisegment part should be in a new model.
2015-12-01 00:06:42 +01:00
Kai Bao
b49d06f35c changing naming in WellStateMultiSegment
to be more consistent with WellState.
2015-12-01 00:06:42 +01:00
Kai Bao
d2728fbfc6 chaning the naming of the member functions of WellStateMultiSegment
segPressures   -> segPress
perfPressures  -> perPress
to keep consist with the WellState
2015-12-01 00:06:42 +01:00
Kai Bao
1788f5c1b3 changing ADB::M to be Eigen::SparseMatrix<double> 2015-12-01 00:06:42 +01:00
Kai Bao
07709c52c6 a wIP version. 2015-12-01 00:06:42 +01:00
Kai Bao
62bdd301d3 one version of the class WellMultiSegment. 2015-12-01 00:06:42 +01:00
Kai Bao
60dd7743c3 WIP of the WellMultiSegment and WellStateMultiSegment 2015-12-01 00:06:42 +01:00
Atgeirr Flø Rasmussen
c91e144a1d Merge pull request #548 from atgeirr/silence-warning
Move boost include inside warning-suppressed block.
2015-11-30 14:17:15 +01:00
Atgeirr Flø Rasmussen
88280c1207 Move boost include inside warning-suppressed block. 2015-11-30 14:15:19 +01:00
Atgeirr Flø Rasmussen
226e414380 Merge pull request #542 from andlaus/implement_MULTFLT_in_SCHEDULE_section
implement abililty to change the geology during the simulation run
2015-11-27 13:39:32 +01:00
Atgeirr Flø Rasmussen
315862ddd4 Merge pull request #545 from atgeirr/fix-min-iter
Honor the min_iter parameter.
2015-11-27 10:19:26 +01:00
Atgeirr Flø Rasmussen
979107ac4b Merge pull request #543 from totto82/new_trans
Use cell centers based on cell corners
2015-11-27 10:18:00 +01:00
Andreas Lauser
976d38bf37 implement abililty to change the geology during the simulation run
i.e. it now supports stuff like MULTFLT in the schedule
section. Possibly, the MPI-parallel code paths need some fixes. (but
if the geology is not changed during the simulation, the parallel code
will do the same as before.)

the most fundamental change of this patch is that the
reference/pointer to the DerivedGeology object is made
non-constant. IMO that's okay, though, becase the geology can no
longer assumed to be constant over the whole simulation run.
2015-11-26 13:35:33 +01:00
Tor Harald Sandve
67eadc30e5 Adapt to changes in EclipseGrids
getCellCenter() in EclipseGrid no longer returns
tuble<double,double,double> but array<double,3>
This simplifies its usage.

Variable name is changed from cellCentroid to cellCenter to emphasize a
difference between the value in the unstructured grid and in EclispeGrid
2015-11-25 15:15:22 +01:00
Atgeirr Flø Rasmussen
99fd5e977f Remove assert() that is now wrong due to minIter() treatment. 2015-11-25 11:08:10 +01:00
Atgeirr Flø Rasmussen
9275070bad Honor the min_iter parameter.
This also required the minIter() accessor to be made public,
so made all of the remaining accessors public.
2015-11-24 16:09:01 +01:00
Tor Harald Sandve
2a13275943 Use cell depth calculated directly from the corners of the cell 2015-11-24 10:20:12 +01:00
Tor Harald Sandve
aeb8807d89 Use cell centroid from EclipseGrid
The cell center in EclipseGrid is computed based on averaging the
corners of the cells as in Eclipse and not computing the centroid of the
cell as in the unstructured grid in opm.
2015-11-24 10:20:12 +01:00
Bård Skaflestad
c956494402 Merge pull request #540 from atgeirr/remember-asimpl
Add asImpl() to method calls.
2015-11-19 14:47:13 +01:00
Atgeirr Flø Rasmussen
a06892a070 Add asImpl() to method calls.
This is needed by derived models.
2015-11-19 14:39:49 +01:00
Bård Skaflestad
022bd6b8fe Merge pull request #536 from atgeirr/refactor-nonlinear
Refactor nonlinear solver
2015-11-18 11:47:43 +01:00
Atgeirr Flø Rasmussen
9bf79f6974 Merge pull request #506 from andlaus/thpress_from_initial
adapt to the threshold pressure related API changes
2015-11-17 09:03:08 +01:00
Bård Skaflestad
65da8b7e11 Merge pull request #531 from blattms/parallel-RateConverter
Calculate parallel averages in RateConverter.

Closes issue #530
2015-11-13 18:26:36 +01:00
Markus Blatt
5449047682 Splits a very long line. 2015-11-13 15:52:01 +01:00
Markus Blatt
8148c37d57 Improved documentation 2015-11-13 15:46:45 +01:00
Markus Blatt
980928bfa9 Fix boolean in specialization.
The default implementation is the parallel version. Therefore the boolean
in the specialization (sequential run) needs to be false.
2015-11-13 15:46:34 +01:00
Markus Blatt
f8715e31e7 Calculate parallel averages in RateConverter.
Previously, local averages were calculated and used in the
well equations. With this commit we add versions of defineState and
calcAverages that take into account the parallel domain decomposition
and calculate correct averages.

Function  calcAverages has a boolean template parameter
indicating whether this is a parallel run. Additionally we introduce
AverageIncrementCalculator with the same boolean template parameter.
In a parallel run we check whether the cell is owned by the process and
only in this case return an increment bigger than zero. In a sequential run
(no MPI or just one process -> empty boost::any parameter) no overhead is
introduced.
2015-11-13 15:46:34 +01:00
Andreas Lauser
4f23ef92e3 adapt to the threshold pressure related API changes
to be able to determine the threshold pressure from the initial
condition it needs to be able to access the initial condition, i.e.,
the initial simulator state, material properties object and gravity
constant need to be passed to the thresholdPressure() function.
2015-11-13 15:38:28 +01:00