Parallel selected inversion for a complex matrix

The computation of selected elements of an inverse matrix is a standalone functionality of PEXSI. For C/C++ programmers, the parallel selected inversion routine can be used as follows.

#include "c_pexsi_interface.h"

...

{

/* Setup the input matrix in distributed compressed sparse column (CSC) format */

...;

/* Main routine for computing selected elements and save into AinvnzvalLocal */

nrows,

nnz,

nnzLocal,

numColLocal,

colptrLocal,

rowindLocal,

AnzvalLocal,

ordering,

npSymbFact,

MPI_COMM_WORLD,

nprow,

npcol,

AinvnzvalLocal,

&info );

...;

/* Post processing AinvnzvalLocal */

...;

}

This routine computes the selected elements of the matrix \(A^{-1}=(H - z S)^{-1}\) in parallel. The input matrix \(H\) follows the Distributed compressed sparse column (CSC) format , defined through the variables `colptrLocal`

, `rowindLocal`

, `HnzvalLocal`

. The input matrix \(S\) can be omitted if it is an identity matrix and by setting `isSIdentity=1`

. If \(S\) is not an identity matrix, the nonzero sparsity pattern is assumed to be the same as the nonzero sparsity pattern of \(H\). Both `HnzvalLocal`

and `SnzvalLocal`

are double precision arrays. The output array `AinvnzvalLocal`

is a double array which is twice the size of `HnzvalLocal`

due to the usage of complex format.

An example is given in driver_pselinv_complex.c. See also PSelInvComplexSymmetricInterface for detailed information of its usage.

- Note
- Currently there is no driver routine for real arithmetic selected inversion. For the explanation of this please see the page Frequently asked questions.

Generated on Tue Mar 11 2014 15:34:32 for PEXSI by 1.8.5