# Changes

This page contains the changes in the releases of Octopus.

## Contents

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

#### [10.0] - To be released

- New features and functionality:
- Add the possibility to output the dipole matrix elements. MR:346
- Add the missing term in the total energy coming from static electric field. MR:447
- Add the possibility of computing the two-body integrals with k-points. MR:460
- Add option to use conjugate gradients for the orbital optimization in the rdmft routine. MR:462
- Add the dressed RDMFT construction, which allows for treating electronic systems that interact with a cavity photon mode. MR:472
- Add a utility to interface Octopus with Wannier90. MR:497
- Add the variable
**TDFreezeOrbitals**with MGGA functionals and restarting. MR:519 - Add a new utility to perform band-structure unfolding. MR:525
- Add a k-point parallelization support for
**TDOutput=td_proj**and forbidding**TDOutput=populations**for solids, as it is not supported. MR:526 - Enable GPU acceleration for solids. MR:529
- Add support for
**TDOutput = td_occup**to run in parallel. MR:537 - Add a variable
**PropagationSpectrumMinEnergy**to control the minimum energy in Fourier transforms. MR:545 - Add a timer for restart. MR:556, MR:573
- Add support for Maxwell systems. MR:618, MR:623, MR:684, MR:710
- Add support for multisystems. MR:613, MR:643, MR:664, MR:777, MR:789, MR:791, MR:794, MR:796, MR:876, MR:881, MR:818, MR:801, MR:810, MR:812, MR:907
- OEP: fix spin polarized mode and add new mixing scheme. MR:558
- The code now writes the bandgap for solids in the static/info file. MR:587
- Implementation of the magnon kick for periodic systems. MR:606 MR:905
- Extension of the DFT+U to include the intersite V. MR:617
- Enable domain parallelization for intersite interaction (DFT+U+V). MR:658
- Add support for NVTX to aid GPU profiling. MR:660
- Implementation of the one-photon OEP functional of QEDFT described in Phys. Rev. Lett. 115, 093001 (2015) and ACS Photonics 5, 3, 992-1005 (2018). MR:662
- Add support for preconditioning when using the CG minimizer of RDMFT. MR:672
- Add support for CUDA-aware MPI. MR:675
- Allow for restarting a DFT+U+V calculation. MR:683
- Add the possibility to compute a bandstructure from the time-evolved states. MR:690
- Add the possibility to profile the number of call to file open and close. MR:708
- Add yaml output for the internal profiling of timings. MR:717
- Add a mask for which periodic boundaries are replaced by zero boundary conditions. MR:726
- Add output of forces in exponential format in static/info. MR:729
- Add the possibility to use the ISF Poisson solver to compute the Coulomb integrals for the DFT+U. MR:752
- Add support for complex-to-complex FFT in the Poisson solver. MR:749
- Implementation of the Coulomb singularity for the Coulomb integrals in solids. MR:757
- Add support for running Hartree-Fock and hybrid calculations for solids. MR:773
- Add performance regression testsuite. MR:781
- Add support for the CAM omega parameter for the FFT Poisson solver. MR:786
- Add support for gpg signatures in git commits. MR:788
- Add support for spin-resolved photon-KLI. MR:805
- Add support for upcoming Libxc 5, remove support for Libxc 2 and mark 3 as deprecated. MR:808, MR:809, MR:811
- Add support for unary plus in input files. MR:847
- A new, faster, implementation of the Slater approximation to the OEP equations, for both collinear and non-collinear spins. MR:900
- Adding profilers to the different force contributions. MR:914

- Various changes:
- Removed the warning from QMR about convergence. MR:552
- 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
- Stop code if factor for filter preconditioner out of range. MR:571
- Forbid unsypported combination of DFT+U with
**TDFreezeOrbitals**. MR:576 - When a segment with zero point is specified in the k-point path, the length between the two points is not taken into account. MR:586
- Change kpoints error message to warning in some cases. MR:721
- Remove the single precision related parts of the code. MR:731
- Small change in the behavior of the variable SymmetriesCompute for periodic systems. MR:748
- The code now stores and prints the cell angles in periodic systems. MR:753
- This branch enhances clock printing and setting. MR:792
- The range of the soft Coulomb potential is now set by according to
**theSpeciesProjectorSphereThreshold**variable. MR:797 - Improve the documentation of the
**DOSComputePDOS**variable. MR:823 - Change stopping criteria for the SCF cycle: tighter convergence thresholds; have to be fulfilled twice in a row. MR:834
- Marking geometry optimization for solids as experimental. MR:836
- Removing single precision code that is not used anymore. MR:839
- Always write the full td.general/laser file to take into account possible changes in the total propagation time. MR:844
- Simplified logic in the gauge-field code. MR:867
- Fix the behavior of lalg_determinant and lalg_inverter to be more meaningful. MR:884
- Improving the documentation of the variable
**AOThresold**. MR:911 - Merge the input options related to the photon modes for RDMFT and OEP. MR:925

