Metadata-Version: 2.4
Name: orca_step
Version: 2026.8.7.1
Summary: A SEAMM plug-in for ORCA
Home-page: https://github.com/molssi-seamm/orca_step
Author: Paul Saxe
Author-email: psaxe@molssi.org
License: BSD-3-Clause
Keywords: SEAMM,SEAMMplugin,flowchart
Platform: Linux
Platform: Mac OS-X
Platform: Unix
Platform: Windows
Classifier: Environment :: Plugins
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Description-Content-Type: text/x-rst
License-File: LICENSE
License-File: AUTHORS.rst
Requires-Dist: numpy
Requires-Dist: seamm
Requires-Dist: molsystem
Requires-Dist: seamm-util
Requires-Dist: seamm-widgets
Requires-Dist: seamm-exec
Requires-Dist: seamm-bsse
Requires-Dist: basis_set_exchange
Requires-Dist: bibtexparser
Requires-Dist: tabulate
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: platform
Dynamic: requires-dist
Dynamic: summary

==================
SEAMM ORCA Plug-in
==================

.. image:: https://img.shields.io/github/issues-pr-raw/molssi-seamm/orca_step
   :target: https://github.com/molssi-seamm/orca_step/pulls
   :alt: GitHub pull requests

.. image:: https://github.com/molssi-seamm/orca_step/workflows/CI/badge.svg
   :target: https://github.com/molssi-seamm/orca_step/actions
   :alt: Build Status

.. image:: https://codecov.io/gh/molssi-seamm/orca_step/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/molssi-seamm/orca_step
   :alt: Code Coverage

.. image:: https://github.com/molssi-seamm/orca_step/workflows/CodeQL/badge.svg
   :target: https://github.com/molssi-seamm/orca_step/security/code-scanning
   :alt: Code Quality

.. image:: https://github.com/molssi-seamm/orca_step/workflows/Release/badge.svg
   :target: https://molssi-seamm.github.io/orca_step/index.html
   :alt: Documentation Status

.. image:: https://img.shields.io/pypi/v/orca_step.svg
   :target: https://pypi.python.org/pypi/orca_step
   :alt: PyPi VERSION

A SEAMM plug-in for ORCA

* Free software: BSD-3-Clause
* Documentation: https://molssi-seamm.github.io/orca_step/index.html
* Code: https://github.com/molssi-seamm/orca_step

Features
--------

A SEAMM plug-in for ORCA, a general-purpose quantum-chemistry program, with an
emphasis on accurate molecular calculations such as DLPNO-CCSD(T).

Like the MOPAC and Gaussian steps, the ORCA step is a sub-flowchart: you add an
ORCA node to your flowchart and then build a small sub-flowchart of ORCA
capabilities inside it. Initially the available capabilities are:

* **Energy** -- a single-point energy.
* **Optimization** -- a geometry optimization.

Further capabilities (frequencies, properties, ...) will be added.

Methods are described by the step's metadata and can be set either explicitly in
the ORCA dialog (similar to the Gaussian step) or, by default, taken from a
preceding **Model Chemistry** step. Basis sets default to ORCA's built-in
families (Pople, Dunning ``cc``, and Karlsruhe ``def2``), with the Basis Set
Exchange available as a planned opt-in source.

Acknowledgements
----------------

This package was created with the `molssi-seamm/cookiecutter-seamm-plugin`_ tool, which
is based on the excellent Cookiecutter_.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`molssi-seamm/cookiecutter-seamm-plugin`: https://github.com/molssi-seamm/cookiecutter-seamm-plugin

Developed by the Molecular Sciences Software Institute (MolSSI_),
which receives funding from the `National Science Foundation`_ under
award CHE-2136142.

.. _MolSSI: https://molssi.org
.. _`National Science Foundation`: https://www.nsf.gov


=======
History
=======

2026.8.7.1 -- Bugfix: report the BSSE gradient-fallback correction size
    * The BSSE gradient-fallback warning now reports
      ``seamm_bsse.CPResult.gradient_correction_magnitude`` (new in
      seamm_bsse 2026.8.7.1) alongside the net-force residual, so it is
      clear whether a triggered fallback discarded something physically
      significant or something negligible. Also drops the "at large
      fragment separation" framing from the message -- the recalibrated,
      much tighter noise guard in seamm_bsse can now also catch corruption
      at short/moderate separation, not just the long-range case the
      warning used to describe.
    * Documentation: the BSSE user guide was rewritten to match the current
      N-fragment implementation (it still described the old two-fragment,
      neutral-closed-shell-only Compound-script path). Added prominent
      documentation of the ``Fragment charges`` default (derived from the
      structure's own formal charges when available, not always
      all-neutral) and a new section explaining the ghost-centre
      gradient-noise warning -- what causes it, what SEAMM does about it,
      and how to read the reported correction magnitude to judge whether a
      given fallback is safe.

2026.8.7 -- Bugfix: catch a mis-assigned per-fragment BSSE charge before running ORCA
    * The BSSE (counterpoise) sub-step now passes the cluster's atomic numbers
      into ``seamm_bsse.validate_fragments``, which checks that every fragment
      has an even electron count at its assigned charge. Previously, a
      per-fragment charge given to the wrong fragment (e.g. an ion's charge
      assigned to its neutral partner, such as ``Na+..H2O`` with the +1 given to
      the water instead of the Na) could still sum correctly to the complex's
      own charge and pass validation, only to fail deep inside ORCA once that
      fragment's ghost-augmented sub-job ran as an impossible odd-electron
      singlet. This is now caught up front with a clear message naming the
      offending fragment. The per-fragment log line also now lists each
      fragment's element composition, to make the atom-order convention
      ``fragment charges`` needs visible before submitting.
    * Leaving ``fragment charges`` empty no longer always means all-neutral: if
      the structure carries per-atom formal charges (e.g. an ion marked with an
      SDF/MOL ``M  CHG`` record, such as the Na+ in a ``Na+..H2O`` complex), each
      fragment now defaults to the sum of its own atoms' formal charge. This
      covers monatomic ions (Na+, Cl-) and polyatomic ions (NH4+, BF4-) alike
      without the caller needing to spell out ``fragment charges`` at all --
      removing the main way to trigger the mis-assignment above in the first
      place. An explicit ``fragment charges`` still overrides it.

