diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index d6cf73c74..3abded186 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -37,8 +37,8 @@ jobs: conda create -n abipy python=${{ matrix.config.python }} --yes conda activate abipy conda install abinit -c conda-forge --yes - abinit --version - abinit --build + mpirun -n 1 abinit --version + mpirun -n 1 abinit --build pip install . # --editable mkdir -p $HOME/.abinit/abipy/ cp abipy/data/managers/travis_manager.yml $HOME/.abinit/abipy/manager.yml @@ -46,20 +46,20 @@ jobs: - name: Build docs with Sphinx run: | - cd docs - pip install -r requirements.txt - make -j + cd docs + source install.sh + make - name: Upload artifact uses: actions/upload-pages-artifact@v2 - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v2 + #deploy: + # environment: + # name: github-pages + # url: ${{ steps.deployment.outputs.page_url }} + # runs-on: ubuntu-latest + # needs: build + # steps: + # - name: Deploy to GitHub Pages + # id: deployment + # uses: actions/deploy-pages@v2 diff --git a/abipy/abio/robots.py b/abipy/abio/robots.py index 809be67c9..3c7200bd5 100644 --- a/abipy/abio/robots.py +++ b/abipy/abio/robots.py @@ -967,7 +967,7 @@ def plot_convergence(self, item: Union[str, Callable], Accepts callable or string. If string, it's assumed that the abifile has an attribute with the same name and getattr is invoked. If callable, the output of hue(abifile) is used. - abs_conv: If not None, plot f(x) and |f(x) - f(x_inf)| in log scale. + abs_conv: If not None, plot f(x) and abs(f(x) - f(x_inf)) in log scale. ax: |matplotlib-Axes| or None if a new figure should be created. fontsize: legend and label fontsize. kwargs: keyword arguments passed to matplotlib plot method. @@ -1044,7 +1044,7 @@ def plot_convergence_items(self, items: list[Union[str, Callable]], If string, it's assumed that the abifile has an attribute with the same name and getattr is invoked. Dot notation is also supported e.g. hue="structure.formula" --> abifile.structure.formula If callable, the output of hue(abifile) is used. - abs_conv: If not None, plot f(x) and |f(x) - f(x_inf)| in log scale. + abs_conv: If not None, plot f(x) and abs(f(x) - f(x_inf)) in log scale. Since we are plotting multiple quantities, abs_conv is a dict mapping the name of the item to to the convergence. fontsize: legend and label fontsize. diff --git a/abipy/core/func1d.py b/abipy/core/func1d.py index 84726131b..7653805a9 100644 --- a/abipy/core/func1d.py +++ b/abipy/core/func1d.py @@ -540,7 +540,7 @@ def plotly_traces(self, fig, rcd=None, exchange_xy=False, xfactor=1, yfactor=1, Helper function to plot the function with plotly. Args: - fig: |plotly.graph_objects.Figure|. + fig: plotly.graph_objects.Figure. rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) of the subplot in the grid. exchange_xy: True to exchange the x and y in the plot. xfactor, yfactor: xvalues and yvalues are multiplied by this factor before plotting. @@ -594,7 +594,7 @@ def plotly(self, exchange_xy=False, fig=None, rcd=None, **kwargs): rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) of the subplot in the grid. - Returns: |plotly-Figure|. + Returns: plotly-Figure """ fig, _ = get_fig_plotly(fig=fig) rcd = PlotlyRowColDesc.from_object(rcd) diff --git a/abipy/core/structure.py b/abipy/core/structure.py index b760352f0..594ffda58 100644 --- a/abipy/core/structure.py +++ b/abipy/core/structure.py @@ -1617,7 +1617,7 @@ def plotly_bz(self, fig=None, pmg_path=True, with_labels=True, **kwargs): pmg_path (bool): True if the default path used in pymatgen should be show. with_labels (bool): True to plot k-point labels. - Returns: |plotly.graph_objects.Figure| + Returns: plotly.graph_objects.Figure """ from abipy.tools.plotting import plotly_brillouin_zone_from_kpath, plotly_brillouin_zone labels = None if not with_labels else self.hsym_kpath.kpath["kpoints"] @@ -2033,8 +2033,8 @@ def make_doped_supercells(self, scaling_matrix, replaced_atom, dopant_atom): b. A sequence of three scaling factors. e.g., [2, 1, 1] specifies that the supercell should have dimensions 2a x b x c. c. A number, which simply scales all lattice vectors by the same factor. - replaced atom : Symbol of the atom to be replaced (ex: 'Sr') - dopant_atom : Symbol of the dopant_atom (ex: 'Eu') + replaced atom: Symbol of the atom to be replaced (ex: 'Sr') + dopant_atom: Symbol of the dopant_atom (ex: 'Eu') """ ### list of positions of non-equivalent sites for the replaced atom. ### irred = self.spget_equivalent_atoms().eqmap # mapping from inequivalent sites to atoms sites diff --git a/abipy/dfpt/ddb.py b/abipy/dfpt/ddb.py index 74fe7943d..ec0e61ce7 100644 --- a/abipy/dfpt/ddb.py +++ b/abipy/dfpt/ddb.py @@ -2601,12 +2601,10 @@ def plotly(self, w_min=0, w_max=None, gamma_ev=1e-4, num=500, component='diag', num: number of values of the frequencies between w_min and w_max. component: determine which components of the tensor will be displayed. Can be a list/tuple of two elements, indicating the indices [i, j] of the desired component or a string among:: - * 'diag_av' to plot the average of the components on the diagonal * 'diag' to plot the elements on diagonal * 'all' to plot all the components in the upper triangle. * 'offdiag' to plot the off-diagonal components in the upper triangle. - reim: a string with "re" will plot the real part, with "im" selects the imaginary part. units: string specifying the units used for phonon frequencies. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. diff --git a/abipy/dfpt/phonons.py b/abipy/dfpt/phonons.py index 64205b8f0..ea0a3137b 100644 --- a/abipy/dfpt/phonons.py +++ b/abipy/dfpt/phonons.py @@ -4386,7 +4386,7 @@ def combiplotly(self, qlabels=None, units='eV', ylims=None, width_ratios=(2, 1), width_ratios: Ratio between the width of the phonon bands plots and the DOS plots. Used if plotter has DOSes. fontsize: fontsize for titles and legend. - linestyle_dict: Dictionary mapping labels to linestyle options passed to |plotly.graph_objects.scatter|. + linestyle_dict: Dictionary mapping labels to linestyle options passed to plotly.graph_objects.scatter. Returns: |plotly.graph_objects.Figure| """ diff --git a/abipy/electrons/ebands.py b/abipy/electrons/ebands.py index c1934cfac..753f2f929 100644 --- a/abipy/electrons/ebands.py +++ b/abipy/electrons/ebands.py @@ -3088,11 +3088,10 @@ def get_ifermi_fs(self, interpolation_factor=8, mu=0.0, eref="fermie", wigner_se Returns: - .. example:: + example:: r = ebands.get_ifermi_fs() r.fs_plotter.get_plot(plot_type="plotly").show() - """ r = self.get_ifermi_dense_bs(interpolation_factor, with_velocities) diff --git a/abipy/electrons/psps.py b/abipy/electrons/psps.py index 751eaf5a9..e12a1eb41 100644 --- a/abipy/electrons/psps.py +++ b/abipy/electrons/psps.py @@ -666,10 +666,9 @@ def read_coresd(self, rmax=None) -> tuple[np.ndarray, np.ndarray]: def read_tcorespl(self) -> tuple[np.ndarray, np.ndarray]: """ Returns: - qmesh: Linear q-mesh in q-space - tcorespl: numpy array of shape [ntypat, 2, mqgrid_vl] - with the pseudo core density in reciprocal space on a regular grid. - Only if pseudo has_tcore + qmesh: Linear q-mesh in q-space. + tcorespl: array of shape [ntypat, 2, mqgrid_vl] with the pseudo core density in reciprocal space on a regular grid. + Only if pseudo has_tcore """ return self.read_value("qgrid_vl"), self.read_value("nc_tcorespl") @@ -677,8 +676,7 @@ def read_vlspl(self) -> tuple[np.ndarray, np.ndarray]: """ Returns: qmesh: Linear q-mesh in G-space - vlspl: numpy array of shape [ntypat, two, mqgrid_vl] - with the local part of each type of psp in q-space + vlspl: numpy array of shape [ntypat, two, mqgrid_vl] with the local part of each type of psp in q-space """ return self.read_value("qgrid_vl"), self.read_value("vlspl") diff --git a/abipy/examples/plot/plot_eph_from_mp.py b/abipy/examples/plot/advanced/plot_eph_from_mp.py similarity index 100% rename from abipy/examples/plot/plot_eph_from_mp.py rename to abipy/examples/plot/advanced/plot_eph_from_mp.py diff --git a/abipy/examples/plot/plot_fermisurface.py b/abipy/examples/plot/advanced/plot_fermisurface.py similarity index 100% rename from abipy/examples/plot/plot_fermisurface.py rename to abipy/examples/plot/advanced/plot_fermisurface.py diff --git a/abipy/scripts/oncv.py b/abipy/scripts/oncv.py index 5e5a697a9..c2dadd6cd 100755 --- a/abipy/scripts/oncv.py +++ b/abipy/scripts/oncv.py @@ -278,9 +278,9 @@ def build(): return pn.serve(build, **serve_kwargs) -def main(): - def str_examples(): + +def get_epilog() -> str: return """\ Usage example: @@ -295,11 +295,8 @@ def str_examples(): oncv.py notebook H.out ==> Generate jupyter notebook to plot oncvpsp results. """ - def show_examples_and_exit(err_msg=None, error_code=1): - """Display the usage of the script.""" - sys.stderr.write(str_examples()) - if err_msg: sys.stderr.write("Fatal Error\n" + err_msg + "\n") - sys.exit(error_code) + +def get_parser(with_epilog=False): def get_copts_parser(multi=False): # Parent parser implementing common options. @@ -324,7 +321,7 @@ def get_copts_parser(multi=False): cli.add_expose_options_to_parser(plot_parser) # Build the main parser. - parser = argparse.ArgumentParser(epilog=str_examples(), formatter_class=argparse.RawDescriptionHelpFormatter) + parser = argparse.ArgumentParser(epilog=get_epilog(), formatter_class=argparse.RawDescriptionHelpFormatter) from abipy.core.release import __version__ parser.add_argument('-V', '--version', action='version', version=__version__) @@ -379,6 +376,19 @@ def get_copts_parser(multi=False): # help="List of cutoff radii for vloc in Bohr.") #cli.add_expose_options_to_parser(p_hints) + return parser + + +def main(): + + def show_examples_and_exit(err_msg=None, error_code=1): + """Display the usage of the script.""" + sys.stderr.write(get_epilog()) + if err_msg: sys.stderr.write("Fatal Error\n" + err_msg + "\n") + sys.exit(error_code) + + parser = get_parser(with_epilog=True) + # Parse command line. try: options = parser.parse_args() @@ -396,5 +406,6 @@ def get_copts_parser(multi=False): # Dispatch return globals()["oncv_" + options.command](options) + if __name__ == "__main__": sys.exit(main()) diff --git a/abipy/tools/plotting.py b/abipy/tools/plotting.py index dd7be2b04..9d132f571 100644 --- a/abipy/tools/plotting.py +++ b/abipy/tools/plotting.py @@ -1929,46 +1929,44 @@ def wrapper(*args, **kwargs): return fig # Add docstring to the decorated method. - s = ( - "\n\n" - + """\ - Keyword arguments controlling the display of the figure: - ================ ==================================================================== - kwargs Meaning - ================ ==================================================================== - title Title of the plot (Default: None). - show True to show the figure (default: True). - hovermode True to show the hover info (default: False) - savefig "abc.png" , "abc.jpeg" or "abc.webp" to save the figure to a file. - write_json Write plotly figure to `write_json` JSON file. - Inside jupyter-lab, one can right-click the `write_json` file from - the file menu and open with "Plotly Editor". - Make some changes to the figure, then use the file menu to save - the customized plotly plot. - Requires `jupyter labextension install jupyterlab-chart-editor`. - See https://github.com/plotly/jupyterlab-chart-editor - renderer (str or None (default None)) – - A string containing the names of one or more registered renderers - (separated by ‘+’ characters) or None. If None, then the default - renderers specified in plotly.io.renderers.default are used. - See https://plotly.com/python-api-reference/generated/plotly.graph_objects.Figure.html - config (dict) A dict of parameters to configure the figure. The defaults are set in plotly.js. - chart_studio True to push figure to chart_studio server. Requires authenticatios. - Default: False. - template Plotly template. See https://plotly.com/python/templates/ - ["plotly", "plotly_white", "plotly_dark", "ggplot2", - "seaborn", "simple_white", "none"] - Default is None that is the default template is used. - ================ ==================================================================== - """ - ) + doc_str = """\n\n + Keyword arguments controlling the display of the figure: + ================ ==================================================================== + kwargs Meaning + ================ ==================================================================== + title Title of the plot (Default: None). + show True to show the figure (default: True). + hovermode True to show the hover info (default: False) + savefig "abc.png" , "abc.jpeg" or "abc.webp" to save the figure to a file. + write_json Write plotly figure to `write_json` JSON file. + Inside jupyter-lab, one can right-click the `write_json` file from + the file menu and open with "Plotly Editor". + Make some changes to the figure, then use the file menu to save + the customized plotly plot. + Requires `jupyter labextension install jupyterlab-chart-editor`. + See https://github.com/plotly/jupyterlab-chart-editor + renderer (str or None (default None)) – + A string containing the names of one or more registered renderers + (separated by ‘+’ characters) or None. If None, then the default + renderers specified in plotly.io.renderers.default are used. + See https://plotly.com/python-api-reference/generated/plotly.graph_objects.Figure.html + config (dict) A dict of parameters to configure the figure. The defaults are set in plotly.js. + chart_studio True to push figure to chart_studio server. Requires authenticatios. + Default: False. + template Plotly template. See https://plotly.com/python/templates/ + ["plotly", "plotly_white", "plotly_dark", "ggplot2", + "seaborn", "simple_white", "none"] + Default is None that is the default template is used. + ================ ==================================================================== + +""" if wrapper.__doc__ is not None: # Add s at the end of the docstring. - wrapper.__doc__ += "\n" + s + wrapper.__doc__ += f"\n{doc_str}" else: # Use s - wrapper.__doc__ = s + wrapper.__doc__ = doc_str return wrapper diff --git a/docs/Makefile b/docs/Makefile index 9d4b4f1dd..faca0b1c3 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -2,9 +2,10 @@ # # You can set these variables from the command line. -SPHINXOPTS = -j6 -#SPHINXOPTS = -SPHINXBUILD = sphinx-build +#SPHINXOPTS = -j6 +SPHINXOPTS = +#SPHINXBUILD = sphinx-build +SPHINXBUILD = sphinx-build -v PAPER = BUILDDIR = _build @@ -49,6 +50,7 @@ clean: html: ./generate_rst_files.py rm -rf ../abipy/examples/flows/flow_* + export READTHEDOCS=1 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." diff --git a/docs/api/embedding_api.rst b/docs/api/embedding_api.rst index c3e6933d6..5b9294555 100644 --- a/docs/api/embedding_api.rst +++ b/docs/api/embedding_api.rst @@ -1,11 +1,11 @@ embedding Package -============ +================= .. contents:: :backlinks: top :mod:`embedding` Package ----------------------- +------------------------ .. automodule:: abipy.embedding :members: @@ -13,7 +13,7 @@ embedding Package :show-inheritance: :mod:`embedding_ifc` Module ----------------------- +--------------------------- .. automodule:: abipy.embedding.embedding_ifc :members: diff --git a/docs/api/lumi_api.rst b/docs/api/lumi_api.rst index 3be188d69..8af46c4e0 100644 --- a/docs/api/lumi_api.rst +++ b/docs/api/lumi_api.rst @@ -5,7 +5,7 @@ lumi Package :backlinks: top :mod:`lumi` Package ----------------------- +------------------- .. automodule:: abipy.lumi :members: diff --git a/docs/api/ppcodes_api.rst b/docs/api/ppcodes_api.rst index 8c38e05cb..565cd7c46 100644 --- a/docs/api/ppcodes_api.rst +++ b/docs/api/ppcodes_api.rst @@ -5,7 +5,7 @@ ppcodes Package :backlinks: top :mod:`ppcodes` Package -------------------- +---------------------- .. automodule:: abipy.ppcodes :members: diff --git a/docs/conf.py b/docs/conf.py index 926442c11..7c57ea53d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -9,7 +9,6 @@ import os import shutil - # Remove matplotlib agg warnings from generated doc when using plt.show import warnings @@ -53,15 +52,21 @@ 'sphinx.ext.napoleon', # For Google Python Style Guide 'sphinx.ext.inheritance_diagram', 'sphinxcontrib.programoutput', - 'sphinx_gallery.gen_gallery', "sphinxarg.ext", # CLI doc 'sphinxcontrib.bibtex', "jupyter_sphinx", #'nbsphinx', #"releases", #'sphinx.ext.coverage', + #'sphinx_gallery.gen_gallery', ] +# Activate build of sphinx-gallery. +with_gallery = True + +if with_gallery: + extensions.append('sphinx_gallery.gen_gallery') + # Add any Sphinx extension module names here, as strings. They can # be extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. import matplotlib @@ -92,7 +97,6 @@ mpl.use("Agg") mpl.rcParams['figure.dpi'] = 300 - #def reset_mpl(gallery_conf, fname): # """reset matplotlib to always use the seaborn style.""" # # https://542-25860190-gh.circle-artifacts.com/0/rtd_html/advanced_configuration.html#resetting-modules @@ -131,66 +135,68 @@ from abipy.tools.plotting import set_plotly_default_show set_plotly_default_show(False) -from sphinx_gallery.sorting import ExampleTitleSortKey - -sphinx_gallery_conf = { - 'only_warn_on_example_error': True, - #'abort_on_example_error': True, - 'log_level': {'backreference_missing': 'warning'}, - # - # path to your examples scripts - 'examples_dirs': [ - "../abipy/examples/plot", - "../abipy/examples/flows", - ], - # path where to save gallery generated examples - 'gallery_dirs': [ - "gallery", - "flow_gallery", - ], - 'filename_pattern': "(/plot*|/run_*)", - 'default_thumb_file': '_static/abipy_logo.png', - 'within_subsection_order': ExampleTitleSortKey, - 'backreferences_dir': None, - #'reset_modules': (reset_mpl,), - 'reference_url': { - 'abipy': None, # The module you locally document uses None - 'numpy': 'https://docs.scipy.org/doc/numpy/', - 'matplotlib': 'https://matplotlib.org', - 'pandas': "http://pandas.pydata.org/pandas-docs/stable/", - "pymatgen": "https://pymatgen.org/", - }, - #'image_scrapers': ('matplotlib',), - #'image_scrapers': ('matplotlib', PNGScraper()), - #'image_scrapers': ('matplotlib', plotly), - - # capture raw HTML or, if not present, __repr__ of last expression in each code block - 'capture_repr': (), - #'capture_repr': ('_repr_html_', '__repr__'), - # - # https://sphinx-gallery.github.io/stable/configuration.html#binder-links - - 'binder': { - # Required keys - 'org': 'abinit', - 'repo': 'abipy', - # Can be any branch, tag, or commit hash. Use a branch that hosts your docs. - 'branch': 'gh-pages', - #'ref': 'gh-pages', - # Any URL of a binderhub deployment. Must be full URL (e.g. https://mybinder.org). - 'binderhub_url': 'https://mybinder.org', - # A list of paths (relative to conf.py) to dependency files that Binder uses to infer - # the environment needed to run your examples - 'dependencies': ["../binder/environment.yml", "../binder/postBuild"], - # Optional keys - # A prefix to prepend to any filepaths in Binder links. - #'filepath_prefix': '' - # Jupyter notebooks for Binder will be copied to this directory (relative to built documentation root). - #'notebooks_dir': '' - # Whether Binder links should start Jupyter Lab instead of the Jupyter Notebook interface. - #'use_jupyter_lab': False, - }, -} +if with_gallery: + print("Will build sphinx-gallery") + from sphinx_gallery.sorting import ExampleTitleSortKey + + sphinx_gallery_conf = { + #'only_warn_on_example_error': True, + 'abort_on_example_error': True, + 'log_level': {'backreference_missing': 'warning'}, + # + # path to your examples scripts + 'examples_dirs': [ + "../abipy/examples/plot", + "../abipy/examples/flows", + ], + # path where to save gallery generated examples + 'gallery_dirs': [ + "gallery", + "flow_gallery", + ], + 'filename_pattern': "(/plot*|/run_*)", + 'default_thumb_file': '_static/abipy_logo.png', + 'within_subsection_order': ExampleTitleSortKey, + 'backreferences_dir': None, + #'reset_modules': (reset_mpl,), + 'reference_url': { + 'abipy': None, # The module you locally document uses None + 'numpy': 'https://docs.scipy.org/doc/numpy/', + 'matplotlib': 'https://matplotlib.org', + 'pandas': "http://pandas.pydata.org/pandas-docs/stable/", + "pymatgen": "https://pymatgen.org/", + }, + #'image_scrapers': ('matplotlib',), + #'image_scrapers': ('matplotlib', PNGScraper()), + #'image_scrapers': ('matplotlib', plotly), + + # capture raw HTML or, if not present, __repr__ of last expression in each code block + 'capture_repr': (), + #'capture_repr': ('_repr_html_', '__repr__'), + # + # https://sphinx-gallery.github.io/stable/configuration.html#binder-links + + #'binder': { + # # Required keys + # 'org': 'abinit', + # 'repo': 'abipy', + # # Can be any branch, tag, or commit hash. Use a branch that hosts your docs. + # 'branch': 'gh-pages', + # #'ref': 'gh-pages', + # # Any URL of a binderhub deployment. Must be full URL (e.g. https://mybinder.org). + # 'binderhub_url': 'https://mybinder.org', + # # A list of paths (relative to conf.py) to dependency files that Binder uses to infer + # # the environment needed to run your examples + # 'dependencies': ["../binder/environment.yml", "../binder/postBuild"], + # # Optional keys + # # A prefix to prepend to any filepaths in Binder links. + # #'filepath_prefix': '' + # # Jupyter notebooks for Binder will be copied to this directory (relative to built documentation root). + # #'notebooks_dir': '' + # # Whether Binder links should start Jupyter Lab instead of the Jupyter Notebook interface. + # #'use_jupyter_lab': False, + # }, + } # Generate the API documentation when building autosummary_generate = True diff --git a/docs/index.rst b/docs/index.rst index ffd6998cb..28c26db29 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -8,9 +8,9 @@ * - Package - |pypi-version| |download-with-anaconda| |supported-versions| * - Continuous Integration - - |travis-status| |coverage-status| + - |travis-status| |coverage-status| * - Documentation - - |docs-github| |launch-nbviewer| |launch-binder| + - |docs-github| |launch-nbviewer| |launch-binder| Getting Started @@ -31,8 +31,8 @@ Post-processing :maxdepth: 1 scripts/index - graphical_interface gallery/index + graphical_interface postprocessing_howto Workflows @@ -59,9 +59,9 @@ API Indices and tables ================== - :ref:`genindex` - :ref:`modindex` - :ref:`search` + :ref:`genindex` + :ref:`modindex` + :ref:`search` License ======= diff --git a/docs/install.sh b/docs/install.sh new file mode 100755 index 000000000..3c03caea8 --- /dev/null +++ b/docs/install.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -ev # exit on first error, print each command + +pip install -r requirements.txt +conda install graphvix -c conda-forge --yes diff --git a/docs/links.rst b/docs/links.rst index 3c2cc791f..9ea52047e 100644 --- a/docs/links.rst +++ b/docs/links.rst @@ -71,6 +71,8 @@ .. _abiview.py: https://abinit.github.io/abipy/scripts/abiview.html .. _abicomp.py: https://abinit.github.io/abipy/scripts/abicomp.html .. _abicheck.py: https://abinit.github.io/abipy/scripts/abicheck.html +.. _abips.py: https://abinit.github.io/abipy/scripts/abips.html +.. _oncv.py: https://abinit.github.io/abipy/scripts/oncv.html .. Links to jupyter notebooks associated to AbiPy files: .. _AbipyStructure: https://nbviewer.jupyter.org/github/abinit/abitutorials/blob/master/abitutorials/structure.ipynb diff --git a/docs/scripts/abips.rst b/docs/scripts/abips.rst new file mode 100644 index 000000000..3c6b25e00 --- /dev/null +++ b/docs/scripts/abips.rst @@ -0,0 +1,11 @@ +.. _abips.py: + +^^^^^^^^^^^^ +``abips.py`` +^^^^^^^^^^^^ + +Script to download and install pseudopotential tables from the web. + +.. argparse:: + :ref: abipy.scripts.abips.get_parser + :prog: abips.py diff --git a/docs/scripts/index.rst b/docs/scripts/index.rst index a3a21af0b..00650a455 100644 --- a/docs/scripts/index.rst +++ b/docs/scripts/index.rst @@ -38,3 +38,5 @@ and use ``abirun.py`` to launch Abinit calculations. abidoc.rst abicheck.rst abirun.rst + abips.rst + oncv.rst diff --git a/docs/scripts/oncv.rst b/docs/scripts/oncv.rst new file mode 100644 index 000000000..04b7eff85 --- /dev/null +++ b/docs/scripts/oncv.rst @@ -0,0 +1,11 @@ +.. _oncv.py: + +^^^^^^^^^^^ +``oncv.py`` +^^^^^^^^^^^ + +Script to generate/analyze/plot ONCVPSP pseudopotentials. + +.. argparse:: + :ref: abipy.scripts.oncv.get_parser + :prog: abips.py diff --git a/docs/sg_execution_times.rst b/docs/sg_execution_times.rst index 1d8d7d024..2c4a9df20 100644 --- a/docs/sg_execution_times.rst +++ b/docs/sg_execution_times.rst @@ -6,7 +6,7 @@ Computation times ================= -**00:00.401** total execution time for 112 files **from all galleries**: +**01:32.521** total execution time for 109 files **from all galleries**: .. container:: @@ -32,339 +32,330 @@ Computation times * - Example - Time - Mem (MB) - * - :ref:`sphx_glr_gallery_plot_fermisurface.py` (``../abipy/examples/plot/plot_fermisurface.py``) - - 00:00.277 - - 0.0 - * - :ref:`sphx_glr_gallery_plot_structure.py` (``../abipy/examples/plot/plot_structure.py``) - - 00:00.111 - - 0.0 - * - :ref:`sphx_glr_gallery_plot_eph_from_mp.py` (``../abipy/examples/plot/plot_eph_from_mp.py``) - - 00:00.014 + * - :ref:`sphx_glr_gallery_plot_qha_vs_qmesh.py` (``../abipy/examples/plot/plot_qha_vs_qmesh.py``) + - 00:10.314 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_becs_and_epsilon_vs_kpts.py` (``../abipy/examples/flows/run_becs_and_epsilon_vs_kpts.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_ddb_asr.py` (``../abipy/examples/plot/plot_ddb_asr.py``) + - 00:04.750 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_conducwork.py` (``../abipy/examples/flows/run_conducwork.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_phonons_msqd.py` (``../abipy/examples/plot/plot_phonons_msqd.py``) + - 00:04.432 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_effmass_dfpt.py` (``../abipy/examples/flows/run_effmass_dfpt.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_mgb2_phonons_nkpt_tsmear.py` (``../abipy/examples/flows/run_mgb2_phonons_nkpt_tsmear.py``) + - 00:03.683 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_effmass_finitediff.py` (``../abipy/examples/flows/run_effmass_finitediff.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_lumi_1D_nv_center.py` (``../abipy/examples/plot/plot_lumi_1D_nv_center.py``) + - 00:03.131 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_elastic.py` (``../abipy/examples/flows/run_elastic.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_gkq.py` (``../abipy/examples/flows/run_gkq.py``) + - 00:02.525 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_eos.py` (``../abipy/examples/flows/run_eos.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_phbands_nkpt_tsmear.py` (``../abipy/examples/plot/plot_phbands_nkpt_tsmear.py``) + - 00:02.431 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_eph_al.py` (``../abipy/examples/flows/run_eph_al.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_eph_pot.py` (``../abipy/examples/flows/run_eph_pot.py``) + - 00:01.970 - 0.0 * - :ref:`sphx_glr_flow_gallery_run_eph_mob.py` (``../abipy/examples/flows/run_eph_mob.py``) - - 00:00.000 + - 00:01.926 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_eph_pot.py` (``../abipy/examples/flows/run_eph_pot.py``) - - 00:00.000 - - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_fe_ebands.py` (``../abipy/examples/flows/run_fe_ebands.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_mdf.py` (``../abipy/examples/plot/plot_mdf.py``) + - 00:01.924 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_flexoelectric.py` (``../abipy/examples/flows/run_flexoelectric.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_eph_al.py` (``../abipy/examples/flows/run_eph_al.py``) + - 00:01.857 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_frohlich_zpr.py` (``../abipy/examples/flows/run_frohlich_zpr.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_phonons_wkq.py` (``../abipy/examples/flows/run_phonons_wkq.py``) + - 00:01.827 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_frohlich_zpr_from_ddb.py` (``../abipy/examples/flows/run_frohlich_zpr_from_ddb.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_efatbands_spin.py` (``../abipy/examples/plot/plot_efatbands_spin.py``) + - 00:01.774 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_from_files.py` (``../abipy/examples/flows/run_from_files.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_phonons.py` (``../abipy/examples/flows/run_phonons.py``) + - 00:01.492 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_gaas_ebands_soc.py` (``../abipy/examples/flows/run_gaas_ebands_soc.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_a2f.py` (``../abipy/examples/plot/plot_a2f.py``) + - 00:01.457 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_gkq.py` (``../abipy/examples/flows/run_gkq.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_efatbands.py` (``../abipy/examples/plot/plot_efatbands.py``) + - 00:01.363 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_gruneisen_abinit.py` (``../abipy/examples/flows/run_gruneisen_abinit.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_lumi_Eu_doped_SLA.py` (``../abipy/examples/flows/run_lumi_Eu_doped_SLA.py``) + - 00:01.323 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_gs_vs_kpts.py` (``../abipy/examples/flows/run_gs_vs_kpts.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_phbands_grid.py` (``../abipy/examples/plot/plot_phbands_grid.py``) + - 00:01.136 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_gwconv_ecuteps.py` (``../abipy/examples/flows/run_gwconv_ecuteps.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_conducwork.py` (``../abipy/examples/flows/run_conducwork.py``) + - 00:01.104 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_gwr_g0w0.py` (``../abipy/examples/flows/run_gwr_g0w0.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_phonons_with_quad.py` (``../abipy/examples/flows/run_phonons_with_quad.py``) + - 00:01.007 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_ht_si_bsemdf.py` (``../abipy/examples/flows/run_ht_si_bsemdf.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_ebands.py` (``../abipy/examples/plot/plot_ebands.py``) + - 00:00.990 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_ht_si_ebands.py` (``../abipy/examples/flows/run_ht_si_ebands.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_becs_and_epsilon_vs_kpts.py` (``../abipy/examples/flows/run_becs_and_epsilon_vs_kpts.py``) + - 00:00.986 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_ht_si_g0w0ppm.py` (``../abipy/examples/flows/run_ht_si_g0w0ppm.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_wannier90_abiwan.py` (``../abipy/examples/plot/plot_wannier90_abiwan.py``) + - 00:00.980 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_ldaus.py` (``../abipy/examples/flows/run_ldaus.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_ebands_boxplot.py` (``../abipy/examples/plot/plot_ebands_boxplot.py``) + - 00:00.969 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_lumi_Eu_doped_SLA.py` (``../abipy/examples/flows/run_lumi_Eu_doped_SLA.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_lumi_1D_Eu_doped.py` (``../abipy/examples/plot/plot_lumi_1D_Eu_doped.py``) + - 00:00.922 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_lumi_NV_center.py` (``../abipy/examples/flows/run_lumi_NV_center.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_si_ebands.py` (``../abipy/examples/flows/run_si_ebands.py``) + - 00:00.920 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_mgb2_edoses.py` (``../abipy/examples/flows/run_mgb2_edoses.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_flexoelectric.py` (``../abipy/examples/flows/run_flexoelectric.py``) + - 00:00.908 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_mgb2_phonons_nkpt_tsmear.py` (``../abipy/examples/flows/run_mgb2_phonons_nkpt_tsmear.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_speed_of_sound.py` (``../abipy/examples/plot/plot_speed_of_sound.py``) + - 00:00.831 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_nonlinear.py` (``../abipy/examples/flows/run_nonlinear.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_raman_optic.py` (``../abipy/examples/flows/run_raman_optic.py``) + - 00:00.826 - 0.0 * - :ref:`sphx_glr_flow_gallery_run_optic.py` (``../abipy/examples/flows/run_optic.py``) - - 00:00.000 + - 00:00.819 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_phfrozen_ebands.py` (``../abipy/examples/flows/run_phfrozen_ebands.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_qpbands_with_interpolation.py` (``../abipy/examples/plot/plot_qpbands_with_interpolation.py``) + - 00:00.818 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_phonons.py` (``../abipy/examples/flows/run_phonons.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_ebands_spin.py` (``../abipy/examples/plot/plot_ebands_spin.py``) + - 00:00.792 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_phonons_with_quad.py` (``../abipy/examples/flows/run_phonons_with_quad.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_ebands_grid.py` (``../abipy/examples/plot/plot_ebands_grid.py``) + - 00:00.778 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_phonons_wkq.py` (``../abipy/examples/flows/run_phonons_wkq.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_elastic.py` (``../abipy/examples/flows/run_elastic.py``) + - 00:00.770 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_phonopy_si.py` (``../abipy/examples/flows/run_phonopy_si.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_gwconv_ecuteps.py` (``../abipy/examples/flows/run_gwconv_ecuteps.py``) + - 00:00.763 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_raman_bse.py` (``../abipy/examples/flows/run_raman_bse.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_nonlinear.py` (``../abipy/examples/flows/run_nonlinear.py``) + - 00:00.726 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_raman_optic.py` (``../abipy/examples/flows/run_raman_optic.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_qha.py` (``../abipy/examples/plot/plot_qha.py``) + - 00:00.716 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_relax.py` (``../abipy/examples/flows/run_relax.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_relax_vs_kpts_tsmear.py` (``../abipy/examples/flows/run_relax_vs_kpts_tsmear.py``) + - 00:00.692 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_relax_and_ebands.py` (``../abipy/examples/flows/run_relax_and_ebands.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_lumi_NV_center.py` (``../abipy/examples/flows/run_lumi_NV_center.py``) + - 00:00.680 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_relax_vs_kpts.py` (``../abipy/examples/flows/run_relax_vs_kpts.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_phonons_infrared.py` (``../abipy/examples/plot/plot_phonons_infrared.py``) + - 00:00.675 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_relax_vs_kpts_tsmear.py` (``../abipy/examples/flows/run_relax_vs_kpts_tsmear.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_frohlich_zpr.py` (``../abipy/examples/flows/run_frohlich_zpr.py``) + - 00:00.661 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_effmass_dfpt.py` (``../abipy/examples/flows/run_effmass_dfpt.py``) + - 00:00.656 - 0.0 * - :ref:`sphx_glr_flow_gallery_run_screening.py` (``../abipy/examples/flows/run_screening.py``) - - 00:00.000 + - 00:00.648 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_si_ebands.py` (``../abipy/examples/flows/run_si_ebands.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_qpbands_with_scissor.py` (``../abipy/examples/plot/plot_qpbands_with_scissor.py``) + - 00:00.620 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_si_g0w0.py` (``../abipy/examples/flows/run_si_g0w0.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_gruneisen.py` (``../abipy/examples/plot/plot_gruneisen.py``) + - 00:00.618 - 0.0 - * - :ref:`sphx_glr_flow_gallery_run_sic_relax.py` (``../abipy/examples/flows/run_sic_relax.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_raman_bse.py` (``../abipy/examples/flows/run_raman_bse.py``) + - 00:00.615 - 0.0 - * - :ref:`sphx_glr_gallery_plot_a2f.py` (``../abipy/examples/plot/plot_a2f.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_phfrozen_ebands.py` (``../abipy/examples/flows/run_phfrozen_ebands.py``) + - 00:00.606 - 0.0 - * - :ref:`sphx_glr_gallery_plot_bz.py` (``../abipy/examples/plot/plot_bz.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_efatbands_lm.py` (``../abipy/examples/plot/plot_efatbands_lm.py``) + - 00:00.569 - 0.0 - * - :ref:`sphx_glr_gallery_plot_convergence.py` (``../abipy/examples/plot/plot_convergence.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_eos.py` (``../abipy/examples/flows/run_eos.py``) + - 00:00.566 - 0.0 - * - :ref:`sphx_glr_gallery_plot_ddb_asr.py` (``../abipy/examples/plot/plot_ddb_asr.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_ldaus.py` (``../abipy/examples/flows/run_ldaus.py``) + - 00:00.553 - 0.0 - * - :ref:`sphx_glr_gallery_plot_den.py` (``../abipy/examples/plot/plot_den.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_si_g0w0.py` (``../abipy/examples/flows/run_si_g0w0.py``) + - 00:00.551 - 0.0 - * - :ref:`sphx_glr_gallery_plot_dfpt_cycle.py` (``../abipy/examples/plot/plot_dfpt_cycle.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_fe_ebands.py` (``../abipy/examples/flows/run_fe_ebands.py``) + - 00:00.515 - 0.0 - * - :ref:`sphx_glr_gallery_plot_ebands.py` (``../abipy/examples/plot/plot_ebands.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_qps.py` (``../abipy/examples/plot/plot_qps.py``) + - 00:00.514 - 0.0 - * - :ref:`sphx_glr_gallery_plot_ebands_boxplot.py` (``../abipy/examples/plot/plot_ebands_boxplot.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_mgb2_edoses.py` (``../abipy/examples/flows/run_mgb2_edoses.py``) + - 00:00.509 - 0.0 * - :ref:`sphx_glr_gallery_plot_ebands_edos.py` (``../abipy/examples/plot/plot_ebands_edos.py``) - - 00:00.000 - - 0.0 - * - :ref:`sphx_glr_gallery_plot_ebands_grid.py` (``../abipy/examples/plot/plot_ebands_grid.py``) - - 00:00.000 + - 00:00.504 - 0.0 - * - :ref:`sphx_glr_gallery_plot_ebands_scatter3d.py` (``../abipy/examples/plot/plot_ebands_scatter3d.py``) - - 00:00.000 - - 0.0 - * - :ref:`sphx_glr_gallery_plot_ebands_spin.py` (``../abipy/examples/plot/plot_ebands_spin.py``) - - 00:00.000 - - 0.0 - * - :ref:`sphx_glr_gallery_plot_edos.py` (``../abipy/examples/plot/plot_edos.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_phonon_fatbands.py` (``../abipy/examples/plot/plot_phonon_fatbands.py``) + - 00:00.498 - 0.0 - * - :ref:`sphx_glr_gallery_plot_edos_grid.py` (``../abipy/examples/plot/plot_edos_grid.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_frohlich_zpr_from_ddb.py` (``../abipy/examples/flows/run_frohlich_zpr_from_ddb.py``) + - 00:00.488 - 0.0 - * - :ref:`sphx_glr_gallery_plot_edos_vs_broad.py` (``../abipy/examples/plot/plot_edos_vs_broad.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_gs_vs_kpts.py` (``../abipy/examples/flows/run_gs_vs_kpts.py``) + - 00:00.486 - 0.0 - * - :ref:`sphx_glr_gallery_plot_efatbands.py` (``../abipy/examples/plot/plot_efatbands.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_effmass_finitediff.py` (``../abipy/examples/flows/run_effmass_finitediff.py``) + - 00:00.481 - 0.0 - * - :ref:`sphx_glr_gallery_plot_efatbands_lm.py` (``../abipy/examples/plot/plot_efatbands_lm.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_ht_si_g0w0ppm.py` (``../abipy/examples/flows/run_ht_si_g0w0ppm.py``) + - 00:00.481 - 0.0 - * - :ref:`sphx_glr_gallery_plot_efatbands_spin.py` (``../abipy/examples/plot/plot_efatbands_spin.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_gwr_g0w0.py` (``../abipy/examples/flows/run_gwr_g0w0.py``) + - 00:00.478 - 0.0 - * - :ref:`sphx_glr_gallery_plot_effmass.py` (``../abipy/examples/plot/plot_effmass.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_ht_si_ebands.py` (``../abipy/examples/flows/run_ht_si_ebands.py``) + - 00:00.472 - 0.0 - * - :ref:`sphx_glr_gallery_plot_ejdos.py` (``../abipy/examples/plot/plot_ejdos.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_qpconvergence.py` (``../abipy/examples/plot/plot_qpconvergence.py``) + - 00:00.464 - 0.0 - * - :ref:`sphx_glr_gallery_plot_fold2bloch.py` (``../abipy/examples/plot/plot_fold2bloch.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_gaas_ebands_soc.py` (``../abipy/examples/flows/run_gaas_ebands_soc.py``) + - 00:00.462 - 0.0 - * - :ref:`sphx_glr_gallery_plot_funcs.py` (``../abipy/examples/plot/plot_funcs.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_relax_and_ebands.py` (``../abipy/examples/flows/run_relax_and_ebands.py``) + - 00:00.460 - 0.0 - * - :ref:`sphx_glr_gallery_plot_gruneisen.py` (``../abipy/examples/plot/plot_gruneisen.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_relax_vs_kpts.py` (``../abipy/examples/flows/run_relax_vs_kpts.py``) + - 00:00.453 - 0.0 - * - :ref:`sphx_glr_gallery_plot_gscycle.py` (``../abipy/examples/plot/plot_gscycle.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_ht_si_bsemdf.py` (``../abipy/examples/flows/run_ht_si_bsemdf.py``) + - 00:00.451 - 0.0 - * - :ref:`sphx_glr_gallery_plot_gw_spectral_functions.py` (``../abipy/examples/plot/plot_gw_spectral_functions.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_relax.py` (``../abipy/examples/flows/run_relax.py``) + - 00:00.432 - 0.0 - * - :ref:`sphx_glr_gallery_plot_hist.py` (``../abipy/examples/plot/plot_hist.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_phonopy_si.py` (``../abipy/examples/flows/run_phonopy_si.py``) + - 00:00.428 - 0.0 * - :ref:`sphx_glr_gallery_plot_ifcs.py` (``../abipy/examples/plot/plot_ifcs.py``) - - 00:00.000 - - 0.0 - * - :ref:`sphx_glr_gallery_plot_kpath_from_ibz.py` (``../abipy/examples/plot/plot_kpath_from_ibz.py``) - - 00:00.000 + - 00:00.417 - 0.0 - * - :ref:`sphx_glr_gallery_plot_lobster_cohp.py` (``../abipy/examples/plot/plot_lobster_cohp.py``) - - 00:00.000 - - 0.0 - * - :ref:`sphx_glr_gallery_plot_lobster_files.py` (``../abipy/examples/plot/plot_lobster_files.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_from_files.py` (``../abipy/examples/flows/run_from_files.py``) + - 00:00.399 - 0.0 - * - :ref:`sphx_glr_gallery_plot_lruj.py` (``../abipy/examples/plot/plot_lruj.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_kpath_from_ibz.py` (``../abipy/examples/plot/plot_kpath_from_ibz.py``) + - 00:00.395 - 0.0 - * - :ref:`sphx_glr_gallery_plot_lumi_1D_Eu_doped.py` (``../abipy/examples/plot/plot_lumi_1D_Eu_doped.py``) - - 00:00.000 + * - :ref:`sphx_glr_flow_gallery_run_sic_relax.py` (``../abipy/examples/flows/run_sic_relax.py``) + - 00:00.386 - 0.0 - * - :ref:`sphx_glr_gallery_plot_lumi_1D_nv_center.py` (``../abipy/examples/plot/plot_lumi_1D_nv_center.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_phonons.py` (``../abipy/examples/plot/plot_phonons.py``) + - 00:00.381 - 0.0 - * - :ref:`sphx_glr_gallery_plot_mdf.py` (``../abipy/examples/plot/plot_mdf.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_edos_vs_broad.py` (``../abipy/examples/plot/plot_edos_vs_broad.py``) + - 00:00.358 - 0.0 - * - :ref:`sphx_glr_gallery_plot_multiple_hist.py` (``../abipy/examples/plot/plot_multiple_hist.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_phbands_and_dos.py` (``../abipy/examples/plot/plot_phbands_and_dos.py``) + - 00:00.352 - 0.0 * - :ref:`sphx_glr_gallery_plot_multiple_mdf.py` (``../abipy/examples/plot/plot_multiple_mdf.py``) - - 00:00.000 + - 00:00.350 - 0.0 * - :ref:`sphx_glr_gallery_plot_optic.py` (``../abipy/examples/plot/plot_optic.py``) - - 00:00.000 + - 00:00.349 - 0.0 - * - :ref:`sphx_glr_gallery_plot_phbands_and_dos.py` (``../abipy/examples/plot/plot_phbands_and_dos.py``) - - 00:00.000 - - 0.0 - * - :ref:`sphx_glr_gallery_plot_phbands_grid.py` (``../abipy/examples/plot/plot_phbands_grid.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_scqpgw.py` (``../abipy/examples/plot/plot_scqpgw.py``) + - 00:00.348 - 0.0 - * - :ref:`sphx_glr_gallery_plot_phbands_nkpt_tsmear.py` (``../abipy/examples/plot/plot_phbands_nkpt_tsmear.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_convergence.py` (``../abipy/examples/plot/plot_convergence.py``) + - 00:00.314 - 0.0 - * - :ref:`sphx_glr_gallery_plot_phdos_grid.py` (``../abipy/examples/plot/plot_phdos_grid.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_ejdos.py` (``../abipy/examples/plot/plot_ejdos.py``) + - 00:00.309 - 0.0 - * - :ref:`sphx_glr_gallery_plot_phonon_fatbands.py` (``../abipy/examples/plot/plot_phonon_fatbands.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_scr_matrix.py` (``../abipy/examples/plot/plot_scr_matrix.py``) + - 00:00.301 - 0.0 - * - :ref:`sphx_glr_gallery_plot_phonon_pjdos.py` (``../abipy/examples/plot/plot_phonon_pjdos.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_den.py` (``../abipy/examples/plot/plot_den.py``) + - 00:00.300 - 0.0 - * - :ref:`sphx_glr_gallery_plot_phonons.py` (``../abipy/examples/plot/plot_phonons.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_multiple_hist.py` (``../abipy/examples/plot/plot_multiple_hist.py``) + - 00:00.290 - 0.0 - * - :ref:`sphx_glr_gallery_plot_phonons_infrared.py` (``../abipy/examples/plot/plot_phonons_infrared.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_dfpt_cycle.py` (``../abipy/examples/plot/plot_dfpt_cycle.py``) + - 00:00.270 - 0.0 - * - :ref:`sphx_glr_gallery_plot_phonons_lo_to.py` (``../abipy/examples/plot/plot_phonons_lo_to.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_wfk.py` (``../abipy/examples/plot/plot_wfk.py``) + - 00:00.262 - 0.0 - * - :ref:`sphx_glr_gallery_plot_phonons_msqd.py` (``../abipy/examples/plot/plot_phonons_msqd.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_lobster_files.py` (``../abipy/examples/plot/plot_lobster_files.py``) + - 00:00.259 - 0.0 - * - :ref:`sphx_glr_gallery_plot_phthermo.py` (``../abipy/examples/plot/plot_phthermo.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_phonons_lo_to.py` (``../abipy/examples/plot/plot_phonons_lo_to.py``) + - 00:00.240 - 0.0 * - :ref:`sphx_glr_gallery_plot_potentials.py` (``../abipy/examples/plot/plot_potentials.py``) - - 00:00.000 + - 00:00.227 - 0.0 - * - :ref:`sphx_glr_gallery_plot_qha.py` (``../abipy/examples/plot/plot_qha.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_lobster_cohp.py` (``../abipy/examples/plot/plot_lobster_cohp.py``) + - 00:00.225 - 0.0 - * - :ref:`sphx_glr_gallery_plot_qha_vs_qmesh.py` (``../abipy/examples/plot/plot_qha_vs_qmesh.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_hist.py` (``../abipy/examples/plot/plot_hist.py``) + - 00:00.224 - 0.0 - * - :ref:`sphx_glr_gallery_plot_qpbands_with_interpolation.py` (``../abipy/examples/plot/plot_qpbands_with_interpolation.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_ebands_scatter3d.py` (``../abipy/examples/plot/plot_ebands_scatter3d.py``) + - 00:00.210 - 0.0 - * - :ref:`sphx_glr_gallery_plot_qpbands_with_scissor.py` (``../abipy/examples/plot/plot_qpbands_with_scissor.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_phonon_pjdos.py` (``../abipy/examples/plot/plot_phonon_pjdos.py``) + - 00:00.191 - 0.0 - * - :ref:`sphx_glr_gallery_plot_qpconvergence.py` (``../abipy/examples/plot/plot_qpconvergence.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_gw_spectral_functions.py` (``../abipy/examples/plot/plot_gw_spectral_functions.py``) + - 00:00.179 - 0.0 - * - :ref:`sphx_glr_gallery_plot_qps.py` (``../abipy/examples/plot/plot_qps.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_bz.py` (``../abipy/examples/plot/plot_bz.py``) + - 00:00.179 - 0.0 - * - :ref:`sphx_glr_gallery_plot_scqpgw.py` (``../abipy/examples/plot/plot_scqpgw.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plotly_phbands_and_dos.py` (``../abipy/examples/plot/plotly_phbands_and_dos.py``) + - 00:00.175 - 0.0 * - :ref:`sphx_glr_gallery_plot_scr.py` (``../abipy/examples/plot/plot_scr.py``) - - 00:00.000 + - 00:00.158 - 0.0 - * - :ref:`sphx_glr_gallery_plot_scr_matrix.py` (``../abipy/examples/plot/plot_scr_matrix.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_effmass.py` (``../abipy/examples/plot/plot_effmass.py``) + - 00:00.153 - 0.0 - * - :ref:`sphx_glr_gallery_plot_speed_of_sound.py` (``../abipy/examples/plot/plot_speed_of_sound.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_wannier90_wout.py` (``../abipy/examples/plot/plot_wannier90_wout.py``) + - 00:00.149 - 0.0 - * - :ref:`sphx_glr_gallery_plot_wannier90_abiwan.py` (``../abipy/examples/plot/plot_wannier90_abiwan.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_fold2bloch.py` (``../abipy/examples/plot/plot_fold2bloch.py``) + - 00:00.145 - 0.0 - * - :ref:`sphx_glr_gallery_plot_wannier90_wout.py` (``../abipy/examples/plot/plot_wannier90_wout.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_edos_grid.py` (``../abipy/examples/plot/plot_edos_grid.py``) + - 00:00.130 - 0.0 - * - :ref:`sphx_glr_gallery_plot_wfk.py` (``../abipy/examples/plot/plot_wfk.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_lruj.py` (``../abipy/examples/plot/plot_lruj.py``) + - 00:00.121 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_edos.py` (``../abipy/examples/plot/plot_edos.py``) + - 00:00.115 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_gscycle.py` (``../abipy/examples/plot/plot_gscycle.py``) + - 00:00.111 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_phthermo.py` (``../abipy/examples/plot/plot_phthermo.py``) + - 00:00.097 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_phdos_grid.py` (``../abipy/examples/plot/plot_phdos_grid.py``) + - 00:00.078 - 0.0 * - :ref:`sphx_glr_gallery_plot_xrd.py` (``../abipy/examples/plot/plot_xrd.py``) - - 00:00.000 + - 00:00.071 - 0.0 - * - :ref:`sphx_glr_gallery_plotly_phbands_and_dos.py` (``../abipy/examples/plot/plotly_phbands_and_dos.py``) - - 00:00.000 + * - :ref:`sphx_glr_gallery_plot_funcs.py` (``../abipy/examples/plot/plot_funcs.py``) + - 00:00.046 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_gruneisen_abinit.py` (``../abipy/examples/flows/run_gruneisen_abinit.py``) + - 00:00.036 - 0.0 diff --git a/docs/workflows/manager_examples.rst b/docs/workflows/manager_examples.rst index bbf309706..3a7a5167e 100644 --- a/docs/workflows/manager_examples.rst +++ b/docs/workflows/manager_examples.rst @@ -19,7 +19,7 @@ Dragon1 num_nodes: 26 sockets_per_node: 2 cores_per_socket: 8 - mem_per_node: 112Gb + mem_per_node: 112GB job: &job mpi_runner: mpirun @@ -69,7 +69,7 @@ Gmac num_nodes: 1 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB # Optional #condition: {"$eq": {omp_threads: 2}} @@ -87,7 +87,7 @@ Hercules num_nodes: 65 sockets_per_node: 2 cores_per_socket: 8 - mem_per_node: 54Gb + mem_per_node: 54GB job: &job mpi_runner: mpirun @@ -126,19 +126,19 @@ Hmem num_nodes: 2 sockets_per_node: 4 cores_per_socket: 12 - mem_per_node: 512Gb + mem_per_node: 512GB middle: &middle num_nodes: 7 sockets_per_node: 4 cores_per_socket: 12 - mem_per_node: 256Gb + mem_per_node: 256GB low: &low num_nodes: 7 sockets_per_node: 4 cores_per_socket: 12 - mem_per_node: 128Gb + mem_per_node: 128GB job: &job mpi_runner: mpirun @@ -194,7 +194,7 @@ Juqueen num_nodes: 128 sockets_per_node: 1 cores_per_socket: 16 - mem_per_node: 128Gb + mem_per_node: 128GB job: &job mpi_runner: runjob @@ -240,7 +240,7 @@ Juqueen num_nodes: 1 sockets_per_node: 1 cores_per_socket: 1 - mem_per_node: 12Gb + mem_per_node: 12GB job: #mpi_runner: runjob shell_env: @@ -262,13 +262,13 @@ Jureca num_nodes: 8 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 128Gb + mem_per_node: 128GB batch: &batch num_nodes: 128 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 128Gb + mem_per_node: 128GB job: &job # mpirun is not available on jureca. @@ -308,7 +308,7 @@ Lemaitre2 num_nodes: 112 sockets_per_node: 2 cores_per_socket: 6 - mem_per_node: 48Gb + mem_per_node: 48GB job: &job mpi_runner: mpirun @@ -347,7 +347,7 @@ Lemaitre3 num_nodes: 80 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 95Gb + mem_per_node: 95GB job: &job mpi_runner: mpirun @@ -387,7 +387,7 @@ Lumi num_nodes: 1376 sockets_per_node: 2 cores_per_socket: 64 - mem_per_node: 256Gb + mem_per_node: 256GB job: &job mpi_runner: srun @@ -433,19 +433,19 @@ Manneback num_nodes: 672 sockets_per_node: 2 cores_per_socket: 4 - mem_per_node: 24 Gb + mem_per_node: 24 GB ObanAMD: &ObanAMD num_nodes: 6 sockets_per_node: 4 cores_per_socket: 8 - mem_per_node: 128 Gb + mem_per_node: 128 GB ObanIntel: &ObanIntel num_nodes: 3 sockets_per_node: 4 cores_per_socket: 8 - mem_per_node: 256 Gb + mem_per_node: 256 GB # Environment, modules, and parameters used to launch jobs. job: &job @@ -495,7 +495,7 @@ Nic4 num_nodes: 120 sockets_per_node: 2 cores_per_socket: 8 - mem_per_node: 64Gb + mem_per_node: 64GB job: &job mpi_runner: "mpirun" @@ -553,7 +553,7 @@ Shell num_nodes: 1 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB Shell_nompi @@ -579,7 +579,7 @@ Shell_nompi num_nodes: 1 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB Travis @@ -606,7 +606,7 @@ Travis num_nodes: 1 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB Ubu @@ -634,7 +634,7 @@ Ubu num_nodes: 1 sockets_per_node: 1 cores_per_socket: 24 - mem_per_node: 4 Gb + mem_per_node: 4 GB Vega @@ -648,7 +648,7 @@ Vega num_nodes: 44 sockets_per_node: 4 cores_per_socket: 16 - mem_per_node: 256Gb + mem_per_node: 256GB job: &job mpi_runner: mpirun @@ -684,7 +684,7 @@ Viper num_nodes: 1 sockets_per_node: 2 cores_per_socket: 4 - mem_per_node: 32Gb + mem_per_node: 32GB job: &job mpi_runner: ~/bin/mpirun.openmpi @@ -719,13 +719,13 @@ Zenobe num_nodes: 274 sockets_per_node: 2 cores_per_socket: 6 - mem_per_node: 24 Gb + mem_per_node: 24 GB ivybridge: &ivybridge num_nodes: 342 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 64 Gb + mem_per_node: 64 GB # Environment, modules, and parameters used to launch jobs. job: &job diff --git a/docs/workflows/taskmanager.rst b/docs/workflows/taskmanager.rst index 53c6def59..06e60460a 100644 --- a/docs/workflows/taskmanager.rst +++ b/docs/workflows/taskmanager.rst @@ -147,7 +147,7 @@ Note this approach also allows you to safely use multiple versions. Copy this example and change the entries in the ``hardware`` and the ``limits`` section according to your machine, in particular make sure that ``max_cores`` is not greater than the number of physical cores available on your personal computer. -Save the file in the current working directory and run the :ref:`abicheck.py` script provided by AbiPy. +Save the file in the current working directory and run the abicheck.py_ script provided by AbiPy. If everything is configured properly, you should see something like this in the terminal. .. command-output:: abicheck.py --no-colors