|
MultisegmentWell.hpp
Go to the documentation of this file.
Definition: ConvergenceReport.hpp:38 Definition: DeferredLogger.hpp:57 Definition: GroupStateHelper.hpp:56 Definition: MultisegmentWellEval.hpp:50 MultisegmentWellEquations< Scalar, IndexTraits, numWellEq, Indices::numEq > Equations Definition: MultisegmentWellEval.hpp:64 static constexpr int SPres Definition: MultisegmentWellEval.hpp:58 static constexpr int numWellDofs Definition: MultisegmentWellEval.hpp:88 void addBCDMatrix(std::vector< BMatrix > &b_matrices, std::vector< CMatrix > &c_matrices, std::vector< DMatrix > &d_matrices, Opm::SparseTable< int > &wcells) const typename PrimaryVariables::EvalWell EvalWell Definition: MultisegmentWellEval.hpp:73 typename Equations::BVectorWell BVectorWell Definition: MultisegmentWellEval.hpp:68 Definition: MultisegmentWell.hpp:42 bool computeWellPotentialsImplicit(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, std::vector< Scalar > &well_potentials) const Definition: MultisegmentWell_impl.hpp:536 bool iterateWellEqWithSwitching(const Simulator &simulator, const double dt, const Well::InjectionControls &inj_controls, const Well::ProductionControls &prod_controls, const GroupStateHelperType &groupStateHelper, WellStateType &well_state, const bool fixed_control, const bool fixed_status, const bool solving_with_zero_rate) override Definition: MultisegmentWell_impl.hpp:1678 std::vector< Scalar > segment_initial_energy_ Definition: MultisegmentWell.hpp:230 SegmentFluidState< EvalWell > wellhead_fluid_state_ Definition: MultisegmentWell.hpp:242 void updateWellState(const Simulator &simulator, const BVectorWell &dwells, const GroupStateHelperType &groupStateHelper, WellStateType &well_state, const Scalar relaxation_factor=1.0) Definition: MultisegmentWell_impl.hpp:723 void updateWaterThroughput(const double dt, WellStateType &well_state) const override Definition: MultisegmentWell_impl.hpp:2178 void addWellPressureEquations(PressureMatrix &mat, const BVector &x, const int pressureVarIndex, const bool use_well_weights, const WellStateType &well_state) const override Definition: MultisegmentWell_impl.hpp:904 void assembleWellEqWithoutIteration(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, const double dt, const Well::InjectionControls &inj_controls, const Well::ProductionControls &prod_controls, WellStateType &well_state, const bool solving_with_zero_rate) override Definition: MultisegmentWell_impl.hpp:1858 Scalar connectionDensity(const int globalConnIdx, const int openConnIdx) const override Definition: MultisegmentWell_impl.hpp:869 void addWellContributions(SparseMatrixAdapter &jacobian) const override Definition: MultisegmentWell_impl.hpp:891 void getTransMult(Value &trans_mult, const Simulator &simulator, const int cell_indx) const Definition: MultisegmentWell_impl.hpp:1194 EvalWell surfaceToReservoirRate(unsigned phaseIdx, const FluidStateT &fs, const std::vector< EvalWell > &surface_rates, int seg, std::string_view context, DeferredLogger &deferred_logger) const Definition: MultisegmentWell_impl.hpp:2635 std::vector< Scalar > computeWellPotentialWithTHP(const WellStateType &well_state, const Simulator &simulator, const GroupStateHelperType &groupStateHelper) const Definition: MultisegmentWell_impl.hpp:484 Scalar getRefDensity() const override Definition: MultisegmentWell_impl.hpp:1254 EvalWell getSegmentSurfaceVolume(const int seg_idx, const EvalWell &volume_ratio) const Definition: MultisegmentWell_impl.hpp:2189 EvalWell computeSegmentEnergyRate(int seg, int upwind_seg, const SegmentFluidState< EvalWell > &upwind_fs, std::string_view context, DeferredLogger &deferred_logger) const Definition: MultisegmentWell_impl.hpp:2686 std::vector< SegmentFluidState< EvalWell > > segment_fluid_state_ Definition: MultisegmentWell.hpp:233 void updateWellStateWithTarget(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) const override updating the well state based the current control mode Definition: MultisegmentWell_impl.hpp:183 std::vector< Scalar > getPrimaryVars() const override Definition: MultisegmentWell_impl.hpp:2404 void computeWellRatesWithBhpIterations(const Simulator &simulator, const Scalar &bhp, const GroupStateHelperType &groupStateHelper, std::vector< Scalar > &well_flux) const override Definition: MultisegmentWell_impl.hpp:408 void checkOperabilityUnderTHPLimit(const Simulator &ebos_simulator, const WellStateType &well_state, const GroupStateHelperType &groupStateHelper) override Definition: MultisegmentWell_impl.hpp:1499 bool iterateWellEqWithControl(const Simulator &simulator, const double dt, const Well::InjectionControls &inj_controls, const Well::ProductionControls &prod_controls, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) override Definition: MultisegmentWell_impl.hpp:1552 ValueType computeSegmentEnergy(int seg) const Definition: MultisegmentWell_impl.hpp:2830 std::vector< Scalar > computeCurrentWellRates(const Simulator &simulator, DeferredLogger &deferred_logger) const override Definition: MultisegmentWell_impl.hpp:2358 void apply(const BVector &x, BVector &Ax) const override Ax = Ax - C D^-1 B x. Definition: MultisegmentWell_impl.hpp:228 MultisegmentWell(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) Definition: MultisegmentWell_impl.hpp:63 void checkOperabilityUnderBHPLimit(const WellStateType &well_state, const Simulator &ebos_simulator, DeferredLogger &deferred_logger) override Definition: MultisegmentWell_impl.hpp:1262 void getMobility(const Simulator &simulator, const int local_perf_index, std::vector< Value > &mob, DeferredLogger &deferred_logger) const Definition: MultisegmentWell_impl.hpp:1214 SegmentPvt segmentPvt(const SegmentFluidState< EvalWell > &fluid_state) const Definition: MultisegmentWell_impl.hpp:1164 void recoverWellSolutionAndUpdateWellState(const Simulator &simulator, const BVector &x, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) override Definition: MultisegmentWell_impl.hpp:263 void assemblePerforationEnergyEq(const IntensiveQuantities &int_quants, const std::vector< EvalWell > &cq_s, const int seg, const int local_perf_index, DeferredLogger &deferred_logger) Definition: MultisegmentWell_impl.hpp:2723 static constexpr Scalar energy_scaling_factor_ Definition: MultisegmentWell.hpp:84 bool openCrossFlowAvoidSingularity(const Simulator &simulator) const Definition: MultisegmentWell_impl.hpp:2116 void computeSegmentFluidProperties(const Simulator &simulator, DeferredLogger &deferred_logger) Definition: MultisegmentWell_impl.hpp:1146 int setPrimaryVars(typename std::vector< Scalar >::const_iterator it) override Definition: MultisegmentWell_impl.hpp:2422 void computeWellRatesWithBhp(const Simulator &simulator, const Scalar &bhp, std::vector< Scalar > &well_flux, DeferredLogger &deferred_logger) const override Definition: MultisegmentWell_impl.hpp:358 void updateSegmentFluidState(const FSInfo &info, DeferredLogger &deferred_logger) Definition: MultisegmentWell_impl.hpp:2858 Base::template BlackOilFluidStateType< ValueType > SegmentFluidState Definition: MultisegmentWell.hpp:107 void scaleSegmentRatesAndPressure(WellStateType &well_state) const override updating the segment pressure and rates based the current bhp and well rates Definition: MultisegmentWell_impl.hpp:172 bool allDrawDownWrongDirection(const Simulator &simulator) const Definition: MultisegmentWell_impl.hpp:2125 int debug_cost_counter_ Definition: MultisegmentWell.hpp:244 void updateProductivityIndex(const Simulator &simulator, const WellProdIndexCalculator< Scalar > &wellPICalc, WellStateType &well_state, DeferredLogger &deferred_logger) const override Definition: MultisegmentWell_impl.hpp:787 typename MultisegmentWellSegments< FluidSystem, Indices >::SegmentPvt SegmentPvt Definition: MultisegmentWell.hpp:112 std::optional< Scalar > computeBhpAtThpLimitProd(const WellStateType &well_state, const Simulator &ebos_simulator, const GroupStateHelperType &groupStateHelper, const SummaryState &summary_state) const Definition: MultisegmentWell_impl.hpp:2200 Scalar maxPerfPress(const Simulator &simulator) const override Definition: MultisegmentWell_impl.hpp:2330 void computePerfRate(const IntensiveQuantities &int_quants, const std::vector< Value > &mob_perfcells, const std::vector< Value > &Tw, const int seg, const int perf, const Value &segment_pressure, const bool &allow_cf, std::vector< Value > &cq_s, Value &perf_press, PerforationRates< Scalar > &perf_rates, DeferredLogger &deferred_logger) const Definition: MultisegmentWell_impl.hpp:1073 SegmentFluidState< EvalWell > createSegmentFluidState(int seg, const FSInfo &info, DeferredLogger &deferred_logger) const Definition: MultisegmentWell_impl.hpp:2612 SegmentFluidState< ValueType > createFluidState(const std::vector< ValueType > &fluid_composition, const ValueType &pressure, const ValueType &temperature, const ValueType &saltConcentration, DeferredLogger &deferred_logger) const Definition: MultisegmentWell_impl.hpp:2450 void computeWellPotentials(const Simulator &simulator, const WellStateType &well_state, const GroupStateHelperType &groupStateHelper, std::vector< Scalar > &well_potentials) override computing the well potentials for group control Definition: MultisegmentWell_impl.hpp:296 void calculateExplicitQuantities(const Simulator &simulator, const GroupStateHelperType &groupStateHelper) override Definition: MultisegmentWell_impl.hpp:767 static constexpr bool compositionSwitchEnabled Definition: MultisegmentWell.hpp:74 void computePerfCellPressDiffs(const Simulator &simulator) Definition: MultisegmentWell_impl.hpp:643 void solveEqAndUpdateWellState(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) override Definition: MultisegmentWell_impl.hpp:613 void addBCDMatrix(std::vector< typename Base::BMatrix > &b_matrices, std::vector< typename Base::CMatrix > &c_matrices, std::vector< typename Base::DMatrix > &d_matrices, Opm::SparseTable< int > &wcells) const override Definition: MultisegmentWell.hpp:204 void updateWellHeadCondition(const Simulator &simulator, const Scalar first_perf_temperature, const Scalar first_perf_salt_concentration, DeferredLogger &deferred_logger) Definition: MultisegmentWell_impl.hpp:2778 std::optional< Scalar > computeBhpAtThpLimitInj(const Simulator &ebos_simulator, const GroupStateHelperType &groupStateHelper, const SummaryState &summary_state) const Definition: MultisegmentWell_impl.hpp:2275 static constexpr bool enable_temperature Definition: MultisegmentWell.hpp:79 void updateIPR(const Simulator &ebos_simulator, DeferredLogger &deferred_logger) const override Definition: MultisegmentWell_impl.hpp:1328 void computeInitialSegmentInventory(DeferredLogger &deferred_logger) Definition: MultisegmentWell_impl.hpp:700 ConvergenceReport getWellConvergence(const GroupStateHelperType &groupStateHelper, const std::vector< Scalar > &B_avg, const bool relax_tolerance) const override check whether the well equations get converged for this well Definition: MultisegmentWell_impl.hpp:202 void updatePrimaryVariables(const GroupStateHelperType &groupStateHelper) override Definition: MultisegmentWell_impl.hpp:157 void updateIPRImplicit(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, WellStateType &well_state) override Definition: MultisegmentWell_impl.hpp:1429 void computeWellRatesAtBhpLimit(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, std::vector< Scalar > &well_flux) const Definition: MultisegmentWell_impl.hpp:342 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) override Definition: MultisegmentWell_impl.hpp:122 std::vector< std::vector< Scalar > > segment_fluid_initial_ Definition: MultisegmentWell.hpp:228 std::optional< Scalar > computeBhpAtThpLimitProdWithAlq(const Simulator &simulator, const GroupStateHelperType &groupStateHelper, const SummaryState &summary_state, const Scalar alq_value, bool iterate_if_no_solution) const override Definition: MultisegmentWell_impl.hpp:2218 std::vector< SegmentPvt > segment_pvt_ Definition: MultisegmentWell.hpp:237 void getScaledWellFractions(std::vector< Scalar > &scaled_fractions, DeferredLogger &deferred_logger) const override Definition: MultisegmentWell_impl.hpp:2439 Class encapsulating some information about parallel wells. Definition: ParallelWellInfo.hpp:217 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:132 Definition: WellInterface.hpp:79 GetPropType< TypeTag, Properties::Simulator > Simulator Definition: WellInterface.hpp:84 typename WellInterfaceFluidSystem< FluidSystem >::RateConverterType RateConverterType Definition: WellInterface.hpp:110 Dune::BCRSMatrix< Opm::MatrixBlock< Scalar, 1, 1 > > PressureMatrix Definition: WellInterface.hpp:100 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 Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, numResDofs, numWellDofs > > CMatrix Definition: WellInterface.hpp:392 GetPropType< TypeTag, Properties::IntensiveQuantities > IntensiveQuantities Definition: WellInterface.hpp:89 GetPropType< TypeTag, Properties::Scalar > Scalar Definition: WellInterface.hpp:85 GetPropType< TypeTag, Properties::MaterialLaw > MaterialLaw Definition: WellInterface.hpp:90 typename FluidSystem::IndexTraitsType IndexTraits Definition: WellInterface.hpp:87 Dune::BlockVector< VectorBlockType > BVector Definition: WellInterface.hpp:99 FirstPerfCellConditions< Scalar > FSInfo Temperature and salt concentration of the first perforated cell. Definition: WellInterface.hpp:107 typename Base::ModelParameters ModelParameters Definition: WellInterface.hpp:116 GetPropType< TypeTag, Properties::FluidSystem > FluidSystem Definition: WellInterface.hpp:86 BlackOilFluidStateType< Eval > FluidState Definition: WellInterface.hpp:148 Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, numWellDofs, numWellDofs > > DMatrix Definition: WellInterface.hpp:393 Dune::BlockVector< Dune::FieldVector< Scalar, numWellDofs > > WVector Definition: WellInterface.hpp:394 WellState< Scalar, IndexTraits > WellStateType Definition: WellInterface.hpp:102 GetPropType< TypeTag, Properties::Indices > Indices Definition: WellInterface.hpp:88 GetPropType< TypeTag, Properties::SparseMatrixAdapter > SparseMatrixAdapter Definition: WellInterface.hpp:91 GroupStateHelper< Scalar, IndexTraits > GroupStateHelperType Definition: WellInterface.hpp:104 Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, numWellDofs, numResDofs > > BMatrix Definition: WellInterface.hpp:391 static constexpr EnergyModules energyModuleType Definition: WellInterface.hpp:121 Definition: WellProdIndexCalculator.hpp:37 Definition: WellState.hpp:68 Defines the common properties required by the porous medium multi-phase models. 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 The quantities taken from a segment fluid state. Definition: MultisegmentWellSegments.hpp:64 Static data associated with a well perforation. Definition: PerforationData.hpp:30 Definition: PerforationData.hpp:56 |