Public Member Functions | Private Member Functions | Private Attributes | Related Functions

PointerMatrixAux< MATRIX, VECTOR > Class Template Reference
[Derived matrices]

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

List of all members.

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

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")

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 269 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 846 of file pointer_matrix.h.

References PointerMatrixAux< MATRIX, VECTOR >::my_memory.

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 857 of file pointer_matrix.h.

References PointerMatrixAux< MATRIX, VECTOR >::my_memory.

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 868 of file pointer_matrix.h.

References PointerMatrixAux< MATRIX, VECTOR >::my_memory.


Member Function Documentation

template<class MATRIX , class VECTOR >
void PointerMatrixAux< MATRIX, VECTOR >::clear (  ) [inline, virtual]

Reset pointer and release the matrix pointed to.

Implements PointerMatrixBase< VECTOR >.

Definition at line 881 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 908 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 898 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 889 of file pointer_matrix.h.

template<class MATRIX , class VECTOR >
void PointerMatrixAux< MATRIX, VECTOR >::vmult ( VECTOR &  dst,
const VECTOR &  src 
) const [inline, virtual]

Matrix-vector product.

Implements PointerMatrixBase< VECTOR >.

Definition at line 917 of file pointer_matrix.h.

References Assert, and StandardExceptions::ExcNotInitialized().

template<class MATRIX , class VECTOR >
void PointerMatrixAux< MATRIX, VECTOR >::Tvmult ( VECTOR &  dst,
const VECTOR &  src 
) const [inline, virtual]

Tranposed matrix-vector product.

Implements PointerMatrixBase< VECTOR >.

Definition at line 930 of file pointer_matrix.h.

References Assert, and StandardExceptions::ExcNotInitialized().

template<class MATRIX , class VECTOR >
void PointerMatrixAux< MATRIX, VECTOR >::vmult_add ( VECTOR &  dst,
const VECTOR &  src 
) const [inline, virtual]

Matrix-vector product, adding to dst.

Implements PointerMatrixBase< VECTOR >.

Definition at line 943 of file pointer_matrix.h.

References Assert, and StandardExceptions::ExcNotInitialized().

template<class MATRIX , class VECTOR >
void PointerMatrixAux< MATRIX, VECTOR >::Tvmult_add ( VECTOR &  dst,
const VECTOR &  src 
) const [inline, virtual]

Tranposed matrix-vector product, adding to dst.

Implements PointerMatrixBase< VECTOR >.

Definition at line 960 of file pointer_matrix.h.

References Assert, and StandardExceptions::ExcNotInitialized().

template<class MATRIX , class VECTOR >
const void * PointerMatrixAux< MATRIX, VECTOR >::get (  ) const [inline, private, virtual]

Return the address of the matrix for comparison.

Implements PointerMatrixBase< VECTOR >.

Definition at line 977 of file pointer_matrix.h.


Member Data Documentation

template<class MATRIX, class VECTOR>
GrowingVectorMemory<VECTOR> PointerMatrixAux< MATRIX, VECTOR >::my_memory [mutable, private]

The backup memory if none was provided.

Definition at line 371 of file pointer_matrix.h.

Referenced by PointerMatrixAux< MATRIX, VECTOR >::PointerMatrixAux().

template<class MATRIX, class VECTOR>
SmartPointer<VectorMemory<VECTOR>,PointerMatrixAux<MATRIX,VECTOR> > PointerMatrixAux< MATRIX, VECTOR >::mem [mutable, private]

Object for getting the auxiliary vector.

Definition at line 377 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 382 of file pointer_matrix.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

deal.II documentation generated on Fri Feb 3 2012 06:04:10 by doxygen 1.7.2