Commit Graph

4 Commits

Author SHA1 Message Date
Bård Skaflestad
eb55456565 Don't Capture Local Flux Data Unless Needed
This is a potentially expensive operation and so we should not run
it unless such values are actually needed for output purposes (e.g.,
inter-region flow summary vectors).
2022-02-25 11:31:57 +01:00
Bård Skaflestad
840a29f8ef Communicate Inter-Region Flows to I/O Rank
This commit ensures that compute inter-region flow rates on all
ranks and collect those on the I/O rank using CollectDataToIORank.

We add a trivial EclInterRegFlowMap data member to the communication
object.  This data member only knows the pertinent FIP region array
names, but uses existing read/write support to collect contributions
from all ranks into this "global" object.  We then pass this global
object on to the summary evaluation routine.
2022-02-18 14:53:43 +01:00
Bård Skaflestad
1e121799c8 Add Multi-Array Aware Accumulator for Inter-Region Flow Rates
This commit introduces a new helper class

    Opm::EclInterRegFlowMapSingleFIP

that wraps a vector of

    Opm::EclInterRegFlowMapSingleFIP

along with the associate array names (e.g., "FIPNUM" and any
additional "FIP*" arrays).  We implement the same operations as the
*SingleFIP type and simply loop over the internal accumulators to
affect the operations.

Add unit tests to exercise the new class, including simulating
multiple MPI ranks that are communicated to a single I/O rank for
summary output purposes.
2022-02-18 10:29:56 +01:00
Bård Skaflestad
27564f0610 Add MPI-Aware Accumulator for Inter-Region Flow Rates
This commit introduces a new helper class

    Opm::EclInterRegFlowMapSingleFIP

that wraps an object of type

    Opm::data::InterRegFlowMap

along with the MPI rank's notion of a FIP region array definition
(e.g., the local FIPNUM array).  The new single-FIP flow map is
responsible for accumulating local contributions to the inter-region
flows defined by that FIP array.  In the case of connections between
MPI ranks, the rank that owns the lowest region ID accumulates the
associate flow rates.

Add unit tests to exercise the new class, including simulating
multiple MPI ranks that are communicated to a single I/O rank for
summary output purposes.
2022-02-18 10:29:56 +01:00