Commit Graph
100 Commits
Author SHA1 Message Date
Andreas Lauser b5cddef928 flow: switch it to use the eWoms parameter system
this has several advanges:

- a consistent and complete help message is now printed by passing the
  -h or --help command line parameters. most notably this allows to
  generically implement tab completion of parameters for bash
- the full list of runtime parameters can now be printed before the simulator
  has been run.
- all runtime parameters understood by ebos can be specified
- no hacks to marry the two parameter systems anymore
- command parameters now follow the standard unix convention, i.e.,
  `--param-name=value` instead of `param_name=value`

on the negative side, some parameters have been renamed and the syntax
has changed so calls to `flow` that specify parameters must adapted.
2018-08-15 23:34:32 +02:00
Andreas Lauser 976ab03f68 fork ISTLSolver into a legacy and non-legacy version
this is necessary because only the latter can use the property system.
2018-08-15 23:33:50 +02:00
Andreas Lauser ca2428cf13 adapt to the rename of the EclOutputDir parameter to OutputDir in eWoms 2018-08-14 10:37:24 +02:00
Andreas Lauser ac2bc410f3 adapt to the fluid system naming convention change in opm-material
note that almost the only thing which is affected is legacy code.
2018-07-27 12:54:02 +02:00
Andreas Lauser 7f8120d609 flow: do not set the ExportGlobalTransmissibility property anymore
this has not been required anymore since the output code was moved to
the ebos core.
2018-07-11 13:49:17 +02:00
Andreas Lauser ccd0da2e4c use a raw pointer to specify the auxiliary module for wells
this is necessiated by the replacement of `std::shared_ptr` by raw
pointers for the eWoms auxiliary equation infrastructure. Note that by
default `flow` will *not* create an auxiliary equation module because
it modifies the operator that is used by the linear solver instead.
2018-07-09 12:14:43 +02:00
Andreas Lauser c794028bcf flow: fix the time held by the simulator object 2018-06-27 12:13:50 +02:00
Andreas Lauser 830c119362 Pass the async_output to core ebos
this was forgotten when moving the output writing code into the ebos
core. (this does not really matter for most people because
asynchronous output is wanted anyway and it was unconditionally
enabled.)
2018-06-15 11:44:07 +02:00
Andreas Lauser 5a9b81db33 remove the hasDisgas and hasVapoil arguments from SimulatorFullyImplicitBlackoilEbos
They seemed to be unused already. I suspect that were only there for
API compatibility reasons.
2018-06-06 10:59:42 +02:00
Andreas Lauser 37b6a540af remove BlackoilOutputEbos
after the actual output writing code has been moved to core ebos, this
was just a unnecessary glue layer for API compatibility.
2018-06-06 10:59:41 +02:00
Andreas Lauser dfbc24b35f flow: avoid wrangling around with dummy state objects
these objects are only used by flow_legacy, so not having to deal with
them anymore lets non-legacy flow avoid to jump through a lot of hoops
for the sake of having a common API.

