Is it possible to use HOOMD for simulation of bigger scales than atomic scales?

190 views
Skip to first unread message

aws357

unread,
Nov 13, 2009, 6:57:41 AM11/13/09
to hoomd-users
http://www.hpc-europa.eu/files/SSCinEurope/CD2007/contents/203-phys-Rosa.pdf
<--- in this article, people have used LAMMPS to build a coarse-grain
model of the chromosomes (represented as 30nm bead on a string models)

So I was wondering if HOOMD could have been used instead of LAMMPS.

I ask that, because I prefer python, so it's easier for me to script
for HOOMD and I would like to confront my current model with other
kind of approaches.



Joshua Anderson

unread,
Nov 13, 2009, 8:13:50 AM11/13/09
to hoomd...@googlegroups.com
hoomd can absolutely be used to simulate systems of bead-spring
polymers. You could even say that it was built with such simulations
in mind, as my PhD thesis is on bead-spring polymer systems. For
convenience in setting up initial configurations, there is even an
init.create_random_polymers command that randomly places polymers in
the simulation box.

--------
Joshua A. Anderson, Ph.D.
Chemical Engineering Department, University of Michigan
> --
>
> You received this message because you are subscribed to the Google
> Groups "hoomd-users" group.
> To post to this group, send email to hoomd...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/hoomd-users?hl=
> .
>
>
>
>

aws357

unread,
Nov 13, 2009, 12:37:17 PM11/13/09
to hoomd-users
That's a really good news.

What if I want them in a spherical container instead of a box or a
potatoid confinement (I use trimesh collisions to generate arbitrary
containers in my current model) ?

Is it also possible to do branched polymers?

Sorry for the numerous questions, I looked at the documentation and
did not find any topics about that... I would appreciate some hints to
guide me in the right direction (or better yet, if there are code
snippets here and there...).

On 13 nov, 14:13, Joshua Anderson <joaan...@umich.edu> wrote:
> hoomd can absolutely be used to simulate systems of bead-spring  
> polymers. You could even say that it was built with such simulations  
> in mind, as my PhD thesis is on bead-spring polymer systems. For  
> convenience in setting up initial configurations, there is even an  
> init.create_random_polymers command that randomly places polymers in  
> the simulation box.
>
> --------
> Joshua A. Anderson, Ph.D.
> Chemical Engineering Department, University of Michigan
>
> On Nov 13, 2009, at 6:57 AM, aws357 wrote:
>
> >http://www.hpc-europa.eu/files/SSCinEurope/CD2007/contents/203-phys-R...

Axel

unread,
Nov 13, 2009, 1:35:00 PM11/13/09
to hoomd-users


On Nov 13, 12:37 pm, aws357 <wong....@gmail.com> wrote:
> That's a really good news.
>
> What if I want them in a spherical container instead of a box or a
> potatoid confinement (I use trimesh collisions to generate arbitrary
> containers in my current model) ?

i guess in that case you would have to write a piece of code
that would model the container. the box in HOOMD is not really
a "box" but rather the (replicated) unit cell of an infinite
periodic system.

out of curiosity: how would you do the equivalent in LAMMPS?

> Is it also possible to do branched polymers?

yes. but you may need to recompile to have room for more
exclusions, since non-bonded interactions need to be
excluded for bonded interaction.

> Sorry for the numerous questions, I looked at the documentation and
> did not find any topics about that... I would appreciate some hints to
> guide me in the right direction (or better yet, if there are code
> snippets here and there...).

the code is all available and documented with doxygen.
you can always use grep to look for something. you have
to keep in mind that HOOMD is still a code with much room
to grow. this means that you can provide input to have it
shaped the way you need, but it also means, that only features
that people were interested in or that seemed important
have been implemented.

cheers,
axel.

aws357

unread,
Nov 16, 2009, 5:12:25 AM11/16/09
to hoomd-users
On 13 nov, 19:35, Axel <akohl...@gmail.com> wrote:
> On Nov 13, 12:37 pm, aws357 <wong....@gmail.com> wrote:
>
> > That's a really good news.
>
> > What if I want them in a spherical container instead of a box or a
> > potatoid confinement (I use trimesh collisions to generate arbitrary
> > containers in my current model) ?
>
> i guess in that case you would have to write a piece of code
> that would model the container. the box in HOOMD is not really
> a "box" but rather the (replicated) unit cell of an infinite
> periodic system.
>
> out of curiosity: how would you do the equivalent in LAMMPS?

