babrodtk
d45543b8fb
Proper integration of derivatives for THP
2015-08-10 08:55:06 +02:00
babrodtk
22b94b75e6
VFP table which maps THP==BHP gives identical results
2015-08-10 08:55:06 +02:00
babrodtk
7eb94caeba
Updated integration of VFP tables. Produces almost identical results to bhp control
2015-08-10 08:55:05 +02:00
babrodtk
34edf3a5b8
Changed API of VFPProperties to take ADBs
2015-08-10 08:55:05 +02:00
babrodtk
79410685ca
Refactoring and updated tests
2015-08-10 08:54:34 +02:00
babrodtk
0467af953c
Added function to compute THP from BHP using VFP tables
2015-08-10 08:54:34 +02:00
babrodtk
d27403b427
Initial integration of VFPProdTables
2015-08-10 08:54:34 +02:00
babrodtk
15d3171ae1
Partial integration of VFPProperties into BlackoilModel
2015-08-10 08:53:42 +02:00
André R. Brodtkorb
0e3b951cd0
Added skeleton of interpolation using ADBs as input
2015-08-10 08:50:25 +02:00
Tor Harald Sandve
065b2f595c
Add support for NNC in the simulator
...
1) NNC are added the grad, div and average operators
2) NNC are added the upwindSelector
3) NNC transmissibilities are added to the face transmissibilities
2015-07-09 12:15:59 +02:00
Atgeirr Flø Rasmussen
98dfe892f5
Undo the order changes in commit 1524a1.
...
This is done to eliminate changes in simulation results.
2015-06-29 16:44:10 +02:00
Atgeirr Flø Rasmussen
4cb8556f42
Simplify fluid interfaces, reuse formation volume factor.
...
The simplifications are:
- Do not pass cell indices to fluidViscosity(), fluidReciprocFVF().
- Pass b (reciprocal f.v.f.) to fluidDensity() instead of pressure etc.
This saves one call to fluidReciprocFVF(), that is removed from
fluidDensity(). Instead the previously stored quantity is passed
to fluidDensity() as an argument.
2015-06-24 10:22:23 +02:00
Atgeirr Flø Rasmussen
1524a10e31
Change order of computation to reduce overhead.
2015-06-24 10:06:40 +02:00
Atgeirr Flø Rasmussen
c96a33124c
Refactor addWellEq().
...
The method has been split in three parts:
computeWellFlux(const SolutionState& state,
const std::vector<ADB>& mob_perfcells,
const std::vector<ADB>& b_perfcells,
V& aliveWells,
std::vector<ADB>& cq_s);
void
updatePerfPhaseRatesAndPressures(const std::vector<ADB>& cq_s,
const SolutionState& state,
WellState& xw);
void
addWellFluxEq(const std::vector<ADB>& cq_s,
const SolutionState& state);
This reduces the function length, although most of the content of addWellEq()
now is in computeWellFlux(), so that function is still quite long. It also
allows us to use smaller sets of function arguments, which makes methods easier
to understand.
Finally, it makes it easier to create derived models with custom behaviour.
2015-06-22 11:34:10 +02:00
Atgeirr Flø Rasmussen
dd945a5d5e
Add more parameters to addWellContributionToMassBalanceEq.
...
Also: - call using asImpl(),
- remove extraAddWellEq().
2015-06-18 14:25:53 +02:00
Kai Bao
0366037fca
cleaning up to remove 'unused' warnings
2015-06-17 09:49:11 +02:00
Kai Bao
20746f65dc
assert the number of the well equations.
2015-06-16 17:03:53 +02:00
Kai Bao
f2089f5a1b
avoiding creating dx_V unnecessarily
...
by using dx.array() in function solveWellEq().
2015-06-16 17:03:53 +02:00
Kai Bao
919286d700
removing repeated code by using do_while
...
in function solveWellEq().
2015-06-16 17:03:53 +02:00
Kai Bao
f8e35535fc
using lower case for solve_wellEq_initially_
2015-06-16 17:03:53 +02:00
Kai Bao
0f123a8890
correcting typo in 'to large'
2015-06-16 17:03:53 +02:00
Kai Bao
6f388f5b6d
correcting the indentation in updateWellState()
2015-06-16 17:03:53 +02:00
Kai Bao
7e9014f155
changing dx to dwells in defination of updateWellState
2015-06-16 17:03:53 +02:00
Kai Bao
285d777937
removing the unused dqs and dbhp
...
in function updateState
2015-06-16 17:03:53 +02:00
Kai Bao
043d542e29
check wellsActive() before handling well equations in assemble()
2015-06-16 17:03:53 +02:00
Kai Bao
079c3a467f
adding a space after comma between function agruments
2015-06-16 17:03:53 +02:00
Kai Bao
ce7ca517cd
5 blank lines between functions in BlackoilModelBase_impl
2015-06-16 17:03:52 +02:00
Kai Bao
df5bd78d0c
change the '2' to 'To' in addWellContribution2MassBalanceEqi
2015-06-16 17:03:52 +02:00
Kai Bao
14dbc9e7be
removing s from the name of function variableWellStateIndices()
2015-06-16 17:03:52 +02:00
Tor Harald Sandve
8a166ebbd6
Add option for solving the wellEq seperatly
...
The well equations is solved seperatly in order to provide more accurate
initinal values to the reservoir model.
2015-06-16 17:03:52 +02:00
Tor Harald Sandve
86922e45e6
Seperate wells stuff from the reservoir stuff
...
The seperation is done in order to better accommodate solving the well
equation seperatly.
2015-06-16 17:03:52 +02:00
Atgeirr Flø Rasmussen
4a4039e448
Introduce parenthesis to preserve old evaluation order.
...
While results would be equivalent, they would not be identical
to old results without this.
2015-05-26 16:50:49 +02:00
Atgeirr Flø Rasmussen
3246fd479d
Renamed rq_.head to rq_.dh, since it is used for head differences.
...
Also moved multiplication with transmissibilities so that dh does not
include them (so it really is the head difference).
2015-05-26 16:33:00 +02:00
Atgeirr Flø Rasmussen
153c091aef
Clean up in computeMassFlux().
2015-05-26 16:16:27 +02:00
Atgeirr Flø Rasmussen
d9c2a5bd5b
Add members isSg_, isRs_ and isRv_.
...
This replaces local variables that were used in more
than one place, and initialised locally in the exact
same way depending only on primalVariable_.
Now they are updated once when primalVariable_ has changed,
simplifying the code for variableState() and updateState().
2015-05-26 14:38:25 +02:00
Atgeirr Flø Rasmussen
6e5fac16d1
Add extraAddWellEq() hook in addWellEq().
...
This allows extended models to add functionality to the well treatment.
2015-05-26 14:07:08 +02:00
Atgeirr Flø Rasmussen
52d035940e
Fix vector sizing bug.
2015-05-26 11:41:34 +02:00
Atgeirr Flø Rasmussen
143b213f53
Make method calls in variableState() polymorphic.
...
Achieved by using asImpl().
2015-05-26 11:19:52 +02:00
Atgeirr Flø Rasmussen
9aaf428f29
Refactor variableState().
...
Has been split into multiple methods to give more flexibility
to extended models.
2015-05-26 11:16:21 +02:00
Atgeirr Flø Rasmussen
eb962aafa9
Use asImpl() pattern for static polymorphism.
...
Not yet applied to all method calls, but only ones needed for
polymer solver after initial refactoring.
2015-05-26 01:48:45 +02:00
Atgeirr Flø Rasmussen
74784522ea
Remove commented-out code.
2015-05-26 01:29:26 +02:00
Atgeirr Flø Rasmussen
7088304214
Remove unused overload of computePressures().
2015-05-26 01:19:37 +02:00
Atgeirr Flø Rasmussen
85436c4890
Move mass balance equations to separate function.
...
Note that well contributions are added on later in addWellEq() as before.
2015-05-26 00:31:50 +02:00
Atgeirr Flø Rasmussen
c2f4397bcf
Remove unused constantState() method.
2015-05-26 00:08:33 +02:00
Atgeirr Flø Rasmussen
0d7fa1a82c
Using ReservoirState and WellState consistently.
...
This means that for extended models the functions in BlackoilModelBase will
be compiled with the types used by those models and not BlackoilState and
WellStateFullyImplicitBlackoil (which are specified by BlackoilModel).
2015-05-25 23:49:09 +02:00
Atgeirr Flø Rasmussen
940853f9e5
Moved SolutionState to ModelTraits.
...
Also extracting existing private class and renamed it DefaultBlackoilSolutionState.
2015-05-25 00:46:28 +02:00
Atgeirr Flø Rasmussen
05bb1e4f42
Use the Curiously Recurring Template Pattern for BlackoilModel.
2015-05-24 17:36:29 +02:00
Atgeirr Flø Rasmussen
620ef2a3dd
Create BlackoilModelBase class.
...
The class is identical to BlackoilModel class at this stage, but
since it was renamed from FullyImplicitBlackoilSolver it keeps the
commit history better.
2015-05-24 09:59:40 +02:00