Preparing SYSMO input files is fairly simple. First of all, one has to consider that SYSMO programs must be used in some sequence depending on which kind of results are wanted. Then, each SYSMO programs has its own separate input. Within the distribution there is a utility to help preparing the SYSMO input file. The name of the utility is MOMO and can be used on the command line as
prompt> MOMO some_file.ext
where ’ext’ can be one of the following:
in this case some_file must contain a free-format list of Cartesian coordinates in atomic units, one atom per line beginning with the chemical symbol followed by the values;
the same as for xyz with Cartesian coordinates in Angstrom;
some_file is the formatted check point file from a Gaussian calculation (G09 and G16 are supported).
To try it, go to the benzene folder and type
prompt> MOMO benzene.fchk
the following should appear on the screen
************* * M O M O * ************* Version 07/03/2020-17:16,Covid-19,fase-I BENZENE D6H GEO OPT B3LYP 6-31G* RB3LYP 6-31G(D) 12 atoms plotted 12 bonds plotted Clar.............(Clar)= 0.00 TRIANGULATION.....(tri)= F BOND ORDERS........(bo)= F SYMBOLS...........(sym)= F CARTESIAN AXIS....(ass)= F SLATER............(sla)= F HYDROGENS.........(hyd)= T GHOST ATOMS.......(gho)= F BALL SCALE........(sca)= 0.30 AROMA BONDS.......(aro)=****** SYMMETRY..........(spg)= C1 COMMAND SHELL.....(shl)= bash CALCULATION TYPE..(cty)= CHF ENTER ’com’ FOR MORE COMMANDS
The MOMO program does many things, for the moment let us consider only the calculation type and symmetry. Calculation type can be changed typing
cty CHF
or
cty RPA
where CHF stands for Coupled Hartree-Fock and RPA for Random Phase Approximation, the default is CHF. To set the symmetry point group one has to type directly the name of the group in Schoenflies notation after the spg flag as
spg D6h
or just typing spg alone. This latter method works only if a gaussian log file is contained in the working folder with the same root-name of the fchk given above.
Also the commad shell can be changed by typing shl csh or shl bash.
For a current density calculation the cty must be set to CHF. Then, let us assume the following setting
Clar.............(Clar)= 0.00 TRIANGULATION.....(tri)= F BOND ORDERS........(bo)= F SYMBOLS...........(sym)= F CARTESIAN AXIS....(ass)= F SLATER............(sla)= F HYDROGENS.........(hyd)= T GHOST ATOMS.......(gho)= F BALL SCALE........(sca)= 0.30 AROMA BONDS.......(aro)=****** SYMMETRY..........(spg)= D6H COMMAND SHELL.....(shl)= bash CALCULATION TYPE..(cty)= CHF
Typing the command
write benzene.isy
and confirming y to write or overwrite, a file benzene.isy (isy standing for input sysmo) will be generated containing a bash script to perform SYSMO calculation of dipole electric and magnetic properties at the Coupled Hartree-Fock Pertubation theory (CHFPT) approximation. To exit from the MOMO program type q. Rigth now, a new file benzene.fchk.v3d should be present in the folder. Its content can be visualized using the command 4.8
prompt> v3d benzene.fchk.v3d
a graphic window should appear with the molecular model (use mouse to rotate, translate and magnify as usual).
To set the calculation to perform only electric or magnetic properties, some editing must be done. The benzene.isy file should contain something like that:
1 #!/bin/bash 2 mo230xl << next 3 BENZENE D6H GEO OPT B3LYP 6-31G* 4 5 D6H 6 C1 0.00000000E+00 2.63892871E+00 0.00000000E+00 7 S 6 8 3.04752488E+03 1.83473713E-03 9 4.57369518E+02 1.40373228E-02 10 1.03948685E+02 6.88426223E-02 11 2.92101553E+01 2.32184443E-01 12 9.28666296E+00 4.67941348E-01 13 3.16392696E+00 3.62311985E-01 14 S 3 15 7.86827235E+00 -1.19332420E-01 16 1.88128854E+00 -1.60854152E-01 17 5.44249258E-01 1.14345644E+00 18 P 3 19 7.86827235E+00 6.89990666E-02 20 1.88128854E+00 3.16423961E-01 21 5.44249258E-01 7.44308291E-01 22 S 1 23 1.68714478E-01 1.00000000E+00 24 P 1 25 1.68714478E-01 1.00000000E+00 26 D 1 27 8.00000000E-01 1.00000000E+00 28 C2 C1 2.28537930E+00 1.31946435E+00 -9.86076132E-32 29 C2 C1 2.28537930E+00 -1.31946435E+00 0.00000000E+00 30 C2 C1 -3.23175560E-16 -2.63892871E+00 2.31144182E-41 31 C2 C1 -2.28537930E+00 -1.31946435E+00 0.00000000E+00 32 C2 C1 -2.28537930E+00 1.31946435E+00 0.00000000E+00 33 H1 0.00000000E+00 4.69321902E+00 0.00000000E+00 34 S 3 35 1.87311370E+01 3.34946043E-02 36 2.82539436E+00 2.34726953E-01 37 6.40121692E-01 8.13757326E-01 38 S 1 39 1.61277759E-01 1.00000000E+00 40 H2 H1 4.06444689E+00 2.34660951E+00 0.00000000E+00 41 H2 H1 4.06444689E+00 -2.34660951E+00 0.00000000E+00 42 H2 H1 -5.74753565E-16 -4.69321902E+00 6.13364102E-41 43 H2 H1 -4.06444689E+00 -2.34660951E+00 0.00000000E+00 44 H2 H1 -4.06444689E+00 2.34660951E+00 0.00000000E+00 45 46 next 47 if [ $? == 0 ]; then 48 mo400xl << next 49 BENZENE D6H GEO OPT B3LYP 6-31G* 50 SODILI 1E-6 EOSCISTOP 50 51 gaumos benzene.fchk xyz 52 53 21 54 next 55 if [ $? == 0 ]; then 56 mo600xl << next 57 BENZENE D6H GEO OPT B3LYP 6-31G* 58 59 momento-di-dipolo salva 60 momento-lineare salva 61 momento-angolare salva 62 63 next 64 if [ $? == 0 ]; then 65 mo690xl << next 66 BENZENE D6H GEO OPT B3LYP 6-31G* 67 HFEXCHANGE x.xx 68 69 70 next 71 if [ $? == 0 ]; then 72 mo710xl << next 73 BENZENE D6H GEO OPT B3LYP 6-31G* 74 HFEXCHANGE 0.20 75 76 77 next 78 if [ $? == 0 ]; then 79 rm -f fort.4 fort.20 80 tar -a -cf benzene.tgz fort.* 81 rm -f fort.* 82 fi 83 fi 84 fi 85 fi 86 fi 87 exit
In order to have a script to perform only a magnetic perturbed calculation, lines from 64 to 70 must be deleted as well as line 82. Moreover, to force a calculation according to Route-1, lines 51 and 74 must be deleted too and the string DIIS must be added at the end of line 50. The benzene.isy file should now look as
1 #!/bin/bash 2 mo230xl << next 3 BENZENE D6H GEO OPT B3LYP 6-31G* 4 5 D6H 6 C1 0.00000000E+00 2.63892871E+00 0.00000000E+00 7 S 6 8 3.04752488E+03 1.83473713E-03 9 4.57369518E+02 1.40373228E-02 10 1.03948685E+02 6.88426223E-02 11 2.92101553E+01 2.32184443E-01 12 9.28666296E+00 4.67941348E-01 13 3.16392696E+00 3.62311985E-01 14 S 3 15 7.86827235E+00 -1.19332420E-01 16 1.88128854E+00 -1.60854152E-01 17 5.44249258E-01 1.14345644E+00 18 P 3 19 7.86827235E+00 6.89990666E-02 20 1.88128854E+00 3.16423961E-01 21 5.44249258E-01 7.44308291E-01 22 S 1 23 1.68714478E-01 1.00000000E+00 24 P 1 25 1.68714478E-01 1.00000000E+00 26 D 1 27 8.00000000E-01 1.00000000E+00 28 C2 C1 2.28537930E+00 1.31946435E+00 -9.86076132E-32 29 C2 C1 2.28537930E+00 -1.31946435E+00 0.00000000E+00 30 C2 C1 -3.23175560E-16 -2.63892871E+00 2.31144182E-41 31 C2 C1 -2.28537930E+00 -1.31946435E+00 0.00000000E+00 32 C2 C1 -2.28537930E+00 1.31946435E+00 0.00000000E+00 33 H1 0.00000000E+00 4.69321902E+00 0.00000000E+00 34 S 3 35 1.87311370E+01 3.34946043E-02 36 2.82539436E+00 2.34726953E-01 37 6.40121692E-01 8.13757326E-01 38 S 1 39 1.61277759E-01 1.00000000E+00 40 H2 H1 4.06444689E+00 2.34660951E+00 0.00000000E+00 41 H2 H1 4.06444689E+00 -2.34660951E+00 0.00000000E+00 42 H2 H1 -5.74753565E-16 -4.69321902E+00 6.13364102E-41 43 H2 H1 -4.06444689E+00 -2.34660951E+00 0.00000000E+00 44 H2 H1 -4.06444689E+00 2.34660951E+00 0.00000000E+00 45 46 next 47 if [ $? == 0 ]; then 48 mo400xl << next 49 BENZENE D6H GEO OPT B3LYP 6-31G* 50 SODILI 1E-6 EOSCISTOP 50 DIIS 51 52 21 53 next 54 if [ $? == 0 ]; then 55 mo600xl << next 56 BENZENE D6H GEO OPT B3LYP 6-31G* 57 58 momento-di-dipolo salva 59 momento-lineare salva 60 momento-angolare salva 61 62 next 63 if [ $? == 0 ]; then 64 mo710xl << next 65 BENZENE D6H GEO OPT B3LYP 6-31G* 66 67 68 next 69 if [ $? == 0 ]; then 70 rm -f fort.4 fort.20 71 tar -a -cf benzene.tgz fort.* 72 rm -f fort.* 73 fi 74 fi 75 fi 76 fi 77 exit
The script is ready and can be run using the command
prompt> ./benzene.isy >& benzene.osy &
Before to run the script within a Cygwin terminal under Windows, the file must be converted using the dos2unix command.
After a while (or much more depending on the size of the actual molecule) the calculation is done and a couple of more files benzene.osy and benzene.tgz (or benzene.fsy, see here below for details) will appear in the current folder.
The benzene.osy file collects the output of the various SYSMO programs used by the script and it should be checked to see whether a string like CONCLUSIONE NORMALE DI MO***XL is present, one for each program.
The benzene.tgz is a tar-zipped file collecting some FORTRAN files, i.e., fort.3, fort.11, fort.23, and fort.28, which can be restored using the command
prompt> tar -zxf benzene.tgz
and deleted once used and no more needed. These files are required by the current density calculations 4.
A different way to pack together files fort.3, fort.11, fort.23, and fort.28 is provided. In order to use this alternative, line 71 must be replaced with pack benzene, or pack file_name as desired. The pack command produces benzene.fsy, which can be unpacked using the command unpack benzene, any suffix is required. Windows users can use this commands instead of the Unix tar command.
Some concluding remarks for this section are as follows.
The example above is for the benzene molecule, however nothing changes for other systems, apart from some attention to be payed on the permutation of the Cartesian coordinates. For example, for the borazine case one more command should be issued to MOMO to exchange and coordinates, typing the command yxz before writing the borazine.isy file.
Geometry and basis set are read in from the fchk file, however this does not mean any strict dependence on the Gaussian package for Route-1. As mentioned, MOMO can read the Cartesian geometry from a different file with xyz or XYZ extensions, or even can be typed directly within the SYSMO input file. This latter way is convenient in symmetric cases, as the mo230xl program requires only symmetry unique atomic centers, the remaining are generated automatically.
Basis set can be download from the web and copied within the isy file. A particularly reach basis set source can be found here.
Depending on the size of the molecule under study, SYSMO programs of the extra large collection, i.e., those programs ending with an xl, can ask for more memory. In this case the amount of required memory can be modified on the running command (see lines 2, 48, 55, and 64) using mo***xl -MEMR Nreal -MEMI Nint << next , where Nreal and Nint are the number of real*8 and integer*4 kilo-words needed to run the calculation. An estimation of the actual amount of required memory is determined by the MOMO program, which writes the bash/csh script to perform the calculation with each mo***xl -MEMR Nreal -MEMI Nint << next command properly initialized.