ePSman ESgamess class notes & demos: molecule and Gamess job handling class

30/03/21

This class handles Gamess jobs (full pipeline) on a local machine only.

Core functionality is provided by the following libraries:

This class creates a pipeline with these tools, and implements a few extra helper routines, with the general aim to make this part of the process as painless as possible.

Minimal method for pipeline to ePolyScat jobs:

PubChem download > Fix reference frame (symmetry axis to Z) > Run Gamess > Export/convert.

Imports

[1]:
# Import class
from epsman.elecStructure.gamess import ESgamess

Molecule creation routines

Currently wraps routines from RDkit + PubChemPy for rapid setup from existing sources. Shows 2D structure and coord tabe on execution.

TODO: add support for manual molecule creation. This can be done via a file at the moment, or via RDkit backend (see, for example, the RDkit docs).

[2]:
# Molecule from PubChem
testDL = ESgamess(searchName = 'N2O')
Set name = N2O
Set smiles = None
Set molFile = None
*** File /home/paul/github/epsman/demos/N2O.SDF already exists, pass overwrite=True to overwrite
Set job = None
Set sym = C1
Set atomList = None
RDKit WARNING: [14:38:36] Warning: molecule is tagged as 3D, but all Z coords are zero
RDKit WARNING: [14:38:36] Warning: molecule is tagged as 3D, but all Z coords are zero
../_images/demos_ESgamess_class_demo_300321_4_2.png
O      8.0      1.3063000000    0.0000000000    0.0000000000
N      7.0     -0.1096000000    0.0000000000    0.0000000000
N      7.0     -1.1967000000    0.0000000000    0.0000000000

[3]:
# Molecule from SMILES
testSmiles = ESgamess(smiles = '[N-]=[N+]=O')
Set name = None
Set smiles = [N-]=[N+]=O
Set molFile = None
Set job = None
Set sym = C1
Set atomList = None
../_images/demos_ESgamess_class_demo_300321_5_1.png
N      7.0      1.1203318954    0.1103129733    0.0000000000
N      7.0     -0.0066842804   -0.3821096381    0.0000000000
O      8.0     -1.1136476150   -0.8657704075    0.0000000000

[4]:
# From file, e.g. SDF file downloaded from PubChem above.
# This uses RDkit Chem.MolFromMolFile() on the backend,
# For details of files supported see https://www.rdkit.org/docs/source/rdkit.Chem.rdmolfiles.html

testFile = ESgamess(molFile = 'N2O.SDF')

Set name = None
Set smiles = None
Set molFile = N2O.SDF
Set job = None
Set sym = C1
Set atomList = None
RDKit WARNING: [14:38:36] Warning: molecule is tagged as 3D, but all Z coords are zero
RDKit WARNING: [14:38:36] Warning: molecule is tagged as 3D, but all Z coords are zero
../_images/demos_ESgamess_class_demo_300321_6_2.png
O      8.0      1.3063000000    0.0000000000    0.0000000000
N      7.0     -0.1096000000    0.0000000000    0.0000000000
N      7.0     -1.1967000000    0.0000000000    0.0000000000

Additional info

If Pandas is available, a fancy print is available with printTable().

[5]:
testDL.printTable()
Ind Species Atomic Num. x y z
0 0 O 8 1.3063 0.0 0.0
1 1 N 7 -0.1096 0.0 0.0
2 2 N 7 -1.1967 0.0 0.0

If py3Dmol is available, interactive 3D plots are available in notebooks with plot3D().

[6]:
testDL.plot3D()

You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
jupyter labextension install jupyterlab_3dmol

The molecule is stored as an RDkit object, self.mol, and RDkit methods are also available.

[7]:
type(testDL.mol)
[7]:
rdkit.Chem.rdchem.Mol
[8]:
# Calling the object will render it
testDL.mol
[8]:
../_images/demos_ESgamess_class_demo_300321_14_0.png
[9]:
# RDkit method example
testDL.mol.GetNumAtoms()
[9]:
3

pyGamess wrapper

Setup Gamess job

[10]:
# Init the pyGamess job.
# This minimally needs a gamess_path set, which defaults to '/opt/gamess'
testDL.initGamess() # Using defaults
*** Init pyGamess job.
Default Gamess input card set (use self.params to modify options dictionary, self.setGamess() to test):

 $contrl scftyp=rhf runtyp=energy $end
 $basis gbasis=sto ngauss=3 $end
 $system mwords=30 $end
 $DATA
None
C1
O      8.0      1.3063000000    0.0000000000    0.0000000000
N      7.0     -0.1096000000    0.0000000000    0.0000000000
N      7.0     -1.1967000000    0.0000000000    0.0000000000
 $END

This creates a pyGamess object, accessible at self.g.

[11]:
print(type(testDL.g))
print(testDL.g.gamess_path)
<class 'epsman.elecStructure.gamess.gamessInput'>
/opt/gamess

All Gamess job parameters are stored in a dictionary, at self.params (also self.g.options), and can be set there directly. See the pyGamess docs for more info.

pyGamess doesn’t support symmetry or job annotation (uses ‘C1’ only), this can be added via a class wrapper here, and can be set via self.setGamess.

Note that is symmetry is set to anything other than ‘C1’, coordinate transforms may be required -see notes below.

[12]:
testDL.params
[12]:
{'contrl': {'scftyp': 'rhf', 'runtyp': 'energy'},
 'basis': {'gbasis': 'sto', 'ngauss': '3'},
 'statpt': {'opttol': '0.0001', 'nstep': '20'},
 'system': {'mwords': '30'},
 'cis': {'nstate': '1'},
 'extra': {'job': None, 'sym': 'C1', 'atomList': None}}

This adds an extras item to the params dictionary.

[13]:
testDL.params
[13]:
{'contrl': {'scftyp': 'rhf', 'runtyp': 'energy'},
 'basis': {'gbasis': 'sto', 'ngauss': '3'},
 'statpt': {'opttol': '0.0001', 'nstep': '20'},
 'system': {'mwords': '30'},
 'cis': {'nstate': '1'},
 'extra': {'job': None, 'sym': 'C1', 'atomList': None}}

Where atomList can additionally be set to sub-select on which atoms are listed on the input card for symmetrized jobs (TODO: make this better/automated!).

The current Gamess input card can always be checked via self.printGamessInput()

[14]:
testDL.printGamessInput()
*** Gamess input card:
 $contrl scftyp=rhf runtyp=energy $end
 $basis gbasis=sto ngauss=3 $end
 $system mwords=30 $end
 $DATA
None
C1
O      8.0      1.3063000000    0.0000000000    0.0000000000
N      7.0     -0.1096000000    0.0000000000    0.0000000000
N      7.0     -1.1967000000    0.0000000000    0.0000000000
 $END

Run Gamess

If a valid gamess_path is set, then this is simple, and the basic results are returned to self.mol.

[15]:
# Run as per input card
testDL.runGamess()
INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x watddq -ddi 1 1 jake -scr /tmp/tmpv0_0f1_d > /tmp/tmpv0_0f1_d/watddq.out
*** Energy run completed
E = -181.1830797993
[16]:
# Run optimization, in this case the updated coord table is also shown.
testDL.runGamess(runType = 'optimize')
INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x uopeyh -ddi 1 1 jake -scr /tmp/tmpv0_0f1_d > /tmp/tmpv0_0f1_d/uopeyh.out
*** Optimized self.mol
E = -181.1830797993
Ind Species Atomic Num. x y z
0 0 O 8 1.3063 0.0 0.0
1 1 N 7 -0.1096 0.0 0.0
2 2 N 7 -1.1967 0.0 0.0

However, in the default case the tmp files are not kept. To keep the full Gamess output, supply a filename (full path).

[17]:
# Check for tmp file
print(testDL.g.gamout)

