Commit Graph
100 Commits
Author SHA1 Message Date
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 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 0df880ce43 cdash: update dropsite 2015-11-11 16:50:25 +01:00
Andreas Lauser 651bd91482 use the error macros from opm-common 2015-10-12 15:24:59 +02:00
Andreas Lauser 72b0cb2c3e use the error macros from opm-common 2015-10-08 12:08:28 +02:00
Andreas Lauser f46189ee1e restore dunecontrol compatibility after the opm-cmake -> opm-common rename 2015-09-08 11:57:14 +02:00
Andreas Lauser 5eef205551 only initialize the satfuncs once
this makes the main files more similar to the primary simulator (i.e., flow.cpp)
2015-09-02 14:56:38 +02:00
Andreas Lauser 73710a01d2 move the code which creates a compressed to cartesian cell index map to a separate free function 2015-09-02 14:50:41 +02:00
Andreas Lauser 9515ec6cfb BlackoilPropsAdFromDeck: improve the documentation for the constructors 2015-09-02 12:32:41 +02:00
Andreas Lauser 0e5d8da66b adapt to the change of the API due to using compressed instead of cartesian indices 2015-09-02 12:32:41 +02:00
Andreas Lauser a394af6734 flow: initialize the parameters for the material law only once
this saves some memory and some time at initialization.
2015-09-02 12:32:41 +02:00
Andreas Lauser 78f7097798 adapt to the opm-core API change in the SaturationFunctionsFromDeck to always use non-uniform tables 2015-06-26 15:32:10 +02:00
Andreas Lauser 659f9e76e4 Merge pull request #3 from atgeirr/andlaus-simplify_simulator
Suggested changes to PR
2015-05-29 15:44:55 +02:00
Andreas Lauser 5940a007d9 Merge pull request #1 from atgeirr/andlaus-simplify_simulator
Use unique_ptr instead of shared_ptr.
2015-05-29 15:43:02 +02:00
Andreas Lauser 9c78d5ef00 do not use std::shared_ptr where it is deemed inappropriate by the maintainers
note that I don't agree with this change and will assume no
responsibility if something goes down the gutter.
2015-05-29 14:36:34 +02:00
Andreas Lauser 496c32d2a6 do not use std::shared_ptr where it is deemed inappropriate by the maintainers
note that I don't agree with this change and will assume no
responsibility if something goes down the gutter.
2015-05-29 14:34:47 +02:00
Andreas Lauser 2b085e0062 fully implicit simulators: various cleanups
these are mostly stylistic: the function bodies of most new methods
have been moved to the _impl.hpp file and the Simulator classes are
now templated on the grid type, so it should be not too hard to switch
them to Dune::CpGrid.
2015-05-29 12:59:40 +02:00
Andreas Lauser 5666df807b some stylistic changes
in particular, where to put empty lines and spaces. Also added a
copyright statement for myself to a few files and added a comment. the
new comment was requested by [at]bska, the rest was requested by
[at]atgeirr.
2015-05-29 12:35:56 +02:00
Andreas Lauser 01555da823 remove the run() method from SimulatorFullyImplicitCompressiblePolymer
With this the simulator is basically done, but since
FullyImplicitCompressiblePolymerSolver has not yet been converted to
the NewtonSolver plus Model approach, the solver cannot be removed and
thus still contains quite a bit of copy-and-pasted code.
2015-05-28 13:56:07 +02:00
Andreas Lauser d27fb2bc45 properly use the SimulatorBase class for SimulatorFullyImplicitBlackoilPolymer and SimulatorFullyImplicitCompressiblePolymer 2015-05-28 13:56:07 +02:00
Andreas Lauser 0f1a7a16d7 unify the run() methods and the constructors of the 2p-compressible and the flow_polymer with the one from flow 2015-05-28 13:56:07 +02:00
Andreas Lauser a816ab9a0c start to use the SimulatorBase class for SimulatorFullyImplicitCompressiblePolymer
since SimulatorFullyImplicitCompressiblePolymer is now a template, the
opaque pointer stuff is also removed and the contents of the .cpp file
basically became _impl.hpp. for SimulatorFullyImplicitBlackoilPolymer,
the opaque pointer stuff was removed for the same reasons as for
SimulatorFullyImplicitBlackoil.

the actual unification of code is not yet done, but this patch points
out the direction of where this will go.

Also note that some synchronization with the ordinary blackoil
simulator (FLOW) was necessary to make it compile.

Finnally, the parser currently likes to throw an exception (also for
the opm-polymer master) when eating the opm-data polymer test
case. This prevented me from properly testing this patch:

```
and@heuristix:~/src/opm-polymer|simplify_simulator > ./bin/flow_polymer deck_filename=/home/and/src/opm-data/polymer_test_suit/simple2D/2D_THREEPHASE_POLY_HETER.DATA

================    Test program for fully implicit three-phase black-oil flow     ===============

---------------    Reading parameters     ---------------
deck_filename found at /, value is /home/and/src/opm-data/polymer_test_suit/simple2D/2D_THREEPHASE_POLY_HETER.DATA
output not found. Using default value 'true'.
output_dir not found. Using default value 'output'.
Program threw an exception: IOConfig: Reading GRIDFILE keyword from GRID section: Output of GRID file is not supported
terminate called after throwing an instance of 'std::runtime_error'
  what():  IOConfig: Reading GRIDFILE keyword from GRID section: Output of GRID file is not supported
Aborted
```
2015-05-28 13:56:07 +02:00
Andreas Lauser 553f32e6cf SimulatorBase: move the new method bodies from the .hpp to the _impl.hpp file 2015-05-28 13:55:54 +02:00
Andreas Lauser 662cd9791e SimulatorBase: only care about the solver in the run() method
this is necessary because some older simulations only provide the
full-fledged solver class but no physical model.

(also, this allows to use something else than the standard newton
solver.)
2015-05-28 13:55:54 +02:00
Andreas Lauser a154c8394d Simulator, Model: add everthing which is required by the polymer simulators
basically, this adds some hooks to the SimulatorBase class and the
model and introduces a few types to the SimulatorTraits.
2015-05-28 13:55:54 +02:00
Andreas Lauser 45fb80f547 SimulatorBase: remove the opaque pointer pattern
because the class is (and will stay) a template and for templates the
benefits of the opaque pointer pattern go from "small" to "zero".
2015-05-28 13:55:53 +02:00
Andreas Lauser 3eec9f3432 introduce a "SimulatorBase" class
so, far it is just a copy of the old "SimulatorFullyImplicitBlackoil"
class (which became a simple forward to the base class). The intention
is to unify the common simulator code in this class to avoid excessive
copy-and-pasting.
2015-05-28 13:55:53 +02:00
Andreas Lauser 9abbc45571 remove the obsolete 'm4' subdirectory
as far as I can see, it provided M4 macros for autotools based
projects which wanted to use OPM. I have severe doubts that this was
used by anyone because it most likely does not even work. (e.g. the M4
macros does not seem to specify the ERT and opm-parser prerequisites.)

Note that I'm not 100% sure of the above, so if I'm wrong, state so
loudly and I'll close the PR...
2015-04-10 16:17:14 +02:00
Andreas Lauser a9d0306fe8 reduce the default optimization level from -O3 to -O2
-O3 is sometimes declared "unsafe"
(cf. https://wiki.gentoo.org/wiki/GCC_optimization ) and it seems like
it bit us in https://github.com/OPM/opm-material/issues/23 if GCC 4.8
was used. so let's play safe and use -O2 for now...
2015-04-10 15:09:23 +02:00
Andreas Lauser e2180effce FindCXX11Features.cmake: check for the c++-2011 "final" specifier 2015-04-10 15:09:21 +02:00
Andreas Lauser e0dd62a226 only generate debugging symbols for the build types "Debug" and "RelWithDebInfo" 2015-04-10 15:09:21 +02:00
Andreas Lauser 89129aaaf6 build system: do not separate the debugging symbols by default
the reason is that the tools for profiling and for coverage analysis
(i.e., gprof and gcov) have trouble with this and crash. if you want
this to be enabled for whatever reason, use the cmake flag
-DSTRIP_DEBUGGING_SYMBOLS=ON or pass configure the
--enable-strip-debug option.
2015-04-10 15:09:20 +02:00
Andreas Lauser 2bb5159a97 FindAlugrid.cmake: do not try to include the whole grid
first this makes the test very slow, second (and more importantly) it
makes the test fail on dune master as the header relies on the
presence of the DUNE_GRID_VERSION* macros which are not present at the
configure stage of the build...
2015-04-10 15:09:19 +02:00
Andreas Lauser 50ec899a3d eWoms: silence an annoying bogous deprecation warning on Dune 2.4 2015-04-10 15:09:17 +02:00
Andreas Lauser fa04799855 remove the obsolete 'm4' subdirectory
as far as I can see, it provided M4 macros for autotools based
projects which wanted to use OPM. I have severe doubts that this was
used by anyone because it most likely does not even work. (e.g. the M4
macros does not seem to specify the ERT and opm-parser prerequisites.)

Note that I'm not 100% sure of the above, so if I'm wrong, state so
loudly and I'll close the PR...
2015-04-10 15:09:16 +02:00
Andreas Lauser 87afe12cda Finddune-grid.cmake: always enable the experimental grid extensions
this is now done by a config.h macro. The reason is that quite a bit
of code depends on boundary IDs which are only available as an
"experimental" grid extension in recent Dune releases...
2015-04-10 15:06:06 +02:00
Andreas Lauser ba4fca5a77 Revert "also pass the deck to the output writer"
This reverts commit 88730e855f.
2015-03-31 12:11:45 +02:00
Andreas Lauser 239547e794 Revert "pass the deck to the output writer"
This reverts commit 71987ae3b038c141a673ae1c1037f63ed695e595.
2015-03-31 12:10:16 +02:00
Andreas Lauser 206d7b56e4 pass the deck to the output writer 2015-03-26 17:33:20 +01:00
Andreas Lauser 88730e855f also pass the deck to the output writer 2015-03-26 17:33:13 +01:00
Andreas Lauser f0c3a6f892 add glue code needed for thermal gas PVT 2015-03-17 13:34:29 +01:00
Andreas Lauser 924818f445 add glue code needed for thermal oil PVT 2015-03-17 13:34:29 +01:00
Andreas Lauser debb8a1a04 add glue code needed for thermal water PVT 2015-03-17 13:34:29 +01:00
Andreas Lauser ff09e87787 add the glue code required for temperature dependent viscosity 2015-02-03 15:27:38 +01:00
Andreas Lauser 47fe10e8fb adapt to the removal of the "strict parsing" concept 2014-12-09 14:20:26 +01:00
Andreas Lauser 69c4a6d591 adapt to the removal of the "strict parsing" concept 2014-12-09 14:18:42 +01:00
Andreas Lauser 6e52a7bc3b set CMake policies CMP0026 and CMP0048 to OLD
this is required for CMake 3.0 to stop it complaining that we access
the LOCATION target property and set the *_VERSION_* variables ourselves.
2014-12-08 15:24:49 +01:00
Andreas Lauser c3304ed1a1 FindQuadmath: add -fext-numeric-literals if the compiler supports it
this is required for GCC >= 4.8 to support the 'Q' suffix for floating
point literals (which are used in the quadmath.h header)

In order to prevent compilers which eat the flag but do not support it
from complaining constantly, it is tested for with "-Werror" enabled...
2014-12-08 15:24:48 +01:00
Andreas Lauser 57879ab6c9 make the regex test more thorough
it seems like the std::regex delivered up to gcc 4.8 has problems with
constructs such as ".+". (at least if they appear at the end of a
regex...)
2014-12-08 15:24:47 +01:00
Andreas Lauser 926685cc2c ERT: link to the threads library of the OS
this is required to make the opm-core build succeed if ERT was build
with -DBUILD_SHARED_LIBS=OFF . (without it, I get errors like

    /home/and/src/ert/devel/libert_util/src/thread_pool_posix.c:328: error: undefined reference to 'pthread_create'
2014-12-08 15:24:46 +01:00
Andreas Lauser cd8e4ad6a3 ewoms: make it possible to use the dune-alugrid module instead of the ALUGrid manager in dune-grid 2014-12-08 15:24:45 +01:00
Andreas Lauser 37ab6ef8a0 add support for the new DUNE-ALUGrid module
this is basically the dune-grid grid manager for ALUGrid properly
out-sourced into an own module. (it does not require an external
library anymore, so it simplifies the build quite a bit.) Also, the
DUNE-ALUGrid module has quite a few new features and performance
improvements compared to the old code from dune-grid. For details, see

http://users.dune-project.org/projects/dune-alugrid
2014-12-08 15:24:44 +01:00
Andreas Lauser 444e2be623 Build system: mark ERT as REQUIRED
de facto, this does not change anything because opm-parser is required
and it has a hard dependency on ERT. It is good style to declare all
prerequisites explicitly in each module, though. Thanks to [at]bska
for the catch.
2014-12-08 15:24:43 +01:00
Andreas Lauser 05a607c7c9 use extended regular expressions in the test for std::regex
for some compilers (e.g., GCC < 4.9) the default is buggy and
opm-parser thus uses extended expressions...

thanks to [at]bska for digging this up!
2014-12-08 15:23:51 +01:00
Andreas Lauser 4a7dea3747 FindCXX11Features: check for a usable std::regex
and add a config.h variable in the opm-parser test.
2014-12-08 15:23:28 +01:00
Andreas Lauser 8119580a8d Find-ewoms.cmake: update prerequisites 2014-12-08 15:23:07 +01:00
Andreas Lauser dff4e8f51c add the boost::regex library as a prerequisite
this is required for regex-matching keywords. Once GCC 4.9 is the
minimum compiler version to be supported, this can be dropped in favor
of std::regex ...
2014-12-08 15:23:06 +01:00
Andreas Lauser 526af686d8 Findopm-parser.cmake: Fix it up, next try
thanks to Arne Morten Kvarving, Bård Skaflestad and Roland Kaufmann
for the discussion.
2014-12-08 15:22:56 +01:00
Andreas Lauser c3d73e6de8 fix typo 2014-12-03 17:03:25 +01:00
Andreas Lauser 1b22d3ab6b RateConverter: add missing call to averageTemperature()
thanks to [at] bska for noticing this!
2014-12-02 15:56:17 +01:00
Andreas Lauser 4e3a69cc90 PVT properties: allow them to be temperature dependent
Note that this patch does not introduce any real temperature
dependence but only changes the APIs for the viscosity and for the
density related methods. Note that I also don't like the fact that
this requires so many changes to so many files, but with the current
design of the property classes I cannot see a way to avoid this...
2014-12-01 20:06:02 +01:00
Andreas Lauser 9e93fa2298 register the transmissibilities at the EcliseWriter
missing: the simulator using dune-cornerpoint. Once again, this is
because there is no good way to convert an intersection to a unique
global index (yet).
2014-11-21 13:20:53 +01:00
Andreas Lauser d36d7e81cb allow temperature dependent PVT properties
this has the nice side effect that non-uniform temperature fields also
become supported as long as they are "impressed" externally...
2014-11-20 19:25:18 +01:00
Andreas Lauser 7c122c18d3 use the TLMIXPAR keyword directly
instead of using a table class. This is because the keyword is not a
table...
2014-10-14 12:29:31 +02:00
Andreas Lauser 4f44cde846 fix the fallout caused by the slightly too premature merge of PR #213
I should have put some message at the end of that PR when the API of
opm-parser changed...
2014-10-10 16:17:41 +02:00
Andreas Lauser b4f9a49bd6 fixup! sim_fibo_ad*: print the log messages from the parser/EclipseState 2014-10-06 10:12:57 +02:00
Andreas Lauser 566c7c03d7 sim_fibo_ad*: print the log messages from the parser/EclipseState 2014-10-03 15:53:57 +02:00
Andreas Lauser 7e472d66e6 Merge pull request #209 from atgeirr/improve-subset-superset
Improve performance of subset() and superset().
2014-09-25 14:22:30 +02:00
Andreas Lauser 0f436e12c9 adapt the the table related API changes of opm-parser 2014-09-18 16:49:29 +02:00
Andreas Lauser 9fbf4b2b3b adapt the the table related API changes of opm-parser 2014-09-17 13:28:39 +02:00
Andreas Lauser 5f61781afd sim_fibo_ad*: change the default for the use_cpr parameter from false to true
SPE9 and Norne are basically unusable if UMFPack is used as linear solver...
2014-09-03 13:35:28 +02:00
Andreas Lauser faa98b4f74 add a unit test for the implementation of transmissibilty multipliers in DerivedGeology
for the legacy C-style grid the unit test is more or less complete (it
does not test FAULTMULT and NNC, etc, but these could be added with
sufficient determination), for Dune::CpGrid it currently does not
really check anything because I have not found a good way for CpGrid
to produce the "global" intersection index of an intersection...
2014-07-28 11:30:13 +02:00
Andreas Lauser e07ef16a45 implement pore volume and transmissibility multipliers
this means that the NTG, MULTPV and MULT[XYZ]-? keywords are now
supported.

Actually FAULTS and MULTFAULT are supported too, but that's abstracted
away by opm-parser's TransMult class. (Kudos to [at]joakim-hove for
implementing this.)
2014-07-28 11:30:13 +02:00
Andreas Lauser 63eaecf246 DerivedGeology: pass the EclipseState object to its constructor
this is required to implement pore volume and permeability multipliers
as discussed with [at]bska and [at]joakim-hove.

Note that this implies that the DerivedGeology class can't be
instantiated anymore if there is no EclipseState object. Thus all code
paths and tests that don't load a deck are removed by this patch. If
this is undesireable, there are two options: First, don't require
EclipseState for DerivedGeology which would imply to make the about 10
required multiplier functions part of the
BlackoilPropertiesAdInterface, or second, one can copy-and-paste the
DerivedGeology class as it was before this patch, derive from a newly
introduced DerivedGeologyInterface and pass DerivedGeologyInterface
objects to the simulator. IMHO, the second solution would be a bit
better but it would involve substantial overhead to implement and to
maintain it.

Anyway, in the mean time simulators cannot be instantiated without
decks.
2014-07-24 16:37:38 +02:00
Andreas Lauser 543d8d75b6 pass the DerivedGeology to the simulators
this was decided to be a good idea by [at]bska. (If I interpreted him
correctly, obviously.)
2014-07-24 16:37:38 +02:00
Andreas Lauser 8645d2c207 pass the EclipseState and the PhaseUsage objects to EclipseWriter 2014-07-18 11:22:28 +02:00
Andreas Lauser 6727fe28fe adapt construction of to EclipseWriter
i.e., don't pass around the UnstructuredGrid object directly, but use
the "generic" interface which is also used in the case Dune::CpGrid.
2014-07-14 17:55:30 +02:00
Andreas Lauser 9169bee053 use extended regular expressions in the test for std::regex
for some compilers (e.g., GCC < 4.9) the default is buggy and
opm-parser thus uses extended expressions...

thanks to [at]bska for digging this up!
2014-07-08 13:24:34 +02:00
Andreas Lauser 4e298bb4f9 FindCXX11Features: check for a usable std::regex
and add a config.h variable in the opm-parser test.
2014-07-07 17:58:07 +02:00
Andreas Lauser af60949051 add the boost::regex library as a prerequisite
this is required for regex-matching keywords. Once GCC 4.9 is the
minimum compiler version to be supported, this can be dropped in favor
of std::regex ...
2014-07-02 11:25:57 +02:00
Andreas Lauser 5cdece9e3e Findopm-parser.cmake: Fix it up, next try
thanks to Arne Morten Kvarving, Bård Skaflestad and Roland Kaufmann
for the discussion.
2014-07-02 11:24:14 +02:00
Andreas Lauser 778e87d710 Findopm-parser.cmake: invoke FindBoost unconditionally
even if boost was found previously, it might still miss a few
libraries. thanks to @akva2 for catching this.
2014-06-16 15:50:02 +02:00
Andreas Lauser d530dcfe17 Findopm-parser.cmake: make sure that the ERT libraries are available
and some other minor cleanups to the module. For me it still works,
but this being the build system, I can't guarantee more...
2014-06-16 15:50:01 +02:00
Andreas Lauser 99b4cf5067 allow the opm-parser test to fail
since the module currently calls the tests for cJSON and boost with
the REQUIRED flag set, cmake aborts completely even if opm-parser is
not REQUIRED. For modules which depend on opm-core that's currently a
non-issue because core has a requirement on parser, but the parser may
be useful for external projects as well, so we play nice.

Also, with this patch the config.h variable HAVE_OPM_PARSER is set...
2014-06-16 15:50:00 +02:00
Andreas Lauser 7c767e8686 sim_fibo_ad_cp: make it compile
The constructor for the simulator class changed recently...
2014-06-13 18:07:51 +02:00
Andreas Lauser 776f5e9005 explicitly include <array>
it _seems_ like this causes the build  failures of the RHEL 5 build at
statoil: http://opm-project.org/CDash/viewBuildError.php?buildid=18933
2014-06-09 13:22:40 +02:00
Andreas Lauser 0219f83563 glue in support for property modifiers
i.e. reading the grid properties from EclipseState instead of from the
raw deck. This requires that all deck files exhibit a GRID and a
SCHEDULE section or else EclipseState will throw in the constructor.
2014-06-09 12:36:46 +02:00
Andreas Lauser 0dfa8680f7 use the EclipseState instead of the raw deck
this is needed to enable property modifiers...
2014-06-07 18:45:46 +02:00
Andreas Lauser 67b5cb263e fix a pretty simple compile issue
This was caused by the new multi-region PVT support in opm-core.
2014-06-05 14:39:11 +02:00
Andreas Lauser 2fda604c3b fix a few annoying but harmless warnings appearing on newish compilers
(i.e. clang 3.3 in my case.)
2014-05-13 13:39:27 +02:00
Andreas Lauser 756de358c0 implement multi-region PVT
this requires the multi-region PVT patch for opm-core
2014-05-13 13:39:26 +02:00
Andreas Lauser ebb1da0662 replace all boost:: smart pointers by their std:: equivalents
The std variants are part of c++-2011 and it's 2014 now. (they are
also available in GCC 4.4.)
2014-05-02 16:17:54 +02:00
Andreas Lauser b7f3ee7b79 rename "newParserDeck" to "deck" 2014-05-02 15:48:04 +02:00
Andreas Lauser dbb19403fc completely remove the EclipseGridParser from the module 2014-05-02 15:47:52 +02:00