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

Wrapper for hypre's parallel vector class. More...

#include <hypre.hpp>

Inheritance diagram for mfem::HypreParVector:
[legend]
Collaboration diagram for mfem::HypreParVector:
[legend]

Public Member Functions

 HypreParVector (MPI_Comm comm, int glob_size, int *col)
 
 HypreParVector (MPI_Comm comm, int glob_size, double *_data, int *col)
 
 HypreParVector (const HypreParVector &y)
 Creates vector compatible with y. More...
 
 HypreParVector (HypreParMatrix &A, int tr=0)
 Creates vector compatible with (i.e. in the domain of) A or A^T. More...
 
 HypreParVector (HYPRE_ParVector y)
 Creates vector wrapping y. More...
 
 HypreParVector (ParFiniteElementSpace *pfes)
 Create a true dof parallel vector on a given ParFiniteElementSpace. More...
 
 operator hypre_ParVector * () const
 Typecasting to hypre's hypre_ParVector*. More...
 
 operator HYPRE_ParVector () const
 Typecasting to hypre's HYPRE_ParVector, a.k.a. void *. More...
 
hypre_ParVector * StealParVector ()
 Changes the ownership of the the vector. More...
 
VectorGlobalVector ()
 Returns the global vector in each processor. More...
 
HypreParVectoroperator= (double d)
 Set constant values. More...
 
HypreParVectoroperator= (const HypreParVector &y)
 Define '=' for hypre vectors. More...
 
void SetData (double *_data)
 
int Randomize (int seed)
 Set random values. More...
 
void Print (const char *fname)
 Prints the locally owned rows in parallel. More...
 
 ~HypreParVector ()
 Calls hypre's destroy function. More...
 
- Public Member Functions inherited from mfem::Vector
 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...
 

Friends

class HypreParMatrix
 

Additional Inherited Members

- Protected Attributes inherited from mfem::Vector
int size
 
int allocsize
 
double * data
 

Detailed Description

Wrapper for hypre's parallel vector class.

Definition at line 38 of file hypre.hpp.

Constructor & Destructor Documentation

mfem::HypreParVector::HypreParVector ( MPI_Comm  comm,
int  glob_size,
int *  col 
)

Creates vector with given global size and partitioning of the columns. Processor P owns columns [col[P],col[P+1])

Definition at line 29 of file hypre.cpp.

mfem::HypreParVector::HypreParVector ( MPI_Comm  comm,
int  glob_size,
double *  _data,
int *  col 
)

Creates vector with given global size, partitioning of the columns, and data. The data must be allocated and destroyed outside.

Definition at line 43 of file hypre.cpp.

mfem::HypreParVector::HypreParVector ( const HypreParVector y)

Creates vector compatible with y.

Definition at line 59 of file hypre.cpp.

mfem::HypreParVector::HypreParVector ( HypreParMatrix A,
int  tr = 0 
)

Creates vector compatible with (i.e. in the domain of) A or A^T.

Definition at line 72 of file hypre.cpp.

mfem::HypreParVector::HypreParVector ( HYPRE_ParVector  y)

Creates vector wrapping y.

Definition at line 83 of file hypre.cpp.

mfem::HypreParVector::HypreParVector ( ParFiniteElementSpace pfes)

Create a true dof parallel vector on a given ParFiniteElementSpace.

Definition at line 91 of file hypre.cpp.

mfem::HypreParVector::~HypreParVector ( )

Calls hypre's destroy function.

Definition at line 160 of file hypre.cpp.

Member Function Documentation

Vector * mfem::HypreParVector::GlobalVector ( )

Returns the global vector in each processor.

Definition at line 117 of file hypre.cpp.

mfem::HypreParVector::operator HYPRE_ParVector ( ) const

Typecasting to hypre's HYPRE_ParVector, a.k.a. void *.

Definition at line 111 of file hypre.cpp.

mfem::HypreParVector::operator hypre_ParVector * ( ) const

Typecasting to hypre's hypre_ParVector*.

Definition at line 105 of file hypre.cpp.

HypreParVector & mfem::HypreParVector::operator= ( double  d)

Set constant values.

Definition at line 127 of file hypre.cpp.

HypreParVector & mfem::HypreParVector::operator= ( const HypreParVector y)

Define '=' for hypre vectors.

Definition at line 133 of file hypre.cpp.

void mfem::HypreParVector::Print ( const char *  fname)

Prints the locally owned rows in parallel.

Definition at line 155 of file hypre.cpp.

int mfem::HypreParVector::Randomize ( int  seed)

Set random values.

Definition at line 150 of file hypre.cpp.

void mfem::HypreParVector::SetData ( double *  _data)

Sets the data of the Vector and the hypre_ParVector to _data. Must be used only for HypreParVectors that do not own the data, e.g. created with the constructor: HypreParVector(int glob_size, double *_data, int *col).

Definition at line 145 of file hypre.cpp.

hypre_ParVector* mfem::HypreParVector::StealParVector ( )
inline

Changes the ownership of the the vector.

Definition at line 71 of file hypre.hpp.

Friends And Related Function Documentation

friend class HypreParMatrix
friend

Definition at line 46 of file hypre.hpp.


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