opm-simulators
Opm::GenericOutputBlackoilModule< FluidSystem > Class Template Referenceabstract

Public Types

using Scalar = typename FluidSystem::Scalar
 

Public Member Functions

void outputTimeStamp (const std::string &lbl, double elapsed, int rstep, boost::posix_time::ptime currentDate)
 
void prepareDensityAccumulation ()
 Clear internal arrays for parallel accumulation of per-region phase density averages. More...
 
void accumulateDensityParallel ()
 Run cross-rank parallel accumulation of per-region phase density running sums (average values). More...
 
void outputCumLog (std::size_t reportStepNum, const bool connData)
 
void outputProdLog (std::size_t reportStepNum, const bool connData)
 
void outputInjLog (std::size_t reportStepNum, const bool connData)
 
void outputMSWLog (std::size_t reportStepNum)
 
void calc_initial_inplace (const Parallel::Communication &comm)
 
Inplace calc_inplace (std::map< std::string, double > &miscSummaryData, std::map< std::string, std::vector< double >> &regionData, const Parallel::Communication &comm)
 
void outputWellspecReport (const std::vector< std::string > &changedWells, const bool changedWellLists, const std::size_t reportStepNum, const double elapsed, boost::posix_time::ptime currentDate) const
 Emit well specification report. More...
 
void outputErrorLog (const Parallel::Communication &comm) const
 
void addRftDataToWells (data::Wells &wellDatas, std::size_t reportStepNum, const Parallel::Communication &comm)
 
void assignToSolution (data::Solution &sol)
 Move all buffers to data::Solution.
 
void setRestart (const data::Solution &sol, unsigned elemIdx, unsigned globalDofIndex)
 
Scalar getSolventSaturation (unsigned elemIdx) const
 
Scalar getSolventRsw (unsigned elemIdx) const
 
Scalar getPolymerConcentration (unsigned elemIdx) const
 
Scalar getFoamConcentration (unsigned elemIdx) const
 
Scalar getSaltConcentration (unsigned elemIdx) const
 
Scalar getSaltSaturation (unsigned elemIdx) const
 
Scalar getPermFactor (unsigned elemIdx) const
 
const std::vector< Scalar > & getFluidPressure () const
 
const BioeffectsContainer< Scalar > & getBioeffects () const
 
const CO2H2Container< Scalar > & getCO2H2 () const
 
const FlowsContainer< FluidSystem > & getFlows () const
 
bool needInterfaceFluxes ([[maybe_unused]] const bool isSubStep) const
 
const std::map< std::pair< std::string, int >, double > & getBlockData ()
 
std::map< std::pair< std::string, int >, double > & getExtraBlockData ()
 
const Inplace * initialInplace () const
 
bool localDataValid () const
 
void invalidateLocalData ()
 
void validateLocalData ()
 
template<class Serializer >
void serializeOp (Serializer &serializer)
 
RSTConvgetConv ()
 
const RSTConvgetConv () const
 
void assignGlobalFieldsToSolution (data::Solution &sol)
 Assign fields that are in global numbering to the solution. More...
 

Static Public Member Functions

static void registerParameters ()
 Register all run-time parameters for the Vtk output module.
 

Protected Types

enum  { numPhases = FluidSystem::numPhases }
 
enum  { numComponents = FluidSystem::numComponents }
 
enum  { gasCompIdx = FluidSystem::gasCompIdx }
 
enum  { oilCompIdx = FluidSystem::oilCompIdx }
 
enum  { waterCompIdx = FluidSystem::waterCompIdx }
 
using ScalarBuffer = std::vector< Scalar >
 
using StringBuffer = std::vector< std::string >
 
using Dir = FaceDir::DirEnum
 

Protected Member Functions

 GenericOutputBlackoilModule (const EclipseState &eclState, const Schedule &schedule, const SummaryConfig &summaryConfig, const SummaryState &summaryState, const std::string &moduleVersionName, RSTConv::LocalToGlobalCellFunc globalCell, std::function< bool(const unsigned)> isInterior, const Parallel::Communication &comm, bool enableEnergy, bool constantTemperature, bool enableMech, bool enableSolvent, bool enablePolymer, bool enableFoam, bool enableBrine, bool enableSaltPrecipitation, bool enableExtbo, bool enableBioeffects, bool enableGeochemistry)
 
