Commit Graph

889 Commits

Author SHA1 Message Date
Kai Bao
ca7fe55934 silencing shadowing warnings 2019-06-25 13:16:41 +02:00
Joakim Hove
6eea66a332 Use UDAValue for rates and pressure limits in WCONPROD & WCONINJE 2019-06-24 12:54:07 +02:00
Joakim Hove
65f8812e46 Merge pull request #847 from joakim-hove/rft-first-open-bug
Fix bug in RFTConfig first open - for WRFTPLT keyword
2019-06-24 10:02:03 +02:00
Joakim Hove
b14bd5acce Merge pull request #848 from joakim-hove/scan-ignore-SOH
Ignore character SOH (ASCII 1) while parsing
2019-06-24 10:01:51 +02:00
Bård Skaflestad
323e9903b4 File Output: Add Manager for 'INIT' File Based on EclOutput
This commit introduces a new file manager,

    Opm::EclIO::OutputStream::Init

that's intended to replace the low-level operations of Flow's INIT
file writer.  The implementation uses the 'EclOutput' class and is
very similar to that of the 'Restart' stream introduced in commit
992d3b0c.  The commonality between the two file managers might
possibly be extracted to a base class at a later time.

As of right now, the Init class supports outputting vectors of
'int', 'bool', 'float', and 'double'.  Additional types will be
supported when needed.
2019-06-24 09:52:56 +02:00
Joakim Hove
cbc7394d60 Use UDA for WCONPROD::RESV 2019-06-24 08:29:14 +02:00
Joakim Hove
ab6ea86eac Add test deck for UDA simulation 2019-06-24 07:36:36 +02:00
Joakim Hove
747a643288 Ignore character SOH (ASCII 1) while parsing 2019-06-23 12:09:54 +02:00
Joakim Hove
41a74beb3e Fix bug in RFTConfig first open - for WRFTPLT keyword 2019-06-23 10:21:40 +02:00
Joakim Hove
6bbfd66744 Minor testing of UDQValue 2019-06-23 09:10:39 +02:00
Joakim Hove
fe6fdf4589 Remove SUmmaryState::reset() testing 2019-06-23 08:32:22 +02:00
Joakim Hove
bf6a0335b0 Add name property to WellInjectionProperties 2019-06-22 08:01:25 +02:00
Joakim Hove
96b7797c4e Add name to WellProductionPropertis 2019-06-22 08:01:25 +02:00
Bård Skaflestad
63c802666d Don't Infer Number of AQUFETP Records from AQUDIMS
The number of records is unrelated to AQUDIMS Item 5 (NANAQU).  That
item sets the maximum aquifer ID permissible as Item 1 of AQUFETP.

Update unit test accordingly.
2019-06-21 18:06:43 +02:00
Joakim Hove
c9ca9717bc Merge pull request #836 from atgeirr/silence-warnings
Silence shadowing warnings
2019-06-21 16:21:42 +02:00
Atgeirr Flø Rasmussen
4018e4b70b This silences many, but not all shadowing warnings in opm-common.
Includes minor refactoring of ESMry and AggregateGroupData undertaken
with the aid of the original authors to ensure correctness.
2019-06-21 14:48:23 +02:00
Bård Skaflestad
f71dec426a Merge pull request #832 from tskille/ERst
Modified class ERst, added 1 new test to test_ERst
2019-06-21 10:10:55 +02:00
Joakim Hove
3f2eefc638 UDQContext:
- add member const UDQParams&
- add functions has_well_var() and has_group_var()
2019-06-20 11:20:47 +02:00
Torbjørn Skille
7394a654bb Modified class ERst, added 1 new test to test_ERst 2019-06-19 22:35:49 +02:00
Joakim Hove
7d0b6f1bf6 Add member udq_undefined to Well2 object 2019-06-19 13:24:21 +02:00
Joakim Hove
d2f692ebae Merge pull request #818 from joakim-hove/udq-eval-scalar-wells
UDQSet::eval - make sure to return well node
2019-06-17 18:56:35 +02:00
Joakim Hove
e6d299c726 Merge pull request #821 from akva2/janitoring
remove unused variables
2019-06-17 18:55:12 +02:00
Arne Morten Kvarving
2c82787ee9 remove unused variables
quell warnings
2019-06-17 09:08:47 +02:00
Joakim Hove
1bc47ca8a2 Add Well2 accesor functions which bypass SummaryState 2019-06-17 07:39:23 +02:00
Joakim Hove
c09bc36c03 UDQSet::eval - make sure to return well node 2019-06-16 08:42:54 +02:00
Joakim Hove
f01ed130af Merge pull request #813 from joakim-hove/udq-eval-set
Udq eval set
2019-06-14 16:55:51 +02:00
Joakim Hove
5748d06914 Remove unused arguments from EclipseIO::writeTimestep() 2019-06-14 14:38:25 +02:00
Joakim Hove
772bd3cee5 UDQ: Ensure that scalar right hand side is accepted into sets 2019-06-14 11:54:12 +02:00
Joakim Hove
fac74432d4 msim updates:
- add boolean flag report_only to simulation run.
 - add SummaryState argument to well rate callbacks