this required a fork of the NonlinearSolver and AdaptiveTimeStepping
classes. this is not a problem because the original classes would get
pruned to look like the new ones once flow_legacy gets moved out of
the opm-simulators module.
2018-06-06 10:59:41 +02:00
Andreas Lauser 5ea9de7d47 dune.module: update version to 2018.10-pre 2018-04-26 17:47:23 +02:00
Andreas Lauser 55093b4918 adapt to the removal of the ewoms/aux directory 2018-04-10 10:17:31 +02:00
Andreas Lauser 3924bb1e6e explicitly disable all extensions supported by black oil model for the base simulator
this should not really be necessary because they are supposed to be
disabled by default, but it makes things a bit more explicit
2018-04-06 11:01:33 +02:00
Andreas Lauser b74d39f2e1 make flow compile in face of the energy conservation changes of the eWoms black oil model
with this, flow does *not* yet support thermal simulations, this patch
merely makes it compile while nothing user-facing is supposed to
change.
2018-04-06 11:01:33 +02:00
Andreas Lauser a42ece61ed BlackoilModelEbos: set the default output directory to the empty string
an empty string is interpreted as "write the output files into the
same directory as the input". this is the current 'flow' default
behavior, plain ebos uses "." as the default location for output,
i.e., the current directory from which the simulator is run from.
2018-03-12 15:17:39 +01:00
Andreas Lauser 71d353326a move the old "ThreadHandle" mechanism back to opm-simulators
this class is only used by the legacy simulators, `flow` uses the
`EclWriter` class provided by eWoms. In turn, this class uses the
new-and-shiny "tasklet" mechanism.
2018-03-12 15:17:39 +01:00
Andreas Lauser 999653783b do not name exception objects if they are not used
ICC rightfully produces a warning here...
2018-03-03 13:31:17 +01:00
Andreas Lauser 732d86613e do not mess around with GCC's optimizations
generally, this is a bad idea because GCC is very good at determining
which optimizations should be enabled or not and also, this may
interfere with some compilers. (e.g., it produces a warning on icc)
2018-03-03 13:31:17 +01:00
Andreas Lauser 3d0fca2f08 adapt to the gridManager() -> vanguard() change in ewoms 2018-02-08 16:27:42 +01:00
Andreas Lauser 7f3a9f1f43 catch NumericalIssue instead of NumericalProblem
the underlying problem is that the OPM build system does not define a
HAVE_OPM_COMMON macro in config.h.
2018-02-08 12:02:25 +01:00
Andreas Lauser 58a1b7df1f adapt to the move of infrastructure from opm-common to opm-material 2018-02-07 13:32:52 +01:00
Andreas Lauser bb788a976b add comment to CMakeLists_files.cmake why the flow_ebos*.cpp files are on top 2018-02-05 10:53:40 +01:00
Andreas Lauser 9693e0b33d move the flow_ebos_*.cpp files to the beginning of the source list
these files take the longest to compile. moving them to the beginning
speeds things up forn parallel builds because the remaining compile
can be compiled while dealing with the flow_ebos files while the build
stalls if these files are at the bottom of the list because they are
required for the library.
2018-02-05 10:14:51 +01:00
Andreas Lauser 386ade39f4 flow: let core ebos handle the output directory for the result files
this adds a new parameter --ecl-output-dir=$FOO to the "virtual"
command line arguments of the ebos simulator.
2018-01-29 08:54:30 +01:00
Andreas Lauser 5bf53148c0 replace #if HAVE_CONFIG_H by #ifdef HAVE_CONFIG_H
it seems like most build systems pass a -DHAVE_CONFIG_H flag to the
compiler which still causes `#if HAVE_CONFIG_H` to be false while it
clearly is supposed to be triggered.

That said, I do not really see a good reason why the inclusion of the
`config.h` file should be guarded in the first place: the file is
guaranteed to always available by proper build systems, and if it was
not included the build either breaks at the linking stage or -- at the
very least -- the runtime behavior of the resulting libraries will be
very awkward.
2017-12-11 11:33:52 +01:00
Andreas Lauser db1f257184 make call_umfpack.c compile even if UMFPACK is not available
That said, don't try to call any of its functions or you'll regret it
at runtime!
2017-12-11 11:33:52 +01:00
Andreas Lauser 503c7d1ca8 make the PETSc code compile even if PETSc is not available
if PETSc is not available, the .cpp file will compile fine because it
will be reduced to be empty, but trying to include
LinearSolverPetsc.hpp in this case will result in an error.
2017-12-11 11:33:52 +01:00
Andreas Lauser 244871829d PhaseUsage: handle polymer and solvent the same way as energy 2017-12-11 10:30:14 +01:00
Andreas Lauser 4571a8f841 add an energy "phase"
This is quite a hack: Even though energy is not a "phase" and it is
also not considered in MaxNumPhases and pu.num_phases because this
would break a lot of assumptions in old code, it is nevertheless
assigned an "canonical index" that can be translated "active index"
via PhaseUsage::phase_pos[]. This awkwardness is needed because much
of the legacy OPM code conflates the concepts of "fluid phase" and
"conserved quantity" and fixing that issue would basically mean an
almost complete rewrite of much of the legacy code. That said, the
same statement applies to polymer and solvent, but these are currently
handled as even more second-class citizens because they are not even
given a canonical index and also cannot be translated into an active
one.
2017-12-11 10:30:14 +01:00
Andreas Lauser 804d38dcb6 remove the configure wrapper script
this used to provide autotools compatibility, but it has not been working for a while. Thus it is IMO better to remove it in order not to mislead people.
2017-11-24 10:36:46 +01:00
Andreas Lauser 36bd6a1681 flow_ebos: fix the OpenMP functionality
the ThreadManager from ebos was not called which resulted in some
havoc when attempting multi-threaded runs.

