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

#include <dense_subvector.h>

Inheritance diagram for libMesh::DenseSubVector< T >:

List of all members.

Public Member Functions

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::DenseSubVector< T >

Defines a dense subvector for use in Finite Element-type computations. Useful for storing element load vectors before summation into a global vector, particularly when you have systems of equations.

Author:
Benjamin S. Kirk, 2003

Definition at line 45 of file dense_subvector.h.


Member Function Documentation

template<typename T>
virtual T libMesh::DenseVectorBase< T >::el ( const unsigned int  i) const [pure virtual, inherited]
template<typename T>
virtual T& libMesh::DenseVectorBase< T >::el ( const unsigned int  i) [pure virtual, inherited]
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, inherited]
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 [inherited]

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 [inherited]

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 unsigned int libMesh::DenseVectorBase< T >::size ( ) const [pure virtual, inherited]
template<typename T>
virtual void libMesh::DenseVectorBase< T >::zero ( ) [pure virtual, inherited]

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, inherited]

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 file: