Changelog¶
v0.23.0 / 2022-03-10¶
v0.22.0 / 2022-01-25¶
v0.21.0 / 2021-11-22¶
Enhancements¶
(GH#321) CFOUR, GAMESS, NWChem, Psi4, DFTD3, MP2D, gCP - learned to return certain native text files under control of the
native_files
protocol. GAMESS users are strongly advised to at least setprotocols.native_files = "input"
so that the job is reproducible. @loriab(GH#325) Torsiondrive - learned to use multiple molecules as input to torsiondrives. @jthorton
(GH#327) TorchANI - learned to use GPUs if available. @kexul
(GH#330, GH#332) NWChem - learned to restart from existing scratch if QCEngine is killed. @WardLT
v0.20.1 / 2021-10-08¶
Bug Fixes¶
(GH#322) Psi4 - allowed more test cases with gradients and Hessians after a compatibility PR started saving them. @loriab
(GH#323) Turbomole - learned to store calcinfo_natom so that gradients and Hessians can be computed after QCElemental started using that quantity for shape checking in [v0.22.0](https://github.com/MolSSI/QCElemental/blob/master/docs/source/changelog.rst#0220–2021-08-26) @eljost
v0.20.0 / 2021-10-01¶
New Features¶
(GH#305) TorsionDrive - new procedure to automate constrained optimizations along a geometry grid. Akin to the longstanding QCFractal TorsionDrive service. @SimonBoothroyd
Enhancements¶
(GH#307) NWChem - learns to automatically increase the number of iterations when SCF, CC, etc. fails to converge. @WardLT
(GH#309)
qcengine info
learned to print the location of found CMS programs, and geometric, OpenMM, and RDKit learned to return their versions. @loriab(GH#311) CFOUR, GAMESS, NWChem harnesses learned to notice which internal module performs a calc (e.g., tce/cc for NWChem) and to store it in
AtomicResult.provenance.module
. Psi4 already does this. @loriab(GH#312) CFOUR, GAMESS, NWChem harnesses learned to run and harvest several new methods in the MP, CC, CI, DFT families. @loriab
(GH#316) Config -
TaskConfig
learned a new fieldscratch_messy
to instruct aqcng.compute()
run to not clean up the scratch directory at the end. @loriab(GH#316) GAMESS - harness learned to obey ncores and scratch_messy local_config options. When
ncores > 1
, the memory option is partitioned into replicated and non after exetyp=check trials. @loriab(GH#316) Psi4 - harness learned to obey scratch_messy and memory local_config options. Memory was previously off by a little (GB vs GiB). @loriab
(GH#316) CFOUR - harness learned to obey scratch_messy and memory local_config options. Memory was previously off by a little. @loriab
(GH#316) NWChem - harness learned to obey scratch_messy and memory local_config options. Memory was previously very off for v7. @loriab
(GH#315) CFOUR, GAMESS, NWChem – learned to return in AtomicInput or program native orientation depending on fix_com & fix_orientation= T or F. Psi4 already did this. Previously these three always returned AtomicInput orientation. Note that when returning program native orientation, the molecule is overwritten, so AtomicResult is not a superset of AtomicInput. @loriab
(GH#315) CFOUR, GAMESS, NWChem – learned to harvest gradients and Hessians. @loriab
(GH#317) Docs - start “new harness” docs, so contributors have a coarse roadmap. @loriab
(GH#318) Docs - documentation is now served from https://molssi.github.io/QCEngine/ and built by https://github.com/MolSSI/QCEngine/blob/master/.github/workflows/CI.yml . https://qcengine.readthedocs.io/en/latest/ will soon be retired. @loriab
(GH#320) CFOUR, NWChem – learned to run with ghost atoms, tentatively. @loriab
v0.19.0 / 2021-05-16¶
New Features¶
v0.18.0 / 2021-02-16¶
New Features¶
(GH#206) OptKing - new procedure harness for OptKing optimizer. @AlexHeide
(GH#269) MRChem - new multiresolution chemistry program harness. @robertodr
(GH#277) ADCC - new program harness for ADC-connect. (Requires Psi4 for SCF.) @maxscheurer
(GH#278) gCP - new program harness for geometric counterpoise. @hokru
(GH#280) Add framework to register identifying known outfile errors, modify input schema, and rerun. @WardLT
(GH#281) NWChem - new procedure harness to use NWChem’s DRIVER geometry optimizer with NWChem’s program harness gradients. @WardLT
(GH#282) DFTD3 - added D3m and D3m(bj) parameters for SAPT0/HF. Allow pairwise analysis to be returned. @jeffschriber
Enhancements¶
(GH#274) Entos/Qcore - renamed harness and updated to new Python bindings. @dgasmith
(GH#283) OpenMM - transition harness from openforcefield packages on omnia channel to openff.toolkit packages on conda-forge channel. @SimonBoothroyd
(GH#286, GH#287) CI - moves from Travis-CI to GHA for open-source testing. @loriab
v0.16.0 / 2020-08-19¶
New Features¶
Enhancements¶
(GH#241) NWChem - improved performance by turning on
atoms_map=True
, which does seem to be true. @WardLT(GH#257) TorchANI - learned the ANI2x model and to work with v2. @farhadrgh
(GH#259) Added MP2.5 & MP3 energies and HF, MP2.5, MP3, LCCD gradients reference data to stdsuite. @loriab
(GH#261) Q-Chem - learned to return more informative Provenance, learned to work with v5.1. @loriab
(GH#263) NWChem - learned how to turn off automatic Z-Matrix coordinates with
geometry__noautoz = True
. @WardLT
v0.15.0 / 2020-06-26¶
New Features¶
(GH#232) PyBerny - new geometry optimizer procedure harness. @jhrmnn
(GH#238) Set up testing infrastructure, “stdsuite”, where method reference values and expected results names (e.g., total energy and correlation energy from MP2) are stored here in QCEngine but may be used from anywhere (presently, Psi4). Earlier MP2 and CCSD tests here converted to new scheme, removing
test_standard_suite_mp2.py
andccsd
.(GH#249, GH#254) XTB - new harness for xtb-python that natively speaks QCSchema. @awvwgk
Enhancements¶
(GH#230) NWChem - improved dipole, HOMO, LUMO harvesting.
(GH#233)
qcng.util.execute
learned argumentexit_code
above which to fail, rather than just!= 0
.(GH#234) MDI - harness updated to support release verion v1.0.0 .
(GH#238) Cfour, GAMESS, NWChem – harnesses updated to collect available spin components for MP2 and CCSD. Also updated to set appropriate
qcel.models.AtomicProperties
from collected QCVariables.(GH#239) OpenMM - OpenMM harness now looks for cmiles information in the molecule extras field when typing. Also we allow for the use of gaff forcefields. @jthorton
(GH#243) NWChem - more useful stdout error return.
(GH#244) Added CCSD(T), LCCD, and LCCSD reference data to stdsuite. @loriab
(GH#246) TorchANI - harness does not support v2 releases.
(GH#251) DFTD3 - added D3(0) and D3(BJ) parameters for PBE0-DH functional.
Bug Fixes¶
(GH#244) Psi4 - fixed bug in
extras["psiapi"] == True
mode where if calc failed, error not handled by QCEngine. @loriab(GH#245) Added missing import to sys for
test_standard_suite.py
. @sjrl(GH#248) NWChem - fix HFexch specification bug.
Psi4 – QCFractal INCOMPLETE state bug https://github.com/MolSSI/QCEngine/issues/250 fixed by https://github.com/psi4/psi4/pull/1933 .
(GH#253) Make compatible with both py-cpuinfo 5 & 6, fixing issue 252.
v0.14.0 / 2020-02-06¶
New Features¶
Enhancements¶
(GH#201) Psi4 -
psi4 --version
collection to only grab the last line.(GH#202) Entos - Adds wavefunction parsing.
(GH#203) NWChem - Parses DFT empirical dispersion energy.
(GH#204) NWChem - Allows custom DFT functionals to be run.
(GH#205) NWChem - Improved gradient output and added Hessian support for NWChem.
(GH#215) Psi4 - if Psi4 location can be found by either PATH or PYTHONPATH, harness sets up both subprocesses and API execution.
(GH#215)
get_program
shows the helpful “install this” messages fromfound()
rather than just saying “cannot be found”.
Bug Fixes¶
v0.13.0 / 2019-12-10¶
New Features¶
Enhancements¶
(GH#175) Allows specifications for
nnodes
to begin MPI support.(GH#177) NWChem - Parsing updates including Hessian abilities.
(GH#180) GAMESS - Output properties improvements.
(GH#181) NWChem - Output properties improvements.
(GH#183) Entos - Hessian and XTB support.
(GH#185) Entos - Improved subcommand support.
(GH#187) QChem - Support for raw log files without the binary file requirements and improved output properties support.
(GH#188) Automatic buffer reads to prevent deadlocking of process for very large outputs.
(GH#194) DFTD3 - Improved error message on failed evaluations.
(GH#195) Blackens the code base add GHA-based lint checks.
v0.12.0 / 2019-11-13¶
New Features¶
Enhancements¶
(GH#155) Support for Psi4 Wavefunctions using v1.4a2 or greater.
(GH#162) Adds test for geometry optimization with trajectory protocol truncation.
(GH#167) CFOUR and NWChem parsing improvements for CCSD(T) properties.
(GH#168) Standardizes on
dispatch.out
for the common output files.(GH#170) Increases coverage and begins a common documentation page.
(GH#171) Add Molpro to the standard suite.
(GH#172) Models renamed according to https://github.com/MolSSI/QCElemental/issues/155, particularly
ResultInput
->AtomicInput
,Result
->AtomicResult
,Optimization
->OptimizationResult
.
Bug Fixes¶
v0.11.0 / 2019-10-01¶
New Features¶
(GH#162) Adds a test to take advantage of Elemental’s Protocols. Although this PR does not technically change anything in Engine, bumping the minor version here allows upstream programs to note when this feature was available because the minimum version dependency on Elemental has been bumped as well.
Enhancements¶
(GH#143) Updates to Entos and Molpro to allow Entos to execute functions from the Molpro Harness. Also helps the two drivers to conform to GH#86.
(GH#145, GH#148) Initial CLI tests have been added to help further ensure Engine is running proper.
(GH#149) The GAMESS Harness has been improved by adding testing.
(GH#150, GH#153) TorchANI has been improved by adding a Hessian driver to it and additional information is returned in the
extra
field whenenergy
is the driver. This also bumped the minimum version of TorchANI Engine supports from 0.5 to 0.9.(GH#154) Molpro’s harness has been improved to support
callinfo_X
properties, unrestricted HF and DFT calculations, and the initial support for parsing local correlation calculations.(GH#158) Entos’ output parsing has been improved to read the json dictionary produced by the program directly. Also updates the input file generation.
(GH#161) Updates MOPAC to have more sensible quantum-chemistry like keywords by default.
v0.10.0 / 2019-08-25¶
New Features¶
(GH#132) Expands CLI for
info
,run
, andrun-procedure
options.(GH#137) A new CI pipeline through Azure has been developed which uses custom, private Docker images to house non-public code which will enable us to test Engine through integrated CI on these codes securely.
(GH#140) GAMESS, CFOUR, NWChem preliminary implementations.
v0.9.0 / 2019-08-14¶
New Features¶
(GH#120) Engine now takes advantage of Elemental’s new Msgpack serialization option for Models. Serialization defaults to msgpack when available (
conda install msgpack-python [-c conda-forge]
), falling back to JSON otherwise. This results in substantial speedups for both serialization and deserialization actions and should be a transparent replacement for users within Engine and Elemental themselves.
Enhancements¶
(GH#112) The
MolproHarness
has been updated to handle DFT and CCSD(T) energies and gradients.(GH#116) An environment context manager has been added to catch NumPy style parallelization with Python functions.
(GH#117) MOPAC and DFTD3 can now accept an
extras
field which can pass around additional data, conforming to the rest of the Harnesses.(GH#119) Small visual improvements to the docs have been made.
(GH#120) Lists inside models are now generally converted to numpy arrays for internal storage to maximize the benefit of the new Msgpack feature from Elemental.
(GH#133) The GAMESS Harness now collects the CCSD as part of its output.
v0.8.2 / 2019-07-25¶
v0.8.1 / 2019-07-22¶
v0.8.0 / 2019-07-19¶
New Features¶
Enhancements¶
(GH#94) The gradient and molecule parsed from a GAMESS calculation output file are now returned in
parse_output
(GH#101) Enabled extra files in TeraChem scratch folder to be requested by users, collected after program execution, and recorded in the
Result
object as extras.(GH#103) Random errors can now be retried a finite, controllable number of times (current default is zero retries). Geometry optimizations automatically set retries to 2. This only impacts errors which are categorized as
RandomError
by QCEngine and all other errors are raised as normal.
v0.7.1 / 2019-06-18¶
v0.7.0 / 2019-06-17¶
Breaking Changes¶
(GH#85) The resource file
programs.dftd3.dashparam.py
has relocated and renamed toprograms.empirical_dispersion_resources.py
.(GH#89) Function
util.execute
forgot str argumentscratch_location
and learnedscratch_directory
in the same role of existing directory within which temporary directories are created and cleaned up. Non-user-facing functionutil.scratch_directory
renamed toutil.temporary_directory
.
New Features¶
(GH#60) WIP: QCEngine interface to GAMESS can run the program (after light editing of rungms) and parse selected output (HF, CC, FCI) into QCSchema.
(GH#73) WIP: QCEngine interface to CFOUR can run the program and parse a variety of output into QCSchema.
(GH#59, GH#71, GH#75, GH#76, GH#78, GH#88) Molpro improvements: Molpro can be run by QCEngine; and the input generator and output parser now supports CCSD energy and gradient calculations. Large thanks to @sjrl for many of the improvements
(GH#69) Custom Exceptions have been added to QCEngine’s returns which will make parsing and diagnosing them easier and more programmatic for codes which invoke QCEngine. Thanks to @dgasmith for implementation.
(GH#82) QCEngine interface to entos can create input files (dft energy and gradients), run the program, and parse the output.
(GH#85) MP2D interface switched to upstream repo (https://github.com/Chandemonium/MP2D v1.1) and now produces correct analytic gradients.
Enhancements¶
(GH#62, GH#67, GH#83) A large block of TeraChem improvements thanks to @ffangliu contributions. Changed the input parser to call qcelemental to_string method with bohr unit, improved output of parser to turn stdout into Result, and modified how version is parsed.
(GH#63) QCEngine functions
util.which
,util.which_version
,util.parse_version
, andutil.safe_version
removed after migrating to QCElemental.(GH#65) Torchani can now handle the ANI1-x and ANI1-ccx models. Credit to @dgasmith for implementation
(GH#74) Removes caching and reduces pytorch overhead from Travis CI. Credit to @dgasmith for implementation
(GH#77) Rename
ProgramExecutor
toProgramHarness
andBaseProcedure
toProcedureHarness
.(GH#77) Function
util.execute(..., outfiles=[])
learned to collect output files matching a globbed filename.(GH#81) Function
util.execute
learned list argumentas_binary
to handle input or output files as binary rather than string.(GH#81) Function
util.execute
learned bool argumentscratch_exist_ok
to run in a preexisting directory. This is handy for stringing together execute calls.(GH#84) Function
util.execute
learned str argumentscratch_suffix
to identify temp dictionaries for debugging.(GH#90) DFTD3 now supports preliminary parameters for zero and Becke-Johnson damping to use with SAPT0-D
v0.6.4 / 2019-03-21¶
Bug Fixes¶
(GH#54) Psi4’s Engine implementation now checks its key words in a case insensitive way to give the same value whether you called Psi4 or Engine to do the compute.
(GH#55) Fixed an error handling routine in Engine to match Psi4.
(GH#56) Complex inputs are now handled better through Psi4’s wrapper which caused Engine to hang while trying to write to
stdout
.
v0.6.3 / 2019-03-15¶
New Features¶
Enhancements¶
(GH#46)
dftd3
’s workings received an overhaul. Themol
keyword has been replaced withdtype=2
, full Psi4 support is now provided, and an MP2D interface has been added.
Bug Fixes¶
(GH#50 and GH#51) Executing Psi4 on a single node with multiprocessing is more stable because Psi4 temps are moved to scratch directories. This behavior is now better documented with an example as well.
(GH#52) Psi4 calls are now executed through the
subprocess
module to prevent possible multiprocessing issues and memory leak after thousands of runs. A trade off is this adds about 0.5 seconds to task start-up, but its safe. A future Psi4 release will correct this issue and the change can be reverted.
v0.6.2 / 2019-03-07¶
Enhancements¶
(GH#38 and GH#39) Documentation now pulls from the custom QC Archive Sphinx Theme, but can fall back to the standard RTD theme. This allows all docs across QCA to appear consistent with each other.
(GH#43) Added a base model for all
Procedure
objects to derive from. This allows procedures’ interactions with compute programs to be more unified. This PR also ensured GeomeTRIC provides Provenance information.
Bug Fixes¶
(GH#40) This PR improved numerous back-end and testing quality of life aspects. Fixed
setup.py
to callpytest
instead ofunittest
when running tests on install. Some conda packages for Travis-CI are cached to reduce the download time of the larger computation codes. Psi4 is now pinned to the 1.3 version to fix build-level pin of libint. Conda-build recipe removed to avoid possible confusion for everyone who isn’t a Conda-Forge recipe maintainer. Tests now rely exclusively on theconda env
setups.
v0.6.0 / 2019-02-28¶
Breaking Changes¶
(GH#36) breaking change Model objects are returned by default rather than a dictionary.
New Features¶
(GH#18) Add the
dftd3
program to available computers.(GH#29) Adds preliminary support for the
Molpro
compute engine.(GH#31) Moves all computation to
ProgramExecutor
to allow for a more flexible input generation, execution, output parsing interface.(GH#32) Adds a general
execute
process which safely runs subprocess jobs.