|
ReservoirCouplingSlaveReportStep.hpp
Go to the documentation of this file.
33// Avoid including the complete definition of ReservoirCouplingSlave here to avoid circular dependency.
149 std::pair<Scalar, Group::ProductionCMode> masterProductionTarget(const std::string& gname) const;
211 void sendProductionDataToMaster(const std::vector<SlaveGroupProductionData> &production_data) const;
223 void sendInjectionDataToMaster(const std::vector<SlaveGroupInjectionData> &injection_data) const;
257 const std::string& gname, const Phase phase, const Scalar target, const Group::InjectionCMode cmode);
268 void setMasterProductionTarget(const std::string& gname, const Scalar target, const Group::ProductionCMode cmode);
312 std::map<std::pair<Phase, std::string>, std::pair<Scalar, Group::InjectionCMode>> master_injection_targets_;
339 // in BlackoilWellModel::assemble() -> BlackoilWellModel::updateWellControlsAndNetworkIteration()
341 // If it returns "false" the flag is reset to "true" and stays true for the rest of the sync timestep.
Definition: ReservoirCoupling.hpp:42 Definition: ReservoirCouplingSlave.hpp:40 Manages slave-side reservoir coupling operations for a single report step. Definition: ReservoirCouplingSlaveReportStep.hpp:55 MPI_Comm getSlaveMasterComm() const Get the MPI communicator for slave-master communication. Definition: ReservoirCouplingSlaveReportStep.hpp:77 const std::string & slaveName() const Get the name of this slave process. Definition: ReservoirCouplingSlaveReportStep.hpp:244 std::pair< Scalar, Group::ProductionCMode > masterProductionTarget(const std::string &gname) const Get the master-imposed production target and control mode for a group. void setMasterInjectionTarget(const std::string &gname, const Phase phase, const Scalar target, const Group::InjectionCMode cmode) Store a master-imposed injection target for a group and phase. void setMasterGroupNodePressure(const std::string &gname, const Scalar pressure) Store a master-computed network-leaf node pressure for a master group. bool hasMasterInjectionTarget(const std::string &gname, const Phase phase) const Check if a master-imposed injection target exists for a group and phase. void setFirstSubstepOfSyncTimestep(bool value) Set whether this is the first substep within a "sync" timestep. Definition: ReservoirCouplingSlaveReportStep.hpp:227 void receiveProductionGroupConstraintsFromMaster(std::size_t num_targets) Receive production group constraints from master and store them locally. const MasterProductionLimits & masterProductionLimits(const std::string &gname) const Get the master-imposed per-rate-type production limits for a group. void receiveMasterGroupNodePressuresFromMaster(std::size_t num_pressures) Receive master-computed network-leaf node pressures from master and store them locally.... bool hasMasterProductionLimits(const std::string &gname) const Check if master-imposed per-rate-type production limits exist for a group. bool hasMasterGroupNodePressure(const std::string &gname) const Check if a master-computed network-leaf node pressure exists for a master group. const Parallel::Communication & comm() const Get the MPI communicator for intra-slave communication. Definition: ReservoirCouplingSlaveReportStep.hpp:73 std::pair< std::size_t, bool > receiveNumMasterGroupNodePressuresFromMaster() Receive the master-group-node-pressures header from master. bool lastReceivedMasterGroupNodePressuresIsFinal() const Whether the most recent master-group-node-pressures receive carried the is_final flag.... Definition: ReservoirCouplingSlaveReportStep.hpp:176 void setLastSubstepOfSyncTimestep(bool value) Set whether this is the last substep within a "sync" timestep. Definition: ReservoirCouplingSlaveReportStep.hpp:232 void setMasterProductionTarget(const std::string &gname, const Scalar target, const Group::ProductionCMode cmode) Store a master-imposed production target for a group. const std::map< std::string, Scalar > & masterGroupNodePressures() const Get the full map of master-computed network-leaf node pressures. Definition: ReservoirCouplingSlaveReportStep.hpp:128 bool isLastSubstepOfSyncTimestep() const Check if this is the last substep within a "sync" timestep. Definition: ReservoirCouplingSlaveReportStep.hpp:114 Scalar masterGroupNodePressure(const std::string &gname) const Get the master-computed network-leaf node pressure for a master group. void receiveCoupledNetworkActiveStatusFromMaster() Receive the master's single-bool flag for the current sync timestep and mirror it into last_received_... ReservoirCoupling::Logger & logger() const Get the logger for reservoir coupling operations. Definition: ReservoirCouplingSlaveReportStep.hpp:118 void sendProductionDataToMaster(const std::vector< SlaveGroupProductionData > &production_data) const Send production data to the master process. 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 hasMasterProductionTarget(const std::string &gname) const Check if a master-imposed production target exists for a group. std::pair< std::size_t, std::size_t > receiveNumGroupConstraintsFromMaster() const Receive the number of injection and production constraints from master. bool connectedToMasterCoupledNetwork() const Whether this slave is connected to the master's cross-rescoup network this sync step (i.... Definition: ReservoirCouplingSlaveReportStep.hpp:186 void sendInjectionDataToMaster(const std::vector< SlaveGroupInjectionData > &injection_data) const Send injection data to the master process. void receiveInjectionGroupTargetsFromMaster(std::size_t num_targets) Receive injection group targets from master and store them locally. ReservoirCouplingSlaveReportStep(ReservoirCouplingSlave< Scalar > &slave) Construct a report step manager for the slave process. bool isFirstSubstepOfSyncTimestep() const Check if this is the first substep within a "sync" timestep. Definition: ReservoirCouplingSlaveReportStep.hpp:105 void setMasterProductionLimits(const std::string &gname, const MasterProductionLimits &limits) Store master-imposed per-rate-type production limits for a group. void markSlaveGroupsInSchedule(Schedule &schedule, int report_step_idx) Mark slave groups in the Schedule as production/injection groups. 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:159 Definition: blackoilbioeffectsmodules.hh:45 Definition: ReservoirCoupling.hpp:238 Master-computed network-leaf node pressure for a single master group. Definition: ReservoirCoupling.hpp:281 Per-rate-type production limits received from master hierarchy. A value of -1 means no limit defined ... Definition: ReservoirCoupling.hpp:266 Definition: ReservoirCoupling.hpp:248 Definition: ReservoirCoupling.hpp:232 Definition: ReservoirCoupling.hpp:214 |