v1.10 — September 2025

  • Friday, Sep 5, 2025
blog-image

Documentation

Installers

Source

Release Notes

Advertised Version: 1.10 Continuous Version: 1.10 Release Date: 5 Sep 2025 Documentation: https://psicode.org/psi4manual/1.10.x/ . Availability: Public, GitHub source, CMake build, Conda binary installers, Docker Span: 98 PRs

Required Dependency Changes

  • See External Libraries below for dependency bumps.
  • QCManyBody is newly required.

New Methods

  • #3157 Added Python interface (Pybind) for building LS-THC quantities that allow for rapid prototyping of new methods involving THC. Developed infrastructure for the development of alternate ways to perform THC (i.e. PF-THC) @andyj10224
  • #3174 RelPotentialInt and associated integral classes now expose all four W integral types instead of just the W0 integrals. @JonathonMisiewicz
  • #3110 Computes in-core & disk conventional & DF MP2-F12/3C(FIX) energy @EricaCMitchell
  • #3172 New SAPT0-D4M and FISAPT0-D4M methods based on the damping function parameters provided from https://doi.org/10.1063/5.0219185 @Awallace3

External Libraries

  • #3107: Use official upstream release for Libint2 (first time since Libint1) v2.8.1 . No longer should need -c conda-forge/label/libint_dev in conda environments @loriab
  • #3113, #3176: Require newer standard @JonathonMisiewicz
  • #3150 Psi4 has been interfaced to the GauXC standalone library, specifically the sn-LinK exact exchange algorithm present within GauXC. Construction of the interface is specified at compile-time with the compile-time flag ENABLE_gauxc, and GPU support is specified with the gauxc_ENABLE_GPU compile-time flag. Once installed, SCF_TYPE=J_ALGO+SNLINK can be used to call GauXC within Psi4. A large number of keywords have been added for controlling the behavior of SNLINK. For controlling the GauXC grid, SNLINK_RADIAL_POINTS, SNLINK_SPHERICAL_POINTS, and SNLINK_RADIAL_SCHEME control the GauXC radial point count, spherical point count, and radial quadrature, respectively. SNLINK_USE_GPU controls GPU execution of GauXC. Finally, SNLINK_INTS_TOLERANCE controls the integral screening threshold used by GauXC’s sn-LinK algorithm. @davpoolechem
  • #3152 Require new v1.0 dftd3-python
  • #3186 Psi4 works with numpy v2 provided it’s rebuilt against it. pybind11>=2.12 and qcelemental>=0.28 needed. If you get “atoms too close” at runtime, rebuild and/or check versions in your environment.
  • #3186 For Windows, Psi4 has trouble with clang v18, so use v17 (known good) or v19 (has fix in place but unreleased at time of investigation).
  • #3231 Libxc — use either v6 (>=v6.1) or v7 with Psi4 @susilehtola
  • #3262 QCElemental and QCEngine — use 0.29 and 0.31, respectively @loriab
  • #3281, #3314 Einsums advanced to v1 @jturney
  • #3281 cppe advanced to v0.3.2 from v0.3.1 but note that pe+ecp test is off
  • #3282 Changes to CheMPS2 to allow working with new Molden code. @JonathonMisiewicz
  • #3302 older classic dftd3 & gcp executables are deprecated in QCEngine in favor of dftd3-python and mctc-gcp implementations. Now the classic ones raise errors in Psi4 when try to access. While the gcp is a drop-in replacement, dftd3-python can’t do -d2 and by default adds a 3-body correction when run independently. When accessing through psi4, it runs w/o the 3-body, so no results change. @loriab
  • Note that QCFractal v0.62 won’t work as snowflake with Psi4. This is corrected for v0.63
  • #3160 Internal code has been replaced by a required external Python module, QCManyBody @loriab
  • #3136 OpenOrbitalOptimizer is available for SCF. It works for RHF and UHF (Reverts to internal for others). Note that it won’t converge as tightly as the Psi4 internal routine. @susilehtola
  • #3317 This PR accompanies the 0.4 optking release which includes additional linear coordinate handling and IRC fixes. @AlexHeide

