Skip to content

Releases: h-brough/TUNA

TUNA 0.9.0

31 Dec 12:48

Choose a tag to compare

TUNA 0.9.0 — 01/01/2026

Added

  • Density functional theory energy and density including (meta-)GGA, hybrid and double-hybrid exchange-correlation functionals
  • Local density methods including SVWN3, SVWN5, SPW and HFS and XA keyword for X-alpha method
  • (Meta-)Generalised gradient methods including PBE, BLYP, BP86, mPWLYP, PWP and TPSS
  • Hybrid exchange-correlation functionals including PBE0, B3LYP, BHLYP, TPSS0, mPW3LYP and B3P86
  • Double-hybrid exchange-correlation functionals including PBE0-DH, PBE0-QIDH, B2PLYP, B2NC-PLYP, mPW2PLYP and DSD-BLYP
  • Keywords for proportion of DFT and Hartree—Fock exchange, DFX and HFX
  • Keywords for proportion of DFT and MP2 correlation, DFC and MPC
  • Turn off correlation and exchange via NOC and NOX keywords
  • Change DFT integration grid tightness with LOOSEGRID, MEDIUMGRID, TIGHTGRID and EXTREMEGRID keywords
  • Fine control over integration accuracy with INTACC keyword
  • Iterative MP2 theory for calculations on non-canonical molecular orbitals, control with MPMAXITER and MPCONV keywords
  • Numerical Laplace transform MP2 theory with controlling MPGRID keyword
  • New output module, plotting orbitals, densities and spin densities
  • Plot molecular orbitals with PLOTMO, PLOTHOMO and PLOTLUMO keywords
  • Plot natural orbitals with PLOTNO keyword
  • Plot density, spin density and difference densities with DENSPLOT, SPINDENSPLOT, DIFFDENSPLOT, DIFFSPINDENSPLOT keywords
  • Hartree method with no Fock exchange, H
  • Force calculation type, FORCE

Changed

  • Increased two-electron integral speed by 2—10x through leveraging diatomic symmetry and code optimisations
  • Keyword OMP2MAXITER is now MPMAXITER
  • Keyword OMP2CONV is now MPCONV
  • Major changes to SCF module, more robust convergence and stability
  • Removed level shift
  • Updated manual with acknowledgements and further detail

Fixed

  • First SCF guess cycle energy now prints properly
  • The MAXITER keyword was off by one
  • Freezing core electrons was broken for unrestricted MP2
  • Rotating guess orbitals was on by default for triplets
  • Calling an atom "X" broke everything

TUNA 0.8.1

10 Oct 23:46

Choose a tag to compare

TUNA 0.8.1 — 11/10/2025

Added

  • Spin-adapted closed shell LCCD, LCCSD, CCD, CCSD and CCSD(T), speeding up correlated calculations on RHF references
  • Spin-unrestricted and spin-adapted QCISD and QCISD(T)
  • The additional print keyword, P, now gives a more detailed breakdown of time taken throughout a calculation
  • Choose the number of the largest amplitudes to print with the PRINTAMPS keyword
  • Significant speed improvements using new methods to find largest amplitudes in coupled cluster calculations
  • Dynamic damping factor will now now exceed 70% by default, changeable with MAXDAMP keyword

Changed

  • Dynamic damping now only starts after the second SCF step, to prevent issues with rotated guesses and overdamping
  • For frequency calculations, the default SCF convergence is now EXTREME to prevent numerical issues
  • Optimised and refactored coupled cluster module
  • Improved formatting in output for consistency
  • An error is now given before the SCF calculation if a correlated calculation is not possible

Fixed

  • The disconnected doubles contribution to the coupled cluster energy was sometimes calculated incorrectly
  • During geometry optimisation, the current bond length was not printing correctly
  • Suppressed warnings for Matplotlib not being able to find a particular font
  • Matplotlib graphs where ADDPLOT is used successively no longer get exponentially bigger on MacOS
  • The TUNA manual is now distributed using PyPI
  • Improved PyPI page formatting

TUNA 0.8.0

28 Sep 20:51

Choose a tag to compare

TUNA 0.8.0 — 28/09/2025

