-
-
Notifications
You must be signed in to change notification settings - Fork 1
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 |
| Version | 1.4.0 |
| 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.
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).
- 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.
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.
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.
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 (
Analysismenu) 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) (
Analysismenu) 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.
- Draw or load a rough 3D structure, especially one with unusual metal coordination.
- If needed, open PMEFF Metal Geometry Override... to set the correct coordination geometry for ambiguous metal centers before optimizing.
- Select "PMEFF (v1.4.0)" as the Optimize 3D method and run it.
- Run PMEFF Minimum Check (Vibrational) to confirm there are no imaginary modes.
- Optionally run PMEFF Single-Point Energy for a term-by-term energy breakdown.
- Hand the cleaned-up geometry to the ORCA, PySCF, or Gaussian plugins for a real DFT calculation.
- Official Plugins — the full plugin catalogue
- Tips for force-field selection in 3D optimization