{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ESgamess: molecule and Gamess job handling class (basic demo)\n", "30/03/21\n", "\n", "This class handles Gamess jobs (full pipeline) on a local machine only.\n", "\n", "Core functionality is provided by the following libraries:\n", "\n", "- [PubChemPy](https://pypi.org/project/PubChemPy/)\n", " - Interface with [PubChem](https://pubchem.ncbi.nlm.nih.gov).\n", "- [RDKit](https://rdkit.org/docs/index.html)\n", " - Molecule class/handling routines.\n", " - Transformations.\n", " - Figures (2D natively, uses [py3Dmol on the backend](https://pypi.org/project/py3Dmol/) for 3D rendering).\n", "- [pygamess](https://github.com/kzfm/pygamess)\n", " - Setup Gamess input cards.\n", " - Run Gamess calculations (local machine only).\n", "\n", "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.\n", "\n", "Minimal method for pipeline to ePolyScat jobs:\n", "\n", "PubChem download > Fix reference frame (symmetry axis to Z) > Run Gamess > Export/convert.\n", "\n", "This is [implemented directly](#Minimal-job-pipeline-to-generate-electronic-structure-&-input-files-for-ePolyScat).\n", "\n", "22/11/23, 23/01/24 (debug & tidy)\n", "\n", "Updated some methods and finished notes.\n", "\n", "- Better setCoords() handling, including Pandas method.\n", "- Support for XYZ files for molecule creation (RDkit version > 2022.03 required)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Imports" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Import class\n", "from epsman.elecStructure.gamess import ESgamess" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Molecule creation routines\n", "\n", "Currently wraps routines from RDkit + PubChemPy for rapid setup from existing sources. Shows 2D structure and coord tabe on execution.\n", "\n", "Notes:\n", "\n", "- Atom sequence and labelling may change with method.\n", "- Similarly, atomic charges, bonding and display may change with method.\n", "- In general, this doesn't matter if coords are passed to another electronic structure routine, but may be important in some cases.\n", "\n", "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](https://www.rdkit.org/docs/GettingStartedInPython.html#reading-and-writing-molecules))." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Easy methods" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set name = N2O\n", "Set smiles = None\n", "Set molFile = None\n", "Set pd = None\n", "Set xyz = None\n", "Set molOverride = None\n", "*** File /mnt/femtobackSSHFS/DriveSyncShare/code-share/github-share/epsman/docs/doc-source/demos/N2O.SDF already exists; existing file will be used. Pass overwrite=True to overwrite.\n", "Set job = None\n", "Set sym = C1\n", "Set atomList = None\n", "Set precision = 6\n", "Set atomsDict = {}\n", "Set refDict = {}\n", "Set atomsHist = {}\n", "*** Updating coords (Pandas version).\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[14:15:07] Warning: molecule is tagged as 3D, but all Z coords are zero\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O81.30630.00.0
11N7-0.10960.00.0
22N7-1.19670.00.0
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 1.3063 0.0 0.0\n", "1 1 N 7 -0.1096 0.0 0.0\n", "2 2 N 7 -1.1967 0.0 0.0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Molecule from PubChem\n", "testDL = ESgamess(searchName = 'N2O')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set name = None\n", "Set smiles = [N-]=[N+]=O\n", "Set molFile = None\n", "Set pd = None\n", "Set xyz = None\n", "Set molOverride = None\n", "Set job = None\n", "Set sym = C1\n", "Set atomList = None\n", "Set precision = 6\n", "Set atomsDict = {}\n", "Set refDict = {}\n", "Set atomsHist = {}\n", "*** Updating coords (Pandas version).\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00N71.2226020.00.0
11N7-0.0072940.00.0
22O8-1.2153080.00.0
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 N 7 1.222602 0.0 0.0\n", "1 1 N 7 -0.007294 0.0 0.0\n", "2 2 O 8 -1.215308 0.0 0.0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Molecule from SMILES\n", "testSmiles = ESgamess(smiles = '[N-]=[N+]=O')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set name = None\n", "Set smiles = None\n", "Set molFile = N2O.SDF\n", "Set pd = None\n", "Set xyz = None\n", "Set molOverride = None\n", "Set job = None\n", "Set sym = C1\n", "Set atomList = None\n", "Set precision = 6\n", "Set atomsDict = {}\n", "Set refDict = {}\n", "Set atomsHist = {}\n", "*** Updating coords (Pandas version).\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[14:15:07] Warning: molecule is tagged as 3D, but all Z coords are zero\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O81.30630.00.0
11N7-0.10960.00.0
22N7-1.19670.00.0
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 1.3063 0.0 0.0\n", "1 1 N 7 -0.1096 0.0 0.0\n", "2 2 N 7 -1.1967 0.0 0.0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# From file, e.g. SDF file downloaded from PubChem above.\n", "# This uses RDkit Chem.MolFromMolFile() on the backend, \n", "# For details of files supported see https://www.rdkit.org/docs/RDKit_Book.html#mol-sdf-support-and-extensions \n", "# and https://www.rdkit.org/docs/source/rdkit.Chem.rdmolfiles.html\n", "\n", "testFile = ESgamess(molFile = 'N2O.SDF')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Manual or from XYZ file\n", "\n", "Since RDKit 2022.03 XYZ file support is included, which is also suitable for manual molecule creation from a list of atoms and coordinates.\n", "\n", "Full details can be found in https://github.com/rdkit/UGM_2022/blob/main/Notebooks/Landrum_WhatsNew.ipynb\n", "\n", "The method can be used to init a system from a file or string representation. The basic format is:\n", "\n", "```\n", "[no. atoms]\n", "\n", "[Atom 0] [x] [y] [z]\n", "[Atom 1] [x] [y] [z]\n", "...\n", "\n", "```" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Generated XYZ string repr:\n", "\n", "3\n", "\n", "O 1.3063 0.0 0.0\n", "N -0.1096 0.0 0.0\n", "N -1.1967 0.0 0.0\n", "\n", "Data set to self.xyzStr\n" ] } ], "source": [ "# Generate XYZ representation from existing case above\n", "testDL.genXYZ()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set name = None\n", "Set smiles = None\n", "Set molFile = None\n", "Set pd = None\n", "Set xyz from passed values.\n", "Set molOverride = None\n", "Set job = None\n", "Set sym = C1\n", "Set atomList = None\n", "Set precision = 6\n", "Set atomsDict = {}\n", "Set refDict = {}\n", "Set atomsHist = {}\n", "*** Updating coords (Pandas version).\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O81.30630.00.0
11N7-0.10960.00.0
22N7-1.19670.00.0
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 1.3063 0.0 0.0\n", "1 1 N 7 -0.1096 0.0 0.0\n", "2 2 N 7 -1.1967 0.0 0.0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Use the string representation to define a new system\n", "\n", "testXYZstr = ESgamess(xyz = testDL.xyzStr)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set name = None\n", "Set smiles = None\n", "Set molFile = None\n", "Set pd = None\n", "Set xyz from passed values.\n", "Set molOverride = None\n", "Set job = None\n", "Set sym = C1\n", "Set atomList = None\n", "Set precision = 6\n", "Set atomsDict = {}\n", "Set refDict = {}\n", "Set atomsHist = {}\n", "*** Updating coords (Pandas version).\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAACWCAIAAADCEh9HAAAABmJLR0QA/wD/AP+gvaeTAAAK00lEQVR4nO3da2wUZRvG8astUKBFUFosKDRKohBiwSoImBACHwRRMEIUFY0YAhgOKgfTACJRCbHR0nBQo37QEIEEUEGjaDEh4WBBUQgxEaPhkIi0FSmHllaWnfcD8zptKWW395Zntvx/mQ93d/dZbrbt1dl59plJ8TxPAIDmSnXdAAAkN2IUAEyIUQAwIUYBwIQYBQATYhQATIhRADAhRgHAhBgFABNiFABMiFEAMCFGAcCEGAUAE2IUAEyIUQAwIUYBwIQYBQATYhQATIhRADAhRgHAhBgFABNiFABMiFEAMCFGAcCEGAUAE2IUAEyIUQAwIUYBwIQYBQATYhQATIhRADAhRgHAhBgFABNiFABMiFEAMCFGAcCEGAUAE2IUAEyIUQAwIUYBwIQYBQATYhQATIhRADAhRgHAhBgFABNiFABMiFEAMGnjuoHEqK5WJOK6iVYkLU0ZGa6bAJJEiud5rntIgMGDtWeP6yZakf79tX+/6yaAJNFK9kYzMtSpk+smWpHMTNcdAMmjleyNAoArTDEBgAkxCgAmxCgAmBCjAGBCjAKACTEKACbEKACYEKMAYOJmFdPx46qp8ev27dWjx9WHRKM6csSvO3ZUTk4LtYbGlZWpqsqv27ZVz54xjTpyRNGoJKWn65ZbmnpkSYmqqzVwYEw/DEhu0aj+/FMVFSovl+cpK0vduunWW5WW5rqzZnKziun++7V7t1+np+vAAd1551WGnDmjzp39eswYffllC7aHy02YoE2b/Do1VTt3asiQq4/q1EnnzklSfr727Wvqkbm5OnZM69fr8cfNvSKcLl7Uxo3askUlJaqoaHhvly4aOVIPPaQnn1S7di76az73b+prazV9uliSmkSiUU2bpgsXXPeBJPLFF+rfXxMnau3aRjJUUmWlNm3S5Mnq00effHLN+zNxH6OStm/XunWum0A8Dh7UihWum0BSiEb1wgsaO1a//NLwruxsdeumlJR6Nx4+rEmT9NRT+vffa9ajUShiVNKcOTp1ynUTiMfixcHRauCKXnyx3p/crCwtWaJ9+xSJqLxcZWW6cEEHDmjpUnXvHjxs7VpNmpQs71IdnyivTRv/dMtlZVq4UO+847YdxOTSd626Wi+9pM8+a+aTnDvnzz5dcun35fx5nTkT3Ni+fdIdJUN9n3+ulSuDL599VsXFwSzHJWlpystTXp5mzdK8eXr/ff/2DRs0YoSmT2/4nE8/rcrKxv+5vn1VWJio3uPguTB0qCd5kpeT440d69epqd7u3Vcccvq0/zDJGzPmGvYKz/M8b/z44PWfOjWoN29ualRmpv+w/PyGd912W/AkV9refLPl/kNoeSdPellZwbdz5kwvGr36qLlzgyEZGd7hww0fkJ19xZ+YIUNa4L9xde5P21xYqK++UiTiT1zs26e2bV33hCa99prWrdPZs5I0a5ZGjGjOaZ579663p/nHH4pE1KNHvdNvd+1q7hUOffCB/v7br/PyVFTU8DBoowoLVVqqXbskqapKK1fq7bcbPqC6uvGxdQ8LXEtOwrvu3qjneVOmBH9OiooaH8LeqFt190ajUW/x4uDLefOuOKqJvdEGevXyJG/9+sR2DXciES83N/gpKSmJY+zevcHALl28c+darMvECMUU09KlwdGSRYuYuEgCBQXKzfXr4mIu3ITL7N2ro0f9OjdXI0bEMXbgQA0Y4NeVlSopSXBviRaKGO3WTa+84tfV1Zo712k3iEGHDlq2zK8jEU2bVm++CFBpaVCPG6fUOKPm0UeD+vvvE9NSiwlFjEqaPTtYyPTpp9qyxWk3iMETT2jYML/eu1cffui0G4RN3RjNz497+D33NP5UoRSWGG3bVsuXB1/Onh2s4EZoLV8eLIMuKFB5udNuECp1j8316xf38LvuavypQiksMSpp9Gg98ohfHz2q11932g1ikJ+vqVP9+tQpzZvX/KfatUuHD+vhhxPSF0Kg7nKam26Ke3jdIeFfmeNkYqvBTP1/jh3zMjL8u9q08fbvD+5qeqb+vvuu/iFEtti3/v0bvsINZur/U1npde8e3LVtW71Rsc/Ux6K21v0rk8DtuwFz3DeRqG3+/Ibfrbqf7qyoaM73u00bf3hKinfhgv3np+WEaG9UUs+eWrTIryMRzZiRLIvBrl+dOwdzTZJmzFBtrbtuEB51f3Vj+bjo5f47YOR5IZ/BDFeMSpozR337+vWuXVqzJqZRpaXyPLaEbXF9gOmZZzR8uF8fOqTi4jjGxqVdO/evTAK3ET+/7b6JRG2XL8Hs0iWoL50tMS41NcEf5MzMkC8KDl2Mtmun994L/nq9/HK9RdYIoZQUrVoVrD1bulR//eW0IYRB3YXzp0/HPbzukBtvTEA/LSl0MSpp2DBNnOjXZWVuTjWAuPTrp9mz/frsWS1c6LQbhEHddZm//Rb38EOHGn+qUApjjEoqKgreE7z1ln7/3Wk3iMGrrwaXCfn4Y+3d67QbODdwYFA3Y5XbTz8F9eDBCeinJYU0RnNytGSJX9fWsneTBDp1UlGRX0ejpg8/oTWom33ffRf38LpDBg1KQD8tKaQxKmnmTN19t19v2BBcuwmh9dhjGj3ar3fs0ObNTruBW0OHBmfrKi2N7339iRPautWv27bVyJEJ7i3RwhujaWlatcqfa/I8LVjguiHEoLhY6el+XVCgixeddgOHMjM1aVLw5dKlcYxdtsw/nbuk8ePDfx3g8MaopKFDNXmyX//8s9NWEJs77tD8+X796686f95pN3BrxozgjCRr1gQ7mE3bvVurV/t1SkowdxlioY5RSYWFyspy3QTisWCBbr/ddRMIg379NGeOX3ueJky4+kHSPXs0ZkzwLmbKlJgu5O1a2GO0a9f43g3AuQ4dgp0JXO/eeEN5eX5dVaVRozRzpk6caOSR//yjggINGxZcZ6l372DWMtzcX0TkqqZM0Ucfhf+UgwiMGqVx45higpSerm++0YMP+kflIhGtXq1339WgQbr3XmVnKzVV5eU6eFA7dwbHQyX16aOtW5tzdRoXkiBGU1O1apUGDWK+IpmsWKFt2zjbIaScHG3fruee06ZN/i3RqEpLmzqL6KhRWrMmiQ7nhf1N/SX5+Xr+eddNIB69evHhCvzfDTdo40bt2KHhw4MTjlwuJUVDhujbb/X110mUoZJSPM/BOZSOH1dNjSSlpQWX9GlaTY2OH/frjh3D/xGI1qasLNi1jHEGKRLRsWN+nZ4erHHCde3kSZWU6McfVVGhigp5nrKylJ2tAQP0wAO6+WbX/TWHmxgFgFYjOd7UA0BoEaMAYEKMAoAJMQoAJsQoAJgQowBgQowCgAkxCgAmSbCmPhYjR+qHH1w30Yrk5WnnTtdNAEmilcRoVZXOnnXdRCvSjOuKA9etVrIYtLq63km2YJSWpowM100ASaKVxCgAuMIUEwCYEKMAYEKMAoAJMQoAJsQoAJgQowBgQowCgAkxCgAmxCgAmBCjAGBCjAKACTEKACbEKACYEKMAYEKMAoAJMQoAJsQoAJgQowBgQowCgAkxCgAmxCgAmBCjAGBCjAKACTEKACbEKACYEKMAYEKMAoAJMQoAJsQoAJgQowBgQowCgAkxCgAmxCgAmBCjAGBCjAKACTEKACbEKACYEKMAYEKMAoAJMQoAJsQoAJgQowBgQowCgAkxCgAmxCgAmBCjAGBCjAKAyf8AYhn08fk1oBQAAABuelRYdHJka2l0UEtMIHJka2l0IDIwMjMuMDMuMgAAeJx7v2/tPQYg4GWAACYgZobSDYwcClpA+j8zIzuYwcjEwq6gAZJl5mZgVGBk0mAWAWkS1wNJQjED83WT5fZQ4xi+lz7YC2OX687cD2OLAQAqKw2TgM5iVwAAALh6VFh0TU9MIHJka2l0IDIwMjMuMDMuMgAAeJx9kEEOgyAQRfec4l9AMiMNDQsXKMY2rZC01ju47/1TqKFi0viHxWcyb/JBIOnhbssbPyknBEAHxxiDWRGRGJEM2n64enSTbXOnCy8/PaFQRyLWftJOYcwdRgBLRTouBEn6qjDoLkNTMWZ7bzhDNTwqkkxGH1ArdMqQShBLNvr8H8qDvXe7iGvoNni3hU5Vb3HSQ1XJl9Ppnj8nevEBUW5JAPkSOZQAAABKelRYdFNNSUxFUyByZGtpdCAyMDIzLjAzLjIAAHic81OO9tOOjfbXjVWo0dA11DO0NDPXMdCx1jXQMzSwNAMxDfWMDcyMgSzNGgD8vAo3f3vMYQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O81.30630.00.0
11N7-0.10960.00.0
22N7-1.19670.00.0
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 1.3063 0.0 0.0\n", "1 1 N 7 -0.1096 0.0 0.0\n", "2 2 N 7 -1.1967 0.0 0.0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Note that this routine can accept a string, or filename.\n", "\n", "testXYZfile = ESgamess(xyz = 'N2O.xyz')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set name = None\n", "Set smiles = None\n", "Set molFile = None\n", "Set pd from passed values.\n", "Set xyz = None\n", "Set molOverride = None\n", "Set job = None\n", "Set sym = C1\n", "Set atomList = None\n", "Set precision = 6\n", "Set atomsDict = {}\n", "Set refDict = {}\n", "Set atomsHist = {}\n", "*** Updating coords (Pandas version).\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O81.30630.00.0
11N7-0.10960.00.0
22N7-1.19670.00.0
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 1.3063 0.0 0.0\n", "1 1 N 7 -0.1096 0.0 0.0\n", "2 2 N 7 -1.1967 0.0 0.0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Creation via a Pandas representation is also available \n", "# (as of 25/01/24, https://github.com/phockett/epsman/commit/bd21149f2aa6ee4ea23ab4dfd3f4f4a60503508e)\n", "# Pandas table format as shown above, and in self.pdTable\n", "\n", "testPDmol = ESgamess(pd = testXYZfile.pdTable)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Additional info" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If `Pandas` is available, a fancy print is available with `printTable()`." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O81.30630.00.0
11N7-0.10960.00.0
22N7-1.19670.00.0
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 1.3063 0.0 0.0\n", "1 1 N 7 -0.1096 0.0 0.0\n", "2 2 N 7 -1.1967 0.0 0.0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "testDL.printTable()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If `py3Dmol` is available, interactive 3D plots are available in notebooks with `plot3D()`." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "application/3dmoljs_load.v0": "
\n

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

\n
\n", "text/html": [ "
\n", "

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

\n", "
\n", "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "testDL.plot3D()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The molecule is stored as an RDkit object, `self.mol`, and [RDkit methods are also available](https://www.rdkit.org/docs/GettingStartedInPython.html)." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "rdkit.Chem.rdchem.Mol" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(testDL.mol)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAACWCAIAAADCEh9HAAAABmJLR0QA/wD/AP+gvaeTAAAK00lEQVR4nO3da2wUZRvG8astUKBFUFosKDRKohBiwSoImBACHwRRMEIUFY0YAhgOKgfTACJRCbHR0nBQo37QEIEEUEGjaDEh4WBBUQgxEaPhkIi0FSmHllaWnfcD8zptKWW395Zntvx/mQ93d/dZbrbt1dl59plJ8TxPAIDmSnXdAAAkN2IUAEyIUQAwIUYBwIQYBQATYhQATIhRADAhRgHAhBgFABNiFABMiFEAMCFGAcCEGAUAE2IUAEyIUQAwIUYBwIQYBQATYhQATIhRADAhRgHAhBgFABNiFABMiFEAMCFGAcCEGAUAE2IUAEyIUQAwIUYBwIQYBQATYhQATIhRADAhRgHAhBgFABNiFABMiFEAMCFGAcCEGAUAE2IUAEyIUQAwIUYBwIQYBQATYhQATIhRADAhRgHAhBgFABNiFABMiFEAMGnjuoHEqK5WJOK6iVYkLU0ZGa6bAJJEiud5rntIgMGDtWeP6yZakf79tX+/6yaAJNFK9kYzMtSpk+smWpHMTNcdAMmjleyNAoArTDEBgAkxCgAmxCgAmBCjAGBCjAKACTEKACbEKACYEKMAYOJmFdPx46qp8ev27dWjx9WHRKM6csSvO3ZUTk4LtYbGlZWpqsqv27ZVz54xjTpyRNGoJKWn65ZbmnpkSYmqqzVwYEw/DEhu0aj+/FMVFSovl+cpK0vduunWW5WW5rqzZnKziun++7V7t1+np+vAAd1551WGnDmjzp39eswYffllC7aHy02YoE2b/Do1VTt3asiQq4/q1EnnzklSfr727Wvqkbm5OnZM69fr8cfNvSKcLl7Uxo3askUlJaqoaHhvly4aOVIPPaQnn1S7di76az73b+prazV9uliSmkSiUU2bpgsXXPeBJPLFF+rfXxMnau3aRjJUUmWlNm3S5Mnq00effHLN+zNxH6OStm/XunWum0A8Dh7UihWum0BSiEb1wgsaO1a//NLwruxsdeumlJR6Nx4+rEmT9NRT+vffa9ajUShiVNKcOTp1ynUTiMfixcHRauCKXnyx3p/crCwtWaJ9+xSJqLxcZWW6cEEHDmjpUnXvHjxs7VpNmpQs71IdnyivTRv/dMtlZVq4UO+847YdxOTSd626Wi+9pM8+a+aTnDvnzz5dcun35fx5nTkT3Ni+fdIdJUN9n3+ulSuDL599VsXFwSzHJWlpystTXp5mzdK8eXr/ff/2DRs0YoSmT2/4nE8/rcrKxv+5vn1VWJio3uPguTB0qCd5kpeT440d69epqd7u3Vcccvq0/zDJGzPmGvYKz/M8b/z44PWfOjWoN29ualRmpv+w/PyGd912W/AkV9refLPl/kNoeSdPellZwbdz5kwvGr36qLlzgyEZGd7hww0fkJ19xZ+YIUNa4L9xde5P21xYqK++UiTiT1zs26e2bV33hCa99prWrdPZs5I0a5ZGjGjOaZ579663p/nHH4pE1KNHvdNvd+1q7hUOffCB/v7br/PyVFTU8DBoowoLVVqqXbskqapKK1fq7bcbPqC6uvGxdQ8LXEtOwrvu3qjneVOmBH9OiooaH8LeqFt190ajUW/x4uDLefOuOKqJvdEGevXyJG/9+sR2DXciES83N/gpKSmJY+zevcHALl28c+darMvECMUU09KlwdGSRYuYuEgCBQXKzfXr4mIu3ITL7N2ro0f9OjdXI0bEMXbgQA0Y4NeVlSopSXBviRaKGO3WTa+84tfV1Zo712k3iEGHDlq2zK8jEU2bVm++CFBpaVCPG6fUOKPm0UeD+vvvE9NSiwlFjEqaPTtYyPTpp9qyxWk3iMETT2jYML/eu1cffui0G4RN3RjNz497+D33NP5UoRSWGG3bVsuXB1/Onh2s4EZoLV8eLIMuKFB5udNuECp1j8316xf38LvuavypQiksMSpp9Gg98ohfHz2q11932g1ikJ+vqVP9+tQpzZvX/KfatUuHD+vhhxPSF0Kg7nKam26Ke3jdIeFfmeNkYqvBTP1/jh3zMjL8u9q08fbvD+5qeqb+vvuu/iFEtti3/v0bvsINZur/U1npde8e3LVtW71Rsc/Ux6K21v0rk8DtuwFz3DeRqG3+/Ibfrbqf7qyoaM73u00bf3hKinfhgv3np+WEaG9UUs+eWrTIryMRzZiRLIvBrl+dOwdzTZJmzFBtrbtuEB51f3Vj+bjo5f47YOR5IZ/BDFeMSpozR337+vWuXVqzJqZRpaXyPLaEbXF9gOmZZzR8uF8fOqTi4jjGxqVdO/evTAK3ET+/7b6JRG2XL8Hs0iWoL50tMS41NcEf5MzMkC8KDl2Mtmun994L/nq9/HK9RdYIoZQUrVoVrD1bulR//eW0IYRB3YXzp0/HPbzukBtvTEA/LSl0MSpp2DBNnOjXZWVuTjWAuPTrp9mz/frsWS1c6LQbhEHddZm//Rb38EOHGn+qUApjjEoqKgreE7z1ln7/3Wk3iMGrrwaXCfn4Y+3d67QbODdwYFA3Y5XbTz8F9eDBCeinJYU0RnNytGSJX9fWsneTBDp1UlGRX0ejpg8/oTWom33ffRf38LpDBg1KQD8tKaQxKmnmTN19t19v2BBcuwmh9dhjGj3ar3fs0ObNTruBW0OHBmfrKi2N7339iRPautWv27bVyJEJ7i3RwhujaWlatcqfa/I8LVjguiHEoLhY6el+XVCgixeddgOHMjM1aVLw5dKlcYxdtsw/nbuk8ePDfx3g8MaopKFDNXmyX//8s9NWEJs77tD8+X796686f95pN3BrxozgjCRr1gQ7mE3bvVurV/t1SkowdxlioY5RSYWFyspy3QTisWCBbr/ddRMIg379NGeOX3ueJky4+kHSPXs0ZkzwLmbKlJgu5O1a2GO0a9f43g3AuQ4dgp0JXO/eeEN5eX5dVaVRozRzpk6caOSR//yjggINGxZcZ6l372DWMtzcX0TkqqZM0Ucfhf+UgwiMGqVx45higpSerm++0YMP+kflIhGtXq1339WgQbr3XmVnKzVV5eU6eFA7dwbHQyX16aOtW5tzdRoXkiBGU1O1apUGDWK+IpmsWKFt2zjbIaScHG3fruee06ZN/i3RqEpLmzqL6KhRWrMmiQ7nhf1N/SX5+Xr+eddNIB69evHhCvzfDTdo40bt2KHhw4MTjlwuJUVDhujbb/X110mUoZJSPM/BOZSOH1dNjSSlpQWX9GlaTY2OH/frjh3D/xGI1qasLNi1jHEGKRLRsWN+nZ4erHHCde3kSZWU6McfVVGhigp5nrKylJ2tAQP0wAO6+WbX/TWHmxgFgFYjOd7UA0BoEaMAYEKMAoAJMQoAJsQoAJgQowBgQowCgAkxCgAmSbCmPhYjR+qHH1w30Yrk5WnnTtdNAEmilcRoVZXOnnXdRCvSjOuKA9etVrIYtLq63km2YJSWpowM100ASaKVxCgAuMIUEwCYEKMAYEKMAoAJMQoAJsQoAJgQowBgQowCgAkxCgAmxCgAmBCjAGBCjAKACTEKACbEKACYEKMAYEKMAoAJMQoAJsQoAJgQowBgQowCgAkxCgAmxCgAmBCjAGBCjAKACTEKACbEKACYEKMAYEKMAoAJMQoAJsQoAJgQowBgQowCgAkxCgAmxCgAmBCjAGBCjAKACTEKACbEKACYEKMAYEKMAoAJMQoAJsQoAJgQowBgQowCgAkxCgAmxCgAmBCjAGBCjAKAyf8AYhn08fk1oBQAAABuelRYdHJka2l0UEtMIHJka2l0IDIwMjMuMDMuMgAAeJx7v2/tPQYg4GWAACYgZobSDYwcDFpA+j8zIzuYwcjEws6gAZJl5mZgVGBk0mAWAWkS1wNJQjED83WT5fZQ4xi+lz7YC2OX687cD2OLAQALyw0zO0UMAwAAALN6VFh0TU9MIHJka2l0IDIwMjMuMDMuMgAAeJx9kEEOwiAQRfec4l+gZACDsnBRoKnGFBJF79C994+goaWJ6R8Wn8mbyQdzODEU3f1tfmOR8iz3aecYY/BSRMQmFAM7jNcAl3pbOy4+Q3pAQeaJXFuyT3GqHYEIwRXpvBDE6avGwF3GcycqLhHQERdk9A6/4Krgggujj//xCg7Bb2L9gtoY/Bq0lFyDlMepdr6ly71+SPbsA4jFRsBFU0U7AAAASnpUWHRTTUlMRVMgcmRraXQgMjAyMy4wMy4yAAB4nPNTjvbTjo32141VqNHQNdQztDQz1zHQsdY10DM0sDQDMQ31jA3MjIEszRoA/LwKN397zGEAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Calling the object will render it\n", "testDL.mol" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# RDkit method example\n", "testDL.mol.GetNumAtoms()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## pyGamess wrapper" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Setup Gamess job" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "*** Init pyGamess job.\n", "Default Gamess input card set (use self.params to modify options dictionary, self.setGamess() to test):\n", "\n", " $contrl scftyp=rhf runtyp=energy $end\n", " $basis gbasis=sto ngauss=3 $end\n", " $system mwords=30 $end\n", " $DATA\n", "None\n", "C1\n", "O 8.0 1.3063000000 0.0000000000 0.0000000000 \n", "N 7.0 -0.1096000000 0.0000000000 0.0000000000 \n", "N 7.0 -1.1967000000 0.0000000000 0.0000000000 \n", " $END\n", "\n", "*** Found Gamess executable: /opt/gamess/gamess.00.x\n" ] } ], "source": [ "# Init the pyGamess job.\n", "# This minimally needs a gamess_path set, which defaults to '/opt/gamess'\n", "testDL.initGamess() # Using defaults" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This creates a `pyGamess` object, accessible at `self.g`, and properties can be inspected." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "/opt/gamess\n" ] } ], "source": [ "print(type(testDL.g))\n", "print(testDL.g.gamess_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All Gamess job parameters are stored in a dictionary, at `self.params` (also `self.g.options`), and can be set there directly using `self.setParam()` or dictionary methods. (For more details, see the [pyGamess docs for more info](https://github.com/kzfm/pygamess), and the [Gamess manual Input section for details of the available options](https://www.msg.chem.iastate.edu/gamess/GAMESS_Manual/input.pdf).)\n", "\n", "`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` (this is also run automatically at class init). This adds an `extras` item to the params dictionary, with additional job details including symmetry.\n", "\n", "**Note that is symmetry is set to anything other than 'C1', coordinate transforms may be required.** [See notes below.](#Symmetry-&-frame-transformations)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'contrl': {'scftyp': 'rhf', 'runtyp': 'energy'},\n", " 'basis': {'gbasis': 'sto', 'ngauss': '3'},\n", " 'statpt': {'opttol': '0.0001', 'nstep': '20'},\n", " 'system': {'mwords': '30'},\n", " 'cis': {'nstate': '1'},\n", " 'extra': {'job': None, 'sym': 'C1', 'atomList': None}}" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show all params\n", "testDL.params" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Updating existing group 'contrl'. (To replace group, pass 'resetGroup=True')\n", "Updated group 'contrl': {'scftyp': 'rhf', 'runtyp': 'energy', 'maxit': 30}\n" ] } ], "source": [ "# Params can be modified or added using the setParams method...\n", "testDL.setParam(inputGroup='contrl',inputDict={'maxit':30})" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Replacing existing group 'contrl'.\n", "Updated group 'contrl': {'scftyp': 'rhf'}\n" ] } ], "source": [ "# Pass resetGroup = True to replace all existing group settings with the passed dict (otherwise settings will be added)...\n", "testDL.setParam(inputGroup='contrl',inputDict={'scftyp': 'rhf'}, resetGroup = True)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'contrl': {'scftyp': 'rhf', 'runtyp': 'energy', 'maxit': 60},\n", " 'basis': {'gbasis': 'sto', 'ngauss': '3'},\n", " 'statpt': {'opttol': '0.0001', 'nstep': '20'},\n", " 'system': {'mwords': '30'},\n", " 'cis': {'nstate': '1'},\n", " 'extra': {'job': None, 'sym': 'C1', 'atomList': None}}" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Params can also be modified or added using dictionary syntax\n", "testDL.params['contrl']['runtyp']='energy'\n", "testDL.params['contrl']['maxit'] = 60 # Add a control param. See https://www.msg.chem.iastate.edu/gamess/GAMESS_Manual/input.pdf\n", "testDL.params" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The current Gamess input card can always be checked via `self.printGamessInput()`" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "*** Gamess input card:\n", " $contrl scftyp=rhf runtyp=energy maxit=60 $end\n", " $basis gbasis=sto ngauss=3 $end\n", " $system mwords=30 $end\n", " $DATA\n", "None\n", "C1\n", "O 8.0 1.3063000000 0.0000000000 0.0000000000 \n", "N 7.0 -0.1096000000 0.0000000000 0.0000000000 \n", "N 7.0 -1.1967000000 0.0000000000 0.0000000000 \n", " $END\n", "\n" ] } ], "source": [ "testDL.printGamessInput()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run Gamess" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Basic energy run\n", "\n", "If a valid `gamess_path` is set, then this is simple, and the basic results are returned to `self.mol`, along with some diagnostic information." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x znjoyj -ddi 1 1 jake -scr /tmp/tmpah4dzgts > /tmp/tmpah4dzgts/znjoyj.out\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "*** ddikick exit status OK: ddikick.x: exited gracefully.\n", "*** Gamess run completed OK.\n", "E = -181.1830797993\n" ] } ], "source": [ "# Run as per input card\n", "testDL.runGamess()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'-181.1830797993'" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Energy\n", "testDL.E" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Run geometry optimization\n", "\n", "Note this may fail in some cases for geometries not aligned in the preferred Gamess manner (major symmetry axis == z-axis), but in this case diagnostic info should be printed to screen." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x fdtcyj -ddi 1 1 jake -scr /tmp/tmpah4dzgts > /tmp/tmpah4dzgts/fdtcyj.out\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "*** Warning: found errors in Gamess output, type: Warnings\n", "*** Check self.mol.GetProp('Warnings') for details.\n", "*** Warning: found errors in Gamess output, type: ddikick\n", "*** Check self.mol.GetProp('ddikick') for details.\n", "*** Gamess run completed with warnings.\n", "E = -181.1830797993\n", "\n", "*** Gamess optimization run - reseting self.mol with updated coords.\n", "Note that atom ordering may change depending on Gamess output.\n", "Found 1 geometry iterations in Gamess output.\n", "Updating with new coords, output set to self.mol\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O81.30630.00.0
11N7-0.10960.00.0
22N7-1.19670.00.0
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 1.3063 0.0 0.0\n", "1 1 N 7 -0.1096 0.0 0.0\n", "2 2 N 7 -1.1967 0.0 0.0" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "*** WARNINGS FOUND IN GAMESS OUTPUT, values for E and molecular coords may reflect input molecule if run did not complete.\n", "Set geom opt coord outputs to self.geomOpt.\n" ] } ], "source": [ "# Run optimization, in this case the updated coord table is also shown if self.verbose > 1\n", "# testDL.verbose = 2\n", "testDL.runGamess(runType = 'optimize')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Troubleshooting Gamess errors\n", "\n", "In case of issues, the current outputs can be inspected (or maybe printed directly if `self.verbose > 1`)." ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " WARNING: EIGENVECTOR ROUTINE -EINVIT- DID NOT CONVERGE FOR VECTOR 3\n", " WARNING: EIGENVECTOR ROUTINE -EINVIT- DID NOT CONVERGE FOR VECTOR 7\n", " 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).\n" ] } ], "source": [ "# Check errors if present\n", "print(testDL.mol.GetProp('Warnings'))\n", "print(testDL.mol.GetProp('ddikick'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For geometry optimizations, the issue is typically the orientation of the coordinate system. A quick fix is to run the rotateFrame() method, which will try and orient the canonical RDkit alignment (symmetry axis == x-axis) to the canonical Gamess alignment (symmetry axis == z-axis), see [below for more details](#Symmetry-&-frame-transformations). Note that basic energy runs usually work without this fix, but it is required for geometry optimization or use of symmetry." ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "*** Updating coords (Pandas version).\n", "*** Set frame rotations, new coord table:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O80.00.01.3063
11N70.00.0-0.1096
22N70.00.0-1.1967
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 0.0 0.0 1.3063\n", "1 1 N 7 0.0 0.0 -0.1096\n", "2 2 N 7 0.0 0.0 -1.1967" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x jptncv -ddi 1 1 jake -scr /tmp/tmpah4dzgts > /tmp/tmpah4dzgts/jptncv.out\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "*** ddikick exit status OK: ddikick.x: exited gracefully.\n", "*** Gamess run completed OK.\n", "E = -181.2047216883\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O80.00.01.235127
11N70.00.0-0.040309
22N70.00.0-1.194818
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 0.0 0.0 1.235127\n", "1 1 N 7 0.0 0.0 -0.040309\n", "2 2 N 7 0.0 0.0 -1.194818" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "*** Gamess optimization run - reseting self.mol with updated coords.\n", "Note that atom ordering may change depending on Gamess output.\n", "Found 9 geometry iterations in Gamess output.\n", "Updated coords from Gamess run:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O80.00.01.235127
11N70.00.0-0.040309
22N70.00.0-1.194818
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 0.0 0.0 1.235127\n", "1 1 N 7 0.0 0.0 -0.040309\n", "2 2 N 7 0.0 0.0 -1.194818" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Updating with new coords, output set to self.mol\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O80.00.01.235127
11N70.00.0-0.040309
22N70.00.0-1.194818
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 0.0 0.0 1.235127\n", "1 1 N 7 0.0 0.0 -0.040309\n", "2 2 N 7 0.0 0.0 -1.194818" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Updated coords from Gamess run:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
Geom iterAtom index
000O80.00.01.306300
11N70.00.0-0.109600
22N70.00.0-1.196700
103O80.00.01.314860
14N70.00.0-0.023539
25N70.00.0-1.291321
206O80.00.01.282565
17N70.00.0-0.043055
28N70.00.0-1.239510
309O80.00.01.228473
110N70.00.0-0.047486
211N70.00.0-1.180987
4012O80.00.01.232768
113N70.00.0-0.037089
214N70.00.0-1.195679
5015O80.00.01.237216
116N70.00.0-0.041190
217N70.00.0-1.196026
6018O80.00.01.234882
119N70.00.0-0.040325
220N70.00.0-1.194557
7021O80.00.01.235127
122N70.00.0-0.040309
223N70.00.0-1.194818
8024O80.00.01.235127
125N70.00.0-0.040309
226N70.00.0-1.194818
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "Geom iter Atom index \n", "0 0 0 O 8 0.0 0.0 1.306300\n", " 1 1 N 7 0.0 0.0 -0.109600\n", " 2 2 N 7 0.0 0.0 -1.196700\n", "1 0 3 O 8 0.0 0.0 1.314860\n", " 1 4 N 7 0.0 0.0 -0.023539\n", " 2 5 N 7 0.0 0.0 -1.291321\n", "2 0 6 O 8 0.0 0.0 1.282565\n", " 1 7 N 7 0.0 0.0 -0.043055\n", " 2 8 N 7 0.0 0.0 -1.239510\n", "3 0 9 O 8 0.0 0.0 1.228473\n", " 1 10 N 7 0.0 0.0 -0.047486\n", " 2 11 N 7 0.0 0.0 -1.180987\n", "4 0 12 O 8 0.0 0.0 1.232768\n", " 1 13 N 7 0.0 0.0 -0.037089\n", " 2 14 N 7 0.0 0.0 -1.195679\n", "5 0 15 O 8 0.0 0.0 1.237216\n", " 1 16 N 7 0.0 0.0 -0.041190\n", " 2 17 N 7 0.0 0.0 -1.196026\n", "6 0 18 O 8 0.0 0.0 1.234882\n", " 1 19 N 7 0.0 0.0 -0.040325\n", " 2 20 N 7 0.0 0.0 -1.194557\n", "7 0 21 O 8 0.0 0.0 1.235127\n", " 1 22 N 7 0.0 0.0 -0.040309\n", " 2 23 N 7 0.0 0.0 -1.194818\n", "8 0 24 O 8 0.0 0.0 1.235127\n", " 1 25 N 7 0.0 0.0 -0.040309\n", " 2 26 N 7 0.0 0.0 -1.194818" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Set geom opt coord outputs to self.geomOpt.\n" ] } ], "source": [ "# A quick fix is to run the rotateFrame() method\n", "testDL.rotateFrame()\n", "testDL.verbose = 2 # If self.verbose > 1, runGamess will also print new (optimized) geom\n", "testDL.runGamess(runType = 'optimize')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Gamess full output and log files\n", "\n", "In the default case the tmp files are not kept. To keep the full Gamess output, supply a filename (full path).\n", "\n", "The current output file path is set in `self.gout`." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/tmp/tmpah4dzgts/tjweam.out\n", "cat: /tmp/tmpah4dzgts/tjweam.out: No such file or directory\n" ] } ], "source": [ "# Check for tmp file. This will always be set, but may have been deleted.\n", "print(testDL.gout)\n", "\n", "!cat {testDL.gout}" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x qcvwnh -ddi 1 1 jake -scr /tmp/tmpah4dzgts > /tmp/tmpah4dzgts/qcvwnh.out\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "*** ddikick exit status OK: ddikick.x: exited gracefully.\n", "*** Gamess run completed OK.\n", "E = -181.2047216883\n", "*** Gamess output file moved to /tmp/test.out\n" ] } ], "source": [ "# runGamess wrapper will take a path and move the output file.\n", "testDL.runGamess(fileOut = '/tmp/test.out')" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/tmp/test.out\n", "*** Contents from file /tmp/test.out.\n", "\n", " Distributed Data Interface kickoff program.\n", " Initiating 1 compute processes on 1 nodes to run the following command:\n", " /opt/gamess/gamess.00.x qcvwnh \n", "\n", " ******************************************************\n", " * GAMESS VERSION = 30 SEP 2018 (R3) *\n", " * FROM IOWA STATE UNIVERSITY *\n", " * M.W.SCHMIDT, K.K.BALDRIDGE, J.A.BOATZ, S.T.ELBERT, *\n", " * M.S.GORDON, J.H.JENSEN, S.KOSEKI, N.MATSUNAGA, *\n", " * K.A.NGUYEN, S.J.SU, T.L.WINDUS, *\n", " * TOGETHER WITH M.DUPUIS, J.A.MONTGOMERY *\n", " * J.COMPUT.CHEM. 14, 1347-1363(1993) *\n", " **************** 64 BIT LINUX VERSION ****************\n", "\n", " SINCE 1993, STUDENTS AND POSTDOCS WORKING AT IOWA STATE UNIVERSITY\n", " AND ALSO IN THEIR VARIOUS JOBS AFTER LEAVING ISU HAVE MADE IMPORTANT\n", " CONTRIBUTIONS TO THE CODE:\n", " IVANA ADAMOVIC, CHRISTINE AIKENS, YURI ALEXEEV, POOJA ARORA,\n", " ANDREY ASADCHEV, ROB BELL, PRADIPTA BANDYOPADHYAY, JONATHAN BENTZ,\n", " BRETT BODE, KURT BRORSEN, CALEB CARLIN, GALINA CHABAN, WEI CHEN,\n", " CHEOL HO CHOI, PAUL DAY, ALBERT DEFUSCO, NUWAN DESILVA, TIM DUDLEY,\n", " DMITRI FEDOROV, ALEX FINDLATER, GRAHAM FLETCHER, MARK FREITAG,\n", " KURT GLAESEMANN, ANASTASIA GUNINA,\n", " DAN KEMP, GRANT MERRILL, NORIYUKI MINEZAWA, JONATHAN MULLIN,\n", " TAKESHI NAGATA, SEAN NEDD, HEATHER NETZLOFF, BOSILJKA NJEGIC, RYAN OLSON,\n", " MIKE PAK, BUU PHAM,\n", " SPENCER PRUITT, LUKE ROSKOP, JIM SHOEMAKER, LYUDMILA SLIPCHENKO,\n", " TONY SMITH, SAROM SOK LEANG, JIE SONG, TETSUYA TAKETSUGU, SIMON WEBB,\n", " PENG XU, SOOHAENG YOO, FEDERICO ZAHARIEV\n", "\n", " ADDITIONAL CODE HAS BEEN PROVIDED BY COLLABORATORS IN OTHER GROUPS:\n", " IOWA STATE UNIVERSITY:\n", " JOE IVANIC, AARON WEST, LAIMUTIS BYTAUTAS, KLAUS RUEDENBERG\n", " UNIVERSITY OF TOKYO: KIMIHIKO HIRAO, TAKAHITO NAKAJIMA,\n", " TAKAO TSUNEDA, MUNEAKI KAMIYA, SUSUMU YANAGISAWA,\n", " KIYOSHI YAGI, MAHITO CHIBA, SEIKEN TOKURA, NAOAKI KAWAKAMI\n", " UNIVERSITY OF AARHUS: FRANK JENSEN\n", " UNIVERSITY OF IOWA: VISVALDAS KAIRYS, HUI LI\n", " NATIONAL INST. OF STANDARDS AND TECHNOLOGY: WALT STEVENS, DAVID GARMER\n", " UNIVERSITY OF PISA: BENEDETTA MENNUCCI, JACOPO TOMASI\n", " UNIVERSITY OF MEMPHIS: HENRY KURTZ, PRAKASHAN KORAMBATH\n", " UNIVERSITY OF ALBERTA: TOBY ZENG, MARIUSZ KLOBUKOWSKI\n", " UNIVERSITY OF NEW ENGLAND: MARK SPACKMAN\n", " MIE UNIVERSITY: HIROAKI UMEDA\n", " NAT. INST. OF ADVANCED INDUSTRIAL SCIENCE AND TECHNOLOGY: KAZUO KITAURA\n", " MICHIGAN STATE UNIVERSITY:\n", " KAROL KOWALSKI, MARTA WLOCH, JEFFREY GOUR, JESSE LUTZ,\n", " WEI LI, JUN SHEN, J. EMILIANO DEUSTUA, PIOTR PIECUCH\n", " UNIVERSITY OF MINNESOTA:\n", " YINAN SHU\n", " UNIVERSITY OF SILESIA: MONIKA MUSIAL, STANISLAW KUCHARSKI\n", " FACULTES UNIVERSITAIRES NOTRE-DAME DE LA PAIX:\n", " OLIVIER QUINET, BENOIT CHAMPAGNE\n", " UNIVERSITY OF CALIFORNIA - SANTA BARBARA: BERNARD KIRTMAN\n", " INSTITUTE FOR MOLECULAR SCIENCE:\n", " KAZUYA ISHIMURA, MICHIO KATOUDA, AND SHIGERU NAGASE\n", " UNIVERSITY OF NOTRE DAME: ANNA POMOGAEVA, DAN CHIPMAN\n", " KYUSHU UNIVERSITY:\n", " HARUYUKI NAKANO,\n", " FENG LONG GU, JACEK KORCHOWIEC, MARCIN MAKOWSKI, AND YURIKO AOKI,\n", " HIROTOSHI MORI AND EISAKU MIYOSHI\n", " PENNSYLVANIA STATE UNIVERSITY:\n", " TZVETELIN IORDANOV, CHET SWALINA, JONATHAN SKONE,\n", " SHARON HAMMES-SCHIFFER\n", " WASEDA UNIVERSITY:\n", " MASATO KOBAYASHI, TOMOKO AKAMA, TSUGUKI TOUMA,\n", " TAKESHI YOSHIKAWA, YASUHIRO IKABATA, JUNJI SEINO,\n", " YUYA NAKAJIMA, HIROMI NAKAI\n", " NANJING UNIVERSITY: SHUHUA LI\n", " UNIVERSITY OF NEBRASKA:\n", " PEIFENG SU, DEJUN SI, NANDUN THELLAMUREGE, YALI WANG, HUI LI\n", " UNIVERSITY OF ZURICH: ROBERTO PEVERATI, KIM BALDRIDGE\n", " N. COPERNICUS UNIVERSITY AND JACKSON STATE UNIVERSITY:\n", " MARIA BARYSZ\n", " UNIVERSITY OF COPENHAGEN: Jimmy Kromann, CASPER STEINMANN\n", " TOKYO INSTITUTE OF TECHNOLOGY: HIROYA NAKATA\n", " NAGOYA UNIVERSITY: YOSHIO NISHIMOTO, STEPHAN IRLE\n", " MOSCOW STATE UNIVERSITY: VLADIMIR MIRONOV\n", "\n", " EXECUTION OF GAMESS BEGUN Thu Jan 25 14:15:21 2024\n", "\n", " ECHO OF THE FIRST FEW INPUT CARDS -\n", " INPUT CARD> $contrl scftyp=rhf runtyp=energy maxit=60 $end \n", " INPUT CARD> $basis gbasis=sto ngauss=3 $end \n", " INPUT CARD> $system mwords=30 $end \n", " INPUT CARD> $DATA \n", " INPUT CARD>None \n", " INPUT CARD>C1 \n", " INPUT CARD>O 8.0 0.0000000000 0.0000000000 1.2351270000 \n", " INPUT CARD>N 7.0 0.0000000000 0.0000000000 -0.0403090000 \n", " INPUT CARD>N 7.0 0.0000000000 0.0000000000 -1.1948180000 \n", " INPUT CARD> $END \n", " 30000000 WORDS OF MEMORY AVAILABLE\n", "\n", " BASIS OPTIONS\n", " -------------\n", " GBASIS=STO IGAUSS= 3 POLAR=NONE \n", " NDFUNC= 0 NFFUNC= 0 DIFFSP= F\n", " NPFUNC= 0 DIFFS= F BASNAM= \n", "\n", "\n", " RUN TITLE\n", " ---------\n", " None \n", "\n", " THE POINT GROUP OF THE MOLECULE IS C1 \n", " THE ORDER OF THE PRINCIPAL AXIS IS 0\n", "\n", " ATOM ATOMIC COORDINATES (BOHR)\n", " CHARGE X Y Z\n", " O 8.0 0.0000000000 0.0000000000 2.3340515900\n", " N 7.0 0.0000000000 0.0000000000 -0.0761729648\n", " N 7.0 0.0000000000 0.0000000000 -2.2578786252\n", "\n", " INTERNUCLEAR DISTANCES (ANGS.)\n", " ------------------------------\n", "\n", " 1 O 2 N 3 N \n", "\n", " 1 O 0.0000000 1.2754360 * 2.4299450 *\n", " 2 N 1.2754360 * 0.0000000 1.1545090 *\n", " 3 N 2.4299450 * 1.1545090 * 0.0000000 \n", "\n", " * ... LESS THAN 3.000\n", "\n", "\n", " ATOMIC BASIS SET\n", " ----------------\n", " THE CONTRACTED PRIMITIVE FUNCTIONS HAVE BEEN UNNORMALIZED\n", " THE CONTRACTED BASIS FUNCTIONS ARE NOW NORMALIZED TO UNITY\n", "\n", " SHELL TYPE PRIMITIVE EXPONENT CONTRACTION COEFFICIENT(S)\n", "\n", " O \n", "\n", " 1 S 1 130.7093214 0.154328967295\n", " 1 S 2 23.8088661 0.535328142282\n", " 1 S 3 6.4436083 0.444634542185\n", "\n", " 2 L 4 5.0331513 -0.099967229187 0.155916274999\n", " 2 L 5 1.1695961 0.399512826089 0.607683718598\n", " 2 L 6 0.3803890 0.700115468880 0.391957393099\n", "\n", " N \n", "\n", " 3 S 7 99.1061690 0.154328967295\n", " 3 S 8 18.0523124 0.535328142282\n", " 3 S 9 4.8856602 0.444634542185\n", "\n", " 4 L 10 3.7804559 -0.099967229187 0.155916274999\n", " 4 L 11 0.8784966 0.399512826089 0.607683718598\n", " 4 L 12 0.2857144 0.700115468880 0.391957393099\n", "\n", " N \n", "\n", " 5 S 13 99.1061690 0.154328967295\n", " 5 S 14 18.0523124 0.535328142282\n", " 5 S 15 4.8856602 0.444634542185\n", "\n", " 6 L 16 3.7804559 -0.099967229187 0.155916274999\n", " 6 L 17 0.8784966 0.399512826089 0.607683718598\n", " 6 L 18 0.2857144 0.700115468880 0.391957393099\n", "\n", " TOTAL NUMBER OF BASIS SET SHELLS = 6\n", " NUMBER OF CARTESIAN GAUSSIAN BASIS FUNCTIONS = 15\n", " NUMBER OF ELECTRONS = 22\n", " CHARGE OF MOLECULE = 0\n", " SPIN MULTIPLICITY = 1\n", " NUMBER OF OCCUPIED ORBITALS (ALPHA) = 11\n", " NUMBER OF OCCUPIED ORBITALS (BETA ) = 11\n", " TOTAL NUMBER OF ATOMS = 3\n", " THE NUCLEAR REPULSION ENERGY IS 57.8891485376\n", "\n", " THIS MOLECULE IS RECOGNIZED AS BEING LINEAR,\n", " ORBITAL LZ DEGENERACY TOLERANCE ETOLLZ= 1.00E-06\n", "\n", " $CONTRL OPTIONS\n", " ---------------\n", " SCFTYP=RHF RUNTYP=ENERGY EXETYP=RUN \n", " MPLEVL= 0 CITYP =NONE CCTYP =NONE VBTYP =NONE \n", " DFTTYP=NONE TDDFT =NONE \n", " MULT = 1 ICHARG= 0 NZVAR = 0 COORD =UNIQUE \n", " PP =NONE RELWFN=NONE LOCAL =NONE NUMGRD= F\n", " ISPHER= -1 NOSYM = 0 MAXIT = 60 UNITS =ANGS \n", " PLTORB= F MOLPLT= F AIMPAC= F FRIEND= \n", " NPRINT= 7 IREST = 0 GEOM =INPUT \n", " NORMF = 0 NORMP = 0 ITOL = 20 ICUT = 9\n", " INTTYP=BEST GRDTYP=BEST QMTTOL= 1.0E-06\n", "\n", " $SYSTEM OPTIONS\n", " ---------------\n", " REPLICATED MEMORY= 30000000 WORDS (ON EVERY NODE).\n", " DISTRIBUTED MEMDDI= 0 MILLION WORDS IN AGGREGATE,\n", " MEMDDI DISTRIBUTED OVER 1 PROCESSORS IS 0 WORDS/PROCESSOR.\n", " TOTAL MEMORY REQUESTED ON EACH PROCESSOR= 30000000 WORDS.\n", " TIMLIM= 525600.00 MINUTES, OR 365.0 DAYS.\n", " PARALL= F BALTYP= DLB KDIAG= 0 COREFL= F\n", " MXSEQ2= 300 MXSEQ3= 150 mem10= 0\n", "\n", " ----------------\n", " PROPERTIES INPUT\n", " ----------------\n", "\n", " MOMENTS FIELD POTENTIAL DENSITY\n", " IEMOM = 1 IEFLD = 0 IEPOT = 0 IEDEN = 0\n", " WHERE =COMASS WHERE =NUCLEI WHERE =NUCLEI WHERE =NUCLEI \n", " OUTPUT=BOTH OUTPUT=BOTH OUTPUT=BOTH OUTPUT=BOTH \n", " IEMINT= 0 IEFINT= 0 IEDINT= 0\n", " MORB = 0\n", " EXTRAPOLATION IN EFFECT\n", " SOSCF IN EFFECT\n", " ORBITAL PRINTING OPTION: NPREO= 1 15 2 1\n", "\n", " -------------------------------\n", " INTEGRAL TRANSFORMATION OPTIONS\n", " -------------------------------\n", " NWORD = 0\n", " CUTOFF = 1.0E-09 MPTRAN = 0\n", " DIRTRF = F AOINTS =DUP \n", "\n", " ----------------------\n", " INTEGRAL INPUT OPTIONS\n", " ----------------------\n", " NOPK = 1 NORDER= 0 SCHWRZ= F\n", "\n", " ------------------------------------------\n", " THE POINT GROUP IS C1 , NAXIS= 0, ORDER= 1\n", " ------------------------------------------\n", "\n", " DIMENSIONS OF THE SYMMETRY SUBSPACES ARE\n", " A = 15\n", "\n", " ..... DONE SETTING UP THE RUN .....\n", " STEP CPU TIME = 0.00 TOTAL CPU TIME = 0.0 ( 0.0 MIN)\n", " TOTAL WALL CLOCK TIME= 0.0 SECONDS, CPU UTILIZATION IS 100.00%\n", "\n", " ********************\n", " 1 ELECTRON INTEGRALS\n", " ********************\n", " ...... END OF ONE-ELECTRON INTEGRALS ......\n", " STEP CPU TIME = 0.01 TOTAL CPU TIME = 0.0 ( 0.0 MIN)\n", " TOTAL WALL CLOCK TIME= 0.0 SECONDS, CPU UTILIZATION IS 100.00%\n", "\n", " -------------\n", " GUESS OPTIONS\n", " -------------\n", " GUESS =HUCKEL NORB = 0 NORDER= 0\n", " MIX = F PRTMO = F PUNMO = F\n", " TOLZ = 1.0E-08 TOLE = 1.0E-05\n", " SYMDEN= F PURIFY= F\n", "\n", " INITIAL GUESS ORBITALS GENERATED BY HUCKEL ROUTINE.\n", " HUCKEL GUESS REQUIRES 4764 WORDS.\n", "\n", " SYMMETRIES FOR INITIAL GUESS ORBITALS FOLLOW. BOTH SET(S).\n", " 11 ORBITALS ARE OCCUPIED ( 3 CORE ORBITALS).\n", " 4=A 5=A 6=A 7=A 8=A 9=A 10=A \n", " 11=A 12=A 13=A 14=A 15=A \n", " ...... END OF INITIAL ORBITAL SELECTION ......\n", " STEP CPU TIME = 0.00 TOTAL CPU TIME = 0.0 ( 0.0 MIN)\n", " TOTAL WALL CLOCK TIME= 0.0 SECONDS, CPU UTILIZATION IS 100.00%\n", "\n", " ----------------------\n", " AO INTEGRAL TECHNOLOGY\n", " ----------------------\n", " S,P,L SHELL ROTATED AXIS INTEGRALS, REPROGRAMMED BY\n", " KAZUYA ISHIMURA (IMS) AND JOSE SIERRA (SYNSTAR).\n", " S,P,D,L SHELL ROTATED AXIS INTEGRALS PROGRAMMED BY\n", " KAZUYA ISHIMURA (INSTITUTE FOR MOLECULAR SCIENCE).\n", " S,P,D,F,G SHELL TO TOTAL QUARTET ANGULAR MOMENTUM SUM 5,\n", " ERIC PROGRAM BY GRAHAM FLETCHER (ELORET AND NASA ADVANCED\n", " SUPERCOMPUTING DIVISION, AMES RESEARCH CENTER).\n", " S,P,D,F,G,L SHELL GENERAL RYS QUADRATURE PROGRAMMED BY\n", " MICHEL DUPUIS (PACIFIC NORTHWEST NATIONAL LABORATORY).\n", "\n", " --------------------\n", " 2 ELECTRON INTEGRALS\n", " --------------------\n", "\n", " THE -PK- OPTION IS OFF, THE INTEGRALS ARE NOT IN SUPERMATRIX FORM.\n", " STORING 15000 INTEGRALS/RECORD ON DISK, USING 12 BYTES/INTEGRAL.\n", " TWO ELECTRON INTEGRAL EVALUATION REQUIRES 89377 WORDS OF MEMORY.\n", " II,JST,KST,LST = 1 1 1 1 NREC = 1 INTLOC = 1\n", " II,JST,KST,LST = 2 1 1 1 NREC = 1 INTLOC = 2\n", " II,JST,KST,LST = 3 1 1 1 NREC = 1 INTLOC = 34\n", " II,JST,KST,LST = 4 1 1 1 NREC = 1 INTLOC = 80\n", " II,JST,KST,LST = 5 1 1 1 NREC = 1 INTLOC = 506\n", " II,JST,KST,LST = 6 1 1 1 NREC = 1 INTLOC = 729\n", " TOTAL NUMBER OF NONZERO TWO-ELECTRON INTEGRALS = 2309\n", " 1 INTEGRAL RECORDS WERE STORED ON DISK FILE 8.\n", " ...... END OF TWO-ELECTRON INTEGRALS .....\n", " STEP CPU TIME = 0.01 TOTAL CPU TIME = 0.0 ( 0.0 MIN)\n", " TOTAL WALL CLOCK TIME= 0.0 SECONDS, CPU UTILIZATION IS 100.00%\n", "\n", " --------------------------\n", " RHF SCF CALCULATION\n", " --------------------------\n", "\n", " NUCLEAR ENERGY = 57.8891485376\n", " MAXIT = 60 NPUNCH= 2\n", " EXTRAP=T DAMP=F SHIFT=F RSTRCT=F DIIS=F DEM=F SOSCF=T\n", " DENSITY MATRIX CONV= 1.00E-05\n", " SOSCF WILL OPTIMIZE 44 ORBITAL ROTATIONS, SOGTOL= 0.250\n", " MEMORY REQUIRED FOR RHF ITERS= 31961 WORDS.\n", "\n", " ITER EX DEM TOTAL ENERGY E CHANGE DENSITY CHANGE ORB. GRAD\n", " 1 0 0 -180.7238079779 -180.7238079779 0.660736387 0.000000000\n", " ---------------START SECOND ORDER SCF---------------\n", " 2 1 0 -181.0836015402 -0.3597935624 0.427865508 0.159013058\n", " 3 2 0 -181.1160394403 -0.0324379001 0.243273093 0.126000619\n", " 4 3 0 -181.1957291392 -0.0796896989 0.127989704 0.047620555\n", " 5 4 0 -181.2016339913 -0.0059048521 0.040297486 0.025416306\n", " 6 5 0 -181.2045894393 -0.0029554481 0.009025426 0.002820831\n", " 7 6 0 -181.2047002250 -0.0001107857 0.006398880 0.001328239\n", " 8 7 0 -181.2047214849 -0.0000212599 0.000413802 0.000143818\n", " 9 8 0 -181.2047216547 -0.0000001698 0.000298380 0.000051251\n", " 10 9 0 -181.2047216879 -0.0000000332 0.000027016 0.000014773\n", " 11 10 0 -181.2047216882 -0.0000000003 0.000006117 0.000002884\n", " 12 11 0 -181.2047216883 -0.0000000000 0.000000752 0.000000233\n", "\n", " -----------------\n", " DENSITY CONVERGED\n", " -----------------\n", " TIME TO FORM FOCK OPERATORS= 0.0 SECONDS ( 0.0 SEC/ITER)\n", " TIME TO SOLVE SCF EQUATIONS= 0.0 SECONDS ( 0.0 SEC/ITER)\n", "\n", " FINAL RHF ENERGY IS -181.2047216883 AFTER 12 ITERATIONS\n", "\n", " LZ VALUE ANALYSIS FOR THE MOS\n", " ----------------------------------------\n", " MO 1 ( 1) HAS LZ(WEIGHT)= 0.00(100.0%) \n", " MO 2 ( 2) HAS LZ(WEIGHT)= 0.00(100.0%) \n", " MO 3 ( 3) HAS LZ(WEIGHT)= 0.00(100.0%) \n", " MO 4 ( 4) HAS LZ(WEIGHT)= 0.00(100.0%) \n", " MO 5 ( 5) HAS LZ(WEIGHT)= 0.00(100.0%) \n", " MO 6 ( 6) HAS LZ(WEIGHT)= 0.00(100.0%) \n", " MO 7 ( 7) HAS LZ(WEIGHT)=-1.00( 50.0%) 1.00( 50.0%) \n", " MO 8 ( 7) HAS LZ(WEIGHT)=-1.00( 50.0%) 1.00( 50.0%) \n", " MO 9 ( 8) HAS LZ(WEIGHT)= 0.00(100.0%) \n", " MO 10 ( 9) HAS LZ(WEIGHT)=-1.00( 50.0%) 1.00( 50.0%) \n", " MO 11 ( 9) HAS LZ(WEIGHT)=-1.00( 50.0%) 1.00( 50.0%) \n", " MO 12 ( 10) HAS LZ(WEIGHT)=-1.00( 50.0%) 1.00( 50.0%) \n", " MO 13 ( 10) HAS LZ(WEIGHT)=-1.00( 50.0%) 1.00( 50.0%) \n", " MO 14 ( 11) HAS LZ(WEIGHT)= 0.00(100.0%) \n", " MO 15 ( 12) HAS LZ(WEIGHT)= 0.00(100.0%) \n", "\n", " ------------\n", " EIGENVECTORS\n", " ------------\n", "\n", " 1 2 3 4 5\n", " -20.3101 -15.6684 -15.5054 -1.4784 -1.3050\n", " A A A A A \n", " 1 O 1 S 0.994521 0.000368 -0.000002 -0.112063 -0.175539\n", " 2 O 1 S 0.023722 -0.003860 -0.000081 0.382992 0.617717\n", " 3 O 1 X -0.000000 -0.000000 0.000000 -0.000000 0.000000\n", " 4 O 1 Y -0.000000 -0.000000 0.000000 -0.000000 0.000000\n", " 5 O 1 Z -0.004395 0.002307 0.000065 -0.104386 -0.087235\n", " 6 N 2 S 0.000420 0.994008 -0.002574 -0.190648 0.020098\n", " 7 N 2 S -0.004554 0.027883 -0.008861 0.573738 -0.041247\n", " 8 N 2 X -0.000000 -0.000000 0.000000 -0.000000 0.000000\n", " 9 N 2 Y -0.000000 -0.000000 0.000000 -0.000000 0.000000\n", " 10 N 2 Z -0.005390 -0.002942 0.005500 -0.060099 0.397917\n", " 11 N 3 S 0.000006 0.003133 0.994207 -0.120348 0.128087\n", " 12 N 3 S -0.000877 -0.007170 0.027020 0.340323 -0.367292\n", " 13 N 3 X -0.000000 -0.000000 0.000000 -0.000000 0.000000\n", " 14 N 3 Y -0.000000 -0.000000 0.000000 -0.000000 0.000000\n", " 15 N 3 Z -0.000640 -0.004210 0.007705 0.163870 -0.133984\n", "\n", " 6 7 8 9 10\n", " -0.7289 -0.6620 -0.6620 -0.5855 -0.3560\n", " A A A A A \n", " 1 O 1 S -0.139872 -0.000000 0.000000 0.076373 -0.000000\n", " 2 O 1 S 0.651573 -0.000000 0.000000 -0.389374 -0.000000\n", " 3 O 1 X 0.000000 0.305187 -0.193924 -0.000000 0.196032\n", " 4 O 1 Y 0.000000 0.193924 0.305187 -0.000000 0.821561\n", " 5 O 1 Z 0.322387 -0.000000 0.000000 -0.328698 -0.000000\n", " 6 N 2 S 0.136535 -0.000000 0.000000 0.003394 -0.000000\n", " 7 N 2 S -0.597056 -0.000000 0.000000 0.014496 -0.000000\n", " 8 N 2 X 0.000000 0.576401 -0.366261 -0.000000 -0.022612\n", " 9 N 2 Y 0.000000 0.366261 0.576401 -0.000000 -0.094764\n", " 10 N 2 Z -0.198325 -0.000000 0.000000 0.480332 -0.000000\n", " 11 N 3 S -0.139942 -0.000000 0.000000 -0.118990 -0.000000\n", " 12 N 3 S 0.603592 -0.000000 0.000000 0.621231 -0.000000\n", " 13 N 3 X 0.000000 0.356087 -0.226267 -0.000000 -0.123512\n", " 14 N 3 Y 0.000000 0.226267 0.356087 -0.000000 -0.517632\n", " 15 N 3 Z -0.206288 -0.000000 0.000000 -0.515008 -0.000000\n", "\n", " 11 12 13 14 15\n", " -0.3560 0.2266 0.2266 0.4956 1.1292\n", " A A A A A \n", " 1 O 1 S -0.000000 0.000000 0.000000 0.068527 0.061891\n", " 2 O 1 S -0.000000 0.000000 0.000000 -0.407452 -0.434423\n", " 3 O 1 X 0.821561 -0.107211 -0.414072 -0.000000 -0.000000\n", " 4 O 1 Y -0.196032 -0.414072 0.107211 -0.000000 -0.000000\n", " 5 O 1 Z -0.000000 0.000000 0.000000 0.881539 0.563952\n", " 6 N 2 S -0.000000 0.000000 0.000000 -0.163174 0.050716\n", " 7 N 2 S -0.000000 0.000000 0.000000 1.117036 -0.559477\n", " 8 N 2 X -0.094764 0.197370 0.762288 -0.000000 -0.000000\n", " 9 N 2 Y 0.022612 0.762288 -0.197370 -0.000000 -0.000000\n", " 10 N 2 Z -0.000000 0.000000 0.000000 0.123196 1.363065\n", " 11 N 3 S -0.000000 0.000000 0.000000 0.066841 -0.104770\n", " 12 N 3 S -0.000000 0.000000 0.000000 -0.432367 0.945314\n", " 13 N 3 X -0.517632 -0.195308 -0.754327 -0.000000 -0.000000\n", " 14 N 3 Y 0.123512 -0.754327 0.195308 -0.000000 -0.000000\n", " 15 N 3 Z -0.000000 0.000000 0.000000 -0.639169 1.012984\n", " ...... END OF RHF CALCULATION ......\n", " STEP CPU TIME = 0.00 TOTAL CPU TIME = 0.0 ( 0.0 MIN)\n", " TOTAL WALL CLOCK TIME= 0.0 SECONDS, CPU UTILIZATION IS 100.00%\n", "\n", " ----------------------------------------------------------------\n", " PROPERTY VALUES FOR THE RHF SELF-CONSISTENT FIELD WAVEFUNCTION\n", " ----------------------------------------------------------------\n", "\n", " -----------------\n", " ENERGY COMPONENTS\n", " -----------------\n", "\n", " WAVEFUNCTION NORMALIZATION = 1.0000000000\n", "\n", " ONE ELECTRON ENERGY = -362.9526476470\n", " TWO ELECTRON ENERGY = 123.8587774211\n", " NUCLEAR REPULSION ENERGY = 57.8891485376\n", " ------------------\n", " TOTAL ENERGY = -181.2047216883\n", "\n", " ELECTRON-ELECTRON POTENTIAL ENERGY = 123.8587774211\n", " NUCLEUS-ELECTRON POTENTIAL ENERGY = -542.0062674089\n", " NUCLEUS-NUCLEUS POTENTIAL ENERGY = 57.8891485376\n", " ------------------\n", " TOTAL POTENTIAL ENERGY = -360.2583414502\n", " TOTAL KINETIC ENERGY = 179.0536197619\n", " VIRIAL RATIO (V/T) = 2.0120137305\n", "\n", " ...... PI ENERGY ANALYSIS ......\n", "\n", " ENERGY ANALYSIS:\n", " FOCK ENERGY= -115.2350930820\n", " BARE H ENERGY= -362.9526476470\n", " ELECTRONIC ENERGY = -239.0938703645\n", " KINETIC ENERGY= 179.0536197619\n", " N-N REPULSION= 57.8891485376\n", " TOTAL ENERGY= -181.2047218269\n", " SIGMA PART(1+2)= -195.1428709933\n", " (K,V1,2)= 162.9512486081 -442.0736108680 83.9794912666\n", " PI PART(1+2)= -43.9509993712\n", " (K,V1,2)= 16.1023711538 -99.9326565409 39.8792860159\n", " SIGMA SKELETON, ERROR= -137.2537224557 0.0000000000\n", " MIXED PART= 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00\n", " ...... END OF PI ENERGY ANALYSIS ......\n", "\n", " ---------------------------------------\n", " MULLIKEN AND LOWDIN POPULATION ANALYSES\n", " ---------------------------------------\n", "\n", " ATOMIC MULLIKEN POPULATION IN EACH MOLECULAR ORBITAL\n", "\n", " 1 2 3 4 5\n", "\n", " 2.000000 2.000000 2.000000 2.000000 2.000000\n", "\n", " 1 2.000773 -0.000397 -0.000000 0.448171 0.895684\n", " 2 -0.000771 2.001775 -0.001738 1.017968 0.660247\n", " 3 -0.000002 -0.001378 2.001738 0.533861 0.444069\n", "\n", " 6 7 8 9 10\n", "\n", " 2.000000 2.000000 2.000000 2.000000 2.000000\n", "\n", " 1 0.855069 0.341908 0.341908 0.469754 1.394707\n", " 2 0.483611 1.155625 1.155625 0.349136 0.018853\n", " 3 0.661319 0.502467 0.502467 1.181110 0.586440\n", "\n", " 11\n", "\n", " 2.000000\n", "\n", " 1 1.394707\n", " 2 0.018853\n", " 3 0.586440\n", "\n", " ----- POPULATIONS IN EACH AO -----\n", " MULLIKEN LOWDIN\n", " 1 O 1 S 1.99879 1.99799\n", " 2 O 1 S 1.91465 1.86685\n", " 3 O 1 X 1.73661 1.73801\n", " 4 O 1 Y 1.73661 1.73801\n", " 5 O 1 Z 0.75562 0.84110\n", " 6 N 2 S 1.99649 1.99278\n", " 7 N 2 S 1.40149 1.30498\n", " 8 N 2 X 1.17448 1.16636\n", " 9 N 2 Y 1.17448 1.16636\n", " 10 N 2 Z 1.11225 1.12483\n", " 11 N 3 S 1.99786 1.99704\n", " 12 N 3 S 1.77667 1.69853\n", " 13 N 3 X 1.08891 1.09562\n", " 14 N 3 Y 1.08891 1.09562\n", " 15 N 3 Z 1.04619 1.17590\n", "\n", " ----- MULLIKEN ATOMIC OVERLAP POPULATIONS -----\n", " (OFF-DIAGONAL ELEMENTS NEED TO BE MULTIPLIED BY 2)\n", "\n", " 1 2 3\n", "\n", " 1 7.9278182\n", " 2 0.2255980 6.0773158\n", " 3 -0.0111331 0.5562713 6.4533936\n", "\n", " TOTAL MULLIKEN AND LOWDIN ATOMIC POPULATIONS\n", " ATOM MULL.POP. CHARGE LOW.POP. CHARGE\n", " 1 O 8.142283 -0.142283 8.181970 -0.181970\n", " 2 N 6.859185 0.140815 6.755318 0.244682\n", " 3 N 6.998532 0.001468 7.062712 -0.062712\n", "\n", " -------------------------------\n", " BOND ORDER AND VALENCE ANALYSIS BOND ORDER THRESHOLD=0.050\n", " -------------------------------\n", "\n", " BOND BOND BOND\n", " ATOM PAIR DIST ORDER ATOM PAIR DIST ORDER ATOM PAIR DIST ORDER\n", " 1 2 1.275 1.307 1 3 2.430 0.516 2 3 1.155 2.453\n", "\n", " TOTAL BONDED FREE\n", " ATOM VALENCE VALENCE VALENCE\n", " 1 O 1.823 1.823 0.000\n", " 2 N 3.760 3.760 0.000\n", " 3 N 2.969 2.969 0.000\n", "\n", " ---------------------\n", " ELECTROSTATIC MOMENTS\n", " ---------------------\n", "\n", " POINT 1 X Y Z (BOHR) CHARGE\n", " 0.000000 0.000000 0.105658 -0.00 (A.U.)\n", " DX DY DZ /D/ (DEBYE)\n", " 0.000000 0.000000 -0.489412 0.489412\n", " ...... END OF PROPERTY EVALUATION ......\n", " STEP CPU TIME = 0.00 TOTAL CPU TIME = 0.0 ( 0.0 MIN)\n", " TOTAL WALL CLOCK TIME= 0.0 SECONDS, CPU UTILIZATION IS 100.00%\n", " 580000 WORDS OF DYNAMIC MEMORY USED\n", " EXECUTION OF GAMESS TERMINATED NORMALLY Thu Jan 25 14:15:21 2024\n", " DDI: 263640 bytes (0.3 MB / 0 MWords) used by master data server.\n", "\n", " ----------------------------------------\n", " CPU timing information for all processes\n", " ========================================\n", " 0: 0.27 + 0.00 = 0.27\n", " ----------------------------------------\n", " ddikick.x: exited gracefully.\n", "\n" ] } ], "source": [ "# In this case the complete output file is retained, and can also be printed\n", "print(testDL.gout)\n", "testDL.printGamess()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "*** Contents from file /tmp/test.out.\n", "Showing 20 tail lines.\n", " ELECTROSTATIC MOMENTS\n", " ---------------------\n", "\n", " POINT 1 X Y Z (BOHR) CHARGE\n", " 0.000000 0.000000 0.105658 -0.00 (A.U.)\n", " DX DY DZ /D/ (DEBYE)\n", " 0.000000 0.000000 -0.489412 0.489412\n", " ...... END OF PROPERTY EVALUATION ......\n", " STEP CPU TIME = 0.00 TOTAL CPU TIME = 0.0 ( 0.0 MIN)\n", " TOTAL WALL CLOCK TIME= 0.0 SECONDS, CPU UTILIZATION IS 100.00%\n", " 580000 WORDS OF DYNAMIC MEMORY USED\n", " EXECUTION OF GAMESS TERMINATED NORMALLY Thu Jan 25 14:15:21 2024\n", " DDI: 263640 bytes (0.3 MB / 0 MWords) used by master data server.\n", "\n", " ----------------------------------------\n", " CPU timing information for all processes\n", " ========================================\n", " 0: 0.27 + 0.00 = 0.27\n", " ----------------------------------------\n", " ddikick.x: exited gracefully.\n" ] } ], "source": [ "# For quick checks, there are also head and tail functions\n", "testDL.tail()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Symmetry & frame transformations\n", "\n", "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.\n", "\n", "**For more details, see [the symmetry-focussed docs](ESgamess_class_demo_symmetry_011223-tidy.html).**\n", "\n", "From the [Gamess manual](https://www.msg.chem.iastate.edu/gamess/GAMESS_Manual/docs-input.txt):\n", "\n", "```\n", " The 'master frame' is just a standard orientation for\n", "the molecule. By default, the 'master frame' assumes that\n", " 1. z is the principal rotation axis (if any),\n", " 2. x is a perpendicular two-fold axis (if any),\n", " 3. xz is the sigma-v plane (if any), and\n", " 4. xy is the sigma-h plane (if any).\n", "Use the lowest number rule that applies to your molecule.\n", "\n", " Some examples of these rules:\n", "Ammonia (C3v): the unique H lies in the XZ plane (R1,R3).\n", "Ethane (D3d): the unique H lies in the YZ plane (R1,R2).\n", "Methane (Td): the H lies in the XYZ direction (R2). Since\n", " there is more than one 3-fold, R1 does not apply.\n", "HP=O (Cs): the mirror plane is the XY plane (R4).\n", "\n", "In general, it is a poor idea to try to reorient the\n", "molecule. Certain sections of the program, such as the\n", "orbital symmetry assignment, do not know how to deal with\n", "cases where the 'master frame' has been changed.\n", "\n", "Linear molecules (C4v or D4h) must lie along the z axis,\n", "so do not try to reorient linear molecules.\n", "```\n", "\n", "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](https://nbviewer.jupyter.org/github/iwatobipen/playground/blob/master/rotation_mol.ipynb). (Thanks to [iwatobipen](https://github.com/iwatobipen) and the [RDkit list](https://sourceforge.net/p/rdkit/mailman/message/36598250/).)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "*** Updating coords (Pandas version).\n", "*** Set frame rotations, new coord table:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O80.00.01.235127
11N70.00.0-0.040309
22N70.00.0-1.194818
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 0.0 0.0 1.235127\n", "1 1 N 7 0.0 0.0 -0.040309\n", "2 2 N 7 0.0 0.0 -1.194818" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Rotate the frame - default should align to Z-axis\n", "testDL.rotateFrame()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Symmetry groups supported (from the [Gamess manual](https://www.msg.chem.iastate.edu/gamess/GAMESS_Manual/docs-input.txt)):\n", "\n", "```\n", "GROUP is the Schoenflies symbol of the symmetry group,\n", "you may choose from\n", " C1, Cs, Ci, Cn, S2n, Cnh, Cnv, Dn, Dnh, Dnd,\n", " T, Th, Td, O, Oh.\n", "\n", "NAXIS is the order of the highest rotation axis, and\n", "must be given when the name of the group contains an N.\n", "For example, \"Cnv 2\" is C2v. \"S2n 3\" means S6. Use of\n", "NAXIS up to 8 is supported in each axial groups.\n", "\n", "For linear molecules, choose either Cnv or Dnh, and enter\n", "NAXIS as 4. Enter atoms as Dnh with NAXIS=2. If the\n", "electronic state of either is degenerate, check the note\n", "about the effect of symmetry in the electronic state\n", "in the SCF section of REFS.DOC.\n", "```" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set sym = CNV 8\n", "\n", "*** Gamess input card:\n", " $contrl scftyp=rhf runtyp=energy maxit=60 $end\n", " $basis gbasis=sto ngauss=3 $end\n", " $system mwords=30 $end\n", " $DATA\n", "N2O sym testing\n", "CNV 8\n", "\n", "O 8.0 0.0000000000 0.0000000000 1.2351270000 \n", "N 7.0 0.0000000000 0.0000000000 -0.0403090000 \n", "N 7.0 0.0000000000 0.0000000000 -1.1948180000 \n", " $END\n", "\n" ] } ], "source": [ "# Set Gamess input with symmetry\n", "testDL.setGamess(note='N2O sym testing', sym='CNV 8')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "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.\n", "\n", "For example..." ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set sym = CNV 8\n", "Set atomList = [0, 2]\n", "\n", "*** Gamess input card:\n", " $contrl scftyp=rhf runtyp=energy maxit=60 $end\n", " $basis gbasis=sto ngauss=3 $end\n", " $system mwords=30 $end\n", " $DATA\n", "N2O sym testing\n", "CNV 8\n", "\n", "O 8.0 0.0000000000 0.0000000000 1.2351270000 \n", "N 7.0 0.0000000000 0.0000000000 -1.1948180000 \n", " $END\n", "\n" ] } ], "source": [ "testDL.setGamess(note='N2O sym testing', sym='CNV 8', atomList = [0,2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "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!)." ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'job': 'N2O sym testing', 'sym': 'CNV 8', 'atomList': [0, 2]}" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "testDL.params['extra']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**For more details, see [the symmetry-focussed docs](ESgamess_class_demo_symmetry_011223-tidy.html).**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Additional Gamess parameters\n", "\n", "For the full set of [Gamess input options (inc. basis sets), see the manual](https://www.msg.chem.iastate.edu/gamess/GAMESS_Manual/docs-input.txt).\n", "\n", "As per the above input cards, `pyGamess` writes only the minimal set of `$contrl`, `$basis` and `$system` inputs, using the supplied parameters dictionary.\n", "\n", "For setting the basis set, a helper method `self.setBasis()` can be used. For general parameter setting, `self.setParam()` can be used, along with the specific Gamess group name for the paramter." ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set basis to specification 6-31G**.\n", "self.params['basis']: {'gbasis': 'N31', 'ngauss': '6', 'ndfunc': '1', 'npfunc': '1'}\n" ] } ], "source": [ "# The setBasis method wraps the PyGamess basis_set() method\n", "testDL.setBasis(\"6-31G**\")" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "basis type not found\n", "basis type not found\n", "ERROR:pygamess.gamess:basis type not found\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "*** Basis configuration ACCD not supported by PyGamess.\n", "To set manually, pass Gamess basis params as a dictionary to self.setParam().\n", "E.g. for 'ACCD' configure with self.setParam(inputGroup='basis',inputDict={'gbasis':'ACCD'}), \n", "Any other required params can also be set, e.g. self.setParam(inputGroup='contrl',inputDict={'ISPHER':'1'}).\n", "See the Gamess manual for settings, https://www.msg.chem.iastate.edu/gamess/GAMESS_Manual/docs-input.txt.\n" ] } ], "source": [ "# This only has limited support...\n", "testDL.setBasis(\"ACCD\")" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Replacing existing group 'basis'.\n", "Updated group 'basis': {'gbasis': 'ACCD'}\n", "Updating existing group 'contrl'. (To replace group, pass 'resetGroup=True')\n", "Updated group 'contrl': {'scftyp': 'rhf', 'runtyp': 'energy', 'maxit': 60, 'ISPHER': '1'}\n" ] } ], "source": [ "# ... applying settings manually will always work however\n", "testDL.setParam(inputGroup='basis',inputDict={'gbasis':'ACCD'}, resetGroup=True) # Pass resetGroup=True to replace existing.\n", "testDL.setParam(inputGroup='contrl',inputDict={'ISPHER':'1'})\n", "\n", "# Note that dictionary syntax also works here, e.g. the above can also be set via:\n", "# testDL.params['basis'] = {'gbasis':'ACCD'}\n", "# testDL.params['contrl']['ISPHER']='1' # For ACCD need this too! \n", "#\n", "# But dictionary style will NOT work for 'extra' items." ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PyGamess supported basis sets:\n", "['STO3G', 'STO-3G', '321G', '3-21G', '631G', '6-31G', '6311G', '6-311G', '631G*', '6-31G*', '6-31G(D)', '631G(D)', '631G**', '6-31G**', '631GDP', '6-31G(D,P)', '631G(D,P)', '631+G**', '6-31+G**', '631+GDP', '6-31+G(D,P)', '631+G(D,P)', 'AM1', 'PM3', 'MNDO', 'note']\n", "Settings for STO3G: {'gbasis': 'sto', 'ngauss': '3'}\n" ] } ], "source": [ "# The pyGamess supported basis options are listed by self.basis()\n", "testDL.basis()\n", "\n", "# Full configurations can be found in self.basisDict\n", "basis = 'STO3G'\n", "print(f'Settings for {basis}: {testDL.basisDict[basis]}')" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "*** Gamess input card:\n", " $contrl scftyp=rhf runtyp=energy maxit=60 ISPHER=1 $end\n", " $basis gbasis=ACCD $end\n", " $system mwords=30 $end\n", " $DATA\n", "N2O sym testing\n", "CNV 8\n", "\n", "O 8.0 0.0000000000 0.0000000000 1.2351270000 \n", "N 7.0 0.0000000000 0.0000000000 -1.1948180000 \n", " $END\n", "\n" ] } ], "source": [ "# Check updated input card\n", "testDL.printGamessInput()" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Updating existing group 'statpt'. (To replace group, pass 'resetGroup=True')\n", "Updated group 'statpt': {'opttol': '0.01', 'nstep': '10'}\n", "Updating existing group 'extra'. (To replace group, pass 'resetGroup=True')\n", "Updated group 'extra': {'job': 'N2O sym testing', 'sym': 'CNV 8', 'atomList': [0, 1]}\n", "\n", "*** Found 'extra' job settings, updating local params and running setGamess()...\n", "Set job from passed values.\n", "Set sym from passed values.\n", "Set atomList from passed values.\n", "Set job = N2O sym testing\n", "Set sym = CNV 8\n", "Set atomList = [0, 1]\n", "\n", "*** Gamess input card:\n", " $contrl scftyp=rhf runtyp=energy maxit=60 ISPHER=1 $end\n", " $basis gbasis=ACCD $end\n", " $system mwords=50 $end\n", " $DATA\n", "N2O sym testing, ACCD\n", "CNV 8\n", "\n", "O 8.0 0.0000000000 0.0000000000 1.2351270000 \n", "N 7.0 0.0000000000 0.0000000000 -0.0403090000 \n", " $END\n", "\n" ] } ], "source": [ "# Change some other parameters...\n", "testDL.setParam(inputGroup='statpt', inputDict={'opttol': '0.01', 'nstep': '10'}) # Geom opt settings\n", "testDL.params['system']['mwords']=50 # Memory settings, dict style\n", "\n", "# Change atomList\n", "# Note dictionary style will NOT work for 'extra' items, since some other settings are reconfigured in this case\n", "testDL.setParam(inputGroup='extra', inputDict={'atomList':[0,1]})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Additional transformations \n", "\n", "### Bond lengths & angles\n", "\n", "These can be addressed using the [RDkit functionality](https://rdkit.org/docs/source/rdkit.Chem.rdMolTransforms.html).\n", "\n", "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](https://rdkit.org/docs/source/rdkit.Chem.rdMolTransforms.html#rdkit.Chem.rdMolTransforms.SetBondLength).\n", "\n", "TODO: clean up input, wrap angle setting functions(?)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's a basic bond-length example" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O80.00.01.235127
11N70.00.0-0.040309
22N70.00.0-1.194818
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 0.0 0.0 1.235127\n", "1 1 N 7 0.0 0.0 -0.040309\n", "2 2 N 7 0.0 0.0 -1.194818" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "testDL.printTable()" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "*** Set bonds, new coord table:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O80.00.01.235127
11N70.00.0-3.764873
22N70.00.0-5.764873
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 0.0 0.0 1.235127\n", "1 1 N 7 0.0 0.0 -3.764873\n", "2 2 N 7 0.0 0.0 -5.764873" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bonds = {'NO':{'a1':0, 'a2':1, 'l':5}, 'NN':{'a1':1, 'a2':2, 'l':2}}\n", "# testDL.setBondLength(bonds = {'NO':{'a0':0, 'a1':1, 'l':5}})\n", "testDL.setBondLength(bonds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the RDkit routines move all atoms as appropriate for the new settings." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Manual coords\n", "\n", "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." ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "*** Updating coords (dictionary version).\n", "*** Set atom positions, new coord table:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O80.00.00.000000
11N70.70.01.000000
22N70.00.0-5.764873
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 0.0 0.0 0.000000\n", "1 1 N 7 0.7 0.0 1.000000\n", "2 2 N 7 0.0 0.0 -5.764873" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set coords for specified atoms\n", "coordsRef = {0:[0,0,0], 1:[0.7,0,1.0]}\n", "testDL.setCoords(coordsRef)" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "*** Set atom positions, new coord table:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O80.00.00.000000
11N70.00.01.000000
22N70.00.0-5.764873
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 0.0 0.0 0.000000\n", "1 1 N 7 0.0 0.0 1.000000\n", "2 2 N 7 0.0 0.0 -5.764873" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set all atoms on a specified axes with coord\n", "# This can be useful for symmetrized cases, since otherwise atoms may be erroneously duplicated in Gamess run (even for near-zero coords)\n", "testDL.setAxis({'x':0.0, 'y':0.0})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Minimal job pipeline to generate electronic structure & input files for ePolyScat\n", "\n", "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. \n", "\n", "This can be run directly at class creation by passing `buildES=True`. To keep the Gamess output file, pass fileOut.\n", "\n", "Todo: fix issues with running for existing class object, may reset some items inconsistently at `initGamess`." ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set name = N2O\n", "Set smiles = None\n", "Set molFile = None\n", "Set pd = None\n", "Set xyz = None\n", "Set molOverride = None\n", "*** File /mnt/femtobackSSHFS/DriveSyncShare/code-share/github-share/epsman/docs/doc-source/demos/N2O.SDF already exists; existing file will be used. Pass overwrite=True to overwrite.\n", "Set job = None\n", "Set sym = C1\n", "Set atomList = None\n", "Set precision = 6\n", "Set atomsDict = {}\n", "Set refDict = {}\n", "Set atomsHist = {}\n", "*** Updating coords (Pandas version).\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[14:15:24] Warning: molecule is tagged as 3D, but all Z coords are zero\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O81.30630.00.0
11N7-0.10960.00.0
22N7-1.19670.00.0
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 1.3063 0.0 0.0\n", "1 1 N 7 -0.1096 0.0 0.0\n", "2 2 N 7 -1.1967 0.0 0.0" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "*** Running default Gamess job.\n", "*** Updating coords (Pandas version).\n", "*** Set frame rotations, new coord table:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O80.00.01.3063
11N70.00.0-0.1096
22N70.00.0-1.1967
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 0.0 0.0 1.3063\n", "1 1 N 7 0.0 0.0 -0.1096\n", "2 2 N 7 0.0 0.0 -1.1967" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x pwqzab -ddi 1 1 jake -scr /tmp/tmp5d1rdu_t > /tmp/tmp5d1rdu_t/pwqzab.out\n", "Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x pwqzab -ddi 1 1 jake -scr /tmp/tmp5d1rdu_t > /tmp/tmp5d1rdu_t/pwqzab.out\n", "INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x pwqzab -ddi 1 1 jake -scr /tmp/tmp5d1rdu_t > /tmp/tmp5d1rdu_t/pwqzab.out\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "*** Init pyGamess job.\n", "Default Gamess input card set (use self.params to modify options dictionary, self.setGamess() to test):\n", "\n", " $contrl scftyp=rhf runtyp=energy $end\n", " $basis gbasis=sto ngauss=3 $end\n", " $system mwords=30 $end\n", " $DATA\n", "None\n", "C1\n", "O 8.0 0.0000000000 0.0000000000 1.3063000000 \n", "N 7.0 0.0000000000 0.0000000000 -0.1096000000 \n", "N 7.0 0.0000000000 0.0000000000 -1.1967000000 \n", " $END\n", "\n", "*** Found Gamess executable: /opt/gamess/gamess.00.x\n", "*** ddikick exit status OK: ddikick.x: exited gracefully.\n", "*** Gamess run completed OK.\n", "E = -181.1830797993\n", "*** Gamess output file moved to /tmp/autobuild.out\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O80.00.01.3063
11N70.00.0-0.1096
22N70.00.0-1.1967
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 0.0 0.0 1.3063\n", "1 1 N 7 0.0 0.0 -0.1096\n", "2 2 N 7 0.0 0.0 -1.1967" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set via build=True\n", "# This runs the process from scratch\n", "testBuild = ESgamess(searchName = 'N2O', fileOut = '/tmp/autobuild.out', buildES = True)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "*** Running default Gamess job.\n", "*** Updating coords (Pandas version).\n", "*** Set frame rotations, new coord table:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O80.00.01.588291
11N70.00.02.588291
22N70.00.0-4.176582
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 0.0 0.0 1.588291\n", "1 1 N 7 0.0 0.0 2.588291\n", "2 2 N 7 0.0 0.0 -4.176582" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x xnvffq -ddi 1 1 jake -scr /tmp/tmphj_nu26v > /tmp/tmphj_nu26v/xnvffq.out\n", "Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x xnvffq -ddi 1 1 jake -scr /tmp/tmphj_nu26v > /tmp/tmphj_nu26v/xnvffq.out\n", "INFO:pygamess.gamess:Executeing py_rungms with command /opt/gamess/ddikick.x /opt/gamess/gamess.00.x xnvffq -ddi 1 1 jake -scr /tmp/tmphj_nu26v > /tmp/tmphj_nu26v/xnvffq.out\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "*** Init pyGamess job.\n", "Default Gamess input card set (use self.params to modify options dictionary, self.setGamess() to test):\n", "\n", " $contrl scftyp=rhf runtyp=energy $end\n", " $basis gbasis=sto ngauss=3 $end\n", " $system mwords=30 $end\n", " $DATA\n", "N2O sym testing\n", "CNV 8\n", "\n", "O 8.0 0.0000000000 0.0000000000 1.5882910000 \n", "N 7.0 0.0000000000 0.0000000000 2.5882910000 \n", "N 7.0 0.0000000000 0.0000000000 -4.1765820000 \n", " $END\n", "\n", "*** Found Gamess executable: /opt/gamess/gamess.00.x\n", "*** ddikick exit status OK: ddikick.x: exited gracefully.\n", "*** Gamess run completed OK.\n", "E = 0\n", "*** Gamess output file moved to /tmp/autobuild.out\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndSpeciesAtomic Num.xyz
00O80.00.01.588291
11N70.00.02.588291
22N70.00.0-4.176582
\n", "
" ], "text/plain": [ " Ind Species Atomic Num. x y z\n", "0 0 O 8 0.0 0.0 1.588291\n", "1 1 N 7 0.0 0.0 2.588291\n", "2 2 N 7 0.0 0.0 -4.176582" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Running the function for an existing class object also works\n", "# Note this will use the existing geometry and configuration \n", "# (although some items MAY BE reset by initGamess() routine - TBD)\n", "testDL.buildES(fileOut = '/tmp/autobuild.out')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Versions" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Thu Jan 25 14:15:31 2024 EST
OSLinuxCPU(s)64Machinex86_64
Architecture64bitEnvironmentJupyter
Python 3.7.10 (default, Feb 26 2021, 18:47:35) \n", "[GCC 7.3.0]
epsman0.0.1cclib1.7rdkit2023.03.2
numpy1.19.2scipy1.6.1IPython7.21.0
matplotlib3.3.4scooby0.5.6
Intel(R) Math Kernel Library Version 2020.0.2 Product Build 20200624 for Intel(R) 64 architecture applications
" ], "text/plain": [ "\n", "--------------------------------------------------------------------------------\n", " Date: Thu Jan 25 14:15:31 2024 EST\n", "\n", " OS : Linux\n", " CPU(s) : 64\n", " Machine : x86_64\n", " Architecture : 64bit\n", " Environment : Jupyter\n", "\n", " Python 3.7.10 (default, Feb 26 2021, 18:47:35) [GCC 7.3.0]\n", "\n", " epsman : 0.0.1\n", " cclib : 1.7\n", " rdkit : 2023.03.2\n", " numpy : 1.19.2\n", " scipy : 1.6.1\n", " IPython : 7.21.0\n", " matplotlib : 3.3.4\n", " scooby : 0.5.6\n", "\n", " Intel(R) Math Kernel Library Version 2020.0.2 Product Build 20200624 for\n", " Intel(R) 64 architecture applications\n", "--------------------------------------------------------------------------------" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import scooby\n", "scooby.Report(additional=['epsman', 'cclib', 'rdkit'])" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " master\u001b[m\n", "* \u001b[32mrestructure160221\u001b[m\n", "bd21149f2aa6ee4ea23ab4dfd3f4f4a60503508e\n" ] } ], "source": [ "# Check current Git commit for local ePSproc version\n", "from pathlib import Path\n", "import epsman as em\n", "\n", "!git -C {Path(em.__file__).parent} branch\n", "!git -C {Path(em.__file__).parent} log --format=\"%H\" -n 1" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "21b4357a169baf9fa7887c68bd1cf8f92c59642c\trefs/heads/master\n", "bd21149f2aa6ee4ea23ab4dfd3f4f4a60503508e\trefs/heads/restructure160221\n" ] } ], "source": [ "# Check current remote commits\n", "!git ls-remote --heads https://github.com/phockett/epsman" ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:epsman-dev-shared-310122]", "language": "python", "name": "conda-env-epsman-dev-shared-310122-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.10" } }, "nbformat": 4, "nbformat_minor": 4 }