$extrastylesheet
libMesh::DenseVectorBase< T > Class Template Reference

#include <dense_vector_base.h>

Inheritance diagram for libMesh::DenseVectorBase< T >:

List of all members.

Public Member Functions

 DenseVectorBase ()
virtual ~DenseVectorBase ()
virtual void zero ()=0
virtual T el (const unsigned int i) const =0
virtual T & el (const unsigned int i)=0
virtual unsigned int size () const =0
virtual bool empty () const
void print (std::ostream &os) const
void print_scientific (std::ostream &os) const

Friends

std::ostream & operator<< (std::ostream &os, const DenseVectorBase< T > &v)

Detailed Description

template<typename T>
class libMesh::DenseVectorBase< T >

Defines an abstract dense vector base class for use in Finite Element-type computations. Specialized dense vectors, for example DenseSubVectors, can be derived from this class.

Author:
John W. Peterson, 2003

Definition at line 46 of file dense_vector_base.h.


Constructor & Destructor Documentation

template<typename T>
libMesh::DenseVectorBase< T >::DenseVectorBase ( ) [inline]

Constructor. Empty.

Definition at line 53 of file dense_vector_base.h.

{}
template<typename T>
virtual libMesh::DenseVectorBase< T >::~DenseVectorBase ( ) [inline, virtual]

Destructor. Does nothing.

Definition at line 58 of file dense_vector_base.h.

{}

Member Function Documentation

template<typename T>
virtual T libMesh::DenseVectorBase< T >::el ( const unsigned int  i) const [pure virtual]
template<typename T>
virtual T& libMesh::DenseVectorBase< T >::el ( const unsigned int  i) [pure virtual]
Returns:
the (i) element of the vector as a writeable reference.

Implemented in libMesh::DenseVector< T >, and libMesh::DenseVector< Number >.

template<typename T>
virtual bool libMesh::DenseVectorBase< T >::empty ( ) const [inline, virtual]
Returns:
true iff size() is 0.

Reimplemented in libMesh::DenseVector< T >, and libMesh::DenseVector< Number >.

Definition at line 85 of file dense_vector_base.h.

Referenced by libMesh::NumericVector< T >::insert().

{ return (this->size() == 0); }
template<typename T >
void libMesh::DenseVectorBase< T >::print ( std::ostream &  os) const

Pretty-print the vector to stdout.

Definition at line 62 of file dense_vector_base.C.

{
  for (unsigned int i=0; i<this->size(); i++)
    os << std::setw(8)
       << this->el(i)
       << std::endl;
}
template<typename T >
void libMesh::DenseVectorBase< T >::print_scientific ( std::ostream &  os) const

Prints the entries of the vector with additional decimal places in scientific notation.

Definition at line 30 of file dense_vector_base.C.

{
#ifndef LIBMESH_BROKEN_IOSTREAM

  // save the initial format flags
  std::ios_base::fmtflags os_flags = os.flags();

  // Print the vector entries.
  for (unsigned int i=0; i<this->size(); i++)
    os << std::setw(10)
       << std::scientific
       << std::setprecision(8)
       << this->el(i)
       << std::endl;

  // reset the original format flags
  os.flags(os_flags);

#else

  // Print the matrix entries.
  for (unsigned int i=0; i<this->size(); i++)
    os << std::setprecision(8)
       << this->el(i)
       << std::endl;

#endif
}
template<typename T>
virtual void libMesh::DenseVectorBase< T >::zero ( ) [pure virtual]

Set every element in the vector to 0. Needs to be pure virtual since the storage method may be different in derived classes.

Implemented in libMesh::DenseVector< T >, and libMesh::DenseVector< Number >.

Referenced by libMesh::DofMap::extract_local_vector().


Friends And Related Function Documentation

template<typename T>
std::ostream& operator<< ( std::ostream &  os,
const DenseVectorBase< T > &  v 
) [friend]

Same as above, but allows you to print using the usual stream syntax.

Definition at line 96 of file dense_vector_base.h.

  {
    v.print(os);
    return os;
  }

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