#include "superlu_zdefs.h"
Defines | |
#define | ISEND_IRECV |
#define | BSEND 1 |
Functions/Subroutines | |
static void | gather_diag_to_all (int_t n, int_t nrhs, doublecomplex x[], Glu_persist_t *Glu_persist, LocalLU_t *Llu, gridinfo_t *grid, int_t num_diag_procs, int_t diag_procs[], int_t diag_len[], doublecomplex y[], int_t ldy, doublecomplex work[]) |
void | pzgstrs_Bglobal (int_t n, LUstruct_t *LUstruct, gridinfo_t *grid, doublecomplex *B, int_t ldb, int nrhs, SuperLUStat_t *stat, int *info) |
-- Distributed SuperLU routine (version 1.0) -- Lawrence Berkeley National Lab, Univ. of California Berkeley. September 1, 1999
Modified: Feburary 7, 2001 use MPI_Isend/MPI_Irecv October 2, 2001 use MPI_Isend/MPI_Irecv with MPI_Test
#define BSEND 1 |
#define ISEND_IRECV |
static void gather_diag_to_all | ( | int_t | n, | |
int_t | nrhs, | |||
doublecomplex | x[], | |||
Glu_persist_t * | Glu_persist, | |||
LocalLU_t * | Llu, | |||
gridinfo_t * | grid, | |||
int_t | num_diag_procs, | |||
int_t | diag_procs[], | |||
int_t | diag_len[], | |||
doublecomplex | y[], | |||
int_t | ldy, | |||
doublecomplex | work[] | |||
) | [static] |
Gather the components of x vector on the diagonal processes onto all processes, and combine them into the global vector y.
void pzgstrs_Bglobal | ( | int_t | n, | |
LUstruct_t * | LUstruct, | |||
gridinfo_t * | grid, | |||
doublecomplex * | B, | |||
int_t | ldb, | |||
int | nrhs, | |||
SuperLUStat_t * | stat, | |||
int * | info | |||
) |
Purpose =======
pzgstrs_Bglobal solves a system of distributed linear equations A*X = B with a general N-by-N matrix A using the LU factorization computed by pzgstrf.
Arguments =========
n (input) int (global) The order of the system of linear equations.
LUstruct (input) LUstruct_t* The distributed data structures storing L and U factors. The L and U factors are obtained from pzgstrf for the possibly scaled and permuted matrix A. See superlu_ddefs.h for the definition of 'LUstruct_t'.
grid (input) gridinfo_t* The 2D process mesh. It contains the MPI communicator, the number of process rows (NPROW), the number of process columns (NPCOL), and my process rank. It is an input argument to all the parallel routines. Grid can be initialized by subroutine SUPERLU_GRIDINIT. See superlu_ddefs.h for the definition of 'gridinfo_t'.
B (input/output) doublecomplex* On entry, the right-hand side matrix of the possibly equilibrated and row permuted system. On exit, the solution matrix of the possibly equilibrated and row permuted system if info = 0;
NOTE: Currently, the N-by-NRHS matrix B must reside on all processes when calling this routine.
ldb (input) int (global) Leading dimension of matrix B.
nrhs (input) int (global) Number of right-hand sides.
stat (output) SuperLUStat_t* Record the statistics about the triangular solves. See util.h for the definition of 'SuperLUStat_t'.
info (output) int* = 0: successful exit < 0: if info = -i, the i-th argument had an illegal value