- Refactoring:
- Create abstract classes. MR:605, MR:640, MR:611, MR:642, MR:645
- Move existing structures to classes. MR:581, MR:585, MR:595, MR:588, MR:603, MR:607, MR:609, MR:624, MR:644, MR:716, MR:734, MR:894
- Other code-refactoring. MR:577, MR:636, MR:638, MR:648, MR:649, MR:651, MR:668, MR:676, MR:698, MR:736, MR:744, MR:763, MR:764, MR:768, MR:769, MR:782, MR:816, MR:842, MR:893, MR:906, MR:919

- Bugfixes:
- Bugfix for the Laplacian in the case of non-orthogonal cells. MR:484, MR:521
- Fix a bug preventing to run DFT+U if a species was not a pseudopotential. MR:541
- Bugfix: the value of overlap was ignored by submesh_broadcast. MR:543, MR:544
- Fix a bug that was leading to zeros in the diff for states using rmmdiis. MR:569
- Fix various problems related to the header of td_occup output for isolated systems in states parallelization. MR:629
- Bugfix: The states parallelization for the projections was not working in case of multiple parallelization scheme. MR:661
- Fix some internal inconsistencies between scf and unocc calculations. MR:679
- Bugfix: When restarting a DFT+U calculation, the code now recomputes the DFT+U energy at the same time as the potential. MR:681
- Bugfix: for the Flux module (aka tsurff). MR:682, MR:691
- Bugfix: Fix 1D Coulomb with screening. MR:685
- Fix incorrect syntax in documentation of oct-unfold that lead to an incorrect section for several variables. MR:699
- Bugfix: Add check for periodic boundary conditions. MR:706
- Improved support of hybrid functionals. Add support for CAM and MVORB functionals. MR:707
- Fix a problem with the input variable
**FFTPreparePlan**, which was not working. MR:779 - Bugfix: Fix a problem with angles for low dimensions. MR:785
- Forbid running a combination of options which are not compatible. MR:822
- Bugfix: In case the code does not find the molecule spacegroup, we do not try to get the name of the spacegroup. MR:824
- Disable Casida for some combinations. MR:828
- Remove potential deadlock in PNFFT (Closes #187 (closed)) MR:829
- Update atomic masses in share/pseudopotentials/elements. MR:831
- Adding a test to prevent computing the bandgap when there are no extra states. MR:843
- Bugfix: Resolve "EigenSolver = plan is broken and gives a segmentation fault" MR:845
- Bugfix: This MR fixes a bug in the states_elec_generate_random function. {{MR|848}
- Improve the Lapack interface and fix several problems and potential bugs. MR:850, MR:856
- Fixes to the RMDIIS eigensolver. MR:851
- Fixes a bug in
, which prevented consistent random wave functions between serial and parallel runs. MR:857`states_elec_generate_random` - Bugfix: the lcao was not correct for periodic system with Gamma only calculations. MR:865
- Bugfix: Fixed bug in the calculation of spin-polarized hhg spectrum from multipoles. MR:869
- Improve error message for missing pseudopotential MR:872
- Bugfix: In some case the code was not using properly r_small, which is a protected value, and should not be zero. MR:874
- Bugfix: If requested, the density is symmetrized now also for the LCAO part. MR:875
- Bugfix: The evolution eigensolver is not compatible with smearing of the occupations. MR:908
- Bugfix: Change the default to
**lcao_states**, as**lcao_full**is not working properly. MR:909 - Bugfixes for the calculation of the paramagnetic current and KED for spinors and k-points. MR:920
- Bugfix: The OEP routines should not be called if the slater potential is requested. Otherwise, both are computed. MR:928
- Bugfix: Fix the output of potentials for the spinor case. MR:929
- Bugfix for LCAO states and Fermi energy calculation in case of degenerated states at the Fermi energy. MR:937
- Bugfix: fixes the off-diagonal terms of some noncollinear quantities. MR:954
- Bugfix: Fix a problem preventing running MGGA with energy functionals. MR:957
- Bugfix: Fixes the
routine for spinors. MR:958`lcao_init` - Bugfixes related to memory leaks. MR:814, MR:888
- Bugfixes related to GPU code. MR:542, MR:548, MR:659, MR:701 MR:738
- Bugfixes: uninitialized variables. MR:596, MR:692, MR:712, MR:813
- Bugfixes related to compiler warnings. MR:751, MR:852
- Other bugfixes: MR:513, MR:514, MR:546, MR:547, MR:562, MR:616, MR:639, MR:647, MR:654, MR:697, MR:702, MR:713, MR:718, MR:723, MR:725, MR:730, MR:762, MR:770, MR:798, MR:815, MR:819, MR:825, MR:826, MR:827, MR:832, MR:833, MR:837, MR:853, MR:855, MR:862, MR:864, MR:870, MR:885, MR:890, MR:892, MR:903, MR:904, MR:910

- Performance and Optimizations:
- Various simplifications and optimization regarding the use of batches. MR:492, MR:494, MR:498, MR:510, MR:511, MR:538, MR:554, MR:765, MR:766, MR:767
- Remove unnecessary operations. MR:522, MR:561, MR:563, MR:564, MR:575, MR:599, MR:619, MR:680, MR:871, MR:901
- Convert to 'batch' framework. MR:587, MR:650, MR:652, MR:653, MR:663, MR:667, MR:688, MR:700, MR:743, MR:758, MR:759, MR:887
- Optimizations for the GPU code. MR:527, MR:542, MR:549, MR:804, MR:860, MR:669, MR:671, MR:674, MR:704, MR:732, MR:771, MR:806
- Improved parallelism. MR:633, MR:657, MR:673, MR:686, MR:709, MR:733, MR:882
- Other improvements and optimizations: MR:528, MR:559, MR:578, MR:579, MR:593, MR:602, MR:604, MR:634, MR:677, MR:695, MR:741, MR:747, MR:830, MR:868, MR:889, MR:898

- Code cleanup and improving coding standards. MR:509, MR:539, MR:540, MR:553, MR:560, MR:572, MR:756, MR:772, MR:776, MR:750, MR:820, MR:821, MR:835, MR:838, MR:859, MR:879, MR:886, MR:902, MR:912, MR:916, MR:918

- Testsuite changes: MR:531, MR:535, MR:550, MR:565, MR:570, MR:589, MR:592, MR:666, MR:670, MR:696, MR:711, MR:719, MR:724, MR:727, MR:737, MR:774, MR:846, MR:866, MR:947

#### [9.2] - 2020-02-07

- Fixed: Set lsize also for the default cubic lattice when
**LatticeVectors**block is not defined. MR:466 - Fixed MPI error with k-point parallelization. MR:615
- Bufix relating to restart and
**TDFreezeU**. MR:625 - Fixed unwanted space for pdos name. MR:626
- Fixed the name of bader output for spin unpolarized systems. MR:627
- Fixed: The variable
**OutputDuringSCF**was not used for unocc calculations, unlike what the documentation was saying. MR:628 - Fixed: The Ewald long-range for 2D was leading to NaN for energy or forces for thick slabs. MR:632
- Fixed: Problem in parsing some non-standard(?) UPF2 and QSO files. MR:635
- Workaround for a problem with ifort 2018.1 and OpenMP. MR:637
- Fixed Magnus propagator. MR:655
- Fixed: some norms were badly handled in the implicit RK propagators. MR:665
- Bugfix for calculations with real orbitals. MR:694
- Bugfix to the Ewald2D for large slabs. MR:714
- Remove experimental states to SG15 pseudo set. MR:715
- Bugfix: in case of periodic systems, the user-defined and soft-Coulomb potential where not taking into account periodic copies. MR:754
- Bugfix: the dielectric function utility was not working for dimensions lower than 3. MR:755
- Fix a wrong IO format. MR:760
- Fix the kernel for 1D periodic FFTs. MR:761
- Some test suite updates MR:610

#### [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.