.. index:: TRLan, Lanczos; TRLan .. _TRLan: TRLan ===== Description ----------- TRLan implements the Thick-Restart Lanczos method for solving large symmetric eigenvalue problems. User instructions ----------------- TRLan is available for use with both the GNU and Intel. To use, load the appropriate module. For example, to use the serial library, run .. code-block:: bash $ module load trlan/201009 and to use the parallel library, run .. code-block:: bash $ module load trlan-mpi/201009 (Note that TRLan seems to be released with date stamps rather than version numbers.) To use the serial library add '-ltrlan' to your link link; to use the MPI version add '-ltrlan_mpi'. TRLan is relatively straightforward (but certainly not black-box) to use. The programmer must supply the routine to multiply the matrix by trial Lanczos vector. It is therefore necessary to read the documentation thoroughly, which is available at http://crd.lbl.gov/~kewu/trlan/. TRLan is written in Fortran. Whilst it is possible to link to TRLan from other languages, it might be easier to use nu-TRLan for C/C++ projects. Source ------ http://crd.lbl.gov/~kewu/trlan/ and https://codeforge.lbl.gov/projects/trlan/. License ------- No obvious license given that I could find. It seems safe to provide an appropriate citations in any publications arise from using the library. Admin notes ----------- Compilation is quite straightforward. After making the appropriate settings in Make.inc, run .. code-block:: bash $ make lib to compile the serial version of the library and .. code-block:: bash $ make plib to compile the parallel version of the library. I used the following Make.inc files: .. code-block:: make # gfortran, serial FC=gfortran F90=gfortran FFLAGS=-O3 SHELL=/bin/sh .. code-block:: make # ifort, serial FC=ifort F90=ifort FFLAGS=-O3 SHELL=/bin/sh .. code-block:: make # ifort/gfortran, mpi FC=mpif90 F90=mpif90 FFLAGS=-O3 SHELL=/bin/sh Obviously the compiler and MPI modules had to be loaded. The libraries, libtrlan.a and libtrlan_mpi.a, are compiled in the root directory. I created the directory structure to fit in with the standard layout by hand.