!cat {testDL.g.gamout}
/tmp/tmpv0_0f1_d/uopeyh.out
cat: /tmp/tmpv0_0f1_d/uopeyh.out: No such file or directory
[18]:
# runGamess wrapper will take a path and move the output file.
testDL.runGamess(fileOut = '/tmp/test.out')
INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x ytegoc -ddi 1 1 jake -scr /tmp/tmpv0_0f1_d > /tmp/tmpv0_0f1_d/ytegoc.out
*** Energy run completed
E = -181.1830797993
*** Gamess output file moved to /tmp/test.out
[19]:
# In this case the complete output file can also be printed
testDL.printGamess()

 Distributed Data Interface kickoff program.
 Initiating 1 compute processes on 1 nodes to run the following command:
 /opt/gamess/gamess.00.x ytegoc

          ******************************************************
          *         GAMESS VERSION = 30 SEP 2018 (R3)         *
          *             FROM IOWA STATE UNIVERSITY             *
          * M.W.SCHMIDT, K.K.BALDRIDGE, J.A.BOATZ, S.T.ELBERT, *
          *   M.S.GORDON, J.H.JENSEN, S.KOSEKI, N.MATSUNAGA,   *
          *          K.A.NGUYEN, S.J.SU, T.L.WINDUS,           *
          *       TOGETHER WITH M.DUPUIS, J.A.MONTGOMERY       *
          *         J.COMPUT.CHEM.  14, 1347-1363(1993)        *
          **************** 64 BIT LINUX VERSION ****************

  SINCE 1993, STUDENTS AND POSTDOCS WORKING AT IOWA STATE UNIVERSITY
  AND ALSO IN THEIR VARIOUS JOBS AFTER LEAVING ISU HAVE MADE IMPORTANT
  CONTRIBUTIONS TO THE CODE:
     IVANA ADAMOVIC, CHRISTINE AIKENS, YURI ALEXEEV, POOJA ARORA,
     ANDREY ASADCHEV, ROB BELL, PRADIPTA BANDYOPADHYAY, JONATHAN BENTZ,
     BRETT BODE, KURT BRORSEN, CALEB CARLIN, GALINA CHABAN, WEI CHEN,
     CHEOL HO CHOI, PAUL DAY, ALBERT DEFUSCO, NUWAN DESILVA, TIM DUDLEY,
     DMITRI FEDOROV, ALEX FINDLATER, GRAHAM FLETCHER, MARK FREITAG,
     KURT GLAESEMANN, ANASTASIA GUNINA,
     DAN KEMP, GRANT MERRILL, NORIYUKI MINEZAWA, JONATHAN MULLIN,
     TAKESHI NAGATA, SEAN NEDD, HEATHER NETZLOFF, BOSILJKA NJEGIC, RYAN OLSON,
     MIKE PAK, BUU PHAM,
     SPENCER PRUITT, LUKE ROSKOP, JIM SHOEMAKER, LYUDMILA SLIPCHENKO,
     TONY SMITH, SAROM SOK LEANG, JIE SONG, TETSUYA TAKETSUGU, SIMON WEBB,
     PENG XU, SOOHAENG YOO, FEDERICO ZAHARIEV

  ADDITIONAL CODE HAS BEEN PROVIDED BY COLLABORATORS IN OTHER GROUPS:
     IOWA STATE UNIVERSITY:
          JOE IVANIC, AARON WEST, LAIMUTIS BYTAUTAS, KLAUS RUEDENBERG
     UNIVERSITY OF TOKYO: KIMIHIKO HIRAO, TAKAHITO NAKAJIMA,
          TAKAO TSUNEDA, MUNEAKI KAMIYA, SUSUMU YANAGISAWA,
          KIYOSHI YAGI, MAHITO CHIBA, SEIKEN TOKURA, NAOAKI KAWAKAMI
     UNIVERSITY OF AARHUS: FRANK JENSEN
     UNIVERSITY OF IOWA: VISVALDAS KAIRYS, HUI LI
     NATIONAL INST. OF STANDARDS AND TECHNOLOGY: WALT STEVENS, DAVID GARMER
     UNIVERSITY OF PISA: BENEDETTA MENNUCCI, JACOPO TOMASI
     UNIVERSITY OF MEMPHIS: HENRY KURTZ, PRAKASHAN KORAMBATH
     UNIVERSITY OF ALBERTA: TOBY ZENG, MARIUSZ KLOBUKOWSKI
     UNIVERSITY OF NEW ENGLAND: MARK SPACKMAN
     MIE UNIVERSITY: HIROAKI UMEDA
     NAT. INST. OF ADVANCED INDUSTRIAL SCIENCE AND TECHNOLOGY: KAZUO KITAURA
     MICHIGAN STATE UNIVERSITY:
          KAROL KOWALSKI, MARTA WLOCH, JEFFREY GOUR, JESSE LUTZ,
          WEI LI, JUN SHEN, J. EMILIANO DEUSTUA, PIOTR PIECUCH
     UNIVERSITY OF MINNESOTA:
          YINAN SHU
     UNIVERSITY OF SILESIA: MONIKA MUSIAL, STANISLAW KUCHARSKI
     FACULTES UNIVERSITAIRES NOTRE-DAME DE LA PAIX:
          OLIVIER QUINET, BENOIT CHAMPAGNE
     UNIVERSITY OF CALIFORNIA - SANTA BARBARA: BERNARD KIRTMAN
     INSTITUTE FOR MOLECULAR SCIENCE:
          KAZUYA ISHIMURA, MICHIO KATOUDA, AND SHIGERU NAGASE
     UNIVERSITY OF NOTRE DAME: ANNA POMOGAEVA, DAN CHIPMAN
     KYUSHU UNIVERSITY:
          HARUYUKI NAKANO,
          FENG LONG GU, JACEK KORCHOWIEC, MARCIN MAKOWSKI, AND YURIKO AOKI,
          HIROTOSHI MORI AND EISAKU MIYOSHI
     PENNSYLVANIA STATE UNIVERSITY:
          TZVETELIN IORDANOV, CHET SWALINA, JONATHAN SKONE,
          SHARON HAMMES-SCHIFFER
     WASEDA UNIVERSITY:
          MASATO KOBAYASHI, TOMOKO AKAMA, TSUGUKI TOUMA,
          TAKESHI YOSHIKAWA, YASUHIRO IKABATA, JUNJI SEINO,
          YUYA NAKAJIMA, HIROMI NAKAI
     NANJING UNIVERSITY: SHUHUA LI
     UNIVERSITY OF NEBRASKA:
          PEIFENG SU, DEJUN SI, NANDUN THELLAMUREGE, YALI WANG, HUI LI
     UNIVERSITY OF ZURICH: ROBERTO PEVERATI, KIM BALDRIDGE
     N. COPERNICUS UNIVERSITY AND JACKSON STATE UNIVERSITY:
          MARIA BARYSZ
     UNIVERSITY OF COPENHAGEN: Jimmy Kromann, CASPER STEINMANN
     TOKYO INSTITUTE OF TECHNOLOGY: HIROYA NAKATA
     NAGOYA UNIVERSITY: YOSHIO NISHIMOTO, STEPHAN IRLE
     MOSCOW STATE UNIVERSITY: VLADIMIR MIRONOV

 EXECUTION OF GAMESS BEGUN Tue Mar 30 14:38:42 2021

            ECHO OF THE FIRST FEW INPUT CARDS -
 INPUT CARD> $contrl scftyp=rhf runtyp=energy $end
 INPUT CARD> $basis gbasis=sto ngauss=3 $end
 INPUT CARD> $system mwords=30 $end
 INPUT CARD> $DATA
 INPUT CARD>None
 INPUT CARD>C1
 INPUT CARD>O      8.0      1.3063000000    0.0000000000    0.0000000000
 INPUT CARD>N      7.0     -0.1096000000    0.0000000000    0.0000000000
 INPUT CARD>N      7.0     -1.1967000000    0.0000000000    0.0000000000
 INPUT CARD> $END
   30000000 WORDS OF MEMORY AVAILABLE

     BASIS OPTIONS
     -------------
     GBASIS=STO          IGAUSS=       3      POLAR=NONE
     NDFUNC=       0     NFFUNC=       0     DIFFSP=       F
     NPFUNC=       0      DIFFS=       F     BASNAM=


     RUN TITLE
     ---------
 None

 THE POINT GROUP OF THE MOLECULE IS C1
 THE ORDER OF THE PRINCIPAL AXIS IS     0

 ATOM      ATOMIC                      COORDINATES (BOHR)
           CHARGE         X                   Y                   Z
 O           8.0     2.4685490578        0.0000000000        0.0000000000
 N           7.0    -0.2071139683        0.0000000000        0.0000000000
 N           7.0    -2.2614350895        0.0000000000        0.0000000000

          INTERNUCLEAR DISTANCES (ANGS.)
          ------------------------------

                1 O          2 N          3 N

   1 O       0.0000000    1.4159000 *  2.5030000 *
   2 N       1.4159000 *  0.0000000    1.0871000 *
   3 N       2.5030000 *  1.0871000 *  0.0000000

  * ... LESS THAN  3.000


     ATOMIC BASIS SET
     ----------------
 THE CONTRACTED PRIMITIVE FUNCTIONS HAVE BEEN UNNORMALIZED
 THE CONTRACTED BASIS FUNCTIONS ARE NOW NORMALIZED TO UNITY

  SHELL TYPE  PRIMITIVE        EXPONENT          CONTRACTION COEFFICIENT(S)

 O

      1   S       1           130.7093214    0.154328967295
      1   S       2            23.8088661    0.535328142282
      1   S       3             6.4436083    0.444634542185

      2   L       4             5.0331513   -0.099967229187    0.155916274999
      2   L       5             1.1695961    0.399512826089    0.607683718598
      2   L       6             0.3803890    0.700115468880    0.391957393099

 N

      3   S       7            99.1061690    0.154328967295
      3   S       8            18.0523124    0.535328142282
      3   S       9             4.8856602    0.444634542185

      4   L      10             3.7804559   -0.099967229187    0.155916274999
      4   L      11             0.8784966    0.399512826089    0.607683718598
      4   L      12             0.2857144    0.700115468880    0.391957393099

 N

      5   S      13            99.1061690    0.154328967295
      5   S      14            18.0523124    0.535328142282
      5   S      15             4.8856602    0.444634542185

      6   L      16             3.7804559   -0.099967229187    0.155916274999
      6   L      17             0.8784966    0.399512826089    0.607683718598
      6   L      18             0.2857144    0.700115468880    0.391957393099

 TOTAL NUMBER OF BASIS SET SHELLS             =    6
 NUMBER OF CARTESIAN GAUSSIAN BASIS FUNCTIONS =   15
 NUMBER OF ELECTRONS                          =   22
 CHARGE OF MOLECULE                           =    0
 SPIN MULTIPLICITY                            =    1
 NUMBER OF OCCUPIED ORBITALS (ALPHA)          =   11
 NUMBER OF OCCUPIED ORBITALS (BETA )          =   11
 TOTAL NUMBER OF ATOMS                        =    3
 THE NUCLEAR REPULSION ENERGY IS       56.6209169337

 THIS MOLECULE IS RECOGNIZED AS BEING LINEAR,
 ORBITAL LZ DEGENERACY TOLERANCE ETOLLZ= 1.00E-06

     $CONTRL OPTIONS
     ---------------
 SCFTYP=RHF          RUNTYP=ENERGY       EXETYP=RUN
 MPLEVL=       0     CITYP =NONE         CCTYP =NONE         VBTYP =NONE
 DFTTYP=NONE         TDDFT =NONE
 MULT  =       1     ICHARG=       0     NZVAR =       0     COORD =UNIQUE
 PP    =NONE         RELWFN=NONE         LOCAL =NONE         NUMGRD=       F
 ISPHER=      -1     NOSYM =       0     MAXIT =      30     UNITS =ANGS
 PLTORB=       F     MOLPLT=       F     AIMPAC=       F     FRIEND=
 NPRINT=       7     IREST =       0     GEOM  =INPUT
 NORMF =       0     NORMP =       0     ITOL  =      20     ICUT  =       9
 INTTYP=BEST         GRDTYP=BEST         QMTTOL= 1.0E-06

     $SYSTEM OPTIONS
     ---------------
  REPLICATED MEMORY=    30000000 WORDS (ON EVERY NODE).
 DISTRIBUTED MEMDDI=           0 MILLION WORDS IN AGGREGATE,
 MEMDDI DISTRIBUTED OVER   1 PROCESSORS IS           0 WORDS/PROCESSOR.
 TOTAL MEMORY REQUESTED ON EACH PROCESSOR=    30000000 WORDS.
 TIMLIM=      525600.00 MINUTES, OR     365.0 DAYS.
 PARALL= F  BALTYP=  DLB     KDIAG=    0  COREFL= F
 MXSEQ2=     300 MXSEQ3=     150  mem10=         0

          ----------------
          PROPERTIES INPUT
          ----------------

     MOMENTS            FIELD           POTENTIAL          DENSITY
 IEMOM =       1   IEFLD =       0   IEPOT =       0   IEDEN =       0
 WHERE =COMASS     WHERE =NUCLEI     WHERE =NUCLEI     WHERE =NUCLEI
 OUTPUT=BOTH       OUTPUT=BOTH       OUTPUT=BOTH       OUTPUT=BOTH
 IEMINT=       0   IEFINT=       0                     IEDINT=       0
                                                       MORB  =       0
          EXTRAPOLATION IN EFFECT
          SOSCF IN EFFECT
 ORBITAL PRINTING OPTION: NPREO=     1    15     2     1

     -------------------------------
     INTEGRAL TRANSFORMATION OPTIONS
     -------------------------------
     NWORD  =            0
     CUTOFF = 1.0E-09     MPTRAN =       0
     DIRTRF =       F     AOINTS =DUP

          ----------------------
          INTEGRAL INPUT OPTIONS
          ----------------------
 NOPK  =       1 NORDER=       0 SCHWRZ=       F

     ------------------------------------------
     THE POINT GROUP IS C1 , NAXIS= 0, ORDER= 1
     ------------------------------------------

     DIMENSIONS OF THE SYMMETRY SUBSPACES ARE
 A   =   15

 ..... DONE SETTING UP THE RUN .....
 STEP CPU TIME =     0.00 TOTAL CPU TIME =          0.0 (      0.0 MIN)
 TOTAL WALL CLOCK TIME=          0.0 SECONDS, CPU UTILIZATION IS     0.00%

          ********************
          1 ELECTRON INTEGRALS
          ********************
 ...... END OF ONE-ELECTRON INTEGRALS ......
 STEP CPU TIME =     0.00 TOTAL CPU TIME =          0.0 (      0.0 MIN)
 TOTAL WALL CLOCK TIME=          0.0 SECONDS, CPU UTILIZATION IS     0.00%

          -------------
          GUESS OPTIONS
          -------------
          GUESS =HUCKEL            NORB  =       0          NORDER=       0
          MIX   =       F          PRTMO =       F          PUNMO =       F
          TOLZ  = 1.0E-08          TOLE  = 1.0E-05
          SYMDEN=       F          PURIFY=       F

 INITIAL GUESS ORBITALS GENERATED BY HUCKEL   ROUTINE.
 HUCKEL GUESS REQUIRES      4764 WORDS.

 SYMMETRIES FOR INITIAL GUESS ORBITALS FOLLOW.   BOTH SET(S).
    11 ORBITALS ARE OCCUPIED (    3 CORE ORBITALS).
     4=A        5=A        6=A        7=A        8=A        9=A       10=A
    11=A       12=A       13=A       14=A       15=A
 ...... END OF INITIAL ORBITAL SELECTION ......
 STEP CPU TIME =     0.00 TOTAL CPU TIME =          0.0 (      0.0 MIN)
 TOTAL WALL CLOCK TIME=          0.0 SECONDS, CPU UTILIZATION IS     0.00%

                    ----------------------
                    AO INTEGRAL TECHNOLOGY
                    ----------------------
     S,P,L SHELL ROTATED AXIS INTEGRALS, REPROGRAMMED BY
        KAZUYA ISHIMURA (IMS) AND JOSE SIERRA (SYNSTAR).
     S,P,D,L SHELL ROTATED AXIS INTEGRALS PROGRAMMED BY
        KAZUYA ISHIMURA (INSTITUTE FOR MOLECULAR SCIENCE).
     S,P,D,F,G SHELL TO TOTAL QUARTET ANGULAR MOMENTUM SUM 5,
        ERIC PROGRAM BY GRAHAM FLETCHER (ELORET AND NASA ADVANCED
        SUPERCOMPUTING DIVISION, AMES RESEARCH CENTER).
     S,P,D,F,G,L SHELL GENERAL RYS QUADRATURE PROGRAMMED BY
        MICHEL DUPUIS (PACIFIC NORTHWEST NATIONAL LABORATORY).

          --------------------
          2 ELECTRON INTEGRALS
          --------------------

 THE -PK- OPTION IS OFF, THE INTEGRALS ARE NOT IN SUPERMATRIX FORM.
 STORING   15000 INTEGRALS/RECORD ON DISK, USING 12 BYTES/INTEGRAL.
 TWO ELECTRON INTEGRAL EVALUATION REQUIRES   89377 WORDS OF MEMORY.
 II,JST,KST,LST =  1  1  1  1 NREC =         1 INTLOC =    1
 II,JST,KST,LST =  2  1  1  1 NREC =         1 INTLOC =    2
 II,JST,KST,LST =  3  1  1  1 NREC =         1 INTLOC =   34
 II,JST,KST,LST =  4  1  1  1 NREC =         1 INTLOC =   72
 II,JST,KST,LST =  5  1  1  1 NREC =         1 INTLOC =  486
 II,JST,KST,LST =  6  1  1  1 NREC =         1 INTLOC =  709
 TOTAL NUMBER OF NONZERO TWO-ELECTRON INTEGRALS =                2276
          1 INTEGRAL RECORDS WERE STORED ON DISK FILE  8.
  ...... END OF TWO-ELECTRON INTEGRALS .....
 STEP CPU TIME =     0.01 TOTAL CPU TIME =          0.0 (      0.0 MIN)
 TOTAL WALL CLOCK TIME=          0.0 SECONDS, CPU UTILIZATION IS    50.00%

          --------------------------
                 RHF SCF CALCULATION
          --------------------------

     NUCLEAR ENERGY =        56.6209169337
     MAXIT =   30     NPUNCH=    2
     EXTRAP=T  DAMP=F  SHIFT=F  RSTRCT=F  DIIS=F  DEM=F  SOSCF=T
     DENSITY MATRIX CONV=  1.00E-05
     SOSCF WILL OPTIMIZE      44 ORBITAL ROTATIONS, SOGTOL=   0.250
     MEMORY REQUIRED FOR RHF ITERS=     31961 WORDS.

 ITER EX DEM     TOTAL ENERGY        E CHANGE  DENSITY CHANGE     ORB. GRAD
   1  0  0     -180.6349352246  -180.6349352246   0.842406318   0.000000000
          ---------------START SECOND ORDER SCF---------------
 SOSCF IS SCALING ROTATION ANGLE MATRIX, SQCDF=    0.140487
   2  1  0     -180.9447400302    -0.3098048056   0.726548798   0.180297490
   3  2  0     -180.9415576650     0.0031823652   0.226517379   0.188684179
   4  3  0     -181.1219528866    -0.1803952216   0.333983778   0.064196293
   5  4  0     -181.1282578097    -0.0063049231   0.193132621   0.112045845
   6  5  0     -181.1769569066    -0.0486990969   0.058052121   0.022286065
   7  6  0     -181.1820673078    -0.0051104012   0.028852437   0.008697435
   8  7  0     -181.1829582015    -0.0008908937   0.008881127   0.005147896
   9  8  0     -181.1830710726    -0.0001128711   0.003193726   0.001343628
  10  9  0     -181.1830797930    -0.0000087205   0.000062587   0.000024715
  11 10  0     -181.1830797989    -0.0000000059   0.000023347   0.000010068
  12 11  0     -181.1830797992    -0.0000000003   0.000008502   0.000002253
  13 12  0     -181.1830797993    -0.0000000000   0.000000720   0.000000399

          -----------------
          DENSITY CONVERGED
          -----------------
     TIME TO FORM FOCK OPERATORS=       0.0 SECONDS (       0.0 SEC/ITER)
     TIME TO SOLVE SCF EQUATIONS=       0.0 SECONDS (       0.0 SEC/ITER)

 FINAL RHF ENERGY IS     -181.1830797993 AFTER  13 ITERATIONS

 LZ VALUE ANALYSIS FOR THE MOS
 ----------------------------------------
 MO     1 (    1) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO     2 (    2) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO     3 (    3) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO     4 (    4) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO     5 (    5) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO     6 (    6) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO     7 (    7) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO     8 (    7) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO     9 (    8) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO    10 (    9) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO    11 (    9) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO    12 (   10) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO    13 (   10) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO    14 (   11) HAS LZ(WEIGHT)= 0.00(100.0%)
 MO    15 (   12) HAS LZ(WEIGHT)= 0.00(100.0%)

          ------------
          EIGENVECTORS
          ------------

                      1          2          3          4          5
                  -20.2387   -15.6547   -15.5635    -1.5103    -1.2294
                     A          A          A          A          A
    1  O  1  S    0.994683   0.000366  -0.000022  -0.038574  -0.213755
    2  O  1  S    0.022355  -0.002639   0.000103   0.137214   0.780989
    3  O  1  X   -0.002896   0.001914  -0.000091  -0.042332  -0.077744
    4  O  1  Y    0.000000   0.000000   0.000000   0.000000  -0.000000
    5  O  1  Z    0.000000   0.000000   0.000000   0.000000  -0.000000
    6  N  2  S    0.000363   0.993941  -0.010740  -0.185804  -0.044053
    7  N  2  S   -0.002852   0.028607  -0.010651   0.525909   0.190276
    8  N  2  X   -0.004465  -0.005726   0.005685  -0.215881   0.316885
    9  N  2  Y    0.000000   0.000000   0.000000   0.000000  -0.000000
   10  N  2  Z    0.000000   0.000000   0.000000   0.000000  -0.000000
   11  N  3  S   -0.000001   0.010985   0.994074  -0.165354   0.071341
   12  N  3  S   -0.001036  -0.008815   0.028461   0.443033  -0.202824
   13  N  3  X   -0.000716  -0.004730   0.008917   0.227657  -0.066463
   14  N  3  Y    0.000000   0.000000   0.000000   0.000000  -0.000000
   15  N  3  Z    0.000000   0.000000   0.000000   0.000000  -0.000000

                      6          7          8          9         10
                   -0.7303    -0.6659    -0.6659    -0.5921    -0.3473
                     A          A          A          A          A
    1  O  1  S   -0.120511  -0.000000  -0.000000  -0.091682   0.000000
    2  O  1  S    0.542892  -0.000000  -0.000000   0.441886   0.000000
    3  O  1  X    0.212182  -0.000000  -0.000000   0.282393   0.000000
    4  O  1  Y    0.000000   0.084683   0.198804   0.000000   0.929990
    5  O  1  Z    0.000000   0.198804  -0.084683   0.000000   0.000774
    6  N  2  S    0.144709  -0.000000  -0.000000   0.033876   0.000000
    7  N  2  S   -0.627685  -0.000000  -0.000000  -0.218551   0.000000
    8  N  2  X   -0.188874  -0.000000  -0.000000  -0.530071   0.000000
    9  N  2  Y    0.000000   0.261114   0.612998   0.000000  -0.008727
   10  N  2  Z    0.000000   0.612998  -0.261114   0.000000  -0.000007
   11  N  3  S   -0.156055  -0.000000  -0.000000   0.088708   0.000000
   12  N  3  S    0.687898  -0.000000  -0.000000  -0.504406   0.000000
   13  N  3  X   -0.286433  -0.000000  -0.000000   0.533622   0.000000
   14  N  3  Y    0.000000   0.205603   0.482678   0.000000  -0.372349
   15  N  3  Z    0.000000   0.482678  -0.205603   0.000000  -0.000310

                     11         12         13         14         15
                   -0.3473     0.2381     0.2381     0.4481     1.1895
                     A          A          A          A          A
    1  O  1  S    0.000000   0.000000   0.000000   0.053475   0.039502
    2  O  1  S    0.000000   0.000000   0.000000  -0.293518  -0.255348
    3  O  1  X    0.000000   0.000000   0.000000   0.963127   0.371575
    4  O  1  Y   -0.000774   0.076671   0.310714  -0.000000   0.000000
    5  O  1  Z    0.929990   0.310714  -0.076671  -0.000000   0.000000
    6  N  2  S    0.000000   0.000000   0.000000  -0.132767   0.088622
    7  N  2  S    0.000000   0.000000   0.000000   0.890822  -1.007362
    8  N  2  X    0.000000   0.000000   0.000000   0.180786   1.361082
    9  N  2  Y    0.000007  -0.194691  -0.789002  -0.000000   0.000000
   10  N  2  Z   -0.008727  -0.789002   0.194691  -0.000000   0.000000
   11  N  3  S    0.000000   0.000000   0.000000   0.050337  -0.117577
   12  N  3  S    0.000000   0.000000   0.000000  -0.328764   1.200088
   13  N  3  X    0.000000   0.000000   0.000000  -0.448397   1.180663
   14  N  3  Y    0.000310   0.197008   0.798393  -0.000000   0.000000
   15  N  3  Z   -0.372349   0.798393  -0.197008  -0.000000   0.000000
 ...... END OF RHF CALCULATION ......
 STEP CPU TIME =     0.00 TOTAL CPU TIME =          0.0 (      0.0 MIN)
 TOTAL WALL CLOCK TIME=          0.0 SECONDS, CPU UTILIZATION IS    33.33%

     ----------------------------------------------------------------
     PROPERTY VALUES FOR THE RHF   SELF-CONSISTENT FIELD WAVEFUNCTION
     ----------------------------------------------------------------

          -----------------
          ENERGY COMPONENTS
          -----------------

         WAVEFUNCTION NORMALIZATION =       1.0000000000

                ONE ELECTRON ENERGY =    -360.5175959557
                TWO ELECTRON ENERGY =     122.7135992227
           NUCLEAR REPULSION ENERGY =      56.6209169337
                                      ------------------
                       TOTAL ENERGY =    -181.1830797993

 ELECTRON-ELECTRON POTENTIAL ENERGY =     122.7135992227
  NUCLEUS-ELECTRON POTENTIAL ENERGY =    -539.8773304465
   NUCLEUS-NUCLEUS POTENTIAL ENERGY =      56.6209169337
                                      ------------------
             TOTAL POTENTIAL ENERGY =    -360.5428142901
               TOTAL KINETIC ENERGY =     179.3597344908
                 VIRIAL RATIO (V/T) =       2.0101658564

  ...... PI ENERGY ANALYSIS ......

 ENERGY ANALYSIS:
            FOCK ENERGY=   -115.0903974526
          BARE H ENERGY=   -360.5175959557
     ELECTRONIC ENERGY =   -237.8039967041
         KINETIC ENERGY=    179.3597344908
          N-N REPULSION=     56.6209169337
           TOTAL ENERGY=   -181.1830797704
        SIGMA PART(1+2)=   -194.3396030190
               (K,V1,2)=    163.1039467435   -440.7455451181     83.3019953555
           PI PART(1+2)=    -43.4643936851
               (K,V1,2)=     16.2557877473    -99.1317853284     39.4116038960
  SIGMA SKELETON, ERROR=   -137.7186860853     -0.0000000000
             MIXED PART= 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
 ...... END OF PI ENERGY ANALYSIS ......

          ---------------------------------------
          MULLIKEN AND LOWDIN POPULATION ANALYSES
          ---------------------------------------

     ATOMIC MULLIKEN POPULATION IN EACH MOLECULAR ORBITAL

                      1          2          3          4          5

                  2.000000   2.000000   2.000000   2.000000   2.000000

    1             2.000401  -0.000189  -0.000000   0.063955   1.380972
    2            -0.000400   2.001948  -0.002059   1.046279   0.516360
    3            -0.000002  -0.001759   2.002059   0.889766   0.102668

                      6          7          8          9         10

                  2.000000   2.000000   2.000000   2.000000   2.000000

    1             0.528181   0.127387   0.127387   0.466979   1.724303
    2             0.554734   1.120819   1.120819   0.535481   0.000163
    3             0.917085   0.751794   0.751794   0.997541   0.275535

                     11

                  2.000000

    1             1.724303
    2             0.000163
    3             0.275535

               ----- POPULATIONS IN EACH AO -----
                             MULLIKEN      LOWDIN
              1  O  1  S      1.99935     1.99884
              2  O  1  S      1.95707     1.93546
              3  O  1  X      0.48387     0.55008
              4  O  1  Y      1.85169     1.85258
              5  O  1  Z      1.85169     1.85258
              6  N  2  S      1.99689     1.99415
              7  N  2  S      1.48231     1.37619
              8  N  2  X      1.17315     1.20694
              9  N  2  Y      1.12098     1.11484
             10  N  2  Z      1.12098     1.11484
             11  N  3  S      1.99777     1.99730
             12  N  3  S      1.73783     1.63940
             13  N  3  X      1.17175     1.30164
             14  N  3  Y      1.02733     1.03258
             15  N  3  Z      1.02733     1.03258

          ----- MULLIKEN ATOMIC OVERLAP POPULATIONS -----
          (OFF-DIAGONAL ELEMENTS NEED TO BE MULTIPLIED BY 2)

             1           2           3

    1    8.0267637
    2    0.1237140   6.1424665
    3   -0.0067999   0.6281256   6.3406901

          TOTAL MULLIKEN AND LOWDIN ATOMIC POPULATIONS
       ATOM         MULL.POP.    CHARGE          LOW.POP.     CHARGE
    1 O             8.143678   -0.143678         8.189541   -0.189541
    2 N             6.894306    0.105694         6.806964    0.193036
    3 N             6.962016    0.037984         7.003496   -0.003496

          -------------------------------
          BOND ORDER AND VALENCE ANALYSIS     BOND ORDER THRESHOLD=0.050
          -------------------------------

                   BOND                       BOND                       BOND
  ATOM PAIR DIST  ORDER      ATOM PAIR DIST  ORDER      ATOM PAIR DIST  ORDER
    1   2  1.416  0.936        1   3  2.503  0.314        2   3  1.087  2.687

                       TOTAL       BONDED        FREE
      ATOM            VALENCE     VALENCE     VALENCE
    1 O                 1.251       1.251      -0.000
    2 N                 3.623       3.623      -0.000
    3 N                 3.001       3.001       0.000

          ---------------------
          ELECTROSTATIC MOMENTS
          ---------------------

 POINT   1           X           Y           Z (BOHR)    CHARGE
                 0.111746    0.000000    0.000000        0.00 (A.U.)
         DX          DY          DZ         /D/  (DEBYE)
    -1.016290    0.000000    0.000000    1.016290
 ...... END OF PROPERTY EVALUATION ......
 STEP CPU TIME =     0.00 TOTAL CPU TIME =          0.0 (      0.0 MIN)
 TOTAL WALL CLOCK TIME=          0.0 SECONDS, CPU UTILIZATION IS    33.33%
               580000  WORDS OF DYNAMIC MEMORY USED
 EXECUTION OF GAMESS TERMINATED NORMALLY Tue Mar 30 14:38:42 2021
 DDI: 263640 bytes (0.3 MB / 0 MWords) used by master data server.

 ----------------------------------------
 CPU timing information for all processes
 ========================================
 0: 0.17 + 0.09 = 0.26
 ----------------------------------------
 ddikick.x: exited gracefully.

Symmetry & frame transformations

To use symmetry in the Gamess calculations, the system must be oriented such that the Z-axis is the highest symmetry axis. In tests both PubChem and RDkit seem to use the X-axis as the symmetry axis, so the frame needs to be rotated in general.

From the Gamess manual:

    The 'master frame' is just a standard orientation for
the molecule.  By default, the 'master frame' assumes that
    1.   z is the principal rotation axis (if any),
    2.   x is a perpendicular two-fold axis (if any),
    3.  xz is the sigma-v plane (if any), and
    4.  xy is the sigma-h plane (if any).
Use the lowest number rule that applies to your molecule.

        Some examples of these rules:
Ammonia (C3v): the unique H lies in the XZ plane (R1,R3).
Ethane (D3d): the unique H lies in the YZ plane (R1,R2).
Methane (Td): the H lies in the XYZ direction (R2).  Since
         there is more than one 3-fold, R1 does not apply.
HP=O (Cs): the mirror plane is the XY plane (R4).

In general, it is a poor idea to try to reorient the
molecule.  Certain sections of the program, such as the
orbital symmetry assignment, do not know how to deal with
cases where the 'master frame' has been changed.

Linear molecules (C4v or D4h) must lie along the z axis,
so do not try to reorient linear molecules.

This is set with self.rotateFrame(), which can set arbitrary rotations, but defaults to X > Z axis transformation. This uses the RDkit canoicalise and transformation functions, with rotation matrices, as per Github user iwatobipen’s example notebook. (Thanks to iwatobipen and the RDkit list.)

[20]:
testDL.rotateFrame()
*** Set frame rotations, new coord table:
Ind Species Atomic Num. x y z
0 0 O 8 7.998781e-17 0.0 -1.3063
1 1 N 7 -6.711064e-18 0.0 0.1096
2 2 N 7 -7.327674e-17 0.0 1.1967

Symmetry groups supported (from the Gamess manual):

GROUP is the Schoenflies symbol of the symmetry group,
you may choose from
    C1, Cs, Ci, Cn, S2n, Cnh, Cnv, Dn, Dnh, Dnd,
    T, Th, Td, O, Oh.

NAXIS is the order of the highest rotation axis, and
must be given when the name of the group contains an N.
For example, "Cnv 2" is C2v.  "S2n 3" means S6.  Use of
NAXIS up to 8 is supported in each axial groups.

For linear molecules, choose either Cnv or Dnh, and enter
NAXIS as 4.  Enter atoms as Dnh with NAXIS=2.  If the
electronic state of either is degenerate, check the note
about the effect of symmetry in the electronic state
in the SCF section of REFS.DOC.
[21]:
# Set Gamess input with symmetry
testDL.setGamess(note='N2O sym testing', sym='CNV 8')
*** Gamess input card:
 $contrl scftyp=rhf runtyp=energy $end
 $basis gbasis=sto ngauss=3 $end
 $system mwords=30 $end
 $DATA
