Program MAKPOL

(This program is not a function within MOPAC, instead it is a utility program for building data sets for infinite systems.  A copy of the MAKPOL executable for use on WINDOWS systems is available.)

Construction of data sets for multiple unit cells is tedious. By automating this process, only the fundamental unit cell need be specified, the other unit cells being generated by translation. In addition, since the geometry of all fundamental unit cells in a polymer are identical, symmetry conditions can be imposed on each unit cell. This has two advantages: first, the calculation runs significantly faster, and second, periodic boundary conditions are imposed not only on the whole cluster, but also on each fundamental unit cell.

A data set for MAKPOL is similar to a data set for MOPAC. It consists of one or more lines of keywords, followed by comments (if needed), then a geometry in Cartesian or internal coordinates. The name of the input data set should be of form 'make_$<!$filename$.dat', in which case the resulting data set will be '$<!$filename$.mop'.

MAKPOL uses the unit cell supplied by the user to generate all the unit cells used in the cluster unit cells.  The number of unit cells in the cluster is determined by the keyword MERS(n3,n2,n1). If the system is a layer structure then "n3," is omitted. If the system is a polymer, then "n3,n2," is omitted. The order in which cells are generated is as follows: Cell(0,0,0), Cell(0,0,1), Cell(0,0,2), ...Cell(0,0,N1-1), Cell(0,1,0), Cell(0,1,1), ...Cell(0,N2-1,N1-1), Cell(1,0,0), ...Cell(N3-1,N2-1,N1-1).

See Description of BZ for more information on the values of n1, n2, and n3. and MERS for how to construct a data set for use by BZ

The geometry of the extended system is first calculated in Cartesian coordinates. There are two ways the atoms can be arranged. The default order is as follows: all atoms in the first unit cell, all atoms in the second unit cell, etc. An alternative is to have atom one in all the unit cells then atom two in all unit cells, then atom three, etc. The choice of which order to use depends on the purpose for which the cluster data set will be used.

The whole system is then converted into internal coordinates if INT is present, and the translation vectors added. If wanted, symmetry conditions can be imposed - this is useful when the geometry is to be optimized.

How to use MAKPOL

From a Materials Studio ".car" file

The normal starting point is 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. 

To use the CSD

(A) Using ConQuest, find the crystal you're interested in, then open the structure using Mercury.  Using the Calculate tool, build a 2 by 2 by 2 cluster, then save the structure in a format your GUI can use.  For an example, see: GLUCSA.ent

To use the ICSD

(A) Search the ICSD for the system you want, then build a 2 by 2 by 2 supercell.  Save the file in a form that can be opened by your GUI.

For both the CSD and the ICSD

(A) Open the structure with a GUI, and locate the first atom.  Then find the three atoms that atom 1 moves to under each of the three translations.  This operation requires skill.  If you're just starting then use a simple solid first, e.g., sulfuric acid hydrate, calcium iodide, aspirin or sodium acetate.  Until you have experience working with solids, only use solids where there is no disorder, and most important, if the formula includes hydrogen atoms, then only select structures where all hydrogen atoms are present.  Edit the structure to change these three atoms to Np. (Most programs that work with solids do not allow Tv to be used, so for convenience the three translated atoms are temporarily changed to Np, an element that does not often occur in crystals.)  Identifying the three atoms that are to be changed to Np is a frequent source of errors, so check that the distances from atom 1 to each of the three atoms is the same as that of the "Cell Lengths" reported in Mercury.  Also, if there is any doubt, check that the angles Tv-(atom 1)-Tv is the same as the "Cell Angles" reported in the CSD or ICSD.  For CSD entry GLUCSA, the three cell lengths are 10.36, 14.84, and 4.97 Ångstroms.  Save the resulting structure in a form that could easily be edited to make a  MOPAC data set, i.e., save the structure in Cartesian coordinates or in internal coordinates.

  For GLUCSA, see First MOPAC data set.