void doAllocBuffers (unsigned bufferSize, unsigned reportStepNum, const bool substep, const bool log, const bool isRestart, const EclHysteresisConfig *hysteresisConfig, unsigned numOutputNnc=0, std::map< std::string, int > rstKeywords={})
 
void makeRegionSum (Inplace &inplace, const std::string &region_name, const Parallel::Communication &comm) const
 
Inplace accumulateRegionSums (const Parallel::Communication &comm)
 
void updateSummaryRegionValues (const Inplace &inplace, std::map< std::string, double > &miscSummaryData, std::map< std::string, std::vector< double >> &regionData) const
 
void setupBlockData (std::function< bool(int)> isCartIdxOnThisRank)
 
void setupExtraBlockData (const std::size_t reportStepNum, std::function< bool(int)> isCartIdxOnThisRank)
 
virtual bool isDefunctParallelWell (const std::string &wname) const =0
 
virtual bool isOwnedByCurrentRank (const std::string &wname) const =0
 
virtual bool isOnCurrentRank (const std::string &wname) const =0
 

Static Protected Member Functions

static bool isOutputCreationDirective_ (const std::string &keyword)
 
static ScalarBuffer regionSum (const ScalarBuffer &property, const std::vector< int > &regionId, const std::size_t maxNumberOfRegions, const Parallel::Communication &comm)
 
static int regionMax (const std::vector< int > &region, const Parallel::Communication &comm)
 
static void update (Inplace &inplace, const std::string &region_name, const Inplace::Phase phase, const std::size_t ntFip, const ScalarBuffer &values)
 
static Scalar sum (const ScalarBuffer &v)
 

Protected Attributes

const EclipseState & eclState_
 
const Schedule & schedule_
 
const SummaryState & summaryState_
 
SummaryConfig summaryConfig_
 
InterRegFlowMap interRegionFlows_
 
LogOutputHelper< Scalar > logOutput_
 
bool enableEnergy_ {false}
 
bool constantTemperature_ {false}
 
bool enableMech_ {false}
 
bool enableSolvent_ {false}
 
bool enablePolymer_ {false}
 
bool enableFoam_ {false}
 
bool enableBrine_ {false}
 
bool enableSaltPrecipitation_ {false}
 
bool enableExtbo_ {false}
 
bool enableBioeffects_ {false}
 
bool enableGeochemistry_ {false}
 
bool forceDisableFipOutput_ {false}
 
bool forceDisableFipresvOutput_ {false}
 
bool computeFip_ {false}
 
FIPContainer< FluidSystem > fipC_
 
std::unordered_map< std::string, std::vector< int > > regions_
 
std::unordered_map< Inplace::Phase, std::vector< SummaryConfigNode > > regionNodes_
 
std::vector< SummaryConfigNode > RPRNodes_
 
std::vector< SummaryConfigNode > RPRPNodes_
 
std::vector< int > failedCellsPb_
 
std::vector< int > failedCellsPd_
 
ScalarBuffer gasFormationVolumeFactor_
 
ScalarBuffer hydrocarbonPoreVolume_
 
ScalarBuffer pressureTimesPoreVolume_
 
ScalarBuffer pressureTimesHydrocarbonVolume_
 
ScalarBuffer dynamicPoreVolume_
 
ScalarBuffer rPorV_
 
ScalarBuffer fluidPressure_
 
ScalarBuffer temperature_
 
ScalarBuffer rs_
 
ScalarBuffer rsw_
 
ScalarBuffer rv_
 
ScalarBuffer rvw_
 
ScalarBuffer overburdenPressure_
 
ScalarBuffer oilSaturationPressure_
 
ScalarBuffer drsdtcon_
 
ScalarBuffer sSol_
 
ScalarBuffer rswSol_
 
ScalarBuffer cPolymer_
 
ScalarBuffer cFoam_
 
ScalarBuffer cSalt_
 
ScalarBuffer pSalt_
 
ScalarBuffer permFact_
 
