{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ESjob class - electronic structure file handling & ePS job creation\n",
"12/02/22\n",
"\n",
"Demo for basic electronic structure file IO and creation of ePS jobs based on inputs.\n",
"\n",
"- Currently tested for Gamess and Molden IO only.\n",
"- Uses [CCLIB on the backend](http://cclib.github.io/), so should be easily extendable to other CCLIB-supported cases.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Imports"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# Import main package\n",
"# import epsman as em\n",
"\n",
"# For ePS job creation with electronic structure handling, use elecStructure.ESjob\n",
"from epsman.elecStructure.ESjob import ESjob"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# For testing, set the module path and test file.\n",
"import inspect\n",
"from pathlib import Path\n",
"\n",
"modDir = Path(inspect.getfile(ESjob)).parent\n",
"testFilePath = modDir/'fileTest' # Default module test files, these are included with Github repo."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Class creation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Basic file handling for Gamess Log files is implemented.\n",
"\n",
"- Setup minimally via ESjob(fileName = electronic structure file).\n",
"- If job settings are already set, they will be used, otherwise set full paths here with fileBase = full path.\n",
"- This creates an empty base object too, but this can be ignored for electronic structure file handling only.\n",
"\n",
"Further details:\n",
"\n",
"- The file is handled via the an EShandler class object.\n",
"- All methods are available as self.esData.method()\n",
"- File parsing and conversion is via [CCLIB](https://cclib.github.io), a full list of compatible electronic structure packages & data IO can [be found in the CCLIB docs](https://cclib.github.io/data.html).\n",
"- Only [Gamess (US)](https://www.msg.chem.iastate.edu/gamess/) files have been tested so far, which are further converted to [Molden format](https://www.theochem.ru.nl/molden/) for ePS (although recent versions of ePS can also read Gamess files directly)."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Set host = None\n",
"Set user = None\n",
"Set IP = None\n",
"Set password = None\n",
"Set mol = None\n",
"Set orb = None\n",
"Set batch = None\n",
"Set jobNote = None\n",
"Set elecStructure = None\n",
"Set genFile = None\n",
"Set jobSettings = None\n",
"Skipping setJobPaths() until job settings defined, run setJob() to set.\n",
"Set elecStructure = xe_SPKrATZP_rel.log\n",
"\n",
"Set input file as /home/eps/github/epsman/epsman/elecStructure/fileTest/xe_SPKrATZP_rel.log, use self.setFiles to change.\n",
"Set output file as /home/eps/github/epsman/epsman/elecStructure/fileTest/xe_SPKrATZP_rel.molden, use self.setMoldenFile to override.\n",
"\n",
"*** Read file /home/eps/github/epsman/epsman/elecStructure/fileTest/xe_SPKrATZP_rel.log with CCLIB, data set to self.data.\n",
"Read 1 atoms and 68 MOs\n",
"***Warning: inconsistent dim mapping, some Gamess or ePS dims unmapped. Check PD table for details.\n",
"*** Set orbPD data to self.orbPD, set group data to self.orbGrps\n",
"\n",
"Found input file Point Group: {'Name': 'DNH', 'NAXIS': '8', 'ORDER': '32'}.\n",
"Mapped PGs: Gamess (DNH, 8) > ePS (DAh) dim mapping.\n",
"Found 68 orbitals, in 45 groups.\n",
"Found 7 orb symmetries: ['A1g' 'A2u' 'E1u' 'E1g' 'E2g' 'E3u' 'E2u']\n",
"Assigned 54 electrons to 27 orbitals/19 orbital groups.\n",
"\n",
"Occupied orbitals table:\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/eps/.conda/envs/epsman-demo/lib/python3.7/site-packages/numpy/core/numeric.py:2378: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n",
" return bool(asarray(a1 == a2).all())\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" | \n",
" | \n",
" syms | \n",
" Occ | \n",
" OccN | \n",
" degen | \n",
" OrbGrpOcc | \n",
" Gamess | \n",
" ePS | \n",
"
\n",
" \n",
" | E | \n",
" iOrbGrp | \n",
" OrbN | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | -34724.875681 | \n",
" 1 | \n",
" 1 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -5506.008795 | \n",
" 2 | \n",
" 2 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -4937.337107 | \n",
" 3 | \n",
" 3 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
"
\n",
" \n",
" | 4 | \n",
" 4 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | 5 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | -1169.749415 | \n",
" 5 | \n",
" 6 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -981.237103 | \n",
" 6 | \n",
" 7 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
"
\n",
" \n",
" | 7 | \n",
" 8 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | 9 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | -700.203360 | \n",
" 9 | \n",
" 10 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
"
\n",
" \n",
" | 11 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
"
\n",
" \n",
" | 8 | \n",
" 12 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | 10 | \n",
" 13 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
"
\n",
" \n",
" | 14 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
"
\n",
" \n",
" | -229.247756 | \n",
" 11 | \n",
" 15 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -166.824838 | \n",
" 12 | \n",
" 16 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
"
\n",
" \n",
" | 13 | \n",
" 17 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | 18 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | -72.521062 | \n",
" 14 | \n",
" 19 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | 15 | \n",
" 20 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
"
\n",
" \n",
" | 21 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
"
\n",
" \n",
" | 16 | \n",
" 22 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
"
\n",
" \n",
" | 23 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
"
\n",
" \n",
" | -27.472614 | \n",
" 17 | \n",
" 24 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -12.421997 | \n",
" 18 | \n",
" 25 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
"
\n",
" \n",
" | 19 | \n",
" 26 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | 27 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" syms Occ OccN degen OrbGrpOcc Gamess ePS\n",
"E iOrbGrp OrbN \n",
"-34724.875681 1 1 A1g True 2 1 2 A1G SG\n",
"-5506.008795 2 2 A1g True 2 1 2 A1G SG\n",
"-4937.337107 3 3 A2u True 2 1 2 A2U A2U\n",
" 4 4 E1u True 2 2 4 E1U PU\n",
" 5 E1u True 2 2 4 E1U PU\n",
"-1169.749415 5 6 A1g True 2 1 2 A1G SG\n",
"-981.237103 6 7 A2u True 2 1 2 A2U A2U\n",
" 7 8 E1u True 2 2 4 E1U PU\n",
" 9 E1u True 2 2 4 E1U PU\n",
"-700.203360 9 10 E1g True 2 2 4 E1G PG\n",
" 11 E1g True 2 2 4 E1G PG\n",
" 8 12 A1g True 2 1 2 A1G SG\n",
" 10 13 E2g True 2 2 4 E2G DG\n",
" 14 E2g True 2 2 4 E2G DG\n",
"-229.247756 11 15 A1g True 2 1 2 A1G SG\n",
"-166.824838 12 16 A2u True 2 1 2 A2U A2U\n",
" 13 17 E1u True 2 2 4 E1U PU\n",
" 18 E1u True 2 2 4 E1U PU\n",
"-72.521062 14 19 A1g True 2 1 2 A1G SG\n",
" 15 20 E1g True 2 2 4 E1G PG\n",
" 21 E1g True 2 2 4 E1G PG\n",
" 16 22 E2g True 2 2 4 E2G DG\n",
" 23 E2g True 2 2 4 E2G DG\n",
"-27.472614 17 24 A1g True 2 1 2 A1G SG\n",
"-12.421997 18 25 A2u True 2 1 2 A2U A2U\n",
" 19 26 E1u True 2 2 4 E1U PU\n",
" 27 E1u True 2 2 4 E1U PU"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Basic file handling for Gamess Log files is implemented.\n",
"job = ESjob(fileName = 'xe_SPKrATZP_rel.log', fileBase = testFilePath)\n",
"\n",
"# Note an empty object can also be created.\n",
"# job = ESjob()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note the outputs here: \n",
"\n",
"- `OrbN` is the orbital numbering from the electronic structure file, usually corresponding to doubly-occupied orbitals as given by `OccN`.\n",
"- `iOrbGrp` renumbers including degereacies, which matches the internal ordering in ePolyScat. Occupation is given by `OrbGrpOcc`.\n",
"- Energies in eV.\n",
"- `degen` is the orbital degeneracy.\n",
"- `syms` lists the symmetries returned by CCLIB.\n",
"- If reading a Gamess file, `Gamess` lists the symmteries in the usual format.\n",
"- If a point group was found, `ePS` lists the equivalent ePS symmetry label for the group; the full list can be found at https://epolyscat.droppages.com/SymmetryLabels. Note that this mapping is set by `epsman.sym.convertSyms.convertSymsGamessePS()`, and can be set manually if incorrect. (TO TEST)\n",
"\n",
"Attribs are also stored in the class..."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'xe_SPKrATZP_rel.log'"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"job.elecStructure"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# The ESclass.EShandler class is used on the backend, and can be accessed as .esData\n",
"job.esData"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'DAh'"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Point group set\n",
"job.esData.PG"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'ePSlabels': ['SG',\n",
" 'A2G',\n",
" 'B1G',\n",
" 'B2G',\n",
" 'PG',\n",
" 'DG',\n",
" 'FG',\n",
" 'GG',\n",
" 'SU',\n",
" 'A2U',\n",
" 'B1U',\n",
" 'B2U',\n",
" 'PU',\n",
" 'DU',\n",
" 'FU',\n",
" 'GU'],\n",
" 'ePSnote': ['D', 'infinity', 'h']}"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Point group info - this lists the members with ePolyScat labels\n",
"job.esData.PGinfo"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Gamess | \n",
" ePS | \n",
" GDims | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" A1G | \n",
" SG | \n",
" 13.0 | \n",
"
\n",
" \n",
" | 2 | \n",
" A1U | \n",
" SU | \n",
" 0.0 | \n",
"
\n",
" \n",
" | 3 | \n",
" A2G | \n",
" A2G | \n",
" 0.0 | \n",
"
\n",
" \n",
" | 4 | \n",
" A2U | \n",
" A2U | \n",
" 9.0 | \n",
"
\n",
" \n",
" | 5 | \n",
" B1G | \n",
" B1G | \n",
" 0.0 | \n",
"
\n",
" \n",
" | 6 | \n",
" B1U | \n",
" B1U | \n",
" 0.0 | \n",
"
\n",
" \n",
" | 7 | \n",
" B2G | \n",
" B2G | \n",
" 0.0 | \n",
"
\n",
" \n",
" | 8 | \n",
" B2U | \n",
" B2U | \n",
" 0.0 | \n",
"
\n",
" \n",
" | 9 | \n",
" E1G | \n",
" PG | \n",
" 5.0 | \n",
"
\n",
" \n",
" | 10 | \n",
" E1U | \n",
" PU | \n",
" 9.0 | \n",
"
\n",
" \n",
" | 11 | \n",
" E2G | \n",
" DG | \n",
" 5.0 | \n",
"
\n",
" \n",
" | 12 | \n",
" E2U | \n",
" DU | \n",
" 2.0 | \n",
"
\n",
" \n",
" | 13 | \n",
" E3G | \n",
" FG | \n",
" 0.0 | \n",
"
\n",
" \n",
" | 14 | \n",
" E3U | \n",
" FU | \n",
" 2.0 | \n",
"
\n",
" \n",
" | 15 | \n",
" | \n",
" GU | \n",
" NaN | \n",
"
\n",
" \n",
" | 16 | \n",
" | \n",
" GG | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Gamess ePS GDims\n",
"1 A1G SG 13.0\n",
"2 A1U SU 0.0\n",
"3 A2G A2G 0.0\n",
"4 A2U A2U 9.0\n",
"5 B1G B1G 0.0\n",
"6 B1U B1U 0.0\n",
"7 B2G B2G 0.0\n",
"8 B2U B2U 0.0\n",
"9 E1G PG 5.0\n",
"10 E1U PU 9.0\n",
"11 E2G DG 5.0\n",
"12 E2U DU 2.0\n",
"13 E3G FG 0.0\n",
"14 E3U FU 2.0\n",
"15 GU NaN\n",
"16 GG NaN"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Full symmetry mapping details - this lists input symmetries and mapping to ePS labels (currently only Gamess > ePS mapping supported)\n",
"job.esData.orbPD.attrs['PGmap']"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# CCLIB data object is also accessible as .data\n",
"job.esData.data"
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": []
},
"source": [
"### Update/change master file\n",
"\n",
"Just set a new file name and/or path.\n",
"\n",
"This may also be required if the `ESjob` class is initialised without a file set."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Set elecStructure = xe_SPKrATZP_rel_copy.log\n",
"\n",
"Set input file as /home/eps/github/epsman/epsman/elecStructure/fileTest/xe_SPKrATZP_rel_copy.log, use self.setFiles to change.\n",
"Set output file as /home/eps/github/epsman/epsman/elecStructure/fileTest/xe_SPKrATZP_rel_copy.molden, use self.setMoldenFile to override.\n",
"Could not import `openbabel`, fallback mechanism might not work.\n",
"\n",
"*** Read file /home/eps/github/epsman/epsman/elecStructure/fileTest/xe_SPKrATZP_rel_copy.log with CCLIB, data set to self.data.\n",
"*** Error: File /home/eps/github/epsman/epsman/elecStructure/fileTest/xe_SPKrATZP_rel_copy.log not found or empty.\n"
]
}
],
"source": [
"# If the file doesn't exist an error will be printed.\n",
"job.setMasterESfile(fileName = 'xe_SPKrATZP_rel_copy.log')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Molden file creation demo\n",
"\n",
"- This is set by `self.checkLocalESfiles()` \n",
" - This will check for a Molden version of the file and sync to host (if set).\n",
"- A call to `self.esData.writeMoldenFile2006()` directly will write a new Molden file from the Gamess .log file."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Set elecStructure = xe_SPKrATZP_rel.log\n",
"\n",
"Set input file as /home/eps/github/epsman/epsman/elecStructure/fileTest/xe_SPKrATZP_rel.log, use self.setFiles to change.\n",
"Set output file as /home/eps/github/epsman/epsman/elecStructure/fileTest/xe_SPKrATZP_rel.molden, use self.setMoldenFile to override.\n",
"\n",
"*** Read file /home/eps/github/epsman/epsman/elecStructure/fileTest/xe_SPKrATZP_rel.log with CCLIB, data set to self.data.\n",
"Read 1 atoms and 68 MOs\n",
"***Warning: inconsistent dim mapping, some Gamess or ePS dims unmapped. Check PD table for details.\n",
"*** Set orbPD data to self.orbPD, set group data to self.orbGrps\n",
"\n",
"Found input file Point Group: {'Name': 'DNH', 'NAXIS': '8', 'ORDER': '32'}.\n",
"Mapped PGs: Gamess (DNH, 8) > ePS (DAh) dim mapping.\n",
"Found 68 orbitals, in 45 groups.\n",
"Found 7 orb symmetries: ['A1g' 'A2u' 'E1u' 'E1g' 'E2g' 'E3u' 'E2u']\n",
"Assigned 54 electrons to 27 orbitals/19 orbital groups.\n",
"\n",
"Occupied orbitals table:\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/eps/.conda/envs/epsman-demo/lib/python3.7/site-packages/numpy/core/numeric.py:2378: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n",
" return bool(asarray(a1 == a2).all())\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" | \n",
" | \n",
" syms | \n",
" Occ | \n",
" OccN | \n",
" degen | \n",
" OrbGrpOcc | \n",
" Gamess | \n",
" ePS | \n",
"
\n",
" \n",
" | E | \n",
" iOrbGrp | \n",
" OrbN | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | -34724.875681 | \n",
" 1 | \n",
" 1 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -5506.008795 | \n",
" 2 | \n",
" 2 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -4937.337107 | \n",
" 3 | \n",
" 3 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
"
\n",
" \n",
" | 4 | \n",
" 4 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | 5 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | -1169.749415 | \n",
" 5 | \n",
" 6 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -981.237103 | \n",
" 6 | \n",
" 7 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
"
\n",
" \n",
" | 7 | \n",
" 8 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | 9 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | -700.203360 | \n",
" 9 | \n",
" 10 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
"
\n",
" \n",
" | 11 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
"
\n",
" \n",
" | 8 | \n",
" 12 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | 10 | \n",
" 13 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
"
\n",
" \n",
" | 14 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
"
\n",
" \n",
" | -229.247756 | \n",
" 11 | \n",
" 15 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -166.824838 | \n",
" 12 | \n",
" 16 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
"
\n",
" \n",
" | 13 | \n",
" 17 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | 18 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | -72.521062 | \n",
" 14 | \n",
" 19 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | 15 | \n",
" 20 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
"
\n",
" \n",
" | 21 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
"
\n",
" \n",
" | 16 | \n",
" 22 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
"
\n",
" \n",
" | 23 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
"
\n",
" \n",
" | -27.472614 | \n",
" 17 | \n",
" 24 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -12.421997 | \n",
" 18 | \n",
" 25 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
"
\n",
" \n",
" | 19 | \n",
" 26 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | 27 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" syms Occ OccN degen OrbGrpOcc Gamess ePS\n",
"E iOrbGrp OrbN \n",
"-34724.875681 1 1 A1g True 2 1 2 A1G SG\n",
"-5506.008795 2 2 A1g True 2 1 2 A1G SG\n",
"-4937.337107 3 3 A2u True 2 1 2 A2U A2U\n",
" 4 4 E1u True 2 2 4 E1U PU\n",
" 5 E1u True 2 2 4 E1U PU\n",
"-1169.749415 5 6 A1g True 2 1 2 A1G SG\n",
"-981.237103 6 7 A2u True 2 1 2 A2U A2U\n",
" 7 8 E1u True 2 2 4 E1U PU\n",
" 9 E1u True 2 2 4 E1U PU\n",
"-700.203360 9 10 E1g True 2 2 4 E1G PG\n",
" 11 E1g True 2 2 4 E1G PG\n",
" 8 12 A1g True 2 1 2 A1G SG\n",
" 10 13 E2g True 2 2 4 E2G DG\n",
" 14 E2g True 2 2 4 E2G DG\n",
"-229.247756 11 15 A1g True 2 1 2 A1G SG\n",
"-166.824838 12 16 A2u True 2 1 2 A2U A2U\n",
" 13 17 E1u True 2 2 4 E1U PU\n",
" 18 E1u True 2 2 4 E1U PU\n",
"-72.521062 14 19 A1g True 2 1 2 A1G SG\n",
" 15 20 E1g True 2 2 4 E1G PG\n",
" 21 E1g True 2 2 4 E1G PG\n",
" 16 22 E2g True 2 2 4 E2G DG\n",
" 23 E2g True 2 2 4 E2G DG\n",
"-27.472614 17 24 A1g True 2 1 2 A1G SG\n",
"-12.421997 18 25 A2u True 2 1 2 A2U A2U\n",
" 19 26 E1u True 2 2 4 E1U PU\n",
" 27 E1u True 2 2 4 E1U PU"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# If a Gamess file is set, the molden version will be checked & can be created if missing\n",
"# For testing use /tests (set in .gitignore)\n",
"testPath = modDir.parent.parent/'tests'\n",
"testPath.mkdir(exist_ok=True)\n",
"\n",
"# Reset master file to use for testing\n",
"job.setMasterESfile(fileName = 'xe_SPKrATZP_rel.log')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Set elecStructure = xe_SPKrATZP_rel.log\n",
"\n",
"Set input file as /home/eps/github/epsman/tests/xe_SPKrATZP_rel.log, use self.setFiles to change.\n",
"Set output file as /home/eps/github/epsman/tests/xe_SPKrATZP_rel.molden, use self.setMoldenFile to override.\n",
"\n",
"*** Read file /home/eps/github/epsman/tests/xe_SPKrATZP_rel.log with CCLIB, data set to self.data.\n",
"Read 1 atoms and 68 MOs\n",
"***Warning: inconsistent dim mapping, some Gamess or ePS dims unmapped. Check PD table for details.\n",
"*** Set orbPD data to self.orbPD, set group data to self.orbGrps\n",
"\n",
"Found input file Point Group: {'Name': 'DNH', 'NAXIS': '8', 'ORDER': '32'}.\n",
"Mapped PGs: Gamess (DNH, 8) > ePS (DAh) dim mapping.\n",
"Found 68 orbitals, in 45 groups.\n",
"Found 7 orb symmetries: ['A1g' 'A2u' 'E1u' 'E1g' 'E2g' 'E3u' 'E2u']\n",
"Assigned 54 electrons to 27 orbitals/19 orbital groups.\n",
"\n",
"Occupied orbitals table:\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/eps/.conda/envs/epsman-demo/lib/python3.7/site-packages/numpy/core/numeric.py:2378: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n",
" return bool(asarray(a1 == a2).all())\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" | \n",
" | \n",
" syms | \n",
" Occ | \n",
" OccN | \n",
" degen | \n",
" OrbGrpOcc | \n",
" Gamess | \n",
" ePS | \n",
"
\n",
" \n",
" | E | \n",
" iOrbGrp | \n",
" OrbN | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | -34724.875681 | \n",
" 1 | \n",
" 1 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -5506.008795 | \n",
" 2 | \n",
" 2 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -4937.337107 | \n",
" 3 | \n",
" 3 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
"
\n",
" \n",
" | 4 | \n",
" 4 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | 5 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | -1169.749415 | \n",
" 5 | \n",
" 6 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -981.237103 | \n",
" 6 | \n",
" 7 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
"
\n",
" \n",
" | 7 | \n",
" 8 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | 9 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | -700.203360 | \n",
" 9 | \n",
" 10 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
"
\n",
" \n",
" | 11 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
"
\n",
" \n",
" | 8 | \n",
" 12 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | 10 | \n",
" 13 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
"
\n",
" \n",
" | 14 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
"
\n",
" \n",
" | -229.247756 | \n",
" 11 | \n",
" 15 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -166.824838 | \n",
" 12 | \n",
" 16 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
"
\n",
" \n",
" | 13 | \n",
" 17 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | 18 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | -72.521062 | \n",
" 14 | \n",
" 19 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | 15 | \n",
" 20 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
"
\n",
" \n",
" | 21 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
"
\n",
" \n",
" | 16 | \n",
" 22 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
"
\n",
" \n",
" | 23 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
"
\n",
" \n",
" | -27.472614 | \n",
" 17 | \n",
" 24 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
"
\n",
" \n",
" | -12.421997 | \n",
" 18 | \n",
" 25 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
"
\n",
" \n",
" | 19 | \n",
" 26 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
" | 27 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" syms Occ OccN degen OrbGrpOcc Gamess ePS\n",
"E iOrbGrp OrbN \n",
"-34724.875681 1 1 A1g True 2 1 2 A1G SG\n",
"-5506.008795 2 2 A1g True 2 1 2 A1G SG\n",
"-4937.337107 3 3 A2u True 2 1 2 A2U A2U\n",
" 4 4 E1u True 2 2 4 E1U PU\n",
" 5 E1u True 2 2 4 E1U PU\n",
"-1169.749415 5 6 A1g True 2 1 2 A1G SG\n",
"-981.237103 6 7 A2u True 2 1 2 A2U A2U\n",
" 7 8 E1u True 2 2 4 E1U PU\n",
" 9 E1u True 2 2 4 E1U PU\n",
"-700.203360 9 10 E1g True 2 2 4 E1G PG\n",
" 11 E1g True 2 2 4 E1G PG\n",
" 8 12 A1g True 2 1 2 A1G SG\n",
" 10 13 E2g True 2 2 4 E2G DG\n",
" 14 E2g True 2 2 4 E2G DG\n",
"-229.247756 11 15 A1g True 2 1 2 A1G SG\n",
"-166.824838 12 16 A2u True 2 1 2 A2U A2U\n",
" 13 17 E1u True 2 2 4 E1U PU\n",
" 18 E1u True 2 2 4 E1U PU\n",
"-72.521062 14 19 A1g True 2 1 2 A1G SG\n",
" 15 20 E1g True 2 2 4 E1G PG\n",
" 21 E1g True 2 2 4 E1G PG\n",
" 16 22 E2g True 2 2 4 E2G DG\n",
" 23 E2g True 2 2 4 E2G DG\n",
"-27.472614 17 24 A1g True 2 1 2 A1G SG\n",
"-12.421997 18 25 A2u True 2 1 2 A2U A2U\n",
" 19 26 E1u True 2 2 4 E1U PU\n",
" 27 E1u True 2 2 4 E1U PU"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Make a copy & test\n",
"import shutil\n",
"shutil.copy(job.esData.fullPath.as_posix(), (testPath/job.elecStructure).as_posix())\n",
"\n",
"# Set & read new file - note this does not create Molden file\n",
"job.setMasterESfile(fileName = job.elecStructure, fileBase = testPath)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Written Molden2006 format file /home/eps/github/epsman/tests/xe_SPKrATZP_rel.molden\n",
"Set elecStructure = xe_SPKrATZP_rel.molden\n",
"\n",
"*** Can't sync files, self.host or self.hostDefn[host][elecFile] not set.\n"
]
}
],
"source": [
"# self.checkLocalESfiles() will check for Molden file and also sync to host (if set)\n",
"job.checkLocalESfiles()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Written Molden2006 format file /home/eps/github/epsman/tests/xe_SPKrATZP_rel.molden\n"
]
}
],
"source": [
"# self.esData.write* methods can also be called\n",
"job.esData.writeMoldenFile2006()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create ePolyScat input from Gamess source\n",
"\n",
"The main routine `self.buildePSjob` will attempt to execute all the build steps and, hopefully, produce useful output if it fails.\n",
"\n",
"Minimally this needs an ionization channel defined (this is set according to the `iOrbGrp` numbers defined in the tables above), which will allow local job creation. However, if a host machine is not set, the final steps will fail."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"*** Set ionization from orbital/channel 18.\n",
"Updated orb table...\n",
"\n",
"Occupied orbitals by group:\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" E | \n",
" OrbN | \n",
" syms | \n",
" Occ | \n",
" OccN | \n",
" degen | \n",
" OrbGrpOcc | \n",
" Gamess | \n",
" ePS | \n",
" OrbGrpOccFinal | \n",
"
\n",
" \n",
" | iOrbGrp | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" -34724.875681 | \n",
" 1 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
" 2 | \n",
"
\n",
" \n",
" | 2 | \n",
" -5506.008795 | \n",
" 2 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
" 2 | \n",
"
\n",
" \n",
" | 3 | \n",
" -4937.337107 | \n",
" 3 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
" 2 | \n",
"
\n",
" \n",
" | 4 | \n",
" -4937.337107 | \n",
" 4 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
" 4 | \n",
"
\n",
" \n",
" | 5 | \n",
" -1169.749415 | \n",
" 6 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
" 2 | \n",
"
\n",
" \n",
" | 6 | \n",
" -981.237103 | \n",
" 7 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
" 2 | \n",
"
\n",
" \n",
" | 7 | \n",
" -981.237103 | \n",
" 8 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
" 4 | \n",
"
\n",
" \n",
" | 9 | \n",
" -700.203360 | \n",
" 10 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
" 4 | \n",
"
\n",
" \n",
" | 8 | \n",
" -700.203360 | \n",
" 12 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
" 2 | \n",
"
\n",
" \n",
" | 10 | \n",
" -700.203360 | \n",
" 13 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
" 4 | \n",
"
\n",
" \n",
" | 11 | \n",
" -229.247756 | \n",
" 15 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
" 2 | \n",
"
\n",
" \n",
" | 12 | \n",
" -166.824838 | \n",
" 16 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
" 2 | \n",
"
\n",
" \n",
" | 13 | \n",
" -166.824838 | \n",
" 17 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
" 4 | \n",
"
\n",
" \n",
" | 14 | \n",
" -72.521062 | \n",
" 19 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
" 2 | \n",
"
\n",
" \n",
" | 15 | \n",
" -72.521062 | \n",
" 20 | \n",
" E1g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1G | \n",
" PG | \n",
" 4 | \n",
"
\n",
" \n",
" | 16 | \n",
" -72.521062 | \n",
" 22 | \n",
" E2g | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E2G | \n",
" DG | \n",
" 4 | \n",
"
\n",
" \n",
" | 17 | \n",
" -27.472614 | \n",
" 24 | \n",
" A1g | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A1G | \n",
" SG | \n",
" 2 | \n",
"
\n",
" \n",
" | 18 | \n",
" -12.421997 | \n",
" 25 | \n",
" A2u | \n",
" True | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" A2U | \n",
" A2U | \n",
" 1 | \n",
"
\n",
" \n",
" | 19 | \n",
" -12.421997 | \n",
" 26 | \n",
" E1u | \n",
" True | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" E1U | \n",
" PU | \n",
" 4 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" E OrbN syms Occ OccN degen OrbGrpOcc Gamess ePS \\\n",
"iOrbGrp \n",
"1 -34724.875681 1 A1g True 2 1 2 A1G SG \n",
"2 -5506.008795 2 A1g True 2 1 2 A1G SG \n",
"3 -4937.337107 3 A2u True 2 1 2 A2U A2U \n",
"4 -4937.337107 4 E1u True 2 2 4 E1U PU \n",
"5 -1169.749415 6 A1g True 2 1 2 A1G SG \n",
"6 -981.237103 7 A2u True 2 1 2 A2U A2U \n",
"7 -981.237103 8 E1u True 2 2 4 E1U PU \n",
"9 -700.203360 10 E1g True 2 2 4 E1G PG \n",
"8 -700.203360 12 A1g True 2 1 2 A1G SG \n",
"10 -700.203360 13 E2g True 2 2 4 E2G DG \n",
"11 -229.247756 15 A1g True 2 1 2 A1G SG \n",
"12 -166.824838 16 A2u True 2 1 2 A2U A2U \n",
"13 -166.824838 17 E1u True 2 2 4 E1U PU \n",
"14 -72.521062 19 A1g True 2 1 2 A1G SG \n",
"15 -72.521062 20 E1g True 2 2 4 E1G PG \n",
"16 -72.521062 22 E2g True 2 2 4 E2G DG \n",
"17 -27.472614 24 A1g True 2 1 2 A1G SG \n",
"18 -12.421997 25 A2u True 2 1 2 A2U A2U \n",
"19 -12.421997 26 E1u True 2 2 4 E1U PU \n",
"\n",
" OrbGrpOccFinal \n",
"iOrbGrp \n",
"1 2 \n",
"2 2 \n",
"3 2 \n",
"4 4 \n",
"5 2 \n",
"6 2 \n",
"7 4 \n",
"9 4 \n",
"8 2 \n",
"10 4 \n",
"11 2 \n",
"12 2 \n",
"13 4 \n",
"14 2 \n",
"15 4 \n",
"16 4 \n",
"17 2 \n",
"18 1 \n",
"19 4 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"*** Building job test, orb18 (A2U/DAh), batch: test\n",
"Set mol = test\n",
"Set orb = orb18_A2U\n",
"Set batch = test\n",
"Generator file set: test.orb18_A2U.conf\n",
"\n",
"*** Job paths set in self.hostDefn['None']:\n",
"\n",
"*** Warning: can't find host 'None' in self.hostDefn.\n",
"Set self.ePSglobals for global job settings.\n",
"{'LMax': 30}\n",
"self.symList not set, running for defaults (all symmetry species).\n",
"\n",
"*** Failed to build job, can't write gen file or create job tree - is the host set?\n",
"None\n"
]
},
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Test with host not set...\n",
"job.buildePSjob(channel = 18)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this example the build fails at file IO, since there is no host or paths defined. The ePSrecords generated can be found in two dictionaries, defining the calculation parameters and molecule settings. (For more on these settings, see the [ePolyScat manual and sample jobs.](https://epolyscat.droppages.com/))"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'LMax': 30}"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Global calculation settings\n",
"job.esData.ePSglobals"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"OrderedDict([('elecStructure',\n",
" PosixPath('/home/eps/github/epsman/tests/xe_SPKrATZP_rel.molden')),\n",
" ('IP', 12.422),\n",
" ('OrbOccInit', '2 2 2 4 2 2 4 4 2 4 2 2 4 2 4 4 2 2 4'),\n",
" ('OrbOccTarget', '2 2 2 4 2 2 4 4 2 4 2 2 4 2 4 4 2 1 4'),\n",
" ('InitSpinDeg', 1),\n",
" ('TargSpinDeg', 2),\n",
" ('SpinDeg', 1),\n",
" ('InitSym', 'SG'),\n",
" ('TargSym', 'A2U'),\n",
" ('Ssym',\n",
" '(SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG A2G A2G A2G A2G A2G A2G A2G A2G A2G A2G A2G A2G A2G A2G A2G A2G B1G B1G B1G B1G B1G B1G B1G B1G B1G B1G B1G B1G B1G B1G B1G B1G B2G B2G B2G B2G B2G B2G B2G B2G B2G B2G B2G B2G B2G B2G B2G B2G PG PG PG PG PG PG PG PG PG PG PG PG PG PG PG PG DG DG DG DG DG DG DG DG DG DG DG DG DG DG DG DG FG FG FG FG FG FG FG FG FG FG FG FG FG FG FG FG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG GG SU SU SU SU SU SU SU SU SU SU SU SU SU SU SU SU A2U A2U A2U A2U A2U A2U A2U A2U A2U A2U A2U A2U A2U A2U A2U A2U B1U B1U B1U B1U B1U B1U B1U B1U B1U B1U B1U B1U B1U B1U B1U B1U B2U B2U B2U B2U B2U B2U B2U B2U B2U B2U B2U B2U B2U B2U B2U B2U PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU DU DU DU DU DU DU DU DU DU DU DU DU DU DU DU DU FU FU FU FU FU FU FU FU FU FU FU FU FU FU FU FU GU GU GU GU GU GU GU GU GU GU GU GU GU GU GU GU)'),\n",
" ('Csym',\n",
" '(SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU SG A2G B1G B2G PG DG FG GG SU A2U B1U B2U PU DU FU GU)')])"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Job settings\n",
"job.esData.ePSrecords"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note that the default case sets all possible scattering and continuum symmetries for the point group set, which is not usually what one wants... setting self.symList directly will bypass the automatic setting.**\n",
"\n",
"To override this manually, `self.esData.genSymList()` can be used to generate pairs, or simply pass a list to `job.esData.symList` directly."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('SG', 'SG'), ('SG', 'DG'), ('A2G', 'SG'), ('A2G', 'DG')]"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# symList holds all (Scattering, Continuum) pairs as tuples.\n",
"# This can be set from lists with genSymList\n",
"\n",
"# TODO: fix self.setSyms for this!\n",
"# TODO: add Ssym,Csym options to buildePSjob() method.\n",
"\n",
"job.esData.genSymList(Ssym=['SG','A2G'],Csym=['SG','DG'])\n",
"job.esData.symList"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Versions"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" | Sat Feb 12 14:23:42 2022 EST | \n",
"
\n",
" \n",
" | OS | \n",
" Linux | \n",
" CPU(s) | \n",
" 64 | \n",
" Machine | \n",
" x86_64 | \n",
"
\n",
" \n",
" | Architecture | \n",
" 64bit | \n",
" Environment | \n",
" Jupyter | \n",
"
\n",
" \n",
" | Python 3.7.10 (default, Feb 26 2021, 18:47:35) \n",
"[GCC 7.3.0] | \n",
"
\n",
" \n",
" | epsman | \n",
" 0.0.1 | \n",
" fabric | \n",
" 2.6.0 | \n",
" cclib | \n",
" 1.7 | \n",
"
\n",
" \n",
" | numpy | \n",
" 1.19.2 | \n",
" scipy | \n",
" 1.6.1 | \n",
" IPython | \n",
" 7.21.0 | \n",
"
\n",
" \n",
" | matplotlib | \n",
" 3.3.4 | \n",
" scooby | \n",
" 0.5.6 | \n",
" | \n",
" | \n",
"
\n",
" \n",
" | Intel(R) Math Kernel Library Version 2020.0.2 Product Build 20200624 for Intel(R) 64 architecture applications | \n",
"
\n",
"
"
],
"text/plain": [
"\n",
"--------------------------------------------------------------------------------\n",
" Date: Sat Feb 12 14:23:42 2022 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",
" fabric : 2.6.0\n",
" cclib : 1.7\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": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import scooby\n",
"scooby.Report(additional=['epsman', 'fabric', 'cclib'])"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" master\u001b[m\n",
"* \u001b[32mrestructure160221\u001b[m\n",
"2cdcf0ebb27837e540886652f591c6a0246dc46b\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": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"21b4357a169baf9fa7887c68bd1cf8f92c59642c\trefs/heads/master\n",
"2cdcf0ebb27837e540886652f591c6a0246dc46b\trefs/heads/restructure160221\n"
]
}
],
"source": [
"# Check current remote commits\n",
"!git ls-remote --heads git://github.com/phockett/epsman"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"jupytext": {
"formats": "ipynb,md:myst"
},
"kernelspec": {
"display_name": "Python [conda env:.conda-epsman-demo]",
"language": "python",
"name": "conda-env-.conda-epsman-demo-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
}