Reference documentation for deal.II version 8.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | Related Functions | List of all members
PointerMatrixAux< MATRIX, VECTOR > Class Template Reference

#include <pointer_matrix.h>

Inheritance diagram for PointerMatrixAux< MATRIX, VECTOR >:
[legend]

Public Member Functions

 PointerMatrixAux (VectorMemory< VECTOR > *mem=0, const MATRIX *M=0)
 
 PointerMatrixAux (VectorMemory< VECTOR > *mem, const char *name)
 
 PointerMatrixAux (VectorMemory< VECTOR > *mem, const MATRIX *M, const char *name)
 
virtual void clear ()
 
bool empty () const
 
void set_memory (VectorMemory< VECTOR > *mem)
 
const PointerMatrixAuxoperator= (const MATRIX *M)
 
virtual void vmult (VECTOR &dst, const VECTOR &src) const
 
virtual void Tvmult (VECTOR &dst, const VECTOR &src) const
 
virtual void vmult_add (VECTOR &dst, const VECTOR &src) const
 
virtual void Tvmult_add (VECTOR &dst, const VECTOR &src) const
 
- Public Member Functions inherited from PointerMatrixBase< VECTOR >
virtual ~PointerMatrixBase ()
 
bool operator== (const PointerMatrixBase< VECTOR > &) const
 
bool operator!= (const PointerMatrixBase< VECTOR > &) const
 
bool operator< (const PointerMatrixBase< VECTOR > &) const
 
bool operator<= (const PointerMatrixBase< VECTOR > &) const
 
bool operator> (const PointerMatrixBase< VECTOR > &) const
 
bool operator>= (const PointerMatrixBase< VECTOR > &) const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
void subscribe (const char *identifier=0) const
 
void unsubscribe (const char *identifier=0) const
 
unsigned int n_subscriptions () const
 
void list_subscribers () const
 
 DeclException3 (ExcInUse, int, char *, std::string &,<< "Object of class "<< arg2<< " is still used by "<< arg1<< " other objects.\n"<< "(Additional information: "<< arg3<< ")\n"<< "Note the entry in the Frequently Asked Questions of "<< "deal.II (linked to from http://www.dealii.org/) for "<< "more information on what this error means.")
 
 DeclException2 (ExcNoSubscriber, char *, char *,<< "No subscriber with identifier \""<< arg2<< "\" did subscribe to this object of class "<< arg1)
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Member Functions

virtual const void * get () const
 

Private Attributes

GrowingVectorMemory< VECTOR > my_memory
 
SmartPointer< VectorMemory
< VECTOR >, PointerMatrixAux
< MATRIX, VECTOR > > 
mem
 
SmartPointer< const MATRIX,
PointerMatrixAux< MATRIX,
VECTOR > > 
m
 

Related Functions

(Note that these are not member functions.)

template<class VECTOR , class MATRIX >
PointerMatrixBase< VECTOR > * new_pointer_matrix_base (MATRIX &matrix, const VECTOR &, const char *name="PointerMatrixAux")
 

Additional Inherited Members

- Public Types inherited from PointerMatrixBase< VECTOR >
typedef VECTOR::value_type value_type
 

Detailed Description

template<class MATRIX, class VECTOR>
class PointerMatrixAux< MATRIX, VECTOR >

A pointer to be used as a matrix. This class stores a pointer to a matrix and can be used as a matrix itself in iterative methods.

The main purpose for the existence of this class is its base class, which only has a vector as template argument. Therefore, this interface provides an abstract base class for matrices.

This class differs form PointerMatrix by its additional VectorMemory object and by the fact that it implements the functions vmult_add() and Tvmult_add() only using vmult() and Tvmult() of the MATRIX.

Author
Guido Kanschat 2006

Definition at line 274 of file pointer_matrix.h.

Constructor & Destructor Documentation

template<class MATRIX , class VECTOR >
PointerMatrixAux< MATRIX, VECTOR >::PointerMatrixAux ( VectorMemory< VECTOR > *  mem = 0,
const MATRIX M = 0 
)

Constructor. The pointer in the argument is stored in this class. As usual, the lifetime of *M must be longer than the one of the PointerMatrixAux.

If M is zero, no matrix is stored.

If mem is zero, then GrowingVectorMemory is used.

Definition at line 851 of file pointer_matrix.h.

