From 750e9aedf47121001533851c625ad37a0e2e48e4 Mon Sep 17 00:00:00 2001 From: Andreas Lauser Date: Mon, 31 Aug 2015 10:59:03 +0200 Subject: [PATCH] use a .cpp instead of an _impl.hpp file for SaturationPropsFromDeck this avoids having to include the "Evaluation.hpp" file as the first thing in the morning. --- ...k_impl.hpp => SaturationPropsFromDeck.cpp} | 36 ++------- .../props/satfunc/SaturationPropsFromDeck.hpp | 81 +++++++++---------- .../simulator/ExplicitArraysFluidState.hpp | 4 +- ...ExplicitArraysSatDerivativesFluidState.hpp | 4 + 4 files changed, 52 insertions(+), 73 deletions(-) rename opm/core/props/satfunc/{SaturationPropsFromDeck_impl.hpp => SaturationPropsFromDeck.cpp} (91%) diff --git a/opm/core/props/satfunc/SaturationPropsFromDeck_impl.hpp b/opm/core/props/satfunc/SaturationPropsFromDeck.cpp similarity index 91% rename from opm/core/props/satfunc/SaturationPropsFromDeck_impl.hpp rename to opm/core/props/satfunc/SaturationPropsFromDeck.cpp index 09cbae8e3..f0813a3d1 100644 --- a/opm/core/props/satfunc/SaturationPropsFromDeck_impl.hpp +++ b/opm/core/props/satfunc/SaturationPropsFromDeck.cpp @@ -16,17 +16,13 @@ You should have received a copy of the GNU General Public License along with OPM. If not, see . */ - -#ifndef OPM_SATURATIONPROPSFROMDECK_IMPL_HEADER_INCLUDED -#define OPM_SATURATIONPROPSFROMDECK_IMPL_HEADER_INCLUDED - +#include "config.h" #include #include -#include -#include -#include #include +#include +#include #include #include @@ -34,6 +30,8 @@ #include #include +#include "SaturationPropsFromDeck.hpp" + namespace Opm { @@ -42,13 +40,11 @@ namespace Opm /// Default constructor. - inline SaturationPropsFromDeck::SaturationPropsFromDeck() { } /// Initialize from deck. - inline void SaturationPropsFromDeck::init(Opm::DeckConstPtr deck, Opm::EclipseStateConstPtr eclipseState, std::shared_ptr materialLawManager, @@ -60,7 +56,6 @@ namespace Opm } /// Initialize from deck. - inline void SaturationPropsFromDeck::init(const PhaseUsage &phaseUsage, std::shared_ptr materialLawManager) { @@ -68,21 +63,7 @@ namespace Opm materialLawManager_ = materialLawManager; } - /// Initialize from deck. - template - void SaturationPropsFromDeck::init(Opm::DeckConstPtr deck, - Opm::EclipseStateConstPtr eclipseState, - std::shared_ptr materialLawManager, - int number_of_cells, - const int* global_cell, - const T& begin_cell_centroids, - int dimensions) - { - init(Opm::phaseUsageFromDeck(deck), materialLawManager); - } - /// \return P, the number of phases. - inline int SaturationPropsFromDeck::numPhases() const { return phaseUsage_.num_phases; @@ -101,7 +82,6 @@ namespace Opm /// The P^2 derivative matrix is /// m_{ij} = \frac{dkr_i}{ds^j}, /// and is output in Fortran order (m_00 m_10 m_20 m01 ...) - inline void SaturationPropsFromDeck::relperm(const int n, const double* s, const int* cells, @@ -161,7 +141,6 @@ namespace Opm /// The P^2 derivative matrix is /// m_{ij} = \frac{dpc_i}{ds^j}, /// and is output in Fortran order (m_00 m_10 m_20 m01 ...) - inline void SaturationPropsFromDeck::capPress(const int n, const double* s, const int* cells, @@ -216,7 +195,6 @@ namespace Opm /// \param[in] cells Array of n cell indices. /// \param[out] smin Array of nP minimum s values, array must be valid before calling. /// \param[out] smax Array of nP maximum s values, array must be valid before calling. - inline void SaturationPropsFromDeck::satRange(const int n, const int* cells, double* smin, @@ -245,7 +223,6 @@ namespace Opm /// Update saturation state for the hysteresis tracking /// \param[in] n Number of data points. /// \param[in] s Array of nP saturation values. - inline void SaturationPropsFromDeck::updateSatHyst(const int n, const int* cells, const double* s) @@ -268,7 +245,6 @@ namespace Opm /// \param[in] cell Cell index. /// \param[in] pcow P_oil - P_water. /// \param[in/out] swat Water saturation. / Possibly modified Water saturation. - inline void SaturationPropsFromDeck::swatInitScaling(const int cell, const double pcow, double& swat) @@ -276,5 +252,3 @@ namespace Opm swat = materialLawManager_->applySwatinit(cell, pcow, swat); } } // namespace Opm - -#endif // OPM_SATURATIONPROPSFROMDECK_IMPL_HEADER_INCLUDED diff --git a/opm/core/props/satfunc/SaturationPropsFromDeck.hpp b/opm/core/props/satfunc/SaturationPropsFromDeck.hpp index 755cb4b5b..756f6d698 100644 --- a/opm/core/props/satfunc/SaturationPropsFromDeck.hpp +++ b/opm/core/props/satfunc/SaturationPropsFromDeck.hpp @@ -23,12 +23,12 @@ #include #include #include +#include +#include #include #include -#include -#include #include #include @@ -50,12 +50,12 @@ namespace Opm typedef MaterialLawManager::MaterialLawParams MaterialLawParams; /// Default constructor. - inline SaturationPropsFromDeck(); + SaturationPropsFromDeck(); /// Initialize from a MaterialLawManager object and a compressed to cartesian cell index map. /// \param[in] materialLawManager An initialized MaterialLawManager object - inline void init(const PhaseUsage &phaseUsage, - std::shared_ptr materialLawManager); + void init(const PhaseUsage &phaseUsage, + std::shared_ptr materialLawManager); /// Initialize from deck and grid. @@ -63,10 +63,10 @@ namespace Opm /// \param[in] grid Grid to which property object applies, needed for the /// mapping from cell indices (typically from a processed grid) /// to logical cartesian indices consistent with the deck. - inline void init(Opm::DeckConstPtr deck, - Opm::EclipseStateConstPtr eclipseState, - std::shared_ptr materialLawManager, - const UnstructuredGrid& grid); + void init(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclipseState, + std::shared_ptr materialLawManager, + const UnstructuredGrid& grid); /// Initialize from deck and grid. /// \param[in] deck Deck input parser @@ -80,16 +80,19 @@ namespace Opm /// \param[in] begin_cell_centroids Pointer to the first cell_centroid of the grid. /// \param[in] dimensions The dimensions of the grid. template - inline void init(Opm::DeckConstPtr deck, - Opm::EclipseStateConstPtr eclipseState, - std::shared_ptr materialLawManager, - int number_of_cells, - const int* global_cell, - const T& begin_cell_centroids, - int dimensions); + void init(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclipseState, + std::shared_ptr materialLawManager, + int number_of_cells, + const int* global_cell, + const T& begin_cell_centroids, + int dimensions) + { + init(Opm::phaseUsageFromDeck(deck), materialLawManager); + } /// \return P, the number of phases. - inline int numPhases() const; + int numPhases() const; /// Relative permeability. /// \param[in] n Number of data points. @@ -100,11 +103,11 @@ namespace Opm /// The P^2 derivative matrix is /// m_{ij} = \frac{dkr_i}{ds^j}, /// and is output in Fortran order (m_00 m_10 m_20 m01 ...) - inline void relperm(const int n, - const double* s, - const int* cells, - double* kr, - double* dkrds) const; + void relperm(const int n, + const double* s, + const int* cells, + double* kr, + double* dkrds) const; /// Capillary pressure. /// \param[in] n Number of data points. @@ -115,35 +118,35 @@ namespace Opm /// The P^2 derivative matrix is /// m_{ij} = \frac{dpc_i}{ds^j}, /// and is output in Fortran order (m_00 m_10 m_20 m01 ...) - inline void capPress(const int n, - const double* s, - const int* cells, - double* pc, - double* dpcds) const; + void capPress(const int n, + const double* s, + const int* cells, + double* pc, + double* dpcds) const; /// Obtain the range of allowable saturation values. /// \param[in] n Number of data points. /// \param[out] smin Array of nP minimum s values, array must be valid before calling. /// \param[out] smax Array of nP maximum s values, array must be valid before calling. - inline void satRange(const int n, - const int* cells, - double* smin, - double* smax) const; + void satRange(const int n, + const int* cells, + double* smin, + double* smax) const; /// Update saturation state for the hysteresis tracking /// \param[in] n Number of data points. /// \param[in] s Array of nP saturation values. - inline void updateSatHyst(const int n, - const int* cells, - const double* s); + void updateSatHyst(const int n, + const int* cells, + const double* s); /// Update capillary pressure scaling according to pressure diff. and initial water saturation. /// \param[in] cell Cell index. /// \param[in] pcow P_oil - P_water. /// \param[in/out] swat Water saturation. / Possibly modified Water saturation. - inline void swatInitScaling(const int cell, - const double pcow, - double & swat); + void swatInitScaling(const int cell, + const double pcow, + double & swat); private: std::shared_ptr materialLawManager_; @@ -154,8 +157,4 @@ namespace Opm } // namespace Opm - -#include - - #endif // OPM_SATURATIONPROPSFROMDECK_HEADER_INCLUDED diff --git a/opm/core/simulator/ExplicitArraysFluidState.hpp b/opm/core/simulator/ExplicitArraysFluidState.hpp index 7b826f9d2..a7933d661 100644 --- a/opm/core/simulator/ExplicitArraysFluidState.hpp +++ b/opm/core/simulator/ExplicitArraysFluidState.hpp @@ -20,7 +20,9 @@ #ifndef OPM_EXPLICIT_ARRAYS_FLUID_STATE_HEADER_INCLUDED #define OPM_EXPLICIT_ARRAYS_FLUID_STATE_HEADER_INCLUDED -#include +#include + +#include namespace Opm { diff --git a/opm/core/simulator/ExplicitArraysSatDerivativesFluidState.hpp b/opm/core/simulator/ExplicitArraysSatDerivativesFluidState.hpp index a6c004904..e49bac2b1 100644 --- a/opm/core/simulator/ExplicitArraysSatDerivativesFluidState.hpp +++ b/opm/core/simulator/ExplicitArraysSatDerivativesFluidState.hpp @@ -23,6 +23,10 @@ #include #include +#include + +#include + namespace Opm {