Release notes
Version v0.15.0 - 2026.02.05
Breaking
- The fallback basis sets are not used by default anymore. Set
@set int use_fallback_basis=trueto enable them. - In
@write_ints, thetolargument is a keyword argument now (default is-1.0). wf.orbandwf.leftoptions are deprecated. The orbitals are now always written to and read from the trexio dump filewf.dump. Use@loadwfto load the orbitals from the dump file.- The
@transform_intsmacro now automatically uses biorthogonal transformations for BO orbitals. - The
@mtensor,@mviewmacros are moved fromTensorToolsto a newMTensorOperationsmodule (still reexported byTensorTools). - The function
get_spaceblockshas been moved fromTensorToolstoUtilsmodule.
Changed
- The fallback basis sets are now defined for
ao(def2-tzvppd),jkfit(aug-def2-universal-jkfit), andmpfit(def2-tzvppd-mpfit) basis sets. - Functions for
HandHeare copied from [aug]-cc-pVXZ basis sets to [aug]-p[w]CVXZ basis sets. Functions for Li and Be are copied from [aug]-cc-pCVXZ basis sets to [aug]-pwCVXZ basis sets. CCDrivermodule is renamed toDrivers.- Function
transform_fcidumphas been renamed totransform_fcidump!. - (T) methods automatically use pseudo-canonical transformation if the Fock matrix is not diagonal in the occupied and virtual subspaces.
Added
- FCI and CIPHI (selected CI) methods.
- Local options for macros: All calculation macros (
@cc,@dfcc,@dfhf,@dfuhf,@dfmcscf,@dfmp2,@fci,@ciphi,@bohf,@bouhf) now accept an optionalbegin...endblock to set options locally for that specific call. Options are automatically restored after the call completes. This is the recommended way to set options for individual calculations. - Automatic augmentation of basis sets by additional diffuse or steep functions.
- Functions to get all elements available in a given basis set (
get_available_elements4basis) and to output the basis set for a given list of elements in the molpro format (output_basis). - Augmented basis sets for jkfit vXz-jkfit and def2-universal-jkfit basis sets.
- A keyword argument
formatin@write_intsmacro to write integrals to npy files (ifformat=:npy) or to ascii file (ifformat=:ascii). - DF-HF and DF-UF orbitals are stored in trexio dump file.
- A check for changes of the molecular geometry/basis/fcidump is performed in every macro-command call. If a change is detected, the integrals are set to be recalculated or reloaded from the fcidump file. With this, the user doesn't need to worry about calling
@ECinitafter changing the geometry/basis/fcidump. - A test for dummy atoms is added. At the moment, if dummy atoms are detected, the integrals are recalculated. In the future, once we have AO-FDump support, the integrals can be reused.
- Macros
@loadwfand@savewfto load and save orbitals (etc) from/to trexio dump files.@copywfto copy trexio dump files (e.g., to make a local backup). - Wavefunction store/start functionality for coupled cluster and selected CI methods. Use
@set wf store="filename.h5"to store the wavefunction (amplitudes for CC, determinants/coefficients for CIPHI) to a TREXIO file. Use@set wf start="filename.h5"to restart a calculation from a previously stored wavefunction. Multi-state CIPHI calculations store each state in separate files (e.g.,filename_state2.h5). pt2_onlyoption for CIPHI calculations (@set ciphi pt2_only=true) to skip variational iterations and compute only the PT2 correction using stored determinants.
Fixed
- A simple sanity check of the fitting basis sets is performed (by checking whether it's an AO basis set). The error message can be turned to a warning by setting
@set int check_fit_basis=false. - Fix normalization of biorthogonal orbitals to a balanced normalization (i.e., the norms of left and right orbitals are equal).
- Integral transformation now should use much less memory and be faster.
- Fix incompatibility with julia 1.13 (replace call of an internal Base function with a simple custom implementation).
- Fix UCCSD and UDCSD for the case of no beta electrons (#272).
Version v0.14.1 - 2025.07.03
Changed
- update libcint to version 6.
- reduce allocations in the integral calculation routines.
Added
- a simple XML based interface to Molpro.
Fixed
- Fix Mac and Windows compatibility issues related to the case insensitivity of the file system. The capital letters in the file names on scratch are now converted to lower case plus a character
ß(e.g.,oVoObecomesovßoß).
Version v0.14.0 - 2025.04.16
Breaking
- the definition of
ampsvdtolthreshold for SVD methods has been changed. Now it corresponds to the threshold for the density matrix (i.e., square of the previous definition). verbosityhas been moved fromECInfotoOptions.print.time.- increase versions of dependencies: julia>1.9
- The core-entry is now required for (non-npy) FCIDUMP files in order to check whether the file is complete.
- DMRG and AtomsBase interface have been moved to extensions. In order to run DMRG, the
ITensorspackage has to be installed and loaded; and in order to useAtomsBaseinterface, theAtomsBase,UnitfulandUnitfulAtomicpackages have to be installed and loaded.
Changed
- faster closed-shell and unrestricted CCSDT and DC-CCSDT implementations.
- ANO-RCC-MB basis is now used as the minimal AO basis for the SAD orbital starting guess.
- memory buffers are now handled by functions and types in
Buffersmodule. - the precompilation is disabled for development versions.
- Buffers is moved to a separate package Buffers.jl.
- reduce memory demand in df-hf.
- remove
IterativeSolversdependency. jkfitbasis now falls back todef2-universal-jkfitif not found (e.g. for avXz basis sets).
Added
- a macro
@dummyhas been added to set some atoms to dummy atoms. - a
neuralizefunction to trickBase.mightaliasinTensorOperationsfor reshaped-buffer arrays. BufferandThreadsBuffertypes andalloc!,drop!,reset!,reshape_buf!functions.BasisBatcherstructure to calculate 3-index integrals in batches.@dfmp2to calculate df-mp2 energy without storing integrals.@freeze_orbsalso accepts now a string of indices using the +/- or :/; syntax (#186)
Fixed
- Improve parsing method names in macros. Now the parser is not confused by multiple dashes in the name and, e.g.,
@cc svd-dc-ccsdtis evaluated correctly. - SAD orbital guess for Li and Be has been fixed.
- molden export functionality has been fixed.
- thread-safe handling of buffers using ThreadsBuffer.
- if some of the npy files are not found, the integrals are read from the fcidump file (#250)
Version v0.13.1 - 2024.07.11
Added
- Store MP2 amplitudes in
cc_amplitudes_files in@cc mp2calculations.
Fixed
- Fix
maxit=0case forcccalculations.
Version v0.13.0 - 2024.07.09
Breaking
DIIS.performhas been changed toDIIS.perform!in order to allow to read the vectors and residuals asVector{}.- The signature of
newmmapfunction has changed (the type specification is now the last argument and defaults toFloat64. - The
FciDumpmodule has been renamed toFciDumps. - The
FDumptype has been changed toFDump{N}with N=3 (for triangular storage of 2-electron integrals) or 4. The logical variabletrianghas been removed (there is a functionis_triang(::FDump)now). AliasesTFDump = FDump{3}andQFDump = FDump{4}have been introduced. - The
ECInfotype now accepts onlyFDump{3}. TheFDump{4}objects have to be transformed first (the transformation functions are not implemented yet). - The triangular functions have been moved to a separate file
utensors.jl, part of theQMTensorsmodule.uppertriangularfunction has been renamed touppertriangular_index. - The driver functions and macros now return energies in an ordered descriptive dictionary
OutDict=ODDict{String,Float64}. Uselast_energyfunction to access the last energy (orlastto access the whole entry including the key and the description).
Changed
- Save the memory using in Hessian matrix calculation in dfmcscf function.
dfdumpstores the MO integrals internally in mmaped files.- The header of the
FDumpis now stored in a type-stable structureFDumpHeader.
Added
- Export of molden files (
@export_molden). At the moment the orbital energies and occupations are not exported. - Add dfmcscf part in documentation
- CCSDT and DC-CCSDT closed-shell implementations generated with Quantwo.
QMTensors.SpinMatrixstruct for one-electron matrices (e.g., MO coefficients)- An ordered descriptive dictionary for energy outputs (
ODDict) has been implemented. Each key-value entry can have a description. DIIS.perform!now accepts a tuple of functions to calculate cusomized dot-products (e.g., involving contravariants etc).
Version v0.12.0 - 2024.05.28
Breaking
- the
mp2fit(rifit) basis sets have been renamed tompfit. ERI_?e?croutines have been renamed toeri_?e?idx.
Changed
- use SVD in DIIS.
- increase number of iterations in 2D-CCSD IAS test.
- interface to
libcint_jllhas been implemented. The basis set library is added (in Molpro format), and basis sets are parsed to aBasisSetobject.GaussianBasis.jldependency is removed.
Added
- Expand README
amdmkl()function to speed up MKL on AMD machines.- CROP-DIIS option (JCTC 11, 1518 (2015)) which is less sensitive to the DIIS dimension. To activate, set
diisoptioncrop=true, the DIIS dimension can be changed usingmaxcrop(default is 3). - An option
print_initis added to the@print_inputmacro (default isfalse). If set totrue, theElemCo.jlinfo is printed again (useful if the output is redirected in julia to a file). - A simple DMRG routine is added based on
ITensors(adapted fromITensorChemistry.jl). - A Molpro interface to import matrop matrices (orbitals or overlap).
Fixed
- Get rid of error message from git if .git is not available (e.g., in the case of the released version).
- Sort orblist, which fixes issues if user occupations are not provided in a sorted list.
- Fix amplitudes before Hylleraas energy calculation for FR-CC, which will properly report the energy in a (2,2) (single iteration) calculation.
Version v0.11.1 - 2024.04.12
Changed
- Remove
ArgParsedependency and set[compat]section inProject.toml.
Version v0.11.0 - 2024.04.12
Breaking
EC.ms(previously of typeMSys) inECInfois renamed toEC.system(of typeAbstractSystem).ECdriverroutine is moved toCCDrivermodule and renamed toccdriver. Thefcidumpkeyword-argument is now empty by default. It doesn't accept list of methods anymore, only one method at a time.- The driver routines and macros return energies as
NamedTuple. - The SVD methods have to be called now as
SVD-<methodname>, e.g.,svd-dcsd. - The
@svdccmacro is renamed to@dfccmacro and calls thedfccdriverroutine, which is intended as a driver routine for all DF-based correlation methods (i.e., methods which don't use theEC.fdintegrals).
Changed
- Renamed function
active_orbitalstooss_active_orbitals. - Renamed function
calc_ccsd_residtocalc_cc_resid. ECdriverandoss_active_orbitalsnow return named tuples.- Improved documentation of occupation strings syntax.
- Switched to
AtomandFlexibleSystemfromAtomsBaseas the internal representation of the molecular system. The basis set is stored for each atom as:basisproperty (asDict{String,String}, e.g.,system[1][:basis]["ao"]). One can also set:basisproperty for the whole system. - Renamed macro
@optto@set.@optis now an alias of@set.
Added
- The automatically generated
UCCSDTandUDC-CCSDTmethods have been added to the docs. - SCS-MP2, SCS-CCSD and SCS-DCSD
Version v0.10.0 - 2024.02.21
Breaking
- Cholesky threshold
thris used for integral decomposition only. Threshold for elimination of redundancies is now calledthred. - Files for amplitudes and multipliers are now called
..._1,..._2,... for singles, doubles, etc.
Changed
- Option
ignore_erroris moved from ECInfo structure towfoptions.
Added
UCCSD(T),ΛUCCSD(T),ΛUDCSDhave been implemented.- Pseudo-canonicalization of the FCIDUMP file (instead of full SCF calculation).
- Generated
UCCSDTandUDC-CCSDTmethods. - Macro
@print_inputto print the source of the input file to the output.
Fixed
- Fix dressing of a three-internal integral (which slightly affected the energy of CCSD/DCSD with
use_kext=false).
Version v0.9.0 - 2024.01.20
Added
- Add various methods (
DF-[U]HF,BO-[U]HF,[U/R]CCSD,[U/R]DCSD,SVD-DCSD,SVD-DC-CCSDT,CCSD(T),ΛCCSD(T),ΛDCSD...). - Setup macros, options etc.
- ...