v2: use opm_get_max_threads() directly. thanks to [at]akva2 for the heads-up.
2017-11-02 12:47:04 +01:00
Andreas Lauser bd8645fa86 remove unused travis files
these have not been used for a while. .travis.yml and the files in opm-common/travis/ are in charge
2017-10-27 19:06:57 +02:00
Andreas Lauser e65790224e replace #if HAVE_CONFIG_H by #ifdef HAVE_CONFIG_H
it seems like most build systems pass a -DHAVE_CONFIG_H flag to the
compiler which still causes `#if HAVE_CONFIG_H` to be false while it
clearly is supposed to be triggered.

That said, I do not really see a good reason why the inclusion of the
`config.h` file should be guarded in the first place: the file is
guaranteed to always available by proper build systems, and if it was
not included the build either breaks at the linking stage or -- at the
very least -- the runtime behavior of the resulting libraries will be
very awkward.
2017-10-27 17:48:26 +02:00
Andreas Lauser 6e7189b518 fix a few Dune 2.5 deprecation warnings 2017-10-27 17:48:26 +02:00
Andreas Lauser ceefb61c4a fix some unknown pragma warnings if OpenMP is not enabled 2017-10-27 17:48:26 +02:00
Andreas Lauser 720dc636e8 make the build work if UMFPACK is not available
this was caused by the recent work on multisegmented wells. If UMFPack
is available, it compiled.
2017-10-24 19:17:41 +02:00
Andreas Lauser 35ff3aded3 change version to 2018.04-pre 2017-10-19 19:30:38 +02:00
Andreas Lauser d1ce08d654 update flow startup message
The old message was not really accurate anymore because flow also
supports the polymer and solvent extensions. (Also, the parentheses
around the version were removed because they are not necessary.)

v2: use the message proposed by [at]atgeirr
v3: re-add accidentially removed website URL
2017-10-11 23:33:47 +02:00
Andreas Lauser ae3842fa80 remove do not set the SimulationParameter property anymore
this needs to merged before the SimulationParameter hack can be
removed from eWoms. the patch will cause spurious deprecation warnings
until then. (i.e., it is best to merge them together.)
2017-10-11 16:01:55 +02:00
Andreas Lauser ab93f58371 some minor cleanups
this fixes a few warnings and removes now-unnecessary function arguments.
2017-10-10 14:07:07 +02:00
Andreas Lauser cede806bd5 flow: refactor the specializations
The motivation for this PR is that currently the build fails on my
Ubuntu 17.10 laptop with two processes because that machine "only" has
8 GB of RAM (granted, the optimization options may have been a bit too
excessive). under the new scheme, each specialization of the simulator
is put into a separate compile unit which is part of
libopmsimulators. this has the advantages that the specialized
simulators and the main binary automatically stay consistent, the
compilation is faster (2m25s vs 4m16s on my machine) because all
compile units can be built in parallel and that compilation takes up
less RAM because there is no need to instantiate all specializations
in a single compile unit.

on the minus side, all specializations must now always be compiled,
the approach means slightly more work for the maintainers and the
flow_* startup code gets even more complicated.
2017-10-06 15:35:00 +02:00
Andreas Lauser 0c92c24dcb flow_ebos*: make it build and (the sequential part) work if dune-fem is available
in particular, this implied some changes to the MPI initialization
code. since dune-fem's GridPart class currently has issues with
CpGrid's implementation of loadBalance(), parallel computations still
do not work if dune-fem is around, but at least sequential ones now
do even if MPI is enabled.
2017-10-06 15:35:00 +02:00
Andreas Lauser 64d7366de2 mark the non-template methods of the adaptive time stepper as inline
this is needed to avoid linker errors if this class ought to be used
in multiple compile units. IMO the main problem here is the use of an
_impl.hpp file.
2017-10-06 15:34:59 +02:00
Andreas Lauser d95b622c75 mark initHydroCarbonState() as inline
this allows it to be used in multiple compile units without the linker
running amok.
2017-10-04 19:24:20 +02:00
Andreas Lauser beea71c9f5 Merge pull request #1228 from dr-robertk/PR/cleanup-getConvergenceEbos
Ebos::getConvergence: removed unnecessary creation of vectors of length nCells.
2017-06-22 18:03:06 +02:00
Andreas Lauser dc9ad10f87 flow_ebos: do not use BlackoilPropsAdFromDeck anymore
the only thing that was used of this class was the phase usage object,
but the phase usage object can be accessed via much leaner interfaces.

