Release notes
Version v0.14.0 - 2025.04.16
Breaking
- the definition of
ampsvdtol
threshold for SVD methods has been changed. Now it corresponds to the threshold for the density matrix (i.e., square of the previous definition). verbosity
has been moved fromECInfo
toOptions.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
ITensors
package has to be installed and loaded; and in order to useAtomsBase
interface, theAtomsBase
,Unitful
andUnitfulAtomic
packages 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
Buffers
module. - the precompilation is disabled for development versions.
- Buffers is moved to a separate package Buffers.jl.
- reduce memory demand in df-hf.
- remove
IterativeSolvers
dependency. jkfit
basis now falls back todef2-universal-jkfit
if not found (e.g. for avXz basis sets).
Added
- a macro
@dummy
has been added to set some atoms to dummy atoms. - a
neuralize
function to trickBase.mightalias
inTensorOperations
for reshaped-buffer arrays. Buffer
andThreadsBuffer
types andalloc!
,drop!
,reset!
,reshape_buf!
functions.BasisBatcher
structure to calculate 3-index integrals in batches.@dfmp2
to calculate df-mp2 energy without storing integrals.@freeze_orbs
also 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-ccsdt
is 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 mp2
calculations.
Fixed
- Fix
maxit=0
case forcc
calculations.
Version v0.13.0 - 2024.07.09
Breaking
DIIS.perform
has been changed toDIIS.perform!
in order to allow to read the vectors and residuals asVector{}
.- The signature of
newmmap
function has changed (the type specification is now the last argument and defaults toFloat64
. - The
FciDump
module has been renamed toFciDumps
. - The
FDump
type has been changed toFDump{N}
with N=3 (for triangular storage of 2-electron integrals) or 4. The logical variabletriang
has been removed (there is a functionis_triang(::FDump)
now). AliasesTFDump = FDump{3}
andQFDump = FDump{4}
have been introduced. - The
ECInfo
type 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 theQMTensors
module.uppertriangular
function has been renamed touppertriangular_index
. - The driver functions and macros now return energies in an ordered descriptive dictionary
OutDict=ODDict{String,Float64}
. Uselast_energy
function to access the last energy (orlast
to access the whole entry including the key and the description).
Changed
- Save the memory using in Hessian matrix calculation in dfmcscf function.
dfdump
stores the MO integrals internally in mmaped files.- The header of the
FDump
is 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.SpinMatrix
struct 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?c
routines have been renamed toeri_?e?idx
.
Changed
- use SVD in DIIS.
- increase number of iterations in 2D-CCSD IAS test.
- interface to
libcint_jll
has been implemented. The basis set library is added (in Molpro format), and basis sets are parsed to aBasisSet
object.GaussianBasis.jl
dependency 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
diis
optioncrop=true
, the DIIS dimension can be changed usingmaxcrop
(default is 3). - An option
print_init
is added to the@print_input
macro (default isfalse
). If set totrue
, theElemCo.jl
info 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
ArgParse
dependency and set[compat]
section inProject.toml
.
Version v0.11.0 - 2024.04.12
Breaking
EC.ms
(previously of typeMSys
) inECInfo
is renamed toEC.system
(of typeAbstractSystem
).ECdriver
routine is moved toCCDriver
module and renamed toccdriver
. Thefcidump
keyword-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
@svdcc
macro is renamed to@dfcc
macro and calls thedfccdriver
routine, which is intended as a driver routine for all DF-based correlation methods (i.e., methods which don't use theEC.fd
integrals).
Changed
- Renamed function
active_orbitals
tooss_active_orbitals
. - Renamed function
calc_ccsd_resid
tocalc_cc_resid
. ECdriver
andoss_active_orbitals
now return named tuples.- Improved documentation of occupation strings syntax.
- Switched to
Atom
andFlexibleSystem
fromAtomsBase
as the internal representation of the molecular system. The basis set is stored for each atom as:basis
property (asDict{String,String}
, e.g.,system[1][:basis]["ao"]
). One can also set:basis
property for the whole system. - Renamed macro
@opt
to@set
.@opt
is now an alias of@set
.
Added
- The automatically generated
UCCSDT
andUDC-CCSDT
methods have been added to the docs. - SCS-MP2, SCS-CCSD and SCS-DCSD
Version v0.10.0 - 2024.02.21
Breaking
- Cholesky threshold
thr
is 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_error
is moved from ECInfo structure towf
options.
Added
UCCSD(T)
,ΛUCCSD(T)
,ΛUDCSD
have been implemented.- Pseudo-canonicalization of the FCIDUMP file (instead of full SCF calculation).
- Generated
UCCSDT
andUDC-CCSDT
methods. - Macro
@print_input
to 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.
- ...