Problem
The OpenMM engine hardcodes all particle charges to 0.0. In the HARMONIC path, NonbondedForce.addParticle(0.0, sigma, epsilon) explicitly sets charge=0. In the MM3 path, CustomNonbondedForce has no charge parameter at all.
The ForceField model has no concept of partial charges — there is no ChargeParam or per-atom charge field. The AMBER frcmod loader doesn't parse charges either (charges typically come from the prmtop/mol2 file, not frcmod).
Impact
- Electrostatic interactions contribute significantly to conformational energies, hydrogen bonding, and solvation
- For small organic molecules, electrostatics can be 30-50% of the total nonbonded energy
- Force field fitting without electrostatics produces parameters that implicitly absorb electrostatic effects into vdW terms, leading to poor transferability
- Users coming from AMBER/CHARMM expect electrostatics to be present
Expected Behavior
ForceField or Q2MMMolecule should store per-atom partial charges
- Charges could come from: AMBER prmtop files, mol2 files, AM1-BCC calculation, or user specification
NonbondedForce in HARMONIC mode should use actual charges with Coulomb interactions
- MM3 mode should support MM3's charge model (bond dipoles or partial charges)
- 1-4 electrostatic scaling (AMBER scee=1.2) should be applied
Scope Consideration
This is a larger feature than the other gaps because it requires:
- A charge storage mechanism (per-atom, not per-parameter-type)
- A charge source (parser, calculator, or user input)
- Proper 1-4 electrostatic scaling
- Possibly a dielectric constant option
It may make sense to implement this in phases — first read-only charges from prmtop, then optimizable charges.
Problem
The OpenMM engine hardcodes all particle charges to 0.0. In the HARMONIC path,
NonbondedForce.addParticle(0.0, sigma, epsilon)explicitly sets charge=0. In the MM3 path,CustomNonbondedForcehas no charge parameter at all.The
ForceFieldmodel has no concept of partial charges — there is noChargeParamor per-atom charge field. The AMBER frcmod loader doesn't parse charges either (charges typically come from the prmtop/mol2 file, not frcmod).Impact
Expected Behavior
ForceFieldorQ2MMMoleculeshould store per-atom partial chargesNonbondedForcein HARMONIC mode should use actual charges with Coulomb interactionsScope Consideration
This is a larger feature than the other gaps because it requires:
It may make sense to implement this in phases — first read-only charges from prmtop, then optimizable charges.