The old BlackoilPropsFromDeck (without "Ad") is still required to
compute the initial condition, but the init code should be refactored
soon anyway.
2017-06-16 15:13:47 +02:00
Andreas Lauser e3d0bbc144 specify the number of iterations where we use a "strict" Newton convergence criterion using a separate parameter
that parameter is called "max_strict_iter". This increases the
flexibility of this slightly and it avoids screwing up the default
value for the "max_iter" parameter in the future. The credits for this
patch go to [at]atgeirr for proposing it.
2017-06-14 14:22:22 +02:00
Andreas Lauser 0304183361 Newton: fail earlier
i.e. give up after 10 instead of 15 Newton iterations. since this now
also causes the CNV convergence criterion to be ignored after 8
instead of after 13 Newton iterations, and because CNV stagnation
seems to be the cause for the vast majority of the failures, it does
not lead to worse results or more time step chopping on Norne but
causes fewer wasted iterations.
2017-06-14 14:22:22 +02:00
Andreas Lauser e58fed9956 ignore the CNV convergence criterion for the last few newton iterations
the cell based residual can cause problems for cells with
almost-singular shapes and/or small pore volume.
2017-06-14 14:22:22 +02:00
Andreas Lauser c3555a21d2 Merge pull request #1019 from andlaus/flow_ebos-remove-geoprops
flow_ebos: remove the legacy geologic properties object
2017-05-19 18:49:21 +02:00
Andreas Lauser 48b7d6ea56 improve writing of the INIT file
now, the dune APIs are used whereever possible and the data is
computed for the global grid, i.e. for parallel runs it does not need
to be gathered across the processes anymore. Also, the INIT file is
now only written once instead of twice.

I've verified that the sequential and the parallel INIT files stay
identical for the Norne case and that the INIT file does not change
w.r.t. before this patch.
2017-05-12 15:44:55 +02:00
Andreas Lauser 7cbea4be41 fix a bug in the transmissibility output code
the fact that faces may point into the opposite Cartesian direction
was not considered and these output fields are specified
w.r.t. logically Cartesian cell indices. (not compressed ones!)
2017-05-12 15:43:51 +02:00
Andreas Lauser adb2715c8d flow_ebos: also write the non-input NNCs to the init file
the corresponding code was shamelessly lifted from the DerivedGeology
class. it has been substantially modified to adapt it to the flow_ebos
specifics, though.
2017-05-12 15:43:51 +02:00
Andreas Lauser e2e0e3290d flow_ebos: do no longer use the legacy object for geologic properties
it was already almost unused (except for output). Besides making the
overall flow_ebos code leaner because it reduces redundancies, this
patch also implies a small reduduction of memory consumption and a
minor performance improvement. the latter is due to the fact that the
transmissibilities now do not need to be calculated more often than
necessary anymore.
2017-05-12 15:43:51 +02:00
Andreas Lauser f3e0b9c692 Merge pull request #1169 from totto82/prepare_solvent
Prepare for 2p and  extended models.
2017-05-08 13:47:43 +02:00
Andreas Lauser 5144359ac0 flow_ebos: update banner
since flow_ebos is the new silverback simulator of the opm-simulators
clan, it should itself as "flow"(the old silverback announces itself
as "flow_legacy" already).

