Commit Graph

761 Commits

Author SHA1 Message Date
Markus Blatt
39979ad3f7 Only access globalTransmissibility on IO rank in EclWriter.
For other ranks this will not be available in the future.
2019-10-14 14:32:22 +02:00
Markus Blatt
5812b767ef Always initialize mpiRank in constructor and use it consistently.
We cannot use grid->comm().rank() to check whether we are an
IORank since for an unbalanced grid this will always be zero in the
master branch.
2019-10-14 14:32:22 +02:00
Markus Blatt
cb396dfac6 Make sure subclass functions are not called before subclass is initialized.
This at least slightly improves the old design. In that design the
subclass had no own constructor but inherited the one of the base class.
That base class constructor called certain subclass
functions (createGrids_, filterConnections_, updateOutputDir_, and
finalizeInit_)that would initialize raw pointers of the
subclass. Hence subclasses where not allowed to have non-pod members
and those used later (e.g. deleted in the destructor) had to be
initialized in these functions.

The new (still ugly) design introduces constructors into the
subclasses and skips inheriting constructors. Now one must call a base
class function classImplementationInit which will still call the
functions createGrids_, filterConnections_, updateOutputDir_, and
finalizeInit_, but at least at this point the baseclass is fully
constructed and the subclass is constructed as much as
possible/needed (non-pod types will be initialized now.)
2019-10-14 14:32:22 +02:00
Markus Blatt
4e6bbddbf5 Use global grid only on IO process in EclWriter 2019-10-14 14:32:22 +02:00
Markus Blatt
bcff77fb4a Construct and ECLTranmissibility only on IO process, 2019-10-14 14:32:22 +02:00
Markus Blatt
42c20171eb make and use equilGrid only on IO process.
With the change of CPgrid to only holding the grid on one process
it will be an empty grid on all other processes. This has really
strange side effects like Schedule::filterConnections removing all
well perforations on theses processes.
2019-10-14 14:32:22 +02:00
Markus Blatt
5001645d6a Make code compile without MPI. 2019-10-14 14:32:22 +02:00
Arne Morten Kvarving
7efbee9fb0 changed: avoid usage of equilGrid on non-root processes 2019-10-14 14:32:22 +02:00
Joakim Hove
1d9a3e3d35 Adapt to removal of GridProperty::iget() 2019-10-14 13:31:11 +02:00
Atgeirr Flø Rasmussen
40f91b0e32
Merge pull request #2034 from totto82/sync_restart
sync restart
2019-10-14 13:26:57 +02:00
Tor Harald Sandve
86ef30950d Add logging in ebos
With this .PRT and .DBG files are created also for ebos
2019-10-14 10:39:10 +02:00
Halvor M. Nilsen
d873ae165d Enable single-phase runs. 2019-10-11 08:19:18 +02:00
Markus Blatt
e4e8425bad
Merge pull request #1858 from dr-robertk/PR/cleanup-sparsematrixadapter
Cleanup SparseMatrixAdapter.
2019-10-09 12:44:52 +02:00
Bård Skaflestad
1b610f06a4 Prepare for Making Summary Writing Independent of LibECL
This commit adds requisite libecl includes that are needed as an
intermediate steps for enabling new summary writing independent of
libecl.
2019-10-04 20:32:09 +02:00
Atgeirr Flø Rasmussen
2b9e30df33
Merge pull request #2036 from blattms/improve-vanguard-layering-violation
Make sure subclass functions are not called before subclass is initia…
2019-10-02 14:57:00 +02:00
Robert Kloefkorn
28cf1c17be [bugfix][EclWriter] GlobalGrid and GridView can potentially differ and
that is why types should be extracted from the structures that provide the objects.
2019-10-02 12:48:12 +02:00
Markus Blatt
a0fa87e81f Make sure subclass functions are not called before subclass is initialized.
This at least slightly improves the old design. In that design the
subclass had no own constructor but inherited the one of the base class.
That base class constructor called certain subclass
functions (createGrids_, filterConnections_, updateOutputDir_, and
finalizeInit_)that would initialize raw pointers of the
subclass. Hence subclasses where not allowed to have non-pod members
and those used later (e.g. deleted in the destructor) had to be
initialized in these functions.

