Hello all,

I’m attempting to extend the shake routine to constrain NH3 (both bonds and angles).

At present, the routie will only constrain the bonds. So short of having to explicitly invert the 6x6 matix (it could probably be reduced to 5x5 with 3 bonds and 2 angles) on the RHS of the Lagrange multipliers equation, is there an easier way: i.e. could i constrain the bond and angles seperately in two steps?

Regards,

Tamara

Tamara,

You might consider using fix rigid rather than shake

to do rigid NH3.

http://www.cs.sandia.gov/~sjplimp/lammps/doc/fix_rigid.html

This approach might not be very efficient in parallel,

but may be adequate for what you're trying to do.

Paul

I think you have 3 options. I'd recommend #3.

1 - do as Paul suggests and use fix rigid. This will work

but will be slow if you have 1000s of NH3. The fix was

designed for a handful of big rigid bodies, not 1000s of

small ones.

2 - modify fix shake to work on 5x5 or 6x6 constraint matrices.

This will be non-trivial, not only for the inverse computation,

but b/c many data structures and logic for cluster searching

in the fix will have to be changed

3 - LAMMPS will shake the bonds in NH3. Hence you could

run semi-flexible NH3 (rigid bonds, flexible angles). If you

stiffen the angle K factors, it will become nearly rigid. You

should still be able to run with a big timestep, since the bonds

are the fastest motion.

Steve