|
opm-simulators
|
Collection of cell-level RFT data–i.e., pressures and saturations–in cells intersected by wells. More...
#include <RFTContainer.hpp>
Public Types | |
| using | AssignmentFunc = std::function<Scalar()> |
| Call-back function type for collecting cell level dynamic state values. | |
| using | WellQueryFunc = std::function<bool(const std::string&)> |
| Call-back predicate type for inferring MPI characteristics for a named well. | |
Public Member Functions | |
| RFTContainer (const EclipseState &eclState, const Schedule &schedule, const WellQueryFunc &wellIsOwnedByCurrent, const WellQueryFunc &wellOnCurrent) | |
| Constructor. | |
| void | addToWells (data::Wells &wellDatas, const std::size_t reportStepNum, const Parallel::Communication &comm) |
| Export RFT cell level state data to requisite connections. | |
| void | allocate (const std::size_t reportStepNum) |
| Prepare internal data structures to collect RFT state. | |
| void | assign (const unsigned cartesianIndex, const AssignmentFunc &oil, const AssignmentFunc &water, const AssignmentFunc &gas) |
| Collect cell level RFT state into internal data structures. | |
Collection of cell-level RFT data–i.e., pressures and saturations–in cells intersected by wells.
Will collect dynamic state values only for those cells for which RFT data has been requested through the Schedule's RFT configuration (member function ScheduleState::rft_config()).
| FluidSystem | Run's fluid system. Needed, in particular, to infer the simulator's Scalar type and its active phases. |
| using Opm::RFTContainer< FluidSystem >::WellQueryFunc = std::function<bool(const std::string&)> |
Call-back predicate type for inferring MPI characteristics for a named well.
Common examples of such characteristics are whether or not the current rank "owns" the well or if the well is intersected on the current rank.
|
inline |
Constructor.
| [in] | eclState | Run's static properties and configurations. |
| [in] | schedule | Run's dynamic input objects such as its wells and RFT configuration. |
| [in] | wellIsOwnedByCurrent | Predicate for whether or not a particular named well object is owned by the current rank. The RFT state data for a particular well will be collected on the owning rank for that well. |
| [in] | wellOnCurrent | Predicate for whether or not a particular named well object is intersected on the current rank. This function will typically return true for those ranks that have local connections for the well and false otherwise. |
| void Opm::RFTContainer< FluidSystem >::addToWells | ( | data::Wells & | wellDatas, |
| const std::size_t | reportStepNum, | ||
| const Parallel::Communication & | comm ) |
Export RFT cell level state data to requisite connections.
Will populate the
, the
, and the
data members of the pertinent
objects depending on the run's active phases.
| [in,out] | wellDatas | Well and connection level dynamic report data at the current report step. On exit, also contains all relevant and available RFT state data for the wells owned by the current rank. |
| [in] | reportStepNum | Report step. RFT data will be exported only for those wells that request such values at this time. |
| [in] | comm | MPI communication object. Needed to collect RFT state data from all ranks that share a well. |
| void Opm::RFTContainer< FluidSystem >::allocate | ( | const std::size_t | reportStepNum | ) |
Prepare internal data structures to collect RFT state.
| [in] | reportStepNum | Report step. RFT data will be exported only for those wells that request such values at this time. |
| void Opm::RFTContainer< FluidSystem >::assign | ( | const unsigned | cartesianIndex, |
| const AssignmentFunc & | oil, | ||
| const AssignmentFunc & | water, | ||
| const AssignmentFunc & | gas ) |
Collect cell level RFT state into internal data structures.
Does nothing if the cell is not among those for which RFT state is requested.
| [in] | cartesianIndex | Linearised global cell ID. |
| [in] | oil | Call-back for transferring cell level pressure values in cell cartesianIndex from the simulator and into the container. Will be invoked only if oil is active in the current run. |
| [in] | water | Call-back for transferring cell level water saturation values in cell cartesianIndex from the simulator and into the container. Will be invoked only if water is active in the current run. |
| [in] | gas | Call-back for transferring cell level gas saturation values in cell cartesianIndex from the simulator and into the container. Will be invoked only if gas is active in the current run. |