dune-pdelab  2.4.1
Public Types | Public Member Functions | List of all members
Dune::PDELab::NonoverlappingOperator< GFS, M, X, Y > Class Template Reference

Operator for the non-overlapping parallel case. More...

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

Inheritance diagram for Dune::PDELab::NonoverlappingOperator< GFS, M, X, Y >:
Inheritance graph

Public Types

enum  { category =Dune::SolverCategory::nonoverlapping }
 
using matrix_type = Backend::Native< M >
 export type of matrix More...
 
using domain_type = Backend::Native< X >
 export type of vectors the matrix is applied to More...
 
using range_type = Backend::Native< Y >
 export type of result vectors More...
 
typedef X::field_type field_type
 export type of the entries for x More...
 

Public Member Functions

 NonoverlappingOperator (const GFS &gfs_, const M &A)
 Construct a non-overlapping operator. More...
 
virtual void apply (const X &x, Y &y) const
 apply operator More...
 
virtual void applyscaleadd (field_type alpha, const X &x, Y &y) const
 apply operator to x, scale and add: $ y = y + \alpha A(x) $ More...
 
virtual const M & getmat () const
 extract the matrix More...
 

Detailed Description

template<typename GFS, typename M, typename X, typename Y>
class Dune::PDELab::NonoverlappingOperator< GFS, M, X, Y >

Operator for the non-overlapping parallel case.

Calculate $y:=Ax$.

Template Parameters
GFSThe GridFunctionSpace the vectors apply to.
MType of the matrix. Should be one of the ISTL matrix types.
XType of the vectors the matrix is applied to.
YType of the result vectors.

Member Typedef Documentation

template<typename GFS , typename M , typename X , typename Y >
using Dune::PDELab::NonoverlappingOperator< GFS, M, X, Y >::domain_type = Backend::Native<X>

export type of vectors the matrix is applied to

template<typename GFS , typename M , typename X , typename Y >
typedef X::field_type Dune::PDELab::NonoverlappingOperator< GFS, M, X, Y >::field_type

export type of the entries for x

template<typename GFS , typename M , typename X , typename Y >
using Dune::PDELab::NonoverlappingOperator< GFS, M, X, Y >::matrix_type = Backend::Native<M>

export type of matrix

template<typename GFS , typename M , typename X , typename Y >
using Dune::PDELab::NonoverlappingOperator< GFS, M, X, Y >::range_type = Backend::Native<Y>

export type of result vectors

Member Enumeration Documentation

template<typename GFS , typename M , typename X , typename Y >
anonymous enum
Enumerator
category 

Constructor & Destructor Documentation

template<typename GFS , typename M , typename X , typename Y >
Dune::PDELab::NonoverlappingOperator< GFS, M, X, Y >::NonoverlappingOperator ( const GFS &  gfs_,
const M &  A 
)
inline

Construct a non-overlapping operator.

Parameters
gfs_GridFunctionsSpace for the vectors.
AMatrix for this operator. This should be the locally assembled matrix.
Note
The constructed object stores references to all the objects given as parameters here. They should be valid for as long as the constructed object is used. They are not needed to destruct the constructed object.

Member Function Documentation

template<typename GFS , typename M , typename X , typename Y >
virtual void Dune::PDELab::NonoverlappingOperator< GFS, M, X, Y >::apply ( const X &  x,
Y &  y 
) const
inlinevirtual

apply operator

Compute $y:=A(x)$ on this process, then make y consistent (sum up corresponding entries of y on the different processes and store the result back in y on each process).

References Dune::PDELab::Backend::native().

template<typename GFS , typename M , typename X , typename Y >
virtual void Dune::PDELab::NonoverlappingOperator< GFS, M, X, Y >::applyscaleadd ( field_type  alpha,
const X &  x,
Y &  y 
) const
inlinevirtual

apply operator to x, scale and add: $ y = y + \alpha A(x) $

Compute $y:=\alpha A(x)$ on this process, then make y consistent (sum up corresponding entries of y on the different processes and store the result back in y on each process).

References Dune::PDELab::Backend::native().

template<typename GFS , typename M , typename X , typename Y >
virtual const M& Dune::PDELab::NonoverlappingOperator< GFS, M, X, Y >::getmat ( ) const
inlinevirtual

extract the matrix


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