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

Several matrix utilities. More...

#include <math.h>
#include "superlu_ddefs.h"
Include dependency graph for pdutil.c:

Functions

int pdCompRow_loc_to_CompCol_global (int_t need_value, SuperMatrix *A, gridinfo_t *grid, SuperMatrix *GA)
 Gather A from the distributed compressed row format to global A in compressed column format. More...
 
int pdPermute_Dense_Matrix (int_t fst_row, int_t m_loc, int_t row_to_proc[], int_t perm[], double X[], int ldx, double B[], int ldb, int nrhs, gridinfo_t *grid)
 Permute the distributed dense matrix: B <= perm(X). perm[i] = j means the i-th row of X is in the j-th row of B. More...
 
void dLUstructInit (const int_t n, dLUstruct_t *LUstruct)
 Allocate storage in LUstruct. More...
 
void dLUstructFree (dLUstruct_t *LUstruct)
 Deallocate LUstruct. More...
 
void dDestroy_LU (int_t n, gridinfo_t *grid, dLUstruct_t *LUstruct)
 Destroy distributed L & U matrices. More...
 
int_t pdgstrs_init (int_t n, int_t m_loc, int_t nrhs, int_t fst_row, int_t perm_r[], int_t perm_c[], gridinfo_t *grid, Glu_persist_t *Glu_persist, dSOLVEstruct_t *SOLVEstruct)
 
int dSolveInit (superlu_dist_options_t *options, SuperMatrix *A, int_t perm_r[], int_t perm_c[], int_t nrhs, dLUstruct_t *LUstruct, gridinfo_t *grid, dSOLVEstruct_t *SOLVEstruct)
 Initialize the data structure for the solution phase. More...
 
void dSolveFinalize (superlu_dist_options_t *options, dSOLVEstruct_t *SOLVEstruct)
 Release the resources used for the solution phase. More...
 
void dDestroy_A3d_gathered_on_2d (dSOLVEstruct_t *SOLVEstruct, gridinfo3d_t *grid3d)
 
void pdinf_norm_error (int iam, int_t n, int_t nrhs, double x[], int_t ldx, double xtrue[], int_t ldxtrue, MPI_Comm slucomm)
 Check the inf-norm of the error vector. More...
 
void dDestroy_Tree (int_t n, gridinfo_t *grid, dLUstruct_t *LUstruct)
 Destroy broadcast and reduction trees used in triangular solve. More...
 

Detailed Description

Several matrix utilities.

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 2.0) --
Lawrence Berkeley National Lab, Univ. of California Berkeley.
March 15, 2003

Last modified:
    December 28, 2022

Function Documentation

◆ dDestroy_A3d_gathered_on_2d()

void dDestroy_A3d_gathered_on_2d ( dSOLVEstruct_t SOLVEstruct,
gridinfo3d_t grid3d 
)

◆ dDestroy_LU()

void dDestroy_LU ( int_t  n,
gridinfo_t grid,
dLUstruct_t LUstruct 
)

Destroy distributed L & U matrices.

Here is the call graph for this function:

◆ dDestroy_Tree()

void dDestroy_Tree ( int_t  n,
gridinfo_t grid,
dLUstruct_t LUstruct 
)

Destroy broadcast and reduction trees used in triangular solve.

Here is the call graph for this function:

◆ dLUstructFree()

void dLUstructFree ( dLUstruct_t LUstruct)

Deallocate LUstruct.

◆ dLUstructInit()

void dLUstructInit ( const int_t  n,
dLUstruct_t LUstruct 
)

Allocate storage in LUstruct.

Here is the call graph for this function:

◆ dSolveFinalize()

void dSolveFinalize ( superlu_dist_options_t options,
dSOLVEstruct_t SOLVEstruct 
)

Release the resources used for the solution phase.

Here is the call graph for this function:

◆ dSolveInit()

int dSolveInit ( superlu_dist_options_t options,
SuperMatrix A,
int_t  perm_r[],
int_t  perm_c[],
int_t  nrhs,
dLUstruct_t LUstruct,
gridinfo_t grid,
dSOLVEstruct_t SOLVEstruct 
)

Initialize the data structure for the solution phase.

Here is the call graph for this function:

◆ pdCompRow_loc_to_CompCol_global()

int pdCompRow_loc_to_CompCol_global ( int_t  need_value,
SuperMatrix A,
gridinfo_t grid,
SuperMatrix GA 
)

Gather A from the distributed compressed row format to global A in compressed column format.

Here is the call graph for this function:

◆ pdgstrs_init()

int_t pdgstrs_init ( int_t  n,
int_t  m_loc,
int_t  nrhs,
int_t  fst_row,
int_t  perm_r[],
int_t  perm_c[],
gridinfo_t grid,
Glu_persist_t Glu_persist,
dSOLVEstruct_t SOLVEstruct 
)
Purpose
=======
  Set up the communication pattern for redistribution between B and X
  in the triangular solution.

Arguments
=========

n      (input) int (global)
       The dimension of the linear system.

m_loc  (input) int (local)
       The local row dimension of the distributed input matrix.

nrhs   (input) int (global)
       Number of right-hand sides.

fst_row (input) int (global)
       The row number of matrix B's first row in the global matrix.

perm_r (input) int* (global)
       The row permutation vector.

perm_c (input) int* (global)
       The column permutation vector.

grid   (input) gridinfo_t*
       The 2D process mesh.

◆ pdinf_norm_error()

void pdinf_norm_error ( int  iam,
int_t  n,
int_t  nrhs,
double  x[],
int_t  ldx,
double  xtrue[],
int_t  ldxtrue,
MPI_Comm  slucomm 
)

Check the inf-norm of the error vector.

◆ pdPermute_Dense_Matrix()

int pdPermute_Dense_Matrix ( int_t  fst_row,
int_t  m_loc,
int_t  row_to_proc[],
int_t  perm[],
double  X[],
int  ldx,
double  B[],
int  ldb,
int  nrhs,
gridinfo_t grid 
)

Permute the distributed dense matrix: B <= perm(X). perm[i] = j means the i-th row of X is in the j-th row of B.

Here is the call graph for this function: