Problem with unfix

Submitted by joesatch on Wed, 07/04/2012 - 22:22

Hi everyone,

I am using LIGGHTS 2.0.1. and I am having a problem with "unfix". I'm trying to move walls using "fix", run for 40 steps, stop wall movement using "unfix" and run for another 160 steps, as shown below. It keeps saying this:

"ERROR: Illegal deletion of a fix move/mesh. There is another fix move/mesh command active on the same mesh. Superposed fix move/mesh commands must be unfixed in reverse order of creation"

I've tried all possible combinations of the unfix command, but the same problem persists. Any ideas on what's going on?

I've recreated a small problem (see attached input files) to illustrate the problem.

Thanks,
Joe
--------------------------------------------------------------------------------------------------------------------------------------------

# move walls inwards using speed of 0.12
fix movetop all move/mesh mesh Tcad linear 0. -0.12 0.
fix movebot all move/mesh mesh Bcad linear 0. 0.12 0.
fix moveleft all move/mesh mesh Lcad linear 0.12 0. 0.
fix moveright all move/mesh mesh Rcad linear -0.12 0. 0.

#apply nve integration to all particles that are inserted as single particles
fix integr A nve/sphere

# last fix
fix 2dbc all enforce2d

# dump info
dump dmp all custom 10 post/dump-*.cundall id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius

#run
run 40

unfix moveright
unfix moveleft
unfix movebot
unfix movetop

run 160

AttachmentSize
Binary Data test.tar_.gz1.96 KB

pfalkingham | Wed, 07/04/2012 - 22:52

I'm having exactly the same issue. It seems to be an issue with applying move/rotate fixes to multiple meshes at once.

For instance, in my case, this doesn't work:

fix rotateDigit21 all move/mesh mesh Digit2 rotate origin -0.017406 0.0373112 -0.0048647 axis -0.744106 -0.0005609 0.668062 period 16.1628
fix rotateDigit31 all move/mesh mesh Digit3 rotate origin -0.017406 0.0373112 -0.0048647 axis -0.663563 -0.0325968 0.74741 period 23.6351
fix moveDigit21 all move/mesh mesh Digit2 linear -0.0220001 -0.0290036 -0.52335
run 4000
unfix moveDigit21
unfix rotateDigit21
unfix rotateDigit31

But this does:

fix rotateDigit21 all move/mesh mesh Digit2 rotate origin -0.017406 0.0373112 -0.0048647 axis -0.744106 -0.0005609 0.668062 period 16.1628
fix moveDigit21 all move/mesh mesh Digit2 linear -0.0220001 -0.0290036 -0.52335
run 4000
unfix moveDigit21
unfix rotateDigit21

joesatch | Wed, 07/04/2012 - 23:33

It appears that if you can overcome this problem by making a change in fix_mesh_move.cpp on line 96:

It says if nmove > 1, you get the error so just change 1 to something greater than 1, say, 100.

Of course, you'll have to recompile the code. Again, this is probably a temporary solution. Once I confirm that this change does not cause any further issues, I'll submit a post on the bug section.

Thanks,
Joe