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(...)
 
#define INSTANTIATE_FLEXIBLESOLVER(T, N)
 

Typedefs

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

Macro Definition Documentation

◆ INSTANTIATE_FLEXIBLESOLVER

#define INSTANTIATE_FLEXIBLESOLVER (   T,
 
)
Value:
INSTANTIATE_FLEXIBLESOLVER_OP(SeqOpW<T,N>); \
INSTANTIATE_FLEXIBLESOLVER_OP(ParOpM<T,N>); \
INSTANTIATE_FLEXIBLESOLVER_OP(ParOpW<T,N>); \
INSTANTIATE_FLEXIBLESOLVER_OP(ParOpD<T,N>);
Dune::OverlappingSchwarzOperator< OBM< Scalar, N >, BV< Scalar, N >, BV< Scalar, N >, Comm > ParOpD
Definition: FlexibleSolver_impl.hpp:291
#define INSTANTIATE_FLEXIBLESOLVER_OP(...)
Definition: FlexibleSolver_impl.hpp:297
Dune::MatrixAdapter< OBM< Scalar, N >, BV< Scalar, N >, BV< Scalar, N > > SeqOpM
Definition: FlexibleSolver_impl.hpp:278
Dune linear operator that assumes ghost rows are ordered after interior rows. Avoids some computation...
Definition: WellOperators.hpp:340
Adapter to combine a matrix and another linear operator into a combined linear operator.
Definition: WellOperators.hpp:237
Adapter to combine a matrix and another linear operator into a combined linear operator.
Definition: WellOperators.hpp:143

◆ INSTANTIATE_FLEXIBLESOLVER_OP

#define INSTANTIATE_FLEXIBLESOLVER_OP (   ...)
Value:
FlexibleSolver(__VA_ARGS__& op, \
const Comm& comm, \
const Opm::PropertyTree& prm, \
const std::function<typename __VA_ARGS__::domain_type()>& weightsCalculator, \
std::size_t pressureIndex);
Dune::OwnerOverlapCopyCommunication< int, int > Comm
Definition: FlexibleSolver_impl.hpp:285
Definition: FlexibleSolver.hpp:45
Definition: PropertyTree.hpp:37

Typedef Documentation

◆ BV

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

◆ Comm

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

◆ OBM

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

◆ ParOpD

template<class Scalar , int N>
using ParOpD = Dune::OverlappingSchwarzOperator<OBM<Scalar,N>, BV<Scalar,N>, BV<Scalar,N>, Comm>

◆ ParOpM

template<class Scalar , int N>
using ParOpM = Opm::GhostLastMatrixAdapter<OBM<Scalar,N>, BV<Scalar,N>, BV<Scalar,N>, Comm>

◆ ParOpW

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

◆ SeqOpM

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

◆ SeqOpW

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