Chapter 11. The Octopus Software Project.

Development note Development of this chapter has been postponed.

11.1. Preliminary information.

Like the ABINIT software project, Octopus is an open-source collaborative effort of international scope. The project focuses on the optical properties of molecules using the time-dependent density-functional theory (TDDFT)... The RPM build description of Octopus is:

 Octopus is a computer package aimed at the simulation of the electron-ion dynamics of finite systems, both in one and three dimensions, under the influence of time-dependent electromagnetic fields. The electronic degrees of freedom are treated quantum mechanically within the time-dependent Kohn-Sham formalism, while the ions are handled classically. All quantities are expanded in a regular mesh in real space, and the simulations are performed in real time. Although not optimized for that purpose, the program is also able to obtain static properties like ground-state geometries, or static polarizabilities. The method employed proved quite reliable and general, and has been successfully used to calculate linear and non-linear absorption spectra, harmonic spectra, laser induced fragmentation, etc. of a variety of systems, from small clusters to medium sized quantum dots. Octopus is a program aimed at the ab initio virtual experimentation on a hopefully ever increasing range of systems types. Its main characteristics are: Electrons are describe quantum-mechanically within the Density-Functional Theory (DFT), in its time-dependent form (TDDFT) when doing simulations in time. Nuclei are described classically as point particles. Electron-nucleus interaction is described within the Pseudopotential approximation. --
The software can be obtained from http://www.tddft.org/programs/octopus/download.php. The precompiled binaries installed without a problem in seconds and after viewing the tutorial we were able run our first examples. For developers or those interested in running the most recent version the Concurrent Versions System (CVS) source repository can be viewed at nautilus.fis.uc.pt/cgi-bin/cvsweb.cgi/marques/octopus. The sources can also be obtained from the CVS server by issuing the following commands from your CVS work directory:

prompt>cvs -d :pserver:anonymous@nautilus.fis.uc.pt:/server/cvsroot co marques/octopus

To pass the compiler options via the Makefile, which is generated using GNU autotools, one would issue the command:

prompt>export F90FLAGS="-FR -O3 -tpp6 -axi"

as described in the installation instructions.

LAPACK and BLAS are not distributed with octopus, but these can be downloaded separately at http://www.netlib.org/lapack and http://www.netlib.org/blas, respectively. If you have the LAPACK and BLAS libraries compiled with g77 preinstalled you may have to recompile them with your Fortran 90/95 compiler. There may be other options that allow the use of g77 compiled libraries, but in the present case we simply chose to rebuild the libraries. On our Pentium II system using the Intel compiler the following commands were issued in the directory containing the LAPACK sources :

prompt>ifc -O3 -tpp6 -axi -c *.f

prompt>ar r liblapack.a *.o

prompt>ranlib liblapack.a

prompt>rm -f *.o

After doing the same to create a BLAS library libblas.a the installation can be completed by following the installation instructions. As an example, the options we used with the configure script to create the Makefile were,

prompt>./configure --prefix=/home/keay/Cprograms/Computational_Physics/OCTOPUS/Octopus_test --with-blas=/home/keay/Cprograms/Computational_Physics/blas --with-lapack=/home/keay/Cprograms/Computational_Physics/lapack

where ~/lapack and ~/blas are the directories containing the libraries liblapack.a and libblas.a, respectively.

11.3. Octopus pseudopotential implementation.

Octopus offers the possibility of using either Troullier-Martins (TM) pseudopotentials [141],[142] or the Hartwigsen-Goedecker-Hutter (HGH) separable dual-space Gaussian pseudopotentials [Goedecker,1996;Hartwigsen,1998]. A limited number files for various chemical elements in the TM pseudopotential scheme [141],[142] are available in the directory /usr/share/octopus/PP/TM2/ and all the HGH LDA pseudopotentials appear to be in the directory /usr/share/octopus/PP/HGH/ created during installation process. A wide variety of pseudopotential parameters can also be obtained online http://www.tddft.org/programs/octopus/pseudo.php.

11.4. Octopus' implementation of Hartwigsen-Goedecker-Hutter pseudopotentials.

In octopus the HGH are generated by functions in hgh.F90

function projectorr_scalar(r, p, i, l)

 ``` projectorr_scalar = sqrt(2.0_r8) * rr * exp(-r**2/(2.0_r8*p%rc(l)**2)) / & ( p%rc(l)**(l + real(4*i-1,r8)/2) * x ) ```

In octopus the data for the Troullier-Martins pseudopotentials are stored in files labeled element.ascii and are processed by routines in tm.F90 In the pseudopotential files, element.ascii, the data are stored in block format with the radial grid first, followed by the pseudopotentials times the radial coordinate r for different values of angular momentum quantum number l, i.e.  $r·{V}_{l}^{\mathrm{ps}}\left(r\right)$.