ExtboContainer< Scalar > extboC_
 
ScalarBuffer soMax_
 
ScalarBuffer swMax_
 
ScalarBuffer sgmax_
 
ScalarBuffer shmax_
 
ScalarBuffer somin_
 
ScalarBuffer swmin_
 
ScalarBuffer ppcw_
 
ScalarBuffer gasDissolutionFactor_
 
ScalarBuffer oilVaporizationFactor_
 
ScalarBuffer gasDissolutionFactorInWater_
 
ScalarBuffer waterVaporizationFactor_
 
ScalarBuffer bubblePointPressure_
 
ScalarBuffer dewPointPressure_
 
ScalarBuffer rockCompPorvMultiplier_
 
ScalarBuffer minimumOilPressure_
 
ScalarBuffer saturatedOilFormationVolumeFactor_
 
ScalarBuffer rockCompTransMultiplier_
 
BioeffectsContainer< Scalar > bioeffectsC_
 
CO2H2Container< Scalar > CO2H2C_
 
ScalarBuffer pcgw_
 
ScalarBuffer pcow_
 
ScalarBuffer pcog_
 
MechContainer< Scalar > mech_
 
std::array< ScalarBuffer, numPhases > saturation_
 
std::array< ScalarBuffer, numPhases > invB_
 
std::array< ScalarBuffer, numPhases > density_
 
std::array< ScalarBuffer, numPhases > viscosity_
 
std::array< ScalarBuffer, numPhases > relativePermeability_
 
GeochemistryContainer< Scalar > geochemC_
 
TracerContainer< FluidSystem > tracerC_
 
std::array< ScalarBuffer, numPhases > residual_
 
FlowsContainer< FluidSystem > flowsC_
 
RFTContainer< FluidSystem > rftC_
 
RSTConv rst_conv_
 Helper class for RPTRST CONV.
 
std::map< std::pair< std::string, int >, double > blockData_
 
std::map< std::pair< std::string, int >, double > extraBlockData_
 
std::optional< Inplace > initialInplace_
 
bool local_data_valid_ {false}
 
std::optional< RegionPhasePoreVolAverageregionAvgDensity_
 

Static Protected Attributes

static constexpr int gasPhaseIdx = FluidSystem::gasPhaseIdx
 
static constexpr int oilPhaseIdx = FluidSystem::oilPhaseIdx
 
static constexpr int waterPhaseIdx = FluidSystem::waterPhaseIdx
 

Member Function Documentation

◆ accumulateDensityParallel()

template<class FluidSystem >
void Opm::GenericOutputBlackoilModule< FluidSystem >::accumulateDensityParallel ( )

Run cross-rank parallel accumulation of per-region phase density running sums (average values).

◆ assignGlobalFieldsToSolution()

template<class FluidSystem >
void Opm::GenericOutputBlackoilModule< FluidSystem >::assignGlobalFieldsToSolution ( data::Solution &  sol)

Assign fields that are in global numbering to the solution.

This is used to add fields that for some reason cannot be collected using the regular collect mechanism to the solution. In particular this is used with RPTRST CONV output.

◆ outputWellspecReport()

template<class FluidSystem >
void Opm::GenericOutputBlackoilModule< FluidSystem >::outputWellspecReport ( const std::vector< std::string > &  changedWells,
const bool  changedWellLists,
const std::size_t  reportStepNum,
const double  elapsed,
boost::posix_time::ptime  currentDate 
) const

Emit well specification report.

Includes well level, connection level, and segment level information for structurally changed wells. Also includes contents of well lists for structurally changed well lists.

Parameters
[in]changedWellsWells whose structures differ from those of the previous well specification report.
[in]changedWellListsWhether or not any of the run's current well lists changed structurally since the previous well specification report.
[in]reportStepNumOne-based report step index.
[in]elapsedSimulated time, in seconds, since start of simulation run.
[in]currentDateTime point at which this well specification report is emitted.

◆ prepareDensityAccumulation()

template<class FluidSystem >
void Opm::GenericOutputBlackoilModule< FluidSystem >::prepareDensityAccumulation ( )

Clear internal arrays for parallel accumulation of per-region phase density averages.


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