Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Protected Member Functions | List of all members
Tpetra::Transform< T, U > Class Template Referenceabstract

#include <Tpetra_Transform.hpp>

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

Public Types

Typedefs for templated classes
using OriginalType = Teuchos::RCP< T >
 
using OriginalConstType = Teuchos::RCP< const T >
 
using NewType = Teuchos::RCP< U >
 
using NewConstType = Teuchos::RCP< const U >
 

Public Member Functions

Pure Virtual Methods which must be implemented by subclasses
virtual NewType operator() (const OriginalType &orig)=0
 Analysis of transform operation on original object and construction of new object. More...
 
virtual void fwd ()=0
 Forward transfer of data. More...
 
virtual void rvs ()=0
 Reverse transfer of data. More...
 
Virtual functions with default implements allowing for optional

implementation by the Transform developer

virtual void analyze (const OriginalType &orig)
 Initial analysis phase of transform. More...
 
virtual NewType construct ()
 Construction of new object as a result of the transform. More...
 
virtual bool isConstructed ()
 Check if transformed object has been constructed. More...
 

Protected Member Functions

 Transform ()
 Default constructor. More...
 

Detailed Description

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

Base Class for all Tpetra Transforms.

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

Definition at line 30 of file Tpetra_Transform.hpp.

Constructor & Destructor Documentation

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

Default constructor.

Protected to allow only derived classes to use.

Initializes attributes origObj_ and newObj_ to Teuchos::null.

Definition at line 105 of file Tpetra_Transform.hpp.

Member Function Documentation

template<typename T, typename U>
virtual NewType Tpetra::Transform< T, U >::operator() ( const OriginalType &  orig)
pure virtual

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

Returns
Returns an RCP to the newly created object of type NewType.
template<typename T, typename U>
virtual void Tpetra::Transform< T, U >::fwd ( )
pure virtual

Forward transfer of data.

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

template<typename T, typename U>
virtual void Tpetra::Transform< T, U >::rvs ( )
pure virtual

Reverse transfer of data.

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

template<typename T , typename U >
void Tpetra::Transform< T, U >::analyze ( const OriginalType &  orig)
virtual

Initial analysis phase of transform.

Initial analysis phase of transform to confirm the transform is possible allowing methods construct(), fwd() and rvs() to be successfully utilized.

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

Definition at line 127 of file Tpetra_Transform.hpp.

template<typename T , typename U >
Transform< T, U >::NewType Tpetra::Transform< T, U >::construct ( )
virtual

Construction of new object as a result of the transform.

The default implementation returns internal attribute newObj_.

Definition at line 136 of file Tpetra_Transform.hpp.

template<typename T , typename U >
bool Tpetra::Transform< T, U >::isConstructed ( )
virtual

Check if transformed object has been constructed.

The default implementation returns true if newObj_ != 0.

Definition at line 142 of file Tpetra_Transform.hpp.


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