PEXSI
 All Classes Namespaces Files Functions Variables Typedefs Pages
Using plans and generating log files

PEXSI is written in C++, and the subroutines cannot directly interface with other programming languages such as C or FORTRAN. To solve this problem, the PEXSI internal data structure is handled using a datatype PPEXSIPlan. The idea and the usage of PPEXSIPlan is similar to fftw_plan in the FFTW package.

In PEXSI, a matrix is generally referred to as a "pole". The factorization and selected inversion procedure for a pole is computed in parallel using numProcRow * numProcCol processors.

When only selected inversion (PSelInv) is used, it is recommended to set the mpisize of the communicator comm to be just numProcRow * numProcCol.

When PEXSI is used to evaluate a large number of inverse matrices such as in the electronic structure calculation, mpisize should be numPole*numProcRow*numProcCol, where numPole inverse matrices can be processed in parallel.

The output information is controlled by the outputFileIndex variable. For instance, if this index is 1, then the corresponding processor will output to the file logPEXSI1. If outputFileIndex is negative, then this processor does NOT output logPEXSI files.

Note

...
{
PPEXSIPlan plan;
comm,
numProcRow,
numProcCol,
outputFileIndex,
&info );
/* ... Computation using plan ... */
plan,
&info );
}