Hi all,
I have a question about the implementation of HPMC walls in HOOMD 3. I worked quite a bit with walls in 2.x, and now I'm trying to upgrade those simulations to 3.x but running into problems.
In 2.x, I was able to perform NPT simulations with a BoxMC and, when the box changed size, the walls automatically scaled in position (or, in the case of spherical walls, in radius). However, in 3.x, it seems that walls don't change position when a BoxMC is active. I can turn on the walls and BoxMC, and watch the box shrink such that the walls move outside the box and are no longer effecting the particles. The precise code snippets I used for both versions are below.
Is there a way to apply NPT updates to a wall in HOOMD 3.x? Is there a parameter to set that I haven't found? Thank you for the help!
HOOMD 2.x (specifically, 2.7.2)
#go through system set-up
lx = system.box.Lx
margin = 0.001
ext_wall = hpmc.field.wall(mc)
ext_wall.add_plane_wall(normal=[1,0,0], origin=[-lx/2+margin,0,0])
ext_wall.add_plane_wall(normal=[-1,0,0], origin=[lx/2-margin,0,0])
boxMC = hpmc.update.boxmc(mc, betaP, seed)
boxMC.volume(delta=init_dv, weight=1.0)
boxMC.length(delta=(5.0,5.0,5.0),weight=1.0)
boxMC.shear(delta=(0.1,0.1,0.1), weight = 1.0)
hoomd.run(timeSteps)
#this causes walls to scale with the box so they are always margin away from the edge
HOOMD 3.x (specifically, 3.4.0)
#go through system setup
wall1 = hoomd.wall.Plane(origin=(lx/2-margin,0,0), normal=(-1,0,0))
wall2 = hoomd.wall.Plane(origin=(-lx/2+margin,0,0), normal=(1,0,0))
hoomd.hpmc.external.wall.WallPotential([wall1,wall2])
mc.external_potential = wall_potential
betaPcurve = hoomd.variant.Power(A=1, B=10, power=1/2, t_start=0, t_ramp=int(1e5))
BoxMC = hoomd.hpmc.update.BoxMC(trigger=hoomd.trigger.Periodic(10),
betaP=betaPcurve)
BoxMC.shear = dict(weight=1, delta=(.05,.05,.05), reduce=.8)
BoxMC.aspect = dict(weight=1, delta=.05)
BoxMC.volume = dict(weight=1, mode='standard', delta=L/20)
sim.operations.updaters.append(BoxMC)
sim.run(timeSteps)
#this sets up walls but they are frozen in place as the box shrinks