Use macro for instantiations, and clean up includes.

This commit is contained in:
Atgeirr Flø Rasmussen
2020-06-19 16:37:43 +02:00
parent 171656144f
commit 427eac5132
7 changed files with 43 additions and 137 deletions

View File

@@ -20,37 +20,5 @@
#include "config.h"
#include <opm/simulators/linalg/FlexibleSolver_impl.hpp>
#include <opm/simulators/linalg/matrixblock.hh>
#include <dune/common/fmatrix.hh>
#include <dune/istl/bcrsmatrix.hh>
#include <dune/istl/solvers.hh>
#include <dune/istl/umfpack.hh>
#include <dune/istl/owneroverlapcopy.hh>
#include <dune/istl/paamg/pinfo.hh>
// Explicit instantiations of FlexibleSolver
template <int N>
using BV = Dune::BlockVector<Dune::FieldVector<double, N>>;
template <int N>
using BM = Dune::BCRSMatrix<Dune::FieldMatrix<double, N, N>>;
template <int N>
using OBM = Dune::BCRSMatrix<Opm::MatrixBlock<double, N, N>>;
// Variants using Dune::FieldMatrix blocks.
template class Dune::FlexibleSolver<BM<2>, BV<2>>;
// Variants using Opm::MatrixBlock blocks.
template class Dune::FlexibleSolver<OBM<2>, BV<2>>;
#if HAVE_MPI
using Comm = Dune::OwnerOverlapCopyCommunication<int, int>;
template Dune::FlexibleSolver<OBM<2>, BV<2>>::FlexibleSolver(const MatrixType& matrix,
const Comm& comm,
const boost::property_tree::ptree& prm,
const std::function<BV<2>()>& weightsCalculator);
#endif // HAVE_MPI
INSTANTIATE_FLEXIBLESOLVER(2);