From e4e6430644d55b1379b72ea139bb9ee270c9d4ec Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Fri, 12 Apr 2024 13:11:09 +0200 Subject: [PATCH] MultisegmentWellSegments: optionally instantiate for float --- .../wells/MultisegmentWellSegments.cpp | 64 ++++++++++--------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/opm/simulators/wells/MultisegmentWellSegments.cpp b/opm/simulators/wells/MultisegmentWellSegments.cpp index c38de130f..5f1ba95fa 100644 --- a/opm/simulators/wells/MultisegmentWellSegments.cpp +++ b/opm/simulators/wells/MultisegmentWellSegments.cpp @@ -987,39 +987,43 @@ mixtureDensityWithExponents(const AutoICD& aicd, const int seg) const return mixDens; } -#define INSTANCE(...) \ -template class MultisegmentWellSegments,__VA_ARGS__>; +template +using FS = BlackOilFluidSystem; -// One phase -INSTANCE(BlackOilOnePhaseIndices<0u,0u,0u,0u,false,false,0u,1u,0u>) -INSTANCE(BlackOilOnePhaseIndices<0u,0u,0u,1u,false,false,0u,1u,0u>) -INSTANCE(BlackOilOnePhaseIndices<0u,0u,0u,0u,false,false,0u,1u,5u>) +#define INSTANTIATE(T,...) \ + template class MultisegmentWellSegments,__VA_ARGS__>; -// Two phase -INSTANCE(BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,false,0u,0u,0u>) -INSTANCE(BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,false,0u,1u,0u>) -INSTANCE(BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,false,0u,2u,0u>) -INSTANCE(BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,true,0u,2u,0u>) -INSTANCE(BlackOilTwoPhaseIndices<0u,0u,1u,0u,false,false,0u,2u,0u>) -INSTANCE(BlackOilTwoPhaseIndices<0u,0u,2u,0u,false,false,0u,2u,0u>) -INSTANCE(BlackOilTwoPhaseIndices<0u,0u,0u,1u,false,false,0u,1u,0u>) -INSTANCE(BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,true,0u,0u,0u>) -INSTANCE(BlackOilTwoPhaseIndices<0u,0u,0u,1u,false,false,0u,0u,0u>) -INSTANCE(BlackOilTwoPhaseIndices<0u,0u,0u,1u,false,true,0u,0u,0u>) -INSTANCE(BlackOilTwoPhaseIndices<1u,0u,0u,0u,false,false,0u,0u,0u>) +#define INSTANTIATE_TYPE(T) \ + INSTANTIATE(T,BlackOilOnePhaseIndices<0u,0u,0u,0u,false,false,0u,1u,0u>) \ + INSTANTIATE(T,BlackOilOnePhaseIndices<0u,0u,0u,1u,false,false,0u,1u,0u>) \ + INSTANTIATE(T,BlackOilOnePhaseIndices<0u,0u,0u,0u,false,false,0u,1u,5u>) \ + INSTANTIATE(T,BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,false,0u,0u,0u>) \ + INSTANTIATE(T,BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,false,0u,1u,0u>) \ + INSTANTIATE(T,BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,false,0u,2u,0u>) \ + INSTANTIATE(T,BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,true,0u,2u,0u>) \ + INSTANTIATE(T,BlackOilTwoPhaseIndices<0u,0u,1u,0u,false,false,0u,2u,0u>) \ + INSTANTIATE(T,BlackOilTwoPhaseIndices<0u,0u,2u,0u,false,false,0u,2u,0u>) \ + INSTANTIATE(T,BlackOilTwoPhaseIndices<0u,0u,0u,1u,false,false,0u,1u,0u>) \ + INSTANTIATE(T,BlackOilTwoPhaseIndices<0u,0u,0u,0u,false,true,0u,0u,0u>) \ + INSTANTIATE(T,BlackOilTwoPhaseIndices<0u,0u,0u,1u,false,false,0u,0u,0u>) \ + INSTANTIATE(T,BlackOilTwoPhaseIndices<0u,0u,0u,1u,false,true,0u,0u,0u>) \ + INSTANTIATE(T,BlackOilTwoPhaseIndices<1u,0u,0u,0u,false,false,0u,0u,0u>) \ + INSTANTIATE(T,BlackOilIndices<0u,0u,0u,0u,false,false,0u,0u>) \ + INSTANTIATE(T,BlackOilIndices<0u,0u,0u,0u,true,false,0u,0u>) \ + INSTANTIATE(T,BlackOilIndices<0u,0u,0u,0u,false,true,0u,0u>) \ + INSTANTIATE(T,BlackOilIndices<0u,0u,0u,0u,false,true,2u,0u>) \ + INSTANTIATE(T,BlackOilIndices<1u,0u,0u,0u,false,false,0u,0u>) \ + INSTANTIATE(T,BlackOilIndices<0u,1u,0u,0u,false,false,0u,0u>) \ + INSTANTIATE(T,BlackOilIndices<0u,0u,1u,0u,false,false,0u,0u>) \ + INSTANTIATE(T,BlackOilIndices<0u,0u,0u,1u,false,false,0u,0u>) \ + INSTANTIATE(T,BlackOilIndices<0u,0u,0u,0u,false,false,1u,0u>) \ + INSTANTIATE(T,BlackOilIndices<0u,0u,0u,1u,false,true,0u,0u>) \ + INSTANTIATE(T,BlackOilIndices<1u,0u,0u,0u,true,false,0u,0u>) -// Blackoil -INSTANCE(BlackOilIndices<0u,0u,0u,0u,false,false,0u,0u>) -INSTANCE(BlackOilIndices<0u,0u,0u,0u,true,false,0u,0u>) -INSTANCE(BlackOilIndices<0u,0u,0u,0u,false,true,0u,0u>) -INSTANCE(BlackOilIndices<0u,0u,0u,0u,false,true,2u,0u>) -INSTANCE(BlackOilIndices<1u,0u,0u,0u,false,false,0u,0u>) -INSTANCE(BlackOilIndices<0u,1u,0u,0u,false,false,0u,0u>) -INSTANCE(BlackOilIndices<0u,0u,1u,0u,false,false,0u,0u>) -INSTANCE(BlackOilIndices<0u,0u,0u,1u,false,false,0u,0u>) -INSTANCE(BlackOilIndices<0u,0u,0u,0u,false,false,1u,0u>) -INSTANCE(BlackOilIndices<0u,0u,0u,1u,false,true,0u,0u>) +INSTANTIATE_TYPE(double) -INSTANCE(BlackOilIndices<1u,0u,0u,0u,true,false,0u,0u>) +#if FLOW_INSTANTIATE_FLOAT +INSTANTIATE_TYPE(float) +#endif } // namespace Opm