diff --git a/ebos/eclproblem.hh b/ebos/eclproblem.hh index 9add9748c..db61bc199 100644 --- a/ebos/eclproblem.hh +++ b/ebos/eclproblem.hh @@ -2366,7 +2366,6 @@ private: const auto& simulator = this->simulator(); const auto& vanguard = simulator.vanguard(); const auto& eclState = vanguard.eclState(); - const auto& eclGrid = eclState.getInputGrid(); size_t numDof = this->model().numGridDof(); @@ -2375,37 +2374,10 @@ private: const auto& fp = eclState.fieldProps(); const std::vector porvData = fp.porv(true); const std::vector actnumData = fp.actnum(); - int nx = eclGrid.getNX(); - int ny = eclGrid.getNY(); for (size_t dofIdx = 0; dofIdx < numDof; ++ dofIdx) { unsigned cartElemIdx = vanguard.cartesianIndex(dofIdx); Scalar poreVolume = porvData[cartElemIdx]; - // sum up the pore volume of the active cell and all inactive ones above it - // which were disabled due to their pore volume being too small. If energy is - // conserved, cells are not disabled due to a too small pore volume because - // such cells still store and conduct energy. - if (!enableEnergy && eclGrid.getMinpvMode() == Opm::MinpvMode::ModeEnum::OpmFIL) { - const std::vector& minPvVector = eclGrid.getMinpvVector(); - for (int aboveElemCartIdx = static_cast(cartElemIdx) - nx*ny; - aboveElemCartIdx >= 0; - aboveElemCartIdx -= nx*ny) - { - if (porvData[aboveElemCartIdx] >= minPvVector[aboveElemCartIdx]) - // the cartesian element above exhibits a pore volume which larger or - // equal to the minimum one - break; - - Scalar aboveElemVolume = eclGrid.getCellVolume(aboveElemCartIdx); - if (actnumData[aboveElemCartIdx] == 0 && aboveElemVolume > 1e-3) - // stop at explicitly disabled elements, but only if their volume is - // greater than 10^-3 m^3 - break; - - poreVolume += porvData[aboveElemCartIdx]; - } - } - // we define the porosity as the accumulated pore volume divided by the // geometric volume of the element. Note that -- in pathetic cases -- it can // be larger than 1.0! diff --git a/ebos/ecltransmissibility.hh b/ebos/ecltransmissibility.hh index ea86a999a..b8fba39a4 100644 --- a/ebos/ecltransmissibility.hh +++ b/ebos/ecltransmissibility.hh @@ -136,8 +136,7 @@ public: ElementMapper elemMapper(gridView, Dune::mcmgElementLayout()); // get the ntg values, the ntg values are modified for the cells merged with minpv - std::vector ntg; - minPvFillNtg_(ntg); + const std::vector& ntg = eclState.fieldProps().get_global_double("NTG"); unsigned numElements = elemMapper.size(); @@ -844,53 +843,6 @@ private: } } - void minPvFillNtg_(std::vector& averageNtg) const - { - // compute volume weighted arithmetic average of NTG for - // cells merged as an result of minpv. - const auto& eclState = vanguard_.eclState(); - const auto& eclGrid = eclState.getInputGrid(); - bool opmfil = eclGrid.getMinpvMode() == Opm::MinpvMode::OpmFIL; - std::vector ntg; - - ntg = eclState.fieldProps().get_global_double("NTG"); - // just return the unmodified ntg if opmfil is not used - averageNtg = ntg; - if (!opmfil) - return; - - const auto& cartMapper = vanguard_.cartesianIndexMapper(); - const auto& cartDims = cartMapper.cartesianDimensions(); - const auto& actnum = eclState.fieldProps().actnum(); - const auto& porv = eclState.fieldProps().porv(true); - assert(dimWorld > 1); - const size_t nxny = cartDims[0] * cartDims[1]; - for (size_t cartesianCellIdx = 0; cartesianCellIdx < ntg.size(); ++cartesianCellIdx) { - // use the original ntg values for the inactive cells - if (!actnum[cartesianCellIdx]) - continue; - - // Average properties as long as there exist cells above - // that has pore volume less than the MINPV threshold - const double cellVolume = eclGrid.getCellVolume(cartesianCellIdx); - double ntgCellVolume = ntg[cartesianCellIdx] * cellVolume; - double totalCellVolume = cellVolume; - int cartesianCellIdxAbove = cartesianCellIdx - nxny; - while (cartesianCellIdxAbove >= 0 && - actnum[cartesianCellIdxAbove] > 0 && - porv[cartesianCellIdxAbove] < eclGrid.getMinpvVector()[cartesianCellIdxAbove]) - { - // Volume weighted arithmetic average of NTG - const double cellAboveVolume = eclGrid.getCellVolume(cartesianCellIdxAbove); - totalCellVolume += cellAboveVolume; - ntgCellVolume += ntg[cartesianCellIdxAbove]*cellAboveVolume; - cartesianCellIdxAbove -= nxny; - } - - averageNtg[cartesianCellIdx] = ntgCellVolume / totalCellVolume; - } - } - const Vanguard& vanguard_; Scalar transmissibilityThreshold_; std::vector permeability_;