diff --git a/opm/simulators/wells/WellAssemble.cpp b/opm/simulators/wells/WellAssemble.cpp index 46314a8fd..d8ed63588 100644 --- a/opm/simulators/wells/WellAssemble.cpp +++ b/opm/simulators/wells/WellAssemble.cpp @@ -283,48 +283,55 @@ assembleControlEqInj(const WellState& well_state, } } -#define INSTANCE_METHODS(A,...) \ -template void WellAssemble:: \ -assembleControlEqProd<__VA_ARGS__>(const WellState&, \ +#define INSTANTIATE_METHODS(A,...) \ +template void WellAssemble:: \ +assembleControlEqProd<__VA_ARGS__>(const WellState&, \ const GroupState&, \ - const Schedule&, \ - const SummaryState&, \ - const Well::ProductionControls&, \ - const __VA_ARGS__&, \ - const std::vector<__VA_ARGS__>&, \ - const std::function<__VA_ARGS__()>&, \ - __VA_ARGS__&, \ - DeferredLogger&) const; \ -template void WellAssemble:: \ -assembleControlEqInj<__VA_ARGS__>(const WellState&, \ - const GroupState&, \ - const Schedule&, \ - const SummaryState&, \ - const Well::InjectionControls&, \ - const __VA_ARGS__&, \ - const __VA_ARGS__&, \ - const std::function<__VA_ARGS__()>&, \ - __VA_ARGS__&, \ + const Schedule&, \ + const SummaryState&, \ + const Well::ProductionControls&, \ + const __VA_ARGS__&, \ + const std::vector<__VA_ARGS__>&, \ + const std::function<__VA_ARGS__()>&, \ + __VA_ARGS__&, \ + DeferredLogger&) const; \ +template void WellAssemble:: \ +assembleControlEqInj<__VA_ARGS__>(const WellState&, \ + const GroupState&, \ + const Schedule&, \ + const SummaryState&, \ + const Well::InjectionControls&, \ + const __VA_ARGS__&, \ + const __VA_ARGS__&, \ + const std::function<__VA_ARGS__()>&, \ + __VA_ARGS__&, \ DeferredLogger&) const; -using FluidSys = BlackOilFluidSystem; +template +using FS = BlackOilFluidSystem; -template class WellAssemble; +#define INSTANTIATE_TYPE(T) \ + template class WellAssemble>; \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) \ + INSTANTIATE_METHODS(FS, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) -INSTANCE_METHODS(FluidSys, DenseAd::Evaluation) +INSTANTIATE_TYPE(double) + +#if FLOW_INSTANTIATE_FLOAT +INSTANTIATE_TYPE(float) +#endif } // namespace Opm