The new (still ugly) design introduces constructors into the
subclasses and skips inheriting constructors. Now one must call a base
class function classImplementationInit which will still call the
functions createGrids_, filterConnections_, updateOutputDir_, and
finalizeInit_, but at least at this point the baseclass is fully
constructed and the subclass is constructed as much as
possible/needed (non-pod types will be initialized now.)
2019-10-01 21:18:17 +02:00
Atgeirr Flø Rasmussen
96af6ca5f0
Merge pull request #2023 from totto82/fix_solvent_restart
Fix solvent restart
2019-10-01 15:35:22 +02:00
Tor Harald Sandve
f83e99c6aa sync restart 2019-10-01 14:30:11 +02:00
Tor Harald Sandve
afba6c8e8e Fix solvent restart 2019-10-01 13:07:29 +02:00
Bård Skaflestad
d979fb0fae Blackoil Output: Chase API Change in SummaryNode Class
In particular, the .type() function is renamed to .category(), and
it no longer returns a LibECL type.  Similarly, the .num() function
has been renamed to .number().
2019-09-30 15:00:05 +02:00
Bård Skaflestad
fabc067b5e Blackoil Output: Don't Include "eclwriter.hh"
The EclWriter class depends on the EclOutputBlackOilModule, not the
other way around.  This removes a cyclic include.
2019-09-30 14:47:50 +02:00
Tor Harald Sandve
dfede36018 Make is possible to test driftCompensation i Flow, Default is still false 2019-09-25 09:03:32 +02:00
Joakim Hove
06107450d6 Uuse new EquilRecord from opm-common 2019-09-23 21:42:41 +02:00
Joakim Hove
bbb9cd3483 Pass sim start argument to SummaryState constructor 2019-09-20 07:40:04 +02:00
Arne Morten Kvarving
8d78334e21 changed: ewoms/io -> opm/models/io 2019-09-19 11:17:12 +02:00
Arne Morten Kvarving
1aba020ea3 changed: ewoms/disc -> opm/models/discretization 2019-09-19 11:16:26 +02:00
Arne Morten Kvarving
d3d9831fc3 changed: ewoms/common -> opm/models/utils 2019-09-19 11:14:36 +02:00
Arne Morten Kvarving
7048589ec1 changed: ewoms/models/blackoil -> opm/models/blackoil 2019-09-19 11:12:45 +02:00
Arne Morten Kvarving
681672660a changed: ewoms/parallel -> opm/models/parallel 2019-09-16 09:52:49 +02:00
Arne Morten Kvarving
5599bb6d8c changed: namespace Ewoms -> namespace Opm 2019-09-05 17:14:38 +02:00
Atgeirr Flø Rasmussen
aff158566e
Merge pull request #1990 from akva2/use_opm_grid_region_mapping
changed: remove duplicated regionmapping class
2019-09-05 12:39:33 +02:00
Joakim Hove
ef3a159e89
Merge pull request #1986 from joakim-hove/enum-refactor
Adapt to enum changes
2019-09-04 16:29:32 +02:00
Arne Morten Kvarving
e1696e6d5b changed: remove duplicated regionmapping class
use version from opm-grid
2019-09-04 15:47:52 +02:00
Joakim Hove
3d36565db7 Adapt to enum changes 2019-09-03 22:18:34 +02:00
Joakim Hove
750184cdf6 Add reportStep argument to Schedule::actions() 2019-08-29 19:38:27 +02:00
Joakim Hove
9b4c9e7dae Add applyActions() to Simulator 2019-08-19 16:26:22 +02:00
Andreas Lauser
993f1133c8 enable the foam extension for ebos/mebos 2019-08-09 11:04:45 +02:00
Atgeirr Flø Rasmussen
12032203b3 Improve out-of-range check for extra components. 2019-08-07 12:03:43 +02:00
Atgeirr Flø Rasmussen
dd612c58a2 Make ebos variants compile. 2019-08-07 10:39:16 +02:00
Franz G. Fuchs
7fb90bff47 Use foam module. 2019-08-07 10:39:16 +02:00
Andreas Thune
e4098df759 Allow for different edge weight methods during load balancing 2019-07-23 10:41:27 +02:00
Arne Morten Kvarving
911727527b quell some unused parameter warnings 2019-07-08 12:14:24 +02:00
Andreas Lauser
c67b9e66d3 ebos: by default, do not abort the simulation as quickly 2019-06-27 15:51:40 +02:00
Tor Harald Sandve
e2420a4361
Merge pull request #1916 from andlaus/abort_on_unknown_parameters
mebos, flow: adapt to the eWoms changes in handling unknown parameters
2019-06-27 14:59:35 +02:00
Tor Harald Sandve
fd26b61599
Merge pull request #1907 from andlaus/improve_time_integration
Improve time integration
2019-06-27 14:08:07 +02:00
Andreas Lauser
1bbf18d7c8 mebos, flow: adapt to the eWoms changes in handling unknown parameters
for `flow`, there's no change compared to the current behavior, `ebos`
and its variants will complain when it encounters unused parameters.
2019-06-27 11:51:28 +02:00
Kai Bao
9a2fcdbfd5 fixing warnings in other folder under opm-simulators 2019-06-26 10:48:41 +02:00
Andreas Lauser
c2aebbb5da EclProblem: use the generic time integration mechanism
i.e., the EclProblem does no longer need to implement the
`timeIntegration()` method itself. since `flow` does not use this code
path, it is unaffected.
2019-06-25 12:39:00 +02:00
Andreas Lauser
626e8dd243 ebos: set the default for the number of threads to 2 if openMP is available
this value is was chosen to exactly replicate `flow`'s behavior. IMO,
it would be less surprising to set the default to `1`, i.e., the user
needs to specify `--threads-per-process=$N` explicitly if
multithreaded linearization ought to be used.
2019-06-24 14:23:55 +02:00
Andreas Lauser
c0b48e28c3
Merge pull request #1902 from totto82/fix_ebos_ecl_tuning2
Only apply timestep after event at the beginning of an episode
2019-06-21 11:02:56 +02:00
Tor Harald Sandve
4b1544469d Only apply timestep after event at the beginning of an episode 2019-06-21 08:43:13 +02:00
Arne Morten Kvarving
76eab9e160 fixed: unused variable warning without MPI 2019-06-19 11:57:56 +02:00
Joakim Hove
2950faece0 Extract the Summary::eval() call from the output call 2019-06-19 09:51:46 +02:00
Joakim Hove
24e3afc544
Merge pull request #1887 from joakim-hove/remove-unused-args
Remove unused arguments from write task
2019-06-14 16:05:56 +02:00
Joakim Hove
e5d2d70ee5 Remove unused arguments from write task 2019-06-14 14:44:06 +02:00
Tor Harald Sandve
ba3598a6ae Let the output writer determine what to write in ebos 2019-06-14 13:57:41 +02:00
Tor Harald Sandve
edbc28f46c
Merge pull request #1879 from andlaus/mebos
add `mebos`, a multiplexed ebos variant
2019-06-13 11:03:38 +02:00
Andreas Lauser
ca8ea76818 add mebos, a multiplexed ebos variant
`mebos` works similarly as `flow`, but in contrast to `flow`, `mebos`
only creates the deck in the common code path whilst the
'EclipseState' and the other higher-level parser objects are always
created internally by the vanguard. this approach avoids code
duplication and the worst effects of parser API creep.

to avoid having to compile non-trivial compile units multiple times,
the actual code of the variants is moved into `ebos_$VARIANT.{hh,cc}`
files and the respective compile units are each put into a small
static library whilst the main function of said libraries are invoked
by either the multiplexed or the respective specialized simulator's
`main()`. This is also somewhat similar of how `flow` works, with the
difference that `mebos` uses the blackoil variant to determine the
parameters it needs to know for parsing the deck instead of
introducing a "fake" type tag for this. The rationale is to reduce
compile time compared to the "fake type tag" approach and -- to a
lesser extend -- avoid unnecessary copy-and-pasting of code. In
particular, this means that for the vast majority of cases, only one
place needs changed in the code for all `ebos` variants if, for
example, the parser API requires further objects in the future.
2019-06-11 10:27:47 +02:00
Joakim Hove
1790910269 Call Summary::eval() and ::add_timestep separately 2019-06-06 12:14:46 +02:00
Joakim Hove
47f4e750d2
Merge pull request #1865 from joakim-hove/use-shared-summarystate
Use shared summarystate
2019-06-04 09:49:56 +02:00
Tor Harald Sandve
9d6f20b172
Merge pull request #1870 from andlaus/ebos_cleanups
Ebos cleanups
2019-06-03 14:32:17 +02:00
Tor Harald Sandve
2df734f00e output .INIT and .GRID also on restart 2019-06-03 12:21:34 +02:00
Andreas Lauser
f5e26df6af ebos: tell the parser not to bail out if it encounters superfluous records
this makes slightly incorrect decks usable with `ebos`. since the
common `flow` variants use a different code path to parse the deck,
they are unaffected. (as far as I can see, the only variant which
might be affected is `flow_ebos_oilwater_polymer_injectivity` and even
for it `flow`'s multiplexing code will abort the run before the
vanguard is even called.)
2019-06-03 11:20:41 +02:00
Andreas Lauser
c315a9a473 ebos: make it possible to disable aquifiers
for now, disabling aquifers is an experimental feature...
2019-06-03 11:20:41 +02:00
Andreas Lauser
ef74025523 ebos: tone down the warning in the startup message slightly
The intend is to make the purpose of `ebos` clearer: while it can be
used in production, the stability guarantees are somewhat lower than
for `flow` and testing is a bit less rigorous (most of the time).
2019-06-03 11:11:41 +02:00
Andreas Lauser
c86470e768 tracer model: fix a few output messages
fixes some typos, adds better wording and fixes some duplication
issues on parallel runs.
2019-06-03 11:11:41 +02:00
Andreas Lauser
b699f40cee fix "checking conservativeness" debug message for parallel runs 2019-06-03 11:11:41 +02:00
Andreas Lauser
c0a2fdf5c6 fix a few harmless compiler warnings 2019-06-03 11:11:41 +02:00
Andreas Lauser
18d989c394 ebos: replace tabs with spaces and remove trailing white space
for some reason this keeps creping back in...
2019-06-03 11:11:41 +02:00
Tor Harald Sandve
8f60a5f9fc
Merge pull request #1841 from andlaus/remove_isSubstep
EclProblem: remove the isSubstep parameter from writeOutput()
2019-06-03 10:41:12 +02:00
Andreas Lauser
80238d9940
Merge pull request #1863 from totto82/fix_init
Make it possible to restart without computing initial conditions
2019-05-29 12:23:40 +02:00
Atgeirr Flø Rasmussen
f3b21f8ead
Merge pull request #1861 from totto82/fixFPRP
Fix FPRP output
2019-05-29 09:59:46 +02:00
Joakim Hove
6edba5d94e Use shared SummaryState in eclwellmanager 2019-05-29 07:45:58 +02:00
Joakim Hove
dc4f57f7eb
Merge pull request #1831 from joakim-hove/use-wells2-controls
Use wells2 controls
2019-05-29 06:46:58 +02:00
Tor Harald Sandve
ae78cb86df Make it possible to restart without computing initial conditions 2019-05-28 13:04:28 +02:00
Tor Harald Sandve
e8db16554f Fix FPRP output 2019-05-27 11:24:55 +02:00
Joakim Hove
511645d12c Use InjectionControls and ProductionControls data classes 2019-05-23 16:27:17 +02:00
Bård Skaflestad
a618a1a777
Merge pull request #1857 from totto82/fix_fip_seg_fault
fix typo in fip output
2019-05-23 10:38:07 +02:00
Joakim Hove
b6840db604 Use new well implementation Well2 from opm-common 2019-05-22 21:47:45 +02:00
Tor Harald Sandve
dbf7efa6cb fix typo in fip output 2019-05-22 15:39:57 +02:00
Markus Blatt
337c637fa0 Write transmissibility between direct vertical neighbors into TRANZ.
In the case where two were direct vertical neighbors in the grid
but not in the underlying cartesian grid (e.g. because of MINPV or
pinch outs), we treated them as NNCs and wrote the transmissibilty
to TRANNC.

