Class for handling the blackoil well network model.
More...
#include <BlackoilWellModelNetwork.hpp>
|
| | BlackoilWellModelNetwork (BlackoilWellModel< TypeTag > &well_model) |
| |
| std::tuple< bool, Scalar > | update (const bool mandatory_network_balance, DeferredLogger &deferred_logger, const bool relax_network_tolerance=false) |
| |
| void | doPreStepRebalance (DeferredLogger &deferred_logger) |
| |
| bool | active () const |
| | return true if network is active (at least one network well in prediction mode) More...
|
| |
| const std::map< std::string, GetPropType< TypeTag, Properties::Scalar > > & | nodePressures () const |
| |
| void | setNodePressures (const std::map< std::string, GetPropType< TypeTag, Properties::Scalar > > &values) |
| |
| void | setFromRestart (const std::optional< std::map< std::string, double > > &restart_pressures) |
| |
| void | setNodePressureOverrides (std::map< std::string, GetPropType< TypeTag, Properties::Scalar > > overrides) |
| | Pressures that a reservoir coupling master imposes on nodes of the production network, by node (group) name. More...
|
| |
| void | initialize (const int report_step) |
| | Initialize wells according to network configuration. More...
|
| |
| void | initializeWell (WellInterfaceGeneric< GetPropType< TypeTag, Properties::Scalar >, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > &well) |
| | Initialize a single well according to network configuration. More...
|
| |
| void | updateActiveState (const int report_step) |
| | Checks if network is active (at least one network well on prediction). More...
|
| |
| bool | needPreStepRebalance (const int report_step) const |
| |
| bool | shouldBalance (const int reportStepIndex) const |
| |
| bool | willBalanceOnNextIteration (const int reportStepIndex) const |
| | Checks if we will perform a network re-balance on the next Newton iteration. More...
|
| |
| GetPropType< TypeTag, Properties::Scalar > | updatePressures (const int reportStepIdx, const GetPropType< TypeTag, Properties::Scalar > damping_factor, const GetPropType< TypeTag, Properties::Scalar > update_upper_bound) |
| |
| void | assignNodeAndBranchValues (std::map< std::string, data::NodeData > &nodevalues, std::map< std::string, data::BranchData > &branchvalues, std::map< std::string, data::BranchData > &converged_branchvalues, const int reportStepIdx) const |
| |
| void | commitState () |
| |
| void | resetState () |
| |
| void | serializeOp (Serializer &serializer) |
| |
| bool | operator== (const BlackoilWellModelNetworkGeneric< GetPropType< TypeTag, Properties::Scalar >, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > &rhs) const |
| |
|
| bool | computeWellGroupThp (const double dt, DeferredLogger &local_deferredLogger) |
| |
| const std::map< std::string, GetPropType< TypeTag, Properties::Scalar > > & | nodePressures (const details::NetworkDomain domain) const |
| |
| std::map< std::string, GetPropType< TypeTag, Properties::Scalar > > & | nodePressures (const details::NetworkDomain domain) |
| |
| void | imposeWellThpLimit (WellInterfaceGeneric< GetPropType< TypeTag, Properties::Scalar >, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > &well, const GetPropType< TypeTag, Properties::Scalar > limit) |
| | Apply a network THP limit and retain it across well reconstruction or network detachment. More...
|
| |
| NetworkPressures | computePressures (const Network::ExtNetwork &network, const VFPProdProperties< GetPropType< TypeTag, Properties::Scalar > > &vfp_prod_props, const UnitSystem &unit_system, const int reportStepIdx, const Parallel::Communication &comm) const |
| |
| NetworkPressures | computePressures (const Network::ExtNetwork &network, const VFPInjProperties< GetPropType< TypeTag, Properties::Scalar > > &vfp_inj_props, const UnitSystem &unit_system, const int reportStepIdx, const Parallel::Communication &comm) const |
| |
| void | updateActiveStateImpl (const Network::ExtNetwork &network) |
| |
| const std::map< std::string, data::BranchData > & | branchData (const details::NetworkDomain domain) const |
| |
| std::map< std::string, data::BranchData > & | branchData (const details::NetworkDomain domain) |
| |
| const std::set< std::string > & | invalidNodes (const details::NetworkDomain domain) const |
| |
| std::set< std::string > & | invalidNodes (const details::NetworkDomain domain) |
| |
| void | applyNodePressureOverrides_ () |
| |
| void | syncLegacyProductionState_ () |
| |
| void | syncProductionDomainState_ () |
| |
|
| BlackoilWellModel< TypeTag > & | well_model_ |
| |
| std::map< std::string, GetPropType< TypeTag, Properties::Scalar > > | node_pressure_overrides_ |
| | See setNodePressureOverrides(). More...
|
| |
| bool | active_ |
| |
| std::map< std::string, GetPropType< TypeTag, Properties::Scalar > > | node_pressures_ |
| |
| std::map< std::string, data::BranchData > | branch_data_ |
| |
| std::array< std::map< std::string, GetPropType< TypeTag, Properties::Scalar > >, details::domainIndex(details::NetworkDomain::Count)> | domain_node_pressures_ |
| |
| std::array< std::map< std::string, data::BranchData >, details::domainIndex(details::NetworkDomain::Count)> | domain_branch_data_ |
| |
| std::array< std::set< std::string >, details::domainIndex(details::NetworkDomain::Count)> | domain_invalid_nodes_ |
| |
| int | invalid_nodes_report_step_ |
| |
| std::map< std::string, GetPropType< TypeTag, Properties::Scalar > > | last_valid_node_pressures_ |
| |
| std::map< std::string, data::BranchData > | last_valid_branch_data_ |
| |
| std::array< std::map< std::string, GetPropType< TypeTag, Properties::Scalar > >, details::domainIndex(details::NetworkDomain::Count)> | last_valid_domain_node_pressures_ |
| |
| std::array< std::map< std::string, data::BranchData >, details::domainIndex(details::NetworkDomain::Count)> | last_valid_domain_branch_data_ |
| |
| std::map< std::string, GetPropType< TypeTag, Properties::Scalar > > | well_group_thp_calc_ |
| |
template<typename TypeTag>
class Opm::BlackoilWellModelNetwork< TypeTag > Class for handling the blackoil well network model.
◆ BlackoilWellModelNetwork()
template<typename TypeTag >
◆ active()
return true if network is active (at least one network well in prediction mode)
◆ applyNodePressureOverrides_()
Sets the cached production node pressures of the overridden nodes to the override values. Does not sync the legacy state.
◆ assignNodeAndBranchValues()
◆ branchData() [1/2]
◆ branchData() [2/2]
◆ commitState()
◆ computePressures() [1/2]
◆ computePressures() [2/2]
◆ computeWellGroupThp()
template<typename TypeTag >
◆ doPreStepRebalance()
template<typename TypeTag >
◆ imposeWellThpLimit()
Apply a network THP limit and retain it across well reconstruction or network detachment.
◆ initialize()
Initialize wells according to network configuration.
◆ initializeWell()
Initialize a single well according to network configuration.
◆ invalidNodes() [1/2]
◆ invalidNodes() [2/2]
◆ needPreStepRebalance()
Checks if there are reasons to perform a pre-step network re-balance. (Currently, the only reasons are network well status changes.) (TODO: Consider if adding network change events would be helpful.)
◆ nodePressures() [1/3]
◆ nodePressures() [2/3]
◆ nodePressures() [3/3]
◆ operator==()
◆ productionNetworkDomain()
|
|
inlinestaticconstexprprotectedinherited |
◆ resetState()
Restores the state saved by commitState(). The node pressure overrides are kept, as they are the current boundary condition, so they are applied to the restored pressures again.
◆ serializeOp()
◆ setFromRestart()
◆ setNodePressureOverrides()
Pressures that a reservoir coupling master imposes on nodes of the production network, by node (group) name.
A reservoir coupling slave takes the pressure of a node that is a master group's leaf in the master's network from the master. The pressure computation uses it as the fixed pressure of the node, instead of the one in the deck, and the nodes below it follow from it with the pressure drops in their branches. So the THP limits of the slave's wells are the master's pressure plus those drops whenever they are set, and not only after the master's message is received. The node itself is not damped by updatePressures(). Only production network nodes with a fixed pressure in the deck are overridden. The cached pressures of the overridden nodes are set to the imposed values at once, so that what is computed from them before the next pressure update, such as the common THP of an auto-choke group below such a node, uses the current imposed pressure.
◆ setNodePressures()
◆ shouldBalance()
Checks if we shall perform a network re-balance. This is typically controlled by the NETBALAN keyword.
◆ syncLegacyProductionState_()
◆ syncProductionDomainState_()
◆ update()
template<typename TypeTag >
◆ updateActiveState()
Checks if network is active (at least one network well on prediction).
◆ updateActiveStateImpl()
◆ updatePressures()
◆ willBalanceOnNextIteration()
Checks if we will perform a network re-balance on the next Newton iteration.
◆ active_
◆ branch_data_
◆ domain_branch_data_
◆ domain_invalid_nodes_
◆ domain_node_pressures_
◆ invalid_nodes_report_step_
◆ last_valid_branch_data_
◆ last_valid_domain_branch_data_
◆ last_valid_domain_node_pressures_
◆ last_valid_node_pressures_
◆ node_pressure_overrides_
◆ node_pressures_
◆ well_group_thp_calc_
◆ well_model_
template<typename TypeTag >
The documentation for this class was generated from the following files:
|