Added

  • Restricted MP4, MP4(SDQ) and MP4(DQ) energy
  • Spatial orbital (SCS-)MP2 energy and density and (SCS-)MP3 energy, speeds up calculations on RHF references
  • Core electrons can now be frozen for correlated calculations using the FREEZECORE keyword, with optional number of orbitals to freeze
  • Amplitude convergence for coupled cluster calculations via AMPCONV keyword
  • Improved (non-arbitrary) dynamic damping scheme, now uses Zerner-Hehenberger scheme based on Mulliken gross populations
  • New DAMP keyword, followed by a number between 0 and 1 to define a static damping parameter
  • Custom basis sets using CUSTOM basis with BASIS [filename.tuna] keyword
  • Extrapolation to complete basis set limit compatible with all calculations via EXTRAPOLATE keyword
  • New basis sets: STO-2G, STO-4G, STO-5G, 6-31+G*, 6-31++G*, 6-31+G**, 6-31++G**, 6-311+G*, 6-311++G*, 6-311+G**, 6-311++G**
  • New basis sets: def2-SVP, def2-SVPD, def2-TZVP, def2-TZVPD, def2-TZVPP, def2-TZVPPD, def2-QZVP, def2-QZVPD, def2-QZVPP, def2-QZVPPD
  • New basis sets: 6-31G(d,p), 6-31G(2df,p), 6-31G(3df,3pd), 6-311G(d,p), 6-311G(2df,2pd), 6-311+G(2d,p), 6-311++G(2d,2p), 6-311++G(3df,3pd)
  • New basis sets: pc-0, pc-1, pc-2, pc-3, pc-4, aug-pc-0, aug-pc-1, aug-pc-2, aug-pc-3, aug-pc-4
  • New basis sets: pcseg-0, pcseg-1, pcseg-2, pcseg-3, pcseg-4, aug-pcseg-0, aug-pcseg-1, aug-pcseg-2, aug-pcseg-3, aug-pcseg-4
  • New basis sets: aug-cc-pVDZ, aug-cc-pVTZ, aug-cc-pVQZ, aug-cc-pV5Z, aug-cc-pV6Z, d-aug-cc-pVDZ, d-aug-cc-pVTZ, d-aug-cc-pVQZ, d-aug-cc-pV5Z, d-aug-cc-pV6Z
  • New basis sets: cc-pCVDZ, cc-pCVTZ, cc-pCVQZ, cc-pCV5Z, aug-cc-pCVDZ, aug-cc-pCVTZ, aug-cc-pCVQZ, aug-cc-pCV5Z
  • New basis sets: cc-pwCVDZ, cc-pwCVTZ, cc-pwCVQZ, cc-pwCV5Z, aug-cc-pwCVDZ, aug-cc-pwCVTZ, aug-cc-pwCVQZ, aug-cc-pwCV5Z
  • New basis sets: ano-pVDZ, ano-pVTZ, ano-pVQZ, ano-pV5Z, aug-ano-pVDZ, aug-ano-pVTZ, aug-ano-pVQZ, aug-ano-pV5Z
  • New basis sets: 6-31G(d), 6-31G(d,p), 6-31+G(d), 6-31+G(d,p), 6-31++G(d), 6-31++G(d,p), 6-311G(d), 6-311G(d,p), 6-311+G(d), 6-311+G(d,p), 6-311++G(d), 6-311++G(d,p)

Changed

  • Dunning basis sets have been rotated and had redundant functions removed, increasing computational efficiency
  • Decimals points now align nicely for all calculations with all elements
  • Removed repeated logging of transforming integrals in MP2
  • Nicer logging at the start of a geometry optimisation
  • Basis information is now printed with the additional print keyword, P
  • Design of logging is now more consistent
  • Increased default orbital-optimised MP2 iterations to 30 (originally 20)
  • Improved PyPI publishing page, README and manual
  • For rotated guesses, the degrees by which the HOMO and LUMO are rotated is now printed
  • Only the first 10 virtual orbitals are now printed when P is used

Fixed

  • Distributions for MacOS and Linux now work correctly
  • Python 3.13 and Python 3.14 are now supported in addition to Python 3.12
  • Frequency calculations on a fixed geometry were not working at all
  • Ghost atoms were not working correctly under some circumstances
  • Convergence acceleration logging was sometimes contradictory

TUNA 0.7.0

27 Aug 19:47

Choose a tag to compare

TUNA 0.7.0 — 27/08/2025

