Skip to content

ECCE-QM: dummy atoms and geometry constraints (for constrained optimisations in teaching labs) #309

Closed

Description

@ohlincha

So that constrained-geometry labs (e.g. mapping the ammonia inversion potential with a dummy atom on the C3 axis, #298) can run with the built-in program, without NWChem:

  1. Dummy atoms: read X in the geometry block with no nucleus, electrons or basis functions; leave it out of the SCF, the DFT grid, Mulliken etc.; keep it in the geometry trace so atom numbering matches the Builder.
  2. Geometry constraints in the optimiser: fixed bond lengths, angles and torsions, and fixed atoms (including dummy atoms), enforced at every step (e.g. projection of the constraint gradients from the BFGS step, or Lagrange multipliers); new input keywords documented in the help.
  3. ECCE writes them: ai.ecceqm writes the Builder's constraints (as for NWChem and ORCA) instead of refusing dummy atoms.
  4. Validation: constrained NH3 + X at fixed X–N–H angles (HF and B3LYP/6-31G*), energies and geometries along the inversion path against NWChem and ORCA.
    Planned for 9.0.1, together with Geometry constraints and dummy atoms: make them discoverable #306 (constraint workflow, including picking angle/torsion atoms in the right order).

Activity

  1. ohlincha commented on Oct 13, 2026

    @ohlincha
    CollaboratorAuthor

    In 9.0.1 (54e41b5): ECCE-QM writes and uses dummy atoms and geometry constraints (bonds, angles, torsions, fixed atoms) in its optimiser. Constrained optimisations of NH3 with a dummy atom agree with NWChem to 2.5e-8 Eh and with ORCA to 3e-9 Eh. A GeoVib run with constraints is refused, since frequencies at a constrained geometry are not meaningful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions