|
Opm::ReservoirCouplingSlaveReportStep< Scalar > Class Template Reference Manages slave-side reservoir coupling operations for a single report step. More...
Detailed Descriptiontemplate<class Scalar> class Opm::ReservoirCouplingSlaveReportStep< Scalar > Manages slave-side reservoir coupling operations for a single report step. This class encapsulates the slave process's communication with the master process during a single report step in reservoir coupling simulations. It handles:
The class serves as a helper to ReservoirCouplingSlave, separating the report-step-specific communication logic from the overall coupling lifecycle management. This separation improves code organization and makes the coupling logic easier to understand and maintain.
Member Typedef Documentation◆ InjectionGroupTarget
template<class Scalar >
◆ MasterProductionLimits
template<class Scalar >
◆ MessageTag
template<class Scalar >
◆ ProductionGroupConstraints
template<class Scalar >
◆ SlaveGroupInjectionData
template<class Scalar >
◆ SlaveGroupProductionData
template<class Scalar >
Constructor & Destructor Documentation◆ ReservoirCouplingSlaveReportStep()
template<class Scalar >
Construct a report step manager for the slave process.
Member Function Documentation◆ comm()
template<class Scalar >
Get the MPI communicator for intra-slave communication.
◆ getSlaveMasterComm()
template<class Scalar >
Get the MPI communicator for slave-master communication.
◆ hasMasterInjectionTarget()
template<class Scalar >
Check if a master-imposed injection target exists for a group and phase.
◆ hasMasterProductionLimits()
template<class Scalar >
Check if master-imposed per-rate-type production limits exist for a group.
◆ hasMasterProductionTarget()
template<class Scalar >
Check if a master-imposed production target exists for a group.
◆ isFirstSubstepOfSyncTimestep()
template<class Scalar >
Check if this is the first substep within a "sync" timestep. This flag is used to control reservoir coupling synchronization. Master-slave data exchange should only happen at the start of each "sync" timestep, not on internal substeps or at retries after convergence chops.
◆ logger()
template<class Scalar >
Get the logger for reservoir coupling operations.
◆ masterInjectionTarget()
template<class Scalar >
Get the master-imposed injection target and control mode for a group and phase.
◆ masterProductionLimits()
template<class Scalar >
Get the master-imposed per-rate-type production limits for a group.
◆ masterProductionTarget()
template<class Scalar >
Get the master-imposed production target and control mode for a group.
◆ receiveInjectionGroupTargetsFromMaster()
template<class Scalar >
Receive injection group targets from master and store them locally.
◆ receiveNumGroupConstraintsFromMaster()
template<class Scalar >
Receive the number of injection and production constraints from master.
◆ receiveProductionGroupConstraintsFromMaster()
template<class Scalar >
Receive production group constraints from master and store them locally.
◆ sendInjectionDataToMaster()
template<class Scalar >
Send injection data to the master process. This method sends injection rates and related data for all slave groups to the master process via MPI communication. The data is used by the master for group control calculations and coordination.
◆ sendProductionDataToMaster()
template<class Scalar >
Send production data to the master process. This method sends production rates, potentials, and related data for all slave groups to the master process via MPI communication. The data is used by the master for group control calculations and coordination.
◆ setFirstSubstepOfSyncTimestep()
template<class Scalar >
Set whether this is the first substep within a "sync" timestep.
◆ setMasterInjectionTarget()
template<class Scalar >
Store a master-imposed injection target for a group and phase.
◆ setMasterProductionLimits()
template<class Scalar >
Store master-imposed per-rate-type production limits for a group.
◆ setMasterProductionTarget()
template<class Scalar >
Store a master-imposed production target for a group.
◆ slaveName()
template<class Scalar >
Get the name of this slave process.
The documentation for this class was generated from the following files: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||