N2O sym testing
CNV 8

O      8.0      0.0000000000    0.0000000000   -1.3063000000
N      7.0     -0.0000000000    0.0000000000    0.1096000000
N      7.0     -0.0000000000    0.0000000000    1.1967000000
 $END

Finally, it is worth noting that symmetrized jobs require only the unique atoms given on the input card. This is currently accomplished here rather crudely, via a list of atom indices (rows) to the input builder.

For example…

[22]:
testDL.setGamess(note='N2O sym testing', sym='CNV 8', atomList = [0,2])
*** Gamess input card:
 $contrl scftyp=rhf runtyp=energy $end
 $basis gbasis=sto ngauss=3 $end
 $system mwords=30 $end
 $DATA
N2O sym testing
CNV 8

O      8.0      0.0000000000    0.0000000000   -1.3063000000
N      7.0     -0.0000000000    0.0000000000    1.1967000000
 $END

Additional Gamess parameters

For the full set of Gamess input options (inc. basis sets), see the manual.

As per the above input cards, pyGamess writes only the minimal set of $contrl, $basis and $system inputs, using the supplied parameters dictionary.

TODO: wrap the input writer for arb sections from the params dictionary.

[23]:
# Basis sets can additionally be set using pyGamess
testDL.g.basis_set("6-31G**")
[23]:
{'gbasis': 'N31', 'ngauss': '6', 'ndfunc': '1', 'npfunc': '1'}
[24]:
# This only has limited support...
testDL.g.basis_set("ACCD")
ERROR:pygamess.gamess:basis type not found
[24]:
{'gbasis': 'N31', 'ngauss': '6', 'ndfunc': '1', 'npfunc': '1'}
[25]:
# ... applying settings manually will always work however
testDL.params['basis'] = {'gbasis':'ACCD'}
testDL.params['contrl']['ISPHER']='1'  # For ACCD need this too!
testDL.params
[25]:
{'contrl': {'scftyp': 'rhf', 'runtyp': 'energy', 'ISPHER': '1'},
 'basis': {'gbasis': 'ACCD'},
 'statpt': {'opttol': '0.0001', 'nstep': '20'},
 'system': {'mwords': '30'},
 'cis': {'nstate': '1'},
 'extra': {'job': 'N2O sym testing', 'sym': 'CNV 8', 'atomList': [0, 2]}}