Also some people seem to have been confused by the eWoms version and
codename. Since this information only exhibits limited value IMI,
let's remove it here.
2017-04-28 12:52:30 +02:00
Andreas Lauser f570df375e Merge pull request #1162 from totto82/fix_initialOutputVisc
Make initial viscosity output similar with Ecl
2017-04-25 09:26:34 +02:00
Andreas Lauser 6f257f0877 fix non-MPI builds
some headers must be included unconditionally.
2017-04-20 15:12:34 +02:00
Andreas Lauser 4d02d51dd2 NewtonIterationBlackoilInterface: make its destructor virtual
this prevents GCC-7's address sanitizer from complaining about a
delete for a new of a different type. (i.e., the new is for the
derived class, but if the destructor is non-virtual only the dtor of
the base class is called if a pointer to the base class is deleted.)

finding this was quite some fun, mainly because it took a while what
the issue was.
2017-04-20 11:03:54 +02:00
Andreas Lauser 6c2e828a8d add 'flow_ebos' to the dependencies of the 'flow' target
this allows to use `make flow` instead of `make flow_ebos flow` to
build the stuff.
2017-04-18 18:45:47 +02:00
Andreas Lauser 6d9440d8e2 Merge pull request #1146 from andlaus/fix_bubble_dew_point_pressure_output
only output the bubble and dew point pressures if they are available
2017-04-18 12:39:34 +02:00
Andreas Lauser e24d8c3a57 SimulatorFullyImplicitBlackoilOutput: print warnings instead of silently ignoring requests for bubble/dew point pressure output 2017-04-18 11:09:09 +02:00
Andreas Lauser 7e388376af only output the bubble and dew point pressures if they are available 2017-04-18 10:21:26 +02:00
Andreas Lauser 2b0ebe0832 Change the version to 2017.10-pre 2017-04-13 12:57:04 +02:00
Andreas Lauser d226b3e617 Merge pull request #1139 from blattms/fix-parallel-convergence-max
[bugfix,flow_ebos] Fix parallel convergence max
2017-04-13 12:56:22 +02:00
Andreas Lauser d334fc1c70 Merge pull request #1118 from GitPaean/calculating_well_potentials_for_each_timestep
[WIP] Changes to improve the StandardWellsDense
2017-04-12 10:33:57 +02:00
Andreas Lauser 0b84a89a1d update update_reference_data.sh to also update the flow_ebos reference solutions
maybe this even works.
2017-04-11 15:56:02 +02:00
Andreas Lauser d08d909c00 change the symlink for flow to flow_ebos
`flow_ebos` should be now capable of doing everything that
`flow_legacy` can and recently all testing seems to have been centered
on `flow_ebos`. note that `flow_ebos` does not yet support some more
advanced/exotic features like MPI, solvents, polymer, etc., but
neither does the plain `flow_legacy` binary. until `flow_ebos`
supports these features, the specialized simulators thus continue to
use the legacy code paths.
2017-04-11 13:25:18 +02:00
Andreas Lauser ef2a560fb3 flow_ebos: print statistics about failed time steps
the performance summary at the end of a Norne run which are printed by
`flow_ebos` now looks like this on my machine:

```
Total time (seconds):         773.757
Solver time (seconds):        753.349
 Assembly time (seconds):     377.218 (Failed: 23.537; 6.23965%)
 Linear solve time (seconds): 352.022 (Failed: 23.2757; 6.61201%)
 Update time (seconds):       16.3658 (Failed: 1.13149; 6.91375%)
 Output write time (seconds): 22.5991
Overall Well Iterations:      870 (Failed: 35; 4.02299%)
Overall Linearizations:       2098 (Failed: 136; 6.48236%)
Overall Newton Iterations:    1756 (Failed: 136; 7.74487%)
Overall Linear Iterations:    26572 (Failed: 1786; 6.72136%)
```

for the flow_legacy family, nothing changes.
2017-04-11 11:12:11 +02:00
Andreas Lauser 5125929a66 SimulatorReport: make it possible to report failed time steps
the method can still be called as it used to be. in this case no
failures are reported, though.
2017-04-10 23:31:24 +02:00
Andreas Lauser 6c7062580f add unit tests for flow_ebos analogous to flow_legacy
or are these called integration tests? anyway, these are the tests
which use the decks from opm-data. This should put flow_ebos testing
on the same level as flow_legacy.
2017-04-10 14:08:11 +02:00
Andreas Lauser c5fd9ddb48 make the unit tests to explicitly use flow_legacy instead of flow
the results of `flow_legacy` and `flow_ebos` are not bit-wise
identical. The same tests using `flow_ebos` should to be added when
re-organizing the unit tests the next time.
2017-03-20 20:01:59 +01:00
Andreas Lauser 093310c437 BlackoilModelEbos: apply the well residual in assemble()
This used to be done in solveJacobianSystem(), but this method is only
supposed to solve the linearized system of equations, not to modify it
IMO.

