My Project
Loading...
Searching...
No Matches
Opm::WCYCLE Class Reference

Classes

struct  Entry
 Represents a single record in a WCYCLE keyword. More...
 

Public Types

using WellEfficiencyVec = std::vector< std::pair< std::string, double > >
 A vector of wells and efficiency factor scalings to apply.
 
using WellTimeMap = std::map< std::string, double >
 A map from well name to a time stamp.
 
using WellIsOpenMap = std::map< std::string, bool >
 A vector of wells and their open status.
 

Public Member Functions

void addRecord (const DeckRecord &record)
 Parse a record for a WCYCLE keyword.
 
template<class Serializer >
void serializeOp (Serializer &serializer)
 Convert between byte array and object representation.
 
bool empty () const
 Returns true if \this has no entries.
 
auto begin () const
 Returns an iterator to first entry.
 
auto end () const
 Returns an iterator to one past the last entry.
 
double nextTimeStep (const double current_time, const double dt, const WellMatcher &wmatch, const WellTimeMap &open_times, const WellTimeMap &close_times, std::function< bool(const std::string &)> opens_this_step) const
 Returns a time step adjusted according to cycling wells.
 
WellIsOpenMap wellStatus (const double current_time, const WellMatcher &wmatch, WellTimeMap &open_times, WellTimeMap &close_times) const
 Returns status (open/shut) for cycling wells.
 
WellEfficiencyVec efficiencyScale (const double current_time, const double dt, const WellMatcher &wmatch, const WellTimeMap &open_times, std::function< bool(const std::string &)> schedule_open) const
 Returns efficiency factor scaling factors for cycling wells.
 
bool operator== (const WCYCLE &that) const
 Equality predicate.
 

Static Public Member Functions

static WCYCLE serializationTestObject ()
 Create non-defaulted object suitable for testing the serialisation operation.
 

Member Function Documentation

◆ addRecord()

void Opm::WCYCLE::addRecord ( const DeckRecord record)

Parse a record for a WCYCLE keyword.

Parameters
[in]recordRecord to parse

◆ efficiencyScale()

WCYCLE::WellEfficiencyVec Opm::WCYCLE::efficiencyScale ( const double  current_time,
const double  dt,
const WellMatcher &  wmatch,
const WellTimeMap open_times,
std::function< bool(const std::string &)>  schedule_open 
) const

Returns efficiency factor scaling factors for cycling wells.

Parameters
[in]current_timeCurrent time level of simulator
[in]dtCurrent time step for simulator
[in]wmatchWell matcher handling WLIST resolution
[in]open_timesTimes at which cycling wells were opened
Returns
Vector of efficiency scaling factors for cycling wells

◆ nextTimeStep()

double Opm::WCYCLE::nextTimeStep ( const double  current_time,
const double  dt,
const WellMatcher &  wmatch,
const WellTimeMap open_times,
const WellTimeMap close_times,
std::function< bool(const std::string &)>  opens_this_step 
) const

Returns a time step adjusted according to cycling wells.

Parameters
[in]current_timeCurrent time level of simulator
[in]dtCurrently suggested time step for simulator
[in]wmatchWell matcher handling WLIST resolution
[in]open_timesTimes at which cycling wells were opened
[in]close_timesTimes at which cycling wells were closed
[in]opens_this_stepCallback to check if a well will open at at current time step.
Returns
Adjusted time step

The callback is required to handle the situation where we are doing the first time step of a new report step, and the well opens at the current report step. The time step has to be chosen before the new opening time is registered, and we end up cycling a well that should not be cycled.

◆ wellStatus()

WCYCLE::WellIsOpenMap Opm::WCYCLE::wellStatus ( const double  current_time,
const WellMatcher &  wmatch,
WellTimeMap open_times,
WellTimeMap close_times 
) const

Returns status (open/shut) for cycling wells.

Parameters
[in]current_timeCurrent time level of simulator
[in]wmatchWell matcher handling WLIST resolution
[in]open_timesTimes at which cycling wells were opened
[in]close_timesTimes at which cycling wells were closed
Returns
Map of open/closed status of cycling wells

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