2019-06-14 11:47:59 +02:00
Bård Skaflestad
71c046bef4 Merge pull request #808 from joakim-hove/injection-unitsystem
Add UnitSystem member to Well2 class
2019-06-12 11:46:45 +02:00
Bård Skaflestad
0a3d26e9be Merge pull request #806 from joakim-hove/UDAValue-reset
Uda value reset
2019-06-12 11:02:48 +02:00
Joakim Hove
edbc9d2af7 UDAValue: add reset() methods 2019-06-12 10:13:01 +02:00
Joakim Hove
44e21101bc UDAValue: the get<double>() method will return SI values 2019-06-12 10:13:01 +02:00
Bård Skaflestad
ba2a12e876 Merge pull request #795 from joakim-hove/use-eval-timestep
Use eval timestep
2019-06-11 20:34:31 +02:00
Joakim Hove
3961f724db Add UnitSsystem member to Well2 class 2019-06-08 12:39:22 +02:00
Kai Bao
0c43f49f13 some white space cleaning up 2019-06-07 14:57:54 +02:00
Joakim Hove
08305b6e30 Extract Summary::eval() out from Summary::add_timestep() 2019-06-07 14:45:18 +02:00
Joakim Hove
82f88ce973 Update total check in SummaryState 2019-06-06 09:39:33 +02:00
Bård Skaflestad
b1067dbc98 Merge pull request #793 from joakim-hove/serialize-summary-state
Add serialization of SummaryState
2019-06-05 15:45:13 +02:00
Bård Skaflestad
a3074d12b5 Teach ERst About Separate Restart Files
This commit makes class 'Opm::EclIO::ERst' able to open separate
restart files (*.X000n, *.F000n).  Specifically, we refactor the
existing class constructor body into a new helper function
'initUnified'.  We add a new helper function 'initSeparate' that
builds the requisite indices in the case of a single report step,
and make the constructor body call 'initUnified' or 'initSeparate'
depending on whether or not the SEQNUM keyword exists in the restart
stream.

Add two new unit tests to exercise the new ability.
2019-06-04 11:01:13 +02:00
Joakim Hove
ec20274fa3 Add serialization of SummaryState 2019-06-03 14:55:38 +02:00
Bård Skaflestad
16e49a0223 RestartIO: Reimplement save() in Terms of OutputStream::Restart
This commit switches the file handling operations of the gateway
function RestartIO::save() to using the OutputStream::Restart
component.  Briefly, this means replacing write_kw() function calls
with calls to Restart::write(), especially since the latter natively
handles PaddedString<8> data.
2019-06-03 14:19:48 +02:00
Bård Skaflestad
725ac521ba Promote 'CharArrayNullTerm' to EclIO::PaddedOutputString
Space-padded vectors of N (usually 8) characters is the typical
representation of character data in ECLIPSE output files.  Support
this type natively in the ECLIPSE IO library.
2019-06-03 14:19:48 +02:00
Bård Skaflestad
82b0a2d82b ECLIPSE I/O: Rename Namespace Opm::ecl -> Opm::EclIO
This reduces the risk of conflicting with the 'ecl' namespace from
LibECL, especially when the latter name is used from within the Opm
namespace.
2019-06-03 14:19:48 +02:00
Joakim Hove
89c8cb886b Correctly detect totals in SummaryState 2019-06-03 12:42:51 +02:00
Bård Skaflestad
9aee2bee71 Merge pull request #668 from joakim-hove/udq-fieldset
UDQ field and group variables
2019-06-03 12:01:37 +02:00
Joakim Hove
32a1c3b5da Merge pull request #762 from joakim-hove/well-controls
Well controls
2019-05-29 06:46:47 +02:00
Bård Skaflestad
a2ec7d7f6d OutputStream::Restart: Pull File Creation Into Constructor
Then we don't have to store copies of the 'formatted' and 'unified'
flags, and are also able to remove the 'prepareStep()' function.  We
will reintroduce these features if we decide to add support for
keeping the output stream open between separate restart output
requests (i.e., between calls to EclipseIO::writeTimeStep()).
2019-05-27 21:00:52 +02:00
Bård Skaflestad
df1a011b78 Redo Public Interface of OutputStream::Restart
In particular, make the stream() function into a private detail of
the implementation and add an overload set for outputting keyword
data and messages to the underlying output stream.  Update unit test
accordingly.

Suggested by: Atgeirr F. Rasmussen
2019-05-27 21:00:52 +02:00
Bård Skaflestad
992d3b0ce5 Restart Output: Add File Management Facility
This commit introduces a new class,

    Opm::ecl::OutputStream::Restart

that handles the details of opening restart output streams (all
combinations of formatted/unformatted and unified/separate), as well
as correctly positioning the stream 'put' indicator if we're opening
an existing unified restart file.  In most cases, this will be a
simple append operation (std::ios_base::app), but there are some
subtleties that require more precise control.  The new class is
befriended by EclOutput and ERst in order to access private member
functions and data members of these classes.  That is needed in
order to handle file resize operations since some of the requisite
information is only available in those two classes.

We use Boost.Filesystem to implement file resize, as if by POSIX
function ::truncate(), and also to simplify filename generation.
These calls can be switched to std::filesystem once the project
requires C++17.

Intended use of the Restart class is

    Restart rst(resultSet, formatted, unified);
    rst.prepareStep(17);  // Report step/SEQNUM 17.

    rst.write("INTEHEAD", ihead);
    // ...

The 'prepareStep' operation opens the file stream (if needed) and
also outputs a SEQNUM record in the case of a unified output stream.
Moreover, the 'resultSet' is a pair of output directory and case's
base name (e.g., "./mpi.np4/2019.05.14.01" and "NORNE_ATW2013") and
the formatted/unified flags are bools wrapped in structures.

The Restart class is intended to take over the role of the
'filename' string parameter of RestartIO::save().

Add a set of unit tests to demontrate usage and abilities of class
Restart.
2019-05-27 21:00:52 +02:00