mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Merge pull request #422 from andlaus/satfunc_refactoring
add a few missing "#include <Evaluation.hpp>"
This commit is contained in:
commit
59fccb2f86
@ -114,6 +114,7 @@ list (APPEND PUBLIC_HEADER_FILES
|
|||||||
opm/autodiff/SolventPropsAdFromDeck.hpp
|
opm/autodiff/SolventPropsAdFromDeck.hpp
|
||||||
opm/autodiff/BlackoilPropsAdInterface.hpp
|
opm/autodiff/BlackoilPropsAdInterface.hpp
|
||||||
opm/autodiff/CPRPreconditioner.hpp
|
opm/autodiff/CPRPreconditioner.hpp
|
||||||
|
opm/autodiff/createGlobalCellArray.hpp
|
||||||
opm/autodiff/BlackoilSolventModel.hpp
|
opm/autodiff/BlackoilSolventModel.hpp
|
||||||
opm/autodiff/BlackoilSolventModel_impl.hpp
|
opm/autodiff/BlackoilSolventModel_impl.hpp
|
||||||
opm/autodiff/BlackoilSolventState.hpp
|
opm/autodiff/BlackoilSolventState.hpp
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
#include <opm/core/grid/cornerpoint_grid.h>
|
#include <opm/core/grid/cornerpoint_grid.h>
|
||||||
#include <opm/core/grid/GridManager.hpp>
|
#include <opm/core/grid/GridManager.hpp>
|
||||||
#include <opm/autodiff/GridHelpers.hpp>
|
#include <opm/autodiff/GridHelpers.hpp>
|
||||||
|
#include <opm/autodiff/createGlobalCellArray.hpp>
|
||||||
|
|
||||||
#include <opm/core/wells.h>
|
#include <opm/core/wells.h>
|
||||||
#include <opm/core/wells/WellsManager.hpp>
|
#include <opm/core/wells/WellsManager.hpp>
|
||||||
@ -251,15 +252,22 @@ try
|
|||||||
const PhaseUsage pu = Opm::phaseUsageFromDeck(deck);
|
const PhaseUsage pu = Opm::phaseUsageFromDeck(deck);
|
||||||
Opm::BlackoilOutputWriter outputWriter(grid, param, eclipseState, pu );
|
Opm::BlackoilOutputWriter outputWriter(grid, param, eclipseState, pu );
|
||||||
|
|
||||||
|
std::vector<int> compressedToCartesianIdx;
|
||||||
|
Opm::createGlobalCellArray(grid, compressedToCartesianIdx);
|
||||||
|
|
||||||
|
typedef BlackoilPropsAdFromDeck::MaterialLawManager MaterialLawManager;
|
||||||
|
auto materialLawManager = std::make_shared<MaterialLawManager>();
|
||||||
|
materialLawManager->initFromDeck(deck, eclipseState, compressedToCartesianIdx);
|
||||||
|
|
||||||
// Rock and fluid init
|
// Rock and fluid init
|
||||||
BlackoilPropertiesFromDeck props( deck, eclipseState,
|
BlackoilPropertiesFromDeck props( deck, eclipseState, materialLawManager,
|
||||||
Opm::UgGridHelpers::numCells(grid),
|
Opm::UgGridHelpers::numCells(grid),
|
||||||
Opm::UgGridHelpers::globalCell(grid),
|
Opm::UgGridHelpers::globalCell(grid),
|
||||||
Opm::UgGridHelpers::cartDims(grid),
|
Opm::UgGridHelpers::cartDims(grid),
|
||||||
Opm::UgGridHelpers::beginCellCentroids(grid),
|
Opm::UgGridHelpers::beginCellCentroids(grid),
|
||||||
Opm::UgGridHelpers::dimensions(grid), param);
|
Opm::UgGridHelpers::dimensions(grid), param);
|
||||||
|
|
||||||
BlackoilPropsAdFromDeck new_props( deck, eclipseState, grid );
|
BlackoilPropsAdFromDeck new_props( deck, eclipseState, materialLawManager, grid );
|
||||||
// check_well_controls = param.getDefault("check_well_controls", false);
|
// check_well_controls = param.getDefault("check_well_controls", false);
|
||||||
// max_well_control_iterations = param.getDefault("max_well_control_iterations", 10);
|
// max_well_control_iterations = param.getDefault("max_well_control_iterations", 10);
|
||||||
// Rock compressibility.
|
// Rock compressibility.
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
#include <opm/core/grid/cornerpoint_grid.h>
|
#include <opm/core/grid/cornerpoint_grid.h>
|
||||||
#include <opm/core/grid/GridManager.hpp>
|
#include <opm/core/grid/GridManager.hpp>
|
||||||
#include <opm/autodiff/GridHelpers.hpp>
|
#include <opm/autodiff/GridHelpers.hpp>
|
||||||
|
#include <opm/autodiff/createGlobalCellArray.hpp>
|
||||||
|
|
||||||
#include <opm/core/wells.h>
|
#include <opm/core/wells.h>
|
||||||
#include <opm/core/wells/WellsManager.hpp>
|
#include <opm/core/wells/WellsManager.hpp>
|
||||||
@ -247,15 +248,22 @@ try
|
|||||||
const PhaseUsage pu = Opm::phaseUsageFromDeck(deck);
|
const PhaseUsage pu = Opm::phaseUsageFromDeck(deck);
|
||||||
Opm::BlackoilOutputWriter outputWriter(grid, param, eclipseState, pu );
|
Opm::BlackoilOutputWriter outputWriter(grid, param, eclipseState, pu );
|
||||||
|
|
||||||
|
std::vector<int> compressedToCartesianIdx;
|
||||||
|
Opm::createGlobalCellArray(grid, compressedToCartesianIdx);
|
||||||
|
|
||||||
|
typedef BlackoilPropsAdFromDeck::MaterialLawManager MaterialLawManager;
|
||||||
|
auto materialLawManager = std::make_shared<MaterialLawManager>();
|
||||||
|
materialLawManager->initFromDeck(deck, eclipseState, compressedToCartesianIdx);
|
||||||
|
|
||||||
// Rock and fluid init
|
// Rock and fluid init
|
||||||
BlackoilPropertiesFromDeck props( deck, eclipseState,
|
BlackoilPropertiesFromDeck props( deck, eclipseState, materialLawManager,
|
||||||
Opm::UgGridHelpers::numCells(grid),
|
Opm::UgGridHelpers::numCells(grid),
|
||||||
Opm::UgGridHelpers::globalCell(grid),
|
Opm::UgGridHelpers::globalCell(grid),
|
||||||
Opm::UgGridHelpers::cartDims(grid),
|
Opm::UgGridHelpers::cartDims(grid),
|
||||||
Opm::UgGridHelpers::beginCellCentroids(grid),
|
Opm::UgGridHelpers::beginCellCentroids(grid),
|
||||||
Opm::UgGridHelpers::dimensions(grid), param);
|
Opm::UgGridHelpers::dimensions(grid), param);
|
||||||
|
|
||||||
BlackoilPropsAdFromDeck new_props( deck, eclipseState, grid );
|
BlackoilPropsAdFromDeck new_props( deck, eclipseState, materialLawManager, grid );
|
||||||
|
|
||||||
SolventPropsAdFromDeck solvent_props( deck, eclipseState, Opm::UgGridHelpers::numCells(grid), Opm::UgGridHelpers::globalCell(grid));
|
SolventPropsAdFromDeck solvent_props( deck, eclipseState, Opm::UgGridHelpers::numCells(grid), Opm::UgGridHelpers::globalCell(grid));
|
||||||
|
|
||||||
|
@ -50,10 +50,11 @@ namespace Opm
|
|||||||
/// Constructor wrapping an opm-core black oil interface.
|
/// Constructor wrapping an opm-core black oil interface.
|
||||||
BlackoilPropsAdFromDeck::BlackoilPropsAdFromDeck(Opm::DeckConstPtr deck,
|
BlackoilPropsAdFromDeck::BlackoilPropsAdFromDeck(Opm::DeckConstPtr deck,
|
||||||
Opm::EclipseStateConstPtr eclState,
|
Opm::EclipseStateConstPtr eclState,
|
||||||
|
std::shared_ptr<MaterialLawManager> materialLawManager,
|
||||||
const UnstructuredGrid& grid,
|
const UnstructuredGrid& grid,
|
||||||
const bool init_rock)
|
const bool init_rock)
|
||||||
{
|
{
|
||||||
init(deck, eclState, grid.number_of_cells, grid.global_cell, grid.cartdims,
|
init(deck, eclState, materialLawManager, grid.number_of_cells, grid.global_cell, grid.cartdims,
|
||||||
grid.cell_centroids, grid.dimensions, init_rock);
|
grid.cell_centroids, grid.dimensions, init_rock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,7 +65,49 @@ namespace Opm
|
|||||||
const Dune::CpGrid& grid,
|
const Dune::CpGrid& grid,
|
||||||
const bool init_rock )
|
const bool init_rock )
|
||||||
{
|
{
|
||||||
init(deck, eclState, grid.numCells(), static_cast<const int*>(&grid.globalCell()[0]),
|
auto materialLawManager = std::make_shared<MaterialLawManager>();
|
||||||
|
unsigned number_of_cells = grid.size(0);
|
||||||
|
std::vector<int> compressedToCartesianIdx(number_of_cells);
|
||||||
|
for (unsigned cellIdx = 0; cellIdx < number_of_cells; ++cellIdx) {
|
||||||
|
compressedToCartesianIdx[cellIdx] = grid.globalCell()[cellIdx];
|
||||||
|
}
|
||||||
|
materialLawManager->initFromDeck(deck, eclState, compressedToCartesianIdx);
|
||||||
|
init(deck, eclState, materialLawManager, grid.numCells(), static_cast<const int*>(&grid.globalCell()[0]),
|
||||||
|
static_cast<const int*>(&grid.logicalCartesianSize()[0]),
|
||||||
|
grid.beginCellCentroids(), Dune::CpGrid::dimension, init_rock);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/// Constructor wrapping an opm-core black oil interface.
|
||||||
|
BlackoilPropsAdFromDeck::BlackoilPropsAdFromDeck(Opm::DeckConstPtr deck,
|
||||||
|
Opm::EclipseStateConstPtr eclState,
|
||||||
|
const UnstructuredGrid& grid,
|
||||||
|
const bool init_rock)
|
||||||
|
{
|
||||||
|
auto materialLawManager = std::make_shared<MaterialLawManager>();
|
||||||
|
std::vector<int> compressedToCartesianIdx(grid.number_of_cells);
|
||||||
|
for (unsigned cellIdx = 0; cellIdx < grid.number_of_cells; ++cellIdx) {
|
||||||
|
if (grid.global_cell) {
|
||||||
|
compressedToCartesianIdx[cellIdx] = grid.global_cell[cellIdx];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
compressedToCartesianIdx[cellIdx] = cellIdx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
materialLawManager->initFromDeck(deck, eclState, compressedToCartesianIdx);
|
||||||
|
init(deck, eclState, materialLawManager, grid.number_of_cells, grid.global_cell, grid.cartdims,
|
||||||
|
grid.cell_centroids, grid.dimensions, init_rock);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_DUNE_CORNERPOINT
|
||||||
|
/// Constructor wrapping an opm-core black oil interface.
|
||||||
|
BlackoilPropsAdFromDeck::BlackoilPropsAdFromDeck(Opm::DeckConstPtr deck,
|
||||||
|
Opm::EclipseStateConstPtr eclState,
|
||||||
|
std::shared_ptr<MaterialLawManager> materialLawManager,
|
||||||
|
const Dune::CpGrid& grid,
|
||||||
|
const bool init_rock )
|
||||||
|
{
|
||||||
|
init(deck, eclState, materialLawManager, grid.numCells(), static_cast<const int*>(&grid.globalCell()[0]),
|
||||||
static_cast<const int*>(&grid.logicalCartesianSize()[0]),
|
static_cast<const int*>(&grid.logicalCartesianSize()[0]),
|
||||||
grid.beginCellCentroids(), Dune::CpGrid::dimension, init_rock);
|
grid.beginCellCentroids(), Dune::CpGrid::dimension, init_rock);
|
||||||
}
|
}
|
||||||
@ -81,6 +124,9 @@ BlackoilPropsAdFromDeck::BlackoilPropsAdFromDeck(const BlackoilPropsAdFromDeck&
|
|||||||
if (number_of_cells < 0) {
|
if (number_of_cells < 0) {
|
||||||
OPM_THROW(std::runtime_error, "The number of cells is has to be larger than 0.");
|
OPM_THROW(std::runtime_error, "The number of cells is has to be larger than 0.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
materialLawManager_ = props.materialLawManager_;
|
||||||
|
|
||||||
// Copy properties that do not depend on the postion within the grid.
|
// Copy properties that do not depend on the postion within the grid.
|
||||||
rock_ = props.rock_;
|
rock_ = props.rock_;
|
||||||
satprops_ = props.satprops_;
|
satprops_ = props.satprops_;
|
||||||
@ -99,6 +145,7 @@ BlackoilPropsAdFromDeck::BlackoilPropsAdFromDeck(const BlackoilPropsAdFromDeck&
|
|||||||
template <class CentroidIterator>
|
template <class CentroidIterator>
|
||||||
void BlackoilPropsAdFromDeck::init(Opm::DeckConstPtr deck,
|
void BlackoilPropsAdFromDeck::init(Opm::DeckConstPtr deck,
|
||||||
Opm::EclipseStateConstPtr eclState,
|
Opm::EclipseStateConstPtr eclState,
|
||||||
|
std::shared_ptr<MaterialLawManager> materialLawManager,
|
||||||
int number_of_cells,
|
int number_of_cells,
|
||||||
const int* global_cell,
|
const int* global_cell,
|
||||||
const int* cart_dims,
|
const int* cart_dims,
|
||||||
@ -106,6 +153,8 @@ BlackoilPropsAdFromDeck::BlackoilPropsAdFromDeck(const BlackoilPropsAdFromDeck&
|
|||||||
int dimension,
|
int dimension,
|
||||||
const bool init_rock)
|
const bool init_rock)
|
||||||
{
|
{
|
||||||
|
materialLawManager_ = materialLawManager;
|
||||||
|
|
||||||
// retrieve the cell specific PVT table index from the deck
|
// retrieve the cell specific PVT table index from the deck
|
||||||
// and using the grid...
|
// and using the grid...
|
||||||
extractPvtTableIndex(cellPvtRegionIdx_, deck, number_of_cells, global_cell);
|
extractPvtTableIndex(cellPvtRegionIdx_, deck, number_of_cells, global_cell);
|
||||||
@ -239,7 +288,7 @@ BlackoilPropsAdFromDeck::BlackoilPropsAdFromDeck(const BlackoilPropsAdFromDeck&
|
|||||||
SaturationPropsFromDeck* ptr
|
SaturationPropsFromDeck* ptr
|
||||||
= new SaturationPropsFromDeck();
|
= new SaturationPropsFromDeck();
|
||||||
satprops_.reset(ptr);
|
satprops_.reset(ptr);
|
||||||
ptr->init(deck, eclState, number_of_cells, global_cell, begin_cell_centroids, dimension);
|
ptr->init(deck, eclState, materialLawManager_, number_of_cells, global_cell, begin_cell_centroids, dimension);
|
||||||
|
|
||||||
if (phase_usage_.num_phases != satprops_->numPhases()) {
|
if (phase_usage_.num_phases != satprops_->numPhases()) {
|
||||||
OPM_THROW(std::runtime_error, "BlackoilPropsAdFromDeck::BlackoilPropsAdFromDeck() - "
|
OPM_THROW(std::runtime_error, "BlackoilPropsAdFromDeck::BlackoilPropsAdFromDeck() - "
|
||||||
|
@ -59,14 +59,70 @@ namespace Opm
|
|||||||
{
|
{
|
||||||
friend class BlackoilPropsDataHandle;
|
friend class BlackoilPropsDataHandle;
|
||||||
public:
|
public:
|
||||||
/// Constructor wrapping an opm-core black oil interface.
|
typedef typename SaturationPropsFromDeck::MaterialLawManager MaterialLawManager;
|
||||||
|
|
||||||
|
/// Constructor to create a blackoil properties from an ECL deck.
|
||||||
|
///
|
||||||
|
/// The materialLawManager parameter represents the object from opm-material
|
||||||
|
/// which handles the creating and updating parameter objects for the capillary
|
||||||
|
/// pressure/relperm relations for each grid cell. This object is created
|
||||||
|
/// internally for the constructors below, but if it is already available
|
||||||
|
/// externally some performance can be gained by creating it only once.
|
||||||
|
///
|
||||||
|
/// \param deck The unprocessed ECL deck from opm-parser
|
||||||
|
/// \param eclState The processed ECL deck from opm-parser
|
||||||
|
/// \param materialLawManager The container for the material law parameter objects
|
||||||
|
/// \param grid The grid upon which the simulation is run on.
|
||||||
|
/// \param init_rock If true the rock properties (rock compressibility and
|
||||||
|
/// reference pressure) are read from the deck
|
||||||
|
BlackoilPropsAdFromDeck(Opm::DeckConstPtr deck,
|
||||||
|
Opm::EclipseStateConstPtr eclState,
|
||||||
|
std::shared_ptr<MaterialLawManager> materialLawManager,
|
||||||
|
const UnstructuredGrid& grid,
|
||||||
|
const bool init_rock = true );
|
||||||
|
|
||||||
|
#ifdef HAVE_DUNE_CORNERPOINT
|
||||||
|
/// Constructor to create a blackoil properties from an ECL deck.
|
||||||
|
///
|
||||||
|
/// The materialLawManager parameter represents the object from opm-material
|
||||||
|
/// which handles the creating and updating parameter objects for the capillary
|
||||||
|
/// pressure/relperm relations for each grid cell. This object is created
|
||||||
|
/// internally for the constructors below, but if it is already available
|
||||||
|
/// externally some performance can be gained by creating it only once.
|
||||||
|
///
|
||||||
|
/// \param deck The unprocessed ECL deck from opm-parser
|
||||||
|
/// \param eclState The processed ECL deck from opm-parser
|
||||||
|
/// \param materialLawManager The container for the material law parameter objects
|
||||||
|
/// \param grid The grid upon which the simulation is run on.
|
||||||
|
/// \param init_rock If true the rock properties (rock compressibility and
|
||||||
|
/// reference pressure) are read from the deck
|
||||||
|
BlackoilPropsAdFromDeck(Opm::DeckConstPtr deck,
|
||||||
|
Opm::EclipseStateConstPtr eclState,
|
||||||
|
std::shared_ptr<MaterialLawManager> materialLawManager,
|
||||||
|
const Dune::CpGrid& grid,
|
||||||
|
const bool init_rock = true );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/// Constructor to create a blackoil properties from an ECL deck.
|
||||||
|
///
|
||||||
|
/// \param deck The unprocessed ECL deck from opm-parser
|
||||||
|
/// \param eclState The processed ECL deck from opm-parser
|
||||||
|
/// \param grid The grid upon which the simulation is run on.
|
||||||
|
/// \param init_rock If true the rock properties (rock compressibility and
|
||||||
|
/// reference pressure) are read from the deck
|
||||||
BlackoilPropsAdFromDeck(Opm::DeckConstPtr deck,
|
BlackoilPropsAdFromDeck(Opm::DeckConstPtr deck,
|
||||||
Opm::EclipseStateConstPtr eclState,
|
Opm::EclipseStateConstPtr eclState,
|
||||||
const UnstructuredGrid& grid,
|
const UnstructuredGrid& grid,
|
||||||
const bool init_rock = true );
|
const bool init_rock = true );
|
||||||
|
|
||||||
#ifdef HAVE_DUNE_CORNERPOINT
|
#ifdef HAVE_DUNE_CORNERPOINT
|
||||||
/// Constructor wrapping an opm-core black oil interface.
|
/// Constructor to create a blackoil properties from an ECL deck.
|
||||||
|
///
|
||||||
|
/// \param deck The unprocessed ECL deck from opm-parser
|
||||||
|
/// \param eclState The processed ECL deck from opm-parser
|
||||||
|
/// \param grid The grid upon which the simulation is run on.
|
||||||
|
/// \param init_rock If true the rock properties (rock compressibility and
|
||||||
|
/// reference pressure) are read from the deck
|
||||||
BlackoilPropsAdFromDeck(Opm::DeckConstPtr deck,
|
BlackoilPropsAdFromDeck(Opm::DeckConstPtr deck,
|
||||||
Opm::EclipseStateConstPtr eclState,
|
Opm::EclipseStateConstPtr eclState,
|
||||||
const Dune::CpGrid& grid,
|
const Dune::CpGrid& grid,
|
||||||
@ -305,6 +361,7 @@ namespace Opm
|
|||||||
template <class CentroidIterator>
|
template <class CentroidIterator>
|
||||||
void init(Opm::DeckConstPtr deck,
|
void init(Opm::DeckConstPtr deck,
|
||||||
Opm::EclipseStateConstPtr eclState,
|
Opm::EclipseStateConstPtr eclState,
|
||||||
|
std::shared_ptr<MaterialLawManager> materialLawManager,
|
||||||
int number_of_cells,
|
int number_of_cells,
|
||||||
const int* global_cell,
|
const int* global_cell,
|
||||||
const int* cart_dims,
|
const int* cart_dims,
|
||||||
@ -327,9 +384,11 @@ namespace Opm
|
|||||||
void mapPvtRegions(const std::vector<int>& cells) const;
|
void mapPvtRegions(const std::vector<int>& cells) const;
|
||||||
|
|
||||||
RockFromDeck rock_;
|
RockFromDeck rock_;
|
||||||
|
|
||||||
// This has to be a shared pointer as we must
|
// This has to be a shared pointer as we must
|
||||||
// be able to make a copy of *this in the parallel case.
|
// be able to make a copy of *this in the parallel case.
|
||||||
std::shared_ptr<SaturationPropsInterface> satprops_;
|
std::shared_ptr<MaterialLawManager> materialLawManager_;
|
||||||
|
std::shared_ptr<SaturationPropsFromDeck> satprops_;
|
||||||
|
|
||||||
PhaseUsage phase_usage_;
|
PhaseUsage phase_usage_;
|
||||||
// bool has_vapoil_;
|
// bool has_vapoil_;
|
||||||
|
49
opm/autodiff/createGlobalCellArray.hpp
Normal file
49
opm/autodiff/createGlobalCellArray.hpp
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015 Andreas Lauser
|
||||||
|
|
||||||
|
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/>.
|
||||||
|
*/
|
||||||
|
#ifndef OPM_CREATE_GLOBAL_CELL_ARRAY_HPP
|
||||||
|
#define OPM_CREATE_GLOBAL_CELL_ARRAY_HPP
|
||||||
|
|
||||||
|
#include <opm/autodiff/GridHelpers.hpp>
|
||||||
|
|
||||||
|
namespace Opm
|
||||||
|
{
|
||||||
|
/*!
|
||||||
|
* \brief Create a mapping from a global cell index of a grid to the logically
|
||||||
|
* Cartesian index of the ECL deck.
|
||||||
|
*/
|
||||||
|
template <class Grid>
|
||||||
|
void createGlobalCellArray(const Grid &grid, std::vector<int>& dest)
|
||||||
|
{
|
||||||
|
int numCells = Opm::UgGridHelpers::numCells(grid);
|
||||||
|
dest.resize(numCells);
|
||||||
|
const auto& globalCell = Opm::UgGridHelpers::globalCell(grid);
|
||||||
|
std::vector<int> compressedToCartesianIdx(numCells);
|
||||||
|
for (unsigned cellIdx = 0; cellIdx < numCells; ++cellIdx) {
|
||||||
|
if (globalCell) {
|
||||||
|
dest[cellIdx] = globalCell[cellIdx];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dest[cellIdx] = cellIdx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user