FlexibleSolver_impl.hpp File Reference
#include <opm/common/ErrorMacros.hpp>
#include <opm/common/TimingMacros.hpp>
#include <opm/simulators/linalg/matrixblock.hh>
#include <opm/simulators/linalg/ilufirstelement.hh>
#include <opm/simulators/linalg/FlexibleSolver.hpp>
#include <opm/simulators/linalg/PreconditionerFactory.hpp>
#include <opm/simulators/linalg/PropertyTree.hpp>
#include <opm/simulators/linalg/WellOperators.hpp>
#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>
Include dependency graph for FlexibleSolver_impl.hpp:

Go to the source code of this file.

Namespaces

namespace  Dune
 

Macros

#define INSTANTIATE_FLEXIBLESOLVER_OP(Operator)
 
#define INSTANTIATE_FLEXIBLESOLVER(N)
 

Typedefs

template<int N>
using BV = Dune::BlockVector< Dune::FieldVector< double, N > >
 
template<int N>
using OBM = Dune::BCRSMatrix< Opm::MatrixBlock< double, N, N > >
 
template<int N>
using SeqOpM = Dune::MatrixAdapter< OBM< N >, BV< N >, BV< N > >
 
template<int N>
using SeqOpW = Opm::WellModelMatrixAdapter< OBM< N >, BV< N >, BV< N >, false >
 
using Comm = Dune::OwnerOverlapCopyCommunication< int, int >
 
template<int N>
using ParOpM = Dune::OverlappingSchwarzOperator< OBM< N >, BV< N >, BV< N >, Comm >
 
template<int N>
using ParOpW = Opm::WellModelGhostLastMatrixAdapter< OBM< N >, BV< N >, BV< N >, true >
 

Macro Definition Documentation

◆ INSTANTIATE_FLEXIBLESOLVER

#define INSTANTIATE_FLEXIBLESOLVER (   N)
Value:
INSTANTIATE_FLEXIBLESOLVER_OP(SeqOpW<N>); \
INSTANTIATE_FLEXIBLESOLVER_OP(ParOpM<N>); \
INSTANTIATE_FLEXIBLESOLVER_OP(ParOpW<N>);
Dune::OverlappingSchwarzOperator< OBM< N >, BV< N >, BV< N >, Comm > ParOpM
Definition: FlexibleSolver_impl.hpp:272
#define INSTANTIATE_FLEXIBLESOLVER_OP(Operator)
Definition: FlexibleSolver_impl.hpp:280
Dune::MatrixAdapter< OBM< N >, BV< N >, BV< N > > SeqOpM
Definition: FlexibleSolver_impl.hpp:263
Adapter to combine a matrix and another linear operator into a combined linear operator.
Definition: WellOperators.hpp:224
Adapter to combine a matrix and another linear operator into a combined linear operator.
Definition: WellOperators.hpp:134

◆ INSTANTIATE_FLEXIBLESOLVER_OP

#define INSTANTIATE_FLEXIBLESOLVER_OP (   Operator)
Value:
const Comm& comm, \
const Opm::PropertyTree& prm, \
const std::function<typename Operator::domain_type()>& weightsCalculator, \
std::size_t pressureIndex);
Dune::OwnerOverlapCopyCommunication< int, int > Comm
Definition: FlexibleSolver_impl.hpp:270
Definition: FlexibleSolver.hpp:45
FlexibleSolver(Operator &op, const Opm::PropertyTree &prm, const std::function< VectorType()> &weightsCalculator, std::size_t pressureIndex)
Create a sequential solver.
Definition: FlexibleSolver_impl.hpp:49
Definition: PropertyTree.hpp:37

Typedef Documentation

◆ BV

template<int N>
using BV = Dune::BlockVector<Dune::FieldVector<double, N> >

◆ Comm

using Comm = Dune::OwnerOverlapCopyCommunication<int, int>

◆ OBM

template<int N>
using OBM = Dune::BCRSMatrix<Opm::MatrixBlock<double, N, N> >

◆ ParOpM

template<int N>
using ParOpM = Dune::OverlappingSchwarzOperator<OBM<N>, BV<N>, BV<N>, Comm>

◆ ParOpW

template<int N>
using ParOpW = Opm::WellModelGhostLastMatrixAdapter<OBM<N>, BV<N>, BV<N>, true>

◆ SeqOpM

template<int N>
using SeqOpM = Dune::MatrixAdapter<OBM<N>, BV<N>, BV<N> >

◆ SeqOpW

template<int N>
using SeqOpW = Opm::WellModelMatrixAdapter<OBM<N>, BV<N>, BV<N>, false>