Commit Graph
100 Commits
Author SHA1 Message Date
Bård Skaflestad a449b2e2e6 Merge pull request #2415 from akva2/vappars_supported
fixed: VAPPARS is supported, remove from unsupported features list
2020-03-06 07:40:41 -06:00
Bård Skaflestad 6688c19a77 Merge pull request #2397 from akva2/no_serialization_fluidsystem
changed: no need to serialize the FluidSystem any more
2020-03-03 21:51:10 -06:00
Bård Skaflestad 8c17e05c7d Merge pull request #2386 from akva2/use_compressed_trans
use compressed indices setting up transmissibilities
2020-03-03 06:00:29 -06:00
Bård Skaflestad 8ed3b82c8a Merge pull request #2385 from akva2/use_compressed_rock
use compressed field properties setting up rock parameters
2020-03-02 13:06:29 -06:00
Bård Skaflestad c3f127afa0 Merge pull request #2384 from akva2/use_compressed_perm
use compressed properties setting up permeabilities
2020-03-02 11:56:13 -06:00
Bård Skaflestad 8eeaf35f35 Merge pull request #2357 from akva2/conditional_test_suite
disable building of tests if Boost::test is not found
2020-02-24 21:05:26 -06:00
Bård Skaflestad f0fb6b0f89 Merge pull request #2014 from akva2/use_cxx11
changed: use std::regex instead of boost::regex
2020-02-11 05:46:01 -06:00
Bård Skaflestad 115d1107f7 Add Parallel Serialization Support for CurrentControl
This commit adds support for serializing Opm::data::CurrentControl
between parallel processes.
2020-02-06 09:49:30 +01:00
Bård Skaflestad 645b07bf7f Merge pull request #2305 from akva2/fix_thermal
Parallel thermal simulations
2020-01-29 13:27:45 +01:00
Bård Skaflestad 53f05a7df6 Chase Runspec Member Update
The Runspec class gained a new data member of type SatFuncControls.
Update the serialization code accordingly.
2020-01-25 13:09:49 +01:00
Bård Skaflestad ac9a81e20b Merge pull request #2300 from OPM/remove-3dprops-testing-flag
Remove the stale flag ENABLE_3DPROPS_TESTING
2020-01-24 18:07:43 +01:00
Bård Skaflestad 570cf08fc4 Merge pull request #2290 from akva2/noecl_flush_fluidsystem
Avoid deck usage on non-root processes setting up FluidSystem
2020-01-21 10:47:44 +01:00
Bård Skaflestad 73a58c4599 Merge pull request #2287 from akva2/avoid_deck_for_phases
avoid instancing a new Runspec from deck to obtain active phases
2020-01-17 16:22:26 +01:00
Bård Skaflestad d42bbbe15a Merge pull request #2286 from akva2/avoid_deck_unitsystem
changed: avoid deck usage
2020-01-17 15:52:09 +01:00
Bård Skaflestad b9a16f608e Merge pull request #2285 from akva2/reduce_duplication
changed: avoid near-duplicate code
2020-01-17 15:37:04 +01:00
Bård Skaflestad b1fc78056e Merge pull request #2277 from akva2/noecl_flush_schedule
Avoid using deck setting up Schedule on non-root processes
2020-01-17 15:36:34 +01:00
Bård Skaflestad b455faf067 Parallel Restart: Chase RFTConfig API Update
The RFTConfig object gained a new data member and constructor
argument, in addition to altering the type of the data member
well_open_rft_name from an unordered_set to an unordered_map.

