@loriab loriab released this May 27, 2017 · 535 commits to master since this release

Assets 2

Advertised Version: 1.0
Continuous Version: 1.0
Release Date: 4 Jul 2016
Documentation: http://psicode.org/psi4manual/1.0.0/
Availability: Public, GitHub source, CMake build, Conda binary installers

Psi4 1.0 Release Notes

Psi4 is, in many ways, a whole new package compared to Psi3. While some libraries and modules remain the same, the majority of the code has been rewritten from scratch based on a powerful set of new libraries written
in C++. A totally new Python front-end makes Psi4 incredibly user-friendly and automates many common tasks such as basis set extrapolation, composite methods, running the same computation on every molecule in a test set, etc. Density-functional theory, absent in Psi3, is quite efficient in Psi4, with many functionals available. Density fitting is ubiquitous in Psi4, leading to some of the most efficient MP2 and CCSD(T) code available. Psi4 also introduces extensive, powerful features for energy component analysis of non-covalent interactions via symmetry-adapted perturbation theory. Orbital-optimized versions of perturbation theory and coupled-cluster methods, and their analytic gradients, have also been added. Through external libraries, Psi4 gains access to implicit solvent (PCM) capabilities, density-matrix renormalization group CI, effective fragment potentials, Grimme dispersion corrections, Stone's distributed multipole analysis, and high-order coupled-cluster theory.

Relative to the Beta5 release, the 1.0 Release (7/4/2016) includes a substantial update of the driver and how information is passed between Psi4 modules. The driver is now capable of fully automating energies and optimizations of composite methods (e.g., CBS extrapolated MP2). Modules are now able to return a Wavefunction object that can be manipulated or used as input to another module (e.g., to write out natural orbitals or use those instead of Hartree-Fock orbitals in the next module). Numerous density-fitted perturbation theory and coupled-cluster methods and their analytic gradients have been added.

User improvements

  • Created binary distribution of Psi4 for users
  • Automatic extrapolations at the driver layer: energy('MP2/aug-cc-pv[D,T]Z'), optimize('SCF/cc-pV[D,T,Q]Z')
  • New N-Body wrapper capable of computing non-CP, CP, and VMFC energies and gradients. The cp wrapper has been deprecated and CP can now be called as an optional argument to an energy call: energy('SCF/cc-pVDZ', bsse_type='CP')
  • More sophisticated user input for one-electron property analysis; the properties call now has a uniform interface for SCF, DFT, MP2, CI, MCSCF methods
  • More user-friendly error checking: If the user specifies an unknown keyword, the program will print that this keyword is unknown and will suggest possible alternatives that are close in spelling
  • Added code to output cube files for orbitals, densities, etc.
  • Added automatic defaults for auxiliary basis sets
  • Improvements to the reporting of SAPT summary information, and enhancements to obtain SAPT methods reported in doi: 10.1063/1.4867135.
  • Added command-line arguments -l to specify PSIDATADIR (for developers) and -s to specify location of scratch directories (overrides PSI_SCRATCH)
  • Added GUESS_MIX keyword to UHF/UKS to generate broken-symmetry guesses
  • Added STO-3G, 3-21G, and def2 basis sets through radon

Infrastructure improvements

  • New cmake build system for developers
  • The Wavefunction object is now returnable for all Psi4 methods; it can be passed to other methods or directly manipulated
  • The MOLDEN writer now accepts density matrices for writing natural orbitals
  • Internal upgrades to the direct product decomposition library, libdpd, especially regarding density fitting
  • All code improvements now go through a review process on github.com/psi4/psi4 in addition to a continuous integration server to ensure code quality

New methods

  • Added quadratic convergence algorithms for RHF, UHF, ROHF
  • Added conventional and density-fitted CASSCF and RASSCF energies
  • Added X2C scalar relativistic corrections
  • Added QM/MM computations with MM point charges: energies and gradients
  • Added UHF/UHF stability analysis for non-PK integrals
  • Added density cumulant functional theory methods DC-12, ODC-12, and ODC-13
  • Added CCD treatment of dispersion in SAPT
  • Added density-fitted and Cholesky-decomposed orbital-optimized MP2
  • Added DF-MP3 and DF-MP2.5 energies and gradients (RHF, UHF, or optimized orbitals)
  • Added DF-CCD and DF-CCSD gradients (RHF)
  • Added DF-LCCD energy and gradient (RHF, UHF, or optimized orbitals)
  • Added DF-Lambda-CCSD(T) energy
  • Added distrubted computation of Hessian by finite difference of gradients

Geometry optimization

  • Improved support for frozen coordinates and fixed coordinates
  • Dynamic level algorithm tries increasingly robust optimization approaches for difficult systems
  • Added Cartesian coordinate optimizations
  • Ability to freeze selected Cartesian coordinates
  • Added iterative, restricted-step method to RFO geometry optimizations
  • Added delocalized internal coordinate optimizations

External features

  • Added EFP energies added via libEFP
  • Added PCM implicit solvent for SCF via the PCMSolver library
  • Added interface to DMRG-CI and DMRG-SCF code in CheMPS2
  • Added interface to Stone's Distributed Multipole Analysis program GDMA
  • Added code to do potential energy scans via the WebMO interface

Performance optimization

  • Sped up integrals computation by optimizing libmints layer
  • The PK JK builder has received significant performance improvements
  • SAD guess has been improved dramatically, now default for all RHF computations

Bug fixes

  • Various bug fixes and improvements to optimizer and IRC code
  • Fixed a bug with DF-K in systems with only one occupied orbital
  • Fixed an integer overflow bug in DF-CCSD(T)
  • Fixed modules that crashed when not finding full integral files available (because DF-HF was run instead of conventional HF)
  • Fixed problem with double hybrid DFT total energies not being printed
  • Fixed crash caused by changing number of MO's during optimization (changes in number of MO's dropped due to linear dependencies)
  • Fixed an orientation bug in distributed Hessian by finite difference of energies
  • Innumerable additional bug fixes and tweaks