2026.8.6 -- Bugfix: warn when the BSSE gradient guard falls back
    * The BSSE (counterpoise) sub-step now depends on a new ``seamm_bsse``
      release that guards against a corrupted counterpoise gradient at large
      fragment separation (net force must be ~zero by translational
      invariance; falls back to the uncorrected cluster gradient when it
      isn't). This step now prints a warning when that fallback fires, so a
      well-separated dimer/cluster with a corrupted ghost gradient doesn't
      silently use the fallback -- the corrected energy is unaffected either
      way.

2026.8.5 -- Bugfix: parallel ORCA jobs colliding on the same CPU cores
    * Running several parallel ORCA jobs at once (e.g. two 2-core jobs) could
      pile all of them onto the same one or two CPU cores instead of spreading
      across the machine. ORCA launches its own internal ``mpirun``, and with
      no scheduler coordinating cores between separate jobs, OpenMPI's default
      binding policy bound every independent job's ranks to the same
      low-numbered cores. Parallel ORCA runs off a scheduler now disable that
      binding so the OS can load-balance ranks from concurrent jobs across all
      cores; under SLURM (where the allocation already restricts the job to
      specific cores) the behavior is unchanged.

2026.8.4 -- BSSE generalized to N fragments with independent per-fragment charge
    * The BSSE (counterpoise) sub-step now supports any number of fragments, not
      just two, and each fragment can have its own charge (a new "Fragment
      charges" control) -- needed for ions, e.g. a Na+/Cl- pair or a
      Na+/Cl-/H2O cluster. "Fragments" gained an "auto (molecules)" mode (every
      separate molecule found, not just exactly two); "Fragment A atoms" became
      "Fragment atoms", taking one semicolon-separated group of atoms per
      fragment.
    * Internally, the correction is now driven by a new shared library,
      ``seamm-bsse``: SEAMM generates the 2N + 1 job specs the counterpoise
      correction needs and runs each as an ordinary ORCA job, rather than the
      previous ORCA *Compound* script (limited to exactly two neutral-singlet
      fragments). Validated against the old Compound-script path on the
      existing water/FEC/EC training data (agreement to SCF-noise level) and
      against literature ion-pair/ion-water binding energies and a
      three-fragment cluster before replacing it as the production path; the
      Compound script itself is kept in the package as a permanent regression
      reference.

2026.8.1 -- Bugfix: run ORCA in node-local scratch under a scheduler, not NFS
    * ORCA is parallel (MPI) and was always launched directly in the SEAMM
      job/step directory. On a cluster that directory is commonly NFS-mounted
      shared storage, and ORCA's parallel modules are not NFS-safe for their
      scratch I/O -- under a busy job array this produced intermittent errors
      such as ``Sorting IAK integrals ... Failed to read asymmetric matrix``
      or ``Error MatrixLife: cannot recover matrix``. ORCA now runs in a
      private temporary directory (node-local scratch, honoring ``$TMPDIR``)
      whenever it detects it is running under a batch scheduler (currently
      SLURM), copying only the needed result files back to the job directory
      afterwards. Local/interactive runs are unaffected. Requires
      ``seamm_exec`` 2026.8.1 or later.
    * ORCA now reports, in job.out/step.out, whether it ran directly in the
      job directory or in node-local scratch (and where), so this is visible
      without having to check the SEAMM logs.

2026.7.31.1 -- BSSE now reports the interaction (binding) energy
    * The BSSE (counterpoise) sub-step now computes and can save two new
      results, in kJ/mol: ``interaction energy`` (the CP-corrected binding
      energy of the complex relative to the two separated monomers) and
      ``uncorrected interaction energy`` (the same, without the counterpoise
      correction). These are distinct from the existing ``energy`` result
      (the BSSE-corrected *total* energy of the complex, on the same
      absolute scale as the raw electronic energy) -- the interaction
      energies are referenced to the separated fragments, the physically
      meaningful quantity for a dimer/cluster. Both are registered as
      save-able properties, alongside ``DfE0``, so they can be written with
      the structure (e.g. for MLFF training data export).

2026.7.31 -- BSSE now reports the energy of formation (DfE0)
    * The BSSE (counterpoise) sub-step now computes ``DfE0`` (and the
      atomization energy it needs) from the BSSE-*corrected* complex energy,
      via the same shared ``seamm_thermochemistry`` reference database used
      by the plain Energy/Frequencies sub-steps -- not from the uncorrected
      energy or any of the five intermediate Compound sub-calculation
      energies. A ``Thermochemistry.txt`` report is written alongside the
      run, and the property-summary table now leads with ``DfE0`` and the
      atomization energy before the raw/uncorrected energies. This gives
      MLFF training data referenced to a physically meaningful zero, as with
      the plain Energy sub-step.

2026.7.30.1 -- Energies of formation, and a smarter default for the Hessian method
    * Energy and Frequencies now report physically meaningful, cross-code-
      comparable formation energies -- ``DfE0`` (0 K, electronic-only,
      available for any energy), and ``DfHT``/``DfGT`` (enthalpy/Gibbs energy
      of formation at the requested temperature, when a full thermochemistry
      calculation is available) -- via the shared ``seamm_thermochemistry``
      reference database, replacing the large, code-dependent-zero raw total
      energy as the headline number. A detailed, citable report
      (``Thermochemistry.txt``: the database version/DOI, the atomic
      reference energies and citations used, each computed quantity) is
      written alongside the run. The property-summary table now leads with
      these formation-referenced quantities, then atomization energy and the
      zero-point energy, before the raw electronic-structure energies.
    * **Frequencies:** "Second derivatives" gained a **default** choice (now
      the default), which uses ORCA's analytic Hessian when available for the
      method and falls back to the numerical one otherwise -- no need to know
      in advance which methods (e.g. double hybrids, (DLPNO-)CCSD(T)) lack an
      analytic Hessian. The explicit "analytic"/"numerical" choices still
      force one or the other.

2026.7.30 -- BSSE gradient guard, Initial-guess validation, and property tagging
    * **Bugfix:** the BSSE (counterpoise) Compound script now guards against a
      silent, long-range ghost-gradient blowup: RIJCOSX/COSX exchange
      integrated on far, diffuse ghost basis functions can corrupt the
      force correction at large fragment separation while the SCF energy
      stays fine -- with no ORCA warning and no linear-dependence removal to
      flag it. A translational-invariance check (the net force on the
      corrected gradient must be ~0) now catches this and falls back to the
      uncorrected supermolecule gradient for the forces; the CP-corrected
      energy is unaffected.
    * **Bugfix:** an unrecognized **Initial guess** value (e.g. a stale value
      from before an earlier rename of one of the choices) is now rejected
      with a clear error before ORCA runs, instead of being written verbatim
      into the ``%scf`` block, where ORCA previously rejected it with an
      opaque "Invalid assignment in SCF block" parser error.
    * Stored properties are now tagged with the ``type@method[/basis]`` level
      of theory -- the model-chemistry grammar's Pople-style level spec
      (e.g. ``DFT@B3LYP/def2-SVP``) -- instead of a bare ``method/basis``
      string. A functional keyword containing ``/`` (e.g.
      ``revDSD-PBEP86-D4/2021``) is aliased the same way the model-chemistry
      advertising already does, so the tag is unambiguous.

2026.7.16 -- Structure handling for Optimization/Frequencies, and unit fixes
    * **Bugfix:** the optimized geometry from an **Optimization** sub-step is now
      correctly carried forward, so a following sub-step (e.g. **Frequencies**)
      runs at the optimized structure. Previously ORCA's ``orca.xyz`` was
      discarded before it could be read, so the frequencies were computed at the
      original, un-optimized geometry.
    * The **Optimization** and **Frequencies** sub-steps now have the standard
      **Structure handling** options -- overwrite the current configuration
      (default), create a new configuration, create a new system and
      configuration, or discard the structure -- to control where the resulting
      structure and its properties are stored.
    * **Units:** the zero-point energy, enthalpy, and Gibbs free energy are now
      reported in **kJ/mol** (SEAMM's SI-based default), and the HOMO/LUMO
      orbital energies in **eV** (the conventional unit for orbital energies)
      throughout the ORCA step.
    * The **Frequencies** step now also reports the **largest of the 5 or 6
      nominally-zero translation/rotation frequencies** -- a gauge of the
      numerical accuracy of the Hessian -- and writes the frequencies (and IR
      intensities) to ``frequencies.csv`` in the step directory. Because ORCA
      projects the translations/rotations to exactly ``0.00`` in its printed
      frequencies, this residual is computed from the raw, un-projected
      mass-weighted Hessian (``orca.hess``), so it shows the true numerical
      value rather than zero.
    * The Frequencies output now includes a **table of the frequencies and IR
      intensities**, and the step writes an **``IR_spectrum.graph``** file with
      the IR spectrum as a stick trace plus a Lorentzian-broadened trace that
      mimics an experimental spectrum.
    * Each ORCA sub-step's output is now followed by a blank line, so the
      sub-steps are visually separated in the output.
    * When a sub-step runs, its output now names the **actual level of theory** --
      the resolved model-chemistry level spec **including the resolved basis**
      (e.g. ``ORCA:DFT@B3LYP/def2-SVP``; the basis is appended when the spec
      itself omits it and the step fills in its own), or the explicit
      method/basis -- instead of the generic "the model chemistry".

2026.7.28 -- Initial guess: wavefunction restart, extra ORCA blocks, job:// support
    * New **Extra ORCA blocks** control: a free-text field for one-off literal
      ORCA input (e.g. a custom ``%scf`` block with ``Shift``/``DIISBfac``/
      ``MaxIter`` for a hard-to-converge atom), inserted verbatim before the
      geometry, alongside the existing **Extra keywords** (``!`` line).
    * New **Initial guess** and orbital-checkpoint controls for stabilizing SCF
      convergence on difficult systems (isolated atoms, transition metals):
      the usual ORCA guess types (``PModel``, ``SAD``, ``Hueckel``, ...), plus
      **Previous wavefunction** (seed from the nearest earlier ORCA step in
      this flowchart) and **Specified orbitals** (seed from a named
      checkpoint file) -- the latter reaches across loop iterations (e.g. a
      basis-set escalation inside a Loop), which the former cannot. **If
      wavefunction not found** controls what happens when there is nothing
      to read (default: raise an error). **Save orbital checkpoint** /
      **Checkpoint name** write this run's orbitals to a named checkpoint
      (under ``checkpoints/`` in the job directory by default) for a later
      step to read back.
    * **Specified orbitals** can now also reference *another* job's
      checkpoint (read-only -- a job cannot write into another job):
      ``job://<job number>/<name>``, or ``job://<job number>/default`` to
      pick up that job's own auto-derived name for this same system, when
      you do not know what it resolved to (SEAMM's ``Node.file_path``
      gained this cross-job reference).

2026.7.15 -- Frequencies sub-step and an MDI Hessian command
    * New **Frequencies** sub-step: the Hessian and harmonic vibrational
      frequencies, IR intensities, and thermochemistry (zero-point energy,
      enthalpy, entropy, Gibbs free energy) via ORCA's analytic (``AnFreq``) or
      numerical (``NumFreq``) second derivatives, at a chosen temperature.
      Imaginary frequencies are reported and flagged.
    * The ORCA **MDI engine** now answers a custom **``<HESSIAN``** command,
      returning the analytic Cartesian Hessian (via ``AnFreq``). It advertises
      ``<HESSIAN`` only when ORCA has an analytic Hessian for the method (HF, MP2,
      ordinary DFT) -- not double hybrids or ``(DLPNO-)CCSD(T)`` -- so a driver's
      capability check is truthful. A driver (e.g. the Normal Mode Sampling step)
      pulls the analytic Hessian over a warm MDI connection when offered, or
      finite-differences the forces otherwise.

2026.7.13.1 -- BSSE: optionally write the wavefunction for DDEC6 charges
    * New **Write the wavefunction (wfx) file** option on the BSSE sub-step
      (default off). When on, the dimer's density is retained and converted to
      an ``orca.wfx`` (via orca_2aim), so a following Atomic Charges step can
      compute DDEC6 charges on the counterpoise complex -- just as after an
      Energy step.

2026.7.13 -- Bugfix: correct the canonical CCSD(T)-F12 keyword
    * The canonical F12 method keyword was ``CCSD(T)-F12D``, which ORCA rejects;
      it is now ``CCSD(T)-F12D/RI`` (canonical F12 uses the RI approximation for
      the F12 integrals). ``DLPNO-CCSD(T)-F12D`` is unchanged (DLPNO implies RI,
      and ORCA rejects a ``/RI`` on it).
    * F12 methods are no longer advertised as generic model chemistries -- they
      need a specific F12 orbital basis, not the generic advertised bases.

2026.7.10.1 -- F12 methods, automatic grid for high-L bases, and GUI fixes
    * Added the explicitly-correlated **CCSD(T)-F12D** and **DLPNO-CCSD(T)-F12D**
      methods to the Method pull-down, and the ``cc-pVDZ-F12`` / ``cc-pVTZ-F12`` /
      ``cc-pVQZ-F12`` orbital bases to the basis list.
    * An F12 method now **adds its complementary auxiliary basis (CABS)
      automatically** -- ``<basis>-CABS`` derived from the chosen F12 basis --
      unless one is already in the extra keywords.
    * Selecting an F12 method **narrows the basis-set list to the F12 bases** and
      **hides the Basis-set source** control (forced to ORCA-internal, as the
      Basis Set Exchange has no CABS), so only a valid basis can be chosen.
    * When the integration grid is left on ``default``, it is **automatically set
      to ``DEFGRID3`` for high-angular-momentum basis sets** (h functions or
      above, e.g. cc-pV5Z), determined from the Basis Set Exchange.
    * Bugfix: **sub-steps can now be deleted** -- right-clicking a sub-step in the
      ORCA sub-flowchart now shows the popup menu (Edit / Delete); the menu code
      was missing.
    * Documented that F12 largely removes basis-set superposition error, so the
      counterpoise (BSSE) correction is unnecessary for F12 methods.

2026.7.10 -- BSSE: energy-only mode (enables CCSD(T))
    * New **Compute the gradient** control on the BSSE sub-step. With it set to
      ``no`` (energy only), the counterpoise correction runs without a gradient,
      which is cheaper and works for methods that have no analytic gradient in
      ORCA -- notably ``CCSD(T)`` / ``DLPNO-CCSD(T)`` -- for gold-standard
      counterpoise interaction energies. The default (``yes``) is unchanged and
      still produces the corrected energy and gradient for MLFF training.

2026.7.9.2 -- BSSE (counterpoise) sub-step
    * New **BSSE** sub-step: the counterpoise-corrected (Boys--Bernardi) energy
      and gradient of a two-fragment complex, in a single ORCA run, for
      BSSE-free machine-learned-force-field training data. It drives ORCA's
      Compound facility (the BSSEGradient script by D. G. Liakos & F. Neese).
    * Reports the BSSE-corrected energy, the uncorrected (raw) energy, and the
      correction (in E_h and kcal/mol), plus the corrected gradient; each can be
      saved from the Results tab.
    * Fragments are found automatically from the two molecules in the structure
      (so it works directly on a Dimer Builder dimer) or specified by atom; an
      option relaxes the free monomers before the correction.
    * First version: a neutral, closed-shell complex of exactly two fragments
      with an ORCA-internal basis set. Any analytic-gradient method works,
      including dispersion-corrected and double-hybrid DFT and MP2.

2026.7.9.1 -- SCF SThresh control on the Energy step
    * New **SCF SThresh** control: set ORCA's SCF convergence threshold (the
      ``%scf SThresh`` value, in E_h). Leave it at ``default`` to let the SCF
      convergence preset (or ORCA's own default) govern SThresh, or give an
      explicit value -- e.g. ORCA's nominal ``1.0e-07`` -- to write it out and
      override whatever the preset would otherwise set. Lower it for a tighter
      SCF (smoother energies and forces), raise it to converge more loosely.
      Available on the Energy and Optimization sub-steps.

2026.7.9 -- MDI engine, integration-grid and SCF controls, and config fixes
    * ORCA can now be driven as a persistent MDI engine, so steps that set up a
      model chemistry and evaluate it at many geometries (for example the Dimer
      Builder's energy-based contact search) can use ORCA -- for methods with an
      analytic gradient. Set this up with a Model Chemistry step; the ORCA step
      does not need configuring for it.
    * New **Integration grid** control: choose ORCA's grid preset (DEFGRID1,
      DEFGRID2, or DEFGRID3), or leave ORCA's default.
    * New **SCF convergence** control: choose the convergence-tolerance preset
      (SLOPPYSCF ... EXTREMESCF), or leave ORCA's default. It defaults to
      TIGHTSCF for smooth energies and forces (previously this was applied via
      the extra-keywords default, which is now empty).
    * Bugfix: a ``$variable`` typed into the basis-set field (e.g. to vary the
      basis in a Loop) is now expanded to its value instead of being passed to
      ORCA literally.
    * Bugfix: the pre-run description of a step showed the basis as a raw
      dictionary; it now shows the basis name.
    * How to find and launch ORCA -- its executable path and, for parallel runs,
      the OpenMPI library directory -- now lives in ``~/SEAMM/orca.ini`` (a
      template is created on install). The ``[orca-step]`` section of the main
      SEAMM configuration keeps only the user run options (ncores, memory).
      NOTE: if you previously set ``library-path`` (or a path) in the
      ``[orca-step]`` section, move it into ``~/SEAMM/orca.ini``.

2026.7.8 -- Ordered basis-set list and complete-basis-set (CBS) extrapolation
    * The basis-set list is now ordered by family and, within a family, into
      valence / polarization / diffuse ladders that each rise DZ -> TZ -> QZ ->
      5Z, so a sensible progression is a single ladder read top to bottom.
    * New complete-basis-set (CBS) extrapolation on the Energy step: set
      'Basis-set extrapolation' to 2/3, 3/4, or 4/5 and pick a family (cc,
      aug-cc, def2, or ANO). This is a single ORCA job (its Extrapolate keyword)
      that runs both basis sets and extrapolates the SCF and correlation parts.
      When it is on, the fixed basis set is ignored, and gradients are not
      available (ORCA has no gradient for an extrapolated energy).
    * The CBS control is hidden for the Optimization step, which needs a
      gradient that an extrapolated energy does not provide.

2026.7.6.1 -- Bugfix: parallel execution and DFT functionals via Model Chemistry
    * Bugfix: the library-path (and orca-path) settings were read under the
      wrong key and so were ignored; they are now applied. The matching OpenMPI
      'mpirun' (the sibling 'bin' of library-path) is put on PATH so ORCA
      launches its workers with the correct OpenMPI -- a mismatched one (e.g. a
      newer system OpenMPI) causes parallel runs to abort with a BLAS-ERROR.
      The loader variables are also exported inside the run command so they
      survive macOS System Integrity Protection. (On macOS ORCA does not pass
      DYLD_* to its MPI sub-processes, so the OpenMPI libraries must additionally
      be on the default loader path, e.g. symlinked into /usr/local/lib; see the
      User Guide.)
    * Bugfix: the DFT functionals are again selectable through the Model
      Chemistry step (each functional is offered as a method); this regressed
      when the functionals moved out of the method list. Keywords containing '/'
      (e.g. REVDSD-PBEP86-D4/2021) appear with '_' in the model-chemistry string,
      since '/' is reserved there, and are translated back to the real keyword
      when the calculation runs.

2026.7.6 -- All ORCA functionals, forces, database properties, and parallel execution
    * Density functional theory now offers the complete set of ORCA functionals
      (117 of them), organized by type: pick a functional type (local, GGA,
      meta-GGA, hybrid, range-separated hybrid, or double-hybrid) and then the
      functional itself, including the double hybrids such as
      REVDSD-PBEP86-D4/2021.
    * Gradients (forces) are produced with the correct ORCA method automatically:
      the analytic gradient where ORCA has one, or the numerical gradient where
      it does not (for example DLPNO-CCSD(T), and the non-self-consistent
      wB97M(2) and wB97X-2 functionals). A note is printed when the slower
      numerical gradient is used.
    * Results can now be saved to the property database, including the gradient,
      the dipole-moment vector, the Mulliken, Löwdin, and Hirshfeld charges, the
      Mayer valences, and the rotational constants, in addition to the energies
      and other scalar results.
    * The curated basis-set list has been filled out across the Pople, Dunning
      (correlation-consistent), and Karlsruhe def2 families, including their
      diffuse and minimally-augmented variants.
    * Choosing 'Basis Set Exchange' as the basis-set source now opens the picker
      directly (it remains available from the '...' button as well).
    * ORCA runs in parallel by default, using the cores the machine or batch job
      provides. The number of cores and the memory per process can be set in the
      [orca-step] section of orca.ini (the ncores and memory options); parallel
      runs need ORCA's OpenMPI runtime, whose location can be given with
      library-path.
    * Documentation: a full User Guide covering methods and functionals, basis
      sets, forces, saving results, and parallel execution.

2026.6.28.1 -- A Basis Set Exchange basis-set picker
    * The basis set now uses the shared Basis Set Exchange picker: type a name,
      pick a common one from the list, or press '...' to browse any basis from
      the Exchange, filtered to the elements you select on a periodic table. A
      choice from the Exchange is stored as 'bse:NAME', and the element selection
      is remembered so the picker is restored when the flowchart is reopened.
    * Bugfix: the basis-set source control no longer appears on its own when the
      model chemistry is used; it is shown only with an explicit method and basis.

2026.6.28 -- Properties, gradients, citations, and wavefunction export
    * Reports many properties from a single calculation: HOMO/LUMO (and the next
      orbitals) and the gap, the dipole moment, rotational constants, <S^2>, the
      Mulliken, Löwdin, and Hirshfeld atomic charges, the Mayer bond orders and
      valences, and the optional dipole polarizability.
    * The Mayer bond orders and Hirshfeld charges can be written to a CSV file
      and applied to the structure.
    * Energy gradients can be requested and are written to Results.json for use by
      driver steps such as Thermochemistry and Reaction Path.
    * Full citations for each run: the ORCA program, the DFT functional (from the
      ORCA manual), the basis set (via the Basis Set Exchange), and the supporting
      integral and exchange-correlation libraries.
    * Basis sets can be taken from the Basis Set Exchange, including a 'bse:NAME'
      shorthand that forces a single basis from the Exchange.
    * Can write an analytic wavefunction (.wfx, via orca_2aim) for a following
      Atomic Charges step to partition into DDEC6 charges.
    * Fixed: the Results tab in the GUI was empty; it now lists the available
      results to save to variables, tables, or JSON.

2026.6.27 -- Initial release of the ORCA step
    * A sub-flowchart ORCA plug-in with Energy and Optimization sub-steps.
    * Single-point energies and geometry optimizations, including DLPNO-CCSD(T).
    * The method and basis set can be set explicitly, or taken from a preceding
      Model Chemistry step. Basis sets use ORCA's built-in families.