With this patch we detect this situation (two neighbor cells with identical
i and i and no active cells between them) and do not create an NNC
in the eclipse output files but write the transmissibility to TRANZ.
2019-05-21 11:24:17 +02:00
Bård Skaflestad
4a5dcdca75
Merge pull request #1793 from jalvestad/cell-summary-props
Changes to provide Summary data output of additional block variables
2019-05-14 18:29:12 +02:00
Andreas Lauser
2bbfb583d4
Merge pull request #1839 from totto82/fix_restart
Fix episode index for restart
2019-05-14 15:28:45 +02:00
Jostein Alvestad
38265ead52 Have rerwritten the code in a more compact and logical form 2019-05-14 09:31:18 +02:00
Jostein Alvestad
9d5e55180a Added corrections to cancel unintended changes to code 2019-05-14 09:31:17 +02:00
Jostein Alvestad
45e0773edd changes to provide Summary data output of additional block variables
Provide output data for:
    BOSAT
    BWKR
    BOKR
    BKRO
    BGKR
    BKRG
    BKRW
    BWPC
    BGPC
    BVWAT
    BWVIS
    BVGAS
    BGVIS
    BVOIL
    BOVIS
2019-05-14 09:31:16 +02:00
Atgeirr Flø Rasmussen
3ac8e0a736
Merge pull request #1837 from totto82/summaryState
add a summary state member in eclproblem
2019-05-14 09:25:51 +02:00
Andreas Lauser
8657f18075 EclProblem: remove the isSubstep parameter from writeOutput()
Now that the book keeping for time stepping is correct even in `flow`,
this parameter has become redundant.
2019-05-13 13:05:39 +02:00
Tor Harald Sandve
a9b72ab45b Fix episode index for restart 2019-05-13 12:49:08 +02:00
Tor Harald Sandve
6887f3bc73
Merge pull request #1821 from andlaus/tickling_the_dragon
flow: provide the correct episode size
2019-05-13 12:40:35 +02:00
Tor Harald Sandve
8afdf2cdb5 add a summary state member in eclBaseVanguard 2019-05-13 12:35:06 +02:00
Arne Morten Kvarving
3327e69c7f fixed: use of restartTimeStep() before it has been read
it is read in the beginRestart() method, reorder code accordingly
2019-05-09 14:33:48 +02:00
Andreas Lauser
9b0be0f8ad flow: provide the correct episode size 2019-05-09 13:28:56 +02:00
Markus Blatt
781fb46e61 [bugfix] Search all NNCs when applying EDITNNC.
The latter is not sorted. Therefore we either need to search the whole
range or sort it before processing it. Io pted for the former.
2019-05-08 13:50:51 +02:00
Markus Blatt
d2efdcfaa5 Implement correct ignore thresholds for NNC with/without EDITNNC.
It seems like eclipse ignores NNCs with small transmissibility.
Small means less than 1e-6 for Eclipse (Even if it says that it
is ignoring values below 1e-5 and/or zero values)!.
This commit now implements the same threshold during IO.

Also fixes a bug when applying EDITNNC, it needs to have cell1<=cell2 to work.
2019-05-08 13:50:51 +02:00
Markus Blatt
7849ce690d Make sortNncAndApplyEditnnc return vector of NNCData ready to be processed.
Previously the vector of NNCData was passed in as a reference and sorted.
Unfortunately, it needed to be transformed later to meet all prerequisites.
With this commit we do this transformations in sortNncAndApplyEditnnc.
Furthermore EDITNNC data is passed by value as it is not needed
outside and should usually not be to big. It was copied outside anyway!
2019-05-08 13:50:50 +02:00
Markus Blatt
f02c2d4114 Factor out sorting of NNC and application of EDITNNC for reuse. 2019-05-08 13:50:50 +02:00
Markus Blatt
583741d5b1 Ignore NNCs with zero transmissibility during output. 2019-05-08 13:50:26 +02:00
Markus Blatt
5aa0399c67 Write NNCs once and honor them when writing fault transmissibility
We first add all NNCs specified in the deck to the ouput
and then determine additional NNCs by iterating over all faces that
connect cells that are not connected in the underlying cartesian grid.
Therefore we need to make sure that we do not output NNCs twice
and for faults that also have a specified NNC we need to substract
the transmissibility specified via NNC.
2019-05-08 13:50:26 +02:00
Atgeirr Flø Rasmussen
c17adf788f Moved files to opm/simulators/ subdirs. 2019-05-08 12:58:19 +02:00
Tor Harald Sandve
890d34a9e1 Add support for water induced compaction using
ROCKCOMP, ROCK2D, ROCK2DTR, ROCKWNOD and OVERBURD
2019-05-07 13:17:29 +02:00
Andreas Lauser
dd74fe1027 document all methods of EclThresholdPressure 2019-05-03 14:07:15 +02:00
Andreas Lauser
d329547463 EclProblem: clean up the time management code
- when an episode/report step is over, the next is started by endEpisode()
- the problem does not deal with updating the simulation time anymore
- rename `episodeIdx` in to `reportStepIdx` the 'EclWriter' because
  this variable is -- and always has been -- the report step number
  used by some parts of `opm-output`'s ECL writing code (the report
  step number is equivalent to the episode index plus 1). IMO, the
  output and parser code should be made more consistent in regard of
  whether it expects 0-based or 1-based indices, but this is a story
  for another day.
2019-05-03 14:07:15 +02:00
Andreas Lauser
17a4092c82 EclProblem: introduce a simulator auxiliary variable in most most cases
in most instances, this reduces the visual clutter a bit...
2019-05-03 14:07:15 +02:00
Andreas Lauser
6e351fef2e EclProblem: limit the limitTimeStepSize() to ebos
also, fix a few mistakes in that function.
2019-05-03 14:07:15 +02:00
Andreas Lauser
b9995f697f well models: remove superfluous arguments
concretely this means the `eclState` and `schedule` arguments to the
`init()` and `beginTimeStep()` methods.
2019-05-03 14:07:15 +02:00
Andreas Lauser
7868e420c0 EclProblem: print "checking conservativeness" messages in debug mode 2019-05-03 14:06:41 +02:00
Andreas Lauser
0be0de38cb EclProblem: ensure that eclWriter_ is always present
before patch, setting the `EnableEclOutput` parameter to `false`
resulted in the `eclWriter_` not to be allocated; yet it was used in
some places. this resulted in segfaults.
2019-05-03 14:06:41 +02:00
Andreas Lauser
701eb0edd3 ebos: never write restart files using the ad-hoc format
medium term, the output and restart file writing should be refactored:
the simulator does not need to be aware of this because it can be
accomplised in the problem's endTimeStep() method.
2019-05-03 14:06:41 +02:00
Tor Harald Sandve
e19508e599
Merge pull request #1780 from andlaus/ebos_deck_diagnostics
Ebos deck diagnostics
2019-05-03 13:49:02 +02:00
Andreas Lauser
794b043a28 ebos: use the non-multisegmented well model by default
this avoids regressions for decks that use well testing and makes
`ebos` work as expected if UMFPACK is not available, but obviously it
will not work for decks that use multisegment wells in earnest.

`flow` is unaffected by this because it does not use this type tag.
2019-05-02 13:54:40 +02:00
Markus Blatt
184be292ea [bugfix] Use NNC data with applied EDITNCC for transmissibility.
Unfortunately, we first created NNC with applied EDITNNC and then
still used the original NNC data to set the transmissibility. Thus
we were actually ignoring EDITNNC.

This commit fixes this by using the data structure that has EDITNNC
applied.
2019-04-26 21:25:59 +02:00
Markus Blatt
3aa60433ad Removes unsigned-signed integer comparison warnings. 2019-04-25 10:00:59 +02:00
Markus Blatt
48c3802bf3 Removes unused function parameter warnings. 2019-04-25 10:00:59 +02:00
Andreas Lauser
4805e9fe05 ebos: run the diagnostics code for relative permeabilities
maybe this needs to be reverted since the code in question can
cause the simulation to abort inadvertently.

As usual, `flow` is unaffected because this functionality is only
called in experimental mode and flow calls it itself.
2019-04-05 16:21:22 +02:00
Andreas Lauser
67a8283000 ebos: call Opm::checkDeck() after parsing
this catches at least some common issues with ECL decks.
2019-04-05 16:21:22 +02:00
Joakim Hove
c9dcfc8be0 Use RFTConfig() object to query for RFT active wells 2019-04-04 07:27:39 +02:00
Tor Harald Sandve
ae6edf6a06
Merge pull request #1774 from andlaus/support_THPRESFT
Support THPRESFT
2019-04-03 09:20:53 +02:00
Tor Harald Sandve
c88806a5bc
Merge pull request #1770 from blattms/allow-empty-fipnum-vector
Cater for empty fipnum vectors in output code.
2019-04-02 14:59:34 +02:00
Tor Harald Sandve
2c51bc6219
Merge pull request #1772 from andlaus/ebos_maintainance
ebos: make its core headers self sufficient
2019-03-29 13:49:18 +01:00
Andreas Lauser
11439bca80 ebos: some small fixes to EclProblem::checkDeckCompatibility_() 2019-03-28 13:12:29 +01:00
Andreas Lauser
7b967d0498 ebos: implement experimental support for THPRESFT
as usual, `flow` is unaffected.
2019-03-28 13:09:44 +01:00
Tor Harald Sandve
2156f15d5f Adapt to new deck specification for the boundary condition 2019-03-27 09:27:03 +01:00
Andreas Lauser
cd681c6445 ebos: make its core headers self sufficient
this is part of the release maintainance. in this context "core
headers" means the ones which do not include the well model headers,
and only those which are concerned with non-exotic functionality,
e.g., the PolyhedralGrid and ALUGrid vanguards are not changed.
2019-03-26 13:17:54 +01:00
Tor Harald Sandve
d1d7d0e0f5
Merge pull request #1769 from andlaus/api_tracking_stub
ebos: add a stub implementation for API tracking
2019-03-26 12:39:32 +01:00
Tor Harald Sandve
17c249fa46
Merge pull request #1765 from andlaus/minor_cleanups
Minor cleanups
2019-03-26 12:38:50 +01:00
Markus Blatt
831f41c0e3 Cater for empty fipnum vectors in output code.
Due to loadbalancing this vector might be empty under some circumstances.
Hence the old code would dereference the end iterator which is a bug.
2019-03-22 15:14:08 +01:00
Andreas Lauser
cdb2c6312a ebos: add a stub implementation for API tracking
the only thing which this does so far is to introduce the respective
property and `ebos` will abort the run if the deck requests API tracking.

As usual for experimental features, `flow` is unaffected.
2019-03-22 15:04:07 +01:00
Andreas Lauser
076f18c5d5
Merge pull request #1768 from andlaus/ebos_deck_check
ebos: add some checks to make sure that the simulator produces what the deck specifies
2019-03-22 15:02:00 +01:00
Andreas Lauser
0b0eb6df5e ebos: add some checks to make sure that the simulator produces what the deck specifies
this should significantly reduce surprising behavior for users. since
this is an experimental feature, `flow` is unaffected.
2019-03-22 13:38:58 +01:00
Andreas Lauser
1b8124cc31 EclProblem: remove the initialTemperature_ array
this was not used since the fluid states that correspond to the
initial condition are kept permanently.
2019-03-21 12:35:10 +01:00
Andreas Lauser
fe62b4fe5e add an ebos variant which uses completely different numbering for phases and components
for some reason, this yields quite different results for norne than
the default variant, e.g. when comparing PRESSURE, we get

```
> compareECL -k PRESSURE -t UNRST ebos/NORNE_ATW2013 ebos_altidx/NORNE_ATW2013 1 1e-4
Comparing 'ebos/NORNE_ATW2013' to 'ebos_altidx/NORNE_ATW2013'.
Comparing PRESSURE...
Occurrence in first file    = 9
Occurrence in second file   = 9
Value index                 = 0
(first value, second value) = (254.195, 253.191)

Program threw an exception: [/home/and/src/opm-common/build-cmake/fake-src/examples/test_util/EclRegressionTest.cpp:161] Deviations exceed tolerances.
The absolute deviation is 1.00311, and the tolerance limit is 1.
The relative deviation is 0.00394624, and the tolerance limit is 0.0001.
```

IMO this is a bug, but the reasons for it are currently unknown.
2019-03-13 11:14:22 +01:00
Andreas Lauser
6452fbc3cd
Merge pull request #1752 from totto82/fixTUNING
Fix bugs in the TUNING implementation in ebos
2019-03-11 12:00:56 +01:00
Tor Harald Sandve
a6e82886bb Fix bugs in the TUNING implementation in ebos 2019-03-11 10:18:27 +01:00
Joakim Hove
39525dbf9c
Merge pull request #1749 from joakim-hove/move-wells
Move well includes to subdirectory Well/
2019-03-08 12:42:30 +01:00
Joakim Hove
485db348f0 Move well includes to subdirectory Well/ 2019-03-07 15:30:33 +01:00
Andreas Lauser
383009e031 add some ebos variants
these variants should cover most of the common use cases. That said,
there are no plans to provide simulators for combinations of blackoil
extensions or a "multiplexing" simulator like `flow`: If someone is
interested in e.g., an oil-water simulator with polymer and energy
enabled, a separate self-compiled executable should be added locally.
2019-03-05 18:30:35 +01:00
Tor Harald Sandve
81c709fabd
Merge pull request #1746 from andlaus/drift_compensation
ebos: implement partial elimination of systematic mass defects
2019-03-05 15:07:22 +01:00
Atgeirr Flø Rasmussen
ec408ed6da
Merge pull request #1744 from GitPaean/warning_nnc_inactive_active
warning instead of throwing for nnc between active cells and inactive cells
2019-03-05 14:01:34 +01:00
Andreas Lauser
a812041184 ebos: implement partial elimination of systematic mass defects
the idea is to compensate the residual of the final solution of a time
step by means of an opposing source term in the next time step.

This patch has been developed as a joint project with [at]totto82 and
[at]osae.

(`flow` is unaffected by this because for now drift compensation is an
experimental feature and thus disabled within the production
simulator.)
2019-03-05 11:32:11 +01:00
Andreas Lauser
d9c67ef551 ebos: use the same well model, aquifer model and linear solver as flow
This enables `ebos` to run Norne and other non-trivial data
sets. While at it, adapt the tolerances by `ebos`.

