Opm::RescoupSendSlaveGroupData< Scalar, IndexTraits > Class Template Reference

Collects and sends group data from slave process to master in reservoir coupling. More...

#include <RescoupSendSlaveGroupData.hpp>

Public Types

using SlaveGroupProductionData = ReservoirCoupling::SlaveGroupProductionData< Scalar >
 
using SlaveGroupInjectionData = ReservoirCoupling::SlaveGroupInjectionData< Scalar >
 
using Potentials = ReservoirCoupling::Potentials< Scalar >
 
using ProductionRates = ReservoirCoupling::ProductionRates< Scalar >
 
using InjectionRates = ReservoirCoupling::InjectionRates< Scalar >
 
using WellGroupHelperType = WellGroupHelper< Scalar, IndexTraits >
 

Public Member Functions

 RescoupSendSlaveGroupData (WellGroupHelperType &wg_helper)
 Construct a sender for slave group data. More...
 
void sendSlaveGroupDataToMaster ()
 Collect and send group data to the master process. More...
 

Detailed Description

template<class Scalar, class IndexTraits>
class Opm::RescoupSendSlaveGroupData< Scalar, IndexTraits >

Collects and sends group data from slave process to master in reservoir coupling.

This class handles the collection of production and injection data from the slave process's group state and sends it to the master process via MPI. It is responsible for:

  • Collecting production data (rates, potentials, voidage rates) for all slave groups
  • Collecting injection data (rates) for all slave groups
  • Converting group state data into the appropriate reservoir coupling data structures
  • Sending the collected data to the master process via MPI communication

The class acts as a bridge between the well/group management system (WellGroupHelper) and the MPI communication layer (ReservoirCouplingSlave), ensuring that slave group data is properly formatted and transmitted to the master for group control calculations.

Template Parameters
ScalarFloating-point type for rate and potential values (typically double or float)
IndexTraitsType traits for phase indexing
See also
ReservoirCouplingSlave
WellGroupHelper

Member Typedef Documentation

◆ InjectionRates

template<class Scalar , class IndexTraits >
using Opm::RescoupSendSlaveGroupData< Scalar, IndexTraits >::InjectionRates = ReservoirCoupling::InjectionRates<Scalar>

◆ Potentials

template<class Scalar , class IndexTraits >
using Opm::RescoupSendSlaveGroupData< Scalar, IndexTraits >::Potentials = ReservoirCoupling::Potentials<Scalar>

◆ ProductionRates

template<class Scalar , class IndexTraits >
using Opm::RescoupSendSlaveGroupData< Scalar, IndexTraits >::ProductionRates = ReservoirCoupling::ProductionRates<Scalar>

◆ SlaveGroupInjectionData

template<class Scalar , class IndexTraits >
using Opm::RescoupSendSlaveGroupData< Scalar, IndexTraits >::SlaveGroupInjectionData = ReservoirCoupling::SlaveGroupInjectionData<Scalar>

◆ SlaveGroupProductionData

template<class Scalar , class IndexTraits >
using Opm::RescoupSendSlaveGroupData< Scalar, IndexTraits >::SlaveGroupProductionData = ReservoirCoupling::SlaveGroupProductionData<Scalar>

◆ WellGroupHelperType

template<class Scalar , class IndexTraits >
using Opm::RescoupSendSlaveGroupData< Scalar, IndexTraits >::WellGroupHelperType = WellGroupHelper<Scalar, IndexTraits>

Constructor & Destructor Documentation

◆ RescoupSendSlaveGroupData()

template<class Scalar , class IndexTraits >
Opm::RescoupSendSlaveGroupData< Scalar, IndexTraits >::RescoupSendSlaveGroupData ( WellGroupHelperType wg_helper)

Construct a sender for slave group data.

Parameters
wg_helperReference to the WellGroupHelper for accessing group state and schedule

Member Function Documentation

◆ sendSlaveGroupDataToMaster()

template<class Scalar , class IndexTraits >
void Opm::RescoupSendSlaveGroupData< Scalar, IndexTraits >::sendSlaveGroupDataToMaster ( )

Collect and send group data to the master process.

This method orchestrates the collection of both production and injection data for all slave groups and sends them to the master process via the ReservoirCouplingSlave. The data is collected from the current group state and formatted according to the reservoir coupling protocol.

The method performs the following operations:

  1. Collects production data (rates, potentials, voidage) for each slave group
  2. Collects injection data (rates) for each slave group
  3. Sends production data to the master via MPI
  4. Sends injection data to the master via MPI
Note
This is a blocking operation that waits for the master to receive the data
Must be called at appropriate synchronization points in the simulation

The documentation for this class was generated from the following file: