dune-pdelab  2.7-git
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s > Class Template Reference

#include <dune/pdelab/backend/istl/ovlp_amg_dg_backend.hh>

Inheritance diagram for Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >:
Inheritance graph

Public Types

typedef DGGO::Traits::TrialGridFunctionSpace GFS
 
typedef DGGO::Traits::Jacobian M
 
typedef DGGO::Traits::Domain V
 
typedef Backend::Native< MMatrix
 
typedef Backend::Native< VVector
 
typedef Vector::field_type field_type
 
using CGV = Dune::PDELab::Backend::Vector< CGGFS, field_type >
 
typedef Backend::Native< CGVCGVector
 
typedef Dune::PDELab::ISTL::BCRSMatrixBackend MBE
 
typedef Dune::PDELab::EmptyTransformation CC
 
typedef TransferLOP CGTODGLOP
 
typedef Dune::PDELab::GridOperator< CGGFS, GFS, CGTODGLOP, MBE, field_type, field_type, field_type, CC, CCPGO
 
typedef PGO::Jacobian PMatrix
 
typedef Backend::Native< PMatrixP
 
typedef Dune::TransposedMatMultMatResult< P, Matrix >::type PTADG
 
typedef Dune::MatMultMatResult< PTADG, P >::type CGMatrix
 
typedef Dune::PDELab::ISTL::CommSelector< s, Dune::MPIHelper::isFake >::type Comm
 
typedef Dune::OverlappingSchwarzOperator< CGMatrix, CGVector, CGVector, CommParCGOperator
 
typedef Dune::SeqSSOR< CGMatrix, CGVector, CGVector, 1 > Smoother
 
typedef Dune::BlockPreconditioner< CGVector, CGVector, Comm, SmootherParSmoother
 
typedef Dune::Amg::AMG< ParCGOperator, CGVector, ParSmoother, CommAMG
 
typedef Dune::Amg::Parameters Parameters
 

Public Member Functions

PMatrixprolongation_matrix ()
 
void setParameters (const Parameters &amg_parameters_)
 set AMG parameters More...
 
const Parametersparameters () const
 Get the parameters describing the behaviuour of AMG. More...
 
void setReuse (bool reuse_)
 Set whether the AMG should be reused again during call to apply(). More...
 
bool getReuse () const
 Return whether the AMG is reused during call to apply() More...
 
 ISTLBackend_OVLP_AMG_4_DG (DGGO &dggo_, const DGCC &dgcc_, CGGFS &cggfs_, const CGCC &cgcc_, unsigned maxiter_=5000, int verbose_=1, bool reuse_=false, bool usesuperlu_=true)
 
 ISTLBackend_OVLP_AMG_4_DG (DGGO &dggo_, const DGCC &dgcc_, CGGFS &cggfs_, const CGCC &cgcc_, const ParameterTree &params)
 
void apply (M &A, V &z, V &r, typename Dune::template FieldTraits< typename V::ElementType >::real_type reduction)
 solve the given linear system More...
 
X::ElementType dot (const X &x, const X &y) const
 Dot product of two vectors. It is assumed that the vectors are consistent on the interior+border partition. More...
 
Dune::template FieldTraits< typename X::ElementType >::real_type norm (const X &x) const
 Norm of a right-hand side vector. The vector must be consistent on the interior+border partition. More...
 
const ISTL::ParallelHelper< DGGO::Traits::TrialGridFunctionSpace > & parallelHelper () const
 
ISTL::ParallelHelper< DGGO::Traits::TrialGridFunctionSpace > & parallelHelper ()
 
const Dune::PDELab::LinearSolverResult< double > & result () const
 Return access to result data. More...
 

Protected Attributes

Dune::PDELab::LinearSolverResult< double > res
 

Detailed Description

template<class DGGO, class DGCC, class CGGFS, class CGCC, class TransferLOP, template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
class Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >

Overlapping solver backend for using AMG for DG in PDELab

The template parameters are: DGGO GridOperator for DG discretization, allows access to matrix, vector and grid function space DGCC constraints container for DG problem CGGFS grid function space for CG subspace CGCC constraints container for CG problem TransferLOP local operator to assemble prolongation from CGGFS to DGGFS DGPrec preconditioner for DG problem Solver solver to be used on the complete problem int s size of global index to be used in AMG

Member Typedef Documentation

◆ AMG

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Dune::Amg::AMG<ParCGOperator,CGVector,ParSmoother,Comm> Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::AMG

◆ CC

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Dune::PDELab::EmptyTransformation Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::CC

◆ CGMatrix

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Dune::MatMultMatResult<PTADG,P>::type Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::CGMatrix

◆ CGTODGLOP

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef TransferLOP Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::CGTODGLOP

◆ CGV

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
using Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::CGV = Dune::PDELab::Backend::Vector<CGGFS,field_type>

◆ CGVector

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Backend::Native<CGV> Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::CGVector

◆ Comm

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Dune::PDELab::ISTL::CommSelector<s,Dune::MPIHelper::isFake>::type Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::Comm

◆ field_type

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Vector::field_type Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::field_type

◆ GFS

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef DGGO::Traits::TrialGridFunctionSpace Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::GFS

