TSFExtended::LinearOperator< Scalar > Class Template Reference

User-level linear operator class. More...

Inheritance diagram for TSFExtended::LinearOperator< Scalar >:

Sundance::Handle< LinearOpBase< Scalar > > Sundance::ObjectWithVerbosityBase

List of all members.

Public Member Functions

const VectorSpace< Scalar > domain () const
 Return the domain.
const VectorSpace< Scalar > range () const
 Return the range.
void apply (const Vector< Scalar > &in, Vector< Scalar > &out, const Scalar &alpha=1.0, const Scalar &beta=0.0) const
 Compute.
void applyTranspose (const Vector< Scalar > &in, Vector< Scalar > &out, const Scalar &alpha=1.0, const Scalar &beta=0.0) const
 Compute.
LinearOperator< Scalar > form () const
 For the moment this does nothing.
RCP< Time > & opTimer ()
 Get a stopwatch for timing vector operations.
LinearOperator< Scalar > transpose () const
 Return a TransposeOperator.
RCP< LoadableMatrix< Scalar > > matrix ()
 Return a Loadable Matrix.
void getRow (const int &row, Teuchos::Array< int > &indices, Teuchos::Array< Scalar > &values) const
 Get a row of the underlying matrix.
Constructors, Destructors, and Assignment Operators
 LinearOperator ()
 Empty constructor.
 LinearOperator (const RCP< LinearOpBase< Scalar > > &smartPtr)
 Constructor with smart pointer.
Block operations
int numBlockRows () const
 return number of block rows
int numBlockCols () const
 return number of block cols
LinearOperator< Scalar > getBlock (const int &i, const int &j) const
 get the (i,j)-th block
LinearOperator< Scalar > getNonconstBlock (const int &i, const int &j)
 get a writeable copy of the (i,j)-th block
void setBlock (int i, int j, const LinearOperator< Scalar > &sub)
 set the (i,j)-th block If the domain and/or the range are not set, then we are building the operator
void endBlockFill ()
 Finalize block assembly.

Private Attributes

int verb_

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 TSFExtended::LinearOperator< Scalar >

User-level linear operator class.

Definition at line 57 of file TSFLinearOperatorDecl.hpp.


Constructor & Destructor Documentation

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

Empty constructor.

Definition at line 59 of file TSFLinearOperatorImpl.hpp.

template<class Scalar>
TSFExtended::LinearOperator< Scalar >::LinearOperator ( const RCP< LinearOpBase< Scalar > > &  smartPtr  ) 

Constructor with smart pointer.


Member Function Documentation

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

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

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

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

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

For the moment this does nothing.

Definition at line 100 of file TSFLinearOperatorDecl.hpp.

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

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 310 of file TSFLinearOperatorImpl.hpp.

References TSFExtended::BlockOperatorBase< Scalar >::getNonconstBlock(), and Sundance::Handle< LinearOpBase< Scalar > >::ptr().

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 228 of file TSFLinearOperatorImpl.hpp.

References TSFExtended::RowAccessibleOp< Scalar >::getRow(), and Sundance::Handle< LinearOpBase< Scalar > >::ptr().

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

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

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

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

Get a stopwatch for timing vector operations.

Definition at line 198 of file TSFLinearOperatorImpl.hpp.

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

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

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

Return a TransposeOperator.

Definition at line 207 of file TSFLinearOperatorImpl.hpp.

References TSFExtended::transposedOperator().


Friends And Related Function Documentation

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

Definition at line 135 of file TSFNonmemberOpHelpersImpl.hpp.

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

Definition at line 48 of file TSFEpetraMatrixMatrixProduct.cpp.

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

Definition at line 111 of file TSFEpetraMatrixMatrixProduct.cpp.

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

Definition at line 47 of file TSFEpetraMatrixMatrixSum.cpp.

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

Definition at line 79 of file TSFEpetraMatrixMatrixProduct.cpp.

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

Definition at line 148 of file TSFSimpleAddedOpImpl.hpp.


Member Data Documentation

template<class Scalar>
int TSFExtended::LinearOperator< Scalar >::verb_ [private]

Definition at line 154 of file TSFLinearOperatorDecl.hpp.

Site Contact