|
WellInterface.hpp
Go to the documentation of this file.
121 static constexpr EnergyModules energyModuleType = getPropValue<TypeTag, Properties::EnergyModuleType>();
129 static constexpr bool has_disgas_in_water = getPropValue<TypeTag, Properties::EnableDisgasInWater>();
130 static constexpr bool has_saltPrecip = getPropValue<TypeTag, Properties::EnableSaltPrecipitation>();
Declares the properties required by the black oil model. Definition: ConvergenceReport.hpp:38 Definition: DeferredLogger.hpp:57 std::map< std::string, std::pair< const Well *, int > > GLiftEclWells Definition: GasLiftGroupInfo.hpp:65 Definition: GasLiftSingleWell.hpp:39 Definition: GroupStateHelper.hpp:56 Definition: GroupState.hpp:42 Class encapsulating some information about parallel wells. Definition: ParallelWellInfo.hpp:217 Definition: RateConverter.hpp:70 Manages the initializing and running of time dependent problems. Definition: simulator.hh:87 Definition: SingleWellState.hpp:44 Definition: WellInterfaceFluidSystem.hpp:50 static constexpr int Oil Definition: WellInterfaceFluidSystem.hpp:65 static constexpr int Water Definition: WellInterfaceFluidSystem.hpp:64 static constexpr int Gas Definition: WellInterfaceFluidSystem.hpp:66 int pvtRegionIdx() const Definition: WellInterfaceGeneric.hpp:136 OperabilityStatus operability_status_ Definition: WellInterfaceGeneric.hpp:476 const std::vector< int > & cells() const Well cells. Definition: WellInterfaceGeneric.hpp:91 int number_of_local_perforations_ Definition: WellInterfaceGeneric.hpp:520 Definition: WellInterfaceIndices.hpp:34 DenseAd::Evaluation< Scalar, Indices::numDerivatives > Eval Definition: WellInterfaceIndices.hpp:40 typename WellInterfaceFluidSystem< GetPropType< TypeTag, Properties::FluidSystem > >::ModelParameters ModelParameters Definition: WellInterfaceIndices.hpp:41 Definition: WellInterface.hpp:79 bool stoppedOrZeroRateTarget(const GroupStateHelperType &groupStateHelper) const Definition: WellInterface_impl.hpp:2003 bool updateWellOperabilityFromWellEq(const Simulator &simulator, const GroupStateHelperType &groupStateHelper) Definition: WellInterface_impl.hpp:1559 virtual void checkOperabilityUnderTHPLimit(const Simulator &simulator, const WellStateType &well_state, const GroupStateHelperType &groupStateHelper)=0 virtual std::vector< Scalar > computeCurrentWellRates(const Simulator &simulator, DeferredLogger &deferred_logger) const =0 void checkWellOperability(const Simulator &simulator, const WellStateType &well_state, const GroupStateHelperType &groupStateHelper) Definition: WellInterface_impl.hpp:1431 void updateWellOperability(const Simulator &simulator, const WellStateType &well_state, const GroupStateHelperType &groupStateHelper) Definition: WellInterface_impl.hpp:1521 bool solveWellWithOperabilityCheck(const Simulator &simulator, const double dt, const Well::InjectionControls &inj_controls, const Well::ProductionControls &prod_controls, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) Definition: WellInterface_impl.hpp:855 virtual Scalar maxPerfPress(const Simulator &simulator) const =0 GetPropType< TypeTag, Properties::Simulator > Simulator Definition: WellInterface.hpp:84 void assembleWellEqWithoutIteration(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, const double dt, WellStateType &well_state, const bool solving_with_zero_rate) Definition: WellInterface_impl.hpp:1228 virtual void recoverWellSolutionAndUpdateWellState(const Simulator &simulator, const BVector &x, const GroupStateHelperType &groupStateHelper, WellStateType &well_state)=0 Scalar computeConnectionDFactor(const int perf, const IntensiveQuantities &intQuants, const SingleWellStateType &ws) const Definition: WellInterface_impl.hpp:2263 virtual std::optional< Scalar > computeBhpAtThpLimitProdWithAlq(const Simulator &ebos_simulator, const GroupStateHelperType &groupStateHelper, const SummaryState &summary_state, const Scalar alq_value, bool iterate_if_no_solution) const =0 virtual void computeWellRatesWithBhp(const Simulator &ebosSimulator, const Scalar &bhp, std::vector< Scalar > &well_flux, DeferredLogger &deferred_logger) const =0 void updateWeldrawMaxRate(const Simulator &simulator, WellStateType &well_state, DeferredLogger &deferred_logger) const Definition: WellInterface_impl.hpp:290 virtual void addWellContributions(SparseMatrixAdapter &) const =0 typename WellInterfaceFluidSystem< FluidSystem >::RateConverterType RateConverterType Definition: WellInterface.hpp:110 const std::vector< RateVector > & connectionRates() const Definition: WellInterface.hpp:395 virtual void updateIPR(const Simulator &simulator, DeferredLogger &deferred_logger) const =0 bool updateWellControlAndStatusLocalIteration(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, const Well::InjectionControls &inj_controls, const Well::ProductionControls &prod_controls, const Scalar WQTotal, WellStateType &well_state, const bool fixed_control, const bool fixed_status, const bool solving_with_zero_rate) Definition: WellInterface_impl.hpp:382 void getTransMult(Value &trans_mult, const Simulator &simulator, const int cell_idx, Callback &extendEval) const Definition: WellInterface_impl.hpp:2351 std::vector< RateVector > connectionRates_ Definition: WellInterface.hpp:436 bool solveWellForTesting(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) Definition: WellInterface_impl.hpp:1094 void computeConnLevelProdInd(const FluidState &fs, const std::function< Scalar(const Scalar)> &connPICalc, const std::vector< Scalar > &mobility, Scalar *connPI) const Definition: WellInterface_impl.hpp:2517 Dune::BCRSMatrix< Opm::MatrixBlock< Scalar, 1, 1 > > PressureMatrix Definition: WellInterface.hpp:100 void gliftBeginTimeStepWellTestUpdateALQ(const Simulator &simulator, WellStateType &well_state, const GroupState< Scalar > &group_state, GLiftEclWells &ecl_well_map, DeferredLogger &deferred_logger) Definition: WellInterface_impl.hpp:1459 Scalar volumetricSurfaceRateForConnection(int cellIdx, int phaseIdx) const Definition: WellInterface_impl.hpp:1411 virtual void init(const std::vector< Scalar > &depth_arg, const Scalar gravity_arg, const std::vector< Scalar > &B_avg, const bool changed_to_open_this_step) Definition: WellInterface_impl.hpp:98 BlackOilFluidState< ValueType, FluidSystem, energyModuleType !=EnergyModules::NoTemperature, energyModuleType==EnergyModules::FullyImplicitThermal, Indices::compositionSwitchIdx !=std::numeric_limits< unsigned >::max(), has_watVapor, has_brine, has_saltPrecip, has_disgas_in_water, has_solvent, Indices::numPhases > BlackOilFluidStateType Definition: WellInterface.hpp:145 std::optional< Scalar > computeBhpAtThpLimitProdWithAlqUsingIPR(const Simulator &simulator, const WellStateType &well_state, Scalar bhp, const SummaryState &summary_state, const Scalar alq_value) Definition: WellInterface_impl.hpp:2482 virtual void updatePrimaryVariables(const GroupStateHelperType &groupStateHelper)=0 void getTw(std::vector< Value > &wi, const int perf, const IntensiveQuantities &intQuants, const Value &trans_mult, const SingleWellStateType &ws) const Definition: WellInterface_impl.hpp:2152 void getMobility(const Simulator &simulator, const int local_perf_index, std::vector< Value > &mob, Callback &extendEval, DeferredLogger &deferred_logger) const Definition: WellInterface_impl.hpp:2364 virtual void apply(const BVector &x, BVector &Ax) const =0 Ax = Ax - C D^-1 B x. Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, numResDofs, numWellDofs > > CMatrix Definition: WellInterface.hpp:425 GetPropType< TypeTag, Properties::IntensiveQuantities > IntensiveQuantities Definition: WellInterface.hpp:89 GetPropType< TypeTag, Properties::Scalar > Scalar Definition: WellInterface.hpp:85 virtual void updateIPRImplicit(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, WellStateType &well_state)=0 std::vector< Scalar > initialWellRateFractions(const Simulator &ebosSimulator, const WellStateType &well_state) const Definition: WellInterface_impl.hpp:2014 void solveWellEquation(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) Definition: WellInterface_impl.hpp:1150 void updateConnectionDFactor(const Simulator &simulator, SingleWellStateType &ws) const Definition: WellInterface_impl.hpp:2243 virtual void updateWaterThroughput(const double dt, WellStateType &well_state) const =0 GetPropType< TypeTag, Properties::MaterialLaw > MaterialLaw Definition: WellInterface.hpp:90 virtual Scalar getRefDensity() const =0 typename FluidSystem::IndexTraitsType IndexTraits Definition: WellInterface.hpp:87 Eval getPerfCellPressure(const FluidState &fs) const Definition: WellInterface_impl.hpp:2336 Dune::BlockVector< VectorBlockType > BVector Definition: WellInterface.hpp:99 void initializeProducerWellState(const Simulator &simulator, WellStateType &well_state, DeferredLogger &deferred_logger) const Definition: WellInterface_impl.hpp:2064 static constexpr bool has_bioeffects Definition: WellInterface.hpp:131 bool changed_to_stopped_this_step_ Definition: WellInterface.hpp:438 virtual void updateWellStateWithTarget(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) const Definition: WellInterface_impl.hpp:1589 static constexpr bool has_polymermw Definition: WellInterface.hpp:125 void addCellRates(std::map< int, RateVector > &cellRates_) const Definition: WellInterface_impl.hpp:1392 GetPropType< TypeTag, Properties::Grid > Grid Definition: WellInterface.hpp:83 virtual void addWellPressureEquations(PressureMatrix &mat, const BVector &x, const int pressureVarIndex, const bool use_well_weights, const bool contract_d_diagonal, const WellStateType &well_state) const =0 typename Base::ModelParameters ModelParameters Definition: WellInterface.hpp:116 virtual void solveEqAndUpdateWellState(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, WellStateType &well_state)=0 GetPropType< TypeTag, Properties::FluidSystem > FluidSystem Definition: WellInterface.hpp:86 static constexpr bool has_disgas_in_water Definition: WellInterface.hpp:129 virtual bool iterateWellEqWithSwitching(const Simulator &simulator, const double dt, const WellInjectionControls &inj_controls, const WellProductionControls &prod_controls, const GroupStateHelperType &groupStateHelper, WellStateType &well_state, const bool fixed_control, const bool fixed_status, const bool solving_with_zero_rate)=0 static constexpr bool has_saltPrecip Definition: WellInterface.hpp:130 bool wellUnderZeroRateTarget(const GroupStateHelperType &groupStateHelper) const Definition: WellInterface_impl.hpp:1971 virtual void assembleWellEqWithoutIteration(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, const double dt, const WellInjectionControls &inj_controls, const WellProductionControls &prod_controls, WellStateType &well_state, const bool solving_with_zero_rate)=0 virtual void checkOperabilityUnderBHPLimit(const WellStateType &well_state, const Simulator &simulator, DeferredLogger &deferred_logger)=0 virtual void addBCDMatrix(std::vector< BMatrix > &b_matrices, std::vector< CMatrix > &c_matrices, std::vector< DMatrix > &d_matrices, Opm::SparseTable< int > &wcells) const =0 GetPropType< TypeTag, Properties::RateVector > RateVector Definition: WellInterface.hpp:92 void updateConnectionTransmissibilityFactor(const Simulator &simulator, SingleWellStateType &ws) const Definition: WellInterface_impl.hpp:2305 void computeConnLevelInjInd(const FluidState &fs, const Phase preferred_phase, const std::function< Scalar(const Scalar)> &connIICalc, const std::vector< Scalar > &mobility, Scalar *connII, DeferredLogger &deferred_logger) const Definition: WellInterface_impl.hpp:2551 typename GasLiftGroupInfo< Scalar, IndexTraits >::GLiftEclWells GLiftEclWells Definition: WellInterface.hpp:94 std::unique_ptr< GasLiftSingleWell > initializeGliftWellTest_(const Simulator &simulator, WellStateType &well_state, const GroupState< Scalar > &group_state, GLiftEclWells &ecl_well_map, DeferredLogger &deferred_logger) Definition: WellInterface_impl.hpp:2585 BlackOilFluidStateType< Eval > FluidState Definition: WellInterface.hpp:148 std::optional< Scalar > estimateOperableBhp(const Simulator &ebos_simulator, const double dt, const GroupStateHelperType &groupStateHelper, const SummaryState &summary_state, WellStateType &well_state) Definition: WellInterface_impl.hpp:975 Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, numWellDofs, numWellDofs > > DMatrix Definition: WellInterface.hpp:426 Dune::BlockVector< Dune::FieldVector< Scalar, numWellDofs > > WVector Definition: WellInterface.hpp:427 int number_of_well_reopenings_ Definition: WellInterface.hpp:440 bool solveWellWithZeroRate(const Simulator &simulator, const double dt, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) Definition: WellInterface_impl.hpp:1062 bool wellUnderZeroGroupRateTarget(const GroupStateHelperType &groupStateHelper, const std::optional< bool > group_control=std::nullopt) const Definition: WellInterface_impl.hpp:1988 bool solveWellWithBhp(const Simulator &simulator, const double dt, const Scalar bhp, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) Definition: WellInterface_impl.hpp:1012 Dune::FieldMatrix< Scalar, Indices::numEq, Indices::numEq > MatrixBlockType Definition: WellInterface.hpp:97 void prepareWellBeforeAssembling(const Simulator &simulator, const double dt, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) Definition: WellInterface_impl.hpp:1265 void wellTesting(const Simulator &simulator, const double simulation_time, const GroupStateHelperType &groupStateHelper, WellStateType &well_state, WellTestState &welltest_state, GLiftEclWells &ecl_well_map, std::map< std::string, double > &open_times) Definition: WellInterface_impl.hpp:501 virtual ConvergenceReport getWellConvergence(const GroupStateHelperType &groupStateHelper, const std::vector< Scalar > &B_avg, const bool relax_tolerance) const =0 WellInterface(const Well &well, const ParallelWellInfo< Scalar > &pw_info, const int time_step, const ModelParameters ¶m, const RateConverterType &rate_converter, const int pvtRegionIdx, const int num_conservation_quantities, const int num_phases, const int index_of_well, const std::vector< PerforationData< Scalar > > &perf_data) Constructor. Definition: WellInterface_impl.hpp:61 WellState< Scalar, IndexTraits > WellStateType Definition: WellInterface.hpp:102 bool updateWellStateWithTHPTargetProd(const Simulator &simulator, WellStateType &well_state, const GroupStateHelperType &groupStateHelper) const Definition: WellInterface_impl.hpp:2450 virtual void computeWellPotentials(const Simulator &simulator, const WellStateType &well_state, const GroupStateHelperType &groupStateHelper, std::vector< Scalar > &well_potentials)=0 bool iterateWellEquations(const Simulator &simulator, const double dt, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) Definition: WellInterface_impl.hpp:658 SingleWellState< Scalar, IndexTraits > SingleWellStateType Definition: WellInterface.hpp:103 virtual bool iterateWellEqWithControl(const Simulator &simulator, const double dt, const WellInjectionControls &inj_controls, const WellProductionControls &prod_controls, const GroupStateHelperType &groupStateHelper, WellStateType &well_state)=0 virtual void updateProductivityIndex(const Simulator &simulator, const WellProdIndexCalculator< Scalar > &wellPICalc, WellStateType &well_state, DeferredLogger &deferred_logger) const =0 virtual void calculateExplicitQuantities(const Simulator &simulator, const GroupStateHelperType &groupStateHelper)=0 GetPropType< TypeTag, Properties::Indices > Indices Definition: WellInterface.hpp:88 bool updateWellControl(const Simulator &simulator, const IndividualOrGroup iog, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) Definition: WellInterface_impl.hpp:192 void addConstantCellRates(std::map< int, RateVector > &cellRates, const CellFilter &cellFilter) const Add the connection rates of the cells accepted by cellFilter as constant sources, i.... Definition: WellInterface.hpp:309 void updateGroupTargetFallbackFlag(WellStateType &well_state, DeferredLogger &deferred_logger) const Definition: WellInterface_impl.hpp:1250 FSInfo getFirstPerfCellConditions(const Simulator &simulator) const Temperature and salt concentration of the first perforated cell, broadcast so that all processes of a... Definition: WellInterface_impl.hpp:2627 virtual void getScaledWellFractions(std::vector< Scalar > &scaled_fractions, DeferredLogger &deferred_logger) const =0 bool thp_update_iterations Definition: WellInterface.hpp:439 Dune::FieldVector< Scalar, Indices::numEq > VectorBlockType Definition: WellInterface.hpp:96 void assembleWellEq(const Simulator &simulator, const double dt, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) Definition: WellInterface_impl.hpp:1212 GetPropType< TypeTag, Properties::SparseMatrixAdapter > SparseMatrixAdapter Definition: WellInterface.hpp:91 virtual void scaleSegmentRatesAndPressure(WellStateType &well_state) const Definition: WellInterface_impl.hpp:1581 GroupStateHelper< Scalar, IndexTraits > GroupStateHelperType Definition: WellInterface.hpp:104 virtual void computeWellRatesWithBhpIterations(const Simulator &simulator, const Scalar &bhp, const GroupStateHelperType &groupStateHelper, std::vector< Scalar > &well_flux) const =0 static constexpr bool has_zFraction Definition: WellInterface.hpp:119 Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, numWellDofs, numResDofs > > BMatrix Definition: WellInterface.hpp:424 void consolidatePhaseMixingRates(WellStateType &well_state) const Definition: WellInterface_impl.hpp:737 static constexpr EnergyModules energyModuleType Definition: WellInterface.hpp:121 Definition: WellProdIndexCalculator.hpp:37 Definition: WellState.hpp:68 Declares the properties required by the black oil model. Phase Phase indices for reservoir coupling, we currently only support black-oil phases (oil,... Definition: ReservoirCoupling.hpp:183 Definition: blackoilbioeffectsmodules.hh:45 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 Reservoir temperature and salt concentration of the first perforated cell. Definition: ParallelWellInfo.hpp:44 Static data associated with a well perforation. Definition: PerforationData.hpp:30 |