9 #ifndef OPM_MATRIXMARKETSPECIALIZATIONS_HEADER_INCLUDED 10 #define OPM_MATRIXMARKETSPECIALIZATIONS_HEADER_INCLUDED 12 #include <dune/istl/matrixmarket.hh> 13 #include <dune/istl/multitypeblockvector.hh> 17 template<
typename T,
int i,
int j>
23 template <
typename... Args>
24 void writeMatrixMarket(
const Dune::MultiTypeBlockVector<Args...>& vector, std::ostream& os)
26 os <<
"%%MatrixMarket matrix array real general" << std::endl;
27 using namespace Dune::Hybrid;
28 forEach(integralRange(Hybrid::size(vector)), [&](
auto&& i)
30 Dune::writeMatrixMarket(vector[i], os);
34 namespace MatrixMarketImpl
37 template <
typename T,
int i,
int j,
typename A>
38 struct mm_header_printer<BCRSMatrix<
Opm::MatrixBlock<T,i,j>, A>>
40 static void print(std::ostream& os)
42 os <<
"%%MatrixMarket matrix coordinate ";
43 os << mm_numeric_type<T>::str() <<
" general" << std::endl;
47 template <
typename T,
int i,
int j,
typename A>
48 struct mm_block_structure_header<BCRSMatrix<
Opm::MatrixBlock<T,i,j>, A>>
50 using M = BCRSMatrix<Opm::MatrixBlock<T,i,j>, A>;
51 static void print(std::ostream& os,
const M&)
53 os <<
"% ISTL_STRUCT blocked ";
54 os << i <<
" " << j << std::endl;
59 namespace MatrixMarketImpl
61 template <
typename T,
int i,
int j,
typename A>
62 struct mm_multipliers<BCRSMatrix<
Opm::MatrixBlock<T,i,j>, A>>
Definition: fvbaseprimaryvariables.hh:161
Structs needed for tpfalinearizer and its gpuparams struct extracted to be defined in one place that ...
Definition: blackoilbioeffectsmodules.hh:45