|
ReservoirCouplingMasterReportStep.hpp
Go to the documentation of this file.
42// Avoid including the complete definition of ReservoirCouplingMaster here to avoid circular dependency.
115 Scalar getMasterGroupInjectionSurfaceRate(const std::string &group_name, ReservoirCoupling::Phase phase) const;
121 Scalar getMasterGroupInjectionReservoirRate(const std::string &group_name, ReservoirCoupling::Phase phase) const;
127 Scalar getMasterGroupProductionSurfaceRate(const std::string &group_name, ReservoirCoupling::Phase phase) const;
151 Scalar getMasterGroupProductionReservoirRate(const std::string &group_name, ReservoirCoupling::Phase phase) const;
195 std::size_t numSlaveGroups(unsigned int index) const { return this->master_.numSlaveGroups(index); }
254 std::size_t slave_idx, std::size_t num_injection_targets, std::size_t num_production_constraints
330 return {flow_change_limiting_group_, flow_change_limiting_change_, flow_change_limiting_fraction_};
Definition: ReservoirCoupling.hpp:42 Definition: ReservoirCouplingMaster.hpp:43 Manages master-side reservoir coupling operations for a single report step. Definition: ReservoirCouplingMasterReportStep.hpp:66 ReservoirCouplingMasterReportStep(ReservoirCouplingMaster< Scalar > &master) Construct a report step manager for the master process. void sendProductionConstraintsToSlave(std::size_t slave_idx, const std::vector< ProductionGroupConstraints > &production_constraints) const bool isFirstSubstepOfSyncTimestep() const Check if this is the first substep within a "sync" timestep. Definition: ReservoirCouplingMasterReportStep.hpp:182 const std::vector< std::string > & getMasterGroupNamesForSlave(std::size_t slave_idx) const Get the names of master groups associated with a specific slave. Definition: ReservoirCouplingMasterReportStep.hpp:89 Scalar flowChangeTimeStepLimit() const Upper limit for the next sync step length from GRUPMAST item 4 (in seconds) Definition: ReservoirCouplingMasterReportStep.hpp:325 MPI_Comm getSlaveComm(int index) const Get the MPI communicator for a specific slave process. Definition: ReservoirCouplingMasterReportStep.hpp:109 void receiveProductionDataFromSlaves() Receive production data from all active slave processes. std::tuple< std::string, Scalar, Scalar > flowChangeLimitingGroup() const Description of the group that sets flowChangeTimeStepLimit() Definition: ReservoirCouplingMasterReportStep.hpp:329 Scalar getMasterGroupInjectionSurfaceRate(const std::string &group_name, ReservoirCoupling::Phase phase) const Get the injection surface rate for a master group. const Parallel::Communication & comm() const Get the MPI communicator for master-slave communication. Definition: ReservoirCouplingMasterReportStep.hpp:84 std::size_t getMasterGroupCanonicalIdx(const std::string &slave_name, const std::string &master_group_name) const Get the canonical index for a master group. void saveGroupFlowsAtStartOfSyncStep() Remember the flow rates of the master groups as they stand now. bool slaveIsCoupled(int index) const Check if a specific slave process currently takes part in the coupling. Definition: ReservoirCouplingMasterReportStep.hpp:342 const std::map< std::string, std::string > & getMasterGroupToSlaveNameMap() const Get the mapping from master group names to slave names. Definition: ReservoirCouplingMasterReportStep.hpp:95 void setNeedsSlaveDataReceive(bool value) Set/clear the flag for pending slave data receive. Definition: ReservoirCouplingMasterReportStep.hpp:190 Scalar getMasterGroupNetworkProductionSurfaceRate(const std::string &group_name, ReservoirCoupling::Phase phase) const Get the network production surface rate for a master group. void setSlaveGroupInjectionData(const std::string &slave_name, std::vector< SlaveGroupInjectionData > injection_data) Set the injection data of a slave's groups, as received from the slave. Definition: ReservoirCouplingMasterReportStep.hpp:288 void setReportStepIdx(int report_step_idx) Set the current report step index. Scalar getMasterGroupProductionSurfaceRate(const std::string &group_name, ReservoirCoupling::Phase phase) const Get the production surface rate for a master group. int getSlaveGroupNumGroupControlledProducers(const std::string &master_group_name) const Get the number of a slave group's producers under group control. ReservoirCoupling::Logger & logger() const Get the logger for reservoir coupling operations. Definition: ReservoirCouplingMasterReportStep.hpp:203 void setSyncStepLength(Scalar length) Set the length of the sync step that is about to be taken. Definition: ReservoirCouplingMasterReportStep.hpp:312 void setSlaveGroupProductionData(const std::string &slave_name, std::vector< SlaveGroupProductionData > production_data) Set the production data of a slave's groups, as received from the slave. Definition: ReservoirCouplingMasterReportStep.hpp:298 void updateFlowChangeTimeStepLimit() Update the flow-change time step limit (GRUPMAST item 4, RCMASTS) data::ReservoirCouplingGroupRates collectGroupRatesForSummary() const Collect production/injection rates for all master groups. int getSlaveGroupNumGroupControlledInjectors(const std::string &master_group_name, ReservoirCoupling::Phase phase) const Get the number of a slave group's injectors under group control for a phase. bool needsSlaveDataReceive() const Check if the master needs to receive slave data at the next timeStepSucceeded() call. Definition: ReservoirCouplingMasterReportStep.hpp:187 Scalar getMasterGroupProductionReservoirRate(const std::string &group_name, ReservoirCoupling::Phase phase) const Get the production reservoir rate for a master group. const Schedule & schedule() const Get the simulation schedule. Definition: ReservoirCouplingMasterReportStep.hpp:228 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 that will follow, plus an is_final flag... const Potentials & getSlaveGroupPotentials(const std::string &master_group_name) const Get the production potentials for a slave group. void sendMasterGroupNodePressuresToSlave(std::size_t slave_idx, const std::vector< MasterGroupNodePressure > &pressures) const Send master-computed network-leaf node pressures to a slave. 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 receiveInjectionDataFromSlaves() Receive injection data from all active slave processes. std::size_t numSlaves() const Get the total number of active slave processes. Definition: ReservoirCouplingMasterReportStep.hpp:199 void sendInjectionTargetsToSlave(std::size_t slave_idx, const std::vector< InjectionGroupTarget > &injection_targets) const Scalar getMasterGroupInjectionReservoirRate(const std::string &group_name, ReservoirCoupling::Phase phase) const Get the injection reservoir rate for a master group. void setFirstSubstepOfSyncTimestep(bool value) Set whether this is the first substep within a "sync" timestep. Definition: ReservoirCouplingMasterReportStep.hpp:275 void sendNumGroupConstraintsToSlave(std::size_t slave_idx, std::size_t num_injection_targets, std::size_t num_production_constraints) const std::size_t numSlaveGroups(unsigned int index) const Get the number of slave groups for a specific slave process. Definition: ReservoirCouplingMasterReportStep.hpp:195 const std::string & slaveName(int index) const Get the name of a specific slave process. Definition: ReservoirCouplingMasterReportStep.hpp:347 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 Definition: ReservoirCoupling.hpp:278 Definition: ReservoirCoupling.hpp:238 |