Main file for parallel selected inversion. More...
#include "environment.hpp"
#include "numvec_impl.hpp"
#include "nummat_impl.hpp"
#include "sparse_matrix_impl.hpp"
#include "superlu_dist_interf.hpp"
#include "mpi_interf.hpp"
#include "utility.hpp"
#include "blas.hpp"
#include "lapack.hpp"
#include <set>
Go to the source code of this file.
Classes | |
struct | PEXSI::GridType |
GridType is the PSelInv way of defining the grid. More... | |
struct | PEXSI::SuperNodeType |
SuperNodeType describes mapping between supernode and column, the permutation information, and potentially the elimination tree (not implemented here). More... | |
struct | PEXSI::LBlock |
LBlock stores a nonzero block in the lower triangular part or the diagonal part in PSelInv. More... | |
struct | PEXSI::UBlock |
UBlock stores a nonzero block in the upper triangular part in PSelInv. More... | |
class | PEXSI::PMatrix |
PMatrix contains the main data structure and the computational routine for the parallel selected inversion. More... | |
Namespaces | |
PEXSI | |
The main namespace. | |
LBlockMask | |
LBlockMask allows one to compress the selected data in LBlock used for communication. | |
UBlockMask | |
UBlockMask allows one to compress the selected data in UBlock used for communication. | |
Typedefs | |
typedef std::vector< bool > | PEXSI::bitMask |
typedef std::map< bitMask, std::vector< Int > > | PEXSI::bitMaskSet |
Enumerations | |
enum | { BLOCKIDX, NUMROW, NUMCOL, ROWS, NZVAL, TOTAL_NUMBER } |
enum | { BLOCKIDX, NUMROW, NUMCOL, COLS, NZVAL, TOTAL_NUMBER } |
Functions | |
Int | PEXSI::MYPROC (const GridType *g) |
MYPROC returns the current processor rank. | |
Int | PEXSI::MYROW (const GridType *g) |
MYROW returns my processor row. | |
Int | PEXSI::MYCOL (const GridType *g) |
MYCOL returns my processor column. | |
Int | PEXSI::PROW (Int bnum, const GridType *g) |
PROW returns the processor row that the bnum-th block (supernode) belongs to. | |
Int | PEXSI::PCOL (Int bnum, const GridType *g) |
PCOL returns the processor column that the bnum-th block (supernode) belongs to. | |
Int | PEXSI::PNUM (Int i, Int j, const GridType *g) |
PNUM returns the processor rank that the bnum-th block (supernode) belongs to. | |
Int | PEXSI::LBi (Int bnum, const GridType *g) |
LBi returns the local block number on the processor at processor row PROW( bnum, g ). | |
Int | PEXSI::LBj (Int bnum, const GridType *g) |
LBj returns the local block number on the processor at processor column PCOL( bnum, g ). | |
Int | PEXSI::GBi (Int iLocal, const GridType *g) |
GBi returns the global block number from a local block number in the row direction. | |
Int | PEXSI::GBj (Int jLocal, const GridType *g) |
GBj returns the global block number from a local block number in the column direction. | |
Int | PEXSI::CEILING (Int a, Int b) |
CEILING is used for computing the storage space for local number of blocks. | |
Int | PEXSI::BlockIdx (Int i, const SuperNodeType *s) |
BlockIdx returns the block index of a column i. | |
Int | PEXSI::FirstBlockCol (Int bnum, const SuperNodeType *s) |
FirstBlockCol returns the first column of a block bnum. | |
Int | PEXSI::FirstBlockRow (Int bnum, const SuperNodeType *s) |
FirstBlockRow returns the first column of a block bnum. Note: the functionality of FirstBlockRow is exactly the same as in FirstBlockCol. | |
Int | PEXSI::SuperSize (Int bnum, const SuperNodeType *s) |
SuperSize returns the size of the block bnum. | |
Int | PEXSI::NumSuper (const SuperNodeType *s) |
NumSuper returns the total number of supernodes. | |
Int | PEXSI::NumCol (const SuperNodeType *s) |
NumCol returns the total number of columns for a supernodal partiiton. | |
Int | PEXSI::serialize (LBlock &val, std::ostream &os, const std::vector< Int > &mask) |
Int | PEXSI::deserialize (LBlock &val, std::istream &is, const std::vector< Int > &mask) |
Int | PEXSI::serialize (UBlock &val, std::ostream &os, const std::vector< Int > &mask) |
Int | PEXSI::deserialize (UBlock &val, std::istream &is, const std::vector< Int > &mask) |
Main file for parallel selected inversion.