EpetraExt::Transform< T, U > Class Template Reference

Base Class for all Epetra Transform Operators. More...

#include <EpetraExt_Transform.h>

Inheritance diagram for EpetraExt::Transform< T, U >:

[legend]
List of all members.

Typedefs for templated classes

typedef T OriginalType
typedef T * OriginalTypePtr
typedef T & OriginalTypeRef
typedef U NewType
typedef U * NewTypePtr
typedef U & NewTypeRef

Pure Virtual Methods which must be implemented by subclasses

virtual NewTypeRef operator() (OriginalTypeRef orig)=0
 Analysis of transform operation on original object and construction of new object.
virtual bool fwd ()=0
 Forward transfer of data from orig object input in the operator() method call to the new object created in this same call.
virtual bool rvs ()=0
 Reverse transfer of data from new object created in the operator() method call to the orig object input to this same method.

Virtual functions with default implements allowing for optional

implementation by the Transform developer

virtual bool analyze (OriginalTypeRef orig)
 Initial analysis phase of transform.
virtual NewTypeRef construct ()
 Construction of new object as a result of the transform.
virtual bool isConstructed ()
 Check for whether transformed object has been constructed.

Public Member Functions

virtual ~Transform ()

Protected Member Functions

 Transform ()
 Default constructor, protected to allow only derived classes to use.

Protected Attributes

OriginalTypePtr origObj_
NewTypePtr newObj_

Detailed Description

template<typename T, typename U>
class EpetraExt::Transform< T, U >

Base Class for all Epetra Transform Operators.

This is the abstract definition for all Epetra Transform Operators. Depending on the type of Transform, several specializations are available: Structural, SameType, InPlace, View.


Member Typedef Documentation

template<typename T, typename U>
typedef T EpetraExt::Transform< T, U >::OriginalType
 

template<typename T, typename U>
typedef T* EpetraExt::Transform< T, U >::OriginalTypePtr
 

template<typename T, typename U>
typedef T& EpetraExt::Transform< T, U >::OriginalTypeRef
 

template<typename T, typename U>
typedef U EpetraExt::Transform< T, U >::NewType
 

template<typename T, typename U>
typedef U* EpetraExt::Transform< T, U >::NewTypePtr
 

template<typename T, typename U>
typedef U& EpetraExt::Transform< T, U >::NewTypeRef
 


Constructor & Destructor Documentation

template<typename T, typename U>
virtual EpetraExt::Transform< T, U >::~Transform  )  [inline, virtual]
 

template<typename T, typename U>
EpetraExt::Transform< T, U >::Transform  )  [inline, protected]
 

Default constructor, protected to allow only derived classes to use.

Initializes attributes origObj_ and newObj_ to 0.


Member Function Documentation

template<typename T, typename U>
virtual NewTypeRef EpetraExt::Transform< T, U >::operator() OriginalTypeRef  orig  )  [pure virtual]
 

Analysis of transform operation on original object and construction of new object.

Preconditions:

Invariants:

Postconditions:

Returns:
Returns a pointer to the newly created object of type NewTypeRef. The Transform object maintains ownership of this new object and deletes as a part of it's destruction.

Implemented in EpetraExt::LinearProblem_BlockJacobi, EpetraExt::CrsGraph_BTF, EpetraExt::CrsMatrix_BTF, EpetraExt::LinearProblem_BTF, EpetraExt::CrsGraph_MapColoringIndex, EpetraExt::CrsGraph_AMD, EpetraExt::LinearProblem_GraphTrans, EpetraExt::LinearProblem_MatrixTrans, EpetraExt::CrsGraph_Overlap, EpetraExt::CrsMatrix_Reindex, EpetraExt::LinearProblem_Reindex, EpetraExt::MultiVector_Reindex, EpetraExt::CrsMatrix_SolverMap, EpetraExt::LinearProblem_SolverMap, EpetraExt::LinearProblem_StaticCondensation, EpetraExt::CrsMatrix_SubCopy, EpetraExt::CrsGraph_SymmRCM, EpetraExt::CrsGraph_Transpose, EpetraExt::RowMatrix_Transpose, EpetraExt::CrsGraph_View, EpetraExt::CrsMatrix_View, EpetraExt::MultiVector_View, and EpetraExt::Zoltan_CrsGraph.

template<typename T, typename U>
virtual bool EpetraExt::Transform< T, U >::fwd  )  [pure virtual]
 

Forward transfer of data from orig object input in the operator() method call to the new object created in this same call.

Returns true is operation is successful.

Preconditions:

Invariants:

Postconditions:

