My Project
|
Provides an simple way to create and manage the material law objects for a complete ECL deck. More...
#include <EclMaterialLawManager.hpp>
Public Types | |
using | MaterialLaw = EclMultiplexerMaterial< Traits, GasOilTwoPhaseLaw, OilWaterTwoPhaseLaw, GasWaterTwoPhaseLaw > |
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 |
bool | enableHysteresis () 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 |
template<class FluidState > | |
bool | updateHysteresis (const FluidState &fluidState, unsigned elemIdx) |
void | oilWaterHysteresisParams (Scalar &pcSwMdc, Scalar &krnSwMdc, unsigned elemIdx) const |
void | setOilWaterHysteresisParams (const Scalar &pcSwMdc, const Scalar &krnSwMdc, unsigned elemIdx) |
void | gasOilHysteresisParams (Scalar &pcSwMdc, Scalar &krnSwMdc, unsigned elemIdx) const |
void | setGasOilHysteresisParams (const Scalar &pcSwMdc, const Scalar &krnSwMdc, unsigned elemIdx) |
EclEpsScalingPoints< Scalar > & | oilWaterScaledEpsPointsDrainage (unsigned elemIdx) |
const EclEpsScalingPointsInfo< Scalar > & | oilWaterScaledEpsInfoDrainage (size_t elemIdx) const |
template<class Serializer > | |
void | serializeOp (Serializer &serializer) |
Provides an simple way to create and manage the material law objects for a complete ECL deck.
void Opm::EclMaterialLawManager< TraitsT >::applyRestartSwatInit | ( | const unsigned | elemIdx, |
const Scalar | maxPcow | ||
) |
Apply SWATINIT-like scaling of oil/water capillary pressure curve at simulation restart.
[in] | elemIdx | Active cell index |
[in] | maxPcow | Scaled maximum oil/water capillary pressure. Typically the PPCW restart file array's entry for the corresponding cell. |
std::pair< typename TraitsT::Scalar, bool > Opm::EclMaterialLawManager< 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.
const EclMaterialLawManager< TraitsT >::MaterialLawParams & Opm::EclMaterialLawManager< 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