This patch only affects the research simulator, i.e. `flow` is
unaffected by it.
2019-03-04 14:23:59 +01:00
Andreas Lauser
d7e74e7c4e fix review comment by [at]totto82 2019-03-04 13:59:50 +01:00
Andreas Lauser
b60305082d EclBaseProblem: fix the parent type tags for the EclBaseProblem tag in the non-default cases
this bitrot a bit because it was never seen by the compiler. (I still
did not check if `ebos` compiles and works if `CpGrid` is replaced by
dune-alugrid or `PolyhedralGrid`.)
2019-03-04 13:58:38 +01:00
Andreas Lauser
3ca8b8f285 ebos: improve the messages printed during the run
the convergence behaviour can now be understood and the report step
information is printed, too. This does not affect `flow`, becase it
implements its own newton and time stepping routines.
2019-03-04 13:58:38 +01:00
Andreas Lauser
8e5f1279f3 EclWellManager: do not use parallelism
the speedup gained by parallelism here are simply not worth the
headaches.

note that `flow` is unaffected by this because it uses
`Opm::BlackoilWellModel`.
2019-03-04 13:58:38 +01:00
Andreas Lauser
43dd9928b4 EclNewtonMethod: Fix convergence criterion if the residual is volumetric 2019-03-04 13:58:38 +01:00
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
Kai Bao
a83db39cce warning instead of throwing for nnc between active cells and inactive cells 2019-03-04 12:49:17 +01:00
Andreas Lauser
f36680bf3a EclProblem: Rename NewtonRawTolerance to NewtonTolerance
this property is not used by `flow` because `flow` implements its own
Newton method, but it not renaming the property prevents `flow` from
building.
2019-03-01 10:48:06 +01:00
Andreas Lauser
c9dfad2a3d prefix the ECL timestep tuning parameters with 'Ecl' 2019-02-20 12:47:12 +01:00
Andreas Lauser
148728973f fix the output of the size of the next time step if timestepping is done externaly 2019-02-20 12:47:12 +01:00
Andreas Lauser
b1a526e5c2 ebos: remove unused deprecated function 2019-02-20 12:47:12 +01:00
Andreas Lauser
a34a8d6b9e ebos: implement partial support for the TUNING keyword
this only implements the parameters that are currently supported by
`flow`.
2019-02-20 12:47:12 +01:00
Andreas Lauser
0b600cb824 Merge pull request #483 from totto82/massratebc
Add option for setting mass boundary rate from deck
2019-02-20 12:15:21 +01:00
Tor Harald Sandve
430e667517 Add option for setting mass boundary rate from deck
Usage
BCRATE
1 1 1 1 1 10 X WATER 1e-7 /

This will inject 1e-7 of water (mass/time/length/length) on the x side of the
boundary cells with cartesian index [1 1 1] to [1 1 10]
2019-02-20 10:56:53 +01:00
Tor Harald Sandve
b4382c23e8 Merge pull request #481 from andlaus/add_experimental_mode
introduce an "experimental mode"
2019-02-20 09:39:33 +01:00
Andreas Lauser
c80e4c40c4 fix missing semicolon 2019-02-19 11:04:40 +01:00
Andreas Lauser
10d1d5c9a7 introduce an "experimental mode"
this is a compile time switch with the intention to be able to more
easily turn experimental features that are not yet considered to be
production quality on and off. DUNE has a similar mechanism (i.e., the
`DUNE_GRID_EXPERIMENTAL_GRID_EXTENSIONS` macro), but it relies on
the preprocessor.

For now, the property does not have any effect.
2019-02-19 10:22:34 +01:00
Tor Harald Sandve
9de0e54b63 Merge pull request #475 from andlaus/fix_ecl_restart
ebos: Fix restart from ECL files
2019-02-19 10:11:02 +01:00
Andreas Lauser
7165ae246a ebos: clarify startup message
this hopefully makes the purpose of `ebos` clear in its
description. this prose should be interpreted as "if you use ebos in
production, you are on your own and you should only expect a very
limited amount of support (or even sympathy) if something breaks".
2019-02-19 10:07:01 +01:00
Andreas Lauser
5b032a6a28 fix the issues found by [at]tosa82 in his review
in particular the missing synchronization after restarts was very
nasty to find. thanks a ton for pointing this out!

also, IIRC changing DR[SV]DT in the schedule section has been working
properly for a while, so the comment which stated the opposite is
removed as well.
2019-02-19 09:07:12 +01:00
Andreas Lauser
65d44a055f EclProblem: fix a few minor style issues 2019-02-18 15:30:28 +01:00
Andreas Lauser
427741fe84 ebos: Fix restart from ECL files
Some time loop stuff was missing in the doobly-doo, the init() method
of the well model was not called and there was the slightly deeper
issue that the initial solutions where not calculated on restarts
which breaks everything that relies on them. (at the moment, that's
everything which is related to non-trivial boundary contitions.)
2019-02-18 15:29:27 +01:00
Andreas Lauser
2e75eaa0ac Merge pull request #390 from joakim-hove/opm-rst-default-false
[Equinor internal]: Opm rst default false
2019-02-18 12:19:13 +01:00
Tor Harald Sandve
a86ee61bf6 Merge pull request #478 from andlaus/ebos_remove_mass_conservative_init
ebos: remove the code to calculate a mass conservative initial condtion if the specified condition is inconsistent
2019-02-18 11:18:12 +01:00
Andreas Lauser
3cd1252079 ebos: remove the code to calculate a mass conservative initial condtion if the specified condition is inconsistent
As far as I can see, this was always set to `false` anyway.
2019-02-15 13:45:23 +01:00
Andreas Lauser
0423676305 ebos: remove the DisableWells property
the purpose of this was a hack to be able to manipulate the Jacobian
matrix directly from outside code. Since `flow` has been converted to
the eWoms wells API, this is not required anymore.
2019-02-15 13:39:58 +01:00
Arne Morten Kvarving
c02ca868d6 Merge pull request #466 from atgeirr/handle-nnc
Use NNC support from CpGrid.
2019-02-14 10:22:42 +01:00
Andreas Lauser
0e761010a8 Merge pull request #472 from totto82/freeBC
Add support for using free boundary conditions in Flow
2019-02-08 20:50:02 +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
Atgeirr Flø Rasmussen
e926f557b8 Fix: indexInInside() and indexInOutside() return signed integers. 2019-02-07 12:00:49 +01:00
Atgeirr Flø Rasmussen
d087d7c41b Use NNC support from CpGrid. 2019-02-07 12:00:49 +01:00
Andreas Lauser
51b24d33d5 EclWriter: remove obsolete writeOutput() overload
this has been unused for any simulator for a while. the only code
which called it was the ECL output test, but this one could be easily
ported.
2019-02-06 12:21:08 +01:00
Andreas Lauser
dc1b92521a ebos: make it possible to account for external setup costs 2019-02-06 12:21:08 +01:00
Andreas Lauser
4ecda15b11 coding style fixes for the black-oil model and more style fixes for ebos 2019-02-01 17:33:30 +01:00
Andreas Lauser
7f27c4fb4b fix coding style of the ECL tracer model 2019-02-01 17:33:30 +01:00
Andreas Lauser
9afa62b78b fix some minor coding style issues in Ewoms::EclOutputBlackOilModule 2019-02-01 17:33:30 +01:00
Andreas Lauser
8b89e6ed97 unify coding style of Ewoms::AluCartesianIndexMapper 2019-02-01 17:33:30 +01:00
Andreas Lauser
c600d807b6 use the eWoms coding style conventions for Ewoms::TracerVdTable 2019-02-01 17:33:30 +01:00
Andreas Lauser
a9359602fc fix some minor coding style inconsistencies in EclWriter 2019-02-01 17:33:30 +01:00
Andreas Lauser
80e04aa8b4 fix style issues in EclTransmissibility and make the editNnc handling a bit simpler
the new editNNC code might be slightly slower, but I doubt that the
difference is even measureable for real decks.
2019-02-01 17:33:30 +01:00
Andreas Lauser
0aa9a2c6b8 make the coding style of femcpgridcompat.hh consistent with the rest of eWoms/ebos 2019-02-01 17:33:30 +01:00
Tor Harald Sandve
fb34eb304c Fix generic boundary conditions for blackoil model
Currently it doesn't allow for polymer or solvent influx
on the boundary with the free flow option
2019-01-31 15:41:47 +01:00
Andreas Lauser
70a7207578 Merge pull request #465 from GitPaean/fixing_single_precision_restart
each phase needs to be above certain value to be treated to be present
2019-01-22 16:11:53 +01:00
Kai Bao
56e829329f each phase needs to be above certain value to be treated to be present
it helps to recover some RESTART running based on single precision
format.
2019-01-22 13:53:08 +01:00
Andreas Lauser
dc6de0c31a Merge pull request #463 from totto82/convertFIPtoLAB
convert FIP values to LAB scale
2019-01-21 16:19:04 +01:00
Tor Harald Sandve
ee7b47e0f9 convert FIP values to LAB scale 2019-01-21 14:55:40 +01:00
Tor Harald Sandve
22097d4c10 Add trivial connection output to silence the output code
In this PR only trivial data is added.
2019-01-18 14:57:25 +01:00
Markus Blatt
3b8ef5f004 one line per variable as requested. 2019-01-16 13:16:45 +01:00
Markus Blatt
d87c5764b9 Use doxygen style suggested by reviewer. 2019-01-16 13:16:45 +01:00
Markus Blatt
ace49a2c22 Adhere to CamelCase for types, functions, and variables.
This seems to be covered for types and functions by our coding style
with room for interpretation. For variables the coding styles asks for
underlines though, but nevermind.
2019-01-16 13:16:45 +01:00
Markus Blatt
fb0f04d814 [bugfix] Cater for multiple EDITNNC entry for same cell pair. 2019-01-16 13:16:45 +01:00
Markus Blatt
64326dad53 [bugfix] Prevent accessing elements beyond end of NNC entries. 2019-01-16 13:16:45 +01:00
Markus Blatt
362476a494 [bugfix] Prevent double scaling of NNC with EDITNNC resembled trans
The former order resulted of first apply NCC to the grid
transmissibilities and then applying EDITNNC resulted in NNCs being
scaled twices. The reason is that applyNNCToGridTrans_ scales the NNC
with EDITNNC. With the patch the order of the function calls is
reversed to prevent double scaling.
2019-01-16 13:16:45 +01:00
Markus Blatt
5e83a26908 Process values from NNC keyword for those connection resembled by grid.
This is includes neighboring connection and NNCs due to faults. In both
cases the transmissibilities of specified via NNC are added to the set or
computed ones.

