MFEM  v3.1
Finite element discretization library
 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, HYPRE_Int glob_size, HYPRE_Int *col)
 
 HypreParVector (MPI_Comm comm, HYPRE_Int glob_size, double *_data, HYPRE_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...
 
MPI_Comm GetComm ()
 MPI communicator. More...
 
HYPRE_Int * Partitioning ()
 Returns the row partitioning. More...
 
HYPRE_Int GlobalSize ()
 Returns the global number of rows. 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...
 
void SetOwnership (int own)
 Sets ownership of the internal hypre_ParVector. More...
 
int GetOwnership () const
 Gets ownership of the internal hypre_ParVector. More...
 
VectorGlobalVector () const
 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)
 
HYPRE_Int Randomize (HYPRE_Int seed)
 Set random values. More...
 
void Print (const char *fname) const
 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)
 Creates a vector referencing an array of doubles, owned by someone else. More...
 
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 Swap (Vector &other)
 Swap the contents of two Vectors. 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 SetSubVectorComplement (const Array< int > &dofs, const double val)
 Set all vector entries NOT in the 'dofs' array to the given 'val'. More...
 
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 Euclidean distance to another vector. More...
 
int CheckFinite () const
 
virtual ~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 58 of file hypre.hpp.

Constructor & Destructor Documentation

mfem::HypreParVector::HypreParVector ( MPI_Comm  comm,
HYPRE_Int  glob_size,
HYPRE_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 50 of file hypre.cpp.

mfem::HypreParVector::HypreParVector ( MPI_Comm  comm,
HYPRE_Int  glob_size,
double *  _data,
HYPRE_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 63 of file hypre.cpp.

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

Creates vector compatible with y.

Definition at line 78 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 90 of file hypre.cpp.

mfem::HypreParVector::HypreParVector ( HYPRE_ParVector  y)

Creates vector wrapping y.

Definition at line 104 of file hypre.cpp.

mfem::HypreParVector::HypreParVector ( ParFiniteElementSpace pfes)

Create a true dof parallel vector on a given ParFiniteElementSpace.

Definition at line 111 of file hypre.cpp.

mfem::HypreParVector::~HypreParVector ( )

Calls hypre's destroy function.

Definition at line 183 of file hypre.cpp.

Member Function Documentation

MPI_Comm mfem::HypreParVector::GetComm ( )
inline

MPI communicator.

Definition at line 89 of file hypre.hpp.

int mfem::HypreParVector::GetOwnership ( ) const
inline

Gets ownership of the internal hypre_ParVector.

Definition at line 110 of file hypre.hpp.

HYPRE_Int mfem::HypreParVector::GlobalSize ( )
inline

Returns the global number of rows.

Definition at line 95 of file hypre.hpp.

Vector * mfem::HypreParVector::GlobalVector ( ) const

Returns the global vector in each processor.

Definition at line 136 of file hypre.cpp.

mfem::HypreParVector::operator HYPRE_ParVector ( ) const

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

Definition at line 130 of file hypre.cpp.

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

Typecasting to hypre's hypre_ParVector*.

Definition at line 124 of file hypre.cpp.

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

Set constant values.

Definition at line 146 of file hypre.cpp.

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

Define '=' for hypre vectors.

Definition at line 152 of file hypre.cpp.

HYPRE_Int* mfem::HypreParVector::Partitioning ( )
inline

Returns the row partitioning.

Definition at line 92 of file hypre.hpp.

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

Prints the locally owned rows in parallel.

Definition at line 178 of file hypre.cpp.

HYPRE_Int mfem::HypreParVector::Randomize ( HYPRE_Int  seed)

Set random values.

Definition at line 173 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(MPI_Comm comm, HYPRE_Int glob_size, double *_data, HYPRE_Int *col).

Definition at line 168 of file hypre.cpp.

void mfem::HypreParVector::SetOwnership ( int  own)
inline

Sets ownership of the internal hypre_ParVector.

Definition at line 107 of file hypre.hpp.

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

Changes the ownership of the the vector.

Definition at line 104 of file hypre.hpp.

Friends And Related Function Documentation

friend class HypreParMatrix
friend

Definition at line 66 of file hypre.hpp.


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