[26]:
testDL.printGamessInput()
*** Gamess input card:
 $contrl scftyp=rhf runtyp=energy ISPHER=1 $end
 $basis gbasis=ACCD $end
 $system mwords=30 $end
 $DATA
N2O sym testing
CNV 8

O      8.0      0.0000000000    0.0000000000   -1.3063000000
N      7.0     -0.0000000000    0.0000000000    1.1967000000
 $END

Additional transformations

Bond lengths & angles

These can be addressed using the RDkit functionality.

There is also a wrapper for bond lengths at the moment, self.setBondLength, which takes a dictionary of bonds to set, in the format {'Name':{'a1':0,'a2':1,'l':5}} where ‘a1’ and ‘a2’ give the atom indices for atoms defining the bond. This wraps RDkit’s rdkit.Chem.rdMolTransforms.SetBondLength.

TODO: clean up input, wrap angle setting functions(?).

Here’s a basic bond-length example

[27]:
testDL.printTable()
Ind Species Atomic Num. x y z
0 0 O 8 7.998781e-17 0.0 -1.3063
1 1 N 7 -6.711064e-18 0.0 0.1096
2 2 N 7 -7.327674e-17 0.0 1.1967
[28]:
bonds = {'NO':{'a1':0, 'a2':1, 'l':5}, 'NN':{'a1':1, 'a2':2, 'l':5}}
# testDL.setBondLength(bonds = {'NO':{'a0':0, 'a1':1, 'l':5}})
testDL.setBondLength(bonds)
*** Set bonds, new coord table:
Ind Species Atomic Num. x y z
0 0 O 8 7.998781e-17 0.0 -1.3063
1 1 N 7 -2.261739e-16 0.0 3.6937
2 2 N 7 -5.323356e-16 0.0 8.6937

Note that the RDkit routines move all atoms as appropriate for the new settings.

Manual coords

This is currently a little basic, and just wraps RDkit conformer.SetAtomPosition() routine for each atom. Set & select with a dictionary input, using atom indicies as keys.

[34]:
# Set coords for specified atoms
coordsRef = {0:[0,0,0], 1:[0.7,0,1.0]}
testDL.setCoords(coordsRef)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-34-3b9ccfb1c4af> in <module>
      1 # Set coords for specified atoms
      2 coordsRef = {0:[0,0,0], 1:[0.7,0,1.0]}
----> 3 testDL.setCoords(coordsRef)

AttributeError: 'ESgamess' object has no attribute 'setCoords'
[ ]:
# Set all atoms on a specified axes with coord
# This can be useful for symmetrized cases, since otherwise atoms may be erroneously duplicated in Gamess run (even for near-zero coords)
mol.setAxis({'x':0.0, 'y':0.0})

Minimal job pipeline to generate electronic structure & input files for ePolyScat

Possibly not advisable, since errors may go unnoticed, but the whole default pipeline can be executed with self.buildES(), which aims to string together the default cases above and produce a Gamess output file that can be used as input for ePolyScat.

This can be run directly at class creation by passing buildES=True. To keep the Gamess output file, pass fileOut.

[30]:
# Set via build=True - to do
testBuild = ESgamess(searchName = 'N2O', fileOut = '/tmp/autobuild.out', buildES = True)
Set name = N2O
Set smiles = None
Set molFile = None
*** File /home/paul/github/epsman/demos/N2O.SDF already exists, pass overwrite=True to overwrite
Set job = None
Set sym = C1
Set atomList = None
RDKit WARNING: [14:39:01] Warning: molecule is tagged as 3D, but all Z coords are zero
RDKit WARNING: [14:39:01] Warning: molecule is tagged as 3D, but all Z coords are zero
../_images/demos_ESgamess_class_demo_300321_54_2.png
O      8.0      1.3063000000    0.0000000000    0.0000000000
N      7.0     -0.1096000000    0.0000000000    0.0000000000
N      7.0     -1.1967000000    0.0000000000    0.0000000000

*** Running default Gamess job.
*** Set frame rotations, new coord table:
Ind Species Atomic Num. x y z
0 0 O 8 7.998781e-17 0.0 -1.3063
1 1 N 7 -6.711064e-18 0.0 0.1096
2 2 N 7 -7.327674e-17 0.0 1.1967
INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x jfqorx -ddi 1 1 jake -scr /tmp/tmpq79qm8ni > /tmp/tmpq79qm8ni/jfqorx.out
*** Init pyGamess job.
Default Gamess input card set (use self.params to modify options dictionary, self.setGamess() to test):

 $contrl scftyp=rhf runtyp=energy $end
 $basis gbasis=sto ngauss=3 $end
 $system mwords=30 $end
 $DATA
None
C1
O      8.0      0.0000000000    0.0000000000   -1.3063000000
N      7.0     -0.0000000000    0.0000000000    0.1096000000
N      7.0     -0.0000000000    0.0000000000    1.1967000000
 $END

*** Energy run completed
E = -181.1830797993
*** Gamess output file moved to /tmp/autobuild.out
Ind Species Atomic Num. x y z
0 0 O 8 7.998781e-17 0.0 -1.3063
1 1 N 7 -6.711064e-18 0.0 0.1096
2 2 N 7 -7.327674e-17 0.0 1.1967
INFO:pygamess.gamess:deleting tempdir /tmp/tmp35n9bn2b
[32]:
# Running the function independently also works
testDL.buildES(fileOut = '/tmp/autobuild.out')
*** Running default Gamess job.
*** Set frame rotations, new coord table:
Ind Species Atomic Num. x y z
0 0 O 8 -3.061617e-16 -1.232595e-32 5.0
1 1 N 7 0.000000e+00 0.000000e+00 0.0
2 2 N 7 3.061617e-16 0.000000e+00 -5.0
INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x eqbqbl -ddi 1 1 jake -scr /tmp/tmpz6c50ibb > /tmp/tmpz6c50ibb/eqbqbl.out
*** Init pyGamess job.
Default Gamess input card set (use self.params to modify options dictionary, self.setGamess() to test):

 $contrl scftyp=rhf runtyp=energy $end
 $basis gbasis=sto ngauss=3 $end
 $system mwords=30 $end
 $DATA
None
C1
O      8.0     -0.0000000000   -0.0000000000    5.0000000000
N      7.0      0.0000000000    0.0000000000    0.0000000000
N      7.0      0.0000000000    0.0000000000   -5.0000000000
 $END

*** Energy run completed
E = -161.7465089353
*** Gamess output file moved to /tmp/autobuild.out
Ind Species Atomic Num. x y z
0 0 O 8 -3.061617e-16 -1.232595e-32 5.0
1 1 N 7 0.000000e+00 0.000000e+00 0.0
2 2 N 7 3.061617e-16 0.000000e+00 -5.0

Generating electronic strucutres for a range of geometries

In this case, run a single-point calculation for each specified geometry (note this is similar, but slightly distinct, from Gamess native bond-length scan, since one wants to generate a single file for each case here, to be used as ePolyScat input).

[ ]:
# Simply loop over a set of specified coords...