MFEM  v3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Attributes | Friends | List of all members
mfem::Vector Class Reference

Vector data type. More...

#include <vector.hpp>

Inheritance diagram for mfem::Vector:
[legend]

Public Member Functions

 Vector ()
 Default constructor for Vector. Sets size = 0 and data = NULL. More...
 
 Vector (const Vector &)
 Copy constructor. More...
 
 Vector (int s)
 Creates vector of size s. More...
 
 Vector (double *_data, int _size)
 
void Load (std::istream **in, int np, int *dim)
 Reads a vector from multiple files. More...
 
void Load (std::istream &in, int Size)
 Load a vector from an input stream. More...
 
void Load (std::istream &in)
 Load a vector from an input stream. More...
 
void SetSize (int s)
 Resizes the vector if the new size is different. More...
 
void SetData (double *d)
 
void SetDataAndSize (double *d, int s)
 
void NewDataAndSize (double *d, int s)
 
void MakeDataOwner ()
 
void Destroy ()
 Destroy a vector. More...
 
int Size () const
 Returns the size of the vector. More...
 
double * GetData () const
 
 operator double * ()
 
 operator const double * () const
 
bool OwnsData () const
 
void StealData (double **p)
 Changes the ownership of the data; after the call the Vector is empty. More...
 
double * StealData ()
 Changes the ownership of the data; after the call the Vector is empty. More...
 
double & Elem (int i)
 Sets value in vector. Index i = 0 .. size-1. More...
 
const double & Elem (int i) const
 Sets value in vector. Index i = 0 .. size-1. More...
 
double & operator() (int i)
 Sets value in vector. Index i = 0 .. size-1. More...
 
const double & operator() (int i) const
 Sets value in vector. Index i = 0 .. size-1. More...
 
double operator* (const double *) const
 
double operator* (const Vector &v) const
 Return the inner-product. More...
 
Vectoroperator= (const double *v)
 
Vectoroperator= (const Vector &v)
 Redefine '=' for vector = vector. More...
 
Vectoroperator= (double value)
 Redefine '=' for vector = constant. More...
 
Vectoroperator*= (double c)
 
Vectoroperator/= (double c)
 
Vectoroperator-= (double c)
 
Vectoroperator-= (const Vector &v)
 
Vectoroperator+= (const Vector &v)
 
VectorAdd (const double a, const Vector &Va)
 (*this) += a * Va More...
 
VectorSet (const double a, const Vector &x)
 (*this) = a * x More...
 
void SetVector (const Vector &v, int offset)
 
void Neg ()
 (*this) = -(*this) More...
 
void median (const Vector &lo, const Vector &hi)
 v = median(v,lo,hi) entrywise. Implementation assumes lo <= hi. More...
 
void GetSubVector (const Array< int > &dofs, Vector &elemvect) const
 
void GetSubVector (const Array< int > &dofs, double *elem_data) const
 
void SetSubVector (const Array< int > &dofs, const Vector &elemvect)
 
void SetSubVector (const Array< int > &dofs, double *elem_data)
 
void AddElementVector (const Array< int > &dofs, const Vector &elemvect)
 Add (element) subvector to the vector. More...
 
void AddElementVector (const Array< int > &dofs, double *elem_data)
 
void AddElementVector (const Array< int > &dofs, const double a, const Vector &elemvect)
 
void Print (std::ostream &out=std::cout, int width=8) const
 Prints vector to stream out. More...
 
void Print_HYPRE (std::ostream &out) const
 Prints vector to stream out in HYPRE_Vector format. More...
 
void Randomize (int seed=0)
 Set random values in the vector. More...
 
double Norml2 () const
 Returns the l2 norm of the vector. More...
 
double Normlinf () const
 Returns the l_infinity norm of the vector. More...
 
double Norml1 () const
 Returns the l_1 norm of the vector. More...
 
double Normlp (double p) const
 Returns the l_p norm of the vector. More...
 
double Max () const
 Returns the maximal element of the vector. More...
 
double Min () const
 Returns the minimal element of the vector. More...
 
double Sum () const
 Return the sum of the vector entries. More...
 
double DistanceTo (const double *p) const
 Compute the Euclidian distance to another vector. More...
 
int CheckFinite () const
 
 ~Vector ()
 Destroys vector. More...
 

Protected Attributes

int size
 
int allocsize
 
double * data
 

Friends

void swap (Vector *v1, Vector *v2)
 Swap v1 and v2. More...
 
void add (const Vector &v1, const Vector &v2, Vector &v)
 Do v = v1 + v2. More...
 
void add (const Vector &v1, double alpha, const Vector &v2, Vector &v)
 Do v = v1 + alpha * v2. More...
 
void add (const double a, const Vector &x, const Vector &y, Vector &z)
 z = a * (x + y) More...
 
void add (const double a, const Vector &x, const double b, const Vector &y, Vector &z)
 z = a * x + b * y More...
 
