Octopus (software)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Octopus
Stable release
16.3 / October 21, 2025; 6 months ago (2025-10-21)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inFortran, C, C++, CUDA
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    TypeComputational chemistry
    LicenseGNU General Public License

    Octopus is a software package for performing Kohn‍–‍Sham density functional theory (DFT) and time-dependent density functional theory (TDDFT) calculations.[1]

    Octopus employs pseudopotentials and real-space numerical grids to propagate the Kohn‍–‍Sham orbitals in real time under the influence of time-varying electromagnetic fields. Specific functionality is provided for simulating one-, two-, and three-dimensional systems. Octopus can calculate static and dynamic polarizabilities and first hyperpolarizabilities, static magnetic susceptibilities, absorption spectra, and perform molecular dynamics simulations with Ehrenfest and Car–Parrinello methods.

    The code is written predominantly in Fortran and is released under the GPL. It supported multiple levels of parallelism using OpenMPI and MPI on the CPU as well as CUDA and ROCm (via HIP) on the GPU.

    The latest version 16.3 was released on October 21, 2025.[2] As of version 16, Octopus introduces enhanced GPU parallelization and support for hybrid functionals.

    Target problems

    [edit | edit source]
    • 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.).
    • Ongoing development includes extensions 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

    [edit | edit source]
    • 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

    [edit | edit source]
    • 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. The code now 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[3] of two types: Troullier-Martins,[4] and Hartwigsen-Goedecker-Hutter.[5]
    • 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

    [edit | edit source]
    • 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 2008. 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

    [edit | edit source]

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]
    • Lua error in Module:Official_website at line 94: attempt to index field 'wikibase' (a nil value).