|
ReservoirCouplingMaster.hpp
Go to the documentation of this file.
145 const std::string &group_name, ReservoirCoupling::Phase phase, ReservoirCoupling::RateKind kind) const;
212 void saveGroupFlowsAtStartOfSyncStep() { this->report_step_data_->saveGroupFlowsAtStartOfSyncStep(); }
216 void updateFlowChangeTimeStepLimit() { this->report_step_data_->updateFlowChangeTimeStepLimit(); }
219 double flowChangeTimeStepLimit() const { return this->report_step_data_->flowChangeTimeStepLimit(); }
277 void setSlaveActivationDate(int index, double date) { this->slave_activation_dates_[index] = date; }
Definition: DeferredLogger.hpp:57 Definition: ReservoirCoupling.hpp:42 void setDeferredLogger(DeferredLogger *deferred_logger) Definition: ReservoirCoupling.hpp:55 void clearDeferredLogger() Definition: ReservoirCoupling.hpp:47 Definition: ReservoirCouplingMaster.hpp:43 void setSlaveGroupProductionData(const std::string &slave_name, std::vector< SlaveGroupProductionData > production_data) Definition: ReservoirCouplingMaster.hpp:283 void resizeSlaveActivationDates(int size) Definition: ReservoirCouplingMaster.hpp:202 void resizeSlaveStartDates(int size) Definition: ReservoirCouplingMaster.hpp:203 std::map< std::string, std::vector< std::string > > & getSlaveNameToMasterGroupsMap() Definition: ReservoirCouplingMaster.hpp:154 char * getArgv(int index) const Definition: ReservoirCouplingMaster.hpp:117 bool slaveIsCoupled(int index) const Whether the slave currently takes part in the coupling. Definition: ReservoirCouplingMaster.hpp:314 bool slaveHasEnded(int index) const Whether the slave has reached the end of its own schedule and left the coupling. Definition: ReservoirCouplingMaster.hpp:303 int getSlaveGroupNumGroupControlledInjectors(const std::string &master_group_name, ReservoirCoupling::Phase phase) const double getActivationDate() const Definition: ReservoirCouplingMaster.hpp:115 char ** getArgv() const Definition: ReservoirCouplingMaster.hpp:118 void maybeActivate(int report_step) void receiveNextReportDateFromSlaves() bool syncAtReportSteps() const Whether the master syncs with slaves at slave report-step boundaries (true) or at every master actual... Definition: ReservoirCouplingMaster.hpp:332 std::size_t numSlaveGroups(unsigned int index) ReservoirCoupling::Logger & logger() Definition: ReservoirCouplingMaster.hpp:183 void resizeNextReportDates(int size) void maybeReceiveActivationHandshakeFromSlaves(double current_time) void sendNextTimeStepToSlaves(double next_time_step) Definition: ReservoirCouplingMaster.hpp:205 bool isFirstSubstepOfSyncTimestep() const void setFirstSubstepOfSyncTimestep(bool value) std::size_t numSlavesStarted() const double maybeChopSubStep(double suggested_timestep, double current_time) const bool slaveIsActivated(int index) const Whether the slave has completed its activation handshake with the master. Definition: ReservoirCouplingMaster.hpp:294 void setEffectiveGCW(const std::string &group_name, int value) Definition: ReservoirCouplingMaster.hpp:85 void sendProductionConstraintsToSlave(std::size_t slave_idx, const std::vector< ProductionGroupConstraints > &production_constraints) const std::size_t getMasterGroupCanonicalIdx(const std::string &slave_name, const std::string &master_group_name) const Get the canonical index of the master group for a given slave name and master group name.... std::size_t numCoupledSlaves() const Number of slaves that currently take part in the coupling. void addSlaveCommunicator(MPI_Comm comm) Definition: ReservoirCouplingMaster.hpp:61 void addSlaveStartDate(std::time_t date) Definition: ReservoirCouplingMaster.hpp:66 void rebuildSlaveIdxToMasterGroupsVector() void initStartOfReportStep(int report_step_idx) const Parallel::Communication & getComm() const Definition: ReservoirCouplingMaster.hpp:119 ReservoirCoupling::Logger & logger() const Definition: ReservoirCouplingMaster.hpp:184 void markSlaveEndedAndDisconnect(int index) Record that a slave has ended, and close its intercommunicator. int getSlaveIdx(const std::string &slave_name) const void setSlaveActivated(int index) Definition: ReservoirCouplingMaster.hpp:270 int effectiveInjectionGCW(const std::string &group_name, Phase phase) const Effective group-controlled-wells (GCW) count for a master group in the injection guide-rate distribut... Definition: ReservoirCouplingMaster.hpp:99 void setSlaveNextReportTimeOffset(int index, double offset) void addSlaveActivationDate(double date) Definition: ReservoirCouplingMaster.hpp:65 void setSlaveGroupInjectionData(const std::string &slave_name, std::vector< SlaveGroupInjectionData > injection_data) Definition: ReservoirCouplingMaster.hpp:278 void clearDeferredLogger() Definition: ReservoirCouplingMaster.hpp:67 bool needsSlaveDataReceive() const Check if the master needs to receive production data from the slaves. double flowChangeTimeStepLimit() const Upper limit (in seconds) for the next sync step from GRUPMAST item 4, infinity if none. Definition: ReservoirCouplingMaster.hpp:219 Scalar getMasterGroupRate(const std::string &group_name, ReservoirCoupling::Phase phase, ReservoirCoupling::RateKind kind) const void setDeferredLogger(DeferredLogger *deferred_logger) Definition: ReservoirCouplingMaster.hpp:260 void sendCoupledNetworkActiveStatusToSlave(std::size_t slave_idx, bool active) const Send a single boolean to a slave telling it whether the master will iterate the cross-rescoup network... void maybeSpawnSlaveProcesses(int report_step) void sendTerminateAndDisconnect() Send terminate signal to all active slaves and disconnect intercommunicators. void receiveProductionDataFromSlaves() void resetEffectiveGCW() Clear all effective-GCW entries, production and injection. Call at the start of each master-group con... Definition: ReservoirCouplingMaster.hpp:110 const std::string & getSlaveName(int index) const Definition: ReservoirCouplingMaster.hpp:162 void updateFlowChangeTimeStepLimit() Update the flow-change time step limit (GRUPMAST item 4) from the flows received at the end of the sy... Definition: ReservoirCouplingMaster.hpp:216 void sendMasterGroupNodePressuresToSlave(std::size_t slave_idx, const std::vector< MasterGroupNodePressure > &pressures) const Send master-computed network-leaf node pressures to a slave. const Potentials & getSlaveGroupPotentials(const std::string &master_group_name) ReservoirCouplingMaster(const Parallel::Communication &comm, const Schedule &schedule, int argc, char **argv) void addSlaveName(const std::string &name) Definition: ReservoirCouplingMaster.hpp:64 void saveGroupFlowsAtStartOfSyncStep() Save the master group flow rates at the start of the sync step. Definition: ReservoirCouplingMaster.hpp:212 const double * getSlaveActivationDates() const Definition: ReservoirCouplingMaster.hpp:152 void sendNumGroupConstraintsToSlave(std::size_t slave_idx, std::size_t num_injection_targets, std::size_t num_production_constraints) const std::map< std::string, std::string > & getMasterGroupToSlaveNameMap() Definition: ReservoirCouplingMaster.hpp:146 void sendDontTerminateSignalToSlaves() Send "don't terminate" signal (value=0) to all active slaves. const Schedule & schedule() const Definition: ReservoirCouplingMaster.hpp:204 void updateMasterGroupNameOrderMap(const std::string &slave_name, const std::map< std::string, std::size_t > &master_group_map) double getSlaveActivationDate(int index) const Definition: ReservoirCouplingMaster.hpp:151 std::tuple< std::string, double, double > flowChangeLimitingGroup() const The master group that sets flowChangeTimeStepLimit(): name, fractional flow change and limiting fract... Definition: ReservoirCouplingMaster.hpp:223 void sendNumMasterGroupNodePressuresToSlave(std::size_t slave_idx, std::size_t num_pressures, bool is_final) const Send the count of master-computed network-leaf node pressures plus the master's is_final flag for thi... std::size_t numSlaves() const Definition: ReservoirCouplingMaster.hpp:190 const double * getSlaveStartDates() Definition: ReservoirCouplingMaster.hpp:164 int effectiveGCW(const std::string &group_name) const Effective group-controlled-wells (GCW) count for a master group, used by guide-rate distribution inde... Definition: ReservoirCouplingMaster.hpp:81 void setSlaveActivationDate(int index, double date) Definition: ReservoirCouplingMaster.hpp:277 void setNeedsSlaveDataReceive(bool value) Set whether the master needs to receive production data from the slaves. MPI_Comm getSlaveComm(int index) const Definition: ReservoirCouplingMaster.hpp:153 void setEffectiveInjectionGCW(const std::string &group_name, Phase phase, int value) Definition: ReservoirCouplingMaster.hpp:103 double getSlaveStartDate(int index) const Definition: ReservoirCouplingMaster.hpp:163 const std::vector< std::string > & getMasterGroupNamesForSlave(std::size_t slave_idx) const Get the master group names associated with a slave reservoir by index. int getSlaveGroupNumGroupControlledProducers(const std::string &master_group_name) const double getSimulationStartDate() const Definition: ReservoirCouplingMaster.hpp:149 void sendInjectionTargetsToSlave(std::size_t slave_idx, const std::vector< InjectionGroupTarget > &injection_targets) const void receiveInjectionDataFromSlaves() void initTimeStepping() void setSlaveStartDate(int index, std::time_t date) Definition: ReservoirCouplingMaster.hpp:289 data::ReservoirCouplingGroupRates collectGroupRatesForSummary() const Collect production/injection rates for all master groups. bool isMasterGroup(const std::string &group_name) const Dune::Communication< MPIComm > Communication Definition: ParallelCommunication.hpp:30 RateKind Selects which kind of rate to retrieve from slave group data. Definition: ReservoirCoupling.hpp:195 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:298 Master-computed network-leaf node pressure for a single master group. Definition: ReservoirCoupling.hpp:341 Definition: ReservoirCoupling.hpp:214 Definition: ReservoirCoupling.hpp:308 Utility class for comparing double values representing epoch dates or elapsed time. Definition: ReservoirCoupling.hpp:410 Definition: ReservoirCoupling.hpp:278 Definition: ReservoirCoupling.hpp:238 |