EXAMPLE/pzgstrs_Bglobal_Bsend.c File Reference

Solves a system of distributed linear equations. More...

#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)


Detailed Description

 -- 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 Documentation

#define BSEND   1

#define ISEND_IRECV


Function Documentation

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
 


Generated on Wed Nov 24 18:17:32 2010 for SuperLUDistributed by  doxygen 1.5.5