(B) If the file is not in a form that MOPAC can use, then edit the file so that it could be run by MOPAC. Re-name the file to the form "make_<file>.dat"  This form is very specific.  The "make_" indicates to Makpol that the file is "raw", and the ".dat" is used to avoid the possibility of  the file being over-written when Makpol creates a ".mop" file. The file name <file> can, in addition to all alphanumeric symbols, include any of the following symbols: open parenthesis: "(", close parenthesis:  ")" , single quote: "'", hyphen: "-", or a comma: ",".  It cannot contain a space, i.e., the symbol " " is not allowed, instead use "_" in place of " ". Also, the double-quote symbol """ is not allowed - use two single-quote symbols, i.e., "''" instead. For glucose, this would give a file called Make_GLUCSA.dat.  Edit this data set to add the keyword "MERS=(1,1,1)"  and on the second line add the name of the system. 

(C)  At the command prompt, open the data set using Makpol.  The command should be of the form MAKPOL.exe NAASET01.  If the file name contains a symbol that might indicates the end of  a word, e.g., a single quote, then enclose the whole file name in double quotes, e.g.,  MAKPOL.exe "4,4'-bis(2-Thienylvinyl)biphenyl_(ARIFIR)" Note that although the file has "make_" and ".dat" in its name these are not used in the command.  Running Makpol will then generate a data-set that could be used by MOPAC. 

(D) Examine the resulting data set .  If the data set has any Tv less than ~9 Ångstroms long, edit the keyword MERS=(1,1,1) at the top of the data set.  If the translation vectors are 2.0, 3.1, and 6.5, respectively, edit MERS to be MERS=(5,3,2).  If in doubt as to the multiplier, use the larger of the options. If MERS has been edited, copy the keyword line and paste it into the make_<file>.dat file. Go back to (C).

For glucose, the resulting file is GLUCSA.mop. Examination of this file shows that the first translation vector is too short, so the MERS keyword is edited to give MERS=(2,1,1). Two extra keywords are provided: PL and GNORM=4.  These are useful in solid state work.  The keywords line is then inserted into the original Make_GLUCSA.dat file to give a new file with the same name.

(E) If the data set has been edited, re-run Makpol, e.g., run MAKPOL.exe "4,4'-bis(2-Thienylvinyl)biphenyl_(ARIFIR)" again.  This will over-write the ".mop" file that was created earlier. For glucose, this gives a new GLUCSA.mop

(F) Edit the resulting <file>.mop to add options specific to the system. 

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.
INT
Convert the geometry generated by MAKPOL into internal coordinates; useful mainly for high-symmetry systems.
LET
Use this keyword when the resulting data set is to be used for band structure, i.e., Brillouin zone work.  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. 

When LET is present, only the atoms that make up the unit cell should be present.  The unit cell must also be stoichiometric, that is, there must be an exact integer multiple of the formula present.  For example, TiO2 in the rutile structure has a unit cell with one titanium atom at a vertex and one at the center of the tetragonal unit cell.  There must also be four oxygen atoms, two inside the unit cell and two on the surface of the unit cell. An easy way to do this is to run the data set, i.e., make_<file>.dat using Makpol, and use the resulting ".mop" file to make the new Make_<file>.dat
 
MERS=(n3,n2,n1)
The number of unit cells in each direction is defined by n3, n2, and n1. The total number of unit cells generated will be n3.n2.n1, or, if BCC is used, (n3.n2.n1)/2.
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.
ZERO
When cif files are used, the positions of atom 1 after translation are easy to find.  These would be used in MAKPOL to define the translation vectors.  Tv(1), for example, would be the difference in coordinates of the first Np and atom 1.  When cif files are not used, but instead the translation vectors are provided, then these translation vectors can be used in MAKPOL directly, however, now the coordinates of atom 1 must not be used, because these vectors are, by definition, correct.  When translation vectors are supplied, add MAKPOL keyword ZERO to the data-set, this suppresses the calculation of the Tv that would be done when cif files are used.
For examples for Brillouin-zone work see Program BZ.