...
 
Commits (27)
......@@ -148,14 +148,14 @@ to enumerate -- both academics and industry will benefit greatly from having
software for these methods.
The modules listed here deal with software to perform path sampling methods,
as well as other approaches to rare events.
as well as other approaches to rare events.
OpenPathSampling
================
Several modules were developed based on
`OpenPathSampling (OPS) <http://openpathsampling.org>`_. These include modules
that have been incorporated into the core of OPS, as well as some that remain
Several modules were developed based on
`OpenPathSampling (OPS) <http://openpathsampling.org>`_. These include modules
that have been incorporated into the core of OPS, as well as some that remain
separate projects. The modules that were incorporated into the core are:
.. toctree::
......@@ -182,7 +182,7 @@ The modules that are based on OPS, but remain separate, are:
.. toctree::
:glob:
:maxdepth: 1
./modules/annotated_trajectories/readme
./modules/ops_piggybacker/readme
./modules/contact_maps/readme
......@@ -190,9 +190,9 @@ The modules that are based on OPS, but remain separate, are:
./modules/dw_dimer_testsystem/readme
./modules/lammps_ops/readme
Nine of these modules were part of
Nine of these modules were part of
`E-CAM Deliverable 1.2 <https://www.e-cam2020.eu/deliverables/>`_. Those modules
provided improvements and new features in software for trajectory sampling and
provided improvements and new features in software for trajectory sampling and
for studying the thermodynamics and kinetics of rare events.
Pilot Projects
......@@ -221,8 +221,8 @@ The following modules were developed specifically for the Classical MD pilot pro
Extended Software Development Workshops (ESDWs)
===============================================
The first ESDW for the Classical MD workpackage was held in Traunkirchen,
Austria, in November 2016, with a follow-up to be held in Vienna in April 2017.
The first ESDW for the Classical MD workpackage was held in Traunkirchen,
Austria, in November 2016, with a follow-up to be held in Vienna in April 2017.
The following modules have been produced:
.. toctree::
......@@ -234,7 +234,7 @@ The following modules have been produced:
./modules/OpenPathSampling/ops_maxlikelihood/readme
./modules/OpenPathSampling/ops_interface_optimization/readme
The second ESDW for the Classical MD workpackage was held in Leiden, Holland, in
The second ESDW for the Classical MD workpackage was held in Leiden, Holland, in
August 2017. The following modules have been produced:
.. toctree::
......@@ -255,6 +255,6 @@ The third ESDW for the Classical MD workpackage was held in Turin, Italy in July
:maxdepth: 1
./modules/HTC/decorators/readme
./modules/pybop/readme
./modules/pyscal/readme
.. _E-CAM: https://www.e-cam2020.eu/
......@@ -11,7 +11,7 @@ Spring Shooting in OpenPathSampling
sections.
Language
Python (2.7, 3.5, 3.6)
Python (2.7, 3.6, 3.7)
Documentation Tool
Sphinx, numpydoc format (ReST)
......@@ -127,7 +127,7 @@ reading:
Testing
_______
Tests in OpenPathSampling use the `nose`_ package.
.. Tests in OpenPathSampling use the `nose`_ package.
.. IF YOUR MODULE IS IN OPS CORE:
......@@ -140,8 +140,8 @@ Tests in OpenPathSampling use the `nose`_ package.
The tests for this module can be run by downloading its source code (see the
``Source Code`` section below), installing its requirements and installing it
by running ``python setup.py install`` from the root directory of the package.
Test this module by running the command ``nosetests`` from the root directory of the
repository.
Test this module with the `nose`_ package, by running the command ``nosetests``
from the root directory of the repository.
Examples
________
......
......@@ -11,7 +11,7 @@ Transition State Ensemble in OpenPathSampling
sections.
Language
Python (2.7)
Python (3.7)
Documentation Tool
Sphinx, numpydoc format (ReST)
......
......@@ -11,7 +11,7 @@ Web Throwing in OpenPathSampling
sections.
Language
Python (2.7)
Python (2.7, 3.6, 3.7)
Documentation Tool
Sphinx, numpydoc format (ReST)
......@@ -122,7 +122,7 @@ reading:
Testing
_______
Tests in OpenPathSampling use the `nose`_ package.
.. Tests in OpenPathSampling use the `nose`_ package.
.. IF YOUR MODULE IS IN OPS CORE:
......@@ -136,8 +136,8 @@ The tests for this module can be run by installing `OpenPathSampling`_,
downloading source code for the module (see the ``Source Code``
section below), and installing it by running by running
``python setup.py install`` from the root directory of the package.
Test this module by running the command ``nosetests`` from the root directory of
the repository.
Test this module with the `nose`_ package, by running the command ``nosetests``
from the root directory of the repository.
Examples
......
.. In ReStructured Text (ReST) indentation and spacing are very important (it is how ReST knows what to do with your
document). For ReST to understand what you intend and to render it correctly please to keep the structure of this
template. Make sure that any time you use ReST syntax (such as for ".. sidebar::" below), it needs to be preceded
and followed by white space (if you see warnings when this file is built they this is a common origin for problems).
.. We allow the template to be standalone, so that the library maintainers add it in the right place
.. Firstly, let's add technical info as a sidebar and allow text below to wrap around it. This list is a work in
progress, please help us improve it. We use *definition lists* of ReST_ to make this readable.
.. sidebar:: Software Technical Information
Name
pybop
Language
Python (2.7, 3.4, 3.5, 3.6)
Licence
`GNU General Public License v3.0 <https://www.gnu.org/licenses/gpl-3.0.en.html>`_
Documentation Tool
Sphinx/RST
Application Documentation
https://srmnitc.github.io/pybop/html/index.html
Relevant Training Material
https://mybinder.org/v2/gh/srmnitc/pybop/master?filepath=examples%2F
Software Module Developed by
Sarath Menon
.. In the next line you have the name of how this module will be referenced in the main documentation (which you can
reference, in this case, as ":ref:`example`"). You *MUST* change the reference below from "example" to something
unique otherwise you will cause cross-referencing errors. The reference must come right before the heading for the
reference to work (so don't insert a comment between).
#####
pybop
#####
.. Let's add a local table of contents to help people navigate the page
.. contents:: :local:
.. Add an abstract for a *general* audience here. Write a few lines that explains the "helicopter view" of why you are
creating this module. For example, you might say that "This module is a stepping stone to incorporating XXXX effects
into YYYY process, which in turn should allow ZZZZ to be simulated. If successful, this could make it possible to
produce compound AAAA while avoiding expensive process BBBB and CCCC."
``pybop`` is a python module for calculation of bond orientational order parameters [#]_. The core functionality of ``pybop`` is written in C++ with python wrappers using `pybind11 <https://pybind11.readthedocs.io/en/stable/intro.html>`_ . This allows for fast calculations with possibilities for seamless expansion in python.
Purpose of Module
_________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
Bond orientational order parameters have been widely used in distinction of crystal structures in computational studies [#]_. Additionally, these parameters have also been used to distinguish between solid and liquid particles in studies of crystallisation during solidification [#]_.
``pybop`` provides a flexible post-processing python environment for these calculations, at the same time ensuring speed and efficiency as the core code is written in C++ with `pybind11 bindings <https://pybind11.readthedocs.io/en/stable/intro.html>`_. ``pybop`` also links with `Voro++ <http://math.lbl.gov/voro++/>`_ code to carry out calculations of voronoi volumes, indices and face areas.
Some of the major uses of ``pybop`` are listed below-
- calculations including the bond order parameters :math:`q_{i}` where :math:`i = \{2,3 \to 12\}`.
- averaged versions which has been to improve the resolution in identification of crystal structures [#]_.
- weighted :math:`q_{i}` where the contributions are weighted by the voronoi face area shared with adjacent atoms [#]_.
- distinction of liquid and solid atoms based on :math:`q_{6}` parameter.
- calculation of the parameters in non-orthogonal simulation boxes.
- other quantities like radial distribution function, coordination number and voronoi volume of individual particles.
``pybop`` can read in output data from LAMMPS [#]_ `dump format <https://lammps.sandia.gov/doc/dump.html>`_ and POSCAR files from VASP. The module also provides an easy interface for extension of the available data formats or linking with other codes to read in input data.
.. I will add information about the paper and results using pybop.
Background Information
______________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
See the `application documentation <https://srmnitc.github.io/pybop/html/index.html>`_ for full details.
The utilisation of Dask within the project came about as a result of the `E-CAM High Throughput Computing ESDW <https://www.e-cam2020.eu/event/4424/?instance_id=71>`_ held in Turin in 2018 and 2019.
Building and Testing
____________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
**Installation**
First, clone the ``pybop`` repository by ``git clone https://github.com/srmnitc/pybop.git``.
After cloning the repository, ``pybop`` can be installed by running ``python setup.py install`` from main code directory. It can be uninstalled by ``pip uninstall pybop``. All the dependencies of ``pybop`` are installed automatically.
**Testing**
``pybop`` also contains automated tests which use the `pytest <https://docs.pytest.org/en/latest/>`_ python library, which can be installed by ``pip install pytest``. The tests can be run by executing the command ``pytest tests/`` from the main code directory.
**Examples**
Examples uses of ``pybop`` can be found `here <https://srmnitc.github.io/pybop/html/examples.html>`_. An `interactive notebook <https://mybinder.org/v2/gh/srmnitc/pybop/master?filepath=examples%2F>`_ using binder is also available.
Source Code
___________
.. Notice the syntax of a URL reference below `Text <URL>`_ the backticks matter!
The `source code <https://github.com/srmnitc/pybop>`_. of the module can be found on GitHub.
.. [#] Steinhardt, PJ, Nelson, DR, Ronchetti, M. Phys. Rev. B 28, 1983.
.. [#] Lechner, W, Dellago, C, Bolhuis, P.G. J. Chem. Phys. 125, 2011., Diaz Leines, G, Drautz, R, Rogal, J. J. Chem. Phys. 146, 2017.
.. [#] Diaz Leines, G, Drautz, R, Rogal, J. J. Chem. Phys. 146, 2017.
.. [#] Lechner, W, Dellago, C. J. Chem. Phys. 129, 2008.
.. [#] Mickel, W, Kapfer, S.C, Schroder-Turk, G.E, Mecke, K. J. Chem. Phys. 138, 2013.
.. [#] Plimpton, S. J Comp. Phys. 117, 1995.
.. sidebar:: Software Technical Information
Name
pyscal
Language
Python (2.7, 3.4, 3.5, 3.6)
Licence
`GNU General Public License v3.0 <https://www.gnu.org/licenses/gpl-3.0.en.html>`_
Documentation Tool
Sphinx/RST
Application Documentation
https://pyscal.readthedocs.io/en/latest/
Relevant Training Material
https://mybinder.org/v2/gh/srmnitc/pyscal/master?filepath=examples%2F
Software Module Developed by
Sarath Menon
Grisell Díaz Leines
Jutta Rogal
######
pyscal
######
.. contents:: :local:
**pyscal** is a python module for the calculation of local atomic structural environments including Steinhardt's bond orientational order parameters [1]_ during post-processing
of atomistic simulation data. The core functionality of pyscal is written in C++ with python wrappers using
`pybind11 <https://pybind11.readthedocs.io/en/stable/intro.html>`_ which allows for fast calculations and
easy extensions in python.
Purpose of Module
_________________
Steinhardt's order parameters are widely used for the identification of crystal structures [3]_. They are also used to distinguish
if an atom is in a solid or liquid environment [4]_. pyscal is inspired by the
`BondOrderAnalysis <https://homepage.univie.ac.at/wolfgang.lechner/bondorderparameter.html>`_ code,
but has since incorporated many additional features and modifications. The pyscal module includes the following functionalities:
* calculation of Steinhardt's order parameters and their averaged version [2]_.
* links with the `Voro++ <http://math.lbl.gov/voro++/>`_ code, for the calculation of Steinhardt parameters weighted using the face areas of Voronoi polyhedra [3]_.
* classification of atoms as solid or liquid [4]_.
* clustering of particles based on a user defined property.
* methods for calculating radial distribution functions, Voronoi volumes of particles, number of vertices and face area of Voronoi polyhedra, and coordination numbers.
Background Information
______________________
See the `application documentation <https://pyscal.readthedocs.io/en/latest/>`_ for full details.
The utilisation of Dask within the project came about as a result of the `E-CAM High Throughput Computing ESDW <https://www.e-cam2020.eu/event/4424/?instance_id=71>`_ held in Turin in 2018 and 2019.
Building and Testing
____________________
**Installation**
pyscal can be installed directly using `Conda <https://docs.conda.io/en/latest/>`_ by the following statement-
.. code:: console
conda install -c pyscal pyscal
pyscal can be built from the repository by-
.. code:: console
git clone https://github.com/srmnitc/pyscal.git
cd pyscal
python setup.py install --user
**Testing**
pyscal contains automated tests which
use the `pytest <https://docs.pytest.org/en/latest/>`_ python library, which can be installed by ``pip install pytest``.
The tests can be run by executing the command ``pytest tests/`` from the main code directory.
**Examples**
Examples using pyscal can be found `here <https://pyscal.readthedocs.io/en/latest/examples.html>`_.
An `interactive notebook <https://mybinder.org/v2/gh/srmnitc/pyscal/master?filepath=examples%2F>`_
using binder is also available.
Source Code
___________
The `source code <https://github.com/srmnitc/pyscal>`_. of the module can be found on GitHub.
.. [1] `Steinhardt, P. J., Nelson, D. R., & Ronchetti, M. (1983). Physical Review B, 28 <https://journals.aps.org/prb/abstract/10.1103/PhysRevB.28.784>`_.
.. [2] `Lechner, W., & Dellago, C. (2008). The Journal of Chemical Physics, 129 <https://aip.scitation.org/doi/full/10.1063/1.2977970>`_.
.. [3] `Mickel, W., Kapfer, S. C., Schröder-Turk, G. E., & Mecke, K. (2013). The Journal of Chemical Physics, 138 <https://aip.scitation.org/doi/full/10.1063/1.4774084>`_.
.. [4] `Auer, S., & Frenkel, D. (2005). Advances in Polymer Science, 173 <https://link.springer.com/chapter/10.1007/b99429>`_.
......@@ -86,6 +86,19 @@ The ESDW in Lausanne in February 2018 was the starting point for the modules bel
:maxdepth: 1
./modules/esl-bundle/readme
./modules/ELPA_easyblock/readme
ESDW Dublin 2019
-----------------
The ESDW in Dublin in January 2019 was the starting point for the modules below.
.. toctree::
:glob:
:maxdepth: 1
./modules/esl-easyconfigs/readme
Other Modules
-------------
......@@ -127,4 +140,17 @@ Below is a list of the modules developed directly within the context of the pilo
./modules/FFTXlib/readme
./modules/W90_cube_format_non-orthogonal/readme
QMCPack interfaces
------------------
The following modules related to interfaces for the QMCPack code have been produced so far in the context of an `associated Pilot Project <https://www.e-cam2020.eu/qmcpack-interfaces-for-es-computations/>`_:
.. toctree::
:glob:
:maxdepth: 1
./modules/ESInterfaceBase/readme
./modules/ESHDF5Interface/readme
./modules/ESPWSCFInterface/readme
./modules/QMCQEPack_qepatch/readme
.. _E-CAM: https://www.e-cam2020.eu/
.. sidebar:: Software Technical Information
Name
EasyBuild
Language
Python
Licence
`GPL-2.0 <https://opensource.org/licenses/GPL-2.0>`_
Documentation Tool
ReST_
Application Documentation
https://easybuild.readthedocs.io
Relevant Training Material
See documentation
Software Module Developed by
Micael Oliveira
.. In the next line you have the name of how this module will be referenced in the main documentation (which you can
reference, in this case, as ":ref:`example`"). You *MUST* change the reference below from "example" to something
unique otherwise you will cause cross-referencing errors. The reference must come right before the heading for the
reference to work (so don't insert a comment between).
.. _elpa_easyblock:
###############################
Add ELPA easyblock to EasyBuild
###############################
.. Let's add a local table of contents to help people navigate the page
.. contents:: :local:
.. Add an abstract for a *general* audience here. Write a few lines that explains the "helicopter view" of why you are
creating this module. For example, you might say that "This module is a stepping stone to incorporating XXXX effects
into YYYY process, which in turn should allow ZZZZ to be simulated. If successful, this could make it possible to
produce compound AAAA while avoiding expensive process BBBB and CCCC."
EasyBuild is used by a number of large HPC sites and integrating targeted support for ELPA ensures that those sites
use optimally built versions of ELPA.
Purpose of Module
_________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
Automate the selection of appropriate configuration flags for ELPA within EasyBuild depending on the type of CPU and available features.
Include additional options as appropriate. Build single and double precision versions of ELPA and also ensure it is linked against the expected version of the linear algebra libraries.
Background Information
______________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
EasyBuild is a software build and installation framework that allows you to manage (scientific) software on High
Performance Computing (HPC) systems in an efficient way. Full details on can be found in the
`EasyBuild documentation <https://easybuild.readthedocs.io/en/latest/>`_.
EasyBuild already had limited support for ELPA, this module allows for automated hardware specific configuration and optimisations.
Building and Testing
____________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
To build the software requires EasyBuild (see
`installation instructions for EasyBuild here <https://easybuild.readthedocs.io/en/latest/Installation.html>`_) and an
example build command would be:
::
eb ELPA-2018.11.001-intel-2019a.eb
Source Code
___________
.. Notice the syntax of a URL reference below `Text <URL>`_ the backticks matter!
There are two relevant Pull Requests in the main EasyBuild repositories:
* https://github.com/easybuilders/easybuild-easyblocks/pull/1621
* https://github.com/easybuilders/easybuild-easyconfigs/pull/8360
.. Here are the URL references used (which is alternative method to the one described above)
.. _ReST: http://www.sphinx-doc.org/en/stable/rest.html
.. _Sphinx: http://www.sphinx-doc.org/en/stable/markup/index.html
......@@ -3,10 +3,10 @@
.. sidebar:: Software Technical Information
Name
QMCQEPack
ESHDF5Interface
Language
C++, Fortran
C++
Licence
......@@ -17,37 +17,28 @@
Not currently available
Software Module Developed by
Michele Ruggeri
Michele Ruggeri, Raymond C. Clay III
.. _QMCQEPack:
.. _ESHDF5Interface:
####################
QMCQEPack
ESHDF5Interface
####################
.. contents:: :local:
QMCQEPack is an interface between the QMCPack software for Quantum Monte Carlo simulations of electronic structure
and the DFT software Quantum Espresso, that allows the DFT computation on the fly of single electron orbitals
to be included in trial wave functions for QMC simulations
Purpose of Module
_________________
To obtain accurate results with ground state Quantum Monte Carlo methods (such as Variational and Diffusion Monte Carlo) an accurate
trial wave function is essential. Such a wave function for an electron system will be typically
given by the product of two factors: (1) a Jastrow term describing inter electron correlations and (2) a Slater determinant of suitable single
particle orbitals. While there is great freedom in the definition of the Jastrow term, that can then be variationally
optimized, the single particle orbitals have to be computed in using Density Functional Theory.
To obtain accurate results with ground state Quantum Monte Carlo methods (such as Variational and Diffusion Monte Carlo) an accurate trial wave function is essential.
Such a wave function for an electron system will be typically given by the product of two factors: (1) a Jastrow term :math:`J` describing electronic correlations and (2) a Slater determinant of suitable single particle orbitals :math:`\phi_i`
:math:`\Psi({bf R}) = J({bf R}) \cdot \Det(\phi_i({\bf r}_j))`
The QMCQEPack module allows to compute on the fly the single particle orbitals with Quantum Espresso, and
to use them in QMC simulations with the QMCPack software. The main feature that distinguish QMCQEPack from other orbital
converters is that all the computations are made on the fly, without having to write any output on the filesystem,
allowing great efficiency and a considerable speed up in the overall workflow.
where :math:`R` is the vector containing the position of all electrons and :math:`r_i` is the position of the :math:`i`-th electron.
While there is great freedom in the definition of the Jastrow term, that can then be variationally optimized, the single particle orbitals have to be computed in using Density Functional Theory.
Being able to efficiently recompute single particle orbitals during a single simulation allows to move ions during the QMC procedure,
allowing for example geometry optimisation, relaxation and the implementation of the Coupled Electron Ion method or
the computation of forces for Molecular Dynamics.
The ESHDF5Interface module provides a derived class of ESInterfaceBase to generate single particle orbitals for QMC simulations performed using QMCPack from a suitable HDF5 file.
Background Information
______________________
......@@ -55,13 +46,10 @@ ______________________
QMCPack is available from the github repository `<https://github.com/QMCPACK/qmcpack>`_,
and the documentation can be found at the QMCPack website `<https://qmcpack.org/documentation>`_.
Quantum Espresso is available from the github repository `<https://github.com/QEF/q-e>`_, and the
documentation can be found in `<http://www.quantum-espresso.org/Doc/user_guide/>`_.
Building and testing
____________________
The first step to install QMCQEPack is cloning the QMCQEPack branch of the QMCPack git repository
The EHDF5Interface module can be found in the QMCQEPack branch of the QMCPack git repository
`<https://github.com/michruggeri/qmcpack/tree/QMCQEPack>`_.
After cloning and getting to the QMCQEPack branch with
......@@ -69,25 +57,15 @@ After cloning and getting to the QMCQEPack branch with
``git checkout QMCQEPack``
one has to install, patch and compile the required Quantum Espresso libraries.
This can be done executing the ``QMCQEPack_download_and_patch_qe.sh`` script found in ``qmcpack/external_codes/quantum_espresso``.
Once the patching process is complete one just has to run the ``configure`` script in the resulting folder q-e-qe5.3 and finally
build the ``libpwinterface.so`` library with
``make pw``
Note that in order to build this library the FFTW3 library must be compiled as position independent code (PIC);
if that is not the case it is possible to use the internal version of FFTW library changing the ``__FFTW3`` flag to ``__FFTW`` in
``make.sys``.
one can proceed to build the QMCPack software, as
detailed in the official QMCPack documentation `<https://qmcpack.org/documentation>`_, or in the manual available
in the ``manual`` subdirectory in the main QMCPack directory.
Once the ``libpwinterface.so`` library is compiled and included/linked to the library path one can proceed to build the QMCPack software, as
detailed in the official QMCPack documentation `<https://qmcpack.org/documentation>`_.
To use the interface one must use the ``interfaceh5`` keyword in the ``determinantset`` block in a QMCPack input file; further information can be found in Section 22.5.2 of the QMCPack manual, that can be compiled with the files in the ``manual`` directory.
To test the code one can run the tests in the directory ``qmcpack/QMCQEPack_test``; here there are folders with input files for
some simulation examples each with their one ``Reference`` directory to check the results. A more detailed
``Readme`` file is also present there.
The tests for this code are part of the deterministic unit tests for QMCPack, that can be run with the command
It should be noted that the current version of this module only supports serial runs; a parallel version is currently in development.
``ctest -R deterministic``
Source Code
___________
......
:orphan:
.. sidebar:: Software Technical Information
Name
ESInterfaceBase
Language
C++
Licence
Documentation Tool
Doxygen
Relevant Training Material
Not currently available
Software Module Developed by
Michele Ruggeri, Raymond C. Clay III
.. _ESInterfaceBase:
####################
ESInterfaceBase
####################
.. contents:: :local:
Purpose of Module
_________________
To obtain accurate results with ground state Quantum Monte Carlo methods (such as Variational and Diffusion Monte Carlo) an accurate trial wave function is essential.
Such a wave function for an electron system will be typically given by the product of two factors: (1) a Jastrow term :math:`J` describing electronic correlations and (2) a Slater determinant of suitable single particle orbitals :math:`\phi_i`
:math:`\Psi({bf R}) = J({bf R}) \cdot \Det(\phi_i({\bf r}_j))`
where :math:`R` is the vector containing the position of all electrons and :math:`r_i` is the position of the :math:`i`-th electron.
While there is great freedom in the definition of the Jastrow term, that can then be variationally optimized, the single particle orbitals have to be computed in using Density Functional Theory.
The ESInterfaceBase module provides a base class for a general interface to generate single particle orbitals for QMC simulations performed using QMCPack; implementations of specific interfaces as derived classes of ESInterfaceBase are available as separate modules.
Background Information
______________________
QMCPack is available from the github repository `<https://github.com/QMCPACK/qmcpack>`_,
and the documentation can be found at the QMCPack website `<https://qmcpack.org/documentation>`_.
Building and testing
____________________
The ESBaseInterface module can be found in the QMCQEPack branch of the QMCPack git repository
`<https://github.com/michruggeri/qmcpack/tree/QMCQEPack>`_.
After cloning and getting to the QMCQEPack branch with
``git clone https://github.com/michruggeri/qmcpack.git``
``git checkout QMCQEPack``
one can proceed to build the QMCPack software, as
detailed in the official QMCPack documentation `<https://qmcpack.org/documentation>`_, or in the manual available
in the ``manual`` subdirectory in the main QMCPack directory.
The tests for this code are part of the deterministic unit tests for QMCPack, that can be run with the command
``ctest -R deterministic``
Source Code
___________
The source code is available available from `<https://github.com/michruggeri/qmcpack/tree/QMCQEPack>`_.
.. Here are the URL references used (which is alternative method to the one described above)
.. _ReST: http://www.sphinx-doc.org/en/stable/rest.html
.. _Sphinx: http://www.sphinx-doc.org/en/stable/markup/index.html
:orphan:
.. sidebar:: Software Technical Information
Name
ESPWSCFInterface
Language
C++
Licence
Documentation Tool
Doxygen
Relevant Training Material
Not currently available
Software Module Developed by
Michele Ruggeri, Raymond C. Clay III
.. _ESPWSCFInterface:
####################
ESPWSCFInterface
####################
.. contents:: :local:
Purpose of Module
_________________
To obtain accurate results with ground state Quantum Monte Carlo methods (such as Variational and Diffusion Monte Carlo) an accurate trial wave function is essential.
Such a wave function for an electron system will be typically given by the product of two factors: (1) a Jastrow term :math:`J` describing electronic correlations and (2) a Slater determinant of suitable single particle orbitals :math:`\phi_i`
:math:`\Psi({bf R}) = J({bf R}) \cdot \Det(\phi_i({\bf r}_j))`
where :math:`R` is the vector containing the position of all electrons and :math:`r_i` is the position of the :math:`i`-th electron.
While there is great freedom in the definition of the Jastrow term, that can then be variationally optimized, the single particle orbitals have to be computed in using Density Functional Theory.
The ESPWSCFInterface module provides a derived class of ESInterfaceBase to generate single particle orbitals for QMCPack via a DFT computation performed with Quantum Espresso.
Background Information
______________________
QMCPack is available from the github repository `<https://github.com/QMCPACK/qmcpack>`_,
and the documentation can be found in the QMCPack website `<https://qmcpack.org/documentation>`_.
Quantum Espresso can be installed using the module :doc:`../QMCQEPack_qepatch/readme`, and the documentation
can be found in the Quantum Espresso website `<https://www.quantum-espresso.org/resources/users-manual>`_.
Building and testing
____________________
The EHDF5Interface module can be found in the ``QMCQEPack`` branch of the QMCPack git repository
`<https://github.com/michruggeri/qmcpack/tree/QMCQEPack>`_.
After cloning the repository and checking out the ``QMCQEPack`` branch with
``git clone https://github.com/michruggeri/qmcpack.git``
``git checkout QMCQEPack``
one can proceed to download Quantum Espresso and build the ``libpwinterface.so`` library
using the :doc:`../QMCQEPack_qepatch/readme` module.
Once the library is built one can proceed to build and compile QMCPack, as
detailed in the official QMCPack documentation `<https://qmcpack.org/documentation>`_, or in the manual available
in the ``manual`` subdirectory in the main QMCPack directory. Note that to use the Quantum Espresso interface the
``cmake`` options ``QE_INTERFACE`` must be used, typically with
``cmake -DQE_INTERFACE=1 -DQMC_COMPLEX=1 <QMCPack base directory>``
before compiling with ``make``.
To use the interface one must use the ``qmcqepack`` keyword in the ``determinantset`` block in a QMCPack input file; further information can be found in Section 22.5.3 of the QMCPack manual, that can be compiled with the files in the ``manual`` directory.
The tests for this code are part of the deterministic unit tests for QMCPack, that can be run with the command
``ctest -R deterministic``
Source Code
___________
The source code is available available from `<https://github.com/michruggeri/qmcpack/tree/QMCQEPack>`_.
.. Here are the URL references used (which is alternative method to the one described above)
.. _ReST: http://www.sphinx-doc.org/en/stable/rest.html
.. _Sphinx: http://www.sphinx-doc.org/en/stable/markup/index.html
:orphan:
.. sidebar:: Software Technical Information
Name
QMCQEPack_qepatch
Language
Fortran90
Licence
Documentation Tool
Doxygen
Relevant Training Material
Not currently available
Software Module Developed by
Michele Ruggeri, Raymond C. Clay III
.. _QMCQEPack_qepatch:
####################
QMCQEPack_qepatch
####################
.. contents:: :local:
Purpose of Module
_________________
To obtain accurate results with ground state Quantum Monte Carlo methods (such as Variational and Diffusion Monte Carlo) an accurate trial wave function is essential.
Such a wave function for an electron system will be typically given by the product of two factors: (1) a Jastrow term :math:`J` describing electronic correlations and (2) a Slater determinant of suitable single particle orbitals :math:`\phi_i`
:math:`\Psi({bf R}) = J({bf R}) \cdot \Det(\phi_i({\bf r}_j))`
where :math:`R` is the vector containing the position of all electrons and :math:`r_i` is the position of the :math:`i`-th electron.
While there is great freedom in the definition of the Jastrow term, that can then be variationally optimized, the single particle orbitals have to be computed in using Density Functional Theory.
The QMCQEPack_qepatch provides the files to properly patch Quantum Espresso 5.3 to build the ``libpwinterface.so`` library; this library is required to use the module :doc:`../ESPWSCFInterface/readme` to generate single particle orbitals during a QMCPack computation using Quantum Espresso.
Background Information
______________________
QMCPack is available from the github repository `<https://github.com/QMCPACK/qmcpack>`_,
and the documentation can be found in the QMCPack website `<https://qmcpack.org/documentation>`_.
Quantum Espresso can be installed using this module, and the documentation
can be found in the Quantum Espresso website `<https://www.quantum-espresso.org/resources/users-manual>`_.
Building and testing
____________________
The QMCQEPack_qepatch module can be found in the ``QMCQEPack`` branch of the QMCPack git repository
`<https://github.com/michruggeri/qmcpack/tree/QMCQEPack>`_.
After cloning the repository and checking out the ``QMCQEPack`` branch with
``git clone https://github.com/michruggeri/qmcpack.git``
``git checkout QMCQEPack``
one can proceed to build the ``libpwinterface.so`` library using the using the script ``QMCQEPack_download_and_patch_qe.sh`` in the ``external_codes/quantum_espresso`` directory. After patching the code one has to use the ``configure`` script in the resulting ``q-e-qe-5.3`` directory and finally compile the ``libpwinterface.so`` library with ``make pw``.
Note that when building the code it may be required to use the internal Quantum Espresso version of the FFTW libraries. In order to do so if is sufficient to change in the ``DFLAGS`` field of the ``make.sys`` file generated by the ``configure`` script ``-D__FFTW3`` with ``-D__FFTW``.
To use this library to perform DFT simulations QMCPack must be suitably compiled; the relevant information can be found in the documentation of the :doc:`../ESPWSCFInterface/readme` module.
The tests for this code are part of the deterministic unit tests for QMCPack, that can be run with the command
``ctest -R deterministic``
Source Code
___________
The source code is available available from `<https://github.com/michruggeri/qmcpack/tree/QMCQEPack>`_.
.. Here are the URL references used (which is alternative method to the one described above)
.. _ReST: http://www.sphinx-doc.org/en/stable/rest.html
.. _Sphinx: http://www.sphinx-doc.org/en/stable/markup/index.html
.. _esl-easyconfigs:
###############
ESL Easyconfigs
###############
.. sidebar:: Software Technical Information
Language
The easyconfigs are written in Python.
Licence
The building framework is distributed under the `GPL <https://opensource.org/licenses/gpl-license>`_.
For the licenses used in the different modules included in the Bundle, please check the corresponding documentation.
Documentation Tool
ReStructuredText
Application Documentation
`README <https://gitlab.com/ElectronicStructureLibrary/esl-easyconfigs/blob/master/Readme.rst>`_
Relevant Training Material
Not currently available.
Software Module Developed by
The ESL Easyconfigs was created by Micael Oliveira, Yann Pouillon and Alin Marin Elena.
.. contents:: :local:
The ESL Easyconfigs aims at providing for all the `CECAM Electronic
Structure Library <http://esl.cecam.org>`_ modules and their dependencies
easybuild easyconfigs to allow easy installaiton on supercomputers around
the world that use EasyBuild package manager.
Purpose of Module
_________________
The ESL Easyconfig is a collection of Easybuild easyconfigs
that allow to easily build on a supercomputer all the libraries and utilities broadly
used in electronic structure calculations, put together to make their
use easier by researchers and scientific software developers. It
includes a set of recipes for building the libraries and their dependencies helping users,
developers and packagers in obtaining a working installation of complex combinations of
software packages without having to track the dependencies themselves.
We are aiming at providing the recipes up to date for two of the most common toolchains
foss and intel. Once considered mature enough the recipes will be upstreamed to EasyBuild
official catalogue.
Installation
____________
One needs to install firstly `Easybuild`__ by following the preferred instructions
To install the full set of ESL modules and their dependencies for foss toolchain version
2019a (latest release at time of wrtiing) one needs to do
.. code-block:: bash
eb easyconfigs/e/esl-bundle/esl-bundle-0.3.1-foss-2019a.eb -r .
One shall note that in organizing the files the easyconfig recipes and their needed patches
we follow the same convention as EasyBuild itself.
Source Code
___________
The source code is available from the `Gitlab`__ under the `esl-easyconfigs`__
project. The ESL Bundle directory can be found `here`__.
.. __: EasyBuild https://easybuild.readthedocs.io
.. __: https://gitlab.com
.. __: https://gitlab.com/ElectronicStructureLibrary/esl-easyconfigs
.. __: https://gitlab.com/ElectronicStructureLibrary/esl-easyconfigs/tree/master
.. In ReStructured Text (ReST) indentation and spacing are very important (it is how ReST knows what to do with your
document). For ReST to understand what you intend and to render it correctly please to keep the structure of this
template. Make sure that any time you use ReST syntax (such as for ".. sidebar::" below), it needs to be preceded
and followed by white space (if you see warnings when this file is built they this is a common origin for problems).
.. We allow the template to be standalone, so that the library maintainers add it in the right place
.. Firstly, let's add technical info as a sidebar and allow text below to wrap around it. This list is a work in
progress, please help us improve it. We use *definition lists* of ReST_ to make this readable.
.. sidebar:: Software Technical Information
Name
......@@ -31,11 +21,12 @@
Software Module Developed by
Rene Halver
Polymer melt test is provided by
Dr. Horacio V. Guzman
Module Committed by
Dr. Horacio V. Guzman
.. In the next line you have the name of how this module will be referenced in the main documentation (which you can
reference, in this case, as ":ref:`ALL_example`"). You *MUST* change the reference below from "ALL_method_example"
to something unique otherwise you will cause cross-referencing errors. The reference must come right before the
heading for the reference to work (so don't insert a comment between).
.. _ALL_tensor_method:
......@@ -43,54 +34,64 @@
ALL Tensor-Product method
#########################
.. Let's add a local table of contents to help people navigate the page
.. contents:: :local:
.. Add an abstract for a *general* audience here. Write a few lines that explains the "helicopter view" of why this
module was are created.
The A Load Balancing Library (ALL) library aims to provide an easy way to include dynamic domain-based load balancing
A Load-Balancing Library (ALL) library aims to provide an easy and portable way to include dynamic domain-based load balancing
into particle based simulation codes. The library is developed in the Simulation Laboratory Molecular Systems of the
Juelich Supercomputing Centre at Forschungszentrum Juelich.
Purpose of Module
_________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
This module provides an additional method to the ALL library, up-to-date descriptions of the methods in the library can
This module provides an additional method to the `ALL library <https://gitlab.version.fz-juelich.de/SLMS/loadbalancing>`_ , up-to-date descriptions of the methods in the library can
be found in the `ALL README file <https://gitlab.version.fz-juelich.de/SLMS/loadbalancing/blob/master/README.md>`_.
For the Tensor-Product method, the work on all processes is reduced over the cartesian planes in the systems. This work
For the Tensor-Product method, the work on all processes (subdomains) is reduced over the cartesian planes in the systems. This work
is then equalized by adjusting the borders of the cartesian planes.
Background Information
______________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
See :ref:`ALL_background` for details.
Building and Testing
____________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
ALL uses the `CMake <https://cmake.org/runningcmake/>`_ build system, specific build and installation requirements can
be found in the `ALL README file <https://gitlab.version.fz-juelich.de/SLMS/loadbalancing/blob/master/README.md>`_.
**Need to provide information on how to test the particular method here.**
There are 3 tests of available for the Tensor-Product method in the `ALL GitLab repository examples <https://gitlab.version.fz-juelich.de/SLMS/loadbalancing/tree/master/example>`_ . Namely: (1) Simple Wye-shape biosystem; (2) Heterogeneous polymer melt and (3) A rotated version of the Wye-shaped biosystem. They can be run by executing the commands below:
.. code:: bash
export ALL_INSTALLATION=/path/to/my/loadbalancing/install
cmake .. -DCMAKE_INSTALL_PREFIX=$ALL_INSTALLATION -DCM_ALL_FORTRAN=ON
make -j
make install
cd example/jube/
ln -s $ALL_INSTALLATION/bin/ALL_test
# JUBE must be available in the environment
jube run ALL_benchmark.xml --tag Polymer --type 1
Within `ALL_benchmark.xml <https://gitlab.version.fz-juelich.de/SLMS/loadbalancing/blob/refactor/example/jube/ALL_benchmark.xml>`_ you can find different options depending on the method and test you would like to run. For example the tests can be chosen by the ``--tag`` and using:
1. ``Y``,
2. ``Polymer``
3. ``rot_Y``
In addition, the ``--type`` flag is used to choose the method 1 for the Tensor Product. Note that the second example is the most illustrative and hence recommended example to understand how the borders of the cartesian planes are adjusted.
Source Code
___________
.. Notice the syntax of a URL reference below `Text <URL>`_ the backticks matter!
The implementation of the Tensor-Product method in ALL can be found in `ALL_Tensor.hpp <https://gitlab.version.fz-juelich.de/SLMS/loadbalancing/blob/master/include/ALL_Tensor.hpp>`_.
The source code to the ALL library is available as a git repository at https://gitlab.version.fz-juelich.de/SLMS/loadbalancing . To obtain a copy of the repository you can use
.. code:: bash
**Here link the source code *that is relevant for the module*. If you are using Github or GitLab and the `Gitflow
Workflow <https://www.atlassian.com/git/tutorials/comparing-workflows#gitflow-workflow>`_ you can point to your feature
branch. Linking to your pull/merge requests is even better. Otherwise you can link to the explicit commits or locations
in the source code.**
git clone https://gitlab.version.fz-juelich.de/SLMS/loadbalancing.git
However, please note that the source code is currently under embargo until an associated paper is published, if you would like to be obtain a copy of the code, please contact Prof. Godehard Sutmann at ``g.sutmann@fz-juelich.de``.
.. _ReST: http://www.sphinx-doc.org/en/stable/rest.html
.. _Sphinx: http://www.sphinx-doc.org/en/stable/markup/index.html