{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ePSman Overview\n", "\n", "ePSman provides tools for setting up, running & packaging ePolyScat (ePS) jobs. For a general overview of the ecosystem, see [the ePSdata intro page](https://phockett.github.io/ePSdata/about.html).\n", "\n", "ePSman is designed for:\n", "\n", "- Client - host architecture, with the remote host machine running the jobs & storing most of the files. \n", " - [Fabric](https://docs.fabfile.org/en/2.5/index.html) provides the framework for this.\n", " - Jobs are setup and managed from the client machine, with some basic file management also implemented.\n", " - The host machine runs ePS, as well as some other local tasks such as archive building.\n", "\n", "- To be run from a Jupyter Notebook, which provides an easy interface for interactive parts, and for keeping notes on progress & results.\n", "\n", "Docs: https://epsman.readthedocs.io\n", "\n", "## Features\n", "\n", "- Manage electronic structure files\n", " - Basics implemented for Gamess & Molden file handling, built [on CCLIB](http://cclib.github.io/), in ESjob class.\n", " - To do: \n", " - Gamess setup & run using [pyGamess](https://github.com/kzfm/pygamess), see [the class demo \"ePSman ESgamess class notes & demos: molecule and Gamess job handling class\"](https://epsman.readthedocs.io/en/latest/demos/ESgamess_class_demo_300321.html).\n", " - Handling for multiple input files, e.g. bond-length scans. (See, e.g. http://jake/jupyter/user/paul/doc/tree/notebooks/epsman_tests/gamess-dev/ESgamess_tests_dev_290321.ipynb, and probably other places.)\n", "- Manage input files & directory structure.\n", "- Create ePS jobs (most recent example http://jake/jupyter/user/paul/doc/tree/ePS/OCS/epsman2021/OCS_ePS_ePSman_dev_HOMO_Jake_010621-v5-HOMOrun.ipynb ?)\n", " - Molecule & batch job structure.\n", " - Output files stored in `base/mol/batch`, where `base` is the defined working directory (defaults to ~/ePS).\n", " - Supplementary output to `base/mol/batch/output`, where `output` is per file type (`idy`, `wavefn` etc).\n", " - Multi-E job chuncking for large runs.\n", " - Basic or wavefunction job creation.\n", " - To do:\n", " - Machine-specific defaults via settings file (paritally implemented).\n", " - Better/automated symmetry handling (currently set manually).\n", " - More versatile job structure (?).\n", " - Checkpoint files.\n", " - Template notebooks.\n", " \n", " \n", "## TODO\n", "\n", "\n", "- Run ePS jobs. NEEDS FIXING.\n", "- Post-processing\n", " - Batch processing of jobs via ePSproc + template notebooks.\n", " - Package repo & upload to repository (Zenodo).\n", " - Upload notebooks to web (ePSdata).\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Versions" ] }, { "cell_type": "code", "execution_count": 2, "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", "
Tue Mar 01 12:21:30 2022 EST
OSLinuxCPU(s)64Machinex86_64
Architecture64bitEnvironmentJupyter
Python 3.7.10 (default, Feb 26 2021, 18:47:35) \n", "[GCC 7.3.0]
epsman0.0.1fabric2.6.0cclib1.7
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: Tue Mar 01 12:21:30 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": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import scooby\n", "scooby.Report(additional=['epsman', 'fabric', 'cclib'])" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " master\u001b[m\n", "* \u001b[32mrestructure160221\u001b[m\n", "73f10b5bdbf99e97212a639dd390217084ec0c09\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": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "21b4357a169baf9fa7887c68bd1cf8f92c59642c\trefs/heads/master\n", "b0eb344462e40b2c1c9fc33a453107b296443017\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 }