Confusion about -DNORMANG in define field of MDP file, where is this flag defined?

Hello everyone,

I am running an energy-minimisation step for a lipid bilayer system that I generated using CHARMM-GUI. In the generated em.mdp file, the following line appears:

define = -DFLEXIBLE -DNORMANG

I understand what -DFLEXIBLE does, but I am not able to find any reference to -DNORMANG in the topology produced by CHARMM-GUI. I have checked:

  • all lipid .itp files

  • the topol.top file

  • force-field parameter files

-but I cannot find any #ifdef NORMANG blocks or any mention of this directive.

My questions are:

  1. Where is -DNORMANG normally defined, and what is its purpose?

  2. Is this something required by the CHARMM36 force field or CHARMM-GUI?

  3. If the directive does nothing (because no conditional blocks use it), is it safe to remove it from my .mdp file?

I would appreciate guidance on whether this is expected behavior from CHARMM-GUI and how GROMACS interprets this flag during energy minimization.

Thank you!

Hello @ip919

My understanding is that GROMACS compilation with grompp should fail if there are some defined keywords that the compiler cannot find, something like

WARNING 1 [file topol.top, line 29]:
  The following macros were defined in the 'define' mdp field with the -D
  prefix, but were not used in the topology:
      NORMANG

So if you are able to compile tpr files, that means that NORMANG has to be defined somewhere. I would grep it from the force field files, like

grep "NORMANG" *

inside the force field directory to see where the keyword is actually used.

Thankyou for the suggestion, it’s working now.