...
 
Commits (63)
# compiled python files
*.pyc
# sphinx build folder
_build
_templates
*.pyc
*.DS_Store
# OS generated files #
######################
.DS_Store?
ehthumbs.db
Icon?
Thumbs.db
# Editor backup files #
#######################
*~
image: umbrellium/sphinx-doc
image: cloudcompass/docker-rtdsphinx
spelling:
script:
- pip install codespell
- codespell --skip=".git,_static,_build,Diff*" --quiet-level=2
- pip3 install codespell
- codespell --skip=".git,_static,_build,Diff*,*.patch" --quiet-level=2 --ignore-words-list="adress"
only:
- master
- merge_requests
orphans:
script:
# Report all the orphans but ignore the exit code
- find ./ -name "*.rst"|xargs -i grep -H orphan {} || true
# Now handle the error code
- if [ $(find ./ -name "*.rst"|xargs -i grep -H orphan {}|wc -l) -gt "1" ]; then $(exit 1); else $(exit 0); fi
only:
- master
pages:
script:
- apt-get update
- apt-get -y install dvipng
- pip install pygments --upgrade
- pip3 install pygments --upgrade
- pip3 install Sphinx --upgrade
- pip3 install sphinx-bootstrap-theme --upgrade
- READTHEDOCS=True sphinx-build -nWT -b html . _build/html
- mv _build/html/ public/
- echo -e "\n\n\e[1mYou can find your build of this documentation at \n\t\e[32m${CI_PAGES_URL}\e[0m\n\n"
artifacts:
paths:
- public
......
......@@ -22,4 +22,5 @@ Add a brief description briefly here (which replaces this sentence), a line or t
- [ ] Is there a description of any applications the module has? (This is a hard requirement for E-CAM PDRAs)
*After Merging*
- [ ] Make sure the module appears in a toctree
- [ ] Add a link to the final result on https://e-cam.readthedocs.io
......@@ -242,5 +242,6 @@ August 2017. The following modules have been produced:
./modules/OpenPathSampling/ops_sr_shooter/readme
./modules/OpenPathSampling/ops_web_throwing/readme
./modules/OpenPathSampling/ops_plumed_wrapper/readme
./modules/OpenPathSampling/ops_s_shooting/readme
.. _E-CAM: https://www.e-cam2020.eu/
.. _ost_s_shooting:
##############################
S-shooting 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)
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
.. contents:: :local:
Authors: Andreas Singraber
This module implements the S-shooting method [1]_ in OpenPathSampling.
Purpose of Module
_________________
S-shooting [1]_ is a recently developed method to determine rate constants of
rare events. It is similar in spirit to the reactive flux method but its
relaxed requirements help to overcome practical problems. The method is based
on a simple shooting algorithm where trajectories are propagated forward and
backward in time for a fixed number of timesteps. The starting points need to
be provided and must lie in the saddle point region. This so-called S region
(hence the name S-shooting) is defined via a suitable reaction coordinate and
must to separate the stable states A and B in such a way that no trajectory can
connect A with B without visiting S. In contrast to the reactive flux method
the time derivative of the reaction coordinate is not required, which makes
this approach applicable to systems exhibiting diffusive dynamics along the
reaction coordinate. The S-shooting method can also be applied if the initial
shooting points are taken from a biased simulation. Thus, it is a natural
follow-up to free energy calculations like umbrella sampling and, in
combination with free energy curves, allows the computation of rate constants.
The implementation of the S-shooting method in OpenPathSampling (OPS) is split
into two main parts:
- Forward and backward trajectories started from initial snapshots are
harvested and glued together calling the ``SShootingSimulation`` class. The
user needs to provide the initial snapshots, a suitable definition of the
S region and the desired trajectory length.
- The S-shooting analysis is performed upon calling the ``SShootingAnalysis``
class. Mandatory arguments include the definition of the stable states (A and
B) and of the S region. In case the initial snapshots are taken from a biased
simulation a bias function may be provided as an optional argument.
This module comes also with an IPython example notebook demonstrating the
method by applying it to a one-dimensional system (a brownian walker in a
double-well potential).
.. [1] Menzl, G., Singraber, A. & Dellago, C. S-shooting: a Bennett–Chandler-like method for the computation of rate constants from committor trajectories. Faraday Discuss. 195, 345–364 (2017), https://doi.org/10.1039/C6FD00124F
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
_______
Follow these steps to test the module:
1. Download and install OpenPathSampling (see http://openpathsampling.org/latest/install.html).
.. caution::
This module has been developed alongside a specific OPS version available at
that time. If incompatibilities arise as OPS is further enhanced, please use
version 0.9.5 available here:
https://github.com/openpathsampling/openpathsampling/releases/tag/v0.9.5 .
2. Install the `nose`_ package.
3. Download the source files of the module (see the `Source Code`_ section below).
4. Install the module: change to the ``S-Shooting`` directory and run ``python setup.py install``.
5. Run the tests: execute ``nosetests`` in the ``S-Shooting`` directory.
.. 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 ``nosetests`` from the root directory of the repository.
.. 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
________
See the ``sshooting-example.ipynb`` IPython notebook in the source directory, here is the direct link: https://gitlab.e-cam2020.eu/singraber/S-Shooting/blob/master/ops_s_shooting/sshooting-example.ipynb
To run the example execute ``jupyter notebook sshooting-example.ipynb`` in your terminal.
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:
.. * link PRs
.. IF YOUR MODULE IS A SEPARATE REPOSITORY
.. The source code for this module can be found in: URL.
The source code for this module is located here:
https://gitlab.e-cam2020.eu/singraber/S-Shooting
.. tip::
Ultimately, this module will be merged into the official OPS code. Check
the status of the corresponding pull request here:
https://github.com/openpathsampling/openpathsampling/pull/787 .
.. CLOSING MATERIAL -------------------------------------------------------
.. Here are the URL references used
.. _nose: http://nose.readthedocs.io/en/latest/
......@@ -88,6 +88,7 @@ Modules not coming from ESDWs
./modules/SCDM_WFs/readme
./modules/flook/readme
./modules/MatrixSwitchDBCSR/readme
Pilot Projects
==============
......
##################
DBCSR@MatrixSwitch
##################
.. sidebar:: Software Technical Information
The information in this section describes `DBCSR@MatrixSwitch` as a whole.
Information specific to the additions in this module are in subsequent
sections.
Language
Fortran 2008
Documentation Tool
Sphinx, ReStructuredText
Application Documentation
`ESL wiki <http://esl.cecam.org/MatrixSwitch>`_
Relevant Training Material
See a usage example in the ``omm/MatrixSwitch/examples`` directory of the source code.
Software Module Developed by
Alfio Lazzaro and David López-Durán
Licence
Simplified BSD
.. contents:: :local:
Purpose of Module
_________________
`MatrixSwitch` is a module which acts as an intermediary interface layer between
high-level and low-level routines
dealing with matrix storage and manipulation. It allows a seamlessly switch
between different software implementations of the matrix operations.
`DBCSR` is an optimized library to deal with sparse matrices, which appear
frequently in many kind of numerical simulations. In `DBCSR@MatrixSwitch`
`DBCSR` capabilities have been added to `MatrixSwitch` as an *optional*
library dependency.
Background Information
______________________
`MatrixSwitch`, `DBCSR`, and `DBCSR@MatrixSwitch` are software libraries
to be used within a calling code.
`MatrixSwitch` has been developed within the same repository of other
self-contained libraries,
all them collected in the `omm-bundle` project (see the `Source Code`_ section below).
As `DBCSR` has been added to `MatrixSwitch`
in a modular way, all them can be used together or separated.
To carry out calculations in serial mode may be too slow sometimes and a paralellisation
strategy is needed. In serial/parallel `MatrixSwitch` employs Lapack/ScaLapack to perform
matrix operations, irrespective of their dense or sparse character.
The disadvantage of the Lapack/ScaLapack schemes is that they are not optimized
for sparse matrices. `DBCSR` provides the necessary algorithms to solve this problem and
in addition is specially suited to work in parallel.
Installation
____________
The source code of the `MatrixSwitch` module is contained in a subdirectory of
of the `omm-bundle` package with the same name, ``omm/MatrixSwitch``.
'omm-bundle' is in a ``git`` repository and can be obtained in this way:
git clone https://gitlab.e-cam2020.eu/esl/omm.git
The `DBCSR` library was originally developed as part of the `CP2K`__ code, it is now
available as a standalone library, and can be found in the ``CP2K`` releases directory:
.. __: https://www.cp2k.org/
https://github.com/cp2k/dbcsr/releases/download/v1.0.0/dbcsr-1.0.0.tar.gz
`Build instructions for the DBCSR library <https://github.com/cp2k/dbcsr#dbcsr-distributed-block-compressed-sparse-row-matrix-library>`_ are available on the project page.
To enable `DBCSR@MatrixSwitch` in the `omm-bundle` package follow the steps below:
1. Enter the ``omm`` directory.
2. Copy ``make.inc.example`` to ``make.inc`` and modify it to suit your needs. To use `DBCSR` in `MatrixSwitch` include in your ``make.inc`` the path to the `DBCSR` library and add to ``FPPFLAGS`` the new flag ``-DHAVE_DBCSR`` (this requires that ``-DHAVE_MPI`` is also enabled).
3. Type ``make -f Makefile.manual``.
4. Type ``make -f Makefile.manual install``.
Testing
_______
The ``examples`` directory of ``MatrixSwitch`` contains ``example_pdcsr_pddbc.F90``. It explains
the use of `DBCSR@MatrixSwitch` and how `DBCSR` works. `DBCSR` results are compared to those
obtained with Scapalack to check the validity of the new procedure. If this comparison fails,
the program will exit immediately. To compile it:
1. Enter the ``omm/MatrixSwitch/examples`` directory.
2. Copy ``make.inc.example`` to ``make.inc`` and modify it to suit your needs.
Be aware that ``make.inc`` in the ``src`` directory will also be used.
3. Type ``make -f Makefile.manual``.
As in the other examples in `MatrixSwitch`, ``example_pdcsr_pddbc.F90`` contains a header
explaining what the program does and provides a sample output to compare with.
Source Code
___________
In the `E-CAM Gitlab`__ can be found all the source codes of `MatrixSwitch`__
and `omm-bundle`__, while `DBCSR`__ itself is in the set of `CP2K`__ `Github`__ repositories.
.. __: https://gitlab.e-cam2020.eu/
.. __: https://gitlab.e-cam2020.eu/esl/omm/tree/master/MatrixSwitch/
.. __: https://gitlab.e-cam2020.eu/esl/omm/
.. __: https://github.com/cp2k/dbcsr/
.. __: https://github.com/cp2k/
.. __: https://github.com/
:orphan:
.. sidebar:: Software Technical Information
Name
......
......@@ -67,7 +67,7 @@ The following modules connected to the DL_MESO_DPD code have been produced so fa
ESPResSo++
----------
The following modules connected to the ESPResSo++ code have been produced so far:
The following modules connected to the ESPResSo++ code have been produced so far in the context of an `associated Pilot Project <https://www.e-cam2020.eu/pilot-project-composite-materials/>`_:
.. toctree::
:glob:
......@@ -83,6 +83,14 @@ The following modules connected to the ESPResSo++ code have been produced so far
./modules/hierarchical-strategy/simple_one-component_melts/fine-graining/readme
./modules/hierarchical-strategy/simple_one-component_melts/coarse-graining/readme
These modules have resulted in the final overarching module that captures the goal of the pilot project:
.. toctree::
:glob:
:maxdepth: 1
./modules/hierarchical-strategy/simple_one-component_melts/readme
ParaDiS
-------
......@@ -105,3 +113,16 @@ The first Meso- and Multi-scale ESDW was held in Barcelona, Spain, in July 2017.
:maxdepth: 1
./modules/DL_MESO_DPD/sionlib_dlmeso_dpd/readme
GC-AdResS
---------
Adaptive Resolution Simulation: Implementation in GROMACS
.. toctree::
:glob:
:maxdepth: 1
./modules/GC-AdResS/Abrupt_AdResS/readme.rst
./modules/GC-AdResS/Abrupt_AdResS/abrupt_adress.rst
.. _abrupt_adress_patch:
####################################
Patch file for module: Abrupt AdResS
####################################
The patch for the abrupt AdResS code is:
.. literalinclude:: ./abrupt_adress.patch
:linenos:
:download:`Downloadable version of patch file <abrupt_adress.patch>`
.. _simple_one-component_melts:
.. _constrain_com:
###########################################################################
Hierarchical Strategy for Simple One-Component Polymer Melts: constrain-com
......
.. _simple_one-component_melts:
############################################################
Hierarchical Strategy for Simple One-Component Polymer Melts
############################################################
.. sidebar:: Software Technical Information
The information in this section describes ESPResSo++ as a whole.
Information specific to the additions in this module are in subsequent
sections.
Languages:
Python (2.7) and C++
Documentation Tools:
Sphinx and Doxygen
Application Documentation:
http://espressopp.github.io/
Relevant Training Material:
https://github.com/espressopp/espressopp/tree/master/examples
Licence
GNU General Public License
Author
Hideki Kobayashi
.. contents:: :local:
The module is an implementation of the existing hierarchical strategy
[1]_ for the equilibration of simple one-component polymer melts in
ESPResSO++.
.. Add technical info as a sidebar and allow text below to wrap around it
Purpose of Module
_________________
.. Give a brief overview of why the module is/was being created.
To study the properties of polymer melts by numerical simulations,
equilibrated configurations must be prepared. However, the relaxation
time for high molecular weight polymer melts is huge and increases,
according to reptation theory, with the third power of the molecular
weight. Hence, an effective method for decreasing the equilibration
time is required. The hierarchical strategy pioneered in Ref. [1]_ is
a particularly suitable way to do this. The present module provides an
integration of that method into the package ESPResSO++.
To decrease the relaxation time, microscopic monomers are
coarse-grained by mapping each subchain with :math:`N_{b}` monomers
onto a soft blob. A polymer chain, originally consisting of :math:`N`
monomers, is replaced by a coarse-grained (CG) chain consisting of
:math:`N/N_{b}` soft blobs linked by a harmonic bond potential,
:math:`V_{bond}=3 k_{B}T d^{2}/2b_{CG}^2`, and an angular bond-bending
potential :math:`V_{bend}=k_{B}T k_{bend}(1 + \cos(\theta))/2`. Here
:math:`d` is the distance and :math:`\theta` is the angle between
consecutive bonds. The interactions between non-bonded soft blobs are
taken into account by a repulsive pair potential :math:`V_{nb}=k_{B}T
\epsilon U_{G}(r_{ij})`. Here :math:`r_{ij}` is the center-to-center
distance between the two blobs, :math:`U_{G}(r_{ij})` is a Gaussian
function with variance :math:`\overline{\sigma}^2 = \sigma_{i}^2 + \sigma_{j}^2` and
:math:`\sigma_{i}` is the gyration radius of blob number
:math:`i`. The gyration radius :math:`\sigma` is in turn
fluctuating. This fluctuation is controlled by the potential
:math:`V_{sphere}=k_{B}T \, (a_{1}N_{b}^3\sigma^{-6} +
a_{2}N_{b}^{-1}\sigma^{2} + a_{3}\sigma^{-3})`.
After equilibrating a configuration at very coarse resolution, each CG
polymer chain is replaced with a more fine-grained (FG) chain. In this
procedure, a CG blob is divided into several FG blobs. The center of
mass (COM) of the FG blobs coincides with the position of the CG
blob's center, and is being kept fixed during the relaxation of the
local conformation of the FG monomers within the CG blob.
To develop this module, the following classes have been implemented or
modified (and may have been described in more detail elsewhere):
* A ``VSpherePair`` class for calculating
:math:`V_{nb}=k_{B}T \epsilon U_{G}(r_{ij})`
* A ``LangevinThermostatOnRadius`` class for simulating
the fluctuations of the radii of the blobs
* A ``VSphereSelf`` class for calculating :math:`V_{sphere}=k_{B}T \,
(a_{1}N_{b}^3\sigma^{-6} + a_{2}N_{b}^{-1}\sigma^{2} +
a_{3}\sigma^{-3})`
* A ``FixedLocalTupleList`` class for storing the N-tuple
of particles consisting of both real and virtual particles
* A ``ConstrainCOM`` class for conserving the COM of N FG
blobs with the CG blob
Background Information
______________________
The implementation of this module is based on ESPResSO++. You can
learn about ESPResSO++ from the following links:
* ESPResSO++ documentation: http://espressopp.github.io/ESPResSo++.pdf
* ESPResSO++ source code: https://github.com/espressopp/espressopp
Testing
_______
Explanation of installation of ESPResSO++ can be found at:
* https://github.com/espressopp/espressopp
After installing this module, an example can be run from `hierarchical_strategy_for_one-component` subdirectory of the `examples` folder using the `run_example` script to be found there.
* https://github.com/hidekb/espressopp/tree/hierarchical-strategy/examples/hierarchical-strategy/simple_one-component
Source Code
___________
This module was merged into ESPResSo++ in the Pull Request:
* https://github.com/espressopp/espressopp/pull/213
References
___________
.. Here are the URL references used
.. [1] : http://pubs.acs.org/doi/abs/10.1021/mz5000015
name = 'QuantumESPRESSO'
version = '5.4.0'
versionsuffix = '-hybrid'
homepage = 'http://www.pwscf.org/'
description = """Quantum ESPRESSO is an integrated suite of computer codes
for electronic-structure calculations and materials modeling at the nanoscale.
It is based on density-functional theory, plane waves, and pseudopotentials
(both norm-conserving and ultrasoft)."""
toolchain = {'name': 'foss', 'version': '2016a'}
toolchainopts = {'usempi': True, 'openmp': True}
dependencies = [
# ('netCDF-Fortran','4.4.3'), # For Yambo, check if it is picked up
# ('Libxc','2.2.2'), # For Yambo, check if it is picked up
]
# Part of this list was determined from install/plugins_list
sources = [
'espresso-%(version)s.tar.gz',
'tddfpt-%(version)s.tar.gz',
# Other sources
# Common source
'atomic-%(version)s.tar.gz',
'neb-%(version)s.tar.gz',
'PHonon-%(version)s.tar.gz',
'pwcond-%(version)s.tar.gz',
'xspectra-%(version)s.tar.gz' ,
'PWqui-%(version)s.tar.gz' ,
'EPW-%(version)s.tar.gz' ,
'test-suite-%(version)s.tar.gz' ,
'GWW-%(version)s.tar.gz' ,
]
source_urls = [
'http://files.qe-forge.org/index.php?file=', # Almost all
'http://www.qe-forge.org/gf/download/frsrelease/211/968/', # espresso-5.4.0.tar.gz
# These will not be used because of the 404 signal not found from the previous link.
'http://www.qe-forge.org/gf/download/frsrelease/211/961/', # PWgui-5.4.0.tar.gz
'http://www.qe-forge.org/gf/download/frsrelease/211/956/', # tddfpt-5.4.0.tar.gz
'http://www.qe-forge.org/gf/download/frsrelease/211/954/', # atomic-5.4.0.tar.gz
'http://www.qe-forge.org/gf/download/frsrelease/211/959/', # neb-5.4.0.tar.gz
'http://www.qe-forge.org/gf/download/frsrelease/211/962/', # PHonon-5.4.0.tar.gz
'http://www.qe-forge.org/gf/download/frsrelease/211/960/', # pwcond-5.4.0.tar.gz
'http://www.qe-forge.org/gf/download/frsrelease/211/958/', # xspectra-5.4.0.tar.gz
'http://www.qe-forge.org/gf/download/frsrelease/211/969/', # EPW-5.4.0.tar.gz
'http://www.qe-forge.org/gf/download/frsrelease/211/963/', # test-suite-5.4.0.tar.gz
'http://www.qe-forge.org/gf/download/frsrelease/211/957/', # GWW-5.4.0.tar.gz
]
# Hybrid option exist only for backward compatibility, use toolchain option openmp instead.
#hybrid = True
# Patch file to avoil the CPP problem generated by different OSes
patches = ['QE_gfortran_f90rule.patch']
buildopts = 'all tddfpt neb xspectra ph '
# parallel build tends to fail
parallel = 1
moduleclass = 'chem'
......@@ -4,11 +4,11 @@
Patch file for module
#####################
:download:`Downloadable version of patch file <simple.patch>`
To include a patch file do something like the following:
.. literalinclude:: ./simple.patch
:emphasize-lines: 2,9-11
:linenos:
:download:`Downloadable version of patch file <simple.patch>`
......@@ -3,6 +3,9 @@
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
:orphan:
.. 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.
......