MFEM v2.0
|
Wrapper for hypre's ParCSR matrix class. More...
#include <hypre.hpp>
Public Member Functions | |
HypreParMatrix (hypre_ParCSRMatrix *a) | |
Converts hypre's format to HypreParMatrix. | |
HypreParMatrix (int size, int *row, SparseMatrix *diag) | |
Creates block-diagonal square parallel matrix. Diagonal given by diag. | |
HypreParMatrix (int M, int N, int *row, int *col, SparseMatrix *diag) | |
HypreParMatrix (int M, int N, int *row, int *col, SparseMatrix *diag, SparseMatrix *offd, int *cmap) | |
Creates general (rectangular) parallel matrix. | |
HypreParMatrix (int *row, int *col, SparseMatrix *a) | |
Creates a parallel matrix from SparseMatrix on processor 0. | |
HypreParMatrix (int M, int N, int *row, int *col, Table *diag) | |
Creates boolean block-diagonal rectangular parallel matrix. | |
HypreParMatrix (MPI_Comm comm, int id, int np, int *row, int *col, int *i_diag, int *j_diag, int *i_offd, int *j_offd, int *cmap, int cmap_size) | |
Creates boolean rectangular parallel matrix (which owns its data) | |
HypreParMatrix (MPI_Comm comm, int nrows, int glob_nrows, int glob_ncols, int *I, int *J, double *data, int *rows, int *cols) | |
void | SetCommPkg (hypre_ParCSRCommPkg *comm_pkg) |
void | CheckCommPkg () |
void | DestroyCommPkg () |
operator hypre_ParCSRMatrix * () | |
Typecasting to hypre's hypre_ParCSRMatrix*. | |
operator HYPRE_ParCSRMatrix () | |
Typecasting to hypre's HYPRE_ParCSRMatrix, a.k.a. void *. | |
hypre_ParCSRMatrix * | StealData () |
Changes the ownership of the the matrix. | |
int | NNZ () |
Returns the number of nonzeros. | |
int * | RowPart () |
Returns the row partitioning. | |
int * | ColPart () |
Returns the row partitioning. | |
int | M () |
Returns the global number of rows. | |
int | N () |
Returns the global number of columns. | |
void | GetDiag (Vector &diag) |
Get the diagonal of the matrix. | |
HypreParMatrix * | Transpose () |
Returns the transpose of *this. | |
int | GetNumRows () const |
Returns the number of rows in the diagonal block of the ParCSRMatrix. | |
int | GetGlobalNumRows () const |
int | GetGlobalNumCols () const |
int * | GetRowStarts () const |
int * | GetColStarts () const |
int | Mult (HypreParVector &x, HypreParVector &y, double alpha=1.0, double beta=0.0) |
Computes y = alpha * A * x + beta * y. | |
int | Mult (HYPRE_ParVector x, HYPRE_ParVector y, double alpha=1.0, double beta=0.0) |
Computes y = alpha * A * x + beta * y. | |
int | MultTranspose (HypreParVector &x, HypreParVector &y, double alpha=1.0, double beta=0.0) |
Computes y = alpha * A^t * x + beta * y. | |
virtual void | Mult (const Vector &x, Vector &y) const |
Operator application. | |
virtual void | MultTranspose (const Vector &x, Vector &y) const |
Action of the transpose operator. | |
void | Print (const char *fname, int offi=0, int offj=0) |
Prints the locally owned rows in parallel. | |
void | Read (const char *fname) |
Reads the matrix from a file. | |
virtual | ~HypreParMatrix () |
Calls hypre's destroy function. | |
Private Attributes | |
hypre_ParCSRMatrix * | A |
The actual object. | |
hypre_ParCSRCommPkg * | CommPkg |
Internal communication object associated with A. | |
HypreParVector * | X |
Auxiliary vectors for typecasting. | |
HypreParVector * | Y |
HypreParMatrix::HypreParMatrix | ( | hypre_ParCSRMatrix * | a | ) | [inline] |
HypreParMatrix::HypreParMatrix | ( | int | size, |
int * | row, | ||
SparseMatrix * | diag | ||
) |
Creates block-diagonal square parallel matrix. Diagonal given by diag.
HypreParMatrix::HypreParMatrix | ( | int | M, |
int | N, | ||
int * | row, | ||
int * | col, | ||
SparseMatrix * | diag | ||
) |
Creates block-diagonal rectangular parallel matrix. Diagonal given by diag.
HypreParMatrix::HypreParMatrix | ( | int | M, |
int | N, | ||
int * | row, | ||
int * | col, | ||
SparseMatrix * | diag, | ||
SparseMatrix * | offd, | ||
int * | cmap | ||
) |
Creates general (rectangular) parallel matrix.
HypreParMatrix::HypreParMatrix | ( | int * | row, |
int * | col, | ||
SparseMatrix * | a | ||
) |
Creates a parallel matrix from SparseMatrix on processor 0.
HypreParMatrix::HypreParMatrix | ( | int | M, |
int | N, | ||
int * | row, | ||
int * | col, | ||
Table * | diag | ||
) |
Creates boolean block-diagonal rectangular parallel matrix.
HypreParMatrix::HypreParMatrix | ( | MPI_Comm | comm, |
int | id, | ||
int | np, | ||
int * | row, | ||
int * | col, | ||
int * | i_diag, | ||
int * | j_diag, | ||
int * | i_offd, | ||
int * | j_offd, | ||
int * | cmap, | ||
int | cmap_size | ||
) |
Creates boolean rectangular parallel matrix (which owns its data)
HypreParMatrix::HypreParMatrix | ( | MPI_Comm | comm, |
int | nrows, | ||
int | glob_nrows, | ||
int | glob_ncols, | ||
int * | I, | ||
int * | J, | ||
double * | data, | ||
int * | rows, | ||
int * | cols | ||
) |
Creates a general parallel matrix from a local CSR matrix on each processor described by the I, J and data arrays. The local matrix should be of size (local) nrows by (global) glob_ncols. The parallel matrix contains copies of the rows and cols arrays (so they can be deleted).
virtual HypreParMatrix::~HypreParMatrix | ( | ) | [virtual] |
Calls hypre's destroy function.
void HypreParMatrix::CheckCommPkg | ( | ) |
int* HypreParMatrix::ColPart | ( | ) | [inline] |
void HypreParMatrix::DestroyCommPkg | ( | ) |
int* HypreParMatrix::GetColStarts | ( | ) | const [inline] |
void HypreParMatrix::GetDiag | ( | Vector & | diag | ) |
Get the diagonal of the matrix.
int HypreParMatrix::GetGlobalNumCols | ( | ) | const [inline] |
Definition at line 159 of file hypre.hpp.
References A.
Referenced by ParFiniteElementSpace::GlobalTrueVSize().
int HypreParMatrix::GetGlobalNumRows | ( | ) | const [inline] |
Definition at line 157 of file hypre.hpp.
References A.
Referenced by ParFiniteElementSpace::GlobalVSize().
int HypreParMatrix::GetNumRows | ( | ) | const [inline] |
int* HypreParMatrix::GetRowStarts | ( | ) | const [inline] |
int HypreParMatrix::M | ( | ) | [inline] |
int HypreParMatrix::Mult | ( | HypreParVector & | x, |
HypreParVector & | y, | ||
double | alpha = 1.0 , |
||
double | beta = 0.0 |
||
) |
Computes y = alpha * A * x + beta * y.
int HypreParMatrix::Mult | ( | HYPRE_ParVector | x, |
HYPRE_ParVector | y, | ||
double | alpha = 1.0 , |
||
double | beta = 0.0 |
||
) |
Computes y = alpha * A * x + beta * y.
Action of the transpose operator.
Reimplemented from Operator.
int HypreParMatrix::MultTranspose | ( | HypreParVector & | x, |
HypreParVector & | y, | ||
double | alpha = 1.0 , |
||
double | beta = 0.0 |
||
) |
Computes y = alpha * A^t * x + beta * y.
int HypreParMatrix::N | ( | ) | [inline] |
int HypreParMatrix::NNZ | ( | ) | [inline] |
HypreParMatrix::operator HYPRE_ParCSRMatrix | ( | ) |
Typecasting to hypre's HYPRE_ParCSRMatrix, a.k.a. void *.
HypreParMatrix::operator hypre_ParCSRMatrix * | ( | ) |
Typecasting to hypre's hypre_ParCSRMatrix*.
void HypreParMatrix::Print | ( | const char * | fname, |
int | offi = 0 , |
||
int | offj = 0 |
||
) |
Prints the locally owned rows in parallel.
void HypreParMatrix::Read | ( | const char * | fname | ) |
Reads the matrix from a file.
int* HypreParMatrix::RowPart | ( | ) | [inline] |
void HypreParMatrix::SetCommPkg | ( | hypre_ParCSRCommPkg * | comm_pkg | ) |
hypre_ParCSRMatrix* HypreParMatrix::StealData | ( | ) |
Changes the ownership of the the matrix.
HypreParMatrix* HypreParMatrix::Transpose | ( | ) |
Returns the transpose of *this.
hypre_ParCSRMatrix* HypreParMatrix::A [private] |
The actual object.
Definition at line 87 of file hypre.hpp.
Referenced by ColPart(), GetColStarts(), GetGlobalNumCols(), GetGlobalNumRows(), GetNumRows(), GetRowStarts(), M(), N(), NNZ(), and RowPart().
hypre_ParCSRCommPkg* HypreParMatrix::CommPkg [private] |
Internal communication object associated with A.
Definition at line 90 of file hypre.hpp.
Referenced by HypreParMatrix().
HypreParVector* HypreParMatrix::X [mutable, private] |
Auxiliary vectors for typecasting.
Definition at line 93 of file hypre.hpp.
Referenced by HypreParMatrix().
HypreParVector * HypreParMatrix::Y [mutable, private] |
Definition at line 93 of file hypre.hpp.
Referenced by HypreParMatrix().