MultisegmentWellEquations: optionally instantiate for float

This commit is contained in:
Arne Morten Kvarving 2024-04-12 13:11:09 +02:00
parent fa84eb65c7
commit 6f7660905e

View File

@ -397,27 +397,34 @@ extractCPRPressureMatrix(PressureMatrix& jacobian,
} }
} }
#define INSTANCE(numWellEq, numEq) \ #define INSTANTIATE(T, numWellEq, numEq) \
template class MultisegmentWellEquations<double,numWellEq,numEq>; \ template class MultisegmentWellEquations<T,numWellEq,numEq>; \
template void MultisegmentWellEquations<double,numWellEq,numEq>:: \ template void MultisegmentWellEquations<T,numWellEq,numEq>:: \
extract(Linear::IstlSparseMatrixAdapter<MatrixBlock<double,numEq,numEq>>&) const; \ extract(Linear::IstlSparseMatrixAdapter<MatrixBlock<T,numEq,numEq>>&) const; \
template void MultisegmentWellEquations<double,numWellEq,numEq>:: \ template void MultisegmentWellEquations<T,numWellEq,numEq>:: \
extractCPRPressureMatrix(Dune::BCRSMatrix<MatrixBlock<double,1,1>>&, \ extractCPRPressureMatrix(Dune::BCRSMatrix<MatrixBlock<T,1,1>>&, \
const MultisegmentWellEquations<double,numWellEq,numEq>::BVector&, \ const MultisegmentWellEquations<T,numWellEq,numEq>::BVector&, \
const int, \ const int, \
const bool, \ const bool, \
const WellInterfaceGeneric<double>&, \ const WellInterfaceGeneric<T>&, \
const int, \ const int, \
const WellState<double>&) const; const WellState<T>&) const;
INSTANCE(2,1) #define INSTANTIATE_TYPE(T) \
INSTANCE(2,2) INSTANTIATE(T,2,1) \
INSTANCE(2,6) INSTANTIATE(T,2,2) \
INSTANCE(3,2) INSTANTIATE(T,2,6) \
INSTANCE(3,3) INSTANTIATE(T,3,2) \
INSTANCE(3,4) INSTANTIATE(T,3,3) \
INSTANCE(4,3) INSTANTIATE(T,3,4) \
INSTANCE(4,4) INSTANTIATE(T,4,3) \
INSTANCE(4,5) INSTANTIATE(T,4,4) \
INSTANTIATE(T,4,5)
INSTANTIATE_TYPE(double)
#if FLOW_INSTANTIATE_FLOAT
INSTANTIATE_TYPE(float)
#endif
} }