ESgamess: molecule and Gamess job handling class (symmetry and transformations demo)
01/12/23, 23/01/24 (debugged)
Demo for using ESgamess class for more advances Gamess jobs, including symmetry and frame transformations.
For an intro demo, see the basic demo page.
Imports
[1]:
# Import class
from epsman.elecStructure.gamess import ESgamess
Create molecule
See the basic demo page for alternative methods, here just set from SMILES.
[2]:
# Molecule from PubChem
# testDL = ESgamess(searchName = 'CO2')
# Molecule from Smiles
testDL = ESgamess(smiles='O=C=O', precision = 4)
Set name = None
Set smiles = O=C=O
Set molFile = None
Set xyz = None
Set molOverride = None
Set job = None
Set sym = C1
Set atomList = None
Set precision = 4
Set atomsDict = {}
Set refDict = {}
Set atomsHist = {}
*** Updating coords (Pandas version).
| Ind | Species | Atomic Num. | x | y | z | |
|---|---|---|---|---|---|---|
| 0 | 0 | O | 8 | -1.2375 | 0.0 | 0.0 |
| 1 | 1 | C | 6 | 0.0000 | 0.0 | 0.0 |
| 2 | 2 | O | 8 | 1.2375 | 0.0 | 0.0 |
pyGamess wrapper
Setup Gamess job
[3]:
# 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.2375000000 0.0000000000 0.0000000000
C 6.0 0.0000000000 0.0000000000 0.0000000000
O 8.0 1.2375000000 0.0000000000 0.0000000000
$END
*** Found Gamess executable: /opt/gamess/gamess.00.x
[4]:
# Run quick energy job to test all working OK
testDL.runGamess()
INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x fdpotu -ddi 1 1 jake -scr /tmp/tmpn3cbn17h > /tmp/tmpn3cbn17h/fdpotu.out
*** ddikick exit status OK: ddikick.x: exited gracefully.
*** Gamess run completed OK.
E = -185.05856527930001
[5]:
testDL.printTable()
| Ind | Species | Atomic Num. | x | y | z | |
|---|---|---|---|---|---|---|
| 0 | 0 | O | 8 | -1.2375 | 0.0 | 0.0 |
| 1 | 1 | C | 6 | 0.0000 | 0.0 | 0.0 |
| 2 | 2 | O | 8 | 1.2375 | 0.0 | 0.0 |
Symmetry & frame transformations
Reference frame orientation
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.)
[6]:
# Rotate the frame - default should align to Z-axis
testDL.rotateFrame()
*** Updating coords (Pandas version).
*** Set frame rotations, new coord table:
| Ind | Species | Atomic Num. | x | y | z | |
|---|---|---|---|---|---|---|
| 0 | 0 | O | 8 | 0.0 | 0.0 | 1.2375 |
| 1 | 1 | C | 6 | 0.0 | 0.0 | 0.0000 |
| 2 | 2 | O | 8 | 0.0 | 0.0 | -1.2375 |
Set symmetry (point group)
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.
[7]:
# Set Gamess input with symmetry
testDL.setGamess(note='CO2 sym testing', sym='DNH 8')
Set sym = DNH 8
*** Gamess input card:
$contrl scftyp=rhf runtyp=energy $end
$basis gbasis=sto ngauss=3 $end
$system mwords=30 $end
$DATA
CO2 sym testing
DNH 8
O 8.0 0.0000000000 0.0000000000 1.2375000000
C 6.0 0.0000000000 0.0000000000 0.0000000000
O 8.0 0.0000000000 0.0000000000 -1.2375000000
$END
Finally, symmetrized jobs require only the symmetry unique atoms to be given on the input card. This is currently accomplished here rather crudely, via a list of atom indices (rows) to the input builder. Note that an incorrect setting here will potentially result in a Gamess run with a wildly incorrect molecular geometry, potentially including additional atoms, depending on the symmetry group applied.
For example…
[8]:
testDL.setGamess(note='CO2 sym testing', sym='DNH 8', atomList = [0,1])
Set sym = DNH 8
Set atomList = [0, 1]
*** Gamess input card:
$contrl scftyp=rhf runtyp=energy $end
$basis gbasis=sto ngauss=3 $end
$system mwords=30 $end
$DATA
CO2 sym testing
DNH 8
O 8.0 0.0000000000 0.0000000000 1.2375000000
C 6.0 0.0000000000 0.0000000000 0.0000000000
$END
Where self.params['extra']['atomList'] gives the sub-selection on which atoms are listed on the input card for symmetrized jobs (TODO: make this better/automated!).
[9]:
testDL.params['extra']
[9]:
{'job': 'CO2 sym testing', 'sym': 'DNH 8', 'atomList': [0, 1]}
Run single-point symmetrized calculation
Once the point group and atom list are set, self.runGamess will result in a symmetrized calculation run…
[10]:
# Run symmetrized calc
testDL.runGamess(fileOut = '/tmp/testCO2.out')
INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x eijdcf -ddi 1 1 jake -scr /tmp/tmpn3cbn17h > /tmp/tmpn3cbn17h/eijdcf.out
*** ddikick exit status OK: ddikick.x: exited gracefully.
*** Gamess run completed OK.
E = -185.05856527700001
*** Gamess output file moved to /tmp/testCO2.out
[11]:
# View full output card for details
testDL.printGamess()
*** Contents from file /tmp/testCO2.out.
Distributed Data Interface kickoff program.
Initiating 1 compute processes on 1 nodes to run the following command:
/opt/gamess/gamess.00.x eijdcf
******************************************************
* 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 Jan 23 18:11:32 2024
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>CO2 sym testing
INPUT CARD>DNH 8
INPUT CARD>
INPUT CARD>O 8.0 0.0000000000 0.0000000000 1.2375000000
INPUT CARD>C 6.0 0.0000000000 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
---------
CO2 sym testing
THE POINT GROUP OF THE MOLECULE IS DNH
THE ORDER OF THE PRINCIPAL AXIS IS 8
ATOM ATOMIC COORDINATES (BOHR)
CHARGE X Y Z
O 8.0 0.0000000000 0.0000000000 -2.3385359098
O 8.0 0.0000000000 0.0000000000 2.3385359098
C 6.0 0.0000000000 0.0000000000 0.0000000000
INTERNUCLEAR DISTANCES (ANGS.)
------------------------------
1 O 2 O 3 C
1 O 0.0000000 2.4750000 * 1.2375000 *
2 O 2.4750000 * 0.0000000 1.2375000 *
3 C 1.2375000 * 1.2375000 * 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
3 S 1 130.7093214 0.154328967295
3 S 2 23.8088661 0.535328142282
3 S 3 6.4436083 0.444634542185
4 L 4 5.0331513 -0.099967229187 0.155916274999
4 L 5 1.1695961 0.399512826089 0.607683718598
4 L 6 0.3803890 0.700115468880 0.391957393099
C
5 S 7 71.6168373 0.154328967295
5 S 8 13.0450963 0.535328142282
5 S 9 3.5305122 0.444634542185
6 L 10 2.9412494 -0.099967229187 0.155916274999
6 L 11 0.6834831 0.399512826089 0.607683718598
6 L 12 0.2222899 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 54.7351013355
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
DIIS 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 DNH, NAXIS= 8, ORDER=32
------------------------------------------
DIMENSIONS OF THE SYMMETRY SUBSPACES ARE
A1G = 5 A1U = 0 B1G = 0 B1U = 0 A2G = 0
A2U = 4 B2G = 0 B2U = 0 E1G = 1 E1U = 2
E2U = 0 E2G = 0 E3G = 0 E3U = 0
..... 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=A1G 5=A2U 6=E1U 7=E1U 8=A1G 9=A2U 10=E1G
11=E1G 12=E1U 13=E1U 14=A1G 15=A2U
...... 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 = 1
II,JST,KST,LST = 3 1 1 1 NREC = 1 INTLOC = 1
II,JST,KST,LST = 4 1 1 1 NREC = 1 INTLOC = 3
II,JST,KST,LST = 5 1 1 1 NREC = 1 INTLOC = 284
II,JST,KST,LST = 6 1 1 1 NREC = 1 INTLOC = 415
TOTAL NUMBER OF NONZERO TWO-ELECTRON INTEGRALS = 1293
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 = 54.7351013355
MAXIT = 30 NPUNCH= 2
EXTRAP=T DAMP=F SHIFT=F RSTRCT=F DIIS=T DEM=F SOSCF=F
DENSITY MATRIX CONV= 1.00E-05
MEMORY REQUIRED FOR RHF ITERS= 32450 WORDS.
ITER EX DEM TOTAL ENERGY E CHANGE DENSITY CHANGE DIIS ERROR
1 0 0 -184.7725028435 -184.7725028435 0.517477062 0.807497030
* * * INITIATING DIIS PROCEDURE * * *
2 1 0 -185.0312007503 -0.2586979068 0.131494822 0.115106962
3 2 0 -185.0528054004 -0.0216046501 0.079488582 0.073136962
4 3 0 -185.0574747346 -0.0046693342 0.030216154 0.022996377
5 4 0 -185.0585051627 -0.0010304280 0.014574288 0.005917499
6 5 0 -185.0585648484 -0.0000596857 0.000955415 0.000775604
7 6 0 -185.0585652757 -0.0000004273 0.000050826 0.000037583
8 7 0 -185.0585652770 -0.0000000013 0.000002912 0.000003075
9 8 0 -185.0585652770 -0.0000000000 0.000000249 0.000000267
-----------------
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 -185.0585652770 AFTER 9 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)=-1.00( 50.0%) 1.00( 50.0%)
MO 8 ( 7) HAS LZ(WEIGHT)=-1.00( 50.0%) 1.00( 50.0%)
MO 9 ( 8) HAS LZ(WEIGHT)= 0.00(100.0%)
MO 10 ( 9) HAS LZ(WEIGHT)=-1.00( 50.0%) 1.00( 50.0%)
MO 11 ( 9) HAS LZ(WEIGHT)=-1.00( 50.0%) 1.00( 50.0%)
MO 12 ( 10) HAS LZ(WEIGHT)=-1.00( 50.0%) 1.00( 50.0%)
MO 13 ( 10) HAS LZ(WEIGHT)=-1.00( 50.0%) 1.00( 50.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.3471 -20.3468 -11.2495 -1.3956 -1.3354
A2U A1G A1G A1G A2U
1 O 1 S 0.703019 0.703154 0.000059 -0.150026 -0.162960
2 O 1 S 0.019106 0.017301 -0.004448 0.530965 0.564074
3 O 1 X -0.000000 0.000000 0.000000 -0.000000 -0.000000
4 O 1 Y -0.000000 0.000000 0.000000 -0.000000 -0.000000
5 O 1 Z 0.004548 0.003383 -0.001017 0.126588 0.100899
6 O 2 S -0.703019 0.703154 0.000059 -0.150026 0.162960
7 O 2 S -0.019106 0.017301 -0.004448 0.530965 -0.564074
8 O 2 X -0.000000 0.000000 0.000000 -0.000000 -0.000000
9 O 2 Y -0.000000 0.000000 0.000000 -0.000000 -0.000000
10 O 2 Z 0.004548 -0.003383 0.001017 -0.126588 0.100899
11 C 3 S -0.000000 0.000625 0.993406 -0.153424 -0.000000
12 C 3 S -0.000000 -0.008525 0.027131 0.358284 -0.000000
13 C 3 X -0.000000 0.000000 0.000000 -0.000000 -0.000000
14 C 3 Y -0.000000 0.000000 0.000000 -0.000000 -0.000000
15 C 3 Z 0.010105 0.000000 0.000000 -0.000000 -0.287020
6 7 8 9 10
-0.6822 -0.5885 -0.5885 -0.5679 -0.3776
A1G E1U E1U A2U E1G
1 O 1 S 0.108265 0.000000 0.000000 0.080062 -0.000000
2 O 1 S -0.516003 0.000000 0.000000 -0.433314 -0.000000
3 O 1 X 0.000000 0.489129 0.000000 0.000000 -0.000000
4 O 1 Y 0.000000 0.000000 0.489129 0.000000 0.708177
5 O 1 Z 0.384953 0.000000 0.000000 0.490261 -0.000000
6 O 2 S 0.108265 0.000000 0.000000 -0.080062 -0.000000
7 O 2 S -0.516003 0.000000 0.000000 0.433314 -0.000000
8 O 2 X 0.000000 0.489129 0.000000 0.000000 -0.000000
9 O 2 Y 0.000000 0.000000 0.489129 0.000000 -0.708177
10 O 2 Z -0.384953 0.000000 0.000000 0.490261 -0.000000
11 C 3 S -0.171446 0.000000 0.000000 0.000000 -0.000000
12 C 3 S 0.599730 0.000000 0.000000 0.000000 -0.000000
13 C 3 X 0.000000 0.551624 0.000000 0.000000 -0.000000
14 C 3 Y 0.000000 0.000000 0.551624 0.000000 -0.000000
15 C 3 Z 0.000000 0.000000 0.000000 -0.468743 -0.000000
11 12 13 14 15
-0.3776 0.2796 0.2796 0.4889 1.1804
E1G E1U E1U A1G A2U
1 O 1 S 0.000000 0.000000 0.000000 0.071465 -0.091599
2 O 1 S 0.000000 0.000000 0.000000 -0.453084 0.721160
3 O 1 X 0.708177 -0.549924 0.000000 -0.000000 0.000000
4 O 1 Y 0.000000 0.000000 -0.549924 -0.000000 0.000000
5 O 1 Z 0.000000 0.000000 0.000000 -0.696967 0.722648
6 O 2 S 0.000000 0.000000 0.000000 0.071465 0.091599
7 O 2 S 0.000000 0.000000 0.000000 -0.453084 -0.721160
8 O 2 X -0.708177 -0.549924 0.000000 -0.000000 0.000000
9 O 2 Y 0.000000 0.000000 -0.549924 -0.000000 0.000000
10 O 2 Z 0.000000 0.000000 0.000000 0.696967 0.722648
11 C 3 S 0.000000 0.000000 0.000000 -0.196289 0.000000
12 C 3 S 0.000000 0.000000 0.000000 1.181804 0.000000
13 C 3 X 0.000000 0.884483 0.000000 -0.000000 0.000000
14 C 3 Y 0.000000 0.000000 0.884483 -0.000000 0.000000
15 C 3 Z 0.000000 0.000000 0.000000 -0.000000 1.456045
...... END OF RHF CALCULATION ......
STEP CPU TIME = 0.01 TOTAL CPU TIME = 0.0 ( 0.0 MIN)
TOTAL WALL CLOCK TIME= 0.0 SECONDS, CPU UTILIZATION IS 100.00%
----------------------------------------------------------------
PROPERTY VALUES FOR THE RHF SELF-CONSISTENT FIELD WAVEFUNCTION
----------------------------------------------------------------
-----------------
ENERGY COMPONENTS
-----------------
WAVEFUNCTION NORMALIZATION = 1.0000000000
ONE ELECTRON ENERGY = -363.8739809363
TWO ELECTRON ENERGY = 124.0803143238
NUCLEAR REPULSION ENERGY = 54.7351013355
------------------
TOTAL ENERGY = -185.0585652770
ELECTRON-ELECTRON POTENTIAL ENERGY = 124.0803143238
NUCLEUS-ELECTRON POTENTIAL ENERGY = -546.9256846942
NUCLEUS-NUCLEUS POTENTIAL ENERGY = 54.7351013355
------------------
TOTAL POTENTIAL ENERGY = -368.1102690349
TOTAL KINETIC ENERGY = 183.0517037579
VIRIAL RATIO (V/T) = 2.0109633589
...... PI ENERGY ANALYSIS ......
ENERGY ANALYSIS:
FOCK ENERGY= -115.7133527291
BARE H ENERGY= -363.8739809363
ELECTRONIC ENERGY = -239.7936668327
KINETIC ENERGY= 183.0517037579
N-N REPULSION= 54.7351013355
TOTAL ENERGY= -185.0585654971
SIGMA PART(1+2)= -196.1374004056
(K,V1,2)= 165.8811218167 -446.3069876091 84.2884653868
PI PART(1+2)= -43.6562664271
(K,V1,2)= 17.1705819412 -100.6186970852 39.7918487169
SIGMA SKELETON, ERROR= -141.4022990700 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 1.000921 1.000466 -0.000469 0.725223 0.765578
2 1.000921 1.000466 -0.000469 0.725223 0.765578
3 -0.001842 -0.000933 2.000937 0.549555 0.468844
6 7 8 9 10
2.000000 2.000000 2.000000 2.000000 2.000000
1 0.730724 0.587825 0.587825 0.807032 1.000000
2 0.730724 0.587825 0.587825 0.807032 1.000000
3 0.538553 0.824349 0.824349 0.385935 0.000000
11
2.000000
1 1.000000
2 1.000000
3 0.000000
----- POPULATIONS IN EACH AO -----
MULLIKEN LOWDIN
1 O 1 S 1.99819 1.99734
2 O 1 S 1.88000 1.77776
3 O 1 X 1.58783 1.58436
4 O 1 Y 1.58783 1.58436
5 O 1 Z 1.15129 1.21553
6 O 2 S 1.99819 1.99734
7 O 2 S 1.88000 1.77776
8 O 2 X 1.58783 1.58436
9 O 2 Y 1.58783 1.58436
10 O 2 Z 1.15129 1.21553
11 C 3 S 1.99544 1.98817
12 C 3 S 1.09267 1.09428
13 C 3 X 0.82435 0.83128
14 C 3 Y 0.82435 0.83128
15 C 3 Z 0.85294 0.93628
----- MULLIKEN ATOMIC OVERLAP POPULATIONS -----
(OFF-DIAGONAL ELEMENTS NEED TO BE MULTIPLIED BY 2)
1 2 3
1 7.7899842
2 -0.0053029 7.7899842
3 0.4204447 0.4204447 4.7488588
TOTAL MULLIKEN AND LOWDIN ATOMIC POPULATIONS
ATOM MULL.POP. CHARGE LOW.POP. CHARGE
1 O 8.205126 -0.205126 8.159355 -0.159355
2 O 8.205126 -0.205126 8.159355 -0.159355
3 C 5.589748 0.410252 5.681291 0.318709
-------------------------------
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 2.475 0.367 1 3 1.238 1.954 2 3 1.238 1.954
TOTAL BONDED FREE
ATOM VALENCE VALENCE VALENCE
1 O 2.322 2.322 0.000
2 O 2.322 2.322 0.000
3 C 3.909 3.909 0.000
---------------------
ELECTROSTATIC MOMENTS
---------------------
POINT 1 X Y Z (BOHR) CHARGE
0.000000 0.000000 0.000000 -0.00 (A.U.)
DX DY DZ /D/ (DEBYE)
0.000000 0.000000 0.000000 0.000000
...... 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 66.67%
580000 WORDS OF DYNAMIC MEMORY USED
EXECUTION OF GAMESS TERMINATED NORMALLY Tue Jan 23 18:11:32 2024
DDI: 263640 bytes (0.3 MB / 0 MWords) used by master data server.
----------------------------------------
CPU timing information for all processes
========================================
0: 0.15 + 0.12 = 0.27
----------------------------------------
ddikick.x: exited gracefully.
Geometry optimization (symmetrized)
Running an optimization should now just also work, but there are some potential gotchas in this case.
the output atom ordering may change in the symmetrized case, so further use of the results may require changes to
self.params['extra']['atomList'].It is also of note that Gamess requirements are not enforced automatically here, so some massaging of the input settings may be required - for example the ordering of the atoms on the input card.
[12]:
# Test geom opt with symmetrization, no changes from previous input
testDL.runGamess(runType='optimize',fileOut = '/tmp/test_CO2_geomOpt.out')
INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x svzrwn -ddi 1 1 jake -scr /tmp/tmpn3cbn17h > /tmp/tmpn3cbn17h/svzrwn.out
*** Warning: found errors in Gamess output, type: Warnings
*** Check self.mol.GetProp('Warnings') for details.
*** Warning: found errors in Gamess output, type: ddikick
*** Check self.mol.GetProp('ddikick') for details.
*** Gamess run completed with warnings.
E = -185.05856527700001
*** Gamess optimization run - reseting self.mol with updated coords.
Note that atom ordering may change depending on Gamess output.
Found 1 geometry iterations in Gamess output.
Updating with new coords, output set to self.mol
| Ind | Species | Atomic Num. | x | y | z | |
|---|---|---|---|---|---|---|
| 0 | 0 | O | 8 | 0.0 | 0.0 | -1.2375 |
| 1 | 1 | O | 8 | 0.0 | 0.0 | 1.2375 |
| 2 | 2 | C | 6 | 0.0 | 0.0 | 0.0000 |
*** WARNINGS FOUND IN GAMESS OUTPUT, values for E and molecular coords may reflect input molecule if run did not complete.
Set geom opt coord outputs to self.geomOpt.
*** Gamess output file moved to /tmp/test_CO2_geomOpt.out
In this case note that warnings are generated, indicating problems with the Gamess run - possibly due to the input geometry, or other optimization settings.
Note, also, the line “Found 1 geometry iterations in Gamess output”, indicating that no geometry optimization iterations were completed (i.e. only the input geometry is present), and updated geometry table. The geometry has now been updated from the Gamess output file, which may have a different ordering to the inputs for the symmetrized case, as noted above, even if the run failed.
Troubleshooting Gamess optimization runs
[13]:
# As noted in the error messages above, the specific Gamess error messages can be investigated
print(testDL.mol.GetProp('Warnings'))
print(testDL.mol.GetProp('ddikick'))
WARNING: EIGENVECTOR ROUTINE -EINVIT- DID NOT CONVERGE FOR VECTOR 4
WARNING: EIGENVECTOR ROUTINE -EINVIT- DID NOT CONVERGE FOR VECTOR 7
ddikick.x: application process 0 quit unexpectedly.
ddikick.x: Sending kill signal to DDI processes.
ddikick.x: Execution terminated due to error(s).
[14]:
# These are also set as a full dict of outputs
testDL.mol.errorDict
[14]:
{'Warnings': {'re': re.compile(r'.*WARNING: .*', re.UNICODE),
'matches': ' WARNING: EIGENVECTOR ROUTINE -EINVIT- DID NOT CONVERGE FOR VECTOR 4\n WARNING: EIGENVECTOR ROUTINE -EINVIT- DID NOT CONVERGE FOR VECTOR 7',
'warnFlag': 1},
'ddikick': {'re': re.compile(r'.*ddikick.x: .*', re.UNICODE),
'matches': ' ddikick.x: application process 0 quit unexpectedly.\n ddikick.x: Sending kill signal to DDI processes.\n ddikick.x: Execution terminated due to error(s).',
'warnFlag': 1}}
[15]:
# For a quick look, checking the end of the file is also useful
testDL.tail()
*** Contents from file /tmp/test_CO2_geomOpt.out.
Showing 20 tail lines.
MAXIMUM GRADIENT = 0.0992719 RMS GRADIENT = 0.0467972
NSERCH: 0 E= -185.0585652770 GRAD. MAX= 0.0992719 R.M.S.= 0.0467972
FORCE CONSTANT MATRIX NOT UPDATED --- TAKING FIRST STEP
WARNING: EIGENVECTOR ROUTINE -EINVIT- DID NOT CONVERGE FOR VECTOR 4
NORM = 9.12E-04 PERFORMANCE INDEX = 5.48E+01
A HALT WILL OCCUR IF THE PERF.IND. EXCEEDS 100.0
WARNING: EIGENVECTOR ROUTINE -EINVIT- DID NOT CONVERGE FOR VECTOR 7
NORM = 1.22E-04 PERFORMANCE INDEX = 4.12E+02
A HALT WILL OCCUR IF THE PERF.IND. EXCEEDS 100.0
EINVIT HAS FAILED TO CONVERGE FOR VECTOR 7
GLDIAG FAILURE IN -BKRNR-
EXECUTION OF GAMESS TERMINATED -ABNORMALLY- AT Tue Jan 23 18:11:35 2024
580000 WORDS OF DYNAMIC MEMORY USED
STEP CPU TIME = 0.00 TOTAL CPU TIME = 0.0 ( 0.0 MIN)
TOTAL WALL CLOCK TIME= 0.0 SECONDS, CPU UTILIZATION IS 66.67%
ddikick.x: application process 0 quit unexpectedly.
ddikick.x: Sending kill signal to DDI processes.
ddikick.x: Execution terminated due to error(s).
[16]:
# Check the header lines... this looks OK, but note the atom ordering.
testDL.head(20)
*** Contents from file /tmp/test_CO2_geomOpt.out.
Showing 20 header lines, starting from line 80.
EXECUTION OF GAMESS BEGUN Tue Jan 23 18:11:35 2024
ECHO OF THE FIRST FEW INPUT CARDS -
INPUT CARD> $contrl scftyp=rhf runtyp=optimize $end
INPUT CARD> $basis gbasis=sto ngauss=3 $end
INPUT CARD> $system mwords=30 $end
INPUT CARD> $statpt opttol=0.0001 nstep=20 $end
INPUT CARD> $DATA
INPUT CARD>CO2 sym testing
INPUT CARD>DNH 8
INPUT CARD>
INPUT CARD>O 8.0 0.0000000000 0.0000000000 1.2375000000
INPUT CARD>C 6.0 0.0000000000 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
In this case, the error is (2) - the atom ordering is not as Gamess prefers. This can be modified as required, including the ordering, again via the atomList configuration.
Rerunning geom opt with updated parameters
[17]:
# Check current geom table - note this HAS changed with the symmetrized run geom return from Gamess.
# This may be updated even if the run fails.
testDL.printTable()
| Ind | Species | Atomic Num. | x | y | z | |
|---|---|---|---|---|---|---|
| 0 | 0 | O | 8 | 0.0 | 0.0 | -1.2375 |
| 1 | 1 | O | 8 | 0.0 | 0.0 | 1.2375 |
| 2 | 2 | C | 6 | 0.0 | 0.0 | 0.0000 |
[18]:
# Try updating the atom ordering, so that the Z=0 atom is set first, and create a new job with this.
testDL.setGamess(note='CO2 sym testing v2', sym='DNH 8', atomList = [2,1])
# Run geom opt with new parameters
testDL.runGamess(runType='optimize',fileOut = '/tmp/test_CO2_geomOpt_v2.out')
INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x leskvl -ddi 1 1 jake -scr /tmp/tmpn3cbn17h > /tmp/tmpn3cbn17h/leskvl.out
Set sym = DNH 8
Set atomList = [2, 1]
*** Gamess input card:
$contrl scftyp=rhf runtyp=optimize $end
$basis gbasis=sto ngauss=3 $end
$system mwords=30 $end
$statpt opttol=0.0001 nstep=20 $end
$DATA
CO2 sym testing v2
DNH 8
C 6.0 0.0000000000 0.0000000000 0.0000000000
O 8.0 0.0000000000 0.0000000000 1.2375000000
$END
*** ddikick exit status OK: ddikick.x: exited gracefully.
*** Gamess run completed OK.
E = -185.0683906077
*** Gamess optimization run - reseting self.mol with updated coords.
Note that atom ordering may change depending on Gamess output.
Found 6 geometry iterations in Gamess output.
Updating with new coords, output set to self.mol
| Ind | Species | Atomic Num. | x | y | z | |
|---|---|---|---|---|---|---|
| 0 | 0 | C | 6 | 0.0 | 0.0 | 0.0000 |
| 1 | 1 | O | 8 | 0.0 | 0.0 | -1.1879 |
| 2 | 2 | O | 8 | 0.0 | 0.0 | 1.1879 |
Set geom opt coord outputs to self.geomOpt.
*** Gamess output file moved to /tmp/test_CO2_geomOpt_v2.out
Success! In this case the atom ordering needed some massaging for the Gamess input. Note:
Output E has changed.
Found 6 geometry iterations in Gamess output.in the printed info.Updated coords table has different Z values.
[19]:
# The full set of geometries sampled can be investigated, and are set in self.geomOpt in the default case
testDL.geomOpt
[19]:
| Ind | Species | Atomic Num. | x | y | z | ||
|---|---|---|---|---|---|---|---|
| Geom iter | Atom index | ||||||
| 0 | 0 | 0 | C | 6 | 0.0 | 0.0 | 0.0000 |
| 1 | 1 | O | 8 | 0.0 | 0.0 | -1.2375 | |
| 2 | 2 | O | 8 | 0.0 | 0.0 | 1.2375 | |
| 1 | 0 | 3 | C | 6 | 0.0 | 0.0 | 0.0000 |
| 1 | 4 | O | 8 | 0.0 | 0.0 | -1.1499 | |
| 2 | 5 | O | 8 | 0.0 | 0.0 | 1.1499 | |
| 2 | 0 | 6 | C | 6 | 0.0 | 0.0 | 0.0000 |
| 1 | 7 | O | 8 | 0.0 | 0.0 | -1.1942 | |
| 2 | 8 | O | 8 | 0.0 | 0.0 | 1.1942 | |
| 3 | 0 | 9 | C | 6 | 0.0 | 0.0 | 0.0000 |
| 1 | 10 | O | 8 | 0.0 | 0.0 | -1.1887 | |
| 2 | 11 | O | 8 | 0.0 | 0.0 | 1.1887 | |
| 4 | 0 | 12 | C | 6 | 0.0 | 0.0 | 0.0000 |
| 1 | 13 | O | 8 | 0.0 | 0.0 | -1.1879 | |
| 2 | 14 | O | 8 | 0.0 | 0.0 | 1.1879 | |
| 5 | 0 | 15 | C | 6 | 0.0 | 0.0 | 0.0000 |
| 1 | 16 | O | 8 | 0.0 | 0.0 | -1.1879 | |
| 2 | 17 | O | 8 | 0.0 | 0.0 | 1.1879 |
Versions
[20]:
import scooby
scooby.Report(additional=['epsman', 'cclib', 'rdkit'])
[20]:
| Tue Jan 23 18:11:41 2024 EST | |||||
| OS | Linux | CPU(s) | 64 | Machine | x86_64 |
| Architecture | 64bit | Environment | Jupyter | ||
| Python 3.7.10 (default, Feb 26 2021, 18:47:35) [GCC 7.3.0] | |||||
| epsman | 0.0.1 | cclib | 1.7 | rdkit | 2023.03.2 |
| numpy | 1.19.2 | scipy | 1.6.1 | IPython | 7.21.0 |
| matplotlib | 3.3.4 | scooby | 0.5.6 | ||
| Intel(R) Math Kernel Library Version 2020.0.2 Product Build 20200624 for Intel(R) 64 architecture applications | |||||
[21]:
# Check current Git commit for local ePSproc version
from pathlib import Path
import epsman as em
!git -C {Path(em.__file__).parent} branch
!git -C {Path(em.__file__).parent} log --format="%H" -n 1
master
* restructure160221
29b4057dd2ede80974fd6e17e28c91aaebeae6a5
[22]:
# Check current remote commits
!git ls-remote --heads https://github.com/phockett/epsman
21b4357a169baf9fa7887c68bd1cf8f92c59642c refs/heads/master
29b4057dd2ede80974fd6e17e28c91aaebeae6a5 refs/heads/restructure160221