Public Member Functions | Private Member Functions | Private Attributes
TSFExtended::LoadableBlockOperator< Scalar > Class Template Reference

Class LoadableBlockOperator provides a LoadableMatrix interface for a physically-partitioned block 2x2 matrix, making it appear to the fill routine as if the block matrix is a single matrix. More...

Inheritance diagram for TSFExtended::LoadableBlockOperator< Scalar >:
TSFExtended::SimpleBlockOp< Scalar > TSFExtended::LoadableMatrix< Scalar > TSFExtended::SimplifiedLinearOpWithSpaces< Scalar > TSFExtended::SetableBlockOperatorBase< Scalar > TSFExtended::SimplifiedLinearOpBase< Scalar > TSFExtended::BlockOperatorBase< Scalar > TSFExtended::OpWithBackwardsCompatibleApply< Scalar > LinearOpBase Sundance::DefaultObjectWithVerbosity Sundance::ObjectWithVerbosityBase

List of all members.

Public Member Functions

 LoadableBlockOperator (const VectorSpace< Scalar > &domain, int lowestLocalCol, const RCP< Array< int > > &isBCCol, const RCP< std::set< int > > &remoteBCCols, const VectorSpace< Scalar > &range, int lowestLocalRow, const RCP< Array< int > > &isBCRow)
virtual ~LoadableBlockOperator ()
 Virtual dtor.
virtual void addToRow (int globalRowIndex, int nElemsToInsert, const int *globalColumnIndices, const Scalar *elementValues)
 Insert a set of elements in a row, adding to any previously existing values.
virtual void zero ()
 Set all elements to zero, preserving the existing structure.

Private Member Functions

RCP< LoadableMatrix< Scalar > > loadableBlock (int i, int j)
 Cast a block to LoadableMatrix, with safety checks.

Private Attributes

RCP< Array< int > > isBCCol_
RCP< Array< int > > isBCRow_
RCP< std::set< int > > remoteBCCols_
int lowestLocalRow_
int lowestLocalCol_
int highestLocalRow_
int highestLocalCol_

Detailed Description

template<class Scalar>
class TSFExtended::LoadableBlockOperator< Scalar >

Class LoadableBlockOperator provides a LoadableMatrix interface for a physically-partitioned block 2x2 matrix, making it appear to the fill routine as if the block matrix is a single matrix.

This is intended for filling systems where the internal and BC equations and unknowns are stored in physically separate blocks.

Definition at line 48 of file TSFLoadableBlockOperatorDecl.hpp.


Constructor & Destructor Documentation

template<class Scalar >
TSFExtended::LoadableBlockOperator< Scalar >::LoadableBlockOperator ( const VectorSpace< Scalar > &  domain,
int  lowestLocalCol,
const RCP< Array< int > > &  isBCCol,
const RCP< std::set< int > > &  remoteBCCols,
const VectorSpace< Scalar > &  range,
int  lowestLocalRow,
const RCP< Array< int > > &  isBCRow 
) [inline]

Definition at line 46 of file TSFLoadableBlockOperatorImpl.hpp.

template<class Scalar >
virtual TSFExtended::LoadableBlockOperator< Scalar >::~LoadableBlockOperator ( ) [inline, virtual]

Virtual dtor.

Definition at line 64 of file TSFLoadableBlockOperatorDecl.hpp.


Member Function Documentation

template<class Scalar >
void TSFExtended::LoadableBlockOperator< Scalar >::addToRow ( int  globalRowIndex,
int  nElemsToInsert,
const int *  globalColumnIndices,
const Scalar *  elementValues 
) [inline, virtual]

Insert a set of elements in a row, adding to any previously existing values.

The nonzero structure of the matrix must have been determined at construction time.

Parameters:
globalRowIndexthe global index of the row to which these elements belong.
nElemsToInsertthe number of elements being inserted in this step
globalColumnIndicesarray of column indices. Must be nElemsToInsert in length.
elementsarray of element values. Must be nElemsToInsert in length

Implements TSFExtended::LoadableMatrix< Scalar >.

Definition at line 66 of file TSFLoadableBlockOperatorImpl.hpp.

template<class Scalar >
RCP< LoadableMatrix< Scalar > > TSFExtended::LoadableBlockOperator< Scalar >::loadableBlock ( int  i,
int  j 
) [inline, private]

Cast a block to LoadableMatrix, with safety checks.

Definition at line 153 of file TSFLoadableBlockOperatorImpl.hpp.

template<class Scalar >
void TSFExtended::LoadableBlockOperator< Scalar >::zero ( ) [inline, virtual]

Set all elements to zero, preserving the existing structure.

Implements TSFExtended::LoadableMatrix< Scalar >.

Definition at line 137 of file TSFLoadableBlockOperatorImpl.hpp.


Member Data Documentation

template<class Scalar >
int TSFExtended::LoadableBlockOperator< Scalar >::highestLocalCol_ [private]

Definition at line 100 of file TSFLoadableBlockOperatorDecl.hpp.

template<class Scalar >
int TSFExtended::LoadableBlockOperator< Scalar >::highestLocalRow_ [private]

Definition at line 99 of file TSFLoadableBlockOperatorDecl.hpp.

template<class Scalar >
RCP<Array<int> > TSFExtended::LoadableBlockOperator< Scalar >::isBCCol_ [private]

Definition at line 94 of file TSFLoadableBlockOperatorDecl.hpp.

template<class Scalar >
RCP<Array<int> > TSFExtended::LoadableBlockOperator< Scalar >::isBCRow_ [private]

Definition at line 95 of file TSFLoadableBlockOperatorDecl.hpp.

template<class Scalar >
int TSFExtended::LoadableBlockOperator< Scalar >::lowestLocalCol_ [private]

Definition at line 98 of file TSFLoadableBlockOperatorDecl.hpp.

template<class Scalar >
int TSFExtended::LoadableBlockOperator< Scalar >::lowestLocalRow_ [private]

Definition at line 97 of file TSFLoadableBlockOperatorDecl.hpp.

template<class Scalar >
RCP<std::set<int> > TSFExtended::LoadableBlockOperator< Scalar >::remoteBCCols_ [private]

Definition at line 96 of file TSFLoadableBlockOperatorDecl.hpp.

Site Contact