This is the first step for supporting NNC in flow.
2019-01-16 13:16:45 +01:00
Joakim Hove
c4c0d4ab9f Set default value of parameter EnableOpmRstFile to false 2019-01-15 13:05:45 +01:00
Kai Bao
9e483bed45 updating more quantities when restart
lastRs_, lastRv_, maxDRs_, maxDRv_

to get better restart.
2019-01-12 17:20:44 +01:00
Tor Harald Sandve
f971caeae9 Merge pull request #428 from andlaus/EclNewtonMethod
ebos: introduce an EclNewtonMethod
2019-01-11 13:06:20 +01:00
Andreas Lauser
c2377e7b10 EclNewtonMethod: make the exponent of the tolerance scaling settable by a parameter
the parameter is called `EclNewtonSumToleranceExponent`. if it is set
to 1, the specified tolerance will be used directly. (this is not
desireable in the general case though, because at the same result
quality, the sum error for large reservoirs can be larger than for
small ones.)
2019-01-11 11:24:20 +01:00
Andreas Lauser
0492796e85 address review comments 2019-01-11 11:21:23 +01:00
Andreas Lauser
ec391f529d make the ebos-Newton specific parameters setable from the command line
also, tweak them a bit: increase the sum tolerance before scaling to
1e-3 and reduce the default number of strict iterations to 4.
2019-01-11 11:21:23 +01:00
Andreas Lauser
c08f0008ad EclNewtonMethod: tweak the parameters a bit 2019-01-11 11:21:23 +01:00
Andreas Lauser
85a9b75076 ebos: allow larger errors for larger reservoirs
albeit, we scale the error only to the cube root of the pore
volume. the rationale is that the same amount of mass can get lost
"along" a line for each timestep.

maybe it would be a good idea to do something like this for time step
size as well because taking multiple small time steps currently allows
a much larger error in the result than doing it in one big step.
2019-01-11 11:21:23 +01:00
Andreas Lauser
07e1b4ecde ebos: introduce an EclNewtonMethod
this calculates the error and convergence differently from the
standard Newton method.
2019-01-11 11:21:23 +01:00
Joakim Hove
c223b4f4d4 Add StrictParsing commandline option 2019-01-11 09:01:30 +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
Andreas Lauser
5d581bab7e ebos: fix explicit init for twophase cases
since OPM/opm-material#310 has been merged, data for deactivated
phases is not stored anymore and can thus no longer be accessed/set.

