= Installation guide : eigenvalue solver = <> == ARPACK - eigenvalue solver (implicitly restarted Arnoldi method) == === Installing packages in Debian, Ubuntu === For the Linux distributions Debian or Ubuntu install the package {{{libarpack2-dev}}} using the packet manager. '''Important:''' Make sure that the library {{{libarpack.so}}} or {{{libarpack.a}}} is installed into {{{/usr/lib}}} or {{{/usr/lib64}}}. Otherwise specify the path {{{ARPACK_PATH}}} in {{{$(CONCEPTS_DEV)/boost-build-modules.jam}}}. Note that the library needs to have exactly the name as given above. If it should have a suffix with the version number for example, you have to create a symbolic link. === Direct installation === * Download ARPACK from http://www.caam.rice.edu/software/ARPACK, ''e.g.'' {{{ cd /scratch/kersten wget http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz tar -xzf arpack96.tar.gz wget http://www.caam.rice.edu/software/ARPACK/SRC/patch.tar.gz tar -xzf patch.tar.gz }}} * Edit {{{ARmake.inc}}} and change to (paths might have to be adjusted) {{{ home = /scratch/kersten/ARPACK BLASdir = /usr/lib LAPACKdir = /usr/lib LAPACKLIB = /usr/lib BLASLIB = /usr/lib FC = gfortran FFLAGS = -O3 -funroll-all-loops -ffast-math -fPIC MAKE = make }}} Also replace {{{g77-3.4.5}}} with your version of the Fortran compiler. The last two changes may not be necessary on some machines. * Call {{{make all}}}. * Recompile Concepts using {{{bjam}}}. Now you should read something like {{{Activating support for eigenvalue solver Arpack.}}} == Trilinos - large-scale, complex multi-physics engineering and scientific problems == Concepts uses Trilinos for Anasazi, a versatile eigenvalue solver. * Go to https://github.com/trilinos/Trilinos/releases and download the latest version of trilinos, ''e.g.'' {{{sandia-approved-191218-1689.tar.gz}}} * Extract the archive using {{{tar xzf sandia-approved-191218-1689.tar.gz}}} * Enter the newly created directory using {{{cd sandia-approved-191218-1689}}} * It is recommended to create an empty subdirectory for each build {{{mkdir build && cd build}}} * You should define the following environment variables, here the example of bash shell: {{{ export CC="gcc-4.1.2" export CXX="g++-4.1.2" export CXXFLAGS="-fPIC -O3 -fomit-frame-pointer -g" export CFLAGS="-fPIC -O3 -fomit-frame-pointer -g" export LDFLAGS="-fPIC" }}} * Trilinos has to use gfortran (binary) which is often part of the gcc package. * If both gfortran and g77 are installed, Trilinos need a bit of help to use it and not the possibly also existing g77. For bash shells, this can be done with {{{export F77="gfortran-4.1.2"}}} * Call the configure script (located in the parent directory) {{{ ../configure --prefix=installdir --with-gnumake --enable-anasazi --enable-epetra --enable-teuchos --enable-triutils --enable-didasko --enable-shared --cache-file=config.cache }}} * Without gnumake flag the makefile are really awkward. * The other flags are needed to install by Anasazi required packages. * The output of configure should then include: (and not g77 or any compiler you do not want to use, see page 19 in the [[https://trilinos.github.io/pdfs/TrilinosUserGuide.pdf|Trilinos user guide]] for more flags) {{{ checking whether g++-4.1.2 accepts -g... yes checking whether gfortran-4.1.2 accepts -g... yes }}} * Start building Trilinos via {{{make && sudo make install}}} * Go to {{{$(CONCEPTS_DEV)/eigensolver/anasazi}}}, execute {{{bjam}}}, the build should now succeed. * Complete the environment variable [[http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html|LD_LIBRARY_PATH]] such that the shared libraries will be found, ''e.g.'' for bash shells {{{export LD_LIBRARY_PATH=$LD_LIBRARY_PATH':installdir/lib}}}.