Open-Source Quantum Chemistry – an electronic structure package in C++ driven by Python
conda install psi4 -c psi4
.@ramis, @jwaldrop107, @obrien951, @dsirianni, @Dpgibney, @derekmetcalf, @alenaizan, @susilehtola, @tovestra, @jeffschriber, @zachglick, @maxscheurer, @chapincavender, @PhillCli, @mdamer, @katrinleinweber, @mfherbst, @edeprince3, @konpat, @kcpearce, @Icyyork, @timostrunk, @shivupa, @taylor-a-barnes, @shannonhouck, @bennybp, @tomspur, @jgonthier, @sjrl, @kis-gergely-dzsi, @ferchault, @andyj10224, @psi-rking, @SimonBoothroyd, @yxie326, @VHchavez, @nlk36701, @edeustua, @leeping, @mquevill, @lazaroid, @sgoodlett
MemJK
algorithm. By not having to shunt range-separated functionals to DiskJK
even when they'd fit in memory, 30-40% performance improvements seen (#1749)See section at https://github.com/psi4/psi4/issues/1562#issue-416040173 that won't fit here.
See section at https://github.com/psi4/psi4/issues/1562#issue-416040173 that won't fit here.
psi4 --json
output to tmpfile.NBOWriter
that make all previous Psi-generated NBO files suspect.np.read
in psi4.core.Wavefunction
deserialization. This is needed for Psi4 to work with NumPy >=1.16.3, when the pickle-loading-default changed.run_json
encounters error. set_options
can be used for local options, e.g., set_options({'scf__d_convergence': 8})
.qcschema_[in|out]put
, use dtype=2
Molecule in schema, move psi4:qcvars
to extras/qcvars
.libderiv/libderiv.h
like everyone else, not libint/libderiv.h
.CFOUR ERROR CODE
and DROPMO
formatting for Cfour interface.dftd3
package has been rebuilt (conda update dftd3 -c psi4
) to not segfault on Windows WSL and some Linux architectures.cbs()
previously wasn't stashing options correctly.cphf_tasks
needed for psi4numpy polarizability.Wavefunction.to_file/from_file
(#1304).conda install psi4 -c psi4
.conda install psi4=1.2 libint=1.2.1=h87b9b30_4 -c psi4
(#1533)FRONTIER_ORBITALS
and DUAL_DESCRIPTOR
quantities.molecule {...}
will take xyz (element symbol or atomic number) or psi4 formats. docs
1 3\n--
before any fragments.freeze_core {1,2,...}
(#1350).clang-tidy
was run for several transformations.EFP_POL
, QMEFP_POL
, EFP_POL_DAMPING
, all POL
--> IND
cbs(...)
calls --> energy(cbs, ...)
doublet
, triplet
, create
, horzcat
, vertcat
and the blocked matrix "new" and "delete" are now free functions, rather than static methods in Matrix
. Also, create
for Vector
a free function now (#1447).Wavefunction.reference_energy()
--> Wavefunction.energy()
in keeping with grad/hess (#1445).Wavefunction.frequencies
member data and getter/setter. getter now reads off the py-side member data. setter will go away entirely (#1445). More deprecations in (#1394).pytest-xdist
. Known that final exit won't be clean.get_variable
.findif
is now "metadata"-based to allow for greater serialization (#1289).dpd.gbl
has been removed (#1254).pthreads
has been removed from Psi4 (shall not return, #1199).[GiB]
(#1097, ...)core.Molecule.EFP
, not Process::environment.EFP
(#953).from_string
, from_arrays
, or from_dict
(#953).PSI_API
for plugins (#1400).core
electron counts (#1109).DF_FITTING_CONDITION
; the default value is now 1e-10 in line with what was actually used by the code before.core.Matrix
(#1383).Advertised Version: 1.2.1 Continuous Version: 1.2.1 Release Date: 24 July 2018 Documentation: http://psicode.org/psi4manual/1.2/ Availability: Public, GitHub source, CMake build, Conda binary installers
SCF_TYPE=MEM_DF
that wasn't switching between in-core and disk correctly for SAPT (direct_iaq
in AO_core
in DFHelper
) (#1100)SCF_TYPE=MEM_DF
(#1103, #1104)Advertised Version: 1.2 Continuous Version: 1.2 Release Date: 4 July 2018 Documentation: http://psicode.org/psi4manual/1.2/ Availability: Public, GitHub source, CMake build, Conda binary installers
conda install psi4 -c psi4
.
property(...)
has moved toproperties(...)
to avoid python namespace conflicts.PSI_API
to your plugin code in this pattern
c++filt
on the mangled symbol name, then add PSI_API
to the psi4 repo to make sure the core.so
you're linking against is exporting the symbol you need. See example here. Or just file an issue with your lost symbol.<objdir> rm -rf stage/<TAB-TAB-...-TAB>/includes/pybind11
<objdir> rm -rf stage/<TAB-TAB-...-TAB>/share/cmake/pybind11
<objdir> rm -rf external/upstream/pybind11
RHF.Hx
and RHF.solve
for examples. (#760)std::make_shared
. (#836)char *
from Psi4 (#780)arr = wfn.Ca_subset("AO", "OCC").nph
now no longer give noise. (#736)nbody
wrapped exported as psivars (#952)mkl_rt.so
rather than statically linked. This saves size (since NumPy also uses mkl_rt
) and eliminates incorrect results and threading damping associated with multiple programs accessing BLAS/LAPACK from multiple sources (#748, #755).libstdc++
) are installed alongside Psi4 now, not compilers (e.g., g++
).conda activate env
works multishell, not just on bash
. Since conda 4.4 c. Dec 2017Advertised Version: 1.1 Continuous Version: 1.1 Release Date: 19 May 2017 Documentation: http://psicode.org/psi4manual/1.1/ Availability: Public, GitHub source, CMake build, Conda binary installers
MCSCF_ROTATE
keyword.rel_basis
keyword to basis_relativistic
.psi4.set_options(dict)
function, making psi4.geometry()
, psi4.set_options()
, and psi4.energy()
, etc. the mainstays of driving calculations in PsiAPI.psi4.ConvergenceError
.psi4.set_memory()
to optionally take a string that includes a memory unit. Added a minimum memory (250MiB) and increase the default memory (500 MiB).psi4 -nN
or in either mode through set_num_threads(N)
.psi4.get_variables()
.print
in Psithon (input file syntax) to no longer process into print_out
commands that redirect to output file. Now it means whatever your python print means.psi4.core.Matrix
and psi4.core.Vector
to be converted to NumPy arrays and back. Please see tests/numpy-array-interface for a full suite of examples.python -c "import psi4"
. Tutorial at http://psicode.org/psi4manual/master/psiapi.html .
bin/psi4
so now a light script calling import psi4
rather than a hefty C++ executable. No longer linking to libpython.so./
, Psi4 Python module in /psi4/
, and Psi4 C++ library in /psi4/src/
.setup.py
as user interface to CMake build. Now one should call CMake directly using options and guidance in the first ~115 lines of top-level CMakeLists.txt.ctest -L smoke
. On any executable, using pytest, psi4 --test
. On the python module, using pytest, psi4.test()
.psi4 --plugin-compile
to generate Makefile rather than psi4 --new-plugin-makefile
as formerly. Plugin interface has been substantially renovated.psi4 --new-plugin +wavefunction myplugin
to psi4 --plugin-name myplugin --plugin-template wavefunction
.BuildDir/stage/
so python driver not being run from source. Use psi4 --inplace
to run python driver from source.variables_
and arrays_
std::maps for double and SharedMatrix types, respectively, to the Wavefunction class. These should be used inside a computation to enable greater localization of variables.BasisSet
s to be exclusively built in Python and passed into C-side by the Wavefunction get_basisset and set_basisset calls.properties_origin["COM"]
that wasn't working.molden(..., dovirtual)
bug so that keyword is honored and unrestricted occupations are returned correctly.cmake -DENABLE_simint
. Pinned at 0.7.