Strange that you ask the question, the author of the paper in the
original post make it looks like it's possible (I'm not saying "easy"
though...)

Excerpt :
/* Chromosomes chain are then placed inside a rigid spherical vessel
which models the nucleus. <---- doesn't seems to be using LAMMPS
We have then started studying this model by Molecular Dynamics and
Monte-Carlo simulations.
In particular, we wish to investigate the shape and distribution of
the territories at increasing Kuhn's lengths.
Resources used - Monte-Carlo simulations have been performed using a
serial program written in Fortran77 which packs several chains inside
the spherical nucleus.

The program uses a growing algorithm for linear chains which
efficiently samples the configurational space.
Molecular Dynamics simulations have been performed using Lammps [16],
a standard and efficient Molecular Dynamics package suitable for
parallel computations. */

The impression I have is that it is possible to define limits that can
be then exported to LAMMPS... But I don't know LAMMPS enough (in fact,
at all...) so I don't really know if one have to use third party tools
or if LAMMPS have that kind of features.

Joshua Anderson

unread,
Nov 16, 2009, 7:23:51 AM11/16/09
to hoomd...@googlegroups.com
Not strange, no. LAMMPS has no built in feature for simulating systems
in a geometry other than a triclinic or orthogonal box (periodic or
non-periodic):
http://lammps.sandia.gov/doc/change_box.html
http://lammps.sandia.gov/doc/boundary.html
And also note that these commands merely define the (possibly
periodic) space that particles exist in. Particles are not confined in
the box unless fix wall command is specified to apply a force to
particles near the wall.

A further search in the documentation finds only two confinement
options, lines and planes:
http://lammps.sandia.gov/doc/fix_lineforce.html
http://lammps.sandia.gov/doc/fix_planeforce.html

Either the authors of the paper you linked to extended LAMMPS to
implement the rigid spherical vessel or they may be using a vessel
with soft walls defined by particles (see below).

HOOMD-blue currently supports orthogonal and periodic boxes only. You
can simulate non-periodic systems by making the box larger and keeping
particles more than r_cut away from the walls. There are also a couple
options in hoomd's current feature set to implement a vessel with
"soft" walls.

- 1. A arbitrary convex hull confinement could be implemented with a
number of appropriately defined walls and the wall.lj force. Note that
due to a lack of demand for the feature, lj.wall is not yet
accelerated on the GPU. (doing so would only take an hour or two,
however)

- 2. The confinement vessel could be made up of particles that are
frozen in place. These particles would interact with the polymer in
the middle to prevent it from leaving.

A possibility for a future feature (one that is of potential wider
interest) would allow the specification of an external field
V(\vec{r}) to be applied to a specified group of particles.

However, all of the above can only implement a vessel with soft walls
that allow some (small) amount of penetration. Truly rigid walls could
also be added to hoomd, of course. Feel free to contribute code.
--------
Joshua A. Anderson, Ph.D.
Chemical Engineering Department, University of Michigan

Axel

unread,
Nov 16, 2009, 8:47:10 AM11/16/09
to hoomd-users

> > i guess in that case you would have to write a piece of code
> > that would model the container. the box in HOOMD is not really
> > a "box" but rather the (replicated) unit cell of an infinite
> > periodic system.
>
> > out of curiosity: how would you do the equivalent in LAMMPS?
>
> Strange that you ask the question, the author of the paper in the
> original post make it looks like it's possible (I'm not saying "easy"
> though...)
>
[...]

> The impression I have is that it is possible to define limits that can
> be then exported to LAMMPS... But I don't know LAMMPS enough (in fact,
> at all...) so I don't really know if one have to use third party tools
> or if LAMMPS have that kind of features.

no, i don't think so. the best way in lammps to model a
spherical vessel would to add a soft or reflective confinement
through writing a custom "fix". there are examples for flat
walls and doing this for a spherical or cylindrical or other
shape container is fairly straightforward to implement.
one of the major benefits of using LAMMPS is that it is
fairly easy to add components to the code (something that
is also true for HOOMD and looking at the list of planned
enhancements, it is going to get even easier in the future).


cheers,
axel.
Reply all
Reply to author
Forward
0 new messages