mmp file format (Alpha)

An mmp file consists of a molecular machine part (MMP) with a sequence of molecules. The simulator will check for van der Waals interactions between atoms of different molecules, but not within a given molecule. If such interactions are expected within the same molecule, the "waals" record can be used.

The file is a nested tree structure where each node begins with a group record and ends with an egroup record.

Each molecule is a mol record followed by atom and bond records. The bonds must be back-references, i.e. if atom1 and atom2 are bonded, atom1 will have no bond record, while atom2 will have a record pointing back to atom1.

MMP files begin with a group containing a csys record, followed by standard datum plane objects (XY, YZ and XZ). Then is a group containing the rest of the part. This is followed by an end1 record. The final section of the MMP file is a group that can include cut/paste objects. The intent of this section of the file is to support cut/paste when the user cuts a selection, then immediately saves the file. The final record in the MMP file is the end record.

Record types

Note parentheses and commas are required. Braces are metacomments.


mol (name) mode

Begins a new molecule. Applies to all atoms until the next mol record, where:


atom n (e) (x, y, z) mode

Creates a new atom, where:


bond1 atom1 atom2 ... atom25 {up to 25}

Bonds the last-definted atom to the indicated atoms.

Note: The intent in calling this bond record bond1 is that we intend to support bond2, bond3, and bond4 for double, triple, and aromatic bonds.


waals atom1 atom2 ... atom25 {up to 25}

Indicates van der Waals interaction to be simulated between indicated and last-defined atoms (NB vdW interactions are automatically simulated between atoms of different molecules)


ground (name) (r, g, b) atom1 atom2 ... atom25 {up to 25}

Creates a ground object in which atoms are anchored in space, where:


lmotor (name) (r, g, b) force stiffness (cx, cy, cz) (ax, ay, az)

Creates a linear motor, where:

shaft atom1 atom2 ... atom25 {up to 25}

Atoms to which the linear motor is connected (shaft must follow lmotor immediately)


rmotor (name) (r, g, b) torque speed (cx, cy, cz) (ax, ay, az)

Creates a rotary motor, where:

shaft atom1 atom2 ... atom25 {up to 25}

Atoms to which the rotary motor is connected (shaft must follow rmotor immediately)


kelvin n

The temperature of the part, where:


csys (name) (w, x, y, z) (zoom)

The coordsystem record, which contains default property settings for the part, where:

There can only be one csys record per part (file).


datum (name) (r, g, b) type (x1, y1, z1) (x2, y2, z2) (x3, y3, z3)

Creates a datum (point, line or plane) object, where:

All three points are given for each datum type.


group (name)

egroup (name)

Creates/begins (group) and ends (egroup) a group object, where:

These records enclose a list of other objects or groups. The names should match for checking purposes but do not have to be unique.


stat (name) (r, g, b) temp atom1 atom2 ... atom25 {up to 25}

Creates a thermostat jig that specifies the temperature of the listed atoms, where:


end1

Logical end of file for simulator; objects that follow are for cut/paste


end

Logical end of file


Planned for Beta


Planned for Gamma or Future releases