EpetraExt  Development
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
EpetraExt::Transform< T, U > Class Template Referenceabstract

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

#include <EpetraExt_Transform.h>

Inheritance diagram for EpetraExt::Transform< T, U >:
Inheritance graph
[legend]

Public Member Functions

virtual ~Transform ()
 

Protected Member Functions

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

Protected Attributes

OriginalTypePtr origObj_
 
NewTypePtr newObj_
 

Typedefs for templated classes

typedef T OriginalType
 
typedef T * OriginalTypePtr
 
typedef Teuchos::RCP< T > OriginalTypeRCP
 
typedef T & OriginalTypeRef
 
typedef U NewType
 
typedef U * NewTypePtr
 
typedef Teuchos::RCP< U > NewTypeRCP
 
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. More...
 
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. More...
 
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. More...
 

Virtual functions with default implements allowing for optional

implementation by the Transform developer

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

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.

Definition at line 64 of file EpetraExt_Transform.h.

Member Typedef Documentation

◆ OriginalType

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

Definition at line 71 of file EpetraExt_Transform.h.

◆ OriginalTypePtr

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

Definition at line 72 of file EpetraExt_Transform.h.

◆ OriginalTypeRCP

template<typename T, typename U>
typedef Teuchos::RCP<T> EpetraExt::Transform< T, U >::OriginalTypeRCP

Definition at line 73 of file EpetraExt_Transform.h.

◆ OriginalTypeRef

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

Definition at line 74 of file EpetraExt_Transform.h.

◆ NewType

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

Definition at line 76 of file EpetraExt_Transform.h.

◆ NewTypePtr

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

Definition at line 77 of file EpetraExt_Transform.h.

◆ NewTypeRCP

template<typename T, typename U>
typedef Teuchos::RCP<U> EpetraExt::Transform< T, U >::NewTypeRCP

Definition at line 78 of file EpetraExt_Transform.h.

◆ NewTypeRef

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

Definition at line 79 of file EpetraExt_Transform.h.

Constructor & Destructor Documentation

◆ ~Transform()

template<typename T, typename U>
virtual EpetraExt::Transform< T, U >::~Transform ( )
inlinevirtual

Definition at line 84 of file EpetraExt_Transform.h.

◆ Transform()

template<typename T, typename U>
EpetraExt::Transform< T, U >::Transform ( )
inlineprotected

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

Initializes attributes origObj_ and newObj_ to 0.

Definition at line 211 of file EpetraExt_Transform.h.

Member Function Documentation

◆ operator()()

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::TPermutation< T, int_type >, EpetraExt::TPermutation< T, int >, EpetraExt::TPermutation< T, long long >, EpetraExt::CrsGraph_MapColoringIndex64, EpetraExt::CrsGraph_AMD, EpetraExt::CrsGraph_SymmRCM, and EpetraExt::CrsGraph_MapColoringIndex.

◆ fwd()

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::ViewTransform< T >, EpetraExt::ViewTransform< Epetra_LinearProblem >, EpetraExt::ViewTransform< Epetra_CrsMatrix >, EpetraExt::ViewTransform< Epetra_CrsGraph >, EpetraExt::ViewTransform< Epetra_MultiVector >, EpetraExt::StructuralSameTypeTransform< T >, EpetraExt::StructuralSameTypeTransform< Epetra_LinearProblem >, EpetraExt::StructuralSameTypeTransform< Epetra_CrsMatrix >, EpetraExt::StructuralSameTypeTransform< Epetra_CrsGraph >, EpetraExt::StructuralTransform< T, U >, EpetraExt::StructuralTransform< Epetra_CrsGraph, std::vector< Epetra_GIDTypeVector< int_type >::impl > >, EpetraExt::StructuralTransform< Epetra_CrsGraph, Epetra_MapColoring >, EpetraExt::StructuralTransform< Epetra_CrsGraph, std::vector< Epetra_GIDTypeVector< int >::impl > >, EpetraExt::StructuralTransform< Epetra_CrsGraph, std::vector< Epetra_GIDTypeVector< long long >::impl > >, EpetraExt::LinearProblem_StaticCondensation, EpetraExt::LinearProblem_CrsSingletonFilter, EpetraExt::LinearProblem_GraphTrans, EpetraExt::LinearProblem_MatrixTrans, EpetraExt::Transform_Composite< T >, EpetraExt::LinearProblem_Reindex2, EpetraExt::LinearProblem_BTF, EpetraExt::CrsMatrix_SubCopy, EpetraExt::RowMatrix_Transpose, EpetraExt::LinearProblem_Scale, EpetraExt::CrsMatrix_Dirichlet, EpetraExt::LinearProblem_BlockJacobi, EpetraExt::Vector_Dirichlet, and EpetraExt::CrsMatrix_BTF.

◆ rvs()

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::ViewTransform< T >, EpetraExt::ViewTransform< Epetra_LinearProblem >, EpetraExt::ViewTransform< Epetra_CrsMatrix >, EpetraExt::ViewTransform< Epetra_CrsGraph >, EpetraExt::ViewTransform< Epetra_MultiVector >, EpetraExt::StructuralSameTypeTransform< T >, EpetraExt::StructuralSameTypeTransform< Epetra_LinearProblem >, EpetraExt::StructuralSameTypeTransform< Epetra_CrsMatrix >, EpetraExt::StructuralSameTypeTransform< Epetra_CrsGraph >, EpetraExt::StructuralTransform< T, U >, EpetraExt::StructuralTransform< Epetra_CrsGraph, std::vector< Epetra_GIDTypeVector< int_type >::impl > >, EpetraExt::StructuralTransform< Epetra_CrsGraph, Epetra_MapColoring >, EpetraExt::StructuralTransform< Epetra_CrsGraph, std::vector< Epetra_GIDTypeVector< int >::impl > >, EpetraExt::StructuralTransform< Epetra_CrsGraph, std::vector< Epetra_GIDTypeVector< long long >::impl > >, EpetraExt::LinearProblem_StaticCondensation, EpetraExt::LinearProblem_CrsSingletonFilter, EpetraExt::LinearProblem_GraphTrans, EpetraExt::LinearProblem_MatrixTrans, EpetraExt::Transform_Composite< T >, EpetraExt::CrsMatrix_SubCopy, EpetraExt::LinearProblem_BTF, EpetraExt::LinearProblem_Scale, EpetraExt::RowMatrix_Transpose, EpetraExt::CrsMatrix_Dirichlet, EpetraExt::Vector_Dirichlet, EpetraExt::LinearProblem_BlockJacobi, and EpetraExt::CrsMatrix_BTF.

◆ analyze()

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_.

Definition at line 236 of file EpetraExt_Transform.h.

◆ construct()

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.

Definition at line 246 of file EpetraExt_Transform.h.

◆ isConstructed()

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.

Definition at line 254 of file EpetraExt_Transform.h.

Member Data Documentation

◆ origObj_

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

Definition at line 216 of file EpetraExt_Transform.h.

◆ newObj_

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

Definition at line 218 of file EpetraExt_Transform.h.


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