Introduces Equil, a thin storage class for 'EQUIL' derived information, accessible through EclipseState. Previously this was handled through "raw" deck access, provided by EquilWrapper. The interface for Equil has been derived from the EquilWrapper, but they're to be seen as different entities altogether. More importantly, Equil is owned by EclipseState, not some stand-alone Deck reading unit.
59 lines
1.5 KiB
C++
59 lines
1.5 KiB
C++
#ifndef OPM_EQUIL_HPP
|
|
#define OPM_EQUIL_HPP
|
|
|
|
namespace Opm {
|
|
|
|
class DeckKeyword;
|
|
class DeckRecord;
|
|
|
|
class EquilRecord {
|
|
public:
|
|
explicit EquilRecord( const DeckRecord& );
|
|
|
|
double datumDepth() const;
|
|
double datumDepthPressure() const;
|
|
double waterOilContactDepth() const;
|
|
double waterOilContactCapillaryPressure() const;
|
|
double gasOilContactDepth() const;
|
|
double gasOilContactCapillaryPressure() const;
|
|
|
|
bool liveOilInitConstantRs() const;
|
|
bool wetGasInitConstantRv() const;
|
|
int initializationTargetAccuracy() const;
|
|
|
|
private:
|
|
double datum_depth;
|
|
double datum_depth_ps;
|
|
double water_oil_contact_depth;
|
|
double water_oil_contact_capillary_pressure;
|
|
double gas_oil_contact_depth;
|
|
double gas_oil_contact_capillary_pressure;
|
|
|
|
bool live_oil_init_proc;
|
|
bool wet_gas_init_proc;
|
|
int init_target_accuracy;
|
|
};
|
|
|
|
class Equil {
|
|
public:
|
|
using const_iterator = std::vector< EquilRecord >::const_iterator;
|
|
|
|
Equil() = default;
|
|
explicit Equil( const DeckKeyword& );
|
|
|
|
const EquilRecord& getRecord( size_t id ) const;
|
|
|
|
size_t size() const;
|
|
bool empty() const;
|
|
|
|
const_iterator begin() const;
|
|
const_iterator end() const;
|
|
|
|
private:
|
|
std::vector< EquilRecord > records;
|
|
};
|
|
|
|
}
|
|
|
|
#endif //OPM_EQUIL_HPP
|