Playa::LinearOperator< Scalar > Class Template Reference

#include <PlayaLinearOperatorDecl.hpp>

Inheritance diagram for Playa::LinearOperator< Scalar >:

Playa::Handle< LinearOperatorBase< Scalar > >

List of all members.

Public Member Functions

const VectorSpace< Scalar > domain () const
const VectorSpace< Scalar > range () const
void apply (const Vector< Scalar > &in, Vector< Scalar > &out) const
void applyTranspose (const Vector< Scalar > &in, Vector< Scalar > &out) const
LinearOperator< Scalar > form () const
RCP< Time > & opTimer ()
LinearOperator< Scalar > transpose () const
RCP< LoadableMatrix< Scalar > > matrix ()
void getRow (const int &row, Teuchos::Array< int > &indices, Teuchos::Array< Scalar > &values) const
Constructors, Destructors, and Assignment Operators


 LinearOperator ()
 LinearOperator (const RCP< LinearOperatorBase< Scalar > > &smartPtr)
Block operations


int numBlockRows () const
int numBlockCols () const
LinearOperator< Scalar > getBlock (const int &i, const int &j) const
LinearOperator< Scalar > getNonconstBlock (const int &i, const int &j)
void setBlock (int i, int j, const LinearOperator< Scalar > &sub)
void endBlockFill ()

Related Functions

(Note that these are not member functions.)

LinearOperator< double > epetraMatrixMatrixProduct (const LinearOperator< double > &A, const LinearOperator< double > &B)
LinearOperator< double > epetraLeftScale (const Vector< double > &d, const LinearOperator< double > &A)
LinearOperator< double > epetraRightScale (const LinearOperator< double > &A, const Vector< double > &d)
LinearOperator< double > epetraMatrixMatrixSum (const LinearOperator< double > &A, const LinearOperator< double > &B)
template<class Scalar >
LinearOperator< Scalar > addedOperator (const Array< LinearOperator< Scalar > > &ops)
template<class Scalar >
LinearOperator< Scalar > operator+ (const LinearOperator< Scalar > &A, const LinearOperator< Scalar > &B)


Detailed Description

template<class Scalar>
class Playa::LinearOperator< Scalar >

User-level linear operator class

Definition at line 31 of file PlayaLinearOperatorDecl.hpp.


Constructor & Destructor Documentation

template<class Scalar >
LinearOperator::LinearOperator (  )  [inline]

Empty constructor

Definition at line 35 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar>
LinearOperator::LinearOperator ( const RCP< LinearOperatorBase< Scalar > > &  smartPtr  )  [inline]

Constructor with smart pointer

Definition at line 41 of file PlayaLinearOperatorImpl.hpp.


Member Function Documentation

template<class Scalar >
const VectorSpace< Scalar > LinearOperator::domain (  )  const [inline]

Return the domain

Definition at line 248 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar >
const VectorSpace< Scalar > LinearOperator::range (  )  const [inline]

Return the range

Definition at line 225 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar>
void LinearOperator::apply ( const Vector< Scalar > &  in,
Vector< Scalar > &  out 
) const [inline]

Compute

 out = beta*out + alpha*op*in;

Definition at line 49 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar>
void LinearOperator::applyTranspose ( const Vector< Scalar > &  in,
Vector< Scalar > &  out 
) const [inline]

Compute

 out = beta*out + alpha*op^T*in;

Definition at line 105 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar>
LinearOperator<Scalar> Playa::LinearOperator< Scalar >::form (  )  const [inline]

For the moment this does nothing

Definition at line 70 of file PlayaLinearOperatorDecl.hpp.

template<class Scalar >
RCP< Time > & LinearOperator::opTimer (  )  [inline]

Get a stopwatch for timing vector operations

Definition at line 162 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar >
LinearOperator< Scalar > LinearOperator::transpose (  )  const [inline]

Return a TransposeOperator.

Definition at line 171 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar >
RCP< LoadableMatrix< Scalar > > LinearOperator::matrix (  )  [inline]

Return a Loadable Matrix

Definition at line 183 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar>
void LinearOperator::getRow ( const int &  row,
Teuchos::Array< int > &  indices,
Teuchos::Array< Scalar > &  values 
) const [inline]

Get a row of the underlying matrix

Definition at line 192 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar >
int LinearOperator::numBlockRows (  )  const [inline]

return number of block rows

Definition at line 205 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar >
int LinearOperator::numBlockCols (  )  const [inline]

return number of block cols

Definition at line 214 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar >
LinearOperator< Scalar > LinearOperator::getBlock ( const int &  i,
const int &  j 
) const [inline]

get the (i,j)-th block

Definition at line 255 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar >
LinearOperator< Scalar > LinearOperator::getNonconstBlock ( const int &  i,
const int &  j 
) [inline]

get a writeable copy of the (i,j)-th block

Definition at line 274 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar>
void LinearOperator::setBlock ( int  i,
int  j,
const LinearOperator< Scalar > &  sub 
) [inline]

set the (i,j)-th block If the domain and/or the range are not set, then we are building the operator

Definition at line 231 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar >
void LinearOperator::endBlockFill (  )  [inline]

Finalize block assembly

Definition at line 294 of file PlayaLinearOperatorImpl.hpp.


Friends And Related Function Documentation

template<class Scalar>
LinearOperator< double > epetraMatrixMatrixProduct ( const LinearOperator< double > &  A,
const LinearOperator< double > &  B 
) [related]

Definition at line 73 of file PlayaEpetraMatrixMatrixProduct.cpp.

template<class Scalar>
LinearOperator< double > epetraLeftScale ( const Vector< double > &  d,
const LinearOperator< double > &  A 
) [related]

Definition at line 23 of file PlayaEpetraMatrixMatrixProduct.cpp.

template<class Scalar>
LinearOperator< double > epetraRightScale ( const LinearOperator< double > &  A,
const Vector< double > &  d 
) [related]

Definition at line 47 of file PlayaEpetraMatrixMatrixProduct.cpp.

template<class Scalar>
LinearOperator< double > epetraMatrixMatrixSum ( const LinearOperator< double > &  A,
const LinearOperator< double > &  B 
) [related]

Definition at line 23 of file PlayaEpetraMatrixMatrixSum.cpp.

template<class Scalar >
LinearOperator< Scalar > addedOperator ( const Array< LinearOperator< Scalar > > &  ops  )  [related]

Definition at line 94 of file PlayaSimpleAddedOpImpl.hpp.

template<class Scalar >
LinearOperator< Scalar > operator+ ( const LinearOperator< Scalar > &  A,
const LinearOperator< Scalar > &  B 
) [related]

Definition at line 123 of file PlayaSimpleAddedOpImpl.hpp.


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

doxygen