VFPHelpers: optionally instantiate for float

This commit is contained in:
Arne Morten Kvarving 2024-04-12 13:11:09 +02:00
parent 11158a219a
commit b3ce375c79

View File

@ -773,35 +773,56 @@ VFPInjTable::FLO_TYPE getType(const VFPInjTable& table)
return table.getFloType(); return table.getFloType();
} }
template const VFPInjTable& getTable<VFPInjTable>(const std::map<int, std::reference_wrapper<const VFPInjTable>>&, int); template const VFPInjTable&
template const VFPProdTable& getTable<VFPProdTable>(const std::map<int, std::reference_wrapper<const VFPProdTable>>&, int); getTable(const std::map<int, std::reference_wrapper<const VFPInjTable>>&, int);
template const VFPProdTable&
getTable(const std::map<int, std::reference_wrapper<const VFPProdTable>>&, int);
#define INSTANCE(...) \ #define INSTANTIATE(...) \
template __VA_ARGS__ getFlo(const VFPInjTable&, const __VA_ARGS__&, const __VA_ARGS__&, const __VA_ARGS__&); \ template __VA_ARGS__ \
template __VA_ARGS__ getFlo(const VFPProdTable&, const __VA_ARGS__&, const __VA_ARGS__&, const __VA_ARGS__&); \ getFlo(const VFPInjTable&, const __VA_ARGS__&, \
template __VA_ARGS__ getGFR(const VFPProdTable&, const __VA_ARGS__&, const __VA_ARGS__&, const __VA_ARGS__&); \ const __VA_ARGS__&, const __VA_ARGS__&); \
template __VA_ARGS__ getWFR(const VFPProdTable&, const __VA_ARGS__&, const __VA_ARGS__&, const __VA_ARGS__&); template __VA_ARGS__ \
getFlo(const VFPProdTable&, const __VA_ARGS__&, \
const __VA_ARGS__&, const __VA_ARGS__&); \
template __VA_ARGS__ \
getGFR(const VFPProdTable&, const __VA_ARGS__&, \
const __VA_ARGS__&, const __VA_ARGS__&); \
template __VA_ARGS__ \
getWFR(const VFPProdTable&, const __VA_ARGS__&, \
const __VA_ARGS__&, const __VA_ARGS__&);
INSTANCE(double) #define INSTANTIATE_TYPE(T) \
INSTANCE(DenseAd::Evaluation<double, -1, 4u>) INSTANTIATE(T) \
INSTANCE(DenseAd::Evaluation<double, -1, 5u>) INSTANTIATE(DenseAd::Evaluation<T, -1, 4u>) \
INSTANCE(DenseAd::Evaluation<double, -1, 6u>) INSTANTIATE(DenseAd::Evaluation<T, -1, 5u>) \
INSTANCE(DenseAd::Evaluation<double, -1, 7u>) INSTANTIATE(DenseAd::Evaluation<T, -1, 6u>) \
INSTANCE(DenseAd::Evaluation<double, -1, 8u>) INSTANTIATE(DenseAd::Evaluation<T, -1, 7u>) \
INSTANCE(DenseAd::Evaluation<double, -1, 9u>) INSTANTIATE(DenseAd::Evaluation<T, -1, 8u>) \
INSTANCE(DenseAd::Evaluation<double, -1, 10u>) INSTANTIATE(DenseAd::Evaluation<T, -1, 9u>) \
INSTANCE(DenseAd::Evaluation<double, -1, 11u>) INSTANTIATE(DenseAd::Evaluation<T, -1, 10u>) \
INSTANCE(DenseAd::Evaluation<double, 3, 0u>) INSTANTIATE(DenseAd::Evaluation<T, -1, 11u>) \
INSTANCE(DenseAd::Evaluation<double, 4, 0u>) INSTANTIATE(DenseAd::Evaluation<T, 3, 0u>) \
INSTANCE(DenseAd::Evaluation<double, 5, 0u>) INSTANTIATE(DenseAd::Evaluation<T, 4, 0u>) \
INSTANCE(DenseAd::Evaluation<double, 6, 0u>) INSTANTIATE(DenseAd::Evaluation<T, 5, 0u>) \
INSTANCE(DenseAd::Evaluation<double, 7, 0u>) INSTANTIATE(DenseAd::Evaluation<T, 6, 0u>) \
INSTANCE(DenseAd::Evaluation<double, 8, 0u>) INSTANTIATE(DenseAd::Evaluation<T, 7, 0u>) \
INSTANCE(DenseAd::Evaluation<double, 9, 0u>) INSTANTIATE(DenseAd::Evaluation<T, 8, 0u>) \
INSTANCE(DenseAd::Evaluation<double, 10, 0u>) INSTANTIATE(DenseAd::Evaluation<T, 9, 0u>) \
INSTANTIATE(DenseAd::Evaluation<T, 10, 0u>)
INSTANTIATE_TYPE(double)
#if FLOW_INSTANTIATE_FLOAT
INSTANTIATE_TYPE(float)
#endif
} // namespace detail } // namespace detail
template class VFPHelpers<double>; template class VFPHelpers<double>;
#if FLOW_INSTANTIATE_FLOAT
template class VFPHelpers<float>;
#endif
} // namespace Opm } // namespace Opm