This problem simulates an input file given in the data format used by the commercial ECLiPSE simulator. More...

#include <FlowProblem.hpp>

Inheritance diagram for Opm::FlowProblem< TypeTag >:
Inheritance graph

Public Types

using TabulatedTwoDFunction = UniformXTabulated2DFunction< Scalar >
 
using TabulatedFunction = Tabulated1DFunction< Scalar >
 

Public Member Functions

 FlowProblem (Simulator &simulator)
 
void finishInit ()
 
void prefetch (const Element &elem) const
 
template<class Restarter >
void deserialize (Restarter &res)
 This method restores the complete state of the problem and its sub-objects from disk. More...
 
template<class Restarter >
void serialize (Restarter &res)
 This method writes the complete state of the problem and its subobjects to disk. More...
 
int episodeIndex () const
 
void beginEpisode ()
 Called by the simulator before an episode begins. More...
 
void beginTimeStep ()
 Called by the simulator before each time integration. More...
 
void beginIteration ()
 Called by the simulator before each Newton-Raphson iteration. More...
 
void endIteration ()
 Called by the simulator after each Newton-Raphson iteration. More...
 
void endTimeStep ()
 Called by the simulator after each time integration. More...
 
void endEpisode ()
 Called by the simulator after the end of an episode. More...
 
void writeOutput (const SimulatorTimer &timer, bool verbose=true)
 Write the requested quantities of the current solution into the output files. More...
 
void finalizeOutput ()
 
