Releases: h-brough/TUNA
Releases · h-brough/TUNA
TUNA 0.9.0
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
XAkeyword 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,
DFXandHFX - Keywords for proportion of DFT and MP2 correlation,
DFCandMPC - Turn off correlation and exchange via
NOCandNOXkeywords - Change DFT integration grid tightness with
LOOSEGRID,MEDIUMGRID,TIGHTGRIDandEXTREMEGRIDkeywords - Fine control over integration accuracy with
INTACCkeyword - Iterative MP2 theory for calculations on non-canonical molecular orbitals, control with
MPMAXITERandMPCONVkeywords - Numerical Laplace transform MP2 theory with controlling
MPGRIDkeyword - New output module, plotting orbitals, densities and spin densities
- Plot molecular orbitals with
PLOTMO,PLOTHOMOandPLOTLUMOkeywords - Plot natural orbitals with
PLOTNOkeyword - Plot density, spin density and difference densities with
DENSPLOT,SPINDENSPLOT,DIFFDENSPLOT,DIFFSPINDENSPLOTkeywords - 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
OMP2MAXITERis nowMPMAXITER - Keyword
OMP2CONVis nowMPCONV - 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
MAXITERkeyword 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
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
PRINTAMPSkeyword - 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
MAXDAMPkeyword
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
EXTREMEto 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
ADDPLOTis 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
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
FREEZECOREkeyword, with optional number of orbitals to freeze - Amplitude convergence for coupled cluster calculations via
AMPCONVkeyword - Improved (non-arbitrary) dynamic damping scheme, now uses Zerner-Hehenberger scheme based on Mulliken gross populations
- New
DAMPkeyword, followed by a number between 0 and 1 to define a static damping parameter - Custom basis sets using
CUSTOMbasis withBASIS [filename.tuna]keyword - Extrapolation to complete basis set limit compatible with all calculations via
EXTRAPOLATEkeyword - 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
Pis 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
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
CCDAMPkeyword (default off) - Convergence control for coupled cluster calculations and DIIS via
DIISkeyword (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
CCCONVfor coupled cluster convergence control,CCMAXITERfor maximum iterations - Keyword
NOSINGLESto 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,
NATORBSandNONATORBS - Optional natural orbital calculation for UHF
- Keywords for custom atomic masses in AMU,
M1andM2 - The overlap matrix eigenvalues are now checked, use the
STHRESHkeyword 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
ADDPLOTkeyword - Keywords
SAVEPLOTandDELPLOTto save and delete plots - Dashed lines on plot via
DASHand dotted lines viaDOT - Option to change colour in
SCANPLOTwithRED,BLUE,GREEN,CYAN,MAGENTA,YELLOW,BLACK,WHITEkeywords
Changed
- By default, DIIS now remembers 6 matrices instead of 10
- The number of MD steps,
MDNUMBERorNUM, now defaults to 50 rather than 30 - Orbital-optimised MP2 can now be accessed via
(U)OOMP2in addition to(U)OMP2 - TUNA now prints the number of minutes, in addition to the number of seconds, for long calculations
- Removed
DENSPLOTandSPINDENSPLOTkeywords, 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
SCANNUMBERandMDNUMBERreplaced by simpler keywordNUM - Keywords
SCANSTEPandTIMESTEPreplaced by simpler keywordSTEP - 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
GEOMMAXITERkeyword 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
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