Main file for parallel selected inversion. More...
#include "pexsi/environment.hpp"
#include "pexsi/NumVec.hpp"
#include "pexsi/NumMat.hpp"
#include "pexsi/sparse_matrix.hpp"
#include "pexsi/superlu_dist_interf.hpp"
#include "pexsi/mpi_interf.hpp"
#include "pexsi/utility.hpp"
#include "pexsi/blas.hpp"
#include "pexsi/lapack.hpp"
#include "pexsi/TreeBcast.hpp"
#include <set>
#include "pexsi/pselinv_impl.hpp"
Go to the source code of this file.
Classes | |
struct | PEXSI::ULComparator |
struct | PEXSI::PSelInvOptions |
A thin interface for passing parameters to set the PSelInv options. More... | |
struct | PEXSI::FactorizationOptions |
A thin interface for passing parameters to set the Factorization options. More... | |
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< T > |
LBlock stores a nonzero block in the lower triangular part or the diagonal part in PSelInv. More... | |
struct | PEXSI::UBlock< T > |
UBlock stores a nonzero block in the upper triangular part in PSelInv. More... | |
class | PEXSI::PMatrix< T > |
PMatrix contains the main data structure and the computational routine for the parallel selected inversion. More... | |
struct | PEXSI::PMatrix< T >::SuperNodeBufferType |
class | PEXSI::PMatrixUnsym< T > |
PMatrixUnsym 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 |
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. | |
template<typename T > | |
Int | PEXSI::serialize (LBlock< T > &val, std::ostream &os, const std::vector< Int > &mask) |
template<typename T > | |
Int | PEXSI::deserialize (LBlock< T > &val, std::istream &is, const std::vector< Int > &mask) |
template<typename T > | |
Int | PEXSI::serialize (UBlock< T > &val, std::ostream &os, const std::vector< Int > &mask) |
template<typename T > | |
Int | PEXSI::deserialize (UBlock< T > &val, std::istream &is, const std::vector< Int > &mask) |
Main file for parallel selected inversion.