template<class Context >
const DimMatrix & intrinsicPermeability (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
const DimMatrix & intrinsicPermeability (unsigned globalElemIdx) const
 This method returns the intrinsic permeability tensor given a global element index. More...
 
template<class Context >
Scalar transmissibility (const Context &context, unsigned fromDofLocalIdx, unsigned toDofLocalIdx) const
 
Scalar transmissibility (unsigned globalCenterElemIdx, unsigned globalElemIdx) const
 Direct access to the transmissibility between two elements. More...
 
template<class Context >
Scalar diffusivity (const Context &context, unsigned fromDofLocalIdx, unsigned toDofLocalIdx) const
 
Scalar diffusivity (const unsigned globalCellIn, const unsigned globalCellOut) const
 
Scalar dispersivity (const unsigned globalCellIn, const unsigned globalCellOut) const
 
Scalar thermalTransmissibilityBoundary (const unsigned globalSpaceIdx, const unsigned boundaryFaceIdx) const
 Direct access to a boundary transmissibility. More...
 
template<class Context >
Scalar transmissibilityBoundary (const Context &elemCtx, unsigned boundaryFaceIdx) const
 
Scalar transmissibilityBoundary (const unsigned globalSpaceIdx, const unsigned boundaryFaceIdx) const
 Direct access to a boundary transmissibility. More...
 
Scalar thermalHalfTransmissibility (const unsigned globalSpaceIdxIn, const unsigned globalSpaceIdxOut) const
 
template<class Context >
Scalar thermalHalfTransmissibilityIn (const Context &context, unsigned faceIdx, unsigned timeIdx) const
 
template<class Context >
Scalar thermalHalfTransmissibilityOut (const Context &context, unsigned faceIdx, unsigned timeIdx) const
 
template<class Context >
Scalar thermalHalfTransmissibilityBoundary (const Context &elemCtx, unsigned boundaryFaceIdx) const
 
const Vanguard::TransmissibilityType & eclTransmissibilities () const
 Return a reference to the object that handles the "raw" transmissibilities. More...
 
Scalar thresholdPressure (unsigned elem1Idx, unsigned elem2Idx) const
 
const FlowThresholdPressure< TypeTag > & thresholdPressure () const
 
FlowThresholdPressure< TypeTag > & thresholdPressure ()
 
const TracerModeltracerModel () const
 
TracerModeltracerModel ()
 
template<class Context >
Scalar porosity (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
template<class Context >
Scalar dofCenterDepth (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 Returns the depth of an degree of freedom [m]. More...
 
Scalar dofCenterDepth (unsigned globalSpaceIdx) const
 Direct indexed acces to the depth of an degree of freedom [m]. More...
 
template<class Context >
Scalar rockCompressibility (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
template<class Context >
Scalar rockReferencePressure (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
template<class Context >
const MaterialLawParams & materialLawParams (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
const MaterialLawParams & materialLawParams (unsigned globalDofIdx) const
 
const MaterialLawParams & materialLawParams (unsigned globalDofIdx, FaceDir::DirEnum facedir) const
 
template<class Context >
const SolidEnergyLawParams & solidEnergyLawParams (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 Return the parameters for the energy storage law of the rock. More...
 
template<class Context >
const ThermalConductionLawParams & thermalConductionLawParams (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
std::shared_ptr< const EclMaterialLawManager > materialLawManager () const
 Returns the ECL material law manager. More...
 
template<class FluidState >
void updateRelperms (std::array< Evaluation, numPhases > &mobility, DirectionalMobilityPtr &dirMob, FluidState &fluidState, unsigned globalSpaceIdx) const
 
std::shared_ptr< EclMaterialLawManager > materialLawManager ()
 
template<class Context >
unsigned pvtRegionIndex (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 Returns the index of the relevant region for thermodynmic properties. More...
 
template<class Context >
unsigned satnumRegionIndex (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 Returns the index of the relevant region for thermodynmic properties. More...
 
template<class Context >
unsigned miscnumRegionIndex (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 Returns the index of the relevant region for thermodynmic properties. More...
 
template<class Context >
unsigned plmixnumRegionIndex (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 Returns the index of the relevant region for thermodynmic properties. More...
 
template<class Context >
Scalar maxPolymerAdsorption (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 Returns the max polymer adsorption value. More...
 
std::string name () const
 
template<class Context >
Scalar temperature (const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
Scalar temperature (unsigned globalDofIdx, unsigned) const
 
const SolidEnergyLawParams & solidEnergyLawParams (unsigned globalSpaceIdx, unsigned) const
 
const ThermalConductionLawParams & thermalConductionLawParams (unsigned globalSpaceIdx, unsigned) const
 
template<class Context >
void boundary (BoundaryRateVector &values, const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
Scalar maxOilSaturation (unsigned globalDofIdx) const
 Returns an element's historic maximum oil phase saturation that was observed during the simulation. More...
 
void setMaxOilSaturation (unsigned globalDofIdx, Scalar value)
 Sets an element's maximum oil phase saturation observed during the simulation. More...
 
Scalar maxGasDissolutionFactor (unsigned timeIdx, unsigned globalDofIdx) const
 Returns the maximum value of the gas dissolution factor at the current time for a given degree of freedom. More...
 
Scalar maxOilVaporizationFactor (unsigned timeIdx, unsigned globalDofIdx) const
 Returns the maximum value of the oil vaporization factor at the current time for a given degree of freedom. More...
 
bool recycleFirstIterationStorage () const
 Return if the storage term of the first iteration is identical to the storage term for the solution of the previous time step. More...
 
template<class Context >
void initial (PrimaryVariables &values, const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
void initialSolutionApplied ()
 
template<class Context >
void source (RateVector &rate, const Context &context, unsigned spaceIdx, unsigned timeIdx) const
 
void source (RateVector &rate, unsigned globalDofIdx, unsigned timeIdx) const
 
void addToSourceDense (RateVector &rate, unsigned globalDofIdx, unsigned timeIdx) const
 
const WellModel & wellModel () const
 Returns a reference to the ECL well manager used by the problem. More...
 
WellModel & wellModel ()
 
const AquiferModel & aquiferModel () const
 
AquiferModel & mutableAquiferModel ()
 
const InitialFluidState & initialFluidState (unsigned globalDofIdx) const
 
const EclipseIO & eclIO () const
 
void setSubStepReport (const SimulatorReportSingle &report)
 
void setSimulationReport (const SimulatorReport &report)
 
bool nonTrivialBoundaryConditions () const
 
const InitialFluidState boundaryFluidState (unsigned globalDofIdx, const int directionId) const
 
Scalar nextTimeStepSize () const
 Propose the size of the next time step to the simulator. More...
 
template<class LhsEval >
LhsEval rockCompPoroMultiplier (const IntensiveQuantities &intQuants, unsigned elementIdx) const
 Calculate the porosity multiplier due to water induced rock compaction. More...
 
template<class LhsEval >
LhsEval rockCompTransMultiplier (const IntensiveQuantities &intQuants, unsigned elementIdx) const
 Calculate the transmissibility multiplier due to water induced rock compaction. More...
 
template<class LhsEval >
LhsEval permFactTransMultiplier (const IntensiveQuantities &intQuants) const
 Calculate the transmissibility multiplier due to porosity reduction. More...
 
template<class LhsEval >
LhsEval wellTransMultiplier (const IntensiveQuantities &intQuants, unsigned elementIdx) const
 Return the well transmissibility multiplier due to rock changues. More...
 
std::pair< BCType, RateVector > boundaryCondition (const unsigned int globalSpaceIdx, const int directionId) const
 
const std::unique_ptr< EclWriterType > & eclWriter () const
 
void setConvData (const std::vector< std::vector< int > > &data)
 
template<class Serializer >
void serializeOp (Serializer &serializer)
 
Scalar maxWaterSaturation (unsigned globalDofIdx) const
 Returns an element's historic maximum water phase saturation that was observed during the simulation. More...
 
Scalar minOilPressure (unsigned globalDofIdx) const
 Returns an element's historic minimum pressure of the oil phase that was observed during the simulation. More...
 
Scalar overburdenPressure (unsigned elementIdx) const
 Get the pressure of the overburden. More...
 
Scalar referencePorosity (unsigned elementIdx, unsigned timeIdx) const
 Returns the porosity of an element. More...
 
Scalar rockFraction (unsigned elementIdx, unsigned timeIdx) const
 Returns the rockFraction of an element. More...
 
void setPorosity (Scalar poro, unsigned elementIdx, unsigned timeIdx=0)
 Sets the porosity of an element. More...
 
Scalar solventSaturation (unsigned elemIdx) const
 Returns the initial solvent saturation for a given a cell index. More...
 
Scalar solventRsw (unsigned elemIdx) const
 Returns the initial solvent dissolved in water for a given a cell index. More...
 
Scalar drsdtcon (unsigned elemIdx, int episodeIdx) const
 Returns the dynamic drsdt convective mixing value. More...
 
Scalar polymerConcentration (unsigned elemIdx) const
 Returns the initial polymer concentration for a given a cell index. More...
 
Scalar polymerMolecularWeight (const unsigned elemIdx) const
 Returns the polymer molecule weight for a given cell index. More...
 
Scalar microbialConcentration (unsigned elemIdx) const
 Returns the initial microbial concentration for a given a cell index. More...
 
Scalar oxygenConcentration (unsigned elemIdx) const
 Returns the initial oxygen concentration for a given a cell index. More...
 
Scalar ureaConcentration (unsigned elemIdx) const
 Returns the initial urea concentration for a given a cell index. More...
 
Scalar biofilmConcentration (unsigned elemIdx) const
 Returns the initial biofilm concentration for a given a cell index. More...
 
Scalar calciteConcentration (unsigned elemIdx) const
 Returns the initial calcite concentration for a given a cell index. More...
 
unsigned pvtRegionIndex (unsigned elemIdx) const
 Returns the index the relevant PVT region given a cell index. More...
 
unsigned satnumRegionIndex (unsigned elemIdx) const
 Returns the index the relevant saturation function region given a cell index. More...
 
unsigned miscnumRegionIndex (unsigned elemIdx) const
 Returns the index the relevant MISC region given a cell index. More...
 
unsigned plmixnumRegionIndex (unsigned elemIdx) const
 Returns the index the relevant PLMIXNUM (for polymer module) region given a cell index. More...
 
Scalar maxPolymerAdsorption (unsigned elemIdx) const
 Returns the max polymer adsorption value. More...
 
Scalar rockCompressibility (unsigned globalSpaceIdx) const
 
Scalar rockReferencePressure (unsigned globalSpaceIdx) const
 
Scalar porosity (unsigned globalSpaceIdx, unsigned timeIdx) const
 Direct indexed access to the porosity. More...
 
bool vapparsActive (int episodeIdx) const
 
int numPressurePointsEquil () const
 
bool operator== (const FlowGenericProblem &rhs) const
 

Static Public Member Functions

static void registerParameters ()
 
static int handlePositionalParameter (std::set< std::string > &seenParams, std::string &errorMsg, int, const char **argv, int paramIdx, int)
 
static FlowGenericProblem serializationTestObject (const EclipseState &eclState, const Schedule &schedule, const GetPropType< TypeTag, Properties::GridView > &gridView)
 
static std::string helpPreamble (int, const char **argv)
 
static std::string briefDescription ()
 
static void setBriefDescription (const std::string &msg)
 Specifies the string returned by briefDescription() More...
 

Protected Types

using Grid = std::remove_cv_t< typename std::remove_reference< decltype(gridView_.grid())>::type >
 
using LookUpData = Opm::LookUpData< Grid, GetPropType< TypeTag, Properties::GridView > >
 

Protected Member Functions

void updateExplicitQuantities_ ()
 
template<class UpdateFunc >
void updateProperty_ (const std::string &failureMsg, UpdateFunc func)
 
void updateCompositionChangeLimits_ ()
 
bool updateMaxOilSaturation_ ()
 
bool updateMaxOilSaturation_ (unsigned compressedDofIdx, const IntensiveQuantities &iq)
 
bool updateMaxWaterSaturation_ ()
 
bool updateMaxWaterSaturation_ (unsigned compressedDofIdx, const IntensiveQuantities &iq)
 
bool updateMinPressure_ ()
 
bool updateMinPressure_ (unsigned compressedDofIdx, const IntensiveQuantities &iq)
 
std::function< std::vector< double >(const FieldPropsManager &, const std::string &)> fieldPropDoubleOnLeafAssigner_ ()
 
template<typename IntType >
std::function< std::vector< IntType >(const FieldPropsManager &, const std::string &, bool)> fieldPropIntTypeOnLeafAssigner_ ()
 
void readMaterialParameters_ ()
 
void readThermalParameters_ ()
 
void updateReferencePorosity_ ()
 
void readInitialCondition_ ()
 
void readEquilInitialCondition_ ()
 
void readEclRestartSolution_ ()
 
void processRestartSaturations_ (InitialFluidState &elemFluidState, Scalar &solventSaturation)
 
void readExplicitInitialCondition_ ()
 
bool updateHysteresis_ ()
 
bool updateHysteresis_ (unsigned compressedDofIdx, const IntensiveQuantities &iq)
 
void updateMaxPolymerAdsorption_ ()
 
bool updateMaxPolymerAdsorption_ (unsigned compressedDofIdx, const IntensiveQuantities &iq)
 
Scalar getRockCompTransMultVal (std::size_t dofIdx) const
 
void initFluidSystem_ ()
 
bool shouldWriteOutput () const
 Always returns true. The ecl output writer takes care of the rest. More...
 
bool shouldWriteRestartFile () const
 Returns true if an eWoms restart file should be written to disk. More...
 
bool beginEpisode_ (bool enableExperiments, int episodeIdx)
 
void beginTimeStep_ (bool enableExperiments, int episodeIdx, int timeStepIndex, Scalar startTime, Scalar time, Scalar timeStepSize, Scalar endTime)
 
void readRockParameters_ (const std::vector< Scalar > &cellCenterDepths, std::function< std::array< int, 3 >(const unsigned)> ijkIndex)
 
void readRockCompactionParameters_ ()
 
void readBlackoilExtentionsInitialConditions_ (std::size_t numDof, bool enableSolvent, bool enablePolymer, bool enablePolymerMolarWeight, bool enableMICP)
 
void updatePvtnum_ ()
 
void updateSatnum_ ()
 
void updateMiscnum_ ()
 
void updatePlmixnum_ ()
 
void updateKrnum_ ()
 
void updateImbnum_ ()
 
std::function< unsigned(unsigned)> lookupIdxOnLevelZeroAssigner_ ()
 

Protected Attributes

const EclipseState & eclState_
 
const Schedule & schedule_
 
const GetPropType< TypeTag, Properties::GridView > & gridView_
 
std::array< std::vector< Scalar >, 2 > referencePorosity_
 
std::vector< int > pvtnum_
 
std::vector< unsigned short > satnum_
 
std::vector< unsigned short > miscnum_
 
std::vector< unsigned short > plmixnum_
 
std::vector< unsigned short > krnumx_
 
std::vector< unsigned short > krnumy_
 
std::vector< unsigned short > krnumz_
 
std::vector< unsigned short > imbnumx_
 
std::vector< unsigned short > imbnumy_
 
std::vector< unsigned short > imbnumz_
 
std::vector< RockParams > rockParams_
 
std::vector< unsigned short > rockTableIdx_
 
std::vector< TabulatedTwoDFunctionrockCompPoroMultWc_
 
std::vector< TabulatedTwoDFunctionrockCompTransMultWc_
 
std::vector< TabulatedFunctionrockCompPoroMult_
 
std::vector< TabulatedFunctionrockCompTransMult_
 
std::vector< Scalar > rockCompTransMultVal_
 
PolymerSolutionContainer< Scalar > polymer_
 
std::vector< Scalar > maxOilSaturation_
 
std::vector< Scalar > maxWaterSaturation_
 
std::vector< Scalar > minRefPressure_
 
std::vector< Scalar > overburdenPressure_
 
std::vector< Scalar > solventSaturation_
 
std::vector< Scalar > solventRsw_
 
MICPSolutionContainer< Scalar > micp_
 
MixingRateControls< GetPropType< TypeTag, Properties::FluidSystem > > mixControls_
 
bool enableTuning_
 
Scalar initialTimeStepSize_
 
Scalar maxTimeStepAfterWellEvent_
 
int numPressurePointsEquil_
 
const LookUpData lookUpData_
 

Static Protected Attributes

static std::string briefDescription_
 

Detailed Description

template<class TypeTag>
class Opm::FlowProblem< TypeTag >

This problem simulates an input file given in the data format used by the commercial ECLiPSE simulator.

Member Typedef Documentation

◆ Grid

using Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Grid = std::remove_cv_t< typename std::remove_reference<decltype(gridView_.grid())>::type>
protectedinherited

◆ LookUpData

using Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::LookUpData = Opm::LookUpData<Grid,GetPropType< TypeTag, Properties::GridView > >
protectedinherited

◆ TabulatedFunction

using Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::TabulatedFunction = Tabulated1DFunction<Scalar>
inherited

◆ TabulatedTwoDFunction

using Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::TabulatedTwoDFunction = UniformXTabulated2DFunction<Scalar>
inherited

Constructor & Destructor Documentation

◆ FlowProblem()

Member Function Documentation

◆ addToSourceDense()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::addToSourceDense ( RateVector &  rate,
unsigned  globalDofIdx,
unsigned  timeIdx 
) const
inline

◆ aquiferModel()

template<class TypeTag >
const AquiferModel & Opm::FlowProblem< TypeTag >::aquiferModel ( ) const
inline

◆ beginEpisode()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::beginEpisode ( )
inline

Called by the simulator before an episode begins.

References Opm::eclBroadcast().

◆ beginEpisode_()

bool Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::beginEpisode_ ( bool  enableExperiments,
int  episodeIdx 
)
protectedinherited

◆ beginIteration()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::beginIteration ( )
inline

Called by the simulator before each Newton-Raphson iteration.

◆ beginTimeStep()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::beginTimeStep ( )
inline

Called by the simulator before each time integration.

◆ beginTimeStep_()

void Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::beginTimeStep_ ( bool  enableExperiments,
int  episodeIdx,
int  timeStepIndex,
Scalar  startTime,
Scalar  time,
Scalar  timeStepSize,
Scalar  endTime 
)
protectedinherited

◆ biofilmConcentration()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::biofilmConcentration ( unsigned  elemIdx) const
inherited

Returns the initial biofilm concentration for a given a cell index.

◆ boundary()

template<class TypeTag >
template<class Context >
void Opm::FlowProblem< TypeTag >::boundary ( BoundaryRateVector &  values,
const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

Reservoir simulation uses no-flow conditions as default for all boundaries.

◆ boundaryCondition()

template<class TypeTag >
std::pair< BCType, RateVector > Opm::FlowProblem< TypeTag >::boundaryCondition ( const unsigned int  globalSpaceIdx,
const int  directionId 
) const
inline

◆ boundaryFluidState()

template<class TypeTag >
const InitialFluidState Opm::FlowProblem< TypeTag >::boundaryFluidState ( unsigned  globalDofIdx,
const int  directionId 
) const
inline

◆ briefDescription()

std::string Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::briefDescription
staticinherited

◆ calciteConcentration()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::calciteConcentration ( unsigned  elemIdx) const
inherited

Returns the initial calcite concentration for a given a cell index.

◆ deserialize()

template<class TypeTag >
template<class Restarter >
void Opm::FlowProblem< TypeTag >::deserialize ( Restarter &  res)
inline

This method restores the complete state of the problem and its sub-objects from disk.

The serialization format used by this method is ad-hoc. It is the inverse of the serialize() method.

Template Parameters
RestarterThe deserializer type
Parameters
resThe deserializer object

◆ diffusivity() [1/2]

template<class TypeTag >
template<class Context >
Scalar Opm::FlowProblem< TypeTag >::diffusivity ( const Context &  context,
unsigned  fromDofLocalIdx,
unsigned  toDofLocalIdx 
) const
inline

◆ diffusivity() [2/2]

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::diffusivity ( const unsigned  globalCellIn,
const unsigned  globalCellOut 
) const
inline

give the transmissibility for a face i.e. pair. should be symmetric?

◆ dispersivity()

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::dispersivity ( const unsigned  globalCellIn,
const unsigned  globalCellOut 
) const
inline

give the dispersivity for a face i.e. pair.

◆ dofCenterDepth() [1/2]

template<class TypeTag >
template<class Context >
Scalar Opm::FlowProblem< TypeTag >::dofCenterDepth ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

Returns the depth of an degree of freedom [m].

For ECL problems this is defined as the average of the depth of an element and is thus slightly different from the depth of an element's centroid.

◆ dofCenterDepth() [2/2]

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::dofCenterDepth ( unsigned  globalSpaceIdx) const
inline

Direct indexed acces to the depth of an degree of freedom [m].

For ECL problems this is defined as the average of the depth of an element and is thus slightly different from the depth of an element's centroid.

◆ drsdtcon()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::drsdtcon ( unsigned  elemIdx,
int  episodeIdx 
) const
inherited

Returns the dynamic drsdt convective mixing value.

◆ eclIO()

template<class TypeTag >
const EclipseIO & Opm::FlowProblem< TypeTag >::eclIO ( ) const
inline

◆ eclTransmissibilities()

template<class TypeTag >
const Vanguard::TransmissibilityType & Opm::FlowProblem< TypeTag >::eclTransmissibilities ( ) const
inline

Return a reference to the object that handles the "raw" transmissibilities.

◆ eclWriter()

template<class TypeTag >
const std::unique_ptr< EclWriterType > & Opm::FlowProblem< TypeTag >::eclWriter ( ) const
inline

◆ endEpisode()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::endEpisode ( )
inline

Called by the simulator after the end of an episode.

◆ endIteration()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::endIteration ( )
inline

Called by the simulator after each Newton-Raphson iteration.

References Opm::DamarisOutput::endIteration().

◆ endTimeStep()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::endTimeStep ( )
inline

Called by the simulator after each time integration.

◆ episodeIndex()

template<class TypeTag >
int Opm::FlowProblem< TypeTag >::episodeIndex ( ) const
inline

◆ fieldPropDoubleOnLeafAssigner_()

template<class TypeTag >
std::function< std::vector< double >(const FieldPropsManager &, const std::string &)> Opm::FlowProblem< TypeTag >::fieldPropDoubleOnLeafAssigner_ ( )
inlineprotected

◆ fieldPropIntTypeOnLeafAssigner_()

template<class TypeTag >
template<typename IntType >
std::function< std::vector< IntType >(const FieldPropsManager &, const std::string &, bool)> Opm::FlowProblem< TypeTag >::fieldPropIntTypeOnLeafAssigner_ ( )
inlineprotected

◆ finalizeOutput()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::finalizeOutput ( )
inline

◆ finishInit()

◆ getRockCompTransMultVal()

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::getRockCompTransMultVal ( std::size_t  dofIdx) const
inlineprotected

◆ handlePositionalParameter()

template<class TypeTag >
static int Opm::FlowProblem< TypeTag >::handlePositionalParameter ( std::set< std::string > &  seenParams,
std::string &  errorMsg,
int  ,
const char **  argv,
int  paramIdx,
int   
)
inlinestatic

◆ helpPreamble()

std::string Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::helpPreamble ( int  ,
const char **  argv 
)
staticinherited

◆ initFluidSystem_()

void Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::initFluidSystem_
protectedinherited

◆ initial()

template<class TypeTag >
template<class Context >
void Opm::FlowProblem< TypeTag >::initial ( PrimaryVariables &  values,
const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

The reservoir problem uses a constant boundary condition for the whole domain.

◆ initialFluidState()

template<class TypeTag >
const InitialFluidState & Opm::FlowProblem< TypeTag >::initialFluidState ( unsigned  globalDofIdx) const
inline

◆ initialSolutionApplied()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::initialSolutionApplied ( )
inline

◆ intrinsicPermeability() [1/2]

template<class TypeTag >
template<class Context >
const DimMatrix & Opm::FlowProblem< TypeTag >::intrinsicPermeability ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

◆ intrinsicPermeability() [2/2]

template<class TypeTag >
const DimMatrix & Opm::FlowProblem< TypeTag >::intrinsicPermeability ( unsigned  globalElemIdx) const
inline

This method returns the intrinsic permeability tensor given a global element index.

Its main (only?) usage is the ECL transmissibility calculation code...

◆ lookupIdxOnLevelZeroAssigner_()

std::function< unsigned(unsigned)> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::lookupIdxOnLevelZeroAssigner_ ( )
inlineprotectedinherited

◆ materialLawManager() [1/2]

template<class TypeTag >
std::shared_ptr< EclMaterialLawManager > Opm::FlowProblem< TypeTag >::materialLawManager ( )
inline

◆ materialLawManager() [2/2]

template<class TypeTag >
std::shared_ptr< const EclMaterialLawManager > Opm::FlowProblem< TypeTag >::materialLawManager ( ) const
inline

Returns the ECL material law manager.

Note that this method is not part of the generic eWoms problem API because it would force all problens use the ECL material laws.

◆ materialLawParams() [1/3]

template<class TypeTag >
template<class Context >
const MaterialLawParams & Opm::FlowProblem< TypeTag >::materialLawParams ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

◆ materialLawParams() [2/3]

template<class TypeTag >
const MaterialLawParams & Opm::FlowProblem< TypeTag >::materialLawParams ( unsigned  globalDofIdx) const
inline

◆ materialLawParams() [3/3]

template<class TypeTag >
const MaterialLawParams & Opm::FlowProblem< TypeTag >::materialLawParams ( unsigned  globalDofIdx,
FaceDir::DirEnum  facedir 
) const
inline

◆ maxGasDissolutionFactor()

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::maxGasDissolutionFactor ( unsigned  timeIdx,
unsigned  globalDofIdx 
) const
inline

Returns the maximum value of the gas dissolution factor at the current time for a given degree of freedom.

◆ maxOilSaturation()

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::maxOilSaturation ( unsigned  globalDofIdx) const
inline

Returns an element's historic maximum oil phase saturation that was observed during the simulation.

In this context, "historic" means the the time before the current timestep began.

This is a bit of a hack from the conceptional point of view, but it is required to match the results of the 'flow' and ECLIPSE 100 simulators.

◆ maxOilVaporizationFactor()

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::maxOilVaporizationFactor ( unsigned  timeIdx,
unsigned  globalDofIdx 
) const
inline

Returns the maximum value of the oil vaporization factor at the current time for a given degree of freedom.

◆ maxPolymerAdsorption() [1/2]

template<class TypeTag >
template<class Context >
Scalar Opm::FlowProblem< TypeTag >::maxPolymerAdsorption ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

Returns the max polymer adsorption value.

◆ maxPolymerAdsorption() [2/2]

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::maxPolymerAdsorption ( unsigned  elemIdx) const
inherited

Returns the max polymer adsorption value.

◆ maxWaterSaturation()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::maxWaterSaturation ( unsigned  globalDofIdx) const
inherited

Returns an element's historic maximum water phase saturation that was observed during the simulation.

In this context, "historic" means the the time before the current timestep began.

This is used for output of the maximum water saturation used as input for water induced rock compation ROCK2D/ROCK2DTR.

◆ microbialConcentration()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::microbialConcentration ( unsigned  elemIdx) const
inherited

Returns the initial microbial concentration for a given a cell index.

◆ minOilPressure()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::minOilPressure ( unsigned  globalDofIdx) const
inherited

Returns an element's historic minimum pressure of the oil phase that was observed during the simulation.

In this context, "historic" means the the time before the current timestep began.

This is used for output of the minimum pressure used as input for the irreversible rock compation option.

◆ miscnumRegionIndex() [1/2]

template<class TypeTag >
template<class Context >
unsigned Opm::FlowProblem< TypeTag >::miscnumRegionIndex ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

Returns the index of the relevant region for thermodynmic properties.

◆ miscnumRegionIndex() [2/2]

unsigned Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::miscnumRegionIndex ( unsigned  elemIdx) const
inherited

Returns the index the relevant MISC region given a cell index.

◆ mutableAquiferModel()

template<class TypeTag >
AquiferModel & Opm::FlowProblem< TypeTag >::mutableAquiferModel ( )
inline

◆ name()

template<class TypeTag >
std::string Opm::FlowProblem< TypeTag >::name ( ) const
inline

◆ nextTimeStepSize()

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::nextTimeStepSize ( ) const
inline

Propose the size of the next time step to the simulator.

This method is only called if the Newton solver does converge, the simulator automatically cuts the time step in half without consultating this method again.

◆ nonTrivialBoundaryConditions()

template<class TypeTag >
bool Opm::FlowProblem< TypeTag >::nonTrivialBoundaryConditions ( ) const
inline

◆ numPressurePointsEquil()

int Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::numPressurePointsEquil ( ) const
inlineinherited

◆ operator==()

bool Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::operator== ( const FlowGenericProblem< GetPropType< TypeTag, Properties::GridView >, GetPropType< TypeTag, Properties::FluidSystem > > &  rhs) const
inherited

◆ overburdenPressure()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::overburdenPressure ( unsigned  elementIdx) const
inherited

Get the pressure of the overburden.

This method is mainly for output.

◆ oxygenConcentration()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::oxygenConcentration ( unsigned  elemIdx) const
inherited

Returns the initial oxygen concentration for a given a cell index.

◆ permFactTransMultiplier()

template<class TypeTag >
template<class LhsEval >
LhsEval Opm::FlowProblem< TypeTag >::permFactTransMultiplier ( const IntensiveQuantities &  intQuants) const
inline

Calculate the transmissibility multiplier due to porosity reduction.

TODO: The API of this is a bit ad-hoc, it would be better to use context objects.

◆ plmixnumRegionIndex() [1/2]

template<class TypeTag >
template<class Context >
unsigned Opm::FlowProblem< TypeTag >::plmixnumRegionIndex ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

Returns the index of the relevant region for thermodynmic properties.

◆ plmixnumRegionIndex() [2/2]

unsigned Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::plmixnumRegionIndex ( unsigned  elemIdx) const
inherited

Returns the index the relevant PLMIXNUM (for polymer module) region given a cell index.

◆ polymerConcentration()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::polymerConcentration ( unsigned  elemIdx) const
inherited

Returns the initial polymer concentration for a given a cell index.

◆ polymerMolecularWeight()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::polymerMolecularWeight ( const unsigned  elemIdx) const
inherited

Returns the polymer molecule weight for a given cell index.

◆ porosity() [1/2]

template<class TypeTag >
template<class Context >
Scalar Opm::FlowProblem< TypeTag >::porosity ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

For the FlowProblem, this method is identical to referencePorosity(). The intensive quantities object may apply various multipliers (e.g. ones which model rock compressibility and water induced rock compaction) to it which depend on the current physical conditions.

◆ porosity() [2/2]

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::porosity ( unsigned  globalSpaceIdx,
unsigned  timeIdx 
) const
inherited

Direct indexed access to the porosity.

For the FlowProblem, this method is identical to referencePorosity(). The intensive quantities object may apply various multipliers (e.g. ones which model rock compressibility and water induced rock compaction) to it which depend on the current physical conditions.

◆ prefetch()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::prefetch ( const Element &  elem) const
inline

◆ processRestartSaturations_()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::processRestartSaturations_ ( InitialFluidState &  elemFluidState,
Scalar &  solventSaturation 
)
inlineprotected

◆ pvtRegionIndex() [1/2]

template<class TypeTag >
template<class Context >
unsigned Opm::FlowProblem< TypeTag >::pvtRegionIndex ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

Returns the index of the relevant region for thermodynmic properties.

◆ pvtRegionIndex() [2/2]

unsigned Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::pvtRegionIndex ( unsigned  elemIdx) const
inherited

Returns the index the relevant PVT region given a cell index.

◆ readBlackoilExtentionsInitialConditions_()

void Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::readBlackoilExtentionsInitialConditions_ ( std::size_t  numDof,
bool  enableSolvent,
bool  enablePolymer,
bool  enablePolymerMolarWeight,
bool  enableMICP 
)
protectedinherited

◆ readEclRestartSolution_()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::readEclRestartSolution_ ( )
inlineprotected

◆ readEquilInitialCondition_()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::readEquilInitialCondition_ ( )
inlineprotected

◆ readExplicitInitialCondition_()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::readExplicitInitialCondition_ ( )
inlineprotected

◆ readInitialCondition_()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::readInitialCondition_ ( )
inlineprotected

◆ readMaterialParameters_()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::readMaterialParameters_ ( )
inlineprotected

◆ readRockCompactionParameters_()

void Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::readRockCompactionParameters_
protectedinherited

◆ readRockParameters_()

void Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::readRockParameters_ ( const std::vector< Scalar > &  cellCenterDepths,
std::function< std::array< int, 3 >(const unsigned)>  ijkIndex 
)
protectedinherited

◆ readThermalParameters_()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::readThermalParameters_ ( )
inlineprotected

◆ recycleFirstIterationStorage()

template<class TypeTag >
bool Opm::FlowProblem< TypeTag >::recycleFirstIterationStorage ( ) const
inline

Return if the storage term of the first iteration is identical to the storage term for the solution of the previous time step.

For quite technical reasons, the storage term cannot be recycled if either DRSDT or DRVDT are active. Nor if the porosity is changes between timesteps using a pore volume multiplier (i.e., poreVolumeMultiplier() != 1.0)

◆ referencePorosity()

Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::referencePorosity ( unsigned  elementIdx,
unsigned  timeIdx 
) const
inlineinherited

Returns the porosity of an element.

The reference porosity of an element is the porosity of the medium before modified by the current solution. Note that this method is not part of the generic eWoms problem API because it would bake the assumption that only the elements are the degrees of freedom into the interface.

◆ registerParameters()

template<class TypeTag >
static void Opm::FlowProblem< TypeTag >::registerParameters ( )
inlinestatic

◆ rockCompPoroMultiplier()

template<class TypeTag >
template<class LhsEval >
LhsEval Opm::FlowProblem< TypeTag >::rockCompPoroMultiplier ( const IntensiveQuantities &  intQuants,
unsigned  elementIdx 
) const
inline

Calculate the porosity multiplier due to water induced rock compaction.

TODO: The API of this is a bit ad-hoc, it would be better to use context objects.

◆ rockCompressibility() [1/2]

template<class TypeTag >
template<class Context >
Scalar Opm::FlowProblem< TypeTag >::rockCompressibility ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

◆ rockCompressibility() [2/2]

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::rockCompressibility ( unsigned  globalSpaceIdx) const
inherited

Direct access to rock compressibility.

While the above overload could be implemented in terms of this method, that would require always looking up the global space index, which is not always needed.

◆ rockCompTransMultiplier()

template<class TypeTag >
template<class LhsEval >
LhsEval Opm::FlowProblem< TypeTag >::rockCompTransMultiplier ( const IntensiveQuantities &  intQuants,
unsigned  elementIdx 
) const
inline

Calculate the transmissibility multiplier due to water induced rock compaction.

TODO: The API of this is a bit ad-hoc, it would be better to use context objects.

◆ rockFraction()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::rockFraction ( unsigned  elementIdx,
unsigned  timeIdx 
) const
inherited

Returns the rockFraction of an element.

Usually 1 - porosity, but if pvmult is used to modify porosity we will apply the same multiplier to the rock fraction i.e. pvmult*(1 - porosity) and thus interpret multpv as a volume multiplier. This is to avoid negative rock volume for pvmult*porosity > 1

◆ rockReferencePressure() [1/2]

template<class TypeTag >
template<class Context >
Scalar Opm::FlowProblem< TypeTag >::rockReferencePressure ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

◆ rockReferencePressure() [2/2]

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::rockReferencePressure ( unsigned  globalSpaceIdx) const
inherited

Direct access to rock reference pressure.

While the above overload could be implemented in terms of this method, that would require always looking up the global space index, which is not always needed.

◆ satnumRegionIndex() [1/2]

template<class TypeTag >
template<class Context >
unsigned Opm::FlowProblem< TypeTag >::satnumRegionIndex ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

Returns the index of the relevant region for thermodynmic properties.

◆ satnumRegionIndex() [2/2]

unsigned Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::satnumRegionIndex ( unsigned  elemIdx) const
inherited

Returns the index the relevant saturation function region given a cell index.

◆ serializationTestObject()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > > Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::serializationTestObject ( const EclipseState &  eclState,
const Schedule &  schedule,
const GetPropType< TypeTag, Properties::GridView > &  gridView 
)
staticinherited

◆ serialize()

template<class TypeTag >
template<class Restarter >
void Opm::FlowProblem< TypeTag >::serialize ( Restarter &  res)
inline

This method writes the complete state of the problem and its subobjects to disk.

The file format used here is ad-hoc.

◆ serializeOp()

template<class TypeTag >
template<class Serializer >
void Opm::FlowProblem< TypeTag >::serializeOp ( Serializer &  serializer)
inline

◆ setBriefDescription()

static void Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::setBriefDescription ( const std::string &  msg)
inlinestaticinherited

Specifies the string returned by briefDescription()

This string appears in the usage message.

◆ setConvData()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::setConvData ( const std::vector< std::vector< int > > &  data)
inline

◆ setMaxOilSaturation()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::setMaxOilSaturation ( unsigned  globalDofIdx,
Scalar  value 
)
inline

Sets an element's maximum oil phase saturation observed during the simulation.

In this context, "historic" means the the time before the current timestep began.

This a hack on top of the maxOilSaturation() hack but it is currently required to do restart externally. i.e. from the flow code.

◆ setPorosity()

void Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::setPorosity ( Scalar  poro,
unsigned  elementIdx,
unsigned  timeIdx = 0 
)
inlineinherited

Sets the porosity of an element.

◆ setSimulationReport()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::setSimulationReport ( const SimulatorReport report)
inline

◆ setSubStepReport()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::setSubStepReport ( const SimulatorReportSingle report)
inline

◆ shouldWriteOutput()

bool Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::shouldWriteOutput ( ) const
inlineprotectedinherited

Always returns true. The ecl output writer takes care of the rest.

◆ shouldWriteRestartFile()

bool Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::shouldWriteRestartFile ( ) const
inlineprotectedinherited

Returns true if an eWoms restart file should be written to disk.

The FlowProblem does not write any restart files using the ad-hoc format, only ones using the ECL format.

◆ solidEnergyLawParams() [1/2]

template<class TypeTag >
template<class Context >
const SolidEnergyLawParams & Opm::FlowProblem< TypeTag >::solidEnergyLawParams ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

Return the parameters for the energy storage law of the rock.

◆ solidEnergyLawParams() [2/2]

template<class TypeTag >
const SolidEnergyLawParams & Opm::FlowProblem< TypeTag >::solidEnergyLawParams ( unsigned  globalSpaceIdx,
unsigned   
) const
inline

◆ solventRsw()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::solventRsw ( unsigned  elemIdx) const
inherited

Returns the initial solvent dissolved in water for a given a cell index.

◆ solventSaturation()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::solventSaturation ( unsigned  elemIdx) const
inherited

Returns the initial solvent saturation for a given a cell index.

◆ source() [1/2]

template<class TypeTag >
template<class Context >
void Opm::FlowProblem< TypeTag >::source ( RateVector &  rate,
const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

For this problem, the source term of all components is 0 everywhere.

◆ source() [2/2]

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::source ( RateVector &  rate,
unsigned  globalDofIdx,
unsigned  timeIdx 
) const
inline

◆ temperature() [1/2]

template<class TypeTag >
template<class Context >
Scalar Opm::FlowProblem< TypeTag >::temperature ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

◆ temperature() [2/2]

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::temperature ( unsigned  globalDofIdx,
unsigned   
) const
inline

◆ thermalConductionLawParams() [1/2]

template<class TypeTag >
template<class Context >
const ThermalConductionLawParams & Opm::FlowProblem< TypeTag >::thermalConductionLawParams ( const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
) const
inline

◆ thermalConductionLawParams() [2/2]

template<class TypeTag >
const ThermalConductionLawParams & Opm::FlowProblem< TypeTag >::thermalConductionLawParams ( unsigned  globalSpaceIdx,
unsigned   
) const
inline

◆ thermalHalfTransmissibility()

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::thermalHalfTransmissibility ( const unsigned  globalSpaceIdxIn,
const unsigned  globalSpaceIdxOut 
) const
inline

◆ thermalHalfTransmissibilityBoundary()

template<class TypeTag >
template<class Context >
Scalar Opm::FlowProblem< TypeTag >::thermalHalfTransmissibilityBoundary ( const Context &  elemCtx,
unsigned  boundaryFaceIdx 
) const
inline

◆ thermalHalfTransmissibilityIn()

template<class TypeTag >
template<class Context >
Scalar Opm::FlowProblem< TypeTag >::thermalHalfTransmissibilityIn ( const Context &  context,
unsigned  faceIdx,
unsigned  timeIdx 
) const
inline

◆ thermalHalfTransmissibilityOut()

template<class TypeTag >
template<class Context >
Scalar Opm::FlowProblem< TypeTag >::thermalHalfTransmissibilityOut ( const Context &  context,
unsigned  faceIdx,
unsigned  timeIdx 
) const
inline

◆ thermalTransmissibilityBoundary()

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::thermalTransmissibilityBoundary ( const unsigned  globalSpaceIdx,
const unsigned  boundaryFaceIdx 
) const
inline

Direct access to a boundary transmissibility.

◆ thresholdPressure() [1/3]

template<class TypeTag >
FlowThresholdPressure< TypeTag > & Opm::FlowProblem< TypeTag >::thresholdPressure ( )
inline

◆ thresholdPressure() [2/3]

template<class TypeTag >
const FlowThresholdPressure< TypeTag > & Opm::FlowProblem< TypeTag >::thresholdPressure ( ) const
inline

◆ thresholdPressure() [3/3]

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::thresholdPressure ( unsigned  elem1Idx,
unsigned  elem2Idx 
) const
inline

◆ tracerModel() [1/2]

template<class TypeTag >
TracerModel & Opm::FlowProblem< TypeTag >::tracerModel ( )
inline

◆ tracerModel() [2/2]

template<class TypeTag >
const TracerModel & Opm::FlowProblem< TypeTag >::tracerModel ( ) const
inline

◆ transmissibility() [1/2]

template<class TypeTag >
template<class Context >
Scalar Opm::FlowProblem< TypeTag >::transmissibility ( const Context &  context,
unsigned  fromDofLocalIdx,
unsigned  toDofLocalIdx 
) const
inline

◆ transmissibility() [2/2]

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::transmissibility ( unsigned  globalCenterElemIdx,
unsigned  globalElemIdx 
) const
inline

Direct access to the transmissibility between two elements.

◆ transmissibilityBoundary() [1/2]

template<class TypeTag >
template<class Context >
Scalar Opm::FlowProblem< TypeTag >::transmissibilityBoundary ( const Context &  elemCtx,
unsigned  boundaryFaceIdx 
) const
inline

◆ transmissibilityBoundary() [2/2]

template<class TypeTag >
Scalar Opm::FlowProblem< TypeTag >::transmissibilityBoundary ( const unsigned  globalSpaceIdx,
const unsigned  boundaryFaceIdx 
) const
inline

Direct access to a boundary transmissibility.

◆ updateCompositionChangeLimits_()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::updateCompositionChangeLimits_ ( )
inlineprotected

◆ updateExplicitQuantities_()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::updateExplicitQuantities_ ( )
inlineprotected

◆ updateHysteresis_() [1/2]

template<class TypeTag >
bool Opm::FlowProblem< TypeTag >::updateHysteresis_ ( )
inlineprotected

◆ updateHysteresis_() [2/2]

template<class TypeTag >
bool Opm::FlowProblem< TypeTag >::updateHysteresis_ ( unsigned  compressedDofIdx,
const IntensiveQuantities &  iq 
)
inlineprotected

◆ updateImbnum_()

void Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::updateImbnum_
protectedinherited

◆ updateKrnum_()

void Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::updateKrnum_
protectedinherited

◆ updateMaxOilSaturation_() [1/2]

template<class TypeTag >
bool Opm::FlowProblem< TypeTag >::updateMaxOilSaturation_ ( )
inlineprotected

◆ updateMaxOilSaturation_() [2/2]

template<class TypeTag >
bool Opm::FlowProblem< TypeTag >::updateMaxOilSaturation_ ( unsigned  compressedDofIdx,
const IntensiveQuantities &  iq 
)
inlineprotected

◆ updateMaxPolymerAdsorption_() [1/2]

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::updateMaxPolymerAdsorption_ ( )
inlineprotected

◆ updateMaxPolymerAdsorption_() [2/2]

template<class TypeTag >
bool Opm::FlowProblem< TypeTag >::updateMaxPolymerAdsorption_ ( unsigned  compressedDofIdx,
const IntensiveQuantities &  iq 
)
inlineprotected

◆ updateMaxWaterSaturation_() [1/2]

template<class TypeTag >
bool Opm::FlowProblem< TypeTag >::updateMaxWaterSaturation_ ( )
inlineprotected

◆ updateMaxWaterSaturation_() [2/2]

template<class TypeTag >
bool Opm::FlowProblem< TypeTag >::updateMaxWaterSaturation_ ( unsigned  compressedDofIdx,
const IntensiveQuantities &  iq 
)
inlineprotected

◆ updateMinPressure_() [1/2]

template<class TypeTag >
bool Opm::FlowProblem< TypeTag >::updateMinPressure_ ( )
inlineprotected

◆ updateMinPressure_() [2/2]

template<class TypeTag >
bool Opm::FlowProblem< TypeTag >::updateMinPressure_ ( unsigned  compressedDofIdx,
const IntensiveQuantities &  iq 
)
inlineprotected

◆ updateMiscnum_()

void Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::updateMiscnum_
protectedinherited

◆ updatePlmixnum_()

void Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::updatePlmixnum_
protectedinherited

◆ updateProperty_()

template<class TypeTag >
template<class UpdateFunc >
void Opm::FlowProblem< TypeTag >::updateProperty_ ( const std::string &  failureMsg,
UpdateFunc  func 
)
inlineprotected

◆ updatePvtnum_()

void Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::updatePvtnum_
protectedinherited

◆ updateReferencePorosity_()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::updateReferencePorosity_ ( )
inlineprotected

◆ updateRelperms()

template<class TypeTag >
template<class FluidState >
void Opm::FlowProblem< TypeTag >::updateRelperms ( std::array< Evaluation, numPhases > &  mobility,
DirectionalMobilityPtr &  dirMob,
FluidState &  fluidState,
unsigned  globalSpaceIdx 
) const
inline

◆ updateSatnum_()

void Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::updateSatnum_
protectedinherited

◆ ureaConcentration()

FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::ureaConcentration ( unsigned  elemIdx) const
inherited

Returns the initial urea concentration for a given a cell index.

◆ vapparsActive()

bool Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::vapparsActive ( int  episodeIdx) const
inherited

◆ wellModel() [1/2]

template<class TypeTag >
WellModel & Opm::FlowProblem< TypeTag >::wellModel ( )
inline

◆ wellModel() [2/2]

template<class TypeTag >
const WellModel & Opm::FlowProblem< TypeTag >::wellModel ( ) const
inline

Returns a reference to the ECL well manager used by the problem.

This can be used for inspecting wells outside of the problem.

◆ wellTransMultiplier()

template<class TypeTag >
template<class LhsEval >
LhsEval Opm::FlowProblem< TypeTag >::wellTransMultiplier ( const IntensiveQuantities &  intQuants,
unsigned  elementIdx 
) const
inline

Return the well transmissibility multiplier due to rock changues.

◆ writeOutput()

template<class TypeTag >
void Opm::FlowProblem< TypeTag >::writeOutput ( const SimulatorTimer timer,
bool  verbose = true 
)
inline

Write the requested quantities of the current solution into the output files.

Member Data Documentation

◆ briefDescription_

std::string Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::briefDescription_
inlinestaticprotectedinherited

◆ eclState_

const EclipseState& Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::eclState_
protectedinherited

◆ enableTuning_

bool Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::enableTuning_
protectedinherited

◆ gridView_

const GetPropType< TypeTag, Properties::GridView > & Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::gridView_
protectedinherited

◆ imbnumx_

std::vector<unsigned short> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::imbnumx_
protectedinherited

◆ imbnumy_

std::vector<unsigned short> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::imbnumy_
protectedinherited

◆ imbnumz_

std::vector<unsigned short> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::imbnumz_
protectedinherited

◆ initialTimeStepSize_

Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::initialTimeStepSize_
protectedinherited

◆ krnumx_

std::vector<unsigned short> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::krnumx_
protectedinherited

◆ krnumy_

std::vector<unsigned short> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::krnumy_
protectedinherited

◆ krnumz_

std::vector<unsigned short> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::krnumz_
protectedinherited

◆ lookUpData_

const LookUpData Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::lookUpData_
protectedinherited

◆ maxOilSaturation_

std::vector<Scalar> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::maxOilSaturation_
protectedinherited

◆ maxTimeStepAfterWellEvent_

Scalar Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::maxTimeStepAfterWellEvent_
protectedinherited

◆ maxWaterSaturation_

std::vector<Scalar> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::maxWaterSaturation_
protectedinherited

◆ micp_

MICPSolutionContainer<Scalar> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::micp_
protectedinherited

◆ minRefPressure_

std::vector<Scalar> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::minRefPressure_
protectedinherited

◆ miscnum_

std::vector<unsigned short> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::miscnum_
protectedinherited

◆ mixControls_

MixingRateControls<GetPropType< TypeTag, Properties::FluidSystem > > Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::mixControls_
protectedinherited

◆ numPressurePointsEquil_

int Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::numPressurePointsEquil_
protectedinherited

◆ overburdenPressure_

std::vector<Scalar> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::overburdenPressure_
protectedinherited

◆ plmixnum_

std::vector<unsigned short> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::plmixnum_
protectedinherited

◆ polymer_

PolymerSolutionContainer<Scalar> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::polymer_
protectedinherited

◆ pvtnum_

std::vector<int> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::pvtnum_
protectedinherited

◆ referencePorosity_

std::array<std::vector<Scalar>, 2> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::referencePorosity_
protectedinherited

◆ rockCompPoroMult_

std::vector<TabulatedFunction> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::rockCompPoroMult_
protectedinherited

◆ rockCompPoroMultWc_

std::vector<TabulatedTwoDFunction> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::rockCompPoroMultWc_
protectedinherited

◆ rockCompTransMult_

std::vector<TabulatedFunction> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::rockCompTransMult_
protectedinherited

◆ rockCompTransMultVal_

std::vector<Scalar> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::rockCompTransMultVal_
protectedinherited

◆ rockCompTransMultWc_

std::vector<TabulatedTwoDFunction> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::rockCompTransMultWc_
protectedinherited

◆ rockParams_

std::vector<RockParams> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::rockParams_
protectedinherited

◆ rockTableIdx_

std::vector<unsigned short> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::rockTableIdx_
protectedinherited

◆ satnum_

std::vector<unsigned short> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::satnum_
protectedinherited

◆ schedule_

const Schedule& Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::schedule_
protectedinherited

◆ solventRsw_

std::vector<Scalar> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::solventRsw_
protectedinherited

◆ solventSaturation_

std::vector<Scalar> Opm::FlowGenericProblem< GetPropType< TypeTag, Properties::GridView > , GetPropType< TypeTag, Properties::FluidSystem > >::solventSaturation_
protectedinherited

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