Skip to content

Plugin PMEFF

Hiromichi Yokoyama edited this page Aug 11, 2026 · 4 revisions

Plugin: PMEFF

PMEFF ("Python Molecular Editor Force Field") is a self-contained, dependency-light universal force field covering the entire periodic table (Z=1–118). It's positioned explicitly as a pre-DFT geometry-cleanup tool — every parameter derives from the Pyykkö covalent radius, so no element is ever left unparameterized, but it is not a substitute for a real thermochemistry engine.

Repository moleditpy_pmeff-plugin
Author HiroYokoyama
Supported OS Windows, macOS, Linux, WSL
Supported Python >=3.9, <3.15
Menu location selectable optimization method PMEFF (v1.4.0) + Analysis ▸ PMEFF Single-Point Energy + Analysis ▸ PMEFF Minimum Check (Vibrational) + Settings ▸ PMEFF Settings... + 3D Edit ▸ PMEFF Metal Geometry Override...
Extra dependencies NumPy, RDKit

See Official Plugins for the full catalogue, and Tips for force-field selection in 3D optimization for how MoleditPy's built-in optimization methods compare.


1. Overview

PMEFF registers itself as one of the selectable methods for the main app's built-in Optimize 3D action rather than opening its own optimization dialog — pick "PMEFF (v1.4.0)" the same way you'd pick MMFF94 or UFF. Around that, the plugin adds three extra tools: a settings dialog for toggling optional physics terms, a per-atom metal-coordination-geometry override table, and two analysis actions (single-point energy decomposition, and a vibrational minimum check).


2. Force field terms

  • Bonds — Morse (optional) or harmonic, with polar-bond-length contraction.
  • Angles — harmonic, with hybridization-derived equilibrium angles, lone-pair compression for sp³ N/O/S/P centers, law-of-cosines targets inside 3-membered rings, and a k(1+cosθ) term for linear sp centers.
  • Torsions — cosine dihedral with 2-, 3-, or 6-fold periodicity depending on hybridization, and a π-character-scaled 2-fold barrier.
  • Out-of-plane — a pyramidalization penalty on sp² 3-coordinate centers.
  • Van der Waals — 12-6 Lennard-Jones, per-atom radius = covalent radius + 0.90 Å, Lorentz–Berthelot combining rules, 1-2/1-3 pairs excluded and 1-4 pairs at half depth.
  • Electrostatics — dynamic QEq (charge equilibration) with shielded Coulomb, re-solved during optimization.
  • Hydrogen bonds (optional) — geometry-dependent D–H···A term for N/O/F/S donors/acceptors: a 12-6 radial term times a cos²(∠DHA) angular term.
  • Dispersion (optional) — Becke-Johnson-damped C₆/r⁶, layered on top of the LJ term.

Electronic effects (QEq + shielded Coulomb) also assign square-planar targets to 4-coordinate d⁸ metals (Ni, Pd, Pt, Rh, Ir, Au) and octahedral targets to 6-coordinate d-block metals — this is what the Metal Geometry Override table (§4) lets you correct when the automatic guess is wrong.


3. PMEFF Settings dialog

Settings ▸ PMEFF Settings... shows one checkbox + explanatory label per optional term:

Term Default
Electronic effects (QEq dynamic charges + square-planar/octahedral metal targets) On
Morse bond stretching On
Hydrogen bond correction On
Dispersion correction Off
Polar bond contraction (shortens polar bond rest lengths, e.g. Si-O, P=O, B-O, C-F) On

A Metal Geometry Override… button at the bottom opens the same table described below.


4. PMEFF Metal Geometry Override window

A modeless window (also reachable directly from 3D Edit ▸ PMEFF Metal Geometry Override...) with:

  • A "Show metals only" checkbox (checked by default).
  • A table: Atom ID / Element / Neighbors / Geometry, where Geometry is a per-row dropdown restricted to the options that fit the atom's neighbor count — Auto, Linear, Trigonal Planar, Square Planar, Tetrahedral, Trigonal Bipyramidal, Square Pyramidal, Octahedral.
  • Rows are color-coded: blue (unsaved change), green (applied), white (no override). Clicking an atom in the 3D view jumps to and highlights its row.
  • Buttons: Apply (stores the override without moving atoms), Apply and Optimize (stores it and immediately relaxes the structure), Clear All, Close.

5. Optimizer and diagnostics

The optimizer runs a FIRE 2.0 minimizer far from the minimum, handing off to an L-BFGS finisher near convergence, with analytical gradients throughout (including the dihedral and Coulomb terms). It uses an O(N) cell-list pair search with a Verlet list (rebuilt when any atom drifts past half the list skin), a 12 Å van der Waals cutoff with a CHARMM-style switching function over the last 2 Å, and a per-atom displacement clamp (default 0.20 Å per step) to keep FIRE stable on badly strained starting geometries.

  • PMEFF Single-Point Energy (Analysis menu) reports a 9-term energy decomposition (bond/angle/torsion/out-of-plane/vdW/electrostatic/H-bond/dispersion/total) without moving any atoms.
  • PMEFF Minimum Check (Vibrational) (Analysis menu) computes a finite-difference Hessian over the analytical gradient and runs a unit-mass normal-mode analysis, reporting the number of imaginary and zero modes and whether the structure is a genuine minimum. The reported frequencies are for classifying stationary points only — they are not in cm⁻¹ and are not a substitute for a real vibrational analysis from ORCA/Gaussian/PySCF.

6. Typical workflow

  1. Draw or load a rough 3D structure, especially one with unusual metal coordination.
  2. If needed, open PMEFF Metal Geometry Override... to set the correct coordination geometry for ambiguous metal centers before optimizing.
  3. Select "PMEFF (v1.4.0)" as the Optimize 3D method and run it.
  4. Run PMEFF Minimum Check (Vibrational) to confirm there are no imaginary modes.
  5. Optionally run PMEFF Single-Point Energy for a term-by-term energy breakdown.
  6. Hand the cleaned-up geometry to the ORCA, PySCF, or Gaussian plugins for a real DFT calculation.

7. See also


This page documents PMEFF v1.4.0, and was written on 2026-08-05. See REGISTRY/plugins.json for the current version.

Clone this wiki locally