Public Member Functions | Related Functions
Playa::LinearOperator< Scalar > Class Template Reference
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 68 of file PlayaLinearOperatorDecl.hpp.


Constructor & Destructor Documentation

template<class Scalar >
LinearOperator::LinearOperator ( )

Empty constructor

Definition at line 72 of file PlayaLinearOperatorImpl.hpp.

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

Constructor with smart pointer

Definition at line 78 of file PlayaLinearOperatorImpl.hpp.


Member Function Documentation

template<class Scalar>
void LinearOperator::apply ( const Vector< Scalar > &  in,
Vector< Scalar > &  out 
) const [inline]
template<class Scalar>
void LinearOperator::applyTranspose ( const Vector< Scalar > &  in,
Vector< Scalar > &  out 
) const [inline]
template<class Scalar >
const VectorSpace< Scalar > LinearOperator::domain ( ) const
template<class Scalar >
void LinearOperator::endBlockFill ( )
template<class Scalar>
LinearOperator<Scalar> Playa::LinearOperator< Scalar >::form ( ) const [inline]

For the moment this does nothing

Definition at line 107 of file PlayaLinearOperatorDecl.hpp.

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

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

Definition at line 311 of file PlayaLinearOperatorImpl.hpp.

References Playa::BlockOperatorBase< Scalar >::getNonconstBlock().

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

Get a row of the underlying matrix

Definition at line 229 of file PlayaLinearOperatorImpl.hpp.

References Playa::RowAccessibleOp< Scalar >::getRow().

template<class Scalar >
RCP< LoadableMatrix< Scalar > > LinearOperator::matrix ( )
template<class Scalar >
int LinearOperator::numBlockCols ( ) const

return number of block cols

Definition at line 251 of file PlayaLinearOperatorImpl.hpp.

References Playa::BlockOperatorBase< Scalar >::numBlockCols().

Referenced by Playa::BlockTriangularSolver< Scalar >::solve().

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

return number of block rows

Definition at line 242 of file PlayaLinearOperatorImpl.hpp.

References Playa::BlockOperatorBase< Scalar >::numBlockRows().

Referenced by Playa::BlockTriangularSolver< Scalar >::solve().

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

Get a stopwatch for timing vector operations

Definition at line 199 of file PlayaLinearOperatorImpl.hpp.

template<class Scalar >
const VectorSpace< Scalar > LinearOperator::range ( ) const
template<class Scalar>
void LinearOperator::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

Definition at line 268 of file PlayaLinearOperatorImpl.hpp.

References Playa::SetableBlockOperatorBase< Scalar >::setBlock().

Referenced by Sundance::Assembler::configureMatrix(), and Playa::PCDPreconditionerFactory::createPreconditioner().

template<class Scalar >
LinearOperator< Scalar > LinearOperator::transpose ( ) const

Return a TransposeOperator.

Definition at line 208 of file PlayaLinearOperatorImpl.hpp.

References Playa::transposedOperator().

Referenced by Playa::EpetraMatrix::getICCPreconditioner().


Friends And Related Function Documentation

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

Definition at line 131 of file PlayaSimpleAddedOpImpl.hpp.

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

Definition at line 60 of file PlayaEpetraMatrixMatrixProduct.cpp.

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

Definition at line 110 of file PlayaEpetraMatrixMatrixProduct.cpp.

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

Definition at line 60 of file PlayaEpetraMatrixMatrixSum.cpp.

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

Definition at line 84 of file PlayaEpetraMatrixMatrixProduct.cpp.

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

Definition at line 160 of file PlayaSimpleAddedOpImpl.hpp.

Site Contact