Commit Graph
100 Commits
Author SHA1 Message Date
Andreas Lauser e81dd8ee16 Merge pull request #884 from andlaus/frankenstein_merge_master_v5
Frankenstein merge master v5
2016-11-01 13:31:31 +01:00
Andreas Lauser a773fd4c85 use accessor methods to access the value and derivatives of Evaluation objects 2016-11-01 13:30:41 +01:00
Andreas Lauser 88e2641f1a Merge remote-tracking branch 'origin/master' into frankenstein_merge_master_v5
* origin/master:
  use accessor methods to access the value and derivatives of Evaluation objects
2016-11-01 13:27:15 +01:00
Andreas Lauser da344222d9 Merge pull request #879 from andlaus/Evaluation_accessors
use accessor methods to access the value and derivatives of Evaluation objects
2016-11-01 13:16:37 +01:00
Andreas Lauser cb7fef7f2a Merge pull request #882 from andlaus/frankenstein_jenkins_add_ewoms_upstream
add ewoms to the list upstream modules for jenkins
2016-10-31 19:44:07 +01:00
Andreas Lauser 7f7fe7daf7 add ewoms to the list upstream modules for jenkins
thanks goes to [at]akva2 for pointing this out...
2016-11-01 18:00:28 +01:00
Andreas Lauser 54bb57cce0 Merge pull request #881 from andlaus/frankenstein_merge_master_v7
Frankenstein merge master v7
2016-10-28 09:32:06 +02:00
Andreas Lauser 4be9e95f0f fix the build
wellsToState() now seems to require a phase usage argument...
2016-10-28 09:27:57 +02:00
Andreas Lauser ddecdc9dbe Merge remote-tracking branch 'origin/master' into frankenstein_merge_master_v7
* origin/master:
  Bugfix: use correct object in sequential model.
  Bugfix: properly handle two-phase cases.
  Bugfix: pass both normal and extra data to output.
  Update well data output integration.
  Adapt to API change in opm-parser.
  Ensure logging only on first rank.
  Add isIORank_ member to avoid repeated calls.
  Rename isRankZero() -> isIORank() for consistency.
  Ensure only first-rank logging.
  Add isRankZero() utility.
  Bugfix: missing return.
  do not set limits for prt log and set correct value for Note.
  correct function call order and add whitespace.
  supprot MESSAGES default vaule.
  wellToState reads new opm-output data exchange
  Write control to data::Wells. Missing ability to restore.
  Avoid using buggy wellstate api
  Stop report early if there are no wells
  Update to interface change in opm-output
2016-10-28 09:22:38 +02:00
Andreas Lauser 73d7a3ca10 use accessor methods to access the value and derivatives of Evaluation objects 2016-10-27 17:29:29 +02:00
Andreas Lauser 67ce00a9cb Merge pull request #872 from andlaus/frankenstein_merge_master_v6
Frankenstein merge master v6
2016-10-20 20:23:06 +02:00
Andreas Lauser 6754bad00b Merge branch 'master' into frankenstein
* master:
  Update to shared_ptr-less parser interface.
2016-10-20 20:16:42 +02:00
Andreas Lauser 2a9a803135 Merge pull request #871 from andlaus/frankenstein_merge_master_v5
Frankenstein merge master v5
2016-10-19 13:48:33 +02:00
Andreas Lauser 7cfe8322e2 Merge branch 'master' into frankenstein
* master:
  adapt to the removal of the unit system of opm-core
2016-10-19 13:30:44 +02:00
Andreas Lauser b824c30e0c Merge pull request #870 from totto82/frankenstein_cache_reuse_fix
Frankenstein: InvalidateCache when restaring the timestep
2016-10-19 13:16:25 +02:00
Andreas Lauser 5007d99c0d flow_ebos: re-eanable the 'tempV.maxCoff()' convergence check for the well model
the 'tempV' object currently only contains garbagee but the condition
is needed and will thus be fixed in a different PR.

thanks goes to @totto82 for the clarifications.
2016-10-19 12:28:07 +02:00
Andreas Lauser 45f11d8820 StandardWellsDense: fix some valgrind complaints
note that I don't know if these changes are semantically correct (I
doubt it), but this patch fixes the valgrind complaints I saw for
SPE9_CP and on Norne.

Also, this makes the timing of flow_ebos for SPE9 determinisic between
runs: without this, I got some random time steps fail in a given run
and in the next run a completely different set of timesteps
failed. Since this was on the same same machine, without any
recompiles and no changes to the deck or any other input parameters, I
initially attributed the behavior to cosmic rays ;)