void subtract (const Vector &v1, const Vector &v2, Vector &v)
 Do v = v1 - v2. More...
 
void subtract (const double a, const Vector &x, const Vector &y, Vector &z)
 z = a * (x - y) More...
 

Detailed Description

Vector data type.

Definition at line 29 of file vector.hpp.

Constructor & Destructor Documentation

mfem::Vector::Vector ( )
inline

Default constructor for Vector. Sets size = 0 and data = NULL.

Definition at line 39 of file vector.hpp.

mfem::Vector::Vector ( const Vector v)

Copy constructor.

Definition at line 26 of file vector.cpp.

mfem::Vector::Vector ( int  s)
inlineexplicit

Creates vector of size s.

Definition at line 234 of file vector.hpp.

mfem::Vector::Vector ( double *  _data,
int  _size 
)
inline

Definition at line 47 of file vector.hpp.

mfem::Vector::~Vector ( )
inline

Destroys vector.

Definition at line 291 of file vector.hpp.

Member Function Documentation

Vector & mfem::Vector::Add ( const double  a,
const Vector Va 
)

(*this) += a * Va

Definition at line 168 of file vector.cpp.

void mfem::Vector::AddElementVector ( const Array< int > &  dofs,
const Vector elemvect 
)

Add (element) subvector to the vector.

Definition at line 449 of file vector.cpp.

void mfem::Vector::AddElementVector ( const Array< int > &  dofs,
double *  elem_data 
)

Definition at line 460 of file vector.cpp.

void mfem::Vector::AddElementVector ( const Array< int > &  dofs,
const double  a,
const Vector elemvect 
)

Definition at line 471 of file vector.cpp.

int mfem::Vector::CheckFinite ( ) const
inline

Count the number of entries in the Vector for which isfinite is false, i.e. the entry is a NaN or +/-Inf.

Definition at line 206 of file vector.hpp.

void mfem::Vector::Destroy ( )
inline

Destroy a vector.

Definition at line 263 of file vector.hpp.

double mfem::Vector::DistanceTo ( const double *  p) const

Compute the Euclidian distance to another vector.

Definition at line 608 of file vector.cpp.

double & mfem::Vector::Elem ( int  i)

Sets value in vector. Index i = 0 .. size-1.

Definition at line 67 of file vector.cpp.

const double & mfem::Vector::Elem ( int  i) const

Sets value in vector. Index i = 0 .. size-1.

Definition at line 72 of file vector.cpp.

double* mfem::Vector::GetData ( ) const
inline

Definition at line 80 of file vector.hpp.

void mfem::Vector::GetSubVector ( const Array< int > &  dofs,
Vector elemvect 
) const

Definition at line 403 of file vector.cpp.

void mfem::Vector::GetSubVector ( const Array< int > &  dofs,
double *  elem_data 
) const

Definition at line 416 of file vector.cpp.

void mfem::Vector::Load ( std::istream **  in,
int  np,
int *  dim 
)

Reads a vector from multiple files.

Definition at line 43 of file vector.cpp.

void mfem::Vector::Load ( std::istream &  in,
int  Size 
)

Load a vector from an input stream.

Definition at line 59 of file vector.cpp.

void mfem::Vector::Load ( std::istream &  in)
inline

Load a vector from an input stream.

Definition at line 57 of file vector.hpp.

void mfem::Vector::MakeDataOwner ( )
inline

Definition at line 70 of file vector.hpp.

double mfem::Vector::Max ( ) const

Returns the maximal element of the vector.

Definition at line 576 of file vector.cpp.

void mfem::Vector::median ( const Vector lo,
const Vector hi 
)

v = median(v,lo,hi) entrywise. Implementation assumes lo <= hi.

Definition at line 390 of file vector.cpp.

double mfem::Vector::Min ( ) const

Returns the minimal element of the vector.

Definition at line 587 of file vector.cpp.

void mfem::Vector::Neg ( )

(*this) = -(*this)

Definition at line 207 of file vector.cpp.

void mfem::Vector::NewDataAndSize ( double *  d,
int  s 
)
inline

Definition at line 67 of file vector.hpp.

double mfem::Vector::Norml1 ( ) const

Returns the l_1 norm of the vector.

Definition at line 548 of file vector.cpp.

double mfem::Vector::Norml2 ( ) const

Returns the l2 norm of the vector.

Definition at line 532 of file vector.cpp.

double mfem::Vector::Normlinf ( ) const

Returns the l_infinity norm of the vector.

Definition at line 537 of file vector.cpp.

double mfem::Vector::Normlp ( double  p) const

Returns the l_p norm of the vector.

Definition at line 558 of file vector.cpp.

mfem::Vector::operator const double * ( ) const
inline

Definition at line 84 of file vector.hpp.

mfem::Vector::operator double * ( )
inline

Definition at line 82 of file vector.hpp.

double & mfem::Vector::operator() ( int  i)
inline

