Commit Graph
100 Commits
Author SHA1 Message Date
Bård Skaflestad a64f660bff Merge pull request #2589 from alfbr/group-tests5
Group tests5
2020-05-05 19:58:13 +02:00
Bård Skaflestad e2c85db9c3 Merge pull request #2585 from alfbr/group-tests4
Group tests4
2020-04-30 19:02:14 +02:00
Bård Skaflestad b34a10f611 Merge pull request #2580 from alfbr/group-tests3
Group tests3
2020-04-30 14:28:54 +02:00
Bård Skaflestad 541c57106d Merge pull request #2583 from GitPaean/increasing_maxit_satFromPc
increasing the max iteration number for statFromPc
2020-04-30 13:54:04 +02:00
Bård Skaflestad c8754551aa Merge pull request #2577 from joakim-hove/instantiate-optional-double
Instantiate std::optional<double> and std::optional<std::string>
2020-04-29 17:00:07 +02:00
Bård Skaflestad 02923a6dee Merge pull request #2571 from alfbr/group-tests2
Activate a bunch of group tests.
2020-04-28 15:44:12 +02:00
Bård Skaflestad 9756edce50 Remove Unused 'currentControl' Variable 2020-04-27 21:29:10 +02:00
Bård Skaflestad a7a3aec72d Merge pull request #2567 from alfbr/update-wsegsicd
Intended to update WSEGSICD test
2020-04-27 14:11:03 +02:00
Bård Skaflestad 87d58a08b1 Merge pull request #2553 from alfbr/add-group-tests
Added the remaining group tests that are correct.
2020-04-27 13:43:19 +02:00
Bård Skaflestad 19461e6b83 Merge pull request #2563 from atgeirr/add-json-param-printout
Add logging of linear solver parameter tree.
2020-04-25 14:13:11 +02:00
Bård Skaflestad b288602dfc Equilibration: Add Experimental Support for Horizontal Subdivision
This commit adds a very early, alpha-quality implementation of the
"horizontal subdivision" strategy (N < 0) of the EQUIL directive.
This in turn enables more accurate derivations of the initial fluids
in place.

Interactions with SWATINIT are completely untested, and the initial
Rs/Rv derivations in this context are possibly incomplete.  More
work is likely needed in this area, but this does at least enable
more widespread testing.
2020-04-22 20:10:19 +02:00
Bård Skaflestad 4b04a36a2f Initial State Calculator: Prune Unneeded Steps and Variables
In particular, remove unneeded function parameters and don't form a
per-cell PVT zero-based index when we're not going to use the
values.
2020-04-22 20:10:19 +02:00
Bård Skaflestad f0ed53a6f1 Vertical Extent: Prune Unneeded 'cellcount' Parameter
The purpose of this function is to determine the vertical extent of
a set of cells.  Counting the number of cells in the region is not
its responsibility.
2020-04-22 20:10:19 +02:00
Bård Skaflestad 6292855bd5 Initial State Calculator: Refactor Cell Loop
This commit splits out the per-cell initial state derivation to two
separate helper functions, equilibrateCellCentres() and cellLoop().
The latter manages the per-cell assignments to pertinent data
members and calls an arbitrary "equilbration method" that is
provided as a callback and which calculates per-cell phase
pressures, phase saturations and mixing ratios (Rs/Rv).

In turn, the equilibrateCellCentres() uses the cellLoop() to affect
the existing equilibration procedure within a cell using values at
the depths of the cell centres only.
2020-04-22 20:10:19 +02:00
Bård Skaflestad 7180f0a885 Merge pull request #2549 from goncalvesmachadoc/patch-2
Remove BDENSITY
2020-04-20 19:30:35 +02:00
Bård Skaflestad c72efc3f56 Merge pull request #2548 from alfbr/fix-test
Reduced maximum time step on four MSW tests.
2020-04-20 16:47:42 +02:00
Bård Skaflestad 9625d0b48c Merge pull request #2531 from GitPaean/msw_keywords
adding the summary output for several pressure drop values for MSW
2020-04-17 20:54:49 +02:00
Bård Skaflestad 7550e3a04d Merge pull request #2547 from alfbr/group-tests
Added 9_1A through 9_2A tests.
2020-04-17 18:23:56 +02:00
Bård Skaflestad fd2d8536eb Refactor Phase Saturation Derivation Procedure
This commit introduces a new helper class,

    Opm::EQUIL::Details::PhaseSaturations<>

that subsumes the responsibility of the existing helper function

    Opm::EQUIL::phaseSaturations<>()

and generalises that functionality to arbitrary depth points within
single cells.  This is in preparation of adding support for the N<0
case of the initial fluid in place procedure defined in the EQUIL
keyword.  The class consumes an already equlibrated pressure table
for the pertinent equilibration region, calculates capillary
pressure values and inverts Pc curves to derive saturation values.
If the capillary pressure curves are constant within a cell, then a
simple depth consideration with respect to the implied sharp phase
interface is used to derive saturation values.  We also preserve
existing support for SWATINIT-type initialisation of the water
saturation field.

