Commit Graph

133 Commits

Author SHA1 Message Date
Kai Bao
22b5157bf2 adding a few fluid related members to StandardWells
to reduce the number of the public function arguments.
2016-05-23 15:11:50 +02:00
Tor Harald Sandve
01c782dbf3 Remove primalvariable_ and use hydroCarbonState instead
the hydrocarbonstate is stored in the reservoir state and
used instead of the primalvariable_
The initial hydrocarbonstate is computed using
initHydroCarbonState(...);
2016-05-13 09:04:48 +02:00
Kai Bao
08e691e262 moving variableWellStateInitials to StandardWells. 2016-04-29 10:07:10 +02:00
Kai Bao
15380fd370 moving variableWellStateIndices to StandardWells
Probably it is the time to introduce SeqQs and SeqP for the
multi-segment wells.
2016-04-29 10:07:10 +02:00
Kai Bao
b87920e5e4 moving computeWellPotentials to StandardWells 2016-04-29 10:07:10 +02:00
Kai Bao
13acc8ee03 moving computeWellConnectionPressures to StandardWells
the results look okay, while the running for flow_solvent needs further
investigation even the results with flow_solvent actually look okay.

With two different version of
computePropertiesForWellConnectionPressures, flow_solvent produces the
same results. This is something needs further investigation.

The current implementation requires a copy of
computeWellConnectionPressure in StandardWells and StandardWellsSolvent.
That means probably we need to introduce the asImpl() for the Wells.
2016-04-29 10:07:10 +02:00
Kai Bao
dcca0b0b76 moving addWellControlEq to StandardWells 2016-04-29 10:07:10 +02:00
Kai Bao
eb278c3c9a moving addWellFluxEq() to StandardWells
Conflicts:
	opm/autodiff/BlackoilModelBase_impl.hpp
2016-04-29 10:07:10 +02:00
Kai Bao
e67e31171d adding one line comment for WellModel in BlackoilModelBase 2016-04-20 14:26:13 +02:00
Kai Bao
ebe60bc5d7 puting WellModel before Implementation in the template. 2016-04-20 14:26:13 +02:00
Kai Bao
b464e4fb4a adding WellModel as template class for BlackoilModelBase
the compilation and running of flow are recovered.

Conflicts:
	opm/autodiff/BlackoilModelBase_impl.hpp
2016-04-20 14:26:13 +02:00
Tor Harald Sandve
4867e14f88 Fixes after rebase
-- remove some leftovers from merge process
-- start using stdWells()
2016-04-19 09:41:25 +02:00
Tor Harald Sandve
18246263e9 Move computation of well potentials from simulator class ot model class
- the computation of well potentials in the model class calculates the
well potentials using computeWellFlux()
- in this way the well potential calculations also handle well where
some perforations are closed by the simulator due to cross-flow.
- the well potentials pr perforation and phase is stored in the well
state.
2016-04-19 09:21:15 +02:00
Kai Bao
adb140a788 fixing the running of flow_multisegment 2016-04-14 16:05:19 +02:00
Kai Bao
19734f2103 adding extractWellPerfProperties to StandardWellsSolvent
to fix the flow_solvent running.
2016-04-14 16:05:19 +02:00
Kai Bao
5da57973fe adding updateWellState and updateWellControls to StandardWells 2016-04-14 16:05:18 +02:00
Kai Bao
376c940f09 moving updatePerfPhaseRatesAndPressures to StandardWells 2016-04-14 16:05:18 +02:00
Kai Bao
c398a6e424 puting computeWellFlux in StandardWells 2016-04-14 16:05:18 +02:00
Kai Bao
5d99fac207 adding StandardWellsSolvent for Solvent model. 2016-04-14 16:05:18 +02:00
Kai Bao
bca23d34c1 making StandardWells non-templated
we will focus on template functions instead.
2016-04-14 16:05:18 +02:00
Kai Bao
3bcfc905bd makding StandardWells a template based on SolutionState and WellState
may need to be adjusted later.
2016-04-14 16:05:18 +02:00
Kai Bao
23ba5fa398 removing the StandardWells definition inside BlackoilModelBase
and some other tiny cleaning up.
2016-04-07 10:45:13 +02:00
Kai Bao
2bd83aae73 making the constructors of WellOps and StandardWells explicit. 2016-04-06 14:10:17 +02:00
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
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
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
Tor Harald Sandve
89e540cb2c Pass solutionState as first parameter
output parameters go last...
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
Joakim Hove
18c07d5d66 Replaced SimulatorState -> SimulationDataContainer 2016-03-29 10:48:36 +02: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
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
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
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
Atgeirr Flø Rasmussen
e82828527c Make some methods const.
The methods are: computeWellFlux(), updatePerfPhaseRatesAndPressures()
and extractWellPerfProperties().
2015-12-01 00:06:45 +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
920eeed3b2 Improve assemble() with new method extractWellPerfProperties(). 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
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
07709c52c6 a wIP version. 2015-12-01 00:06:42 +01:00
Atgeirr Flø Rasmussen
29a1a891d2 Make nonlinearIteration() the only interface to the model.
This means that details such as calling assemble(), solveJacobianSystem(),
updateState() etc. are now left to the model class. This will make it easier
to create new model classes with different behaviour (such as sequential models).
2015-11-12 17:47:18 +01:00
Robert Kloefkorn
31aa0544e7 computeTimeError --> relativeChange. 2015-11-10 10:00:04 -07:00
Robert Kloefkorn
77f9977ca8 BlackOilModelBase: revision of adaptive time stepping such that time error is computed
by model.
2015-11-10 09:53:25 -07:00
Markus Blatt
e555cd45f1 Correctly compute the scaling factor for the equations in parallel.
When running parallel one cannot use Eigen::Array::mean() for this
as the it is just a local part of the complete array. With this commit
we correctly compute the number of global cells in the grid and use this
together with a parallel reduction to compute a global mean value.
2015-10-27 01:58:16 +01:00
Atgeirr Flø Rasmussen
dcb78877eb Separate phase and material concepts. 2015-09-30 14:44:50 +02:00
Atgeirr Flø Rasmussen
4f72bfdbcf Added phaseName() method. 2015-09-30 13:28:08 +02:00
Atgeirr Flø Rasmussen
aac34009e1 Use active and not canonical phases in getConvergence() etc. 2015-09-30 13:28:08 +02:00