If an action block happens to run a UDQ ASSIGN operation and,
furthermore, happens to run at the last time step of an episode then
the "clear pending assignments" behaviour of the ScheduleState copy
constructor leads to not performing the UDQ assignment at all. This
commit works around this problem by invoking the action handler's
UDQ assignment function after processing all active action blocks.
The underlying problem has been present since at least Pull Request
OPM/opm-common#3587 which introduced the "clear pending assignments"
behaviour of ScheduleState's copy constructor.
In particular, be consistent about four-space indent levels and add
braces to a number of single-statement control blocks. Add a few
blank lines for readability.
While here, also mark a number of objects as 'const'.
from AluGridVanguard and CpGridVanguard.
they exist is becaluse of typo in the function name. There is another
releaseGlobalTransmissibilities() function actually gets used.
which does not have effects, which was suggested by Håkon Hægland.
And also removing the following member variables from
FlowGenericProblem because they are not in use anymore.
krnumx_, krnumy_, krnumz_;
imbnumx_, imbnumy_, imbnumz_;
This commit includes the fraction of pore-volume whose CNV targets
are violated as a new per-iteration quantity in the INFOITER file
(--output-extra-convergence-info=iteration), with the column header
"CnvErrPvFrac". We collect the values which are already calculated
in
BlackoilModel<>::getReservoirConvergence()
and store these as a pair of numerator and denominator in the
ConvergenceReport class. Note that we need both the numerator and
the denominator in order to aggregate contributions from multiple
ranks.
While here, also make a few more objects 'const' and calculate
column widths directly instead of the maximum number of characters
in writeConvergenceHeader().
The 'interiorBorder' category is *probably* equivalent to the
'interior' category for codimension zero elements, but it's better
to be safe than sorry. We don't want to accumulate pore-volume
contributions twice.
This commit implements the parallel version of
EclipseState::computeFipRegionStatistics()
which computes a FIPRegionStatistics object for the current run's
fluid-in-place regions. The object construction uses an MPI-aware
reduction process to compute the maximum region IDs across all MPI
ranks.
While here, also unconditionally form the statistics object as part
of the EclWriter's constructor to ensure that all ranks participate
in the process. The initial approach of constructing the object on
first use is not robust in parallel. We may however wish to compute
these statistics only when needed. If so, that will be the subject
of follow-up work.