Installation

Dependencies

openLOWDIN requires the following standard packages:

wget git build-essential liblapack-dev libblas-dev libgsl0-dev autotools-dev automake libtool gfortran python3 gawk libeigen3-dev libgmp-dev libboost-all-dev

Additionally, it requires some quantum chemistry libraries:

libinit - Molecular integrals in gaussian type orbital basis
libxc - DFT functionals

The following opensource libraries are distributed within the openLOWDIN code

aduw - Four-index integrals transformation
erkale - Orbital localization
gepol - COSMO
jadamilu - large sparse matrix diagonalization
molden2aim - molden to AIM wave function converter

Getting the code

The source code is available at https://github.com/efposadac/openLOWDIN

git clone https://github.com/efposadac/openLOWDIN

Basic installation

Once all the dependencies are installed, the code is compile with the following steps. First, run the interactive configuration script in openLOWDIN root directory. Be sure that you have permissions to write in the installation directory and have properly exported the $PATH environment.

./configure

This script will ask a set of questions, please provide the option that satisfies your needs.

INFO: Interactive configuration options
Fortran Compiler command? gfortran(default) or ifort/ifx [gfortran]

Compiler Options: (1) regular,  (2) backtrace and debug,  (3) static (for intel fortran compiler only), (4) Full debug, (5) Highest optimization level [1]

Speed up on GPUs? (you need to have already installed CUDA and Magma libraries): yes/no [no]

Executable name? default=openlowdin [openlowdin]

Installation directory? default=/usr/local [/usr/local]

Compile the code with

make

you can add the parallel flag to compile in paralle, e.g. with 4 threads as -j 4.

Finally, install as

make install

To uninstall the binaries from the selected installation folder

make uninstall

To clean the project

make clean
make distclean

Step-by-step installation

Here you can find a step-by-step workflow to install on ubuntu-latest linux distribution.

### Step-by-step  installation example: (replace apt-get with your preferred package manager) ###

        sudo apt-get update
        sudo apt-get -y install wget git build-essential liblapack-dev libblas-dev libgsl0-dev autotools-dev automake libtool gfortran python3 gawk libeigen3-dev libgmp-dev libboost-all-dev
        # Define ENV Variables
        export WORKDIR=$PWD/dependencies
        export PATH=$PATH:$WORKDIR/bin
        export C_INCLUDE_PATH=$C_INCLUDE_PATH:$WORKDIR/include:$WORKDIR/include/libint2:/usr/include/eigen3
        export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$WORKDIR/include:$WORKDIR/include/libint2:/usr/include/eigen3
        export LIBRARY_PATH=$LIBRARY_PATH:$WORKDIR/lib
        export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$WORKDIR/lib
        # Create work directories
        mkdir $WORKDIR
        mkdir $WORKDIR/bin
        mkdir $WORKDIR/lib
        cd $WORKDIR

      # Libint2
        # If you have Ubuntu, you can get this precompiled Libint2 library
        wget https://www.dropbox.com/s/d3d44j238lkfwcr/libint-master-SEP052019.tgz
        tar xzvf libint-master-SEP052019.tgz

      # Otherwise, download and compile with minimal (default am), G12, fPIC options (libint2 commit 668b10c4bdca5876984058742d4212675eb93f3f)
      # git clone https://github.com/evaleev/libint.git
      # cd libint
      # git checkout 668b10c4bdca5876984058742d4212675eb93f3f
      # ./autogen.sh
      # mkdir ../build
        # cd ../build
        # ../libint/configure --prefix=$WORKDIR --with-max-am=6 --enable-g12=4 --with-g12-max-am=4 --with-cxxgen-optflags
        # make -j 4
        # make install
      # ../libint/configure --prefix=$WORKDIR

        cd -

        # Libint1
        git clone https://github.com/evaleev/libint.git
        cd libint
        git checkout v1
        aclocal -I lib/autoconf
        autoconf
        ./configure --prefix=$WORKDIR
        make -j 4
        make install
        make clean
        make distclean
        cd -

      # Libxc
        cd $WORKDIR
        # If you have Ubuntu, you can get this precompiled Libxc library
        wget https://www.dropbox.com/s/6cja3zzhl1cq46i/libxc-master-MAY242023.tgz
        tar xzvf libxc-master-MAY242023.tgz
      # Otherwise, download and compile with default options (libxc commit 4bd0e1e36347c6d0a4e378a2c8d891ae43f8c951)
      # git clone https://gitlab.com/libxc/libxc.git
      # cd libxc
      # git checkout 4bd0e1e36347c6d0a4e378a2c8d891ae43f8c951
      # autoreconf -i
      # ./configure --enable-shared --prefix=$WORKDIR
      # make -j 4
      # make install

        cd ..

        # Configure Lowdin
        ./configure -p $WORKDIR/bin -s /tmp -l "-lblas -llapack"
        # Build Lowdin
        make -j 4
        # Install Lowdin
        make install
        # Run Tests
        make test