From 1ca5300f6efff833c6baab7d9b2e30fed6065135 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atgeirr=20Fl=C3=B8=20Rasmussen?= Date: Tue, 15 Sep 2015 14:45:07 +0200 Subject: [PATCH] Move implementation to .cpp file. --- CMakeLists_files.cmake | 1 + opm/core/utility/compressedToCartesian.cpp | 48 ++++++++++++++++++++++ opm/core/utility/compressedToCartesian.hpp | 14 +------ 3 files changed, 50 insertions(+), 13 deletions(-) create mode 100644 opm/core/utility/compressedToCartesian.cpp diff --git a/CMakeLists_files.cmake b/CMakeLists_files.cmake index 28648cbc..1a6c4bb0 100644 --- a/CMakeLists_files.cmake +++ b/CMakeLists_files.cmake @@ -124,6 +124,7 @@ list (APPEND MAIN_SOURCE_FILES opm/core/transport/reorder/TransportSolverTwophaseReorder.cpp opm/core/transport/reorder/reordersequence.cpp opm/core/transport/reorder/tarjan.c + opm/core/utility/compressedToCartesian.cpp opm/core/utility/Event.cpp opm/core/utility/MonotCubicInterpolator.cpp opm/core/utility/StopWatch.cpp diff --git a/opm/core/utility/compressedToCartesian.cpp b/opm/core/utility/compressedToCartesian.cpp new file mode 100644 index 00000000..641ee817 --- /dev/null +++ b/opm/core/utility/compressedToCartesian.cpp @@ -0,0 +1,48 @@ +/* + Copyright 2015 SINTEF ICT, Applied Mathematics. + + 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 . +*/ + + +#include +#include + +namespace Opm +{ + + // Construct explicit mapping from active/compressed to logical cartesian + // indices, either as given in global_cell or as { 0, 1, 2, ....} if null. + // \param[in] num_cells The number of active cells. + // \param[in] global_cell Either null, or an array of size num_cells. + // \return A vector containing the same data as global_cell, + // or the sequence { 0, 1, ... , num_cells - 1 } if + // global_cell was null. + std::vector compressedToCartesian(const int num_cells, + const int* global_cell) + { + std::vector retval; + if (global_cell) { + retval.assign(global_cell, global_cell + num_cells); + } else { + retval.resize(num_cells); + std::iota(retval.begin(), retval.end(), 0); + } + return retval; + } + + +} // namespace Opm diff --git a/opm/core/utility/compressedToCartesian.hpp b/opm/core/utility/compressedToCartesian.hpp index 9b84e2fc..83a5ebc1 100644 --- a/opm/core/utility/compressedToCartesian.hpp +++ b/opm/core/utility/compressedToCartesian.hpp @@ -33,20 +33,8 @@ namespace Opm // \return A vector containing the same data as global_cell, // or the sequence { 0, 1, ... , num_cells - 1 } if // global_cell was null. - inline std::vector compressedToCartesian(const int num_cells, - const int* global_cell) - { - std::vector retval; - if (global_cell) { - retval.assign(global_cell, global_cell + num_cells); - } else { - retval.resize(num_cells); - std::iota(retval.begin(), retval.end(), 0); - } - return retval; - } - + const int* global_cell); } // namespace Opm