I tested this patch with Norne: It did not change anything.
2017-03-17 11:39:41 +01:00
Andreas Lauser aa9966d7b8 flow_ebos FIP: fix the field totals code
this unifies the code paths of the code that calculates the FIP field
totals for the parallel and the sequential cases and makes the code
more robust because it does not hard-code the presence of an intensive
quantities cache anymore. also, rock compressibility is now also
included in the field totals instead of just the FIP regions. this was
forgotten in the last FIP PR because the region values are calculated
in a different class using completely different code. (i.e., regions
are done by the model, field totals by the simulator. that design
should win an award, IMO.)

with this patch, the field totals for Norne and SPE1 seem to match
those produced by E100 _very_ closely and also parallel and sequential
runs for Norne and SPE1 of flow_ebos produce exactly the same
numbers. (This is probably the case for all decks, but I haven't
tested anything else.)
2017-03-15 11:07:45 +01:00
Andreas Lauser 5194cc5122 BlackoilModelEbos: clean up and fix the FIP code
mainly this should now work properly in parallel, because non-interior
cells are not counted multiple times anymore. also, the number of
loops over the global arrays has been reduced, some variables have
been renamed and some comments were added.

finally this fixes the average pressure for regions that do not
contain hydrocarbons (or at least it unifies it with the approach for
regions that contain hydrocarbons).
2017-03-15 11:07:45 +01:00
Andreas Lauser 3e1758f5c8 the first time FIP needs to be reported is before the simulation starts 2017-03-15 11:07:45 +01:00
Andreas Lauser 384fcc5114 BlackoilModelEbos: minor stylistic improvements
mainly indentation fixes and removal of duplicate blank lines.
2017-03-15 11:06:28 +01:00
Andreas Lauser bb56d53150 Merge pull request #1075 from babrodtk/initial_restart
Update for writing initial values to restart file
2017-02-24 16:04:38 +01:00
Andreas Lauser 9dab0323ce flow_ebos FIP: create the element iterator object as part of the for statement
IMO, the previous solution was easier to read and a few lines shorter,
but I don't really care about how this is done...
2017-02-21 13:53:08 +01:00
Andreas Lauser 1f7be0d324 flow_ebos FIP: add comments about the pore volume calculation 2017-02-21 13:33:24 +01:00
Andreas Lauser a27a2c33a7 flow_ebos FIP: consider all pore volume modifiers
for now "all pore volume multipliers" means compressibility. the
storage term of the simulator includes them, so they need to be
considered when calculating the fluid in place as well.
2017-02-21 10:03:11 +01:00
Andreas Lauser 9df4b21369 flow_ebos: fix the calculation of the original fluid in place
for Norne the numbers are now very close to those of the ECL
reference. ("very close" means < 0.01 % deviation of pressure and
initial fluid volume for the field totals.)
2017-02-20 16:28:20 +01:00
Andreas Lauser 55547a1b86 flow_ebos FIP: try to fix hcpv and pres in the parallel case
the global reduction must be done _after_ the local computation, not
before it...

thanks to [at]blattms and [at]atgeirr.
2017-02-20 16:28:20 +01:00
Andreas Lauser d03dbb7e2c flow_ebos FIP: unify the parallel and non-parallel versions 2017-02-20 16:28:20 +01:00
Andreas Lauser 76a825f36d flow_ebos: make the FIP code consistent with flow_legacy
in particular, the rock compressibility effects are not considered in
the FIP numbers anymore. While I'm not sure if this is correct or not,
it at least makes the results consistent with those produced by
'flow_legacy'.
2017-02-20 16:28:20 +01:00
Andreas Lauser 6949de699f flow_ebos: improve the FIP code
in particular, it can now be called if the cache for the intensive
quantities is "cold".
2017-02-20 16:28:20 +01:00
Andreas Lauser b088711186 Merge pull request #1057 from babrodtk/whitespace_fixes
Minor whitespace fixes to be consistent with surrounding code
2017-02-15 18:29:24 +01:00
Andreas Lauser ec1f136f37 fix the build
and also, do not std::move a unique_ptr. (that's a quite strange
thing, semantically.)
2017-01-27 13:23:32 +01:00
Andreas Lauser 42ec0ca3c3 do not explicitly pass the permeability to the well model anymore
this information is already part of the EclipseState. The reason why
this should IMO be avoided is that this enforces an implementation
detail (ordering of the permeability matrices) of the simulator on the
well model. If this needs to be done for performance reasons, IMO it
would be smarter to pass an array of matrices instead of passing a raw
array of doubles.  I doubt that this is necessary, though: completing
the full Norne deck takes about 0.25 seconds longer on my machine,
that's substantially less than 0.1% of the total runtime.
2017-01-27 13:06:09 +01:00
Andreas Lauser 04a1c25ebf do not explicitly pass the permeability to the well model anymore
this information is already part of the EclipseState. The reason why
this should IMO be avoided is that this enforces an implementation
(ordering of the permeability matrices) the simulator on the well
model. If this needs to be done for performance reasons, IMO it would
be smarter to pass an array of matrices, instead of passing a raw
array of doubles.  I doubt that this is necessary, though: completing
the full Norne deck takes about 0.25 seconds longer on my machine,
that's substantially less than 0.1% of the total runtime.

in order to avoid code duplication, the permeability extraction
function of the RockFromDeck class is now made a public static
function and used as an implementation detail of the WellsManager.

finally, the permfield_valid_ attribute is removed from the
RockFromDeck class because this data was unused and not accessible via
the class' public API.
2017-01-27 12:51:12 +01:00
Andreas Lauser 1ae94c8db3 do not explicitly pass the permeability to the well model anymore
this information is already part of the EclipseState. The reason why
this should IMO be avoided is that this enforces an implementation
(ordering of the permeability matrices) the simulator on the well
model. If this needs to be done for performance reasons, IMO it would
be smarter to pass an array of matrices, instead of passing a raw
array of doubles.  I doubt that this is necessary, though: completing
the full Norne deck takes about 0.25 seconds longer on my machine,
that's substantially less than 0.1% of the total runtime.

in order to avoid code duplication, the permeability extraction
function of the RockFromDeck class is now made a public static
function and used as an implementation detail of the WellsManager.

finally, the permfield_valid_ attribute is removed from the
RockFromDeck class because this data was unused and not accessible via
the class' public API.
2017-01-27 12:51:12 +01:00
Andreas Lauser 7d5c5f8acc Merge pull request #1029 from totto82/bugfix_swatinit
BUGFIX Pass solution from flowEbos to ebos initially
2017-01-20 15:02:50 +01:00
Andreas Lauser e982ece15d update the dune.module file 2017-01-20 13:30:20 +01:00
Andreas Lauser ae38de70ef flow_ebos: update the solution of the eWoms model from the reservoir state before each time step
this is has become necessary by the recent SWATINIT changes and is
needed to calculate the fluid-in-place consistently as well as for
ebos to use the correct initial solution for the initial
linearization.
2017-01-16 12:42:35 +01:00
Andreas Lauser 30e9d3826d synchronize SimulatorFullyImplicitBlackoilEbos::run() with SimulatorFullyImplicitBlackoil::run() 2017-01-16 12:42:35 +01:00
Andreas Lauser d87b788d09 BlackoilModelEbos: make computeFluidInPlace() work unconditionally
i.e. it now works regardless of whether the cache for intensive
quatities is available or not.
2017-01-16 12:42:35 +01:00
Andreas Lauser 7a7ebc010f flow_ebos: remove the redundant gravity objects
the canonical source is now the EclProblem object.

v2: don't change the API of the DerivedGeology class. thanks to
    [at]atgeirr for noticing that this can be avoided.
2017-01-12 11:20:02 +01:00
Andreas Lauser 3a9146866a simplify BlackoilModelEbos::isParallel() 2017-01-11 18:57:47 +01:00
Andreas Lauser f808c5b681 SimulatorFullyImplicitBlackoilEbos: remove unused "allcells_" attribute 2017-01-11 18:53:06 +01:00