Commit Graph

7817 Commits

Author SHA1 Message Date
Svenn Tveit
f933b0e113 Implementation of CSKIN keyword.
To work with WPIMULT, the PI scaling factor had to be stored and applied to calculated CF.
2023-09-14 08:51:01 +02:00
Bård Skaflestad
5fc87fa10c Support Regular Expression Suffix for Keyword Matching
This is mostly to have a general solution for matching region level
summary keywords which may reference a user-defined region set (FIP
keyword, e.g., FIPXYZ) through tags like

    RPR__XYZ -- Average pressure in region, FIPXYZ region set
    ROPR_XYZ -- Oil production rate in region, FIPXYZ region set
    RODENXYZ -- Average oil density in region, FIPXYZ region set

The initial approach introduced in commit cfbafc236 was limited to
selected keywords.

To this end, add a new data member

    std::string ParserKeyword::m_matchRegexSuffix

and introduce a new member function

    bool ParserKeyword::matchesDeckNames()

which matches a candidate keyword string against the m_deckNames,
and, if applicable, as a regular expression against m_deckNames when
appended m_matchRegexSuffix.
2023-09-13 11:11:32 +02:00
Arne Morten Kvarving
9f0ea44f9c fixed: initialize data in ConditionalStorage 2023-09-13 10:04:40 +02:00
Bård Skaflestad
b1672210ba Merge pull request #3669 from steink/well_control_access
Utility functions for manipulation of well-controls
2023-09-12 13:33:53 +02:00
Bård Skaflestad
8cde088e19 Merge pull request #3665 from atgeirr/make-wconinjh-invalid-mode-a-warning
Allow invalid WCONINJH control mode
2023-09-12 13:29:03 +02:00
Atgeirr Flø Rasmussen
92a716fa18 Make it a warning instead of an error to specify an invalid control mode in WCONINJH.
Motivated by the need to accept deck output that contain this error,
that is generated by preprocessing tools.
2023-09-11 17:39:48 +02:00
Bård Skaflestad
1261cf2b5c Remove Unnecessary Semicolons on Closing Braces
These generate diagnostic messages from GCC at '-pedantic' levels.
2023-09-07 17:07:35 +02:00
Stein Krogstad
6ecabdbd7b Add access to injection controls 2023-09-07 13:48:09 +02:00
Stein Krogstad
703431ce61 Add functions to enable edit of prod controls 2023-09-07 13:48:09 +02:00
Bård Skaflestad
53e2758649 Ignore Default Regions in MULTREGT
The MULTREGT keyword has an independent way of defining the default
region--the default value of item 6--and does not need the default
GRIDOPTS-base region protocol of the other *REG keywords.
2023-09-04 10:30:36 +02:00
Bård Skaflestad
f6676fcc1a Reorder MULTREGTScanner Implementation File
Mostly to group related functions and have the same order in the
declaration and the implementation files.  While here, replace an
'enum' with a strong enum since the type does not need to support
arithmetic operations.
2023-09-04 10:30:36 +02:00
Bård Skaflestad
b84c5f46bf Add Method for Identifying Numerical Aquifer Cell IDs
This commit adds a new, focused, member function

  NumericalAquifers::allAquiferCellIds()

which returns a vector of those Cartesian/global cells that have
been marked as defining the model's numerical aquifers through the
AQUNUM keyword.  We intend to use this to identify those NNCs that
go to numerical aquifers--or between numerical aquifer cells--as
those may need special treatment when processing the MULTREGT
keyword.
2023-09-04 08:52:08 +02:00
Vegard Kippe
1728d9d310 Addressing test failure in MulgisegmentWellTests + slight change to avoid modifying Connection.cpp 2023-09-01 15:59:28 +02:00
Tor Harald Sandve
263070f9b4 Merge pull request #3657 from hakonhagland/gecon2
Implement support for GECON keyword
2023-09-01 15:06:36 +02:00
Tor Harald Sandve
1d048e43d2 Merge pull request #3648 from totto82/fix_waghystr
avoid negative C factor
2023-09-01 15:03:02 +02:00
Bård Skaflestad
e179bf87dd Split Keyword Recognition Into Two Parts
The 'base' checks that the input string looks like a valid keyword
and, if so, matches the string against the builtin set of known
keywords.  The full keyword recognition process additionally
includes those keywords that match against keyword collections,
typically the SUMMARY section "meta" keywords in the *_PROBE files.

