09ffacb5bfbe0301cae9f4ce2f6f56fd6448ee8d
The existing implementation used the UDQ State object to track
pending ASSIGN operations, mainly in terms of the report step index,
but this implies that the logic implicitly assumes an ASSIGN
operation can run at most once per report step. That assumption
usually holds, but fails if the ASSIGN operation is triggered from
an ACTIONX block that happens to run multiple times within a report
step.
This commit instead introduces a new data member,
UDQConfig::pending_assignments_
that keeps track of all ASSIGN operations that have been added for
the current report step. We clear those pending assignments when
forming a new Schedule block (ScheduleState object), under the
assumption that all pending ASSIGN operations have been affected at
the previous time level (report step).
In effect, this new data member assumes the role of
UDQState::assignments
and we therefore remove that data member and update the signature of
UDQState::add_assign()
to account for the fact that the 'report_step' parameter is no
longer needed.
opm-common: Tools for Eclipse reservoir simulation files
The Open Porous Media (OPM) software suite provides libraries and tools for modeling and simulation of porous media processes, especially for simulating CO2 sequestration and improved and enhanced oil recovery. The Eclipse file format is widely used in the reservoir simulation community. This package provides a library containing code for processing files in Eclipse format, Python binding for accessing Eclipse files and utility code used by other OPM modules (e.g. CMake modules used).
License
The library is distributed under the GNU General Public License, version 3 or later (GPLv3+).
Requirements
- C++17 compatible compiler
- CMake >= 3.10
- Posix compatibility
Description
Languages
C++
79%
ECL
13.4%
Scheme
3.1%
CMake
2.4%
Python
1%
Other
1%