Octopus (software)
This article's factual accuracy may be compromised due to out-of-date information. (January 2017) |
Octopus is a software package for performing Kohn–Sham density functional theory (DFT) and time-dependent density functional theory (TDDFT) calculations.[1]
Octopus employs
Car–Parrinello methods
.
The code is written predominantly in Fortran and is released under the GPL.
The latest version 13.0 was released June 28th, 2023.
Target problems
- Linear optical (i.e. electronic) response of molecules or clusters, also second-order nonlinear response.
- Non-linear response to classical high-intensity electromagnetic fields, taking into account both the ionic and electronic degrees of freedom.
- Ground-state and excited state electronic properties of systems with lower dimensionality, such as quantum dots.
- Photo-induced reactions of molecules (e.g., photo-dissociation, photo-isomerization, etc.).
- In the immediate future, extension of these procedures to systems that are infinite and periodic in one or more dimensions (polymers, slabs, nanotubes, solids), and to electronic transport.
Theoretical basis
- The underlying theories are DFT and TDDFT. Also, the code may perform dynamics by considering the classical (i.e. point-particle) approximation for the nuclei. These dynamics may be non-adiabatic, since the system evolves following the Ehrenfest path. It is, however, a mean-field approach.
- Regarding TDDFT, one can use three different approaches:
- the standard TDDFT-based linear-response theory of Casida, which provides the excitation energies and oscillator strengths for ground-state to excited-state transitions.
- the explicit time-propagation of the TDDFT equations, which allows for the use of large external potentials, well beyond the range of validity of perturbation theory.
- the Sternheimer equation (density-functional perturbation theory) in the frequency domain, using only occupied states.
Methodology
- As numerical representation, the code works without a basis set, relying on numerical meshes. Nevertheless, auxiliary basis sets (plane waves, atomic orbitals) are used when necessary. Recently, the code offers the possibility of working with non-uniform grids, which adapt to the inhomogeneity of the problem, and of making use of multigrid techniques to accelerate the calculations.
- For most calculations, the code relies on the use of pseudopotentials[2] of two types: Troullier-Martins,[3] and Hartwigsen-Goedecker-Hutter.[4]
- In addition to being able to treat systems in the standard 3 dimensions, 2D and 1D modes are also available. These are useful for studying, e.g., the two-dimensional electron gas that characterizes a wide class of quantum dots.
Technical aspects
- The code has been designed with emphasis on parallel scalability. In consequence, it allows for multiple task divisions, this utilises mesh division software, MPI and OpenMP.
- The language of most of the code is Fortran 90. Other languages, such as C, are also used.
- The package is licensed under the GNU General Public License (GPL). In consequence, it is available for use, inspection, and modification for anyone, at the Octopus git repository.
See also
- Quantum chemistry computer programs