Program MAKPOL

(This program is not a function within MOPAC, instead it is a utility program for building data sets for polymers, layer systems, and solids.  MAKPOL was extensively rewritten in January, 2018.  A copy of the MAKPOL executable for use on WINDOWS systems is available for download.)

MAKPOL can convert a file in PDB or ENT format into a MOPAC data-set.  These files have exactly the same format, so in principle either suffix could be used.  However, since MOPAC can generate files that have the PDB suffix, it's better to use files with the suffix .ENT with MAKPOL; there is less chance that ENT files would be accidentally over-written.   ENT files can either be created by the user or generated from a CIF file.  Two good sources are the Cambridge Structural Database, the CSD, for organic solids, and the Inorganic Crystal Structure Database, the ICSD, for inorganic solids. 

Installing MAKPOL

Download the MAKPOL executable and extract the files in the ZIP file to a convenient place, for example to Users/yourname/MAKPOL.  Then place a shortcut on the desktop.  To do this, copy the MOPAC executable and paste a shortcut on the desktop.  Then drag-and drop any of the examples in the ZIP file onto the shortcut.  The job will run very fast - most systems will run in less than one second.

Using MAKPOL

Starting with a PDB or ENT file

Files in PDB format normally include data on the unit cell.  These data can be seen in the line that starts with the letters "CRYST1" 

To prevent accidental over-writing of the input file, if the file's suffix is PDB re-name the suffix to ENT.  Then "drag-and-drop" the ENT file onto the MAKPOL shortcut icon.  The job should run in about a second, and produce two files.  These will be named <file>.mop and Make_<file>.dat.  <file>.mop is an ordinary MOPAC data-set.  If any changes need to be made to the cluster in <file>.mop, the easiest way to make these changes is to edit Make_<file>.dat and then run Make_<file>.dat using MAKPOL.  That will over-write <file>.mop. 

Because files in PDB format do not contain MOPAC keywords, a mechanism exists that allows MOPAC keywords to be added, see below.

Starting with a MOPAC-type file

Any file in MOPAC format (keywords - title - comment - geometry) that has enough information to allow the translation vectors to be generated can be used with MAKPOL.  Suitable names for data-sets in MOPAC format are <file>.dat and Make_<file>.dat, although almost any other name could be used.  Avoid a name that is the same as the file-name created by MAKPOL, i.e., avoid <file>.mop.

When MAKPOL is run, it will create a file Make_<file>.dat, if that file does not already exist.  This file is in MOPAC format, and can be edited as necessary, and then used as a data-set for MAKPOL.  That allows changes to be made easier than if the changes had to be made to the original data-set.

Keywords used by MAKPOL

Any of the keywords used by MOPAC can be used in a MAKPOL data set, but, only a few keywords will be used by MAKPOL; the rest will be ignored. Keywords that are used in MAKPOL are given below.

BCC
When BCC is added all odd unit cells are omitted. An odd unit cell is one for which the addition of the cell indices results in an odd number, thus (0,0,0) and (1,1,0) would be allowed, but (1,1,1) and (2,1,0) would not. Diamond is an example of where keyword BCC would be used.
CELL
When CELL is present, the unit cell parameters are read in.  The format of this keyword is CELL(a b c alpha beta gamma) where a b c alpha beta and gamma are the conventional unit cell parameters in Ångstroms and degrees, for example
CELL(13.7005 6.05090 15.17890 90 103.1550, 90)
Separators can be spaces, commas, or semicolons. CELL is useful when CIF files are used.  Although a CIF file contains the unit cell parameters, these parameters are usually deleted when the CIF file is converted into Cartesian coordinates.  This keyword provides MAKPOL with the information needed for generating a MOPAC data-set. This keyword is deleted by MAKPOL before the MOPAC data-set is generated.
INT
Convert the geometry generated by MAKPOL into internal coordinates.  This is useful mainly for high-symmetry systems. Avoid using INT for biochemical or other low-symmetry systems, there is an increased possibility that the internal-coordinate geometry will have faults caused by angles that accidentally are near to "magic" angles, for example an angle near to 0.0 or 180.0 degrees could make the dihedral angle unpredictable. Do NOT attempt to make a large unit cell, e.g. MER=(2,2,2), then reduce that cell using MERS=(1,1,1).  Such an operation has a much increased possibility of geometric errors - use Cartesian coordinates, and when the system looks good, convert it to internal coordinates, if necessary.
This keyword is deleted by MAKPOL before the MOPAC data-set is generated.
LET
  Buggy! Do not use!
The default, when LET is not present, is to re-arrange the atoms so as to make entire molecules, if possible. This step is not done when LET is present.
This keyword is deleted by MAKPOL before the MOPAC data-set is generated. 
 
MERS=(n3,n2,n1)
The number of unit cells in each direction is defined by n3, n2, and n1.  For Brillouin zone work the number of unit cells in each direction must be odd and larger than 2, so the smallest allowed value for a solid is MERS=(3,3,3).The total number of unit cells generated will be n3.n2.n1, or, if BCC is used, (n3.n2.n1)/2.  If the supplied data-set is a multiple of the repeat unit cell, then that will be automatically recognized and the repeat unit cell will be used as the starting point.  For example, if MERS=(2,2,10) is used, and the supplied cluster consists of 10 unit cells in the first direction, 2 in the second, and 2 in the third, then the resulting cluster will consist of 2 unit cells in the first direction, 2 in the second, and 10 in the third.  In the event that the repeat unit cell cannot be recognized, a warning message will be printed.  In such a case, use MERS=(x.xx, y.yy,z.zz) where x.xx, y.yy, and z.zz are the reciprocal number of unit cells in the supplied data set.  So, if the supplied data-set consists of 2 unit cells in the first direction, 3 in the second, and 5 in the third, then MERS=(0.5,0.333,0.2) would generate a MOPAC data set for one repeat unit.
 
SYMMETRY
This keyword has two distinct functions. When SYMMETRY is specified, then any symmetry data present in the input data set will be used. This is useful for reducing the number of variables that need to be changed on going from one system to another (for example, on going from diamond to cubic boron nitride). If no symmetry data are present, then this function will not be used.
The second function of SYMMETRY is to impose symmetry conditions on the resulting cluster data set. Only four symmetry conditions are recognized: bond-lengths that are equal, bond angles that are equal, equal dihedral angles, and dihedral angles that are the negative of reference dihedrals.
For high symmetry systems, the cluster data set should be edited to increase the symmetry. For example, in diamond, all angles and dihedrals are symmetry defined, so all the optimization flags for these variables should be set to zero, and all symmetry functions involving angles and dihedrals should be deleted. In addition, all "bond lengths" in diamond are simple multiples of the fundamental C-C distance, so symmetry function 19 should be added. If this is done correctly, then only one geometric variable will be left.
TV
A rarely-used keyword. When present, this keyword prevents the translation vector lengths from being changed.  An example of where this is needed is in the graphite system, see the example "Graphite (3,5,5) for MAKPOL.dat", where atom 2 is half way between atom 1 (the origin of the coordinate system) and the first translation vector.  Without TV, MAKPOL would automatically reduce the length of the first translation vector by 50%.
This keyword is deleted by MAKPOL before the MOPAC data-set is generated.
TV=(x.xx, y.yy, z.zz)
Another rarely-used keyword.  If present, this keyword defines the primitive translation vector lengths to be used when the translation vectors are not available.  An example would be if a crystal lattice existed, but there is no information on the translation vectors.  In such a case, use a graphical user interface to measure the distances from atom 1 to its equivalent position in the next unit cell, in each direction.  Use these data for the quantities x.xx, y.yy, z.zz.  The translation vectors will then be generated when the job is run using MAKPOL.
This keyword is deleted by MAKPOL before the MOPAC data-set is generated.  
For examples for Brillouin-zone work see Program BZ.


Keywords for use in MOPAC

It is often convenient to have a set of keywords in the <file>.mop file generated by MAKPOL, that are intended for use in a MOPAC job.  To allow this, a second data-set file, named "keywords for MAKPOL.txt" can be used by MAKPOL.  This file should contain all the keywords that the resulting MOPAC data-set should contain.  This file can be empty or it can hold commonly-used MOPAC keywords, such as "0SCF HTML" Avoid having MAKPOL keywords in this file - it's easy to forget that they're present and can cause confusion when selecting MAKPOL keywords.