Merge pull request #3746 from bska/remove-unused-sparse-schedule-grid
Remove SparseScheduleGrid Component
This commit is contained in:
@@ -1,101 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2021 Statoil ASA.
|
|
||||||
|
|
||||||
This file is part of the Open Porous Media project (OPM).
|
|
||||||
|
|
||||||
OPM is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
OPM is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <opm/input/eclipse/EclipseState/Grid/SparseScheduleGrid.hpp>
|
|
||||||
|
|
||||||
#include <stdexcept>
|
|
||||||
|
|
||||||
Opm::SparseScheduleGrid::Cell Opm::SparseScheduleGrid::loadCell(const Opm::ScheduleGrid& source, const Opm::ScheduleGrid::CellKey& key) {
|
|
||||||
std::size_t
|
|
||||||
i { key[0] } ,
|
|
||||||
j { key[1] } ,
|
|
||||||
k { key[2] } ;
|
|
||||||
|
|
||||||
std::optional<std::size_t> activeIndex {};
|
|
||||||
|
|
||||||
if (source.isCellActive(i, j, k)) {
|
|
||||||
activeIndex = source.getActiveIndex(i, j, k);
|
|
||||||
}
|
|
||||||
|
|
||||||
Cell loadedCell {
|
|
||||||
i, j, k,
|
|
||||||
source.getGlobalIndex(i, j, k),
|
|
||||||
activeIndex,
|
|
||||||
|
|
||||||
source.getCellDepth(i, j, k),
|
|
||||||
source.getCellDimensions(i, j, k),
|
|
||||||
};
|
|
||||||
|
|
||||||
return loadedCell;
|
|
||||||
}
|
|
||||||
|
|
||||||
Opm::SparseScheduleGrid::CellMap Opm::SparseScheduleGrid::loadCells(const Opm::ScheduleGrid& source, const std::set<Opm::ScheduleGrid::CellKey>& loadKeys) {
|
|
||||||
Opm::SparseScheduleGrid::CellMap loadedCells { } ;
|
|
||||||
|
|
||||||
for (const auto &key : loadKeys) {
|
|
||||||
loadedCells[key] = loadCell(source, key);
|
|
||||||
}
|
|
||||||
|
|
||||||
return loadedCells;
|
|
||||||
}
|
|
||||||
|
|
||||||
Opm::SparseScheduleGrid::SparseScheduleGrid(const Opm::ScheduleGrid& source, const std::set<Opm::ScheduleGrid::CellKey>& loadKeys)
|
|
||||||
: loadedCells { loadCells(source, loadKeys) }
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
const Opm::SparseScheduleGrid::Cell& Opm::SparseScheduleGrid::getCell(std::size_t i, std::size_t j, std::size_t k) const {
|
|
||||||
const auto iter { loadedCells.find({i, j, k}) } ;
|
|
||||||
|
|
||||||
if (iter == loadedCells.end()) {
|
|
||||||
throw std::logic_error("BUG: SparseScheduleGrid::getCell called on a sparse grid missing the cell");
|
|
||||||
}
|
|
||||||
|
|
||||||
return iter->second;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::size_t Opm::SparseScheduleGrid::getActiveIndex(std::size_t i, std::size_t j, std::size_t k) const {
|
|
||||||
const auto& cell { getCell(i, j, k) } ;
|
|
||||||
|
|
||||||
return cell.activeIndex.value();
|
|
||||||
}
|
|
||||||
|
|
||||||
std::size_t Opm::SparseScheduleGrid::getGlobalIndex(std::size_t i, std::size_t j, std::size_t k) const {
|
|
||||||
const auto& cell { getCell(i, j, k) } ;
|
|
||||||
|
|
||||||
return cell.globalIndex;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Opm::SparseScheduleGrid::isCellActive(std::size_t i, std::size_t j, std::size_t k) const {
|
|
||||||
const auto& cell { getCell(i, j, k) } ;
|
|
||||||
|
|
||||||
return bool(cell.activeIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
double Opm::SparseScheduleGrid::getCellDepth(std::size_t i, std::size_t j, std::size_t k) const {
|
|
||||||
const auto& cell { getCell(i, j, k) } ;
|
|
||||||
|
|
||||||
return cell.depth;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::array<double, 3> Opm::SparseScheduleGrid::getCellDimensions(std::size_t i, std::size_t j, std::size_t k) const {
|
|
||||||
const auto& cell { getCell(i, j, k) } ;
|
|
||||||
|
|
||||||
return cell.dimensions;
|
|
||||||
}
|
|
||||||
@@ -239,8 +239,6 @@ namespace Opm {
|
|||||||
} else {
|
} else {
|
||||||
this->iterateScheduleSection( 0, this->m_sched_deck.size(), parseContext, errors, grid, nullptr, "");
|
this->iterateScheduleSection( 0, this->m_sched_deck.size(), parseContext, errors, grid, nullptr, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
//m_grid = std::make_shared<SparseScheduleGrid>(grid, gridWrapper.getHitKeys());
|
|
||||||
}
|
}
|
||||||
catch (const OpmInputError& opm_error) {
|
catch (const OpmInputError& opm_error) {
|
||||||
OpmLog::error(opm_error.what());
|
OpmLog::error(opm_error.what());
|
||||||
|
|||||||
Reference in New Issue
Block a user