Update serialization code accordingly.
2020-01-14 16:49:33 +01:00
Bård Skaflestad 558873bc80 Merge pull request #2274 from atgeirr/fix-auto-in-prototype
Change auto in prototype to template argument.
2020-01-10 10:38:57 +01:00
Bård Skaflestad d20bec2f71 Merge pull request #2272 from akva2/fix_gcc5
fixed: use std::make_tuple instead of initializer list
2020-01-09 11:16:31 +01:00
Bård Skaflestad 736f647936 Merge pull request #2268 from akva2/noecl_flush_summarycfg
Avoid using global ecl state setting up SummaryConfig on non-root processes
2020-01-08 16:48:32 +01:00
Bård Skaflestad 646e7d4eb1 Merge pull request #2265 from akva2/fix_serial_build
fix build without mpi
2020-01-06 17:02:08 +01:00
Bård Skaflestad dfb4946f13 Restart: Don't Access Solvent Saturation Unless Active
This commit ensures that the previous solvent restart fix (commit
afba6c8e8, PR #2023) does not attempt to index into the data member
solventSaturation_ unless solvent is activated.
2020-01-06 14:11:11 +01:00
Bård Skaflestad 8a378249f7 Merge pull request #2250 from akva2/noecl_flush
More MPI serialization support
2019-12-20 17:08:01 +01:00
Bård Skaflestad b64116a70c Merge pull request #2254 from GitPaean/clang-format-aquifer
re-formatting aquifer files with clang-format
2019-12-20 16:50:11 +01:00
Bård Skaflestad 80714243c6 Merge pull request #2248 from akva2/noecl_flush
More MPI serialization support
2019-12-20 10:44:24 +01:00
Bård Skaflestad f4c875ad3e Merge pull request #2247 from akva2/noecl_flush
More MPI serialization support
2019-12-19 17:47:49 +01:00
Bård Skaflestad 2274647862 Merge pull request #2246 from akva2/noecl_flush
More MPI serialization support
2019-12-19 13:59:15 +01:00
Bård Skaflestad c256bfdfa4 Merge pull request #2170 from atgeirr/msw-thp-potential
Compute well potential of multi-segment wells with a THP constraint
2019-12-06 10:02:50 +01:00
Bård Skaflestad ce1e0691a8 Aquifer Restart: Address Review Comments
Mostly 'throw'ing in the case of unsupported operations.  While
here, also remove an unused header.
2019-12-05 13:41:05 +01:00
Bård Skaflestad 143b45ed52 EclWriter: Initialize Aquifers From Restart Data
This commit calls the aquifer model's 'initFromRestart' function if
the loadParallelRestart() function happens to return any aquifer
data from the restart file.  Such data is currently limited to two
items of information for analytic aquifers (from XAAQ vector), but
future extensions are likely.
2019-12-05 09:41:21 +01:00
Bård Skaflestad 8a764568e1 EclProblem: Provide Mutable Access to Aquifer Model Object
This commit adds a new public member function,

    EclProblem::mutableAquiferModel()

that returns a read/write reference to the contained EclAquiferModel
object.  The immediate use-case is initializing analytic aquifers
from restart data.
2019-12-05 09:41:21 +01:00
Bård Skaflestad 4c4a893781 Aquifer Model: Add Initialization from Restart Data
This commit adds a new member function,

    initFromRestart()

to the EclBaseAquiferModel and the BlackoilAquiferModel.  The former
does nothing, the latter calls AquiferInterface::initFromRestart()
on the contained analytic aquifer objects.
2019-12-05 09:41:21 +01:00
Bård Skaflestad df86d01486 Add Means of Initializing Analytic Aquifers From Restart Data
This commit adds a new member function,

    AquiferInterface::initFromRestart()

that consumes a vector<data::AquiferData> constructed from
information in the restart file's SAAQ and XAAQ vectors.  At the
moment, we use the initial aquifer pressure, the total produced
liquid volume and the current aquifer pressure at restart.

We implement the interface's member function in terms of the virtual
function

    AquiferInterface::assignRestartData()

that must be overridden in derived classes.

Implement a trivial such function for Carter-Tracy aquifers, and a
function that only stores the current aquifer pressure for the
Fetkovich aquifer model.

Additionally, record whether or not the aquifer object was
initialised from a previous solution.  If so, don't reset total
produce liquid volumes or aquifer pressures to their base values
from the model input file.
2019-12-05 09:41:21 +01:00
Bård Skaflestad 92cbdf3c63 Merge pull request #2207 from joakim-hove/wellstate-open-for-output
Refactor WellState SHUT
2019-12-04 18:16:19 +01:00
Bård Skaflestad 0a6b5f0ea9 Merge pull request #2202 from akva2/janitoring
Janitoring
2019-12-02 19:56:16 +01:00
Bård Skaflestad 334acd18ad Merge pull request #2164 from atgeirr/remove-wells-struct-rebased
Avoid using the Wells struct.
2019-11-25 09:56:06 +01:00
Bård Skaflestad 26c8d78eac Merge pull request #2155 from blattms/print-mpi-omp-size
Print number of MPI/OMP threads at start and end.
2019-11-21 16:06:37 +01:00
Bård Skaflestad ed323b64ed Merge pull request #2162 from GitPaean/removing_unsupported_keywords
removing several keywords from MissingFeatures.cpp
2019-11-16 23:35:08 +01:00
Bård Skaflestad 55a49b8146 Merge pull request #2073 from goncalvesmachadoc/goncalvesmachadoc-addProdInjReportPRT
Add Production and Injection Reports to PRT
2019-11-06 08:09:19 -06:00
Bård Skaflestad a4eaf07243 Merge pull request #2071 from totto82/fix_restart
Always allocate buffers when restarting
2019-10-18 18:09:48 -05:00
Bård Skaflestad 7296e7fe82 Merge pull request #2060 from akva2/decouple-libecl-final
remove libecl dependency
2019-10-16 22:18:42 -05:00
Bård Skaflestad aaae8a4f49 Merge pull request #2052 from bska/rewrite-ecl-output-test
Reimplement 'test_ecl_output' Unit Test Using ESmry
2019-10-14 21:31:37 -05:00
Bård Skaflestad e33be89e6d Reimplement 'test_ecl_output' Unit Test Using ESmry
This commit switches the 'test_ecl_output' unit test to using the
EclIO::ESmry class from OPM-Common.  We add simple alternative
implementations of ecl_get_field_var() and ecl_get_general_var() in
terms of ESmry to avoid rewriting the test code itself.

As class ESmry does currently not support reading non-unified
(separate) summary files (.S000n), we temporarily switch the deck to
using unified output.
2019-10-14 19:43:11 -05:00
Bård Skaflestad 239677d48a Merge pull request #2043 from bska/prepare-smry-without-libecl
Prepare for Making Summary Writing Independent of LibECL
2019-10-07 05:01:53 -05: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
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
Bård Skaflestad c06881b04e Merge pull request #2027 from joakim-hove/missing-keywords-V
Add missing features on U, V and T
2019-09-30 14:44:16 +02:00
Bård Skaflestad 6aa701ae04 Merge pull request #2018 from joakim-hove/summary-state-time
Pass sim start argument to SummaryState constructor
2019-09-20 13:33:03 +02:00
Bård Skaflestad e9aec288e1 AmgCpr: Follow Relocation of "matrixblock.hh"
Taken from commit d71f7045.
2019-09-10 18:00:34 +02:00
Bård Skaflestad d08af810ef Remove FILLEPS from MissingFeatures
Pull request OPM/opm-common#849 added support for this keyword.
2019-07-28 17:58:30 +02:00
Bård Skaflestad 6cf0710271 Flow: Verify Consistent Array Dimensions
The output code has an unfriendly error mode in which we
unceremoniously crash--without writing any data--if some declared
array dimensions from RUNSPEC aren't big enough to hold all the
dynamic objects (wells, groups, connections &c).

Verify that the declared dimensions are indeed big enough for the
current simulation run before starting the simulator to ensure that we
don't waste a lot of computational effort if, for instance, the first
output is very close to the end of the simulation.
2019-06-30 23:50:38 +02:00
Bård Skaflestad 273e6a4dbc Merge pull request #1924 from akva2/suppress_no_mpi
suppress some unused variables warnings without mpi
2019-06-29 16:06:25 +02:00
Bård Skaflestad b35856e77e Merge pull request #1926 from joakim-hove/add-udq-regression-test
Add UDQ_WCONPROD model to integration testing
2019-06-29 16:04:42 +02:00
Bård Skaflestad a98caf1d2a Format Specifier '%p' Requires Pointers to Void
While here, also print both 'ctrls1' and 'ctrls2' instead of
printing 'ctrls2' twice.
2019-06-26 14:39:14 +02:00
Bård Skaflestad 402320267a Merge pull request #1912 from akva2/janitoring
Some janitoring
2019-06-26 14:04:03 +02:00
Bård Skaflestad 35a174d326 Merge pull request #1909 from GitPaean/fixing_completions
considering not OPEN connection when updateCompletions in WellInterface.
2019-06-24 22:18:37 +02:00
Bård Skaflestad 123b578bdd Prune Additional Supported Keywords
Support for

    AQUCT, AQUTAB, COMPLUMP

was introduced quite some time ago.
2019-06-05 13:41:31 +02:00
Bård Skaflestad 0760442ac1 Remove FIPNUM From List of Unsupported Keywords
We've supported the keyword--both in the deck reader (parser) and in
the simulator--for a long time.
2019-06-05 12:42:26 +02:00
Bård Skaflestad f9a6b68b1e Merge pull request #1873 from totto82/output_grid
output .INIT and .GRID also on restart
2019-06-03 13:24:40 +02:00
Bård Skaflestad 6c0e5fb5a1 Merge pull request #1833 from tskille/run-regressionTest
run compareECL once, checking all files in one go
2019-06-03 11:50:50 +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
Bård Skaflestad f293e6520b Merge pull request #1848 from blattms/write-trans-direct-vertical-neighbors-tranz
Write transmissibility between direct vertical neighbors into TRANZ.
2019-05-21 12:42:17 +02:00
Bård Skaflestad 4cee9a01f6 Merge pull request #1846 from bska/update-rft-data
Update Data: Make Protocol Aware of RFT Files

Merging per approval.
2019-05-20 10:49:17 +02:00
Bård Skaflestad c4134fba76 Update Data: Make Protocol Aware of RFT Files
If a simulation run intentionally changes an RFT file, then that
change should be reflected in the new reference data.
2019-05-16 13:38:57 +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
Bård Skaflestad 4d76ea5000 Merge pull request #1809 from atgeirr/log-messages-only-once
Clear DeferredLogger's message container after logging.
2019-04-30 15:47:40 +02:00
Bård Skaflestad 75e8508e3b Merge pull request #1803 from blattms/remove-warnings
Remove warnings experienced with g++-8
2019-04-26 17:41:55 +02:00
Bård Skaflestad 08be4ed0f9 Merge pull request #1789 from blattms/sequential-cpr-dune-2.4
Support CPR when using DUNE 2.4 and no MPI
2019-04-11 22:10:37 +02:00
Bård Skaflestad 2932531572 Merge pull request #1782 from GitPaean/upadting_perforation_solution_msw
updating perforation pressure and rates for MSW well
2019-04-05 16:41:43 +02:00
Bård Skaflestad dce27c6829 WellState FIBO: Return Segment Vectors from report()
This commit extends class WellStateFullyImplictBlackoil to report
segment-related quantities as Opm::data::Segment objects (included
in Opm::data::WellRates objects).  All wells have at least a top
segment in the context of WellState FIBO, so there is a meaningful
value to report for each well.

We put the extraction of segment-related quantities into a new
helper function

    WellStateFullyImplicitBlackoil::reportSegmentResults()

to avoid cluttering up the body of report() more than absolutely
needed.

The primary use-case for this is assigning appropriate values to
items 8 through 11 of restart vector RSEG.  In turn, this will
enable restoring these quantities from a restart file.
2019-04-04 16:22:19 +02:00
Bård Skaflestad 7523ffe15f Construct Segment-Related Structures in initLegacy()
Forgotten in previous commit.  This restores our ability to run
flow-legacy with the new WellStateFullyImplicitBlackoil::report().

Thanks to Kai Bao for alerting me to the issue.
2019-04-04 16:22:19 +02:00
Bård Skaflestad 55e452c605 Well State FIBO: Report() Segment Results by Seg-Numbers
This commit adds a new data member, seg_number_, that maps a linear
segment index (0 .. #segments - 1) to the appropriate segment number
(segment ID).  This ensures that member function report() is able to
produce segment results in terms of user-assigned segment numbers
rather than linear indices internal to the simulator and its state
variables.  This, in turn, decouples the well state object from the
output (summary/restart) code and makes the restart facility more
self contained.

Rewrite the unit test for WellStateFullyImplicitBlackoil to account
for the new indexing scheme when assigning the synthetic segment
results.

While here, also abide by the file's naming convention for data
members and locals.
2019-04-04 16:22:19 +02:00
Bård Skaflestad 45689f3ade WellState FIBO (test): Add Some Vertical Spacing for Separation
Suggested by: [at]GitPaean
2019-04-04 16:22:19 +02:00
Bård Skaflestad e958ee1139 WellState FIBO: Initialize 'nseg_' in init()
Needed to guarantee that numSegments(wellID) returns sensible values
for wellID = numWells()-1 in the case of no multi-segment wells.
2019-04-04 16:22:19 +02:00
Bård Skaflestad 2418df701f WellState FIBO: Return Segment Vectors from report()
This commit extends class WellStateFullyImplictBlackoil to report
segment-related quantities as Opm::data::Segment objects (included
in Opm::data::WellRates objects).  All wells have at least a top
segment in the context of WellState FIBO, so there is a meaningful
value to report for each well.

We put the extraction of segment-related quantities into a new
helper function

    WellStateFullyImplicitBlackoil::reportSegmentResults()

to avoid cluttering up the body of report() more than absolutely
needed.

The primary use-case for this is assigning appropriate values to
items 8 through 11 of restart vector RSEG.  In turn, this will
enable restoring these quantities from a restart file.
2019-04-04 16:22:19 +02:00
Bård Skaflestad 519e6ad174 Make WellStateFIBO Header Self Contained
In particular, include Schedule.hpp since commit 222241b made the
init() member function depend on Schedule but failed to add the
requisite header.
2019-04-04 16:22:19 +02:00
Bård Skaflestad ded12a6059 Merge pull request #1723 from andlaus/externalSetupTime
flow: account for external setup costs
2019-02-12 09:10:14 -06:00
Bård Skaflestad a689973760 Merge pull request #1708 from blattms/warn-parallel-logging-fallout
Warn about parallel logging fallout only on request / Use uppercase logfiles

Fixes OPM/opm-common#606
2019-01-17 16:13:25 +01:00
Bård Skaflestad 767df6c6fe Deferred Logger: Support Older MPI Implementations
The MPI_Pack() function does not support pointers-to-const until
MPI-3.
2019-01-14 18:10:53 +01:00
Bård Skaflestad 1f3a9cc84a Fixed potential derefernce of end operator when applying EDITNNC. 2018-12-20 11:44:46 +01:00
Bård Skaflestad c3de357f30 Merge pull request #1567 from blattms/tighten-regex-for-parallel-output
Let ParallelFileMerger only warn about CASENAME.[0-9]*.EXT files.
2018-09-12 12:21:47 +02:00
Bård Skaflestad b087cf54af Merge pull request #1495 from blattms/red-black-ilu
Added support for red black ilu
2018-08-01 18:52:07 +02:00
Bård Skaflestad 6a3199dbe8 Merge pull request #1540 from andlaus/remove_FluidSystems_namespace
adapt to the fluid system naming convention change in opm-material
2018-07-27 21:06:23 +02:00
Bård Skaflestad 0f4354d8fd Include <sstream> for Class "ostringstream"
Some implementations do not get a transitive definition of class
"ostringstream" in scope through the other headers and therefore
fail to compile the member function

  SimulatorReport::reportStep(std::ostringstream&)
2018-04-04 19:00:51 +02:00
Bård Skaflestad 65a63b95a3 RegionMapping<>: Support arbitrary region IDs
This commit introduces a new public method, activeRegions(), that
retrieves those region IDs that contain at least one active cell.
We furthermore extend the cells() method to support lookup of
arbitrary region IDs.  Non-active region IDs produce empty cell
ranges.

Intended use case is

    for (const auto& reg : rmap.activeRegions()) {
        const auto& c = rmap.cells(reg);

        // use c
    }
2018-01-02 14:28:06 +01:00
Bård Skaflestad e174e32c44 convertSats(): Transpose loop nest for locality of data 2018-01-02 14:28:06 +01:00
Bård Skaflestad d7e098bccd Mark non-template functions in headers as 'inline' 2018-01-02 14:28:06 +01:00
Bård Skaflestad 6c5ed7b8ff Add a layer of glue to extract data from deck
This is a work in progress.
2018-01-02 14:28:06 +01:00
Bård Skaflestad 17e93c5cce Install crude handling of data point outside vertical span
The initial implementation of RK4IVP<>::operator() failed to take
into account the possibility that we might need to evaluate the
function outside the vertical span for which it was initially
defined.  This situation occurs, for instance, in the not uncommon
cases of the GOC being above or the WOC being below the model.

This commit installs a crude Hermitian extrapolation procedure to
handle these cases.  Refinements are likely.
2018-01-02 14:28:06 +01:00
Bård Skaflestad b21d3734db Document requirements of CellRange. 2018-01-02 14:28:06 +01:00
Bård Skaflestad db2a21442c Document public interface of phasePressures(). 2018-01-02 14:28:06 +01:00
Bård Skaflestad 0ce1e96a00 Add reverse look-up mapping for region vectors
Class RegionMapping<> provides an easy way of extracting the cells
that belong to any identified region (e.g., as defined by EQLNUM) of
the deck.
2018-01-02 14:28:06 +01:00
Bård Skaflestad 4c63659b61 Compute phase pressures in subset of cells
This commit adds support for assigning the initial phase pressure
distribution to a subset of the total grid cells.  This is needed in
order to fully support equilibration regions.  The existing region
support (template parameter 'Region' in function 'phasePressures()')
was only used/needed to define PVT property (specifically, the fluid
phase density) calculator pertaining to a particular equilibration
region.
2018-01-02 14:28:06 +01:00
Bård Skaflestad 5ec0aec02e Add basic equilibration facility
This commit adds a simple facility for calculating initial phase
pressures assuming stationary conditions, a known reference pressure
in the oil zone as well as the depth and capillary pressures at the
water-oil and gas-oil contacts.

Function 'Opm::equil::phasePressures()' uses a simple ODE/IVP-based
approach, solved using the traditional RK4 method with constant step
sizes, to derive the required pressure values.  Specifically, we
solve the ODE

      dp/dz = rho(z,p) * g

with 'z' represening depth, 'p' being a phase pressure and 'rho' the
associate phase density.  Finally, 'g' is the acceleration of
gravity.  We assume that we can calculate phase densities, e.g.,
from table look-up.  This assumption holds in the case of an ECLIPSE
input deck.

Using RK4 with constant step sizes is a limitation of this
implementation.  This, basically, assumes that the phase densities
varies only smoothly with depth and pressure (at reservoir
conditions).
2018-01-02 14:28:06 +01:00
Bård Skaflestad 0c61f63900 Merge pull request #1265 from GitPaean/fixing_test_wellmodel
not using std::make_unique in test_wellmodel

Closes #1264
2017-09-04 17:33:45 +02:00
Bård Skaflestad 44c02a262e Merge pull request #1240 from blattms/work-around-unstable-matrix-inversion
Work around unstable matrix block inversion in DUNE 2.3 und 2.4
2017-07-04 12:34:01 +02:00
Bård Skaflestad 1e0428d821 Merge pull request #1208 from atgeirr/refactor-sequential-solver
Refactor sequential solver
2017-06-09 15:10:11 +02:00
Bård Skaflestad bdba47e5ac Merge pull request #1105 from atgeirr/change-default-output-dir
Change default output dir
2017-03-17 13:58:08 +01:00
Bård Skaflestad d700f3e946 Merge pull request #1104 from atgeirr/allow-restart-without-opmextra
Allow restarting without OPMEXTRA field in restart file.
2017-03-17 11:18:06 +01:00