SuperLU Distributed 8.2.1
Distributed memory sparse direct solver
pzdrive3d3.c File Reference

Driver program for PZGSSVX3D example. More...

#include "superlu_zdefs.h"
Include dependency graph for pzdrive3d3.c:

Functions

static void matCheck (int n, int m, doublecomplex *A, int LDA, doublecomplex *B, int LDB)
 
static void checkNRFMT (NRformat_loc *A, NRformat_loc *B)
 
int main (int argc, char *argv[])
 
int cpp_defs ()
 

Detailed Description

Driver program for PZGSSVX3D example.

Copyright (c) 2003, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from U.S. Dept. of Energy)

All rights reserved.

The source code is distributed under BSD license, see the file License.txt at the top-level directory.

   -- Distributed SuperLU routine (version 7.0) --
   Lawrence Berkeley National Lab, Georgia Institute of Technology,
   Oak Ridge National Lab 
   September 10, 2021

 */


/*!


   
   Purpose
   =======

   The driver program PZDRIVE3D3.

   This example illustrates how to use PZGSSVX3D to sovle 
   the systems with the same sparsity pattern and similar numerical
   values of matrix A.
   In this case, the row and column permutation vectors and symbolic
   factorization are computed only once. The following data structures
   will be reused in the subsequent call to PZGSSVX3D:
          ScalePermstruct : DiagScale, R, C, perm_r, perm_c
          LUstruct        : etree, Glu_persist, Llu
          SOLVEstruct      : communication metadata for SpTRSV, SpMV, and
                             3D<->2D gather/scatter of {A,B} stored in A3d.

   NOTE:
   The distributed nonzero structures of L and U remain the same,
   although the numerical values are different. So 'Llu' is set up once
   in the first call to PZGSSVX3D, and reused in the subsequent call.

   The program may be run by typing:
      mpiexec -np 
 pzdrive3d3 -r <proc rows> -c <proc columns> \
                                      -d <proc Z-dimension> <input_file>
   NOTE: total number of processes p = r * c * d
         (d must be a power-of-two, e.g., 1, 2, 4, ...)

   

Function Documentation

◆ checkNRFMT()

static void checkNRFMT ( NRformat_loc A,
NRformat_loc B 
)
static
Here is the call graph for this function:

◆ cpp_defs()

int cpp_defs ( )
Here is the caller graph for this function:

◆ main()

int main ( int  argc,
char *  argv[] 
)
Here is the call graph for this function:

◆ matCheck()

static void matCheck ( int  n,
int  m,
doublecomplex A,
int  LDA,
doublecomplex B,
int  LDB 
)
static