{str,lstr,(nra),(nrpa),(nrpb),IF_CONSTRAINT | IF_CHEMBOND,-1, unimplemented} #define def_nb(str,lstr,nra, nrp)\ {str,lstr,(nra), (nrp), 0,IF_NULL, -1,unimplemented} #define def_nofc(str,lstr)\ {str,lstr, 0, 0, 0,IF_NULL, -1,unimplemented} /* this MUST correspond to the enum in include/types/idef.h */ const t_interaction_function interaction_function[F_NRE]= { def_bond ("BONDS", "Bond", 2, 2, 2, eNR_BONDS, bonds ), def_bond ("G96BONDS", "G96Bond", 2, 2, 2, eNR_BONDS, g96bonds ), def_bond ("MORSE", "Morse", 2, 3, 0, eNR_MORSE, morse_bonds ), def_bond ("CUBICBONDS","Cubic Bonds", 2, 3, 0, eNR_CUBICBONDS, cubic_bonds), def_bondnb ("CONNBONDS","Connect Bonds", 2, 0, 0, 0, unimplemented ), def_bonded ("HARMONIC", "Harmonic Pot.", 2, 2, 2, eNR_BONDS, bonds ), def_bondnb ("FENEBONDS", "FENE Bonds", 2, 2, 0, eNR_FENEBONDS, FENE_bonds ), def_bondt ("TABBONDS", "Tab. Bonds", 2, 2, 2, eNR_TABBONDS, tab_bonds ), def_bondedtz("TABBONDSNC", "Tab. Bonds NC", 2, 2, 2, eNR_TABBONDS, tab_bonds ), def_bonded ("RESTRAINTPOT", "Restraint Pot.", 2, 4, 4, eNR_RESTRBONDS, restraint_bonds ), def_angle ("ANGLES", "Angle", 3, 2, 2, eNR_ANGLES, angles ), def_angle ("G96ANGLES","G96Angle", 3, 2, 2, eNR_ANGLES, g96angles ), def_bonded ("CROSS_BOND_BOND", "Bond-Cross", 3, 3, 0,0, cross_bond_bond ), def_bonded ("CROSS_BOND_ANGLE","BA-Cross", 3, 4, 0,0, cross_bond_angle ), def_angle ("UREY_BRADLEY","U-B", 3, 4, 0, 0, urey_bradley ), def_angle ("QANGLES","Quartic Angles", 3, 6, 0, eNR_QANGLES, quartic_angles ), def_bondedt ("TABANGLES", "Tab. Angles", 3, 2, 2, eNR_TABANGLES, tab_angles ), def_bonded ("PDIHS", "Proper Dih.", 4, 3, 3, eNR_PROPER, pdihs ), def_bonded ("RBDIHS", "Ryckaert-Bell.", 4, 6, 6, eNR_RB, rbdihs ), def_bonded ("FOURDIHS", "Fourier Dih.", 4, 4, 4, eNR_FOURDIH, rbdihs ),
{str, lstr, (nra), (nrpa), (nrpb), IF_CONSTRAINT | IF_CHEMBOND, -1, unimplemented} #define def_nb(str, lstr, nra, nrp) \ {str, lstr, (nra), (nrp), 0, IF_NULL, -1, unimplemented} #define def_nofc(str, lstr) \ {str, lstr, 0, 0, 0, IF_NULL, -1, unimplemented} /* this MUST correspond to the enum in src/gromacs/topology/idef.h */ const t_interaction_function interaction_function[F_NRE] = { def_bond ("BONDS", "Bond", 2, 2, 2, eNR_BONDS, bonds ), def_bond ("G96BONDS", "G96Bond", 2, 2, 2, eNR_BONDS, g96bonds ), def_bond ("MORSE", "Morse", 2, 3, 3, eNR_MORSE, morse_bonds ), def_bond ("CUBICBONDS", "Cubic Bonds", 2, 3, 0, eNR_CUBICBONDS, cubic_bonds), def_bondnb ("CONNBONDS", "Connect Bonds", 2, 0, 0, 0, unimplemented ), def_bonded ("HARMONIC", "Harmonic Pot.", 2, 2, 2, eNR_BONDS, bonds ), def_bondnb ("FENEBONDS", "FENE Bonds", 2, 2, 0, eNR_FENEBONDS, FENE_bonds ), def_bondt ("TABBONDS", "Tab. Bonds", 2, 2, 2, eNR_TABBONDS, tab_bonds ), def_bondedtz("TABBONDSNC", "Tab. Bonds NC", 2, 2, 2, eNR_TABBONDS, tab_bonds ), def_bonded ("RESTRAINTPOT", "Restraint Pot.", 2, 4, 4, eNR_RESTRBONDS, restraint_bonds ), def_angle ("ANGLES", "Angle", 3, 2, 2, eNR_ANGLES, angles ), def_angle ("G96ANGLES", "G96Angle", 3, 2, 2, eNR_ANGLES, g96angles ), def_angle ("RESTRANGLES", "Restricted Angles", 3, 2, 2, eNR_ANGLES, restrangles), def_angle ("LINEAR_ANGLES", "Lin. Angle", 3, 2, 2, eNR_LINEAR_ANGLES, linear_angles ), def_bonded ("CROSS_BOND_BOND", "Bond-Cross", 3, 3, 0, 0, cross_bond_bond ), def_bonded ("CROSS_BOND_ANGLE", "BA-Cross", 3, 4, 0, 0, cross_bond_angle ), def_angle ("UREY_BRADLEY", "U-B", 3, 4, 4, 0, urey_bradley ), def_angle ("QANGLES", "Quartic Angles", 3, 6, 0, eNR_QANGLES, quartic_angles ), def_bondedt ("TABANGLES", "Tab. Angles", 3, 2, 2, eNR_TABANGLES, tab_angles ), def_bonded ("PDIHS", "Proper Dih.", 4, 3, 3, eNR_PROPER, pdihs ),