|
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().
1.7.4