◆ M

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef DGGO::Traits::Jacobian Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::M

◆ Matrix

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Backend::Native<M> Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::Matrix

◆ MBE

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Dune::PDELab::ISTL::BCRSMatrixBackend Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::MBE

◆ P

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Backend::Native<PMatrix> Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::P

◆ Parameters

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Dune::Amg::Parameters Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::Parameters

◆ ParCGOperator

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Dune::OverlappingSchwarzOperator<CGMatrix,CGVector,CGVector,Comm> Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::ParCGOperator

◆ ParSmoother

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Dune::BlockPreconditioner<CGVector,CGVector,Comm,Smoother> Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::ParSmoother

◆ PGO

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Dune::PDELab::GridOperator<CGGFS,GFS,CGTODGLOP,MBE,field_type,field_type,field_type,CC,CC> Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::PGO

◆ PMatrix

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef PGO::Jacobian Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::PMatrix

◆ PTADG

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Dune::TransposedMatMultMatResult<P,Matrix>::type Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::PTADG

◆ Smoother

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Dune::SeqSSOR<CGMatrix,CGVector,CGVector,1> Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::Smoother

◆ V

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef DGGO::Traits::Domain Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::V

◆ Vector

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
typedef Backend::Native<V> Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::Vector

Constructor & Destructor Documentation

◆ ISTLBackend_OVLP_AMG_4_DG() [1/2]

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::ISTLBackend_OVLP_AMG_4_DG ( DGGO &  dggo_,
const DGCC &  dgcc_,
CGGFS &  cggfs_,
const CGCC &  cgcc_,
unsigned  maxiter_ = 5000,
int  verbose_ = 1,
bool  reuse_ = false,
bool  usesuperlu_ = true 
)
inline

make backend object

◆ ISTLBackend_OVLP_AMG_4_DG() [2/2]

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::ISTLBackend_OVLP_AMG_4_DG ( DGGO &  dggo_,
const DGCC &  dgcc_,
CGGFS &  cggfs_,
const CGCC &  cgcc_,
const ParameterTree &  params 
)
inline

make backend object

Member Function Documentation

◆ apply()

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
void Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::apply ( M A,
V z,
V r,
typename Dune::template FieldTraits< typename V::ElementType >::real_type  reduction 
)
inline

solve the given linear system

Parameters
[in]Athe given matrix
[out]zthe solution vector to be computed
[in]rright hand side
[in]reductionto be achieved

◆ dot()

X::ElementType Dune::PDELab::OVLPScalarProductImplementation< DGGO::Traits::TrialGridFunctionSpace >::dot ( const X &  x,
const X &  y 
) const
inlineinherited

Dot product of two vectors. It is assumed that the vectors are consistent on the interior+border partition.

◆ getReuse()

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
bool Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::getReuse ( ) const
inline

Return whether the AMG is reused during call to apply()

◆ norm()

Dune::template FieldTraits<typename X::ElementType >::real_type Dune::PDELab::OVLPScalarProductImplementation< DGGO::Traits::TrialGridFunctionSpace >::norm ( const X &  x) const
inlineinherited

Norm of a right-hand side vector. The vector must be consistent on the interior+border partition.

◆ parallelHelper() [1/2]

ISTL::ParallelHelper<DGGO::Traits::TrialGridFunctionSpace >& Dune::PDELab::OVLPScalarProductImplementation< DGGO::Traits::TrialGridFunctionSpace >::parallelHelper ( )
inlineinherited

◆ parallelHelper() [2/2]

const ISTL::ParallelHelper<DGGO::Traits::TrialGridFunctionSpace >& Dune::PDELab::OVLPScalarProductImplementation< DGGO::Traits::TrialGridFunctionSpace >::parallelHelper ( ) const
inlineinherited

◆ parameters()

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
const Parameters& Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::parameters ( ) const
inline

Get the parameters describing the behaviuour of AMG.

The returned object can be adjusted to ones needs and then can be reset using setParameters.

Returns
The object holding the parameters of AMG.

◆ prolongation_matrix()

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
PMatrix& Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::prolongation_matrix ( )
inline

◆ result()

const Dune::PDELab::LinearSolverResult<double>& Dune::PDELab::LinearResultStorage::result ( ) const
inlineinherited

Return access to result data.

◆ setParameters()

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
void Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::setParameters ( const Parameters amg_parameters_)
inline

set AMG parameters

Parameters
[in]amg_parameters_a parameter object of Type Dune::Amg::Parameters

◆ setReuse()

template<class DGGO , class DGCC , class CGGFS , class CGCC , class TransferLOP , template< class, class, class, int > class DGPrec, template< class > class Solver, int s = 96>
void Dune::PDELab::ISTLBackend_OVLP_AMG_4_DG< DGGO, DGCC, CGGFS, CGCC, TransferLOP, DGPrec, Solver, s >::setReuse ( bool  reuse_)
inline

Set whether the AMG should be reused again during call to apply().

Member Data Documentation

◆ res

Dune::PDELab::LinearSolverResult<double> Dune::PDELab::LinearResultStorage::res
protectedinherited

The documentation for this class was generated from the following file: