|
BlackoilWellModel.hpp
Go to the documentation of this file.
100 class BlackoilWellModel : public WellConnectionAuxiliaryModule<TypeTag, BlackoilWellModel<TypeTag>>
118 using WellConnectionModule = WellConnectionAuxiliaryModule<TypeTag, BlackoilWellModel<TypeTag>>;
122 constexpr static std::size_t pressureVarIndex = GetPropType<TypeTag, Properties::Indices>::pressureSwitchIdx;
128 static constexpr EnergyModules energyModuleType_ = getPropValue<TypeTag, Properties::EnergyModuleType>();
258 ConvergenceReport getWellConvergence(const std::vector<Scalar>& B_avg, const bool checkWellGroupControlsAndNetwork = false) const;
272 // makes it a little more difficult. unless we introduce if (iterationIdx != 0) to avoid doing the above function
285 updateNetworks(const bool mandatory_network_balance, DeferredLogger& deferred_logger, const bool relax_network_tolerance = false);
357 int compressedIndexForInteriorLGR(const std::string& lgr_tag, const Connection& conn) const override
463 std::map<std::string, std::unique_ptr<AverageRegionalPressureType>> regionalAveragePressureCalculator_{};
471 // Pre-step network solve at static reservoir conditions (group and well states might be updated)
490 // the returned two booleans are {continue_due_to_network, well_group_control_changed}, respectively
491 std::tuple<bool, bool, Scalar> updateWellControlsAndNetworkIteration(const bool mandatory_network_balance,
538 void calculateProductivityIndexValuesShutWells(const int reportStepIdx, DeferredLogger& deferred_logger) override;
562 void wellTesting(const int timeStepIdx, const double simulationTime, DeferredLogger& deferred_logger);
585 // Store cell rates after assembling to avoid iterating all wells and connections for every element
Contains the high level supplements required to extend the black oil model by bioeffects. Definition: blackoilbioeffectsmodules.hh:93 Contains the high level supplements required to extend the black oil model by polymer. Definition: blackoilpolymermodules.hh:64 Class for handling the gaslift in the blackoil well model. Definition: BlackoilWellModelGasLift.hpp:96 Class for handling the blackoil well model. Definition: BlackoilWellModelGeneric.hpp:95 void assignDynamicWellStatus(data::Wells &wsrpt) const void assignWellTargets(data::Wells &wsrpt) const BlackoilWellModelWBP< GetPropType< TypeTag, Properties::Scalar >, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > wbp_ Definition: BlackoilWellModelGeneric.hpp:530 WellTestState & wellTestState() Definition: BlackoilWellModelGeneric.hpp:183 void assignShutConnections(data::Wells &wsrpt, const int reportStepIndex) const const WellState< GetPropType< TypeTag, Properties::Scalar >, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > & wellState() const Definition: BlackoilWellModelGeneric.hpp:152 void assignMassGasRate(data::Wells &wsrpt, const GetPropType< TypeTag, Properties::Scalar > gasDensity) const WellGroupHelperType & wgHelper() Definition: BlackoilWellModelGeneric.hpp:306 Class for handling the guide rates in the blackoil well model. Definition: BlackoilWellModelGuideRates.hpp:47 void assignWellGuideRates(data::Wells &wsrpt, const int reportStepIdx) const Assign well guide rates. Class for handling the blackoil well model in a NLDD solver. Definition: BlackoilWellModelNldd.hpp:80 Class for handling the blackoil well model. Definition: BlackoilWellModel.hpp:103 void initializeGroupStructure(const int reportStepIdx) Definition: BlackoilWellModel_impl.hpp:297 bool network_needs_more_balancing_force_another_newton_iteration_ Definition: BlackoilWellModel.hpp:469 ReservoirCouplingMaster< Scalar > & reservoirCouplingMaster() Definition: BlackoilWellModel.hpp:387 void prepareTimeStep(DeferredLogger &deferred_logger) Definition: BlackoilWellModel_impl.hpp:2267 std::tuple< bool, bool, Scalar > updateWellControlsAndNetworkIteration(const bool mandatory_network_balance, const bool relax_network_tolerance, const bool optimize_gas_lift, const double dt, DeferredLogger &local_deferredLogger) Definition: BlackoilWellModel_impl.hpp:1315 bool updateGroupControls(const Group &group, DeferredLogger &deferred_logger, const int reportStepIdx, const int iterationIdx) Definition: BlackoilWellModel_impl.hpp:2047 WellInterfacePtr createWellPointer(const int wellID, const int report_step) const Definition: BlackoilWellModel_impl.hpp:1083 GuideRateHandler< Scalar, IndexTraits > guide_rate_handler_ Definition: BlackoilWellModel.hpp:466 const EclipseState & eclState() const Definition: BlackoilWellModel.hpp:479 void calcInjResvCoeff(const int fipnum, const int pvtreg, std::vector< Scalar > &resv_coeff) override Definition: BlackoilWellModel_impl.hpp:2457 const std::vector< WellInterfacePtr > & localNonshutWells() const Get list of local nonshut wells. Definition: BlackoilWellModel.hpp:320 void prepareDeserialize(const int report_step) Definition: BlackoilWellModel.hpp:205 void setNlddAdapter(BlackoilWellModelNldd< TypeTag > *mod) Definition: BlackoilWellModel.hpp:383 void calcResvCoeff(const int fipnum, const int pvtreg, const std::vector< Scalar > &production_rates, std::vector< Scalar > &resv_coeff) override Definition: BlackoilWellModel_impl.hpp:2446 const Simulator & simulator() const Definition: BlackoilWellModel.hpp:380 static constexpr EnergyModules energyModuleType_ Definition: BlackoilWellModel.hpp:128 void updateAndCommunicate(const int reportStepIdx, const int iterationIdx, DeferredLogger &deferred_logger) Definition: BlackoilWellModel_impl.hpp:2010 std::size_t global_num_cells_ Definition: BlackoilWellModel.hpp:455 std::map< std::string, Scalar > well_group_thp_calc_ Definition: BlackoilWellModel.hpp:461 void doPreStepNetworkRebalance(DeferredLogger &deferred_logger) Definition: BlackoilWellModel_impl.hpp:1159 GetPropType< TypeTag, Properties::Scalar > Scalar Definition: BlackoilWellModel.hpp:112 SimulatorReportSingle last_report_ Definition: BlackoilWellModel.hpp:465 static const int solventSaturationIdx Definition: BlackoilWellModel.hpp:125 void initWellContainer(const int reportStepIdx) override Definition: BlackoilWellModel_impl.hpp:182 void beginReportStep(const int time_step) Definition: BlackoilWellModel_impl.hpp:199 const WellInterface< TypeTag > & getWell(const std::string &well_name) const Definition: BlackoilWellModel_impl.hpp:2417 GetPropType< TypeTag, Properties::FluidSystem > FluidSystem Definition: BlackoilWellModel.hpp:108 bool isReservoirCouplingMaster() const Definition: BlackoilWellModel.hpp:393 Dune::FieldVector< Scalar, numEq > VectorBlockType Definition: BlackoilWellModel.hpp:134 void initFromRestartFile(const RestartValue &restartValues) Definition: BlackoilWellModel.hpp:195 GetPropType< TypeTag, Properties::ElementContext > ElementContext Definition: BlackoilWellModel.hpp:109 GetPropType< TypeTag, Properties::Grid > Grid Definition: BlackoilWellModel.hpp:106 GetPropType< TypeTag, Properties::EquilGrid > EquilGrid Definition: BlackoilWellModel.hpp:107 int numConservationQuantities() const Definition: BlackoilWellModel_impl.hpp:2389 void assembleWellEq(const double dt, DeferredLogger &deferred_logger) Definition: BlackoilWellModel_impl.hpp:1571 const std::map< std::string, int > & well_domain() const Definition: BlackoilWellModel.hpp:333 bool updateWellControls(DeferredLogger &deferred_logger) Definition: BlackoilWellModel_impl.hpp:1872 static constexpr bool has_polymer_ Definition: BlackoilWellModel.hpp:127 int reportStepIndex() const Definition: BlackoilWellModel_impl.hpp:2434 void calculateProductivityIndexValues(DeferredLogger &deferred_logger) override Definition: BlackoilWellModel_impl.hpp:2209 void extractLegacyDepth_() Definition: BlackoilWellModel_impl.hpp:2405 void extractLegacyCellPvtRegionIndex_() Definition: BlackoilWellModel_impl.hpp:2373 void recoverWellSolutionAndUpdateWellStateDomain(const BVector &x, const int domainIdx) Definition: BlackoilWellModel_impl.hpp:1792 void updateAverageFormationFactor() Definition: BlackoilWellModel_impl.hpp:2316 GetPropType< TypeTag, Properties::Simulator > Simulator Definition: BlackoilWellModel.hpp:111 bool isReservoirCouplingSlave() const Definition: BlackoilWellModel.hpp:396 void initializeWellState(const int timeStepIdx) Definition: BlackoilWellModel_impl.hpp:809 void assemble(const int iterationIdx, const double dt) Definition: BlackoilWellModel_impl.hpp:1189 void computeWellTemperature() Definition: BlackoilWellModel_impl.hpp:2468 void addWellPressureEquations(PressureMatrix &jacobian, const BVector &weights, const bool use_well_weights) const Definition: BlackoilWellModel_impl.hpp:1692 const SimulatorReportSingle & lastReport() const Definition: BlackoilWellModel_impl.hpp:685 bool updateWellControlsAndNetwork(const bool mandatory_network_balance, const double dt, DeferredLogger &local_deferredLogger) Definition: BlackoilWellModel_impl.hpp:1256 GetPropType< TypeTag, Properties::SparseMatrixAdapter > SparseMatrixAdapter Definition: BlackoilWellModel.hpp:115 void addWellContributions(SparseMatrixAdapter &jacobian) const Definition: BlackoilWellModel_impl.hpp:1682 const EquilGrid & equilGrid() const Definition: BlackoilWellModel.hpp:476 std::tuple< bool, Scalar > updateNetworks(const bool mandatory_network_balance, DeferredLogger &deferred_logger, const bool relax_network_tolerance=false) Definition: BlackoilWellModel_impl.hpp:1953 WellInterfacePtr createWellForWellTest(const std::string &well_name, const int report_step, DeferredLogger &deferred_logger) const Definition: BlackoilWellModel_impl.hpp:1134 GetPropType< TypeTag, Properties::Indices > Indices Definition: BlackoilWellModel.hpp:110 std::optional< ReservoirCoupling::ScopedLoggerGuard > setupRescoupScopedLogger(DeferredLogger &local_logger) Setup RAII guard for reservoir coupling logger. int compressedIndexForInteriorLGR(const std::string &lgr_tag, const Connection &conn) const override Definition: BlackoilWellModel.hpp:357 void assembleWellEqWithoutIteration(const double dt, DeferredLogger &deferred_logger) Definition: BlackoilWellModel_impl.hpp:1597 void sendSlaveGroupDataToMaster() Send comprehensive slave group data to master. std::vector< WellInterfacePtr > well_container_ Definition: BlackoilWellModel.hpp:432 void receiveSlaveGroupData() Receive comprehensive slave group data from slaves. static constexpr std::size_t pressureVarIndex Definition: BlackoilWellModel.hpp:122 Dune::BCRSMatrix< Opm::MatrixBlock< Scalar, 1, 1 > > PressureMatrix Definition: BlackoilWellModel.hpp:299 void computeTotalRatesForDof(RateVector &rate, unsigned globalIdx) const Definition: BlackoilWellModel_impl.hpp:772 bool addMatrixContributions() const Definition: BlackoilWellModel.hpp:346 const std::vector< Scalar > & wellPerfEfficiencyFactors() const GetPropType< TypeTag, Properties::RateVector > RateVector Definition: BlackoilWellModel.hpp:113 void calculateExplicitQuantities(DeferredLogger &deferred_logger) const Definition: BlackoilWellModel_impl.hpp:1857 std::map< std::string, std::unique_ptr< AverageRegionalPressureType > > regionalAveragePressureCalculator_ Definition: BlackoilWellModel.hpp:463 void updatePrimaryVariables(DeferredLogger &deferred_logger) Definition: BlackoilWellModel_impl.hpp:2364 bool computeWellGroupThp(const double dt, DeferredLogger &local_deferredLogger) Definition: BlackoilWellModel_impl.hpp:1382 GetPropType< TypeTag, Properties::GlobalEqVector > GlobalEqVector Definition: BlackoilWellModel.hpp:114 void initializeLocalWellStructure(const int reportStepIdx, const bool enableWellPIScaling) Definition: BlackoilWellModel_impl.hpp:252 static constexpr bool has_solvent_ Definition: BlackoilWellModel.hpp:126 void setReservoirCouplingMaster(ReservoirCouplingMaster< Scalar > *master) Definition: BlackoilWellModel.hpp:399 Dune::BlockVector< VectorBlockType > BVector Definition: BlackoilWellModel.hpp:135 static constexpr bool has_micp_ Definition: BlackoilWellModel.hpp:130 std::unique_ptr< RateConverterType > rateConverter_ Definition: BlackoilWellModel.hpp:462 BlackoilWellModel(Simulator &simulator) Definition: BlackoilWellModel_impl.hpp:78 const SparseTable< int > & well_local_cells() const Definition: BlackoilWellModel.hpp:325 void wellTesting(const int timeStepIdx, const double simulationTime, DeferredLogger &deferred_logger) Definition: BlackoilWellModel_impl.hpp:597 std::vector< bool > is_cell_perforated_ Definition: BlackoilWellModel.hpp:434 ConvergenceReport getWellConvergence(const std::vector< Scalar > &B_avg, const bool checkWellGroupControlsAndNetwork=false) const Definition: BlackoilWellModel_impl.hpp:1805 int numStrictIterations() const Definition: BlackoilWellModel.hpp:349 typename FluidSystem::IndexTraitsType IndexTraits Definition: BlackoilWellModel.hpp:119 void updateCellRatesForDomain(int domainIndex, const std::map< std::string, int > &well_domain_map) Definition: BlackoilWellModel_impl.hpp:1629 data::WellBlockAveragePressures wellBlockAveragePressures() const Definition: BlackoilWellModel.hpp:247 void updateCellRates() Definition: BlackoilWellModel_impl.hpp:1617 std::size_t local_num_cells_ Definition: BlackoilWellModel.hpp:457 bool alternative_well_rate_init_ Definition: BlackoilWellModel.hpp:460 void timeStepSucceeded(const double simulationTime, const double dt) Definition: BlackoilWellModel_impl.hpp:695 std::unique_ptr< WellType > createTypedWellPointer(const int wellID, const int time_step) const Definition: BlackoilWellModel_impl.hpp:1103 void setReservoirCouplingSlave(ReservoirCouplingSlave< Scalar > *slave) Definition: BlackoilWellModel.hpp:404 void createWellContainer(const int report_step) override Definition: BlackoilWellModel_impl.hpp:852 std::unique_ptr< WellInterface< TypeTag > > WellInterfacePtr Definition: BlackoilWellModel.hpp:192 ReservoirCouplingSlave< Scalar > & reservoirCouplingSlave() Definition: BlackoilWellModel.hpp:390 void updateWellTestState(const double simulationTime, WellTestState &wellTestState) upate the wellTestState related to economic limits Definition: BlackoilWellModel_impl.hpp:2092 void addWellPressureEquationsDomain(PressureMatrix &jacobian, const BVector &weights, const bool use_well_weights, const int domainIndex) const Definition: BlackoilWellModel.hpp:305 void addReservoirSourceTerms(GlobalEqVector &residual, const std::vector< typename SparseMatrixAdapter::MatrixBlock * > &diagMatAddress) const Definition: BlackoilWellModel_impl.hpp:1714 int compressedIndexForInterior(int cartesian_cell_idx) const override get compressed index for interior cells (-1, otherwise Definition: BlackoilWellModel.hpp:352 static constexpr bool has_energy_ Definition: BlackoilWellModel.hpp:129 void recoverWellSolutionAndUpdateWellState(const BVector &x) Definition: BlackoilWellModel_impl.hpp:1767 void addWellPressureEquationsStruct(PressureMatrix &jacobian) const Definition: BlackoilWellModel_impl.hpp:1744 void calculateProductivityIndexValuesShutWells(const int reportStepIdx, DeferredLogger &deferred_logger) override Definition: BlackoilWellModel_impl.hpp:2223 void computePotentials(const std::size_t widx, const WellState< Scalar, IndexTraits > &well_state_copy, std::string &exc_msg, ExceptionType::ExcEnum &exc_type, DeferredLogger &deferred_logger) override Definition: BlackoilWellModel_impl.hpp:2173 void prepareWellsBeforeAssembling(const double dt, DeferredLogger &deferred_logger) Definition: BlackoilWellModel_impl.hpp:1583 data::WellBlockAveragePressures computeWellBlockAveragePressures(const Scalar gravity) const Definition: ConvergenceReport.hpp:38 Definition: DeferredLogger.hpp:57 Handles computation and reporting of guide rates for wells and groups. Definition: GuideRateHandler.hpp:53 Definition: RateConverter.hpp:70 Definition: RegionAverageCalculator.hpp:60 Definition: ReservoirCouplingMaster.hpp:38 Definition: ReservoirCouplingSlave.hpp:40 Definition: BlackoilWellModel.hpp:92 Definition: WellConnectionAuxiliaryModule.hpp:39 Definition: WellContributions.hpp:51 Definition: WellGroupHelper.hpp:59 void setReservoirCouplingSlave(ReservoirCouplingSlave< Scalar > *reservoir_coupling_slave) Definition: WellGroupHelper.hpp:254 void setReservoirCouplingMaster(ReservoirCouplingMaster< Scalar > *reservoir_coupling_master) Definition: WellGroupHelper.hpp:249 Definition: WellInterface.hpp:77 Definition: WellState.hpp:66 data::Wells report(const int *globalCellIdxMap, const std::function< bool(const int)> &wasDynamicallyClosed) const Definition: blackoilbioeffectsmodules.hh:43 typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(.... Definition: propertysystem.hh:233 Solver parameters for the BlackoilModel. Definition: BlackoilModelParameters.hpp:182 bool matrix_add_well_contributions_ Whether to add influences of wells between cells to the matrix and preconditioner matrix. Definition: BlackoilModelParameters.hpp:288 bool use_multisegment_well_ Definition: BlackoilModelParameters.hpp:282 int strict_outer_iter_wells_ Newton iteration where wells are stricly convergent. Definition: BlackoilModelParameters.hpp:238 A struct for returning timing data from a simulator to its caller. Definition: SimulatorReport.hpp:34 |