Breaking Changes

Performance Optimizations

  • #3131 Though SCF_TYPE=MEM_DF and DISK_DF each have in-core and out-of-core algorithms, the mem_df disk one is inefficient, so common access is cut off.
  • #3133 Remove redundant calculation of dimer centered basis set exchange (of the three exchange calculations) for non-decomposed FISAPT. @carolinesargent
  • #3153 RelPotentialInt now has the same charge field API as PotentialInt and should be faster @JonathonMisiewicz
  • #3187 Drastically reduction of the rank of the intermediates in a THC factorization through Matthews' grid-pruning scheme. @andyj10224
  • #3256 SAPT(DFT) and SAPT(HF) computations will be faster through re-using integrals and possibly JKs between dimer and monomers. @Awallace3
  • #3271 FISAPT computations will be slightly faster through re-using integrals the 3-index DF integrals from the initial HF @konpat
  • #3160 Several n-body efficiency improvements and a new option supersystem_ie_only that computes the IE rather than MBE, useful for trimers and larger. @loriab

Details of Interest

  • #3104: PSI_API function double **block_matrix(size_t n, size_t m, bool mlock = false) now has the [[nodiscard]] attribute, as discarding its return value is a guaranteed memory leak (unless n or m is zero, in which case no allocation happens). @TiborGY
  • #3105: All 3 SAPT libraries now use keyword CPHF_R_CONVERGENCE with default 1e-8 to control SAPT CPHF. For libsapt module, this loosens conv from 1.e-9 and drops an additional energy conv. For fisapt module, this is no change (beside option name). For DFT(SAPT) module, this tightens from hardwired 1.e-6. Use of old keywords E_CONVERGENCE and D_CONVERGENCE (various SAPT scopes) will fail with upgrade path. @Awallace3
  • #3112, #3155, #3177 moinfo cleanup in structure, docstrings, and mutability. also modernizes Dimension handling @TiborGY
  • #3116 The default definition for a molecule has been removed. Prior to this release, if a molecule had not been defined, Psi4 would run on a hydrogen molecule with bond length 0.74 Å. This change only affects Psithon input. @susilehtola
  • #3117, #3118, #3168 Psi4 now prints more detailed error messages if an error happens in DPD, detci, and other modules through PSIEXCEPTION and other modern mechanisms. @TiborGY
  • #3123 Improve docs by showing Psithon and PsiAPI code snippet alternatives in the tutorial on input files. @philipmnel
  • #3127, #3126 Continue fixing psi4 import paths when the $HOME directory has a symlink @loriab
  • #3138, #3137, #3212 Fixes a bug in sad.cc: pseudo-orbitals should be obtained by multiplying the orbital with the square root of their occupation to reproduce the correct density matrix C occ C^T. @susilehtola @JonathonMisiewicz
  • #3139 PSIO errors now provide advice on how to rerun the calculation to fix the PSIO issue. @davpoolechem
  • #3142, #3141 When SAPT(DFT) is used with SAPT_DFT_FUNCTIONAL == ‘HF’ to run SAPT0, two pathways for dispersion and exchange-dispersion calculations are possible, through the SAPT0-SAPT2+3 code (requested by set SAPT_DFT_MP2_DISP_ALG SAPT) or through the FISAPT code (set SAPT_DFT_MP2_DISP_ALG FISAPT). The latter case, which previously forgot to freeze the core as requested, now preserves frozen-core. @konpat
  • #3143 Adds two new functions, eigen_map() and eigen_maps(), usable in Psi4 plugins and downstream programs, that return a formulation of the calling Psi::Matrix object, that is usable in contexts where Eigen::Matrix objects are required/desired. No data copying occurs, and the two forms are for c1 and symmetry-matrices respectively. @davpoolechem
  • #3145 Adds a new compile-time setting, FORCE_PEDANTIC, that causes compilation to fail whenever use of a compiler-specific extension is detected. mostly for CI. @davpoolechem
  • #3162 require cmake 3.19 minimum @loriab
  • #3166 Added DFT aliases for libxc/psi4/paper consistency: alias MGGA_MS0, MGGA_MS1, MGGA_MS2, and MGGA_MVS to MS0, MS1, MS2, and MVS, respectively, and alias PW91 to PWPW; and mPWPW to mPW91. @KB1RD
  • #3182 CompositeJK::name() now returns the combined names of the substituent SplitJK components rather than “CompositeJK”. @davpoolechem
  • #3183 Renames COSK::set_COSX_grid and COSK::get_COSX_grid functions to COSK::set_grid and COSK::get_grid, respectively. Removes SplitJK::set_COSX_grid and SplitJK::get_COSX_grid functions. @davpoolechem
  • #3192 Changes class heirarchy of DLPNO module and better control of grids for DOI integrals. @andyj10224
  • #3194 start testing Silicon Mac in CI, also adcc @loriab
  • #3204, #3209 OptKing — Default TS search algorithm is now RS_I_RFO. Also adds shortcut for freezing all dihedrals in a molecule freeze_all_dihedrals and unfreeze_dihedrals. @AlexHeide
  • #3206 Docs — debugging guidance @cgbriggs99
  • #3226, #3140 Properties — MBIS valence charges are now exposed and printed in MBIS output. The wfn array_variable MBIS VALENCE CHARGES is now available. @tallakahath
  • #3230, #3251, #3252, #3253 Keywords — miscellaneous corrections @JonathonMisiewicz
  • #3260 Build — Ninja long has been vulnerable to OOM errors compiling libmints. Now using job pools to hopefully eliminate. @loriab
  • #3246 Fixes the undefined variables in UHF_STABILITY ANALYSIS defined in psi4/driver/procrouting/scf_proc/subclass_methods.py @ralf-meyer
  • #3229 removed noise from stdout while running ip_tuning @PhillCli
  • Other cleanups: #3169, #3175, #3179, #3195, #3201, #3216, #3219, #3224, #3233, #3250, #3268 @TiborGY @JonathonMisiewicz @davpoolechem @berquist @susilehtola @lcyyork @loriab
  • #3282 The deprecated dcft keyword is no longer recognized. @JonathonMisiewicz
  • #3282 dfocc’s molden_write is now deprecated. Just call the molden_write method of the associated wavefunction. @JonathonMisiewicz
  • #3282 Matrix::Full is removed in favor of Matrix::SubBlocks, as the deprecation notice foretold. @JonathonMisiewicz
  • #3282 Behavior Change: In psi4.molden, if densities are not provided, if occupation_a and occupation_b are not found, these will be pulled from reference_wavefunction instead of set to zero. @JonathonMisiewicz
  • #3282 Behavior Change: wfn.write_molden will only check that the orbital energies agree if the molden writing actually calls for orbital energies. @JonathonMisiewicz
  • #3286 update psi4 and plugins for cmake v4 @loriab
  • #3285 Update [aug-|heavy-aug-|]cc-pvtz-dk to include support for Mo, Nb, Pd, Rh, Ru, Tc, Y, and Zr @jaclark5
  • #3288 cc mega-module uses Dimension more appropriately, and cctransort no longer writes Dimension to disk. @JonathonMisiewicz
  • #3291 psi4.QMMMbohr is further discouraged, and external point charges specification (always in Bohr, regardless of molecule units) now more flexibly takes in lists, numpy arrays, and psi4.core.Matrix es. (It also takes in more arrangements, but none of them will save keystrokes from the point charges case.) @loriab
  • #3239 The user may supply an arbitrary potential evaluated on a numerical quadrature grid to an SCF calculation by saving the x, y, z, w, and v values to a human-readable EMBPOT file. The first line of the EMBPOT file must have the number of points inside of the file. The user must also include set perturb_h true and set perturb_with embpot in the Psi4 input. The potential will then be evaluated and included in the core Hamiltonian construction, and energy and gradient calculations. @johnppederson
  • #3294 Provide “lowdin_spins” property to users. @jaclark5
  • #3060 Change sieve initialization to fix the majority of combinations of SCF_TYPE/SCF_SUBTYPE/SCREENING keywords which were previously broken. @davpoolechem
  • #3305 all dependencies now build with cmake v4.0 @loriab
  • #3305 new citation_formatter() function to access journal reference @loriab
  • #3306 update samples and copyright year @loriab
  • #3232 let Psi4 compute the GRAC correction for DFT-SAPT automatically, rather than looking up or precomputing. Try cheaply, then expensively. @Awallace3
  • #3309 52 *pCV(X+d)Z and *pwCV(X+d)Z basis sets have been deprecated as having an unhealthy combination of d-function exponents as uncovered by @lukekurfman . They can still be accessed by appending “-deprecated”. @loriab
  • #3309 7 *cc-pwCV5Z basis sets were corrected @loriab
  • #3308 conda env spec yaml files including addons are now saved in the repo @loriab
  • #3295 geomeTRIC bug fixed so a OptimizationConvergenceError is thrown when geom_maxiter exceeded with geomeTRIC, now matching optking behavior
  • #3295 core.get_variable, core.get_variables, core.get_array_variable, core.get_array_variables, core.Wavefunction.get_variable, core.Wavefunction.get_array, core.Wavefunction.set_array, core.Wavefunction.arrays have been removed as deprecation warned @loriab
  • #3299 Replace Several Pseudo-Ints In libdpd and simplify logic @JonathonMisiewicz
  • #3311 Add PSI_API for C_DTRSV. @lcyyork
  • #3317 Alphabetical keywords list has now moved into optking docs page. @AlexHeide
  • #3317 Setting a coordinate constraint to a whitespace containing string (i.e. set frozen_bend (" “)) no long works. Please use set frozen_bend "” to erase a previously set value. @AlexHeide

