ParCSR Object Interface
- group ParCSR Object Interface
Interface for ParCSR matrices and vectors.
This is an interface for matrices and vectors with object type HYPRE_PARCSR.
ParCSR Matrices
-
typedef struct hypre_ParCSRMatrix_struct *HYPRE_ParCSRMatrix
The matrix object.
ParCSR matrices use a parallel compressed-sparse-row (CSR) storage format that consists of a diagonal CSR matrix for intra-processor couplings and an off-diagonal CSR matrix for inter-processor couplings.
-
HYPRE_Int HYPRE_ParCSRMatrixCreate(MPI_Comm comm, HYPRE_BigInt global_num_rows, HYPRE_BigInt global_num_cols, HYPRE_BigInt *row_starts, HYPRE_BigInt *col_starts, HYPRE_Int num_cols_offd, HYPRE_Int num_nonzeros_diag, HYPRE_Int num_nonzeros_offd, HYPRE_ParCSRMatrix *matrix)
Create a matrix object.
More info here about arguments…
-
HYPRE_Int HYPRE_ParCSRMatrixDestroy(HYPRE_ParCSRMatrix matrix)
Destroy a matrix object.
-
HYPRE_Int HYPRE_ParCSRMatrixInitialize(HYPRE_ParCSRMatrix matrix)
Prepare a matrix object for setting coefficient values.
-
HYPRE_Int HYPRE_ParCSRMatrixRead(MPI_Comm comm, const char *file_name, HYPRE_ParCSRMatrix *matrix)
Read a matrix from file.
-
HYPRE_Int HYPRE_ParCSRMatrixPrint(HYPRE_ParCSRMatrix matrix, const char *file_name)
Print a matrix to file.
ParCSR Vectors
-
typedef struct hypre_ParVector_struct *HYPRE_ParVector
The vector object.
A Par vector is an array storage format compatible with ParCSR matrices.
-
HYPRE_Int HYPRE_ParVectorCreate(MPI_Comm comm, HYPRE_BigInt global_size, HYPRE_BigInt *partitioning, HYPRE_ParVector *vector)
Create a vector object.
-
HYPRE_Int HYPRE_ParVectorDestroy(HYPRE_ParVector vector)
Destroy a vector object.
-
HYPRE_Int HYPRE_ParVectorInitialize(HYPRE_ParVector vector)
Prepare a vector object for setting coefficient values.
-
HYPRE_Int HYPRE_ParVectorRead(MPI_Comm comm, const char *file_name, HYPRE_ParVector *vector)
Read a vector from file.
-
HYPRE_Int HYPRE_ParVectorPrint(HYPRE_ParVector vector, const char *file_name)
Print a vector to file.
Basic Matrix/vector routines
-
HYPRE_Int HYPRE_ParVectorCopy(HYPRE_ParVector x, HYPRE_ParVector y)
Copy vector x into y ( \(y \leftarrow x\)).
-
HYPRE_Int HYPRE_ParVectorScale(HYPRE_Complex value, HYPRE_ParVector x)
Scale a vector by alpha ( \(y \leftarrow \alpha y\)).
-
HYPRE_Int HYPRE_ParVectorAxpy(HYPRE_Complex alpha, HYPRE_ParVector x, HYPRE_ParVector y)
Compute \(y = y + \alpha x\).
-
HYPRE_Int HYPRE_ParVectorInnerProd(HYPRE_ParVector x, HYPRE_ParVector y, HYPRE_Real *result)
Compute result, the inner product of vectors x and y.
-
HYPRE_Int HYPRE_ParCSRMatrixMatvec(HYPRE_Complex alpha, HYPRE_ParCSRMatrix A, HYPRE_ParVector x, HYPRE_Complex beta, HYPRE_ParVector y)
Compute a matrix-vector product \(y = \alpha A x + \beta y\).
-
HYPRE_Int HYPRE_ParCSRMatrixMatvecT(HYPRE_Complex alpha, HYPRE_ParCSRMatrix A, HYPRE_ParVector x, HYPRE_Complex beta, HYPRE_ParVector y)
Compute a transpose matrix-vector product \(y = \alpha A^T x + \beta y\).
-
HYPRE_Int HYPRE_ParCSRMatrixMatmat(HYPRE_ParCSRMatrix A, HYPRE_ParCSRMatrix B, HYPRE_ParCSRMatrix *C)
Matrix-matrix multiply.
-
typedef struct hypre_ParCSRMatrix_struct *HYPRE_ParCSRMatrix