opm-common
Loading...
Searching...
No Matches
Opm::EclMaterialLaw::Manager< TraitsT > Class Template Reference

Provides an simple way to create and manage the material law objects for a complete ECL deck. More...

#include <EclMaterialLawManager.hpp>

Classes

struct  Params

Public Types

using MaterialLaw
using MaterialLawParams = typename MaterialLaw::Params
using DirectionalMaterialLawParamsPtr = std::unique_ptr<DirectionalMaterialLawParams<MaterialLawParams>>

Public Member Functions

void initFromState (const EclipseState &eclState)
void initParamsForElements (const EclipseState &eclState, size_t numCompressedElems, const std::function< std::vector< int >(const FieldPropsManager &, const std::string &, bool)> &fieldPropIntOnLeafAssigner, const std::function< unsigned(unsigned)> &lookupIdxOnLevelZeroAssigner)
std::pair< Scalar, bool > applySwatinit (unsigned elemIdx, Scalar pcow, Scalar Sw)
 Modify the initial condition according to the SWATINIT keyword.
void applyRestartSwatInit (const unsigned elemIdx, const Scalar maxPcow)
 Apply SWATINIT-like scaling of oil/water capillary pressure curve at simulation restart.
bool enableEndPointScaling () const
bool enablePpcwmax () const
const EclHysteresisConfighysteresisConfig () const
bool enableHysteresis () const
bool enablePCHysteresis () const
bool enableWettingHysteresis () const
bool enableNonWettingHysteresis () const
bool hasGas () const
bool hasOil () const
bool hasWater () const
const EclEpsScalingPointsInfo< Scalar > & unscaledEpsInfo (unsigned satRegionIdx) const
std::shared_ptr< WagHysteresisConfig::WagHysteresisConfigRecordwagHystersisConfig (unsigned satRegionIdx) const
const EclEpsConfiggasOilConfig () const
const EclEpsConfiggasWaterConfig () const
const EclEpsConfigoilWaterConfig () const
MaterialLawParams & materialLawParams (unsigned elemIdx)
const MaterialLawParams & materialLawParams (unsigned elemIdx) const
const MaterialLawParams & materialLawParams (unsigned elemIdx, FaceDir::DirEnum facedir) const
MaterialLawParams & materialLawParams (unsigned elemIdx, FaceDir::DirEnum facedir)
const MaterialLawParams & connectionMaterialLawParams (unsigned satRegionIdx, unsigned elemIdx) const
 Returns a material parameter object for a given element and saturation region.
int satnumRegionIdx (unsigned elemIdx) const
int getKrnumSatIdx (unsigned elemIdx, FaceDir::DirEnum facedir) const
bool hasDirectionalRelperms () const
bool hasDirectionalImbnum () const
int imbnumRegionIdx (unsigned elemIdx) const
EclMultiplexerApproach threePhaseApproach () const
EclTwoPhaseApproach twoPhaseApproach () const
const std::vector< Scalar > & stoneEtas () const
template<class FluidState>
bool updateHysteresis (const FluidState &fluidState, unsigned elemIdx)
void oilWaterHysteresisParams (Scalar &soMax, Scalar &swMax, Scalar &swMin, unsigned elemIdx) const
void setOilWaterHysteresisParams (const Scalar &soMax, const Scalar &swMax, const Scalar &swMin, unsigned elemIdx)
void gasOilHysteresisParams (Scalar &sgmax, Scalar &shmax, Scalar &somin, unsigned elemIdx) const
void setGasOilHysteresisParams (const Scalar &sgmax, const Scalar &shmax, const Scalar &somin, unsigned elemIdx)
EclEpsScalingPoints< Scalar > & oilWaterScaledEpsPointsDrainage (unsigned elemIdx)
const EclEpsScalingPointsInfo< Scalar > & oilWaterScaledEpsInfoDrainage (size_t elemIdx) const
template<class Serializer>
void serializeOp (Serializer &serializer)
bool satCurveIsAllPiecewiseLinear () const

Detailed Description

template<class TraitsT>
class Opm::EclMaterialLaw::Manager< TraitsT >

Provides an simple way to create and manage the material law objects for a complete ECL deck.

Member Typedef Documentation

◆ MaterialLaw

template<class TraitsT>
using Opm::EclMaterialLaw::Manager< TraitsT >::MaterialLaw
Initial value:

Member Function Documentation

◆ applyRestartSwatInit()

template<class TraitsT>
void Opm::EclMaterialLaw::Manager< TraitsT >::applyRestartSwatInit ( const unsigned elemIdx,
const Scalar maxPcow )

Apply SWATINIT-like scaling of oil/water capillary pressure curve at simulation restart.

Parameters
[in]elemIdxActive cell index
[in]maxPcowScaled maximum oil/water capillary pressure. Typically the PPCW restart file array's entry for the corresponding cell.

◆ applySwatinit()

template<class TraitsT>
std::pair< typename TraitsT::Scalar, bool > Opm::EclMaterialLaw::Manager< TraitsT >::applySwatinit ( unsigned elemIdx,
Scalar pcow,
Scalar Sw )

Modify the initial condition according to the SWATINIT keyword.

The method returns the water saturation which yields a givenn capillary pressure. The reason this method is not folded directly into initFromState() is that the capillary pressure given depends on the particuars of how the simulator calculates its initial condition.

◆ connectionMaterialLawParams()

template<class TraitsT>
const Manager< TraitsT >::MaterialLawParams & Opm::EclMaterialLaw::Manager< TraitsT >::connectionMaterialLawParams ( unsigned satRegionIdx,
unsigned elemIdx ) const

Returns a material parameter object for a given element and saturation region.

This method changes the saturation table idx in the original material law parameter object. In the context of ECL reservoir simulators, this is required to properly handle wells with its own saturation table idx. In order to reset the saturation table idx in the materialLawparams_ call the method with the cells satRegionIdx


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