this fixes OPM/opm-simulators#1686
2019-01-08 11:18:17 +01:00
Joakim Hove
1706ae1ae4 Merge pull request #453 from joakim-hove/error-guard
Add ErrorGuard argument when parsing
2019-01-08 07:49:10 +01:00
Joakim Hove
c8564cfad3 Add ErrorGuard argument when parsing 2019-01-07 12:05:30 +01:00
Andreas Lauser
cf88834f67 Merge pull request #450 from totto82/add_support_for_multz_all
Add support for the Multz option ALL in PINCH
2019-01-07 10:04:09 +01:00
Tor Harald Sandve
227c0eab90 Merge pull request #452 from andlaus/recompute_old_storage
make it possible to explicitly compute the storage term of the previous time step
2019-01-04 13:11:40 +01:00
Tor Harald Sandve
625a4cd303 Merge pull request #433 from andlaus/conditional_temperature
ebos: only write out temperature in thermal runs
2018-12-21 12:48:54 +01:00
Andreas Lauser
af0d02b03d use enableEnergy consistently
thanks to [at]totto82 for noticing.
2018-12-21 10:07:58 +01:00
Andreas Lauser
0a1fa8de81 make it possible to explicitly compute the storage term of the previous time step
some weird hacks (hello, DR[SV]DT) cause a change of the storage term
in the first Newton-Raphson iteration compared to the solution of the
previous time level. In order to use the correct values, one thus must
explicitly recompute the storage term for the previous time step
instead of just reusing the result of the first Newton-Raphson
iteration of the current time step.
2018-12-20 15:52:06 +01:00
Tor Harald Sandve
4e65234acb Add support for the Multz option ALL in PINCH 2018-12-20 12:56:10 +01:00
Bård Skaflestad
1f3a9cc84a Fixed potential derefernce of end operator when applying EDITNNC. 2018-12-20 11:44:46 +01:00
Andreas Lauser
6a29318adf ebos: only write out temperature in thermal runs 2018-12-17 11:37:47 +01:00
Tor Harald Sandve
af45c893cf Merge pull request #445 from totto82/remove_nnc
Remove only nnc trans
2018-12-13 12:27:10 +01:00
Tor Harald Sandve
a5499ce576 remove only small nnc trans 2018-12-13 11:00:27 +01:00
Kai Bao
c9d9023039 addressing reviewing comments from PR #444 2018-12-12 14:50:22 +01:00
Kai Bao
932e4d1bf1 cleaning up of the code
there should be no functionality change
2018-12-11 21:55:20 +01:00
Kai Bao
31c18bd70e adding the functionality to track the polymer molecular weight
it is used to evaluate the water-polymer mixture viscosities
2018-12-11 21:55:20 +01:00
Atgeirr Flø Rasmussen
c26aed1d42 Merge pull request #436 from totto82/remove_small_trans
remove transmissibilities less then 1e-6 in the given unit system
2018-12-11 11:26:35 +01:00
Atgeirr Flø Rasmussen
39571de366 Merge pull request #443 from totto82/disableTracer
Add parameter for (dis)enable the tracer model
2018-12-10 11:40:48 +01:00
Tor Harald Sandve
704fbb7b60 Add parameter for (dis)enable the tracer model
The tracer model slows down the simulation time and is disabled by
default, until the performance is improved.
2018-12-10 11:13:35 +01:00
Atgeirr Flø Rasmussen
4c7dcb1aba Merge pull request #441 from blattms/do-silent-getWriteRestartFile-call-on-nonzero-procs
Do not log messages during getWriteRestartFile query on all procs.
2018-12-07 18:53:45 +01:00
Atgeirr Flø Rasmussen
e8628c35d6 Merge pull request #425 from blattms/process-editnnc
Apply multiplicators from EDITNNC from the Deck.
2018-12-07 18:45:22 +01:00
Markus Blatt
84acf3965f Do not log messages during getWriteRestartFile query on all procs.
Previously all processes reported
Warning: Fast restart using SAVE is not supported. Standard restart file is written instead.
Now this is done only on the master process where logging is activated.
2018-12-07 15:56:45 +01:00
Markus Blatt
d7d9a3ecd8 bugfix: Fallback to SeqILUn in tracer code for DUNE < 2.6
In that versions SeqILU was not there.
2018-12-07 12:08:03 +01:00
Markus Blatt
a2be89d586 bugfix: Use a typedef that is actually defined.
Fixes `error: ‘LinearSolverScalar’ was not declared in this scope`.
2018-12-07 12:06:29 +01:00
Markus Blatt
7c2f6d9275 Refactored loop which applies the EDITNCC. 2018-12-05 10:15:42 +01:00
Markus Blatt
7a4b817010 Add spaces where requested by coding standard 2018-12-03 16:46:03 +01:00
Tor Harald Sandve
f9af2c5084 remove transmissibilities less then 1e-6 in the given unit system 2018-11-30 10:28:17 +01:00
Markus Blatt
cfac47ddbc Apply multiplicators from EDITNNC from the Deck. 2018-11-20 14:00:45 +01:00
Trine S Mykkeltvedt
ac931d1713 Add ecl tracer model
reads tracer input from deck, solves tracer equation fully implicit as a post processing step in endTimeStep

tested on a simple modified SPE1CASE1 deck and compared with eclipse

TODO: restart and parallel
2018-11-19 13:46:10 +01:00
Andreas Lauser
781825121d some cleanups 2018-11-12 12:48:33 +01:00
Robert Kloefkorn
cfcf04ed00 add an abstraction layer for the matrix between the linearizer and linear solver
this allows to assemble the Jacobian matrices directly into the native
format expected by linear solver. So far, only backends using
Dune::BCRSMatrix are provided, but there are work-in-progress patches
for dune-fem, vienna-CL and PETSc backends.
2018-11-12 12:48:22 +01:00
Andreas Lauser
a5493919da ecl base vanguard: make the schedule and summaryConfig objects user-replaceable
thanks to [at]atgeirr for the suggestion.
2018-11-08 11:32:56 +01:00
Andreas Lauser
868c4b1cc5 ebos: clean up the mess that is the schedule and summaryConfig objects a bit
IMO the simulator should not be in the business of managing low-level
parser objects in the first place, because that's what EclipseState is
supposed to do?!

anyway, since these objects are not needed to decide which simulator
to use, they are now always managed internally by the vanguard, i.e.,
setExternalDeck() does not take them anymore.
2018-11-07 12:31:20 +01:00
Tor Harald Sandve
38dd81ba7e Avoid output of trivial fipnum regions 2018-11-06 09:02:30 +01:00
Tor Harald Sandve
513b0b462f Add support for drsdtr and drvdtr
This PR also adds possibility for schedule dependent drsdt values
2018-11-05 13:50:44 +01:00
Tor Harald Sandve
fad7c68446 Add support for region DR[SV]DTR 2018-11-05 13:40:23 +01:00
Tor Harald Sandve
3185e8662b Merge pull request #408 from andlaus/aquifer_api_v2
extend the aquifer model so that it can initialize itself
2018-10-31 12:47:54 +01:00
Andreas Lauser
1f28aba47e Merge pull request #404 from totto82/speedup2p
Blackoil: Prepare for 2p conditional storage of fluidstate
2018-10-30 12:39:05 +01:00
Andreas Lauser
ec898fa8c2 extend the aquifer model so that it can initialize itself
nothing is perfect on first try...
2018-10-30 11:22:26 +01:00
Andreas Lauser
7fd640bb9e make all header files includeable on their own right again
some property definitions and includes were missing.
2018-10-29 10:05:46 +01:00
Andreas Lauser
1d16dfc3fa fix some warnings produced by clang 6
they are all harmless.
2018-10-29 10:05:46 +01:00
Andreas Lauser
f03711aff6 replace tabs by spaces
for whatever reason a few tabulator characters crept in...
2018-10-29 10:05:46 +01:00
Andreas Lauser
3c94807b85 Merge pull request #405 from andlaus/aquifier_api
ebos: add an API for aquifiers
2018-10-25 16:45:57 +02:00
Joakim Hove
709723d7ca Merge pull request #402 from totto82/minpvv
add support for minpvv
2018-10-25 09:04:54 +02:00
Joakim Hove
4929108b6a Merge pull request #400 from totto82/supportEditMult
Support modifying trans from deck
2018-10-24 10:37:01 +02:00
Andreas Lauser
23670c6797 ebos: add an API for aquifiers
this is similar to the mechanism for well models: the API is defined
here, but can be overloaded by downstream modules. In contrast to the
well model where the default class follows a simplistic approach the
default class for aquifiers does nothing, i.e., the actual
implemenentation must be provided by downstream.
2018-10-23 17:47:38 +02: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
Tor Harald Sandve
3a408619da add support for minpvv 2018-10-15 13:35:45 +02:00
Tor Harald Sandve
7ad5a4d29b Support modifying trans from deck 2018-10-15 12:36:22 +02:00
Joakim Hove
cee74bb2b5 Add commandline parameter --ignore-keywords= 2018-10-08 23:41:18 +02:00
Andreas Lauser
d5328fe69c EclProblem: only create the eclWriter_ object once
thanks to [at]bska for catching this.
2018-09-29 10:59:42 +02:00
Joakim Hove
0ca788f2f7 Set default value of EnableOpmRstFile to true 2018-09-24 14:18:02 +02:00
Andreas Lauser
1a8f3e72ee move registration of the EnableOpmRstFile parameter to EclBaseVanguard
before this patch, the parameter was registered by the problem but not
used there. Since this is quite confusing, let's move registration to
where the parameter is actually used, i.e., the vanguard.
2018-09-17 11:25:35 +02:00
Joakim Hove
b766260db7 Add --opm-rst-file parameter 2018-09-13 17:03:11 +02:00
Andreas Lauser
49442af4cc Merge pull request #382 from totto82/ppcw
Output PPCW when SWATINIT is enabled
2018-09-12 12:38:53 +02:00
Tor Harald Sandve
dcb1e96606 Output and read PPCW when SWATINIT is enabled 2018-09-11 14:57:32 +02:00
Joakim Hove
67d4439cce Merge pull request #361 from joakim-hove/wellconnection-updates
Wellconnection updates
2018-09-11 13:18:52 +02:00
Andreas Lauser
403ad6ee56 Merge pull request #381 from totto82/fix_nofill_minpv
Return modified ntg's only when minpv mode is OPMFIL
2018-09-10 16:21:07 +02:00
Tor Harald Sandve
dbcfb7af24 Return modified ntg's only when minpv mode is OPMFIL 2018-09-07 09:09:03 +02:00
Joakim Hove
f2992099d5 Merge pull request #380 from joakim-hove/thpres-fixup
Fixup THPRESPR -> THPRESPR
2018-09-05 21:11:07 +02:00
Joakim Hove
400f505a2c Fixup THPRESPR -> THPESHPR 2018-09-05 14:59:02 +02:00
Joakim Hove
621028f6e6 Store capillary pressure in SOLUTION section 2018-09-04 14:14:48 +02:00
Joakim Hove
bdbf417887 Change string used for THPRES in restartfile 2018-09-03 16:59:23 +02:00
Joakim Hove
59238803bb Get connection CF and Kh directly from parser Connecton object 2018-08-31 08:47:15 +02:00
Andreas Lauser
e5ab52b773 ebos: avoid sign-comparison warning
seems like I didn't compile #364 with pedantic warning flags enabled.
2018-08-20 13:13:57 +02:00
Andreas Lauser
fe5ccc2194 ebos: complain about old-style parameter specification explicitly
i.e., complain when detecting foo=bar positional parameters. this is
not a bullet-proof solution because it will not work if the deck file
name contains an equals character. Anyway, it's better than before
IMO.
2018-08-17 13:51:11 +02:00
Andreas Lauser
095a529f28 add some quotes to the user output
this makes it clearer that no deck has been specified.
2018-08-17 13:08:23 +02:00
Andreas Lauser
ed7d4d47c1 implement line breaks in the usage message
i.e. for `--help`. this is surprisingly complicated...
2018-08-16 15:55:51 +02:00
Andreas Lauser
6e7be50610 make the "OutputDir" parameter apply universally
all disc output, i.e. VTK, restart files, ECL and -- in the future --
logfiles, goes to that directory. before this, only the ECL output
could be directed to a different than the current working directory
and the parameter for this was called "EclOutputDir".

note that the Dune VTK writing infrastructure makes it harder than it
needs to be: suddenly Dune::VTKWriter::write() does not work in
parallel anymore, but Dune::VTKWriter::pwrite() must be called with
the right arguments.
2018-08-14 12:04:51 +02:00
Andreas Lauser
0d864f8e71 ebos: handle positional parameters more robustly
previously, the exact behaviour was dependent on wheter the
--ecl-deck-file-name parameter was defined or not. now the positional
parameter is hopefully an exact alias for the value of --ecl-deck-file-name.
2018-08-10 18:21:16 +02:00
Andreas Lauser
e7606d2afd ebos: complain more explicitly about the input deck being unspecified
the previous error message was a bit confusing.
2018-08-07 11:37:12 +02:00
Andreas Lauser
2f1f14483b ebos: change the brief description slightly
the purpose is to make it exceedingly clear that ebos is not developed
by the ECL group who started ECLIPSE which is an backcronym for
"ECL's Implicit Program for Simulation Engineering" and ECL stands for
"Exploration Consultants Limited" which is now a division of
Schlumberger Limited.

thanks to [at]atgeirr for pushing this.
2018-08-07 10:48:43 +02:00
Andreas Lauser
0a8a791c49 ebos: make the brief description settable from the exterior
this allows `flow` to print something else than plain-`ebos`.
2018-08-06 10:46:28 +02:00
Atgeirr Flø Rasmussen
118e3f6dac Restore const-ness accidentally lost. 2018-07-31 15:35:15 +02:00
Atgeirr Flø Rasmussen
a63aac0491 Merge pull request #352 from andlaus/ebos_allow_no_fip
ebos: add possibility to disable the FIP output even if requested in the deck
2018-07-31 11:32:15 +02:00
Andreas Lauser
935b5a5a9d adapt to the fluid system naming convention change in opm-material 2018-07-27 12:56:19 +02:00
Andreas Lauser
ef845bb4f4 ebos: add possibility to disable the FIP output even if requested in the deck
this significantly reduces the noise level of debug files if the FIP
values are not of interest.
2018-07-26 12:31:32 +02:00
Andreas Lauser
29e113f1fd ebos: get rid of HAVE_ECL_{IN,OUT}PUT
there are about a trillion places within ebos where the availability
of the ECL I/O routines is hardcoded, so it does not make sense to
pretent that the EclWriter can be useful without them.

(in fact, ebos is deactivated at build system level if the ECL I/O
routines have not been detected.)
2018-07-12 13:47:01 +02:00
Andreas Lauser
b5ac85b5d0 ebos: simplify the output writing code if the default timeloop is used
`flow` doesn't, so it is unaffected.
2018-07-12 13:47:01 +02:00
Andreas Lauser
24fc04a102 collecttoiorank.hh: use camelCase consistently 2018-07-12 11:15:37 +02:00
Andreas Lauser
b92aee90b5 CollectToIORank: remove unnecessary whitespace, braces 2018-07-12 11:15:24 +02:00
Andreas Lauser
4342210b5e CollectToIORank: fix formatting of function declarations reduce unnecessary usage of whitespace 2018-07-12 11:00:56 +02:00
Andreas Lauser
88135e9f7c CollectToIORank: minor fixes to the boiler plate 2018-07-12 11:00:31 +02:00
Andreas Lauser
d9b3b5c2e5 CollectToIORank: reindent code 2018-07-12 11:00:26 +02:00
Andreas Lauser
4b2d114f90 properly handle exceptions in auxiliary modules and the problems pre- and postprocessing routines
so far, exceptions thrown there caused MPI to desynchronize.
2018-07-11 13:59:29 +02:00
Andreas Lauser
ed0542b53b ebos: make it work in parallel 2018-07-11 13:59:29 +02:00
Andreas Lauser
2c97fa302f auxiliary modules: add a callback that is called after the linear solver but before the solution update
amongst others, this allows to properly implement Schur complements.
2018-07-09 12:13:58 +02:00
Andreas Lauser
a395a6d6ce switch auxiliary modules from std::shared_ptr to raw pointers
lifetime management of these objects by shared pointers is not always
feasible; at least it is not always doable without awful hacks.
2018-07-09 12:13:58 +02:00
Andreas Lauser
cd725aeb8a ebos ECL output: move the parameter extraction code for the well data to the well model
this is supposed to be an implementation detail of the well model.
2018-07-09 12:13:58 +02:00
Andreas Lauser
8319a67862 ebos: make the well model user definable
this introduces a new property `EclWellModel` and uses the class which
it specifies instead of `EclWellManager` directly.
2018-07-09 12:13:57 +02:00
Andreas Lauser
be881c6b00 Merge pull request #335 from totto82/fix_thpress_init
WIP Fix thpress restart
2018-07-05 09:08:12 +02:00
Tor Harald Sandve
95578a5d79 Fix thpress restart
THPRES is read from the restart file
We no longer need to compute it from the initial conditions if
defaulted.
2018-06-29 15:26:08 +02:00
Tor Harald Sandve
22d144c3cd rename completion to connection 2018-06-28 15:49:45 +02:00