# Changes

Jump to navigation
Jump to search

This page contains the changes in the releases of Octopus.

## Contents

- 1 [10.0] - To be released
- 2 [9.1] - 2019-06-28
- 3 [9.0] - 2019-05-14
- 4 [8.4] - 2019-02-08
- 5 [8.3] - 2018-11-13
- 6 [8.2] - 2018-08-08
- 7 [8.1] - 2018-07-06
- 8 [8.0] - 2018-06-15
- 9 [7.3] - 2018-03-24
- 10 [7.2] - 2018-01-15
- 11 [7.1] - 2017-06-09
- 12 [7.0] - 2017-06-06
- 13 [6.0] - 2016-09-05
- 14 [5.0.1] - 2016-01-11
- 15 [5.0.0] - 2015-10-07
- 16 [4.1.2] - 2013-11-18
- 17 [4.1.1] - 2013-09-03
- 18 [4.1.0] - 2013-06-12
- 19 [4.0.1] - 2012-02-03
- 20 [4.0.0] - 2011-06-19
- 21 [3.2.0] - 2009-11-24
- 22 [3.1.1] - 2009-11-04
- 23 [3.1.0] - 2009-04-14
- 24 [3.0.1] - 2008-05-08
- 25 [3.0.0] - 2008-02-19
- 26 [2.1.0] - 2007-06-05
- 27 [2.0.1] - 2006/03/23
- 28 [2.0.0] - 2006/02/17

#### [10.0] - To be released

- Add the possibility to output the dipole matrix elements. MR:346
- Add the possibility of computing the two-body integrals with k-points. MR:460
- Optimizations and improvements to batches. MR:492 MR:494 MR:498 MR:510 MR:511
- Other bug fixes and improvements. MR:502 MR:513
- Bugfix for the Laplacian in the case of non-orthogonal cells. MR:484
- Added k-point parallelization support for
**TDOutput=td_proj**and forbade**TDOutput=populations**for solids, as it is not supported. MR:526 - Adding a variable PropagationSpectrumMinEnergy to control the minimum energy in Fourier transforms. MR:545
- Other bug fixes and improvements. MR:521 MR:522 MR:527 MR:528 MR:538 MR:540 MR:546 MR:547 MR:554 MR:559 MR:560 MR:561 MR:562 MR:563 MR:564
- Enable GPU acceleration for solids MR:529
- Fixes a bug preventing to run DFT+U if a species was not a pseudopotential. MR:541
- GPU fixes MR:527 MR:535 MR:542 MR:543 MR:544 MR:548 MR:549 MR:553
- Tweaks to the testsuite. MR:531 MR:534 MR:550 MR:565 MR:570 MR:571
- Allow for TDOutput = td_occup to run in parallel. MR:537
- Removed the hamiltonian_dervexternal routine. The same functionality is coded (better) in the pert_oct_m module. MR:540
- Removed the warning from QMR about convergence. MR:552
- Added feature to stop the code after given time MR:556 MR:573
- Make threshold in energy change during CG iterations a parameter. MR:557
- Make ps_debug print the density for the long range potential. MR:566
- Fix a bug that was leading to zeros in the diff for states using rmmdiis. MR:569
- Skip bands with a zero weight for the routine states_calc_quantities. MR:575

#### [9.1] - 2019-06-28

- Fixed condition for the
utility for the case where the variable`oct-dielectric-function`**GaugeFieldDelay**was not present, but**TransientAbsorptionReference**was. MR:530 - Fixed a few tests from the testsuite. MR:532 MR:534 MR:580
- Assume all atoms overlap for periodic systems to avoid some possible problems when applying the non-local projectors. This is a temporary solution and the problem should be fixed in the next major release. MR:551
- Fixed a bug with frozen U of frozen occupations in TDDFT+U that was causing a restart problem. MR:567
- Fixed xcrysden output for non-orthogonal cells. MR:574
- Fixed bug in the phase application to the wavefunction when using the Taylor exponential method with ETRS and self-consistent ETRS propagators. MR:584
- Fixed incorrect projected DOS with spin-polarized orbitals. MR:590
- Fixed bug when using
**TDFreezeOrbitals**and spinors. MR:598

#### [9.0] - 2019-05-14

- Added a random number generator to the parser. MR:151
- Added support of VDW TS correction for periodic systems. MR:160
- Added option to output the total energy density to a file. MR:217
- Added an option to benchmark the DFT+U part of the code. MR:234
- The DFT+U can now be used with domain parallelization. MR:238 MR:349
- Changed the behaviour of the states randomization to generate real states at Gamma. MR:258
- Support for PSP8 pseudopotential format. MR:265 MR:271
- Inclusion of local field effects in the calculation of the absorption spectrum of solvated molecules within the PCM framework. MR:266 MR:501 MR:503
- Several fixes and updates to the implementation of magneto-optics for solids within the Sternheimer approach. MR:267
- Added the possibility to test the application of the Hamiltonian. MR:269
- The
utility now allows for the calculation of transient absorption. MR:270 MR:483`oct-dielectric-function` - Added G=G'=0 term in the long-range contribution (LRC) to exchange-correlation kernel in Sternheimer approach. MR:274
- Bugfix for the calculation of forces, if
**KPointsUseSymmetries=yes**was used with zero-weight k-points. MR:276 - Converted the
utility into a calculation mode of Octopus. MR:281`oct-test` - Adding a contribution to the forces to take into account the SCF convergence, see Phys. Rev. B 47, 4771 (1993). MR:287
- Adding the force term from the nonlinear core correction that was previously missing. MR:292
- Set a new default damp factor for exponential and gaussian damping methods in the calculation of spectra. MR:299 MR:
- Add the possibility to construct a DFT+U basis from states taken from a different calculation. MR:302 MR:362
- Implementation of more Gram-Schmidt orthogonalization schemes. MR:308
- Add the possibility to select the Gram-Schmidt scheme used for the Arnoldi process (used for Lanczos exponential method). MR:310
- Removed
dummy executable. MR:327`octopus-mpi` - Removed the complex scaling method. MR:329 MR:344
- Fixed bug in multigrid preconditioner. MR:331
- Add input option
**DebugTrapSignals**to enable or disable trapping signals inside the code. MR:333 MR:347 - Added all the input files from the Octopus basics tutorials to the testsuite. MR:337
- k-point parallelization is now used by default. MR:338 MR:358
- Improved the default CG eigensolver to follow Payne et al. (1992), Rev. Mod. Phys. 64, 4. Added options for orthogonalization against previous/all states, for using additional terms in the energy minimization, and for using different conjugate directions. Added configuration options to multigrid preconditioner. MR:342 MR:478
- Removed initial attempt to implement subsystem DFT as this was not mature enough. MR:343
- Allow for changing the amount of screening taken into account in the ACBN0 functional. MR:348
- Output of the Kanamori interaction parameters. MR:351
- Add the output of the electron-ion potential as an output of
**Output=potential_gradient**. MR:360 - Implemented the around mean-field double counting term for DFT+U. MR:365 MR:412
- Improved the mixing for DFT+U GS calculations. MR:367
- Introduced new variable
**PropagationSpectrumSymmetrizeSigma**to symmetrize the photo-absorption cross-section tensor when calling theutility. MR:376`oct-propagation_spectrum` - Implementation of the rotationally invariant form of the ACBN0 functional. This is now the default option, except for spinors. MR:378 MR:463
- Modernized build system by replacing the recursive Automake files in
by a single Automake file. MR:396 MR:406 MR:407 MR:414 MR:438 MR:467`src` - Added the option to output the testsuite results to a YAML file. MR:405 MR:413 MR:452
- Instrument Octopus to use likwid for performance measurement. MR:417
- Several improvements to the Cuda support. MR:421 MR:428
- Renamed XCParallel input variable to ParallelXC and its default value is now "yes". MR:422 MR:423
- Removed the openscad output format. MR:425
- Added workaround for bug in GCC C preprocessor on PowerPC. MR:443
- Use all GPUs on a node with the CUDA backend when running in parallel. MR:446 MR:448
- Fixed the lattice vectors in the xcrysden outputs. MR:455
- The option
**TDFreeOrbitals**now supports states parallelization. MR:456 - Improved stability of the symmetrization. MR:474
- Improved support for libvdwxc, including new
`--with-libvdwxc-prefix`

configure flag. MR:488 MR:499 - Fixed incorrect installation of header files from libyaml and spglib external libraries. MR:500
- Fixed bug when checking if '
*GaugeVectorField*breaks the symmetries or not. MR:517 - Add warning about deprecation of Libxc 2 and forbid GGA and MGGA calculations with spinors. MR:507
- Many optimizations:
- DFT+U. MR:235 MR:275 MR:374
- Application of the non-local part of the pseudopotentials. MR:255 MR:321 MR:322 MR:363 MR:373 MR:399
- Application of the phase in the exponential methods. MR:252 MR:323 MR:330 MR:389
- Propagators. MR:370
- Calculation of the Ewald summation for 2D systems. MR:381
- States are now stored in packed mode as default (
**StatesPack=yes**) to improve performance, except when running on a GPU. MR:296 MR:457 MR:518 - Speed up GPU version by reducing number of allocations. MR:465
- Reduced memory used when
**StatesPack=yes**. MR:475 MR:476 - Varia. MR:246 MR:324 MR:334 MR:335 MR:340 MR:356 MR:464 MR:491

- Other bug fixes and improvements. MR:196 MR:215 MR:231 MR:251 MR:254 MR:261 MR:282 MR:288 MR:289 MR:294 MR:301 MR:305 MR:309 MR:313 MR:314 MR:317 MR:325 MR:326 MR:332 MR:336 MR:345 MR:350 MR:352 MR:377 MR:391 MR:397 MR:400 MR:401 MR:404 MR:411 MR:415 MR:419 MR:427 MR:429 MR:430 MR:433 MR:435 MR:439 MR:441 MR:444 MR:440 MR:451 MR:454 MR:458 MR:459 MR:461 MR:468 MR:469 MR:471 MR:473 MR:470 MR:477 MR:480 MR:481 MR:482 MR:485 MR:486 MR:489 MR:490 MR:495 MR:496 MR:504 MR:520

#### [8.4] - 2019-02-08

- Fixed incorrect Thallium atomic mass for HGH pseudopotential set with semicore states. MR:384
- Fixed error when using Cu pseudopotentials, as some of the element data was taken from Curium (Cm). MR:384
- Fixed incorrect parsing of valence charge in some XML based pseudopotential files. MR:386
- Fixed bug when using
**TDFreezeOrbitals**with**SpinComponents=spin_polarised**or**SpinComponents=spinors**. MR:395 - Forbid the use of
**TDFreezeOrbitals**with MGGAs. MR:394 - The calculation of the DOS that was displayed on the screen was not correct when using k-point symmetries or zero-weight k-points. MR:408
- Fixed problem with spin-polarized version of ADSIC functional which could sometimes result in incorrect results. MR:410
- Fixed compilation with GCC without using the -ffree-line-length-none flag. MR:436

#### [8.3] - 2018-11-13

- Fixed the value of the
**localMagneticMomentsSphereRadius**variable for the case of one atom in a periodic system. MR:318 - Fixed the xcrysden output for non-orthogonal cells. MR:354
- Fixed several bugs in the eigensolvers. MR:355
- The divergence was not correctly calculated for non-orthogonal cells, making GGA and MGGA calculations incorrect. MR:359
**MoveIons = yes**is now forbidden when either NLCC or DFT+U are used, as there is a missing term. MR:361- Fixed several missing OpenMP private statements. MR:368
- Fixed bug in the calculation of the Ewald summation for 2D periodic systems. MR:380
- Minor fixes. MR:366

#### [8.2] - 2018-08-08

- Fix a problem of normalization of the NLCC for spinors. MR:293
- MGGA should not be used with pseudopotentials that have non-linear core-corrections. MR:295
- Fixed bug when TDMultipoleLmax = 0.. MR:300
- Fix bug in Jacobi preconditioner. MR:303
- KPointsUseTimeReversal input variable is not marked as experimental anymore. MR:306
- Fixed bug affecting TDDeltaStrengthMode = kick_spin_and_density. MR:307
- Fixed bug in the geometry optimization restart. MR:311
- Fixed bug when reading geometry optimization constrains from xyz files in Angstroms. MR:312
- Fixed incorrect display of the parallelepiped simulation box lengths. MR:316

#### [8.1] - 2018-07-06

- Fix memory leak in Lanczos propagator. MR:241
- Update experimental status for several features. MR:243
- Fixed incorrect number of excited electrons in TD output with spin-polarization. MR:247
- Fix problem with cylinder box for periodic systems. MR:253
- Fix incorrect path to the td.general folder when using the oct-harmonic-spectrum utility. MR:278 MR:284
- Fix LDA and PBEsol stringent pseudos sets that were using the standard ones instead. MR:279
- Several minor fixes and improvements. MR:240 MR:242 MR:260 MR:266 MR:283

#### [8.0] - 2018-06-15

- Introduced the possibility of adding constrains for a geometry optimization. MR:80
- Update spglib to version 1.9.9. MR:84 MR:89 MR:207
- Option to output quantities integrated over a plane. MR:85
- Lattice vectors can now be specified using angles. MR:86
- Added two new pseudopotential sets, pseudodojo_lda and pseudodojo_pbe, taken from pseudo-dojo.org. MR:87 MR:170
- The atomic coordinates are now printed at the beginning of a calculation to
. MR:88`exec/initial_coordinates` - Support for Libxc 4. MR:90 MR:195
- Use of symmetries and reduction of Brillouin zone for non-magnetic periodic systems are now working. MR:96 MR:101
- Introduced DFT-D3 van der Waals corrections of S. Grimme et al (J. Chem. Phys. 132, 154104 (2010)). MR:99 MR:120 MR:121
- Information about failed tests is now printed at the end of the test suite run. MR:100
- The output of the total current is now done for the spin-resolved current. MR:107
- Calculation of HHG from the current with the oct-harmonic_spectrum utiltiy. MR:117
- Split the StatesPack input option into StatesPack and HamiltonianApplyPacked. MR:135
- New ExtraStatesToConverge input option. MR:143
- Updated ELPA supported version to 20170403. MR:149
- The FIRE algorithm is now used by default for Geometry Optimization runs. MR:152
- New CasidaPrintExcitations and CasidaWeightThreshold input options to control which excitations are written during a Casida calculation. MR:155
- New OutputGradientPotential input option. MR:161
- Output of Forces during real-time propagation. MR:165
- Support for PSML pseudopotential format. MR:166
- Non-equilibrium Time-dependent Polarizable Continuum Model MR:176 MR:202
- Output of electronic and current densities resolved in momentum space. MR:180
- New set option in the Species block MR:185
- RMDFT orbital optimization is now done using steepest descent by default. MR:145
- Default value for XCFunctional is taken, when available, from the pseudopotential. MR:171
- The
and`band-gp.dat`output files have been removed. MR:209`bands-e_fermi.dat` - New commutator-free Magnus propagator. See section 3.2 of https://arxiv.org/abs/1803.02113 for more details. MR:220
- DFT+U method. The U can be user defined (empirical), or determined self-consistently using the ACBN0 functional (PRX 5, 011006 (2015)). MR:221 MR:227 MR:228
- Support for AVX512 vector intrinsics. MR:225
- Many bugfixes and other improvements. MR:81 MR:91 MR:92 MR:95 MR:98 MR:104 MR:105 MR:108 MR:110 MR:112 MR:115 MR:119 MR:123 MR:125 MR:127 MR:130 MR:134 MR:137 MR:139 MR:141 MR:142 MR:144 MR:146 MR:147 MR:150 MR:153 MR:154 MR:156 MR:157 MR:158 MR:159 MR:163 MR:164 MR:168 MR:169 MR:172 MR:173 MR:175 MR:177 MR:182 MR:186 MR:187 MR:188 MR:189 MR:190 MR:191 MR:193 MR:194 MR:197 MR:198 MR:199 MR:200 MR:201 MR:203 MR:204 MR:205 MR:208 MR:210 MR:212 MR:214 MR:216 MR:218 MR:219 MR:229

#### [7.3] - 2018-03-24

- Fixed bug in
`Casida`mode: for matrices of even size, half of the rows to be computed had one entry less than the other half, and some elements were computed twice, while others remained zero. MR:178

#### [7.2] - 2018-01-15

- Fixed bug when using the
`aetrs`propagator along with the`lanczos`method for the application of the exponential. MR:132

#### [7.1] - 2017-06-09

- Fixed file missing from tarball. MR:83

#### [7.0] - 2017-06-06

- Support for CUDA.
- Improved assertions and error checking in the input file parser and added possibility to include another file into the input file.
- More flexible jellium volumes: The volumes can be constructed by summing and subtracting spheres and slabs.
- Scissors operator for TD calculations.
- Calculation of stress tensor.
- Calculation of band structures by using the unocc run mode and by defining k-point paths.
- New selection of MD integrators for the Fire algorithm.
- Many bug fixes.

#### [6.0] - 2016-09-05

- New numbering scheme. Now all releases have a major and minor number. Changes in the minor number indicate bug fix releases.
- The
`octopus_mpi`executable is gone. Now the`octopus`binary should be used in all cases. - New simpler and more flexible interface for Species block. This makes it easier to use external pseudopotentials.
- Pseudopotential sets, included sets are HGH, SG15, and HSCV.
- Support for UPF2 and ONCV pseudopotentials.
- van der Waals corrections.
- Support for libxc 3.0.0.
- Solvation effects by using the Integral Equation Formalism Polarizable Continuum Model (IEF-PCM)

#### [5.0.1] - 2016-01-11

- Several bug fixes to 5.0.0, including supporting GSL 2.0 and use of gcc version 5.0 or later for preprocessing Fortran.

#### [5.0.0] - 2015-10-07

- Casida: excited-state forces and complex wavefunctions
- More helpful treatment of preprocessor in configure script
- Improvements and bugfixes to LCAO and unocc mode
- Non-self-consistent calculations starting only from density in unocc (
*e.g.*for bandstructure) - Utilities can be run in serial without MPI, even after compiling the code with MPI.
- Hybrid meta-GGAs are enabled.
- Bugfixes for partially periodic systems.
- Linear-response vibrational modes: restart from saved modes and numerical improvements
- FIRE algorithm for geometry optimization
- OpenSCAD output for geometries and fields
- VTK legacy output for scalar fields
- More flexible and safer restart
- Parallel mesh partitioning using Parmetis
- New libISF Poisson solver

#### [4.1.2] - 2013-11-18

- Several bug fixes to 4.1.1, including a critical bug that affected the calculation of GGA and MGGA exchange and correlation potentials.

#### [4.1.1] - 2013-09-03

- Several bug fixes to 4.1.0.

#### [4.1.0] - 2013-06-12

- Several bug fixes.
- Compressed sensing for the calculation of spectra.
- Improved GPU support.
- Support for Libxc 2.0.x
- Tamm-Dancoff approximation, CV(2) theory, and triplet excitations, in Casida run mode
- PFFT 1.0.5 implementation as Poisson solver
- FMM implementation through Scafacos library
- Faster initialization
- Added Doxygen comments to the source code
- Support for BerkeleyGW output.

#### [4.0.1] - 2012-02-03

- Several bug fixes to 4.0.0

#### [4.0.0] - 2011-06-19

- Many bugfixes.
- Several improvements for calculations on periodic systems.
- Libxc is now a stand alone library.
- Improved vectorization.
- Experimental Scalapack parallelization.
- Experimental OpenCL support (for GPUs).

#### [3.2.0] - 2009-11-24

- Improved parallelization.
- Support for cross compiling.
- Initial support for Meta-GGAs.
- Fixed several bugs with UPF pseudopotentials (they are still considered under development, though).
- 4D runs for model systems.
- Inversion of Kohn-Sham equation.
- Hybrids with non-collinear spin.
- Several new functionals in libxc.
- Optimizations for Blue Gene/P systems.
- Compilation fixes for several supercomputer platforms.

#### [3.1.1] - 2009-11-04

- Fixed a dead-lock in time propagation.
- Fixed unit conversion in the output.
- Fixed a bug with parallel multigrid.
- Disabled UPF pseudopotentials.
- Hybrid OpenMP/MPI parallelization.

#### [3.1.0] - 2009-04-14

- Pseudo-potential filtering.
- Car-Parrinello molecular dynamics.
- Parallelization over spin and k-points.
- Improved parallelization over domains.
- Improved calculation of unoccupied states.
- Removed support for FFTW2.
- Small performance optimizations.

#### [3.0.1] - 2008-05-08

- Several bug fixes to 3.0.0

#### [3.0.0] - 2008-02-19

**Physics**- Hartree-Fock approximation
- Hybrid XC functionals, more GGA functionals.
- Sternheimer linear-response calculation of:
- First-order dynamic hyperpolarizabilities.
- Magnetic susceptibilities (experimental).
- Van der Waals coefficients.
- Vibrational frequencies and infrared spectra.

- Optimal control theory.
- Fast Ehrenfest molecular dynamics (http://arxiv.org/abs/0710.3321).
- Circular dichroism.

**Algorithms**- Improved geometry optimization.
- More precise calculation of forces.
- Double-grid support.
- Preconditioning for the ground state and Sternheimer linear response.
- Interpolating scaling functions Poisson solver (J. Chem. Phys. 125, 074105 (2006)).
- More pseudopotential formats supported.

**Parallelization and optimization**:- Non-blocking MPI communication.
- OpenMP parallelization that can be combined with MPI.
- Optimized inner loops, including hand-coded vector routines for x86 and x86_64 and assembler code for Itanium.
- Optimized scheme to store non-local operators that results in higher performance, better scalability and less memory consumption.
- Single-precision version (experimental).

**Other**:- New platform-independent binary format for restart files (old restart files are incompatible).
command-line utility.`oct-help`

#### [2.1.0] - 2007-06-05

- The complex executable is gone, all the work is done by the normal (a.k.a real) executable. The type of the wavefunctions is selected automatically according to the input file.
- Calculation of dynamical polarizabities using linear-response theory.
- Basic support for full-potential all-electron species.
- The texinfo documentation has been obsoleted and replaced by an online wiki-based documentation.
- Debian packages are generated using the gfortran compiler.

#### [2.0.1] - 2006/03/23

- Fixed bugs for the following cases:
- Spin-unrestricted calculations for systems with non-local pseudopotentials were giving wrong numbers. For some atoms, the error was small, but there were cases for which the errors were sizeable.
- Wrong units were used in a part of the Vosko, Wilk & Nusair correlation functional.
- Parallel calculations with orbital-dependent xc functionals crashed under some circumstances.
- Local magnetic moments were not computed properly when running parallel in domains.

#### [2.0.0] - 2006/02/17

- Curvilinear coordinates: This is one of the main novelties. A general framework is implemented, and several different curvilinear systems are implemented. At this moment only the coordinate transformation of François Gygi is working well. The efficiency gained from using curvilinear coordinates can be as large as a factor of 2 or 3 in computational time. However, note that this method is not well suited if you want to move the ions.
- Parallelization in domains: You will be able to run octopus in parallel in domains. This means that not only the real time is reduced, but also the memory is shared among the different nodes. Also some parts of the code will have a mixed parallelization. For example, the time-dependent propagation will be parallel both in domains and in states. This was basically the work of Florian Lorenzen and Heiko Appel.
- Static response properties: Now Octopus can calculate the static polarizability and the first static hyperpolarizability. These are obtained by solving a Sternheimer equation. We have also planned the computation of vibrational properties. This was done mainly by Xavier Andrade and Hyllios. Instructions here
- A larger selection of exchange-correlation functionals. This came with the development of the NANOQUANTA xc library. We have by now
*all*LDAs and some GGAs. This library is also used by the newest version of ABINIT. We expect that the number of xc functionals available will increase rapidly. - A multigrid solver for the Poisson equation. Implemented by Xavier Andrade. (Note: not working with curvlinear coordinates)
- Periodic Systems. Finally, the ground state seems to work at least for cubic systems. There is still some work remaining in order to run a time-dependent simulation. Implemented by Carlo Rozzi and Heiko Appel.
- Spinors and Spin Orbit. Yes, spin-orbit works but only with HGH pseudopotentials. The calculations are quite heavy, though ;). Brought to you by Alberto Castro and Micael Oliveira.

- Multi Subsystem Mode. Like ABINIT, now you can perform multiple runs with only one input file. Implemented by Heiko Appel.