Commit Graph

29 Commits

Author SHA1 Message Date
Andreas Lauser
0a9d6a0760 include missing header files
this makes the well model and the equil initializer header more autonomous.
2019-03-04 13:58:38 +01:00
Tor Harald Sandve
a5463ed1a0 Add support for using free boundary conditions in Flow
The OPM spesific keywords FREEBC[XYZ[-]] can be used to specify
boundary cells that are open. Default is a closed boundary.
2019-02-07 14:56:55 +01:00
Andreas Lauser
18e64d0e7e fix some masochistic compiler warnings for the GCC 9 pre-release
the flags which I used are
```
-pedantic \
-Wall \
-Wextra \
-Wformat-nonliteral \
-Wcast-align
-Wpointer-arith \
-Wmissing-declarations \
-Wcast-qual \
-Wshadow
-Wwrite-strings \
-Wchar-subscripts \
-Wredundant-decls \
-fstrict-overflow \
-O3 \
-march=native \
-DNDEBUG=1
```

note that some heavy filtering is not the worst idea because DUNE is
far from not emiting any warnings with these flags.

Also, there were some pesky warnings in test_ecl_output which I don't
know how to fix:

```
tests/test_ecl_output.cc:218:73: warning: missing initializer for member ‘Opm::data::Connection::effective_Kh’ [-Wmissing-field-initializers]
```
2019-01-09 09:34:26 +01:00
Tor Harald Sandve
656f055992 Blackoil: Prepare for 2p conditional storage of fluidstate
Also fix pseudo 2p case for ebos
2018-10-18 12:55:49 +02:00
Andreas Lauser
26e6d56930 do explicit put properties into the the Ewoms::Properties namespace anymore
instead, do it implicitly by using the BEGIN_PROPERTIES and
END_PROPERTIES macros.
2018-06-15 20:22:07 +02:00
Andreas Lauser
ae779f2132 make all headers autonomous again 2018-04-11 13:06:56 +02:00
Andreas Lauser
26228ec5f3 fix the issues that emerged in the context of [at]totto82's review 2018-04-05 19:31:55 +02:00
Andreas Lauser
54c96aa1c2 blackoil, ebos: implement non-trivial boundary conditions
with this, it is possible do define fluxes of conservation quantities
over the domain boundaries by specifying the thermodynamic state on
the boundary when using the black-oil model. The main motivation is
are thermal fluxes which are required to maintain geothermal
temperature gradients over time.
2018-04-05 19:31:55 +02:00
Andreas Lauser
4241986e94 equil initializer: use TEMPI to specify the initial temperature
this also implicitly takes care of RTEMPVD, RTEMP and all the other
ways of specifying the initial reservoir temperature.
2018-04-05 19:31:12 +02:00
Andreas Lauser
436c9f8791 rename the "grid manager" to "vanguard"
IMO the term "vanguard" expresses better what these classes are
supposed to do: level the ground for the cavalry. Normally this simply
means to create and distribute a grid object, but it can become quite
a bit more complicated, as exemplified by the vanguard classes of
ebos..
2018-02-08 16:26:58 +01:00
Andreas Lauser
2f00e7804a equil init: rename the files according to the eWoms standard convention
the eWoms file naming convention should probably be changed to the one
of the remaining OPM modules, but this is quite a bit of work and IMO
it is more important to be consistent within the module.
2018-01-02 14:28:06 +01:00
Andreas Lauser
3f875fb8f2 equel init: pass the type tag to the InitialStateComputer
also, get rid of Opm::extractPvtTableIndex()
2018-01-02 14:28:06 +01:00
Andreas Lauser
6871e1cf88 move the hydrostatic equilibrium code to its proper location and make it compile
this just moves the hydrostatic equilibrium code from its historc
location at opm/core to ebos/equil and adds minimal changes to make it
compile. this allows to clean up that code without disturbing the
legacy simulators.
2018-01-02 14:28:06 +01:00
Tor Harald Sandve
321af5ff4d Start using the BlackoilFluidState 2017-12-15 08:20:09 +01:00
Tor Harald Sandve
8ac306b50a Prepare flow for ebos initialization
Apply swatInit in the initialization
Stop using the equilGrid in the initialization code
Keep The initialFluidState until end of first time step to make it
possible for flow to output it.
2017-11-30 09:30:26 +01:00
Tor Harald Sandve
2070247244 Avoid shared pointe for MaterialLawManager 2017-11-21 13:28:53 +01:00
Tor Harald Sandve
5a9123c1b1 Use the Equil initializer directly
Do not relay on opm-core objects like phaseUsage and BlackoilState but
instead use the initializer directly.
2017-11-21 13:28:53 +01:00
Arne Morten Kvarving
b0ce46f46f adjust for changed ParameterGroup namespacing 2017-04-28 15:35:58 +02:00
Andreas Lauser
7a7d6d868d ebos: fix the interactions between SWATINIT and threshold pressures
hopefully this makes standalone `ebos` arrive at the same initial
condition as `flow_ebos` if both, SWATINIT and threshold pressures are
enabled. we need to calculate the initial condition twice either
threshold pressures and SWATINIT are enabled. (`ebos` and `flow_ebos`
diverged after OPM/opm-core#1129.)

the proposed patch is a kludge IMO, but in the light that in my
opinion, SWATINIT and threshold pressures are both physically not
justified and given the fact that SWATINIT must not be considered for
the threshold pressues should be considered to be a bug of the
reference simulator, I think the patch is okay.
2017-01-18 16:46:53 +01:00
Tor Harald Sandve
ef3de796bc Pass enableSwatinit to the OPM initialisation
Only apply swatinit in the initialization if Swatinit is enabled.
2017-01-02 14:27:14 +01:00
Andreas Lauser
8c6e6dc410 ebos: refactor the way SWATINIT is dealt with
we now store the maximum oil-water capillary pressure and apply it to
the material parameters later. this simplifies things within the
EquilInitializer somewhat and also allows external code (i.e.,
flow_ebos) to choose when SWATINIT gets applied.
2016-12-16 18:48:34 +01:00
Andreas Lauser
46071d5e82 ebos: avoid a few copies for opm-parser object
this is done by simply making these variables const references. these
were overlooked in the big opm-parser pointer-to-references-spree...
2016-12-16 18:45:43 +01:00
Andreas Lauser
36c010c956 ebos: replace the opm-parser related pointers/smart pointers by references
this seems to be the spirit of the season. note that now the deck
object must be copied, but I suppose that copying it is pretty cheap.
2016-12-07 20:24:48 +01:00
Robert Kloefkorn
4921f7d817 When using matrialLawManager then elemIdx has to be used. 2016-12-05 13:47:04 +01:00
Robert Kloefkorn
e3286b3ec0 EclEquil: use std::vector to store mappings. 2016-12-02 18:55:27 +01:00
Robert Kloefkorn
e240cf8eae [bugfix] fix equil and grid mappings in initialization. 2016-12-02 18:54:14 +01:00
Andreas Lauser
a3ddd2066b ebos: make it possible to easily disable SWATINIT
in flow_ebos, this code collides with the flow part.
2016-11-30 14:20:44 +01:00
Andreas Lauser
c4c00bdaaa implement two-phase blackoil simulations 2016-11-22 15:22:41 +01:00
Andreas Lauser
759c2dbdaa move all applications into their top-level directory
thanks to [at]akva2 for the suggestion.
2016-11-11 15:04:04 +01:00