Bob, Funky!
I found that with both hydrogen bonds and movement on the H-bonds just got longer and longer but if the H-bonds were turned off and then on again another set formed. I'm wondering if its possible to update the H-bonds as the individual molecules move, i.e. breaking and forming them on the fly? Just a thought, Anthony Lewis -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bob Hanson Sent: 28 February 2007 08:58 To: [email protected] Subject: [Jmol-users] a treat for you -- Jmol in motion Hot off the press -- Q: What do you get when you combine the following? wide-ranging variable capability, including arrayed variables program flow control with if/else/endif and message/loop relative motion Take a look at http://www.stolaf.edu/people/hansonr/molecules.htm in particular the link "Water Liquid" followed by "Jmol 11.2 motion ON" This is not a movie. This is not a set of frames. It's just a file full of water molecules. Then look at the script that drives the animation: http://www.stolaf.edu/people/hansonr/water.spt This script runs through the molecules, setting them moving in independent directions. It tracks what direction they are going and how many atoms are within 1.6 angstroms of a given molecule. When nearby atoms are found, the program reverses a molecule's direction, but if a molecule wander too far afield, we can spot that and turn it around again. The code that controls this neighbor-sensing and reversal is just a few lines long: tooclose = not {mol_set} and within(1.6, {mol_set}) if (tooclose > 0) set @vm = mxyz - {tooclose_set}.xyz else if (centerpt.distance(mxyz) > maxradius) set @vm = {0 0 0} - @vm endif endif motion = @vm / @vm * rate select {mol_set} translateSelected @motion Pretty straightforward! The setup is interesting as well: centerpt = {*}.xyz nMolecules = {*}[{*}].molecule message _start # this is the loop start m = m + 1 if (m > nMolecules) m = 1 endif mol = {molecule=m} mxyz = {mol_set}.xyz vm = "v"+m # this is the "array" - v1, v2, v3, etc. set @vm mxyz # this sets the appropriate variable, v1, v2, etc. Fun, eh? -Bob ------------------------------------------------------------------------ - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDE V _______________________________________________ Jmol-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jmol-users ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Jmol-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jmol-users

