|
ReservoirCouplingSlave.hpp
Go to the documentation of this file.
69 const std::map<std::string, std::map<Group::ProductionCMode, Scalar>>& effectiveProductionTargets() const
137 std::pair<Scalar, Group::ProductionCMode> masterProductionTarget(const std::string& gname) const;
166 void sendInjectionDataToMaster(const std::vector<SlaveGroupInjectionData> &injection_data) const;
168 void sendProductionDataToMaster(const std::vector<SlaveGroupProductionData> &production_data) const;
256 // True if no GRUPMAST keyword in the master schedule and no GRUPSLAV keyword in the slave schedule
263 // Later, the master process will send us group name indices, and not the group names themselves,
Definition: DeferredLogger.hpp:57 Definition: ReservoirCoupling.hpp:42 void setDeferredLogger(DeferredLogger *deferred_logger) Definition: ReservoirCoupling.hpp:55 void clearDeferredLogger() Definition: ReservoirCoupling.hpp:47 Definition: ReservoirCouplingSlave.hpp:40 const std::map< std::string, std::string > & getSlaveToMasterGroupNameMap() const Definition: ReservoirCouplingSlave.hpp:77 ReservoirCouplingSlave(const Parallel::Communication &comm, const Schedule &schedule, const SimulatorTimer &timer) void notifyEndOfRunAndDisconnect() Wind up the coupling after the slave has run out of report steps of its own. const std::string & getSlaveName() const Definition: ReservoirCouplingSlave.hpp:76 void setFirstSubstepOfSyncTimestep(bool value) bool lastReceivedMasterGroupNodePressuresIsFinal() const Whether the most recent master-group-node-pressures receive carried the is_final flag. Scalar masterGroupNodePressure(const std::string &gname) const Get the master-computed network-leaf node pressure for a master group. void sendProductionDataToMaster(const std::vector< SlaveGroupProductionData > &production_data) const std::size_t numSlaveGroups() const Definition: ReservoirCouplingSlave.hpp:139 bool isFirstSubstepOfSyncTimestep() const std::pair< Scalar, Group::ProductionCMode > masterProductionTarget(const std::string &gname) const Get the master-imposed production target and control mode for a group. const Parallel::Communication & getComm() const Definition: ReservoirCouplingSlave.hpp:74 bool isSlaveGroup(const std::string &group_name) const std::pair< std::size_t, bool > receiveNumMasterGroupNodePressuresFromMaster() Receive the master-group-node-pressures header from master. void receiveCoupledNetworkActiveStatusFromMaster() Receive the master's single-bool flag for the current sync timestep and mirror it into the slave's lo... std::pair< std::size_t, std::size_t > receiveNumGroupConstraintsFromMaster() const const MasterProductionLimits & masterProductionLimits(const std::string &gname) const Get the master-imposed per-rate-type production limits for a group. void receiveInjectionGroupTargetsFromMaster(std::size_t num_targets) Receive injection group targets from master and store them locally. void initTimeStepping() void receiveProductionGroupConstraintsFromMaster(std::size_t num_targets) Receive production group constraints from master and store them locally. bool connectedToMasterCoupledNetwork() const Whether this slave is connected to the master's cross-rescoup network this sync step. bool isLastSubstepOfSyncTimestep() const Check if this is the last substep within a "sync" timestep. void sendAndReceiveInitialData() void setDeferredLogger(DeferredLogger *deferred_logger) Definition: ReservoirCouplingSlave.hpp:169 MPI_Comm getMasterComm() const Definition: ReservoirCouplingSlave.hpp:75 void clearDeferredLogger() Definition: ReservoirCouplingSlave.hpp:55 bool hasMasterInjectionTarget(const std::string &gname, const Phase phase) const Check if a master-imposed injection target exists for a group and phase. const std::map< std::string, Scalar > & masterGroupNodePressures() const Get the full map of master-computed network-leaf node pressures. const std::map< std::string, std::map< Phase, Scalar > > & effectiveInjectionTargets() const The surface injection rate target in force for each slave group and phase this sync step (SI): the ma... Definition: ReservoirCouplingSlave.hpp:60 void sendNextReportDateToMasterProcess() const std::pair< Scalar, Group::InjectionCMode > masterInjectionTarget(const std::string &gname, const Phase phase) const Get the master-imposed injection target and control mode for a group and phase. bool wellsSolvedThisSyncStep() const True once the initial well solve for this sync step has run. ReservoirCoupling::Logger & logger() Definition: ReservoirCouplingSlave.hpp:116 bool maybeReceiveTerminateSignalFromMaster() Blocking receive for terminate/continue signal from master. bool hasMasterGroupNodePressure(const std::string &gname) const Check if a master-computed network-leaf node pressure exists for a master group. const std::string & slaveGroupIdxToGroupName(std::size_t group_idx) const Definition: ReservoirCouplingSlave.hpp:186 bool terminated() const Definition: ReservoirCouplingSlave.hpp:189 void sendInjectionDataToMaster(const std::vector< SlaveGroupInjectionData > &injection_data) const bool hasMasterProductionTarget(const std::string &gname) const Check if a master-imposed production target exists for a group. bool activated() const Definition: ReservoirCouplingSlave.hpp:54 ReservoirCoupling::Logger & logger() const Definition: ReservoirCouplingSlave.hpp:117 void setLastSubstepOfSyncTimestep(bool value) Set whether this is the last substep within a "sync" timestep. std::map< std::string, std::map< Phase, Scalar > > & effectiveInjectionTargets() Definition: ReservoirCouplingSlave.hpp:62 void maybeActivate(int report_step) bool hasMasterProductionLimits(const std::string &gname) const Check if master-imposed per-rate-type production limits exist for a group. void setWellsSolvedThisSyncStep(bool value) Record whether the initial well solve for this sync step has run. const std::map< std::string, std::map< Group::ProductionCMode, Scalar > > & effectiveProductionTargets() const The production rate limit in force for each slave group and rate type (ORAT, WRAT,... Definition: ReservoirCouplingSlave.hpp:69 std::map< std::string, std::map< Group::ProductionCMode, Scalar > > & effectiveProductionTargets() Definition: ReservoirCouplingSlave.hpp:71 void receiveMasterGroupNodePressuresFromMaster(std::size_t num_pressures) Receive master-computed network-leaf node pressures from master. void markSlaveGroupsInSchedule(Schedule &schedule, int report_step_idx) Mark slave groups in the Schedule as production/injection groups. typename ReservoirCoupling::MasterProductionLimits< Scalar > MasterProductionLimits Definition: ReservoirCouplingSlave.hpp:48 double receiveNextTimeStepFromMaster() Definition: SimulatorTimer.hpp:38 Dune::Communication< MPIComm > Communication Definition: ParallelCommunication.hpp:30 Phase Phase indices for reservoir coupling, we currently only support black-oil phases (oil,... Definition: ReservoirCoupling.hpp:183 Definition: blackoilbioeffectsmodules.hh:45 Definition: ReservoirCoupling.hpp:286 Master-computed network-leaf node pressure for a single master group. Definition: ReservoirCoupling.hpp:329 Per-rate-type production limits received from master hierarchy. A value of -1 means no limit defined ... Definition: ReservoirCoupling.hpp:314 Definition: ReservoirCoupling.hpp:214 Definition: ReservoirCoupling.hpp:296 Definition: ReservoirCoupling.hpp:271 Definition: ReservoirCoupling.hpp:238 |