[MMTK] Rigid Bodies

Konrad Hinsen hinsen@cnrs-orleans.fr
Tue, 12 Jun 2001 14:52:56 +0200

> to define a rigid body. I defined benzene molecule in
> the database and there is no problem with the Amber94 ForceField
> considering bond stretching, angles, etc... but how to define benzene
> as a rigid entity?

For the moment, the only way to construct rigid bodies is via pair
distance constraints. That is, you have to find a set of pair distance
constraints that do not leave any internal coordinate unconstrained.
For up to four atoms, that means distance constraints between all
pairs of atoms, for larger groups redundant constraints must be

You could try the following (untested) routine:

def makeRigid(object):
   atoms = object.atomList()
   if len(atoms) > 1:
      object.addDistanceConstraint(atoms[0], atoms[1])
   if len(atoms) > 2:
      object.addDistanceConstraint(atoms[1], atoms[2])
      object.addDistanceConstraint(atoms[0], atoms[2])
   if len(atoms) > 3:
      for atom in atoms[3:]:
         object.addDistanceConstraint(atom, atoms[0])
         object.addDistanceConstraint(atom, atoms[1])
         object.addDistanceConstraint(atom, atoms[2])

Then do something like "makeRigid(benzene)" and run your MD.

Konrad Hinsen                            | E-Mail: hinsen@cnrs-orleans.fr
Centre de Biophysique Moleculaire (CNRS) | Tel.: +33-
Rue Charles Sadron                       | Fax:  +33-
45071 Orleans Cedex 2                    | Deutsch/Esperanto/English/
France                                   | Nederlands/Francais