PEXSI
 All Classes Namespaces Files Functions Variables Typedefs Pages
Build PEXSI

Edit make.inc

Configuration of PEXSI is controlled by a single make.inc file. Examples of the make.inc file are given under the config/ directory.

Find make.inc with the most similar architecture, and copy to the main PEXSI directory (using Edison for example, the latest Intel computer at NERSC, a CRAY X30 machine). ${PEXSI_DIR} stands for the main directory of PEXSI.

cd ${PEXSI_DIR}
cp config/make.inc.CRAY_XC30.intel make.inc

Edit the variables in make.inc.

PEXSI_DIR     = Main directory for PEXSI
DSUPERLU_DIR  = Main directory for SuperLU_DIST
PARMETIS_DIR  = Main directory for ParMETIS 
PTSCOTCH_DIR  = Main directory for PT-Scotch

Edit the compiler options, for instance

CC           = cc
CXX          = CC
FC           = ftn
LOADER       = CC

The USE_SYMPACK option can be set to use the symPACK solver in PEXSI. It is set to 0 by default. When set to 1, the SYMPACK_DIR variable must be pointing to symPACK's installation directory.

Note

Build the PEXSI library

Attention
**The installation procedure and dependencies of every version of the PEXSI package may be different. Please follow the documentation of the version of the PEXSI package you are working with (provided in the Download page)**

If make.inc is configured correctly,

make 
make install

Should build the PEXSI library under the build directory ready to be used in an external package. If the FORTRAN interface is needed, type

make finstall

If examples are needed (not necessary if you use PEXSI in an external package), type

make examples

which will generate C examples in examples/ directory and FORTRAN examples in fortran/ directory, respectively.

make all

will make the library and the examples.

For more information on the examples, see Tutorial.

Tests

After example files are compiled, go to the examples/ directory, and

examples$ mpirun -n 1 ./driver_pselinv_complex_(suffix)

should return the diagonal of the matrix

\[ (A + i I)^{-1} \]

saved on the 0-th processor, where \(A\) is the five-point discretization of a Laplacian operator on a 2D domain. The result can be compared with examples/driver_pselinv_complex.out to check the correctness of the result. For more examples see Tutorial.