Conda Package Updates

  • #3186 at long last the intel-openmp package provides the libiomp5md.lib (import library) and libiomp5md.dll (runtime library) pair needed at buildtime rather than just the latter. So we no longer need to link against the random lib stashed on GH, and the build can be far more self-contained. @loriab
  • Thanks to the upstream Libint2 release v2.8, conda environments no longer need libint_dev and plain conda install psi4 -c conda-forge works.
  • Thanks to @susilehtola , Psi4 v1.9.1 is now packaged for Fedora again (last one had been v1.3).
  • #3281 DFTD4 v3.7 now available on conda for all platforms, incl. Windows, so 3c methods are accessible
  • ARM for Linux conda packages available as aarch64. may not have complete complement of addons

Bug Fixes

  • #3130 remove P=1=12 from angmom list @loriab
  • #3180 fix bug when compute time is on-the-second @JonathonMisiewicz
  • #3194 fix out-of-bounds error in basisset.cc @loriab
  • #3215, #3214 Fixes the buffer overflow error in eribase.cc @susilehtola
  • #3167, #1968 Fixes ghost+ECP to now correctly not include ECP functions on ghost atoms @btyrcha
  • #3148, #3147 Fixes parsing molecules with angstrom units when need access to initial (pre-psi4-orientation) orientation for cases like PE or external_potential @timostrunk
  • #3274, #3279 Closing a PSIO file now writes its cache’d file4 entries to disk. @JonathonMisiewicz
  • #3282 Fixed a bug that would cause a crash when calling wfn.write_molden on a non-HF wavefunction without marking natural orbitals. @JonathonMisiewicz
  • #3160 bug fix for gradient or Hessian vmfc for max_nbody >=3 @loriab
  • #3317 irc_forward and irc_backward were not being written since 1.7. irc_traj..xyz file will now be written for irc jobs and opt_traj..xyz file can also be requested for non irc jobs. @AlexHeide

Known Bugs

  • #3281 Windows largely fails with MKL 2024.2. 2024.1 is ok

AltStyle によって変換されたページ (->オリジナル) /