@totto82: could you have a thorough look on this?
2016-10-17 18:56:38 +02:00
Andreas Lauser aaf21f4eff Merge pull request #868 from andlaus/frankenstein_geo_events
flow_ebos: support for geology changes during the simulation
2016-10-17 18:40:50 +02:00
Andreas Lauser b8e5a6e12d flow_ebos: support for geology changes during the simulation
the actual work is done in the EclProblem. Removing the stuff here is
just necessary in order not to apply the modifier deck twice...
2016-10-17 17:06:20 +02:00
Andreas Lauser 2dc69b4551 *arg* I accidentally merged some local changes with the last PR... 2016-10-17 16:32:28 +02:00
Andreas Lauser 9dc30cc0ac Merge pull request #867 from andlaus/frankenstein_merge_master_v4
Frankenstein merge master v4
2016-10-17 16:31:47 +02:00
Andreas Lauser 1c1e0c18b7 flow_ebos: fix the build
once again, the culprit was an API change in opm-output. I suppose
this means that the frankenstein branch should be merged soon after
the release in order to avoid to continue breaking the flow_ebos build
twice a week.
2016-10-17 16:24:49 +02:00
Andreas Lauser 6a093c3e24 Merge remote-tracking branch 'origin/master' into frankenstein 2016-10-17 14:33:34 +02:00
Andreas Lauser bbe8d50804 Merge pull request #864 from andlaus/frankenstein_merge_master_v3
Frankenstein merge master v3
2016-10-14 20:20:53 +02:00
Andreas Lauser 44d3d5b536 Merge branch 'master' into frankenstein
* master: (42 commits)
  Let only one rank write to step_timing.txt
  Do not refer users to issue tracker if multiple procs log.
  Remove unused variable.
  Use vector instead of VLA, also add missing includes.
  changed: bundle eigen3 in the original tarball for debian
  update redhat6 packaging
  Bugfix parallel computation of weighted pressure etc.
  Fixed uninitialized bug, and added logging/comment
  Removed superfluous std::move
  Refactoring
  Initial version of summary data
  Do not store collective communication in the wells object.
  Make sure that updateWellControls is called on each process.
  Make WellSwitchingLogger work with DUNE 2.3
  Schedule::getGroup returns reference, not pointer
  Removed warning in WellSwitchLogger::calculateMessageSize
  Correctly initialize MPI for multisegment wells test
  Changed some names in WellSwitchingLogger
  Use speaking name for bool in getCellData
  Whitespace and other formatting changes
  ...
