rigid body integrator in HOOMD 2.0.0?

381 views
Skip to first unread message

Nathan Horst

unread,
Jul 14, 2016, 12:31:41 PM7/14/16
to hoomd-users
Hello all,

I am trying to initialize a system of particle chains tethered to a group of rigid particles. In HOOMD 1.3.3, rigid particles were treated with their own integrators, but I can't seem to find any similar integrator in the new version. Is the new convention simply to group all particles, rigid and non-rigid alike, under the same integrator? Or could someone perhaps point me to the place in the documentation where the treatment of such a system is explained? I haven't been able to find one.

Thanks,

Nathan Horst 

Eric Irrgang

unread,
Jul 14, 2016, 12:51:18 PM7/14/16
to hoomd...@googlegroups.com
http://hoomd-blue.readthedocs.io/en/stable/module-md-constrain.html#hoomd.md.constrain.rigid

I also recommend searching this google group for recent conversations on the topic.

--
You received this message because you are subscribed to the Google Groups "hoomd-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hoomd-users...@googlegroups.com.
To post to this group, send email to hoomd...@googlegroups.com.
Visit this group at https://groups.google.com/group/hoomd-users.
For more options, visit https://groups.google.com/d/optout.

Nathan Horst

unread,
Jul 14, 2016, 1:17:33 PM7/14/16
to hoomd-users
Thanks for the response. 

I have seen the recent posts as well as that page of the documentation, and as far as I can tell, the problems in those issues have been with initializing the rigid system. I think that I have done this, but the documentation does not include the integrator that is being used, just shows how to set up the rigid bodies. As to the other issues on this group regarding rigid bodies it seems that the general approach is to group the rigid particles and integrate them, but as far as I can tell, this has not been confirmed to be the correct way to do this, and my simulations don't seem to work when I use an integrator on both rigid and non-rigid particles. I may still be doing something wrong, as I am not overly familiar with the new rigid body implementation, but I would like verification that I am setting up the integrator correctly.

I currently call the integrator something like this:

non_rigid=hoomd.group.nonrigid()
rigid_center=hoomd.group.rigid_center()
both=hoomd.group.union(name='both',a=non_rigid,b=rigid_center)
hoomd.md.integrate.mode_standard(dt=0.0001)
hoomd.md.integrate.nvt(group=both,kT=1.0,tau=0.65)

Documentation example: (I can't find an integrator here)
# create the constituent particle type
system.particles.types.add('const')
# define the rigid body type
rigid = md.constrain.rigid()
rigid.set_param('central', positions=[(-0.5,0,0),(0.5,0,0)], types=['const','const'])
# .. create pair.lj() ..
# create constituent particles and run
rigid.create_bodies()
run(100)

Joshua Anderson

unread,
Jul 14, 2016, 1:24:04 PM7/14/16
to hoomd...@googlegroups.com
All integrators except berendsen support anisotropic particles. This is documented here http://hoomd-blue.readthedocs.io/en/stable/aniso.html. constrain.rigid works by making the central particles anisotropic in effect, so all of the standard integrators in hoomd will integrate the orientational degrees of freedom.

------
Joshua A. Anderson, Ph.D.
Research Area Specialist, Chemical Engineering, University of Michigan
Phone: 734-647-8244
http://www-personal.umich.edu/~joaander/

Jens Glaser

unread,
Jul 14, 2016, 2:44:08 PM7/14/16
to hoomd...@googlegroups.com
Hi Nathan,

On Jul 14, 2016, at 1:17 PM, Nathan Horst <horst...@gmail.com> wrote:
I have seen the recent posts as well as that page of the documentation, and as far as I can tell, the problems in those issues have been with initializing the rigid system. I think that I have done this, but the documentation does not include the integrator that is being used, just shows how to set up the rigid bodies. As to the other issues on this group regarding rigid bodies it seems that the general approach is to group the rigid particles and integrate them, but as far as I can tell, this has not been confirmed to be the correct way to do this,

yes, using group.rigid_center() and set operations thereof with other groups and the usual
integrators md.integrate.* is the correct approach.


and my simulations don't seem to work when I use an integrator on both rigid and non-rigid particles.

What does not work?

I may still be doing something wrong, as I am not overly familiar with the new rigid body implementation, but I would like verification that I am setting up the integrator correctly.

Yes.

I currently call the integrator something like this:

non_rigid=hoomd.group.nonrigid()
rigid_center=hoomd.group.rigid_center()
both=hoomd.group.union(name='both',a=non_rigid,b=rigid_center)
hoomd.md.integrate.mode_standard(dt=0.0001)
hoomd.md.integrate.nvt(group=both,kT=1.0,tau=0.65)

Documentation example: (I can't find an integrator here)

Thanks for that hint. I will fix the documentation shortly.

Jens.

Nathan Horst

unread,
Jul 14, 2016, 3:01:19 PM7/14/16
to hoomd-users
Thanks for the information, Josh. 

I have added the aniso=True option to the integrator, as I did not have that before, but I am still getting the same error.  

*Warning*: Integrator #0: Anisotropic integration requested, but no rotational degrees of freedom found for its group

I apologize for my naivety, but I wonder if anyone has a script for working rigid bodies that I could take a look at and compare with my own? I would very much appreciate it.

Thanks, Nathan

Jens Glaser

unread,
Jul 14, 2016, 3:04:44 PM7/14/16
to hoomd...@googlegroups.com
Here’s one, for now (from the unit tests).


Also, are you setting the moments of inertia on the central particles?

Jens
Reply all
Reply to author
Forward
0 new messages