My Project
Loading...
Searching...
No Matches
Opm::OutputBlackOilModule< TypeTag > Class Template Reference

Output module for the results black oil model writing in ECL binary format. More...

#include <OutputBlackoilModule.hpp>

Inheritance diagram for Opm::OutputBlackOilModule< TypeTag >:
Opm::GenericOutputBlackoilModule< GetPropType< TypeTag, Properties::FluidSystem > >

Public Member Functions

template<class CollectDataToIORankType >
 OutputBlackOilModule (const Simulator &simulator, const SummaryConfig &smryCfg, const CollectDataToIORankType &collectToIORank)
 
void allocBuffers (const unsigned bufferSize, const unsigned reportStepNum, const bool substep, const bool log, const bool isRestart)
 Allocate memory for the scalar fields we would like to write to ECL output files.
 
void processElementMech (const ElementContext &elemCtx)
 
void processElement (const ElementContext &elemCtx)
 Modify the internal buffers according to the intensive quanties relevant for an element.
 
void processElementFlows (const ElementContext &elemCtx)
 
void processElementBlockData (const ElementContext &elemCtx)
 
template<class ActiveIndex , class CartesianIndex >
void processFluxes (const ElementContext &elemCtx, ActiveIndex &&activeIndex, CartesianIndex &&cartesianIndex)
 Capture connection fluxes, particularly to account for inter-region flows.
 
void initializeFluxData ()
 Prepare for capturing connection fluxes, particularly to account for inter-region flows.
 
void finalizeFluxData ()
 Finalize capturing connection fluxes.
 
const InterRegFlowMapgetInterRegFlows () const
 Get read-only access to collection of inter-region flows.
 
template<class FluidState >
void assignToFluidState (FluidState &fs, unsigned elemIdx) const
 
void initHysteresisParams (Simulator &simulator, unsigned elemIdx) const
 
void updateFluidInPlace (const ElementContext &elemCtx)
 
void updateFluidInPlace (const unsigned globalDofIdx, const IntensiveQuantities &intQuants, const double totVolume)
 
- Public Member Functions inherited from Opm::GenericOutputBlackoilModule< GetPropType< TypeTag, Properties::FluidSystem > >
Scalar * getPRESSURE_ptr (void)
 
int getPRESSURE_size (void)
 
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.
 
void accumulateDensityParallel ()
 Run cross-rank parallel accumulation of per-region phase density running sums (average values).
 
void outputCumLog (std::size_t reportStepNum)
 
void outputProdLog (std::size_t reportStepNum)
 
void outputInjLog (std::size_t reportStepNum)
 
Inplace calc_inplace (std::map< std::string, double > &miscSummaryData, std::map< std::string, std::vector< double > > &regionData, const Parallel::Communication &comm)
 
void outputFipAndResvLog (const Inplace &inplace, const std::size_t reportStepNum, double elapsed, boost::posix_time::ptime currentDate, const bool substep, const Parallel::Communication &comm)
 
void outputErrorLog (const Parallel::Communication &comm) const
 
void addRftDataToWells (data::Wells &wellDatas, std::size_t reportStepNum)
 
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
 
Scalar getMicrobialConcentration (unsigned elemIdx) const
 
Scalar getOxygenConcentration (unsigned elemIdx) const
 
Scalar getUreaConcentration (unsigned elemIdx) const
 
Scalar getBiofilmConcentration (unsigned elemIdx) const
 
Scalar getCalciteConcentration (unsigned elemIdx) const
 
const std::array< FlowsData< double >, 3 > & getFlowsn () const
 
bool hasFlowsn () const
 
bool hasFlows () const
 
bool hasBlockFlows () const
 
bool anyFlows () const
 
const std::array< FlowsData< double >, 3 > & getFloresn () const
 
bool hasFloresn () const
 
bool hasFlores () const
 
bool anyFlores () const
 
bool needInterfaceFluxes (const bool isSubStep) const
 
