Loading...
Searching...
No Matches
Opm::RFTContainer< FluidSystem > Class Template Reference

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.

## Detailed Description

template<class FluidSystem>
class Opm::RFTContainer< FluidSystem >

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()).

Template Parameters

  FluidSystem | Run's fluid system. Needed, in particular, to infer the simulator's `Scalar` type and its active phases.

## Member Typedef Documentation

## WellQueryFunc

template<class FluidSystem>

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.

## Constructor & Destructor Documentation

## RFTContainer()

template<class FluidSystem>

Opm::RFTContainer< FluidSystem >::RFTContainer | ( | const EclipseState & | eclState,
|  | const Schedule & | schedule,
|  | const WellQueryFunc & | wellIsOwnedByCurrent,
|  | const WellQueryFunc & | wellOnCurrent )

inline

Constructor.

Parameters

  [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.

## Member Function Documentation

## addToWells()

template<class FluidSystem>

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

cell_pressure

, the

cell_saturation_water

, and the

cell_saturation_gas

data members of the pertinent

data::Connection

objects depending on the run's active phases.

Parameters

  [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.

## allocate()

template<class FluidSystem>

void Opm::RFTContainer< FluidSystem >::allocate | ( | const std::size_t | reportStepNum | ) |

Prepare internal data structures to collect RFT state.

Parameters

  [in] | reportStepNum | Report step. RFT data will be exported only for those wells that request such values at this time.

## assign()

template<class FluidSystem>

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.

Parameters

  [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.

The documentation for this class was generated from the following files:

- opm/simulators/flow/RFTContainer.hpp
- opm/simulators/flow/RFTContainer.cpp