Opm::MinpvProcessor Class Reference

Transform a corner-point grid ZCORN field to account for MINPV processing. More...

#include <MinpvProcessor.hpp>

Classes

struct  Result
 

Public Member Functions

 MinpvProcessor (const int nx, const int ny, const int nz)
 Create a processor. More...
 
Result process (const std::vector< double > &thickness, const double z_tolerance, const double max_gap, const std::vector< double > &pv, const std::vector< double > &minpvv, const std::vector< int > &actnum, const bool mergeMinPVCells, double *zcorn, const bool pinchNOGAP=false, const bool pinchOption4ALL=false, const std::vector< double > &permz={}, const std::function< double(int)> &multZ=[](int){ return 0;}, const double tolerance_unique_points=0) const
 

Detailed Description

Transform a corner-point grid ZCORN field to account for MINPV processing.

Constructor & Destructor Documentation

◆ MinpvProcessor()

Opm::MinpvProcessor::MinpvProcessor ( const int  nx,
const int  ny,
const int  nz 
)

Create a processor.

Parameters
[in]nxlogical cartesian number of cells in I-direction
[in]nylogical cartesian number of cells in J-direction
[in]nzlogical cartesian number of cells in K-direction

Member Function Documentation

◆ process()

Result Opm::MinpvProcessor::process ( const std::vector< double > &  thickness,
const double  z_tolerance,
const double  max_gap,
const std::vector< double > &  pv,
const std::vector< double > &  minpvv,
const std::vector< int > &  actnum,
const bool  mergeMinPVCells,
double *  zcorn,
const bool  pinchNOGAP = false,
const bool  pinchOption4ALL = false,
const std::vector< double > &  permz = {},
const std::function< double(int)> &  multZ = [](int){ return 0;},
const double  tolerance_unique_points = 0 
) const

Change zcorn so that it respects the minpv property.

Parameters
[in]thicknessthickness of the cell
[in]z_tolerancecells with thickness below z_tolerance will be bypassed in the minpv process.
[in]max_gapMaximum gap of pinched out layers allowed when creating NNCs
[in]pvpore volumes of all logical cartesian cells
[in]minpvvminimum pore volume to accept a cell
[in]actnumactive cells, inactive cells are not considered
[in]mergeMinPVCellsflag to determine whether cells below minpv should be included in the cell below
[in,out]zcornZCORN array to be manipulated
[in]pinchNOGAPwhether PINCH has option NOGAP (default false)
[in]pinchOption4ALLWhether option 4 of PINCH is set to all. In that case we do not create NNCs if zero transmissibility in Z direction betwenn the cells is expected. (default: false)
[in]permzCell permeability in Z direction. \oaram[in] multz transmissiblity multipliers in Z direction After processing, all cells that have lower pore volume than minpv will have the zcorn numbers changed so they are zero-thickness. Any cell below will be changed to include the deleted volume if mergeMinPCCells is true els the volume will be lost
[in]tolerance_unique_pointsTolerance used to identify points based on their cooridinates.

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