const std::map< std::pair< std::string, int >, double > & getBlockData ()
 
const Inplace & initialInplace () const
 
bool localDataValid () const
 
void invalidateLocalData ()
 
void validateLocalData ()
 
void setCnvData (const std::vector< std::vector< int > > &data)
 
void serializeOp (Serializer &serializer)
 
void assignGlobalFieldsToSolution (data::Solution &sol)
 Assign fields that are in global numbering to the solution.
 

Static Public Member Functions

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

Additional Inherited Members

- Public Types inherited from Opm::GenericOutputBlackoilModule< GetPropType< TypeTag, Properties::FluidSystem > >
using Scalar = typename FluidSystem::Scalar
 
- Protected Types inherited from Opm::GenericOutputBlackoilModule< GetPropType< TypeTag, Properties::FluidSystem > >
enum  
 
enum  
 
enum  
 
enum  
 
enum  
 
enum  
 
enum  
 
enum  
 
using ScalarBuffer = std::vector< Scalar >
 
using StringBuffer = std::vector< std::string >
 
using Dir = FaceDir::DirEnum
 
- Protected Member Functions inherited from Opm::GenericOutputBlackoilModule< GetPropType< TypeTag, Properties::FluidSystem > >
 GenericOutputBlackoilModule (const EclipseState &eclState, const Schedule &schedule, const SummaryConfig &summaryConfig, const SummaryState &summaryState, const std::string &moduleVersionName, bool enableEnergy, bool enableTemperature, bool enableMech, bool enableSolvent, bool enablePolymer, bool enableFoam, bool enableBrine, bool enableSaltPrecipitation, bool enableExtbo, bool enableMICP)
 
void doAllocBuffers (unsigned bufferSize, unsigned reportStepNum, const bool substep, const bool log, const bool isRestart, const bool vapparsActive, const bool enableHysteresis, unsigned numTracers, unsigned numOutputNnc)
 
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)
 
- Static Protected Member Functions inherited from Opm::GenericOutputBlackoilModule< GetPropType< TypeTag, Properties::FluidSystem > >
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 inherited from Opm::GenericOutputBlackoilModule< GetPropType< TypeTag, Properties::FluidSystem > >
const EclipseState & eclState_
 
const Schedule & schedule_
 
const SummaryState & summaryState_
 
SummaryConfig summaryConfig_
 
InterRegFlowMap interRegionFlows_
 
LogOutputHelper< Scalar > logOutput_
 
bool enableEnergy_
 
bool enableTemperature_
 
bool enableMech_
 
bool enableSolvent_
 
bool enablePolymer_
 
bool enableFoam_
 
bool enableBrine_
 
bool enableSaltPrecipitation_
 
bool enableExtbo_
 
bool enableMICP_
 
bool forceDisableFipOutput_
 
bool forceDisableFipresvOutput_
 
bool outputFipRestart_
 
bool computeFip_
 
bool anyFlows_
 
bool anyFlores_
 
bool blockFlows_
 
bool enableFlows_
 
bool enableFlores_
 
bool enableFlowsn_
 
bool enableFloresn_
 
std::unordered_map< Inplace::Phase, ScalarBuffer > fip_
 
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_
 
ScalarBuffer extboX_
 
ScalarBuffer extboY_
 
ScalarBuffer extboZ_
 
ScalarBuffer mFracOil_
 
ScalarBuffer mFracGas_
 
ScalarBuffer mFracCo2_
 
ScalarBuffer soMax_
 
ScalarBuffer pcSwMdcOw_
 
ScalarBuffer krnSwMdcOw_
 
ScalarBuffer pcSwMdcGo_
 
ScalarBuffer krnSwMdcGo_
 
ScalarBuffer ppcw_
 
ScalarBuffer gasDissolutionFactor_
 
ScalarBuffer oilVaporizationFactor_
 
ScalarBuffer bubblePointPressure_
 
ScalarBuffer dewPointPressure_
 
ScalarBuffer rockCompPorvMultiplier_
 
ScalarBuffer swMax_
 
ScalarBuffer minimumOilPressure_
 
ScalarBuffer saturatedOilFormationVolumeFactor_
 
ScalarBuffer rockCompTransMultiplier_
 
ScalarBuffer cMicrobes_
 
ScalarBuffer cOxygen_
 
ScalarBuffer cUrea_
 
ScalarBuffer cBiofilm_
 
ScalarBuffer cCalcite_
 
ScalarBuffer pcgw_
 
ScalarBuffer pcow_
 
ScalarBuffer pcog_
 
ScalarBuffer mechPotentialForce_
 
ScalarBuffer mechPotentialPressForce_
 
ScalarBuffer mechPotentialTempForce_
 
ScalarBuffer dispX_
 
ScalarBuffer dispY_
 
ScalarBuffer dispZ_
 
ScalarBuffer stressXX_
 
ScalarBuffer stressYY_
 
ScalarBuffer stressZZ_
 
ScalarBuffer stressXY_
 
ScalarBuffer stressXZ_
 
ScalarBuffer stressYZ_
 
ScalarBuffer delstressXX_
 
ScalarBuffer delstressYY_
 
ScalarBuffer delstressZZ_
 
ScalarBuffer delstressXY_
 
ScalarBuffer delstressXZ_
 
ScalarBuffer delstressYZ_
 
ScalarBuffer strainXX_
 
ScalarBuffer strainYY_
 
ScalarBuffer strainZZ_
 
ScalarBuffer strainXY_
 
ScalarBuffer strainXZ_
 
ScalarBuffer strainYZ_
 
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_
 
std::vector< ScalarBuffer > tracerConcentrations_
 
std::array< ScalarBuffer, numPhases > residual_
 
std::array< std::array< ScalarBuffer, numPhases >, 6 > flows_
 
std::array< std::array< ScalarBuffer, numPhases >, 6 > flores_
 
std::array< FlowsData< double >, 3 > floresn_
 
std::array< FlowsData< double >, 3 > flowsn_
 
std::map< std::size_t, Scalar > oilConnectionPressures_
 
std::map< std::size_t, Scalar > waterConnectionSaturations_
 
std::map< std::size_t, Scalar > gasConnectionSaturations_
 
std::map< std::pair< std::string, int >, double > blockData_
 
std::vector< std::vector< int > > cnvData_
 Data for CNV_xxx arrays.
 
std::optional< Inplace > initialInplace_
 
bool local_data_valid_
 
std::optional< RegionPhasePoreVolAverageregionAvgDensity_
 

Detailed Description

template<class TypeTag>
class Opm::OutputBlackOilModule< TypeTag >

Output module for the results black oil model writing in ECL binary format.

Member Function Documentation

◆ processFluxes()

template<class TypeTag >
template<class ActiveIndex , class CartesianIndex >
void Opm::OutputBlackOilModule< TypeTag >::processFluxes ( const ElementContext &  elemCtx,
ActiveIndex &&  activeIndex,
CartesianIndex &&  cartesianIndex 
)
inline

Capture connection fluxes, particularly to account for inter-region flows.

Template Parameters
ActiveIndexCallable type, typically a lambda, that enables retrieving the active index, on the local MPI rank, of a particular cell/element. Must support a function call operator of the form
int operator()(const Element& elem) const
CartesianIndexCallable type, typically a lambda, that enables retrieving the globally unique Cartesian index of a particular cell/element given its active index on the local MPI rank. Must support a function call operator of the form
int operator()(const int activeIndex) const
Parameters
[in]elemCtxPrimary lookup structure for per-cell/element dynamic information.
[in]activeIndexMapping from cell/elements to linear indices on local MPI rank.
[in]cartesianIndexMapping from active index on local MPI rank to globally unique Cartesian cell/element index.

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