Switch InitialStateComputer<>::calcPressSatRsRv() over to using the
pressure and saturation helper classes instead of the original
helper functions since this provides additional control.  Also
remove those helper functions to reduce risk of confusion over which
method to use.  Update the unit tests accordingly.
2020-04-14 23:01:02 +02:00
Bård Skaflestad 6243e62b69 Equilibration: Reenable Existing Unit Tests in 'test_equil.cc'
These unit test were previously disabled.  While here, also fix some
'missing declaration' errors by putting the test functions into a
private namespace.

At some point we should rewrite this to use Boost.Test.
2020-04-14 23:01:02 +02:00
Bård Skaflestad d039a1d60e Basic Equilibration: Prepare for Subdivision Strategy
This commit is the first step of several that implements ECLIPSE's
"accurate fluid-in-place" model initialization procedure based on
subdividing the vertical range/extent of individual cells.  This
first step puts the O/G/W phase-pressure calculation into a helper
class,

    Opm::EQUIL::Details::PressureTable<>

through which phase pressure values can be calculated at abritrary
depths rather than just at the cell centre depths.  In other words,
this helper class extends and subsumes the responsibilities of the
existing helper functions

    Opm::EQUIL::Details::PhasePressure::assign()
    Opm::EQUIL::Details::PhasePressure::oil()
    Opm::EQUIL::Details::PhasePressure::gas()
    Opm::EQUIL::Details::PhasePressure::water()

We still use the same ODE-based evaluation procedure for the phase
pressures and the equilibrateOWG() helper function still computes
the phase pressure values at cell centre depths only.

That, in turn, corresponds to the "N = 0" case (steady state) of the
basic equilibration facility.
2020-04-14 23:01:02 +02:00
Bård Skaflestad a7126f45cd Merge pull request #2529 from alfbr/group-control-tests
Group control tests
2020-04-13 18:44:08 +02:00
Bård Skaflestad f4dbfc119a Merge pull request #2525 from joakim-hove/enabled-features
Remove keywords SEPARATE, RUNSUM and DATES from MissingKeywords list
2020-04-07 09:45:05 +02:00
Bård Skaflestad ea4b25cb4c Merge pull request #2522 from joakim-hove/move-string-util
MOve String utility in opm-common
2020-04-04 21:58:22 +02:00
Bård Skaflestad 022ba52200 Merge pull request #2514 from akva2/fix_filesystem_gcc9
changed: avoid calling parent_path on paths that has none
2020-04-03 12:41:14 +02:00
Bård Skaflestad affeb9361c Merge pull request #2515 from blattms/add-missing-comm-headers
[FlexibleSolver] Added missing headers determine IsComm.
2020-04-02 18:48:12 +02:00
Bård Skaflestad 74368c5f98 Merge pull request #2452 from blattms/use-region-temperature-cleaned
Use correct region temperature when calculating RS/RV
2020-04-02 15:08:53 +02:00
Bård Skaflestad 54ef525e07 Merge pull request #2328 from bska/currctrl-restart-io
Save and Restore Well's Current Control Target Mode
2020-03-26 15:11:25 +01:00
Bård Skaflestad d95eb32510 Save and Restore Well's Current Control Target Mode
This commit uses the new restart file support for active well
control target modes to save and restore the run's active targets.
2020-03-26 14:20:12 +01:00
Bård Skaflestad 7e6d283665 Merge pull request #2495 from akva2/use_aquifer_config
changed: use AquiferConfig when setting up aquifers
2020-03-24 14:31:52 +01:00
Bård Skaflestad fda4a29c7e Merge pull request #2459 from jalvestad/group_constraints_summary
Make available current Production/Injection Group Control parameters for use in  Restart
2020-03-19 16:54:34 +01:00
Bård Skaflestad 3b67bee169 Merge pull request #2476 from blattms/rely-on-persistent-local-id
Rely on local ids being persistent across grid modifications
2020-03-18 22:51:06 +01:00
Bård Skaflestad d7522c68b2 Merge pull request #2473 from GitPaean/removing_segvalv_from_missing_features
removing WSEGVALV from MissingFeatures.cpp
2020-03-13 17:35:57 -05:00
Bård Skaflestad 1af796257c Merge pull request #2348 from goncalvesmachadoc/patch-1
Add missing keywords to list
2020-03-11 15:40:02 -05:00
Bård Skaflestad 21dc2620fd Merge pull request #2453 from akva2/eclstate_serialize
drop serialization from ParallelEclipseState
2020-03-11 12:15:46 -05:00
Bård Skaflestad c53d8c58f7 Merge pull request #2450 from akva2/serializer_summaryconfig
use eclmpiserializer for SummaryConfig broadcast
2020-03-10 20:32:06 -05:00
Bård Skaflestad 8700ea1310 Merge pull request #2451 from akva2/followup_stonetype
update serialization for relocated KrModel
2020-03-10 07:58:43 -05:00
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