diff --git a/ebos/eclgenerictracermodel.cc b/ebos/eclgenerictracermodel.cc index bdda9711f..72d1bf9c7 100644 --- a/ebos/eclgenerictracermodel.cc +++ b/ebos/eclgenerictracermodel.cc @@ -34,6 +34,8 @@ #include #include +#include + #include #include #include @@ -70,6 +72,7 @@ struct TracerSolverSelector using TracerOperator = Dune::OverlappingSchwarzOperator; using type = Dune::FlexibleSolver; }; + template std::tuple>>, @@ -111,7 +114,6 @@ EclGenericTracerModel(const GridView& gridView, { } - template Scalar EclGenericTracerModel:: tracerConcentration(int tracerIdx, int globalDofIdx) const @@ -122,7 +124,6 @@ tracerConcentration(int tracerIdx, int globalDofIdx) const return tracerConcentration_[tracerIdx][globalDofIdx]; } - template void EclGenericTracerModel:: setTracerConcentration(int tracerIdx, int globalDofIdx, Scalar value) @@ -144,6 +145,13 @@ fname(int tracerIdx) const return this->eclState_.tracer()[tracerIdx].fname(); } +template +double EclGenericTracerModel:: +currentConcentration_(const Well& eclWell, const std::string& name) const +{ + return eclWell.getTracerProperties().getConcentration(name); +} + template const std::string& EclGenericTracerModel:: name(int tracerIdx) const @@ -151,7 +159,6 @@ name(int tracerIdx) const return this->eclState_.tracer()[tracerIdx].name; } - template void EclGenericTracerModel:: doInit(bool rst, size_t numGridDof, diff --git a/ebos/eclgenerictracermodel.hh b/ebos/eclgenerictracermodel.hh index 147423d2e..50851f5af 100644 --- a/ebos/eclgenerictracermodel.hh +++ b/ebos/eclgenerictracermodel.hh @@ -44,6 +44,7 @@ namespace Opm { class EclipseState; +class Well; template class EclGenericTracerModel { @@ -96,6 +97,8 @@ protected: bool linearSolveBatchwise_(const TracerMatrix& M, std::vector& x, std::vector& b); + double currentConcentration_(const Well& eclWell, const std::string& name) const; + const GridView& gridView_; const EclipseState& eclState_; const CartesianIndexMapper& cartMapper_; diff --git a/ebos/ecltracermodel.hh b/ebos/ecltracermodel.hh index deb68887f..3418b136b 100644 --- a/ebos/ecltracermodel.hh +++ b/ebos/ecltracermodel.hh @@ -339,7 +339,7 @@ protected: std::vector wtracer(tr.numTracer()); for (int tIdx = 0; tIdx < tr.numTracer(); ++tIdx) { - wtracer[tIdx] = eclWell.getTracerProperties().getConcentration(this->name(tr.idx_[tIdx])); + wtracer[tIdx] = this->currentConcentration_(eclWell, this->name(tr.idx_[tIdx])); } for (auto& perfData : well.perforationData()) { diff --git a/opm/simulators/utils/ParallelSerialization.cpp b/opm/simulators/utils/ParallelSerialization.cpp index 2c89dc1db..f7a03f348 100644 --- a/opm/simulators/utils/ParallelSerialization.cpp +++ b/opm/simulators/utils/ParallelSerialization.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #include