Opm::RFTContainer< FluidSystem > Class Template Reference

#include <RFTContainer.hpp>

Inheritance diagram for Opm::RFTContainer< FluidSystem >:
Inheritance graph

Public Types

using AssignmentFunc = std::function< Scalar()>
 
using WellQueryFunc = std::function< bool(const std::string &)>
 

Public Member Functions

 RFTContainer (const EclipseState &eclState, const Schedule &schedule, const WellQueryFunc &wellIsOwnedByCurrent, const WellQueryFunc &wellOnCurrent)
 
void addToWells (data::Wells &wellDatas, const std::size_t reportStepNum, const Parallel::Communication &comm)
 
void allocate (const std::size_t reportStepNum)
 
void assign (const unsigned cartesianIndex, const AssignmentFunc &oil, const AssignmentFunc &water, const AssignmentFunc &gas)
 

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
FluidSystemRun's fluid system. Needed, in particular, to infer the simulator's Scalar type and its active phases.

Member Typedef Documentation

◆ AssignmentFunc

template<class FluidSystem >
using Opm::RFTContainer< FluidSystem >::AssignmentFunc = std::function<Scalar()>

Call-back function type for collecting cell level dynamic state values.

◆ 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]eclStateRun's static properties and configurations.
[in]scheduleRun's dynamic input objects such as its wells and RFT configuration.
[in]wellIsOwnedByCurrentPredicate 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]wellOnCurrentPredicate 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]wellDatasWell 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]reportStepNumReport step. RFT data will be exported only for those wells that request such values at this time.
[in]commMPI 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]reportStepNumReport 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]cartesianIndexLinearised global cell ID.
[in]oilCall-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]waterCall-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]gasCall-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 file: