Changelog
v0.5.2 / 2026-02-16
Enhancements
GH#45 Maint – Switch from mkdocs back to Sphinx for Pydantic formatting and cross-project compatibility.
v0.5.1 / 2025-06-14
Bug Fixes
GH#40 Core – Fix bug where an input
fix_symmetry='c1'molecule didn’t apply no symmetry to its fragments.
v0.5.0 / 2025-06-13
Breaking Changes
New Features
GH#38 Feature – alpha ManyBody QCSchema v2 added accessible through
from qcmanybody.models.v2 import ManyBodyInputetc. Changes are:In v2,
ManyBodyResultgainednative_filesandmoleculefields. The latter is unchanged by QCManyBody from the input. Also,cluster_resultsbecame required so the protocol can process it (can always be empty dict).In v2,
ManyBodyInputgainedprovenanceandidfields.In v2,
ManyBodySpecificationgained aprogramfield, empty by default since prog may be supplied by argument.ManyBodyResult.component_resultsin v1 is now in v2ManyBodyResult.cluster_results.ManyBodyProtocols.component_resultsin v1 is now in v2ManyBodyProtocols.cluster_resultswith the same default.In v2,
ManyBodyInput.extrasfield was removed. Extras should be onManyBodySpecification.In v2,
ManyBodyProperties,ManyBodyKeywords, andManyBodySpecificationlost theirschema_versionfield.All v2 models got their
schema_namestandardized toqcschema_many_body_<type>.ManyBodyProtocolsgot aschema_namefor the first time.ManyBodyResult.successnow in v2 is fixed True.ManyBodyResult.propertiescomposed ofManyBodyResultPropertiesin v1 is now in v2 composed ofManyBodyProperties.ManyBodySpecification.protocolscomposed ofAtomicResultProtocolsin v1 is now in v2 composed ofAtomicProtocols.ManyBodyResult.component_propertiescomposed ofAtomicResultPropertiesin v1 is now in v2ManyBodyResult.cluster_propertiescomposed ofAtomicProperties.
Enhancements
Bug Fixes
GH#38 Docs – Fix typos in core docs page.
Misc.
v0.4.0 / 2025-01-16
Breaking Changes
GH#36 Feature – as the embedded point charges aren’t fully validated and (in the QCEngine computer function of the high-level interface) only work with Psi4 anyways, they are now hidden. Set environment variable
QCMANYBODY_EMBEDDING_CHARGES=1to access functionality.
New Features
Enhancements
GH#36 Utils – when adding up results from many molecular species, now the compensated sums
math.fsumornumpy.sumare used.
Bug Fixes
Misc.
Maint – pinned to QCElemental <0.70 to use only QCSchema v1.
v0.3.0 / 2024-07-21
Breaking Changes
GH#28 Intf – low-level “core” interface renamed from
ManyBodyCalculatortoManyBodyCore. The old name will continue to work for a few months. Also, its file changed frommanybody.pytocore.pybut it was already a top-level import.GH#30 Intf – low-level “core” interface now requires named arguments beyond the first recognizable ones (mol, bsse_type, levels).
GH#32 Intf – “high-level” interface now no longer stores QCVariables (or any other results dicts) in extras.
GH#32 Utils –
qcmanybody.utils.collect_varsnow returns with keys from ManyBodyResultProperties rather than QCVariables.GH#32 Utils – arguments rearranged in
qcmanybody.tests.utils.run_qcengine(use serial backend for core interface) to align withManyBodyCoreinit arguments.
New Features
GH#32 Schema – a new function
ManyBodyResultProperties.to_qcvariables()returns a translation map to QCVariables keys.GH#32 Schema – a new function
qcmanybody.utils.translate_qcvariables(map)switches between QCVariable and QCSchema keys.GH#33 Schema –
ManyBodySpecification.extrasadded.GH#34 Schema – Add schema_version to
AtomicSpecification,ManyBodySpecification,ManyBodyKeywords,ManyBodyInput, andManyBodyResultProperties.
Enhancements
GH#28 Intf – high-level interface is now importable from the top level module.
GH#29 Maint – QCEngine is needed only for the continuous running function of the high-level interface, so making it an optional dependency.
GH#30 Intf – low-level “core” interface now accepts a molecule in partial schema dictionary format rather than requiring a constructed
qcelemental.Moleculeobject. If the molecule is a single large fragment, an error is thrown.GH#30 Docs – add end-to-end demos in test_examples.
GH#31 Schema – add “none” as a bsse_type alias to “nocp”.
GH#34 Schema – Allow environment variable QCMANYBODY_MAX_NBODY to influence the body-level to which
ManyBodyResultPropertiesis defined added.GH#34 Schema – added discriminator to input for
GeneralizedOptimizationInputandGeneralizedOptimizationResultmodels to allow input from dicts (rather than models) in OptKing. Further specialized QCElemental.GH#34 Schema –
ManyBodyResultPropertiesis still only explicitly enumerated up to tetramers, but now it allows through higher-body fields when they match a pattern.GH#34 Maint – start testing optimizations through QCEngine.
GH#34 Util – add
labeler(..., opaque=False)option to produce eye-friendly(1)@(1, 2)style labels as well as the semi-opaque internal style. Also always convert single ints to tuples now. Functiondelabelercan decode the new style.GH#34 Intf – sort “core”
nbodies_per_mc_leveldictionary so model chemistries are in a predictable 1b, 2b, …, supersystem order. Check that high-level (different data structure) agrees.GH#34 Util – add short ordinal model chemistry level (e.g., §A) to the
format_calc_planandprint_nbody_energysummaries.GH#34 Util – add function
modelchem_labelsto associate n-body level, model chemistry level, one-char ordinal modelchem label, and n-bodies-covered modelchem label.
v0.2.1 / 2024-05-14
Enhancements
GH#27 Intf – move high-level interface from
qcmb.qcng_computer.ManyBodyComputerQCNGtoqcmb.computer.ManyBodyComputer. Suppressed remaining printing.
v0.2.0 / 2024-05-13
New Features
GH#25 Schema – added a new field
ManyBodyResults.component_resultsto store subsystemAtomicResults (or other Result if layered computation). By default this is not stored, but it can be withManyBodyInput.protocols.component_results = "all".GH#25 Schema – added
GeneralizedOptimizationInputandGeneralizedOptimizationResultmodels as temporary extensions ofOptimizationInput/Resultwhen the optimizer can runManyBodyInputs through QCEngine, not justAtomicInputs. Needs special QCElemental, QCEngine, and OptKing to work for now.
Enhancements
GH#22 Intf – move high-level interface to main directory and remove unused functions. Most common route into interface is now:
qcmb.ManyBodyComputerQCNG.from_manybodyinput.GH#25 Schema –
AtomicSpecification.protocolsset inManyBodySpecification.specificationwill now be observed.GH#26 Schema – add
AtomicSpecification.extras.
Bug Fixes
GH#25 Schema –
ManyBodyKeywords.embedding_chargesnow default to None rather than empty dict.
Misc.
v0.1.0 / 2024-04-24
New Features
Runs CP, NoCP, VMFC energies, gradients, and Hessians.