diff --git a/ebos/ecloutputblackoilmodule.hh b/ebos/ecloutputblackoilmodule.hh index ac26e0cde..092dcc6eb 100644 --- a/ebos/ecloutputblackoilmodule.hh +++ b/ebos/ecloutputblackoilmodule.hh @@ -1744,24 +1744,20 @@ private: void createLocalFipnum_() { - const std::vector<int> fipnumGlobal = simulator_.vanguard().eclState().fieldProps().get_global_int("FIPNUM"); - // Get compressed cell fipnum. const auto& gridView = simulator_.vanguard().gridView(); - unsigned numElements = gridView.size(/*codim=*/0); - fipnum_.resize(numElements, 0.0); - if (!fipnumGlobal.empty()) { - ElementContext elemCtx(simulator_); - ElementIterator elemIt = gridView.template begin</*codim=*/0>(); - const ElementIterator& elemEndIt = gridView.template end</*codim=*/0>(); - for (; elemIt != elemEndIt; ++elemIt) { - const Element& elem = *elemIt; - if (elem.partitionType() != Dune::InteriorEntity) - continue; // assign no fipnum regions to ghost elements + if (simulator_.vanguard().eclState().fieldProps().has_int("FIPNUM")) + fipnum_ = simulator_.vanguard().eclState().fieldProps().get_int("FIPNUM"); + else + fipnum_.resize(gridView.size(/*codim=*/0), 1); - elemCtx.updatePrimaryStencil(elem); - const unsigned elemIdx = elemCtx.globalSpaceIndex(/*spaceIdx=*/0, /*timeIdx=*/0); - fipnum_[elemIdx] = fipnumGlobal[simulator_.vanguard().cartesianIndex(elemIdx)]; - } + ElementContext elemCtx(simulator_); + ElementIterator elemIt = simulator_.gridView().template begin</*codim=*/0>(); + const ElementIterator& elemEndIt = simulator_.gridView().template end</*codim=*/0>(); + size_t elemIdx = 0; + for (; elemIt != elemEndIt; ++elemIt, ++elemIdx) { + const Element& elem = *elemIt; + if (elem.partitionType() != Dune::InteriorEntity) + fipnum_[elemIdx] = 0; } }