Sets value in vector. Index i = 0 .. size-1.

Definition at line 271 of file vector.hpp.

const double & mfem::Vector::operator() ( int  i) const
inline

Sets value in vector. Index i = 0 .. size-1.

Definition at line 281 of file vector.hpp.

double mfem::Vector::operator* ( const double *  v) const

Definition at line 77 of file vector.cpp.

double mfem::Vector::operator* ( const Vector v) const

Return the inner-product.

Definition at line 90 of file vector.cpp.

Vector & mfem::Vector::operator*= ( double  c)

Definition at line 124 of file vector.cpp.

Vector & mfem::Vector::operator+= ( const Vector v)

Definition at line 157 of file vector.cpp.

Vector & mfem::Vector::operator-= ( double  c)

Definition at line 139 of file vector.cpp.

Vector & mfem::Vector::operator-= ( const Vector v)

Definition at line 146 of file vector.cpp.

Vector & mfem::Vector::operator/= ( double  c)

Definition at line 131 of file vector.cpp.

Vector & mfem::Vector::operator= ( const double *  v)

Definition at line 100 of file vector.cpp.

Vector & mfem::Vector::operator= ( const Vector v)

Redefine '=' for vector = vector.

Definition at line 107 of file vector.cpp.

Vector & mfem::Vector::operator= ( double  value)

Redefine '=' for vector = constant.

Definition at line 115 of file vector.cpp.

bool mfem::Vector::OwnsData ( ) const
inline

Definition at line 86 of file vector.hpp.

void mfem::Vector::Print ( std::ostream &  out = std::cout,
int  width = 8 
) const

Prints vector to stream out.

Definition at line 483 of file vector.cpp.

void mfem::Vector::Print_HYPRE ( std::ostream &  out) const

Prints vector to stream out in HYPRE_Vector format.

Definition at line 501 of file vector.cpp.

void mfem::Vector::Randomize ( int  seed = 0)

Set random values in the vector.

Definition at line 517 of file vector.cpp.

Vector & mfem::Vector::Set ( const double  a,
const Vector x 
)

(*this) = a * x

Definition at line 182 of file vector.cpp.

void mfem::Vector::SetData ( double *  d)
inline

Definition at line 62 of file vector.hpp.

void mfem::Vector::SetDataAndSize ( double *  d,
int  s 
)
inline

Definition at line 64 of file vector.hpp.

void mfem::Vector::SetSize ( int  s)
inline

Resizes the vector if the new size is different.

Definition at line 248 of file vector.hpp.

void mfem::Vector::SetSubVector ( const Array< int > &  dofs,
const Vector elemvect 
)

Definition at line 427 of file vector.cpp.

void mfem::Vector::SetSubVector ( const Array< int > &  dofs,
double *  elem_data 
)

Definition at line 438 of file vector.cpp.

void mfem::Vector::SetVector ( const Vector v,
int  offset 
)

Definition at line 193 of file vector.cpp.

int mfem::Vector::Size ( ) const
inline

Returns the size of the vector.

Definition at line 76 of file vector.hpp.

void mfem::Vector::StealData ( double **  p)
inline

Changes the ownership of the data; after the call the Vector is empty.

Definition at line 89 of file vector.hpp.

double* mfem::Vector::StealData ( )
inline

Changes the ownership of the data; after the call the Vector is empty.

Definition at line 93 of file vector.hpp.

double mfem::Vector::Sum ( ) const

Return the sum of the vector entries.

Definition at line 598 of file vector.cpp.

Friends And Related Function Documentation

void add ( const Vector v1,
const Vector v2,
Vector v 
)
friend

Do v = v1 + v2.

Definition at line 227 of file vector.cpp.

void add ( const Vector v1,
double  alpha,
const Vector v2,
Vector v 
)
friend

Do v = v1 + alpha * v2.

Definition at line 241 of file vector.cpp.

void add ( const double  a,
const Vector x,
const Vector y,
Vector z 
)
friend

z = a * (x + y)

Definition at line 268 of file vector.cpp.

void add ( const double  a,
const Vector x,
const double  b,
const Vector y,
Vector z 
)
friend

z = a * x + b * y

Definition at line 298 of file vector.cpp.

void subtract ( const Vector v1,
const Vector v2,
Vector v 
)
friend

Do v = v1 - v2.

Definition at line 341 of file vector.cpp.

void subtract ( const double  a,
const Vector x,
const Vector y,
Vector z 
)
friend

z = a * (x - y)

Definition at line 359 of file vector.cpp.

void swap ( Vector v1,
Vector v2 
)
friend

Swap v1 and v2.

Definition at line 213 of file vector.cpp.

Member Data Documentation

int mfem::Vector::allocsize
protected

Definition at line 33 of file vector.hpp.

double* mfem::Vector::data
protected

Definition at line 34 of file vector.hpp.

int mfem::Vector::size
protected

Definition at line 33 of file vector.hpp.


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