Added

  • Energy and linearised density from CEPA0, LCCD, LCCSD, CCD, CCSD, CCSD(T) and CCSDT
  • Convergence control for coupled cluster calculations with damping via CCDAMP keyword (default off)
  • Convergence control for coupled cluster calculations and DIIS via DIIS keyword (default on)
  • Support for atoms beyond the first period — atoms up to argon are now implemented
  • Cython-based Gaussian integral engine via the McMurchie-Davidson algorithm allows higher angular momentum orbitals
  • New basis sets: 6-31G*, 6-31G**, 6-311G*, 6-311G**, cc-pVDZ, cc-pVTZ, cc-pVQZ, cc-pV5Z, cc-pV6Z
  • Largest coupled cluster amplitudes are found and printed with the T1 diagnostic
  • Keyword CCCONV for coupled cluster convergence control, CCMAXITER for maximum iterations
  • Keyword NOSINGLES to turn off single excitations in coupled cluster
  • Population analysis, dipole moment, natural orbitals using coupled cluster linearised density matrices
  • Keyword for changing the number of DIIS matrices to store (for SCF and coupled cluster), DIIS [Num. Matrices]
  • Keywords to turn on and off natural orbital calculations, NATORBS and NONATORBS
  • Optional natural orbital calculation for UHF
  • Keywords for custom atomic masses in AMU, M1 and M2
  • The overlap matrix eigenvalues are now checked, use the STHRESH keyword to change the threshold
  • Warning message for small overlap matrix eigenvalues that are close to the threshold
  • Redesigned plotting functions in TUNA, various methods can be plotted on the same axes with the ADDPLOT keyword
  • Keywords SAVEPLOT and DELPLOT to save and delete plots
  • Dashed lines on plot via DASH and dotted lines via DOT
  • Option to change colour in SCANPLOT with RED, BLUE, GREEN, CYAN, MAGENTA, YELLOW, BLACK, WHITE keywords

Changed

  • By default, DIIS now remembers 6 matrices instead of 10
  • The number of MD steps, MDNUMBER or NUM, now defaults to 50 rather than 30
  • Orbital-optimised MP2 can now be accessed via (U)OOMP2 in addition to (U)OMP2
  • TUNA now prints the number of minutes, in addition to the number of seconds, for long calculations
  • Removed DENSPLOT and SPINDENSPLOT keywords, and the ability to generate a three-dimensional electron density plot
  • Default atomic masses slightly altered
  • Calculations with zero electrons now exit with error
  • Molecule and basis information now includes number of occupied and virtual orbitals
  • Condensed additional printing of molecular orbitals and eigenvalues for UHF
  • TUNA now exits gracefully if interrupted by the user with Ctrl+C
  • New tuna_molecule and tuna_cc modules; removed tuna_plot module; renamed tuna_mpn into tuna_mp
  • Information is now printed during the spin-orbital transformation for post-Hartree-Fock
  • Keywords SCANNUMBER and MDNUMBER replaced by simpler keyword NUM
  • Keywords SCANSTEP and TIMESTEP replaced by simpler keyword STEP
  • Major code improvements and restructuring

Fixed

  • Fixed error handling of requesting RHF calculation on a molecule with an odd number of electrons
  • You can no longer put more electrons in a molecule than the number of spin-orbitals
  • Incorrect unit conversions in SCANSTEP
  • Incorrect unit conversions in SCANPLOT
  • The GEOMMAXITER keyword was not working correctly
  • The SCF convergence keyword was being overridden if an optimisation is requested
  • The geometry convergence keyword was being overridden if an subsequent frequency calculation is requested

TUNA 0.6.1

09 Aug 21:37

Choose a tag to compare

TUNA 0.6.1 — 26/01/2025

Added

  • Keyword for splotting the spin density, SPINDENSPLOT
  • Virial ratio is calculated and printed, which indicates the proximity to an optimised geometry
  • Degenerate excited states are now grouped and averaged before printing
  • The singlet or triplet character of excited states is now printed for RHF references

Changed

  • The default SCF convergence criteria for CIS calculations is now TIGHT
  • Threshold for CIS contributions decreased from 5% to 1%
  • Removed printing weights for RHF references, as these are calculated in a spin-orbital basis

Fixed

  • Requested orbital rotation with a tiny basis no longer causes a crash
  • Electron affinity calculation was crashing when no virtual orbitals were present
  • Excited state calculations were crashing when no virtual orbitals were present
  • Spin density matrix for one-electron systems was calculated incorrectly
  • Error handling for non-existent root in CIS calculations