...
 
Commits (3)
# Makefile for Sphinx documentation
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
SPHINXPROJ = westpy
SOURCEDIR = ./
BUILDDIR = _build
# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
endif
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext
# Put it first so that "make" without argument is like "make help".
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " applehelp to make an Apple Help Book"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@echo " coverage to run coverage check of the documentation (if enabled)"
clean:
rm -rf $(BUILDDIR)
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/signac.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/signac.qhc"
applehelp:
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
@echo
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
@echo "N.B. You won't be able to view it unless you put it in" \
"~/Library/Documentation/Help or install it in your application" \
"bundle."
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/signac"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/signac"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
coverage:
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
@echo "Testing of coverage in the sources finished, look at the " \
"results in $(BUILDDIR)/coverage/python.txt."
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
.PHONY: help Makefile
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
......@@ -3,9 +3,16 @@
Credits
=======
The development of **westpy** is funded by `MICCoM <http://miccom-center.org/>`_, as part of the CMS Program funded by the U.S. DOE-BES.
Project Lead
------------
Marco Govoni (Argonne National Laboratory and University of Chicago)
Acknowledgements
----------------
Developers
----------
The development of **westpy** is funded by `MICCoM <http://miccom-center.org/>`_, as part of the CMS Program funded by the U.S. DOE-BES.
He Ma (University of Chicago)
Han Yang (University of Chicago)
# -*- coding: utf-8 -*-
#
# signac documentation build configuration file, created by
# sphinx-quickstart on Fri Oct 23 17:41:32 2015.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import sys
import os
import shlex
......
......@@ -3,10 +3,13 @@
Overview
========
**westpy** is designed to assist users of the WEST code in pre- and post-process massively parallel calculations.
**westpy** is designed to assist users of the WEST code in pre- and post-processing operations.
Features:
- Guided generation of input files for ground state density functional theory calculations (Qbox, QuantumEspresso)
- Guided generation of input filed for WEST
- Plot of DOS, LDOS, full-frequency self-energy
.. note::
`WEST <http://www.west-code.org/doc/West/latest/>`_ is massively parallel code for Many-Body Perturbation Theory calculations.
......@@ -10,5 +10,6 @@ Contents:
.. toctree::
:maxdepth: 1
westpy_100.ipynb
westpy_200.ipynb
tutorials/westpy_100.ipynb
tutorials/westpy_101.ipynb
tutorials/westpy_200.ipynb
......@@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"This tutorial can be downloaded [link](http://greatfire.uchicago.edu/west-public/westpy/raw/master/doc/westpy_100.ipynb)."
"This tutorial can be downloaded [link](http://greatfire.uchicago.edu/west-public/westpy/raw/master/doc/tutorials/westpy_100.ipynb)."
]
},
{
......@@ -48,7 +48,7 @@
" |_| |___/ \n",
" \n",
"WEST version : 3.1.0\n",
"Today : 2018-06-25 07:01:41.214544\n"
"Today : 2018-06-25 18:12:53.140481\n"
]
}
],
......@@ -101,7 +101,7 @@
"metadata": {},
"outputs": [],
"source": [
"geom.addAtomsFromOnlineXYZ( \"http://www.west-code.org/database/gw100/xyz/CH4.xyz\" )"
"geom.addAtomsFromOnlineXYZ( \"http://www.west-code.org/doc/training/CH4.xyz\" )"
]
},
{
......
......@@ -4,21 +4,21 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"This tutorial can be downloaded [link](http://greatfire.uchicago.edu/west-public/westpy/raw/master/doc/westpy_200.ipynb)."
"This tutorial can be downloaded [link](http://greatfire.uchicago.edu/west-public/westpy/raw/master/doc/tutorials/westpy_101.ipynb)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 2.0 Plot Density of States"
"# 1.1 Ground State Calculation with Qbox"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We are going to plot the electronic density of states. "
"We are going to generate an input file for the [Qbox](http://qboxcode.org/) code. The code will compute the ground state electronic stucture for the methane molecule using Density Functional Theory. "
]
},
{
......@@ -48,7 +48,7 @@
" |_| |___/ \n",
" \n",
"WEST version : 3.1.0\n",
"Today : 2018-06-25 16:20:56.893787\n"
"Today : 2018-06-25 18:13:37.507463\n"
]
}
],
......@@ -60,7 +60,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Step 2: Electronic Structure"
"## Step 2: Geometry"
]
},
{
......@@ -69,14 +69,14 @@
"metadata": {},
"outputs": [],
"source": [
"es = ElectronicStructure()"
"geom = Geometry()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We add information about the k-points, in this case only gamma."
"Let's define a cubic cell of edge 25 Bohr."
]
},
{
......@@ -85,14 +85,14 @@
"metadata": {},
"outputs": [],
"source": [
"es.addKpoint(1,[0.,0.,0.])"
"geom.setCell((25,0,0),(0,25,0),(0,0,25))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We add keys that will be used to browse the electronic structure."
"We load the atomic positions from a XYZ file, available online. "
]
},
{
......@@ -101,15 +101,14 @@
"metadata": {},
"outputs": [],
"source": [
"es.addKey(\"eks\",\"Kohn-Sham energy (eV)\")\n",
"es.addKey(\"eqp\",\"Quasiparticle energy (eV)\")"
"geom.addAtomsFromOnlineXYZ( \"http://www.west-code.org/doc/training/CH4.xyz\" )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We add three data points."
"We associate pseudopotential files to each species."
]
},
{
......@@ -118,37 +117,122 @@
"metadata": {},
"outputs": [],
"source": [
"es.addDataPoint([1,1,1],\"eks\",-4.6789)\n",
"es.addDataPoint([1,1,2],\"eks\",-4.3789)\n",
"es.addDataPoint([1,1,1],\"eqp\",-4.5789)"
"geom.addSpecies( \"C\", \"http://www.quantum-simulation.org/potentials/sg15_oncv/xml/C_ONCV_PBE-1.0.xml\")\n",
"geom.addSpecies( \"H\", \"http://www.quantum-simulation.org/potentials/sg15_oncv/xml/C_ONCV_PBE-1.0.xml\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can plot the DOS for both the key \"eks\" and \"eqp\""
"## Step 3.1: Ground State"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The ground state calculation is defined by the geometry, a choice of the exchange-correlation functional, and by setting an energy cutoff for the wavefunctions. "
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"gs = GroundState(geom,xc=\"PBE\",ecut=40.0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We are now able to generate the input file for Qbox."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Generated file: qbox.in\n"
]
}
],
"source": [
"gs.generateInputQbox()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can inspect the file qbox.in"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"set cell 25.0 0.0 0.0 0.0 25.0 0.0 0.0 0.0 25.0\n",
"species Carbon C_ONCV_PBE-1.0.xml\n",
"species Hydrogen C_ONCV_PBE-1.0.xml\n",
"atom C1 Carbon 0.0 0.0 0.0\n",
"atom H2 Hydrogen 1.185992116575257 -1.185803143962673 1.185992116575257\n",
"atom H3 Hydrogen -1.185992116575257 1.185992116575257 1.185992116575257\n",
"atom H4 Hydrogen -1.185992116575257 -1.185992116575257 -1.185992116575257\n",
"atom H5 Hydrogen 1.185992116575257 1.185992116575257 -1.185992116575257\n",
"set ecut 40.0\n",
"set wf_dyn JD\n",
"set xc PBE\n",
"set scf_tol 1.e-8\n",
"randomize_wf\n",
"run -atomic_density 0 100 5\n",
"save gs.xml\n",
"\n"
]
}
],
"source": [
"with open(\"qbox.in\",\"r\") as file :\n",
" data = file.read()\n",
" print(data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can optionally also download the pseudopotentials files. "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requested (emin,emax) : -5 -4\n",
"Detected (emin,emax) : -4.6789 -4.3789\n",
"output written in : dos.png\n",
"waiting for user to close image preview...\n"
"Downloaded file: C_ONCV_PBE-1.0.xml , from url: http://www.quantum-simulation.org/potentials/sg15_oncv/xml/C_ONCV_PBE-1.0.xml\n",
"Downloaded file: C_ONCV_PBE-1.0.xml , from url: http://www.quantum-simulation.org/potentials/sg15_oncv/xml/C_ONCV_PBE-1.0.xml\n"
]
}
],
"source": [
"%matplotlib inline\n",
"es.plotDOS(k=1,s=1,energyKeys=[\"eks\",\"eqp\"],energyRange=[-5,-4,0.01])"
"gs.downloadPseudopotentials()"
]
},
{
......
This diff is collapsed.