SysTransfer< T > Class Template Reference

The transfer operators base class template for vector equations. More...

#include <Transfer.hpp>

Inheritance diagram for SysTransfer< T >:

Inheritance graph
[legend]
Collaboration diagram for SysTransfer< T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual void PrintParam ()=0
 Prints the name of the transfer object and (optionally) the parameters.
virtual bool ProperGrids (int i, const Array< int > &p_domain_size, const Array< int > &p_range_size)=0
 Returns true if the grid sizes may correspond to the domain and the range of the prolongation (or the range and the domain of the restriction) for a given part of the system (i.e. for a given index i).
virtual void Prolong (GridVec< T > &src, GridVec< T > &dst)=0
 The prolongation.
virtual void Restrict (GridVec< T > &src, GridVec< T > &dst)=0
 The restriction.
virtual ~SysTransfer ()
 Virtual destructor.

Detailed Description

template<typename T>
class SysTransfer< T >

The transfer operators base class template for vector equations.

This class template is a generic interface for all transfer (prolongation/restriction) operators used for ex. in the geometrical multigrid methods. All the functions declared in this class are virtual and should be implemented for particular transfer operators.

Note:
The templates depend on a type T. This type should satisfy the conditions listed in small_matrix.hpp for small matrices.


Constructor & Destructor Documentation

template<typename T>
virtual SysTransfer< T >::~SysTransfer (  )  [inline, virtual]

Virtual destructor.


Member Function Documentation

template<typename T>
virtual void SysTransfer< T >::PrintParam (  )  [pure virtual]

Prints the name of the transfer object and (optionally) the parameters.

Implemented in NLTGlobalAssemble< T >, BiTransfer< T >, ConstTransfer< T >, LinCCTransfer< T >, and MixedTransfer< T >.

template<typename T>
virtual bool SysTransfer< T >::ProperGrids ( int  i,
const Array< int > &  p_domain_size,
const Array< int > &  p_range_size 
) [pure virtual]

Returns true if the grid sizes may correspond to the domain and the range of the prolongation (or the range and the domain of the restriction) for a given part of the system (i.e. for a given index i).

If the subclass does not implement transfer operator for some index, the function should return false.

Parameters:
[in] i The part of the system
[in] p_domain_size For the domain of the prolongation
[in] p_range_size For the range of the prolongation

Implemented in NLTGlobalAssemble< T >.

template<typename T>
virtual void SysTransfer< T >::Prolong ( GridVec< T > &  src,
GridVec< T > &  dst 
) [pure virtual]

The prolongation.

Parameters:
[in] src The vector to prolong
[in] dst The result (the sizes must be initialized!)

Implemented in NLTGlobalAssemble< T >.

template<typename T>
virtual void SysTransfer< T >::Restrict ( GridVec< T > &  src,
GridVec< T > &  dst 
) [pure virtual]

The restriction.

Parameters:
[in] src The vector to restrict
[in] dst The result (the sizes must be initialized!)

Implemented in NLTGlobalAssemble< T >.


The documentation for this class was generated from the following file:
Generated on Fri Sep 21 12:34:42 2007 for SG2 by  doxygen 1.5.2