template<class MATRIX , class VECTOR >
PointerMatrixAux< MATRIX, VECTOR >::PointerMatrixAux ( VectorMemory< VECTOR > *  mem,
const char *  name 
)

Constructor not using a matrix. The name argument is used to identify the SmartPointer for this object.

Definition at line 862 of file pointer_matrix.h.

template<class MATRIX , class VECTOR >
PointerMatrixAux< MATRIX, VECTOR >::PointerMatrixAux ( VectorMemory< VECTOR > *  mem,
const MATRIX M,
const char *  name 
)

Constructor. M points to a matrix which must live longer than the PointerMatrixAux. The name argument is used to identify the SmartPointer for this object.

Definition at line 873 of file pointer_matrix.h.

Member Function Documentation

template<class MATRIX , class VECTOR >
void PointerMatrixAux< MATRIX, VECTOR >::clear ( )
inlinevirtual

Reset pointer and release the matrix pointed to.

Implements PointerMatrixBase< VECTOR >.

Definition at line 886 of file pointer_matrix.h.

template<class MATRIX , class VECTOR >
bool PointerMatrixAux< MATRIX, VECTOR >::empty ( ) const
inline

Return whether the object is empty.

Definition at line 913 of file pointer_matrix.h.

template<class MATRIX , class VECTOR >
void PointerMatrixAux< MATRIX, VECTOR >::set_memory ( VectorMemory< VECTOR > *  mem)
inline

Assign a new VectorMemory object for getting auxiliary vectors.

Definition at line 903 of file pointer_matrix.h.

template<class MATRIX , class VECTOR >
const PointerMatrixAux< MATRIX, VECTOR > & PointerMatrixAux< MATRIX, VECTOR >::operator= ( const MATRIX M)
inline

Assign a new matrix pointer. Deletes the old pointer and releases its matrix.

See Also
SmartPointer

Definition at line 894 of file pointer_matrix.h.

template<class MATRIX , class VECTOR >
void PointerMatrixAux< MATRIX, VECTOR >::vmult ( VECTOR &  dst,
const VECTOR &  src 
) const
inlinevirtual

Matrix-vector product.

Implements PointerMatrixBase< VECTOR >.

Definition at line 922 of file pointer_matrix.h.

template<class MATRIX , class VECTOR >
void PointerMatrixAux< MATRIX, VECTOR >::Tvmult ( VECTOR &  dst,
const VECTOR &  src 
) const
inlinevirtual

Tranposed matrix-vector product.

Implements PointerMatrixBase< VECTOR >.

Definition at line 935 of file pointer_matrix.h.

template<class MATRIX , class VECTOR >
void PointerMatrixAux< MATRIX, VECTOR >::vmult_add ( VECTOR &  dst,
const VECTOR &  src 
) const
inlinevirtual

Matrix-vector product, adding to dst.

Implements PointerMatrixBase< VECTOR >.

Definition at line 948 of file pointer_matrix.h.

template<class MATRIX , class VECTOR >
void PointerMatrixAux< MATRIX, VECTOR >::Tvmult_add ( VECTOR &  dst,
const VECTOR &  src 
) const
inlinevirtual

Tranposed matrix-vector product, adding to dst.

Implements PointerMatrixBase< VECTOR >.

Definition at line 965 of file pointer_matrix.h.

template<class MATRIX , class VECTOR >
const void * PointerMatrixAux< MATRIX, VECTOR >::get ( ) const
inlineprivatevirtual

Return the address of the matrix for comparison.

Implements PointerMatrixBase< VECTOR >.

Definition at line 982 of file pointer_matrix.h.

Member Data Documentation

template<class MATRIX, class VECTOR>
GrowingVectorMemory<VECTOR> PointerMatrixAux< MATRIX, VECTOR >::my_memory
mutableprivate

The backup memory if none was provided.

Definition at line 376 of file pointer_matrix.h.

template<class MATRIX, class VECTOR>
SmartPointer<VectorMemory<VECTOR>,PointerMatrixAux<MATRIX,VECTOR> > PointerMatrixAux< MATRIX, VECTOR >::mem
mutableprivate

Object for getting the auxiliary vector.

Definition at line 382 of file pointer_matrix.h.

template<class MATRIX, class VECTOR>
SmartPointer<const MATRIX,PointerMatrixAux<MATRIX,VECTOR> > PointerMatrixAux< MATRIX, VECTOR >::m
private

The pointer to the actual matrix.

Definition at line 387 of file pointer_matrix.h.


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