Skip to content

GROMACS: MINFF mineral force field (structure → atom types/charges → MD) #241

Open

Description

@ohlincha

Goal

Support the MINFF force field for minerals in ECCE's GROMACS workflow: clay minerals, oxides, hydroxides and zeolites, with Si, Al, Fe, Mg, Ca, Ti, Li and F. A user should be able to take a mineral unit cell, build a simulation cell from it, have MINFF atom types and charges assigned, and run energy minimisation, equilibration and dynamics, all from ECCE.

This builds on GROMACS activation via the MD workflow (#106, in progress on wip/gromacs-md).

What MINFF consists of

  • Parameters as a GROMACS force-field directory (min.ff):

    • a general set (GMINFF) and mineral-specific sets (TMINFF, over 30 minerals);
    • each set in four angle force constants (0, 250, 500 and 1500 kJ/mol/rad²);
    • oxygen Lennard-Jones parameters taken from the OPC3 water model by default.
  • Atom-type and charge assignment, which is structure-dependent:

    • types come from nearest neighbours;
    • oxygen charges are computed per system (charge smearing after Lammers et al. 2017), e.g. around isomorphic substitutions and edge groups.

    This is implemented in atomipy (Python, PyPI, MIT licence) and in the MATLAB/Octave atom library. ECCE therefore has to run the assignment rather than only ship parameter files.

  • Example systems (unit cells, conf.mdp, topol.top) in the minff repository.

Proposed workflow in ECCE

  1. Structure:
    • import a mineral unit cell (.pdb, .gro, CIF), with the cell vectors;
    • replicate it to a supercell (n_a × n_b × n_c);
    • optionally substitute atoms with a minimum separation (e.g. Al→Mg), as atomipy does.
  2. Force-field choice:
    • general or mineral-specific MINFF (mineral list taken from min.ff);
    • angle force constant;
    • water model.
  3. Assignment:
    • ECCE runs atomipy;
    • it writes the mineral .itp, the .gro and a topol.top that includes min.ff;
    • it reports the total charge and any atoms left untyped.
  4. Show the result:
    • atoms coloured by MINFF type;
    • charges available as a property.
  5. Simulation with the GROMACS MD tasks (GROMACS: the scope decision that gates the rest (topology and force field) #106): EM → NVT/NPT → MD, with .mdp presets derived from the minff example conf.mdp.
  6. Later:

Design rules

  • The topology builder is a wx-free component with a command-line entry point and tests. The ECCE windows only collect the choices and display results.
  • Tests: kaolinite and montmorillonite from the minff Systems folder are built with ECCE's builder. They are checked against topologies produced by atomipy run directly (atom types, charges, total charge), and then go through grompp and a short EM with real GROMACS.
  • Parameter files: min.ff is fetched from the minff repository at build/test time and not copied into this repository. It can be bundled once the minff repository carries a licence.
  • Platforms: Linux and macOS (Homebrew gromacs).

Open questions for GROMACS/MINFF users

  • Which minerals and systems should come first?
  • Is the general set with k = 500 the right default?
  • Should ECCE offer CLAYFF (also supported by atomipy) alongside MINFF?
  • Which .mdp settings should the presets use: cut-offs, PME, thermostat/barostat, semi-isotropic pressure coupling for clay layers?

Activity

  1. ohlincha commented on Oct 8, 2026

    @ohlincha
    CollaboratorAuthor

    Step 1 builder pushed on wip/minff (4afdca7, not merged): scripts/minff_topology.py build|minerals|fetch, tests tests/minff/run_tests.py (ctest minff), docs in docs/GROMACS.md. Kaolinite (GMINFF k500), montmorillonite (TMINFF) and Al->Mg pyrophyllite: types/charges equal atomipy run directly (montmorillonite also the authors' MATLAB min27.itp); grompp + 200-step EM finite and decreasing. Needs periodic-molecules = yes in the mdp; TMINFF needs a restricted ffbonded (see docs).

  2. ohlincha commented on Oct 15, 2026

    @ohlincha
    CollaboratorAuthor

    GROMACS Prepare plan (Andy, 2026-10-15):

    1. Proteins first. gmx pdb2gmx with GROMACS's own force fields, then editconf, solvate and genion, as a Prepare task at the head of a GROMACS study. Nothing extra to install.
    2. MINFF. atomipy (MIT, PyPI only) is shipped inside ECCE, so users install nothing.
    3. Small organic molecules. GAFF via conda AmberTools + acpype (conda create -n ambertools -c conda-forge ambertools acpype). Neither is in Debian; users will install them this way, so we test with it too. Paths go on the GROMACS code entry in Register Machines.
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