Commit Graph
100 Commits
Author SHA1 Message Date
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
Andreas Lauser 8c76bf5b9b FlowMainEbos: remove the redundant pointer to the MaterialLawManager 2017-01-11 17:16:46 +01:00
Andreas Lauser f2115b44ac BlackoilModelEbos: remove the last traces of "SolutionState"
it was not used for real for a while anyway.
2017-01-11 17:07:08 +01:00
Andreas Lauser b324d17003 small improvements to StandardWellsDense
the most significant change is that only a "PhaseUsage" object must be
passed to its constructor instead of a full "fluid object". also, the
pointers to the vector of "active" phases has been converted into a
full object. (this helps to avoid potential use-after-free errors.)
2017-01-11 17:02:20 +01:00
Andreas Lauser 12083ccfd0 BlackoilPropsAdFromDeck: don't rely on undefined behaviour when initializing the fluid system
in C++ references may be assumed to be non-null. thanks to
[at]atgeirr for pointing this out.
2017-01-09 12:08:29 +01:00
Andreas Lauser f50dc9507f fix a few pesky sign comparison warnings
the problem here is that some types used as the `BVector` template
parameters return signed integers for the `size()` method, others
return unsigned ones.
2017-01-09 12:05:32 +01:00
Andreas Lauser 5fd83985a9 port the RateConverter to use the FluidSystem instead of the old fluid property API
this makes the RateConverter stuff independent of Eigen and it
simplifies some things because the the old PVT API is designed as a
"bulk-with-derivatives" API while the rate converter code used it in
"single shot" mode without derivatives.
2017-01-02 13:19:25 +01:00
Andreas Lauser 66decb4bda BlackoilPropsAdFromDeck: let the BlackOilFluidSystem manage the low level PVT objects
this makes it easier to migrate code away from BlackoilPropsAdFromDeck.
2017-01-02 13:19:25 +01:00
Andreas Lauser ef731672c9 remove the BlackoilPropsAdInterface abstraction layer
instead, directly use BlackoilPropsAdFromDeck.
2017-01-02 13:19:23 +01:00
Andreas Lauser 98b9e2ef58 remove the phase enums from BlackoilPropsAdInterface
since the enums in BlackoilModelEnums.hpp are namespace-global this
does not require any code changes. (except replacing 'Liquid' by
'Oil', etc.)
2016-12-30 14:15:14 +01:00
Andreas Lauser fb770faca0 fix Dune 2.3 build issue 2016-12-30 11:46:27 +01:00
Andreas Lauser c880efae5b mostly eliminate Eigen in the FIP and VFP code
this code mostly used the Eigen vectors as arrays anyway, so let's use
`std::vector`.

also, this patch only "mostly eliminates" Eigen from from these parts
of the code because the source files of the VFP code still use
AutoDiffBlock; Unfortunately this cannot easily be changed because
`flow_legacy` depends on these methods. (`flow_ebos` does not use the
incriminating methods.)
2016-12-30 11:46:27 +01:00
Andreas Lauser ac4dcba7e0 BlackoilModelEnums: don't use high-level classes
I consider the blackoil model enums to be pretty low level while the
"FluidProperties" code is IMO quite high level. this, using the latter
to define the former constitutes a layering violation IMO. note that
the fix is to simply use the enums from opm-core directly.
2016-12-29 18:03:05 +01:00
Andreas Lauser 4020490a29 remove unused function Opm::detail::convergenceReduction() 2016-12-19 11:03:34 +01:00
Andreas Lauser f29dae5409 BlackoilDetails: split it in two
now we have BlackoilDetails.hpp which contains all stuff that is used
by flow_ebos as well as flow and which does not include anything from
Eigen, and we have BlackoilLegacyDetails.hpp which contains all stuff
that depends on Eigen (and is thus not required by flow_ebos)
2016-12-19 11:03:34 +01:00
Andreas Lauser a367eaf5fe add missing semicolon to fix the build
some versions of boost seem to be more picky about this than others...
2016-12-16 10:29:52 +01:00
Andreas Lauser 2761df3791 FlowMainEbos: fix the output of the initial condition
I probably did not see this warning when testing f7910af7d7 because
I'm currently flooded by deprecation warnings stemming from
Eigen. (these warnings are caused because I use Ubuntu 16.04 and an
old version of Eigen is cloned by the build system that is not system
installed.)
2016-12-15 09:57:53 +01:00
Andreas Lauser 1510db4bf6 Merge pull request #974 from andlaus/fix_assert
StandardWellsDense: fix assert for the 2p case
2016-12-12 19:20:43 +01:00
Andreas Lauser 34c4053c65 StandardWellsDense: fix assert for the 2p case
this wasn't noticed earlier because it only bites in the water-oil
case and only if NDEBUG is not defined.
2016-12-12 14:26:34 +01:00
Andreas Lauser c7807a99a2 Merge pull request #969 from andlaus/reset_locale
flow*: reset the locale settings on startup
2016-12-08 18:02:47 +01:00