Verified Commit 7c81498a authored by David W.H. Swenson's avatar David W.H. Swenson

Merge remote-tracking branch 'upstream/master' into ops_visit_all_states

parents b4c226ce 8626fd2f
......@@ -173,8 +173,9 @@ separate projects. The modules that were incorporated into the core are:
./modules/OpenPathSampling/ops_channel_analysis/readme
./modules/OpenPathSampling/ops_new_tis_analysis/readme
./modules/OpenPathSampling/ops_resampling_statistics/readme
./modules/OpenPathSampling/ops_gromacs_engine/readme
./modules/OpenPathSampling/ops_visit_all_states/readme
The modules that are based on OPS, but remain separate, are:
.. toctree::
......@@ -253,5 +254,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
.. _E-CAM: https://www.e-cam2020.eu/
.. _ops_gromacs_engine:
##################################
Gromacs engine in OpenPathSampling
##################################
.. sidebar:: Software Technical Information
The information in this section describes OpenPathSampling as a whole.
Information specific to the additions in this module are in subsequent
sections.
Language
Python (2.7, 3.6, 3.7)
Documentation Tool
Sphinx, numpydoc format (ReST)
Application Documentation
http://openpathsampling.org
Relevant Training Material
http://openpathsampling.org/latest/examples/
Licence
LGPL, v. 2.1 or later
Authors
David W.H. Swenson
.. contents:: :local:
This module adds support for Gromacs as an engine for OpenPathSampling.
Purpose of Module
_________________
.. Give a brief overview of why the module is/was being created.
Different molecular dynamics (MD) codes have developed to serve different
communities. Gromacs is one of the major MD codes for the biomolecular
community, and even though much of its functionality can be reproduced by
other MD codes, such as OpenMM, there are still some extensions that are
built on top of Gromacs that haven't been ported to other codes. For
example, the MARTINI coarse-grained model is not available other codes such
as OpenMM.
Additionally, people who are familiar with a given MD package will prefer to
continue to work with that. Therefore codes that wrap around MD packages, as
OpenPathSampling does, can expand their reach by adding ways to interface
with other MD packages.
This module adds the Gromacs engine for OpenPathSampling. It is the first
practical test of the external engine API of OPS.
Specific functionality in this module includes:
* ``GromacsEngine``: the OPS dynamics engine, based on the
``ExternalEngine``, that runs Gromacs as an external tool. Option on
initialization allow the user to customize the path to the Gromacs
executable.
* ``ExternalMDSnapshot``: an OPS snapshot for external MD engines, which
contains coordinates, velocities, and box vectors. Requires that the
engine implement a ``read_frame_data`` method to load from a specific MD
trajectory.
* ``snapshot_from_gro``: a function that creates an OPS snapshot from a
Gromacs ``.gro`` file.
Background Information
______________________
This module builds on OpenPathSampling, a Python package for path sampling
simulations. To learn more about OpenPathSampling, you might be interested in
reading:
* OPS documentation: http://openpathsampling.org
* OPS source code: http://github.com/openpathsampling/openpathsampling
Testing
_______
.. IF YOUR MODULE IS IN OPS CORE:
.. This module has been included in the OpenPathSampling core. Its tests can
.. be run by setting up a developer install of OpenPathSampling and running
.. the command ``py.test`` from the root directory of the repository.
This module is in a development branch of OpenPathSampling. If you have
conda installed, this branch of OPS can be installed by downloading the
``conda_ops_dev_install.sh`` script and running it with the command:
.. code:: bash
source conda_ops_dev_install.sh dwhswenson gromacs_engine
This will download a new copy of the OPS git repository, select the
``gromacs_engine`` branch from the ``dwhswenson`` fork, install the
requirements, and create an editable install of OPS. If you would like to do
this in a new conda environment, set the environment variable ``OPS_ENV``,
and it will install in a new environment with the name ``$OPS_ENV``.
To run tests, you may need ``pytest``, which can be installed with ``conda
install pytest``.
The entire OPS test suite can be run with run with ``py.test --pyargs
openpathsampling``. Tests specific to the Gromacs engine can be run with
``py.test --pyargs openpathsampling.tests.test_gromacs_engine``.
.. IF YOUR MODULE IS IN A SEPARATE REPOSITORY
.. The tests for this module can be run by downloading its source code,
.. installing its requirements, and running the command ``nosetests`` from the
.. root directory of the repository.
Examples
________
* An example can be found here: https://github.com/dwhswenson/openpathsampling/tree/gromacs_engine/examples/gromacs
Source Code
___________
.. link the source code
.. IF YOUR MODULE IS IN OPS CORE
.. This module has been merged into OpenPathSampling. It is composed of the
.. following pull requests:
This module is contained in the following pull request:
* https://github.com/openpathsampling/openpathsampling/pull/819
.. IF YOUR MODULE IS A SEPARATE REPOSITORY
.. The source code for this module can be found in: URL.
.. CLOSING MATERIAL -------------------------------------------------------
.. Here are the URL references used
.. _nose: http://nose.readthedocs.io/en/latest/
.. 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 is available 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.
......@@ -64,6 +64,7 @@ The following modules connected to the DL_MESO_DPD code have been produced so fa
./modules/DL_MESO_DPD_onGPU/fftw/readme
./modules/DL_MESO_DPD/check_dlmeso_dpd/readme
./modules/DL_MESO_DPD/tetra_dlmeso_dpd/readme
./modules/DL_MESO_DPD_onGPU/multi_gpu/readme
./modules/DL_MESO_DPD/sionlib_dlmeso_dpd/readme
ESPResSo++
......@@ -119,6 +120,11 @@ This modules are connected to the Adaptive Resolution Simulation implementation
./modules/GC-AdResS/AdResS_RDF/readme
./modules/GC-AdResS/Abrupt_Adress_forcecap/readme
./modules/GC-AdResS/AdResS_TF/readme
./modules/GC-AdResS/LocalThermostat_AdResS/readme
./modules/GC-AdResS/Analyse_Tools/readme
./modules/GC-AdResS/Analyse_VACF/readme
./modules/GC-AdResS/Analyse_DACF/readme
./modules/GC-AdResS/Analyse_ENERGY/readme
.. _ALL_background:
......
################################
Multi-GPU version of DL_MESO_DPD
################################
.. sidebar:: Software Technical Information
The information in this section describes the DL_MESO_DPD GPU versions as a whole.
Language
Fortran/CUDA-C (cuda toolkit 7.5)
Documentation Tool
ReST files
Application Documentation
See the `DL_MESO Manual <http://www.scd.stfc.ac.uk/SCD/resources/PDF/USRMAN.pdf>`_
Relevant Training Material
See `DL_MESO webpage <http://www.scd.stfc.ac.uk/SCD/support/40694.aspx>`_
Licence
BSD, v. 2.7 or later
.. contents:: :local:
Authors: Jony Castagna
This module implements the first version of the D\_MESO\_DPD code with multiple NVidia Graphical Processing Units (GPUs). More details about it can be found in the following sections.
Purpose of Module
_________________
.. Give a brief overview of why the module is/was being created.
In this module the main framework of a multi-GPU version of the DL\_MESO\_DPD code has been developed. The exchange of data between GPUs overlaps with the computation of the forces
for the internal cells of each partition (a domain decomposition approach based on the MPI parallel version of DL\_MESO\_DPD has been followed).
The current implementation is a proof of concept only and relies on slow transfers of data from the GPU to the host and vice-versa. Faster implementations will be explored in future modules.
In particular, the transfer of data occurs in 3 steps: x-y planes first, x-z planes with halo data (i.e. the values which will fill the ghost cells) from
the previous swap and finally the y-z planes with all halos. This avoid the problems of the corner cells, which usually requires a separate communication
reducing the number of send/receive calls from 14 to 6.The multi-GPU version has been currently tested with 8 GPUs and successfully reproduce the same results as a
single GPU within machine accuracy resolution.
Future plans include benchmarking of the code with different data transfer implementations other than the current (trivial) GPU-host-GPU transfer mechanism.
These are: of Peer To Peer communication within a node, CUDA-aware MPI, and CUDA-aware MPI with Direct Remote Memory Access (DRMA).
.. references would be nice here...
Background Information
______________________
This module is part of the DL\_MESO\_DPD code. Full support and documentation is available at:
* https://www.scd.stfc.ac.uk/Pages/DL_MESO.aspx
* https://www.scd.stfc.ac.uk/Pages/USRMAN.pdf
To download the DL\_MESO\_DPD code you need to register at https://gitlab.stfc.ac.uk. Please contact Dr. Micheal Seaton at Daresbury Laboratory (STFC) for further details.
Testing
_______
The DL\_MESO code is developed using git version control. Currently the GPU version is under a branch named ``add_gpu_version``. After downloading the code, checkout the GPU branch and look into the ``DPD/gpu_version`` folder, i.e:
.. code-block:: bash
git clone https://gitlab.stfc.ac.uk/dl_meso.git
cd dl_meso
git checkout gpu_version
cd ./DPD/gpu_version
make all
To compile and run the code you need to have installed the CUDA-toolkit (>=8.0) and have a CUDA enabled GPU device (see http://docs.nvidia.com/cuda/#axzz4ZPtFifjw). For the MPI library the OpenMPI 3.1.0 has been used.
The current version has been tested ONLY for the ``Mixture_Large`` test case available in the ``DEMO/DPD`` folder. To run the case, compile the code using the ``make all`` command from the ``bin`` directory, copy the ``FIELD`` and ``CONTROL`` files in this directory and run ``./dpd_gpu.exe``.
Attention: the ``HISTORY`` file produced is currently NOT compatible with the serial version, because this is written in the C binary data format (Fortran files are organised in records,
while C are not. See https://scipy.github.io/old-wiki/pages/Cookbook/FortranIO.html).
However, you can compare the ``OUTPUT`` and the ``export`` files to verify your results. For more details see the ``README.rst`` file in the ``gpu_version`` folder.
Performance
___________
A test case a two phase mixture separation with 1.8 billion particles has been used and run for 100 time steps without IO operations.A weak scaling efficiency (:math:`\eta`) plot up to 512 GPUs (1.2 billion particles) is presented below. This plot is obtained by taking the ratio between the wall time for the GPU count and a reference walltime of two GPUs (the singleGPU version uses a non-scalable, faster, alternative implementation which would skew the results). As can be seen, the result (:math:`\eta*GPUs`) oscillates near perfect scalability.
.. image:: ./DL_MESO_GPU_WeakScaling.png
:width: 90 %
:align: center
Strong scaling results are obtained using 1.8 billion particles for 256 to 2048 GPUs. Results show very good scaling, with efficiency always above 89% for 2048 GPUs (note that 2048 P100 GPUs on PizDaint is equivalent to almost 10 Petaflops of raw double precision compute performance).
.. image:: ./DL_MESO_GPU_StrongScaling.png
:width: 90 %
:align: center
Examples
________
See the ``Mixture_Large`` case in the DL\_MESO manual.
Source Code
___________
.. link the source code
This module has been merged into DL\_MESO code. It is composed of the
following commits (you need to be registered as collaborator):
* https://gitlab.stfc.ac.uk/dl_meso/dl_meso/commit/7f3e7abe7bb1c8010dd6a5baa0de4907ffe2f003
.. IF YOUR MODULE IS A SEPARATE REPOSITORY
.. The source code for this module can be found in: URL.
.. CLOSING MATERIAL -------------------------------------------------------
.. Here are the URL references used
.. _nose: http://nose.readthedocs.io/en/latest/
......@@ -289,7 +289,6 @@ To apply the patch:
.. Remember to change the reference "patch" for something unique in your patch file subpage or you will have
cross-referencing problems
In this module we also include a test scenario for GROMACS version 5.1.5 with a possible CG potential and all necessary input files. To run it simply run *gmx grompp -f grompp.mdp -c conf.gro -p topol.top -n index.ndx -maxwarn 5; gmx mdrun* using the patched version of GROMACS version 5.1.5 (see above).
When *gmx mdrun* finished normally (with the above mentioned setup), we have several mandatory checks to see if the simulation was successful or not.
......@@ -314,5 +313,3 @@ When *gmx mdrun* finished normally (with the above mentioned setup), we have sev
The files for the water example can be found here:
:download:`spc-example.tar.gz <spc-example.tar.gz>`
.. 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).
.. 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
Dipole-Dipole autocorrelation function for AdResS.
Language
C/C++
Licence
Open source (no specific licence provided)
Documentation Tool
none
Application Documentation
http://www.ks.uiuc.edu/Research/vmd/current/docs.html
Relevant Training Material
http://www.ks.uiuc.edu/Research/vmd/current/docs.html
.. 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).
#################################################
Dipole-Dipole autocorrelation function for AdResS
#################################################
.. 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."
Purpose of Module
_________________
One purpose of our project is to promote GC-AdResS as a method. It is an advanced method, for people with experience, and once the simulation is done there are several properties and checks to consider to make sure that the simulation was successful.
This module provides the code to run a dipole dipole autocorrelation function on the current geometries available in the Abrupt AdResS implementation. The paper
`Ref. <http://iopscience.iop.org/article/10.1088/1367-2630/17/8/083042>`_ describes the correlation functions and why they can be used in AdResS. This code is based on that theory and has been developed to check the dynamics of the local thermostat GC-AdResS simulations presented in the paper cited above.
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
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:`abrupt_adress`
Source Code
___________
.. Notice the syntax of a URL reference below `Text <URL>`_
Files are stored under `<https://gitlab.e-cam2020.eu/krekeler/analyze.energy>`_. The source code for the dipole autocorrelation function can be found at `<https://gitlab.e-cam2020.eu/krekeler/analyze.energy/blob/master/app/cal_dacf.cpp>`_.
The installation instructions are given at `<https://gitlab.e-cam2020.eu:10443/krekeler/analyze.energy#installation-instructions>`_.
Usage:
::
cal_dacf
options:
-h print this message
-b start time
-e end time (=number of MD steps)
--x0 lower bound of the interval
--x1 upper bound of the interval (--x1 0, use the whole box = atomistic)
--frame length of correlation
--q0 charge on oxygen
--q1 charge on hydrogen
--acc breaks
--total number of frames
--tf Output Frequency (=Delta_t)
-m type of simulation to analyze (adress or atom)
-f input .xtc file
-o output file
It is important to have the XDR files and setup in the same directory as they have to be specified in the Makefile. The XDR files can be found via the GROMACS web page, see `<http://www.gromacs.org/Developer_Zone/Programming_Guide/XTC_Library>`_ or `<ftp://ftp.gromacs.org/pub/contrib/xdrfile-1.1.4.tar.gz>`_.
.. 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).
.. 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
Energy (AT)/Energy(interface) ratio: Necessary condition for AdResS simulations.
Language
C/C++
Licence
none
Documentation Tool
none
Application Documentation
http://www.ks.uiuc.edu/Research/vmd/current/docs.html
Relevant Training Material
http://www.ks.uiuc.edu/Research/vmd/current/docs.html
.. 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).
###############################################################################
Energy (AT)/Energy(interface) ratio: Necessary condition for AdResS simulations
###############################################################################
.. 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."
Purpose of Module
_________________
One purpose of our project is to promote GC-AdResS as a method. It is an advanced method, thus for people with experience, and once the simulation is done there are several properties and checks to consider to make sure that the simulation was successful.
This module provides the code to check one very important quantity, the interaction energy in the atomistic region compared with the interaction energy in the comparable subregion in a full atomistic simulation. The difference between those energies is the interaction energy at the interface, which has to be much smaller than the interaction energy in the atomistic region.
The theory is described in `Ref. <http://iopscience.iop.org/article/10.1088/1367-2630/17/8/083042>`_. This legacy code is based on that theory and has been developed to check the energy of the local thermostat GC-AdResS simulations presented in the paper cited above.
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
Running the code:
_________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
The executable is called ``energy``. The options on how to run the analysis:
::
-h : help message
-b : start frame
-e : end frame
-n : number of regions
-x0 : start transition region
-x1 : end transition region (if x1 == 0, use the whole box)
-q1 : charge on oxygen
-q2 : charge on hydrogen
-sig : sigma
-eps : eps
-beads : no. of beads in one ring polymer
-c : cut off radius for neighbor list search
-f : the input .xtc file (default: traj.xtc)
-o :the output file
Source Code
___________
.. Notice the syntax of a URL reference below `Text <URL>`_
Files are stored under `<https://gitlab.e-cam2020.eu/krekeler/analyze.energy>`_. The source code for the energy calculation can be found at `<https://gitlab.e-cam2020.eu/krekeler/analyze.energy/blob/master/app/energy.cpp>`_.
The installation instruction are available at `<https://gitlab.e-cam2020.eu:10443/krekeler/analyze.energy#installation-instructions>`_.
It is important to have the XDR files and setup in the same directory as they have to be specified in the Makefile. The XDR files can be found via the GROMACS web page, see `<http://www.gromacs.org/Developer_Zone/Programming_Guide/XTC_Library>`_ or `<ftp://ftp.gromacs.org/pub/contrib/xdrfile-1.1.4.tar.gz>`_.
.. 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).
.. 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
Tools for AdResS.
Language
C/C++, Python, Fortran, BASH, AWK
Licence
Opensource
Application Documentation
See GROMACS web page: `<http://www.gromacs.org>`_. For analysis tools and thermodynamic force calculation see VOTCA web page: `<http://www.votca.org/home>`_. Visualize molecular dynamics with `VMD <http://www.ks.uiuc.edu/Research/vmd/>`_.
Documentation Tool
none
Relevant Training Material
none
.. 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).
################
Tools for AdResS
################
.. 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."
Purpose of Module