We will use the 'base' recognition separately to introduce support
for extension keywords with long--more than eight character--names.
2023-08-30 15:27:06 +02:00
Tor Harald Sandve
0fad30d7cb Fix three phase check in waghystr model. Also check for oil phase 2023-08-29 12:39:46 +02:00
Håkon Hægland
612e4c0e9c Move template implementation to header file 2023-08-29 10:36:54 +02:00
Håkon Hægland
7d1f1b103e Move template implementation to header file 2023-08-29 10:28:42 +02:00
Kai Bao
48b759178c fixing the parallel running and testing related to filtrate 2023-08-29 09:08:45 +02:00
Kai Bao
2d35b1e20c adding support for the filtrate summary keywords 2023-08-29 09:08:45 +02:00
Håkon Hægland
bec10dbfbe Implement GECON keyword
Implements support for the GECON keyword.
2023-08-29 01:10:21 +02:00
Vegard Kippe
98adf5a536 Workaround to avoid failing tests, also fixed some tab indenting. 2023-08-28 11:21:34 +02:00
Vegard Kippe
128ba83810 Facilitate using max time step from TUNING/NEXT[STEP] only when specified. Also corrects the persistent behaviour of NEXTSTEP. 2023-08-28 11:21:33 +02:00
Kai Bao
0c64a142c1 removing the vfp_table member from Group class
after GRUPNET is processed, vfp_table is not useful for GROUP class
anymore.
2023-08-25 00:21:45 +02:00
Kai Bao
9a7147bead handle UDQ value for WINJFCNC
restarting related is missing for now
2023-08-23 11:44:13 +02:00
Tor Harald Sandve
e08a4efe65 avoid negative C factor 2023-08-22 12:23:38 +02:00
Bård Skaflestad
f32ff86638 Use Existing Cartesian-to-IJK Functionality
This commit replaces the data members 'nx', 'ny', and 'nz' with a
copy of the GridDims object passed as an argument to the
constructor.  In turn, this enables using GridDims::getIJK() to
compute the cell's IJK tuple from its global Cartesian index instead
of implementing the same calculation locally (and incorrectly).

While here, also include the layer index (K) in determining whether
or not a connection is an NNC, and do this just once instead of once
for each MULTREGT record.  Cells (I,J,K) and (I,J,K+3) might be
connected across pinched-out layers and for the purposes of MULTREGT
that connection should be treated as an NNC.
2023-08-21 11:41:03 +02:00
Bård Skaflestad
2c74d036d6 Tidy Up MULTREGT Scanner Files
In particular, ensure that we include all requisite headers, hide
type aliases that are not needed outside the class, consistently use
std::size_t, split a few long lines, and switch to range-for in one
location.
2023-08-21 11:41:03 +02:00
Bård Skaflestad
2dc650ff72 Switch to Numeric Indices for Record References
A numeric index serves the same purpose as a pointer in this very
specific instance and also has the benefit of being easily
transferable between processes.  This, in turn, means we can remove
the 'getSearchMap()' and 'constructSearchMap()' member functions.
2023-08-21 11:40:44 +02:00
Kai Bao
13eaf8a271 adding unit area 2023-08-17 13:55:33 +02:00
hnil
d157bd627f add THELCOEF field property
this is the thermal expansion coefficient for each cell in a mechanics model
write this to the .INIT file for relevant models
2023-08-17 11:54:18 +02:00
hnil
861be6be91 add THERMEXR field property
this is the thermal expansion ratio for each cell in a mechanics model
write this to the .INIT file for relevant models
2023-08-17 11:54:18 +02:00
hnil
1948dc5d51 add PRATIO field property
this is the Poisson's ratio for each cell in a mechanics model
write this to the .INIT file for relevant models
2023-08-17 11:54:18 +02:00
hnil
27dcd6e246 add POELCOEF field property
this is the coefficient of elasticity for each cell in a mechanics model
write this to the .INIT file for relevant models
2023-08-17 11:54:18 +02:00
hnil
191364d2f3 add BIOTCOEF field property
this is the Biot coefficient for each cell in a mechanics model
write this to the .INIT file for relevant models
2023-08-17 11:54:18 +02:00
hnil
6ed7370db3 add STRESSEQUILNUM field property
this is used to set the stress equilibration region for cells in
mechanics models
2023-08-17 11:54:18 +02:00
hnil
217f8f7b60 add YMODULE field property
this is the Young's modulus for each cell in a mechanics model
write this to the .INIT file for relevant models
2023-08-17 08:34:51 +02:00
hnil
3a66f7c9b6 added: Ymodule dimension in UnitSystem 2023-08-17 08:14:09 +02:00
Bård Skaflestad
58ff8944c4 Merge pull request #3636 from akva2/mech_bc
Add support for MECH boundary conditions
2023-08-16 16:52:21 +02:00
Bård Skaflestad
0c037db51c Merge pull request #3635 from akva2/add_strequil
Add STREQUIL keyword and internalization
2023-08-16 16:12:19 +02:00
Bård Skaflestad
6e4c37d05f Merge pull request #3634 from akva2/mech_runspec
-- added MECH to runspec
2023-08-16 16:11:38 +02:00
hnil
614d71666d add mech boundary conditions 2023-08-16 15:56:45 +02:00
hnil
a0ba0be7cc -- added stress equilibrium data for initconfig 2023-08-16 15:13:38 +02:00
Arne Morten Kvarving
111aa44936 changed: refactorize Equil class into a container template over a record type
make Equil a type alias for EquilContainer<EquilRecord>
2023-08-16 15:13:38 +02:00
Arne Morten Kvarving
df6345e15d EquilRecord: add in-class initializers
then we can default the default constructor
2023-08-16 15:13:38 +02:00
Arne Morten Kvarving
a93e285552 changed: add EquilRecord::serializationTestObject
and use this in Equil::serializationTestObject()
2023-08-16 15:13:38 +02:00
Arne Morten Kvarving
89f59e0050 changed: add a DeckRecord constructor for EquilRecord and use this in Equil 2023-08-16 15:13:38 +02:00
hnil
980a160651 -- added MECH to runspec 2023-08-16 14:15:23 +02:00
Bård Skaflestad
f68fe9b484 Properly Classify Capillary Pressure Keywords
These are not directionally dependent, and they have a unit string
of 'Pressure'.  This didn't use to matter, but upcoming changes
will depend on the unit string being correct.
2023-08-15 17:27:47 +02:00