Implemented in EpetraExt::LinearProblem_BlockJacobi, EpetraExt::CrsMatrix_BTF, EpetraExt::LinearProblem_BTF, EpetraExt::LinearProblem_CrsSingletonFilter, EpetraExt::CrsMatrix_Dirichlet, EpetraExt::Vector_Dirichlet, EpetraExt::LinearProblem_GraphTrans, EpetraExt::LinearProblem_MatrixTrans, EpetraExt::LinearProblem_Scale, EpetraExt::LinearProblem_StaticCondensation, EpetraExt::CrsMatrix_SubCopy, EpetraExt::StructuralTransform< T, U >, EpetraExt::StructuralSameTypeTransform< T >, EpetraExt::ViewTransform< T >, EpetraExt::Transform_Composite< T >, EpetraExt::RowMatrix_Transpose, EpetraExt::StructuralTransform< Epetra_CrsGraph, Epetra_MapColoring >, EpetraExt::StructuralTransform< Epetra_CrsGraph, std::vector< Epetra_IntVector > >, EpetraExt::StructuralSameTypeTransform< Epetra_LinearProblem >, EpetraExt::StructuralSameTypeTransform< Epetra_CrsMatrix >, EpetraExt::StructuralSameTypeTransform< Epetra_CrsGraph >, EpetraExt::ViewTransform< Epetra_LinearProblem >, EpetraExt::ViewTransform< Epetra_CrsMatrix >, EpetraExt::ViewTransform< Epetra_CrsGraph >, and EpetraExt::ViewTransform< Epetra_MultiVector >.

template<typename T, typename U>
virtual bool EpetraExt::Transform< T, U >::rvs  )  [pure virtual]
 

Reverse transfer of data from new object created in the operator() method call to the orig object input to this same method.

Returns true if operation is successful.

Preconditions:

Invariants:

Postconditions:

Implemented in EpetraExt::LinearProblem_BlockJacobi, EpetraExt::CrsMatrix_BTF, EpetraExt::LinearProblem_BTF, EpetraExt::LinearProblem_CrsSingletonFilter, EpetraExt::CrsMatrix_Dirichlet, EpetraExt::Vector_Dirichlet, EpetraExt::LinearProblem_GraphTrans, EpetraExt::LinearProblem_MatrixTrans, EpetraExt::LinearProblem_Scale, EpetraExt::LinearProblem_StaticCondensation, EpetraExt::CrsMatrix_SubCopy, EpetraExt::StructuralTransform< T, U >, EpetraExt::StructuralSameTypeTransform< T >, EpetraExt::ViewTransform< T >, EpetraExt::Transform_Composite< T >, EpetraExt::RowMatrix_Transpose, EpetraExt::StructuralTransform< Epetra_CrsGraph, Epetra_MapColoring >, EpetraExt::StructuralTransform< Epetra_CrsGraph, std::vector< Epetra_IntVector > >, EpetraExt::StructuralSameTypeTransform< Epetra_LinearProblem >, EpetraExt::StructuralSameTypeTransform< Epetra_CrsMatrix >, EpetraExt::StructuralSameTypeTransform< Epetra_CrsGraph >, EpetraExt::ViewTransform< Epetra_LinearProblem >, EpetraExt::ViewTransform< Epetra_CrsMatrix >, EpetraExt::ViewTransform< Epetra_CrsGraph >, and EpetraExt::ViewTransform< Epetra_MultiVector >.

template<typename T, typename U>
bool EpetraExt::Transform< T, U >::analyze OriginalTypeRef  orig  )  [virtual]
 

Initial analysis phase of transform.

Returns true if the transform is possible allowing methods construct(), fwd() and rvs() to be successfully utilized.

Preconditions:

Invariants:

Postconditions:

The default implementation calls method operator() and stores the resulting object in an internal attribute newObj_.

template<typename T, typename U>
Transform< T, U >::NewTypeRef EpetraExt::Transform< T, U >::construct  )  [virtual]
 

Construction of new object as a result of the transform.

Preconditions:

Invariants:

Postconditions:

The default implementation returns internal attribute newObj_.

Reimplemented in EpetraExt::LinearProblem_CrsSingletonFilter.

template<typename T, typename U>
bool EpetraExt::Transform< T, U >::isConstructed  )  [virtual]
 

Check for whether transformed object has been constructed.

Preconditions:

Invariants:

Postconditions:

The default implementation returns true if newObj_ != 0.


Member Data Documentation

template<typename T, typename U>
OriginalTypePtr EpetraExt::Transform< T, U >::origObj_ [protected]
 

template<typename T, typename U>
NewTypePtr EpetraExt::Transform< T, U >::newObj_ [protected]
 


The documentation for this class was generated from the following file:
Generated on Wed Dec 3 12:13:32 2008 for EpetraExt by  doxygen 1.3.9.1