.. _component_MD_SB:
#########################################################################
Hierarchical Strategy for Simple One-Component Polymer Melts: md-softblob
#########################################################################
.. 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
.. contents:: :local:
Reference [1]_ describes the principles of a hierarchical strategy to
equilibrate simple one-component polymer melts described in terms of
atomistic or coarse-grained (bead-spring) models. The present module
is the central part of our implementation of this method 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 is the
central part that controls a suite of programs which realize this
method within the framework of the simulation package ESPResSO++.
To decrease the relaxation time, microscopic monomers are
coarse-grained (CG) by mapping each subchain with :math:`N_{b}` monomers
onto a soft blob. The CG system is then characterized by a much
lower molecular weight and thus is equilibrated quickly. One thus
obtains a configuration that is equilibrated on large scales
but does not provide information about the structure on smaller
(i.e. more fine-grained (FG)) scales.
To obtain the latter, the resolution is step-by-step increased by
recursively applying a fine-graining procedure to the previous (more
coarse-grained) level. In such a fine-graining step, each CG polymer
chain is replaced with a more fine-grained chain, by dividing a CG
blob into several FG blobs. In the last step, microscopic monomers are
reinserted into their CG blobs.
The resulting set of FG blobs is set up in such a way that its
conformation is consistent with the conformation at the more
coarse-grained level. After this setup, the local FG conformation is
relaxed into a local equilibrium, again consistent with the (fixed) CG
blobs.
The present module implements the actual coarse-graining step, which
is therefore described in more detail:
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})`.
Equilibrated configurations of soft blobs are generated by
Molecular Dynamics (MD) simulations based on the above model.
Within the module, the following classes have been implemented or
modified:
* A ``VSpherePair`` class for calculating
:math:`V_{nb}=k_{B}T \epsilon U_{G}(r_{ij})`
* 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 ``Particle`` class for comunicating the property "radius"
between different cores
* A ``LangevinThermostatOnRadius`` class for simulating
the fluctuations of the radii of the blobs
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:
* https://github.com/espressopp/espressopp
After installing this module, it can be tested by a Python script
found under the following link:
* https://github.com/espressopp/espressopp/tree/master/testsuite/langevin_thermostat_on_radius
Source Code
___________
This module has been merged into ESPResSo++:
* https://github.com/espressopp/espressopp/pull/168
* https://github.com/espressopp/espressopp/pull/169
* https://github.com/espressopp/espressopp/pull/170
* https://github.com/espressopp/espressopp/pull/176
References
___________
.. Here are the URL references used
.. [1] : http://pubs.acs.org/doi/abs/10.1021/mz5000015,
preprint available via
https://arxiv.org/abs/1610.07511