2016-10-14 19:31:56 +02:00
Andreas Lauser d76bf11902 adapt to the removal of the unit system of opm-core
the one which is in opm-parser is now a drop-in replacement.
2016-10-10 17:00:09 +02:00
Andreas Lauser 43601b98af flow_ebos: only invalidate the intensive quantities after an iteration if necessary
"if necessary" means that the solution has changed (which is the case
iff the linear solver needs to do some work...
2016-10-07 11:46:08 +02:00
Andreas Lauser ddd4225684 Merge pull request #849 from totto82/frankensteinfixcrossflow
Allow crossflow if all perforations is crossflowing
2016-10-03 14:27:11 +02:00
Andreas Lauser f9bf09e832 Merge pull request #847 from totto82/frankenstein_fixModel2
Frankenstein fixes for model2
2016-09-30 11:16:03 +02:00
Andreas Lauser 7d7e619333 Merge pull request #846 from andlaus/frankenstein_merge_master_v2
Frankenstein merge master v2
2016-09-29 18:44:55 +02:00
Andreas Lauser 6722c67534 Merge remote-tracking branch 'origin/master' into frankenstein_merge_master_v2 2016-09-29 18:38:39 +02:00
Andreas Lauser fa626a543b make it work with the latest master branches
it broke because the Compat.hpp header was removed today.
2016-09-29 18:24:54 +02:00
Andreas Lauser 6aabc99814 Merge pull request #818 from andlaus/frankenstein_merge_master
Frankenstein merge master
2016-09-29 09:55:32 +02:00
Andreas Lauser 36b00ba570 Merge remote-tracking branch 'origin/master' into frankenstein_merge_master 2016-09-28 21:20:47 +02:00
Andreas Lauser 83a9f6ffce threshold pressure defaults: calculate the pressure difference like when computing the fluxes
this should not change the value of the result at all (because the
total delta which is added to the phase pressures stays identical),
but it should be less confusing when comparing this with the code that
calculates the gravity correction term in the flux calculation.
2016-09-28 16:57:34 +02:00
Andreas Lauser 000fde19dc threshold pressures: simplify code for the density calculation a bit 2016-09-28 16:57:34 +02:00
Andreas Lauser 4f4d7531af threshold pressure: be more cautious when acessing the defaults
maybe it worked as-is, or maybe decks which lead to illegal accesses
to the map are incorrect (i.e., they specify threshold pressures for
EQUIL-regions that do not touch), but let's play save here...
2016-09-28 16:56:54 +02:00
Andreas Lauser 662d6e28cd threshold pressures: properly consider the dissolved components for the density
even if a phase is saturated, the dissolved component must be
considered when calculating the fluid density.
2016-09-28 16:55:15 +02:00
Andreas Lauser ae3248da8b threshold pressure: use phase pressure instead of reference pressure...
... to calculate phase densities for the threshold pressure
defaults. I don't know if the reference simulator does this, but this
makes it consistent with what's done in the flux calculation of flow.
2016-09-28 16:54:00 +02:00
Andreas Lauser 6bc8080722 Merge remote-tracking branch 'totto82/frankenstein_mod' into frankenstein_merge_master
* totto82/frankenstein_mod:
  Avoid copying of matrices inside StandardWellsDense.
2016-09-15 11:48:24 +02:00
Andreas Lauser 5278b88e2e Merge remote-tracking branch 'remotes/totto82/frankenstein_mod' into frankenstein_merge_master
* remotes/totto82/frankenstein_mod:
  Fix seg-fault for cases without wells
  Some micro performance improvments and cleaning
  Add THP support in the denseAD well model
  Only solve the linear system when it is not converged.
  Revert changes to NewtonIterationBlackoilInterleaved.cpp
  add and use class wellModelMatrixAdapter
  Remove unused code and remove Eigen vectors
  New updateState
  Some cleaning and small changes
2016-09-14 15:03:17 +02:00
Andreas Lauser 4ecd6ca64a fix some serious screw-ups
almost all of them were caused by recent changes in the master
branch:

- there were methods added which depend on the types `V` and
`DataBlock`. these do not make much sense in the context of the
frankenstein simulator. Also, these types are defined globally for the
whole Opm namespace in `BlackoilModelBase_impl.hpp` (which should be
prosecuted as a fellony IMO)! Besides this, their names are useless;
'V' is the letter which comes after `U` in the alphabet and when it
comes to computers basically everything can be seen as a chunk of data
(i.e., a `DataBlock`).
- it seems like the new and shiny dense-AD based well model was never
compiled with assertations enabled, at least some asserts referenced
non-existing variables.
- the recent output-related API changes were pretty unfortunate
because they had the effect of tying the (sub-optimal, IMO) internal
structure of the model even closer to the output code: as far as I can
see, `rq` does only make sense if the model works *exactly* like
BlackoilModelBase and friends. (for flow_ebos, this could be
replicated, but first it would be another unnecessary conversion step
and second, most of the quantities in `rq` are of type `ADB` and much
of the "frankenstein" excercise is devoted to getting rid of these.) I
thus reverted back to an old version of the output code and created a
`frankenstein` branch in my personal `opm-output` github fork.
2016-09-13 23:58:59 +02:00
Andreas Lauser 62de30d9b2 Merge remote-tracking branch 'origin/master' into frankenstein 2016-09-12 23:18:02 +02:00
Andreas Lauser e21327dced use the PORV 3D property from opm-parser to determine the pore volume
this simplifies handling the pore volume by centralising the code,
i.e., moving it into opm-parser. (in particular, it makes the MINPV
handling consistent with the active cells which get removed by the
grid.) If eclipse turns out to be inconsistent here, we need to deal
with atrocities like the MULTREGP keyword on a case-by-case basis,
i.e., it would considerably uglify the code and be an additional
maintainance burden.

note that besides supporting of MULTREGP, the code should now also
handle explicitly setting the pore volume via the PORV keyword
correctly....
2016-09-07 15:04:30 +02:00
Andreas Lauser 1d2a5d7f1b fix the headers
remove the now unnecessary inclusion of
"NewtonIterationBlackoilInterleaved.cpp" (mind the .cpp extension!)
and include "dune/istl/solvers.hh" instead.
2016-08-28 15:48:18 +02:00
Andreas Lauser 75d99fa335 Merge pull request #6 from totto82/reorg_wells
Remove usage of ADB and the residual struct.
2016-08-28 15:47:43 +02:00
Andreas Lauser 49f13e6664 Merge remote-tracking branch 'origin/master' into frankenstein 2016-08-28 15:36:11 +02:00
Andreas Lauser 1415168729 Merge pull request #5 from totto82/dense_well
WIP New well model
2016-08-19 14:19:08 +02:00
Andreas Lauser 3e8792b9cc some output related fixes
there was a screw-up with the output directory (to set it you need to
modify the EclipseState by means of the IOConfig object? WTF?) and it
seems like the FlowMain.hpp was modified since FlowMainEbos.hpp was
added so there was some terminal output missing.
2016-08-14 21:44:47 +02:00
Andreas Lauser c919b1e6e1 flow_ebos: set the correct pressure value in all cases
for the gas-only case with vaporized oil enabled, the oil pressure was
used, but ebos uses the gas pressure as a primary variable in that
case. (the reason is that it is faster to check if oil appears if the
gas pressure is available in that case.) This patch corrects that and
does no longer use the PrimaryVariables::set$FOO_PV() methods because
these methods are hard to keep in sync with the indices for the
primary-variables-as-a-Dune::FieldVector feature (which is actually
quite important for the linear solver).
2016-08-12 16:52:36 +02:00
Andreas Lauser 2e56597d0e fix Dune 2.3 build issue
this time I tested it.
2016-08-10 15:05:31 +02:00
Andreas Lauser 4b4ecb1145 fix a build issue with dune 2.3
(hopefully)
2016-08-10 14:45:20 +02:00
Andreas Lauser 068ee3bc18 flow_ebos: no need to update the properties object
ebos does this internally. in flow_ebos these objects are only needed
for the well model...
2016-08-09 18:38:23 +02:00
Andreas Lauser 92eefb4718 flow_ebos: make the ebos simulator less verbose 2016-08-09 18:38:23 +02:00
Andreas Lauser 8e81023e1d BlackoilModelEbos: remove redundant constructor parameters 2016-08-09 18:38:23 +02:00
Andreas Lauser 626d3e1da5 flow_ebos: only instantiate a single deck and a single EclipseState 2016-08-09 18:38:23 +02:00
Andreas Lauser 17c1e1083e only instanciate the grid once
i.e., pass through the one which is created by ebos...
2016-08-09 18:38:23 +02:00
Andreas Lauser adb8a2cf96 fix the end-of-episode detection code 2016-08-09 18:38:23 +02:00
Andreas Lauser f29bf8f694 flow_ebos: retrieve the simulation grid from the ebos simulator object 2016-08-09 18:38:23 +02:00
Andreas Lauser 77f103fca5 instantiate the ebos Simulator object in SimulatorFullyImplicitBlackoilEbos
this gets rid of some ugly hacks with static variables...
2016-08-09 18:38:23 +02:00
Andreas Lauser 3027e1f39d flow_ebos: do no longer use the generic FlowMain class
this will allow to boil the code down.
2016-08-09 18:38:23 +02:00
Andreas Lauser 50ebb66041 make SimulatorFullyImplicitBlackoilEbos independent of SimulatorBase
currently this involves a lot of copy and paste but, it will be boiled
down soon.
2016-08-09 18:38:23 +02:00
Andreas Lauser 4d63a4b0ba BlackoilModelParameters: add the file name of the deck
this is needed by the ebos based model.
2016-08-09 12:23:29 +02:00
Andreas Lauser 4a66b4495b flow: move the internal classes to separate files
i.e., the contents of the Opm::details namespace, the IterationReport
and the DefaultBlackoilSolutionState classes. the purpose of this is
to share the code between the existing flow variants and flow_ebos.
2016-08-09 12:23:29 +02:00
Andreas Lauser 415bb25166 allow StandardWells.hpp to be included independently
i.e., without BlackoilModelBase.hpp.
2016-08-09 12:23:29 +02:00
Andreas Lauser bec3ce31fd distinguish between the number of non linear iterations and the number of linearizations
while the printed number of "Non linear iterations" was correct in a
strict sense, it was very confusing if one was working on the
linearization code because the last Newton iteration of each time step
was linearized but not solved for (and the solution was thus not
updated hence it does not count as a "non linear iteration"). This
makes sense for large problems were the total runtime is completely
dominated by the performance of the linear solver, but smaller
problems exhibit the opposite behavior (i.e., for them, runtime is
typically dominated by the linearization proceedure), so one is more
interested in the number of linearizations, not the number of linear
solves.
2016-08-02 12:14:10 +02:00
Andreas Lauser 5410d97701 pass the simulation timer object instead of the time step size
models may need a more detailed picture of where they are in the
simulation. Note that since the timer objects are available at every
call site, this is also not a very deep change.
2016-07-12 15:55:12 +02:00
Andreas Lauser 88519d70c4 adapt to the EclMaterialLawManager's rename of the *Pointer methods 2016-07-06 13:00:35 +02:00
Andreas Lauser a8df55e02f rename some variables from "*Lad" to "*Eval"
this was an involuntary omission in the "local AD" to "dense AD"
rename...
2016-06-07 11:12:33 +02:00
Andreas Lauser 87c7b2c720 Merge pull request #704 from andlaus/localad_to_densead
rename "local AD" to "dense AD"
2016-06-06 14:03:09 +02:00
Andreas Lauser d45ba7732e rename "local AD" to "dense AD" 2016-06-02 20:20:04 +02:00
Andreas Lauser 4baf0f6acf Merge pull request #654 from andlaus/nested_ad
Fix build
2016-04-18 11:01:39 +02:00
Andreas Lauser 0405953a64 adapt code w.r.t. the removal of the tags for Opm::Evaluation 2016-04-15 18:49:29 +02:00
Andreas Lauser 29f4be0f6c use the error macros from opm-common 2016-04-14 11:32:08 +02:00
Andreas Lauser b27aadc083 adapt the the table related API changes of opm-parser 2016-04-14 11:32:07 +02:00
Andreas Lauser 5b5f6e6aa6 Glue in support for the grid property modifier keywords
this basically means using Opm::EclipseState instead of the raw deck
for these keywords.

with this, property modifiers like ADD, MULT, COPY and friends are
supported for at least the PERM* keywords. If additional keywords are
required these can be added relatively easily as well.

no ctest regressions have been observed with this patch on my machine.
2016-04-14 11:32:07 +02:00
Andreas Lauser 12ece55907 rename all "newParserDeck" objects to "deck"
The "new" parser is now "the" parser...
2016-04-14 11:32:07 +02:00
Andreas Lauser c89e1ed0b6 convert the examples and the tests to opm-parser 2016-04-14 11:32:07 +02:00
Andreas Lauser f0e86b98e3 catch all exceptions in all tutorials and examples 2016-04-14 11:32:07 +02:00
Andreas Lauser e8458e9a23 convert THROW to OPM_THROW 2016-04-14 11:32:07 +02:00
Andreas Lauser 068519bd19 replace boost::scoped_ptr by std::unique_ptr
thanks to Bård Skaflestad, Atgeirr Rasmusen and Roland Kaufmann for
the hint.
2016-04-14 11:32:07 +02:00
Andreas Lauser b9f5fb8b78 dune.module: add all modules which opm-autodiff depends on explicitly
this restores the ability to build opm-autodiff and all dependencies
using `dunecontrol`. Except for opm-common adding these dependencies
is not really required because they were inherited from other modules,
but stating them explicitly is good style IMO.
2016-04-04 15:43:31 +02: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
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
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
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
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
Andreas Lauser 13d2f35493 BlackoilPropsAdFromDeck: fix a few typos
these definitively do not change the results.
2016-02-11 17:07:24 +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
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
Andreas Lauser e0a1abba09 adapt to the "mutable geology" changes from opm-autodiff 2015-11-26 12:20:15 +01:00
Andreas Lauser 70614e2fd6 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 16:09:20 +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
Andreas Lauser 7e05127c48 thresholdPressures(): move the code which calculates the maximum gravity corrected pressure difference between EQLNUM regions to its own function
requested by [at]atgeirr
2015-11-13 15:36:50 +01:00
Andreas Lauser 77893e415e thresholdPressures(): split several long lines
as requested by [at]atgeirr
2015-11-13 15:13:28 +01:00
Andreas Lauser f13e7fd300 thresholdPressures(): constify all local variables which can be made constant
I have doubts if this will change anything in the binaries (and in my
personal opinion, these 'const's look quite ugly and are sometimes a
(small) annoyance when debugging), but I don't mind using the coding
style used by most of the rest of opm-core here.
2015-11-13 15:13:15 +01:00
Andreas Lauser 0df880ce43 cdash: update dropsite 2015-11-11 16:50:25 +01:00
Andreas Lauser 3ccc0b5aa0 THPRES: only update the threshold pressure between regions if the saturation of the upstream cell is larger than the residual saturation
before it was 0. Again, thanks to [at]totto82 for the suggestion.
2015-11-05 15:39:29 +01:00
Andreas Lauser df9a927c5b THPRES: change the sign of the gravity correction
we're correcting the pressure at the cell center depths to get the
pressure at the face depth, not the other way around. This is
confusing...

thanks to [at]totto82 for discovering this.
2015-11-05 12:29:19 +01:00