dune-istl  3.0-git
Public Types | Public Member Functions | Protected Attributes | List of all members
Dune::LinearOperatorSum< OP1, OP2 > Class Template Referenceabstract

A linear operator representing the sum of two linear operators. More...

#include <dune/istl/eigenvalue/poweriteration.hh>

Inheritance diagram for Dune::LinearOperatorSum< OP1, OP2 >:
Inheritance graph

Public Types

enum  { category = Dune::SolverCategory::sequential }
 
typedef OP1::domain_type domain_type
 
typedef OP1::range_type range_type
 
typedef domain_type::field_type field_type
 

Public Member Functions

 LinearOperatorSum (const OP1 &op1, const OP2 &op2)
 
virtual void apply (const domain_type &x, range_type &y) const
 apply operator to x: $ y = A(x) $ The input vector is consistent and the output must also be consistent on the interior+border partition. More...
 
virtual void applyscaleadd (field_type alpha, const domain_type &x, range_type &y) const
 
virtual void applyscaleadd (field_type alpha, const OP1::domain_type &x, OP1::range_type &y) const=0
 apply operator to x, scale and add: $ y = y + \alpha A(x) $ More...
 

Protected Attributes

const OP1 & op1_
 
const OP2 & op2_
 

Detailed Description

template<class OP1, class OP2>
class Dune::LinearOperatorSum< OP1, OP2 >

A linear operator representing the sum of two linear operators.

Template Parameters
OP1Type of the first linear operator.
OP2Type of the second linear operator.
Author
Sebastian Westerheide.

Member Typedef Documentation

◆ domain_type

template<class OP1, class OP2>
typedef OP1::domain_type Dune::LinearOperatorSum< OP1, OP2 >::domain_type

◆ field_type

template<class OP1, class OP2>
typedef domain_type::field_type Dune::LinearOperatorSum< OP1, OP2 >::field_type

◆ range_type

template<class OP1, class OP2>
typedef OP1::range_type Dune::LinearOperatorSum< OP1, OP2 >::range_type

Member Enumeration Documentation

◆ anonymous enum

template<class OP1, class OP2>
anonymous enum
Enumerator
category 

Constructor & Destructor Documentation

◆ LinearOperatorSum()

template<class OP1, class OP2>
Dune::LinearOperatorSum< OP1, OP2 >::LinearOperatorSum ( const OP1 &  op1,
const OP2 &  op2 
)
inline

Member Function Documentation

◆ apply()

template<class OP1, class OP2>
virtual void Dune::LinearOperatorSum< OP1, OP2 >::apply ( const domain_type x,
range_type y 
) const
inlinevirtual

apply operator to x: $ y = A(x) $ The input vector is consistent and the output must also be consistent on the interior+border partition.

Implements Dune::LinearOperator< OP1::domain_type, OP1::range_type >.

◆ applyscaleadd() [1/2]

virtual void Dune::LinearOperator< OP1::domain_type , OP1::range_type >::applyscaleadd ( field_type  alpha,
const OP1::domain_type &  x,
OP1::range_type &  y 
) const
pure virtualinherited

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

◆ applyscaleadd() [2/2]

template<class OP1, class OP2>
virtual void Dune::LinearOperatorSum< OP1, OP2 >::applyscaleadd ( field_type  alpha,
const domain_type x,
range_type y 
) const
inlinevirtual

Member Data Documentation

◆ op1_

template<class OP1, class OP2>
const OP1& Dune::LinearOperatorSum< OP1, OP2 >::op1_
protected

◆ op2_

template<class OP1, class OP2>
const OP2& Dune::LinearOperatorSum< OP1, OP2 >::op2_
protected

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