PEXSI
 All Classes Namespaces Files Functions Variables Typedefs Pages
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
pselinv.hpp File Reference

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::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
 

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.
 

Macros

#define IDX_TO_TAG(lidx, tag)   (SELINV_TAG_COUNT*(lidx)+(tag))
 
#define IDX_TO_TAG2(sidx, lidx, tag)   (SELINV_TAG_COUNT*(sidx)+(tag))
 
#define TAG_TO_IDX(tag, typetag)   (((tag)-(typetag))/SELINV_TAG_COUNT)
 

Typedefs

typedef std::vector< bool > PEXSI::bitMask
 
typedef std::map< bitMask,
std::vector< Int > > 
PEXSI::bitMaskSet
 

Enumerations

enum  MSGTYPE {
  LSIZE =0, LROWSIZE, USIZE, UCOLSIZE,
  LCONTENT, LROWCONTENT, UCONTENT, UCOLCONTENT,
  MSGCOUNT
}
 
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.
 
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)
 

Detailed Description

Main file for parallel selected inversion.

Date
2013-08-05