<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Hi,<br><br>With only 1 pull dimension active (through pull_dims) all three geometries are equivalent.<br>In 2 or 3D there are all different.<br><br>With pull_geometry=direction the pull force is the force working along the direction vector.<br>So in general you can't incorporate the direction (only sign in your case) into the force,<br>unless you would print the whole vector.<br><br>Berk<br><br>&gt; Date: Wed, 18 Nov 2009 12:12:49 -0500<br>&gt; From: chris.neale@utoronto.ca<br>&gt; To: gmx-users@gromacs.org<br>&gt; Subject: [gmx-users] pull code with defined negative relative displacements<br>&gt; <br>&gt; Hi Berk,<br>&gt; <br>&gt; I have done the tests and you are entirely correct. I have one further  <br>&gt; question: If I simply want to pull to a relative displacement of -1.0  <br>&gt; nm, is there any reason to prefer one of these methods, or are they  <br>&gt; just overlapping implementations of different methods that also have  <br>&gt; unique abilities given other settings?<br>&gt; <br>&gt; To summarize my tests, pull_geometry=direction can indeed pull to negative  <br>&gt; displacements and there is no bimodal behaviour. My misunderstanding  <br>&gt; derived from the fact that<br>&gt; <br>&gt; pull_geometry            = direction<br>&gt; pull_init1               = 1.0<br>&gt; pull_vec1                = 0 0 1<br>&gt; <br>&gt; gave the forces as I expected them, while<br>&gt; <br>&gt; pull_vec1                = 0 0 -1<br>&gt; <br>&gt; reports the negative of the force that I expected. Since the force as  <br>&gt; output is probably applied after multiplication by pull_vec1, it might  <br>&gt; be more intuitive to simply output the force after it is multiplied by  <br>&gt; pull_vec1 such that what is output is the actual applied force. But  <br>&gt; then again there are probably some good reasons why it is output the  <br>&gt; way that it is.<br>&gt; <br>&gt; I have included probability distribution plots for the sampling along z for the tests below at:<br>&gt; http://i205.photobucket.com/albums/bb192/chrisneale_2007/X10.png  (1.0 nm displacement test)<br>&gt; http://i205.photobucket.com/albums/bb192/chrisneale_2007/X005.png  (0.05 nm displacement test)<br>&gt; http://i205.photobucket.com/albums/bb192/chrisneale_2007/X35.png  (3.5 nm displacement test)<br>&gt; <br>&gt; Thank you for all of your assistance,<br>&gt; Chris.<br>&gt;  <br>&gt; #####################<br>&gt; Summary for attempts to pull to -1.0:<br>&gt; <br>&gt; ### Pulls to -1<br>&gt; <br>&gt; pull_geometry            = position<br>&gt; pull_init1               = 0 0 -1<br>&gt; pull_vec1                = 0 0 0<br>&gt; <br>&gt; pull_geometry            = direction<br>&gt; pull_init1               = -1.0<br>&gt; pull_vec1                = 0 0 1<br>&gt; <br>&gt; pull_geometry            = direction<br>&gt; pull_init1               = 1.0<br>&gt; pull_vec1                = 0 0 -1<br>&gt; <br>&gt; ### Pulls to +1<br>&gt; <br>&gt; pull_geometry            = direction<br>&gt; pull_init1               = 1.0<br>&gt; pull_vec1                = 0 0 1<br>&gt; <br>&gt; #####################<br>&gt; Detailed results:<br>&gt; <br>&gt; pull_geometry            = position<br>&gt; pull_init1               = 0 0 -1<br>&gt; pull_vec1                = 0 0 0<br>&gt; <br>&gt; $ tail coord.xvg<br>&gt; 98.2000        5.03064        -0.96114<br>&gt; 98.4000        5.02906        -0.968864<br>&gt; 98.6000        5.02755        -1.0196<br>&gt; 98.8000        5.02577        -0.971355<br>&gt; 99.0000        5.02408        -0.948518<br>&gt; 99.2000        5.02289        -0.973627<br>&gt; 99.4000        5.0227        -0.977471<br>&gt; 99.6000        5.02293        -0.965711<br>&gt; 99.8000        5.0242        -1.01475<br>&gt; 100.0000        5.0251        -1.03216<br>&gt; <br>&gt; $ tail force.xvg<br>&gt; 98.2000        -19.4299<br>&gt; 98.4000        -15.568<br>&gt; 98.6000        9.8014<br>&gt; 98.8000        -14.3227<br>&gt; 99.0000        -25.741<br>&gt; 99.2000        -13.1865<br>&gt; 99.4000        -11.2644<br>&gt; 99.6000        -17.1443<br>&gt; 99.8000        7.37747<br>&gt; 100.0000        16.0813<br>&gt; <br>&gt; ########################################<br>&gt; <br>&gt; pull_geometry            = direction<br>&gt; pull_init1               = 1.0<br>&gt; pull_vec1                = 0 0 1<br>&gt; <br>&gt; $ tail coord.xvg<br>&gt; 98.2000        5.06691        1.09005<br>&gt; 98.4000        5.06773        1.04829<br>&gt; 98.6000        5.06842        1.02481<br>&gt; 98.8000        5.06934        1.02874<br>&gt; 99.0000        5.07061        0.995157<br>&gt; 99.2000        5.07164        0.990872<br>&gt; 99.4000        5.07205        1.00651<br>&gt; 99.6000        5.07256        1.02346<br>&gt; 99.8000        5.07107        0.986439<br>&gt; 100.0000        5.06931        1.03009<br>&gt; <br>&gt; $ tail force.xvg<br>&gt; 98.2000        -45.0273<br>&gt; 98.4000        -24.1432<br>&gt; 98.6000        -12.4043<br>&gt; 98.8000        -14.3716<br>&gt; 99.0000        2.42147<br>&gt; 99.2000        4.56404<br>&gt; 99.4000        -3.25742<br>&gt; 99.6000        -11.7324<br>&gt; 99.8000        6.78027<br>&gt; 100.0000        -15.0443<br>&gt; <br>&gt; ### where it does start at -1.0<br>&gt; <br>&gt; $ grep -v '[#|@]' coord.xvg |head<br>&gt; 0.0000        5.05992        -1.09968<br>&gt; 0.2000        5.05948        -0.473992<br>&gt; 0.4000        5.05982        0.43101<br>&gt; 0.6000        5.06017        0.77986<br>&gt; 0.8000        5.0609        0.78875<br>&gt; 1.0000        5.06113        0.75552<br>&gt; 1.2000        5.06151        0.750633<br>&gt; 1.4000        5.06086        0.79958<br>&gt; 1.6000        5.05976        0.821069<br>&gt; 1.8000        5.05811        0.950296<br>&gt; <br>&gt; ###############################<br>&gt; <br>&gt; pull_geometry            = direction<br>&gt; pull_init1               = -1.0<br>&gt; pull_vec1                = 0 0 1<br>&gt; <br>&gt; $ tail -n 30 coord.xvg|head -n 10<br>&gt; 94.2000        5.04636        -1.00959<br>&gt; 94.4000        5.04605        -1.09414<br>&gt; 94.6000        5.04503        -1.09134<br>&gt; 94.8000        5.0431        -1.10409<br>&gt; 95.0000        5.04174        -1.05292<br>&gt; 95.2000        5.04012        -1.03421<br>&gt; 95.4000        5.03944        -1.05723<br>&gt; 95.6000        5.03981        -1.00803<br>&gt; 95.8000        5.04072        -1.01506<br>&gt; 96.0000        5.04055        -0.980655<br>&gt; <br>&gt; $ tail -n 30 force.xvg|head -n 10<br>&gt; 94.2000        4.79288<br>&gt; 94.4000        47.0722<br>&gt; 94.6000        45.6695<br>&gt; 94.8000        52.0426<br>&gt; 95.0000        26.4623<br>&gt; 95.2000        17.107<br>&gt; 95.4000        28.6127<br>&gt; 95.6000        4.0165<br>&gt; 95.8000        7.52866<br>&gt; 96.0000        -9.67265<br>&gt; <br>&gt; ###############################<br>&gt; <br>&gt; pull_geometry            = direction<br>&gt; pull_init1               = 1.0<br>&gt; pull_vec1                = 0 0 -1<br>&gt; <br>&gt; $ tail coord.xvg<br>&gt; 98.2000        5.01781        -1.04195<br>&gt; 98.4000        5.01766        -0.988034<br>&gt; 98.6000        5.01789        -0.963644<br>&gt; 98.8000        5.0185        -0.980899<br>&gt; 99.0000        5.01958        -0.917222<br>&gt; 99.2000        5.021        -1.00548<br>&gt; 99.4000        5.02016        -0.970434<br>&gt; 99.6000        5.01848        -1.01137<br>&gt; 99.8000        5.01723        -0.950541<br>&gt; 100.0000        5.01743        -1.01916<br>&gt; <br>&gt; $ tail force.xvg<br>&gt; 98.2000        -20.9744<br>&gt; 98.4000        5.98316<br>&gt; 98.6000        18.1779<br>&gt; 98.8000        9.55039<br>&gt; 99.0000        41.3892<br>&gt; 99.2000        -2.73847<br>&gt; 99.4000        14.7832<br>&gt; 99.6000        -5.68352<br>&gt; 99.8000        24.7297<br>&gt; 100.0000        -9.58189<br>&gt; <br>&gt; #####################<br>&gt; #####################<br>&gt; #####################<br>&gt; #####################<br>&gt; <br>&gt; Summary for attempts to pull to -0.1:<br>&gt; <br>&gt; ### Pulls to -0.1<br>&gt; <br>&gt; pull_geometry            = position<br>&gt; pull_init1               = 0 0 -0.1<br>&gt; pull_vec1                = 0 0 0<br>&gt; <br>&gt; pull_geometry            = direction<br>&gt; pull_init1               = -0.1<br>&gt; pull_vec1                = 0 0 1<br>&gt; <br>&gt; <br>&gt; pull_geometry            = direction<br>&gt; pull_init1               = 0.1<br>&gt; pull_vec1                = 0 0 -1<br>&gt; <br>&gt; ### Pulls to +0.1<br>&gt; <br>&gt; pull_geometry            = direction<br>&gt; pull_init1               = 0.1<br>&gt; pull_vec1                = 0 0 1<br>&gt; <br>&gt; #####################<br>&gt; Detailed results:<br>&gt; <br>&gt; pull_geometry            = position<br>&gt; pull_init1               = 0 0 -0.1<br>&gt; pull_vec1                = 0 0 0<br>&gt; <br>&gt; $ tail coord.xvg<br>&gt; 98.2000        5.05551        -0.0467954<br>&gt; 98.4000        5.05655        -0.0756043<br>&gt; 98.6000        5.05742        -0.132113<br>&gt; 98.8000        5.05886        -0.182411<br>&gt; 99.0000        5.05929        -0.148237<br>&gt; 99.2000        5.05957        -0.0355667<br>&gt; 99.4000        5.06157        0.00486353<br>&gt; 99.6000        5.06353        0.0215776<br>&gt; 99.8000        5.06373        -0.0272107<br>&gt; 100.0000        5.06301        -0.157927<br>&gt; <br>&gt; $ tail force.xvg<br>&gt; 98.2000        -26.6023<br>&gt; 98.4000        -12.1979<br>&gt; 98.6000        16.0563<br>&gt; 98.8000        41.2056<br>&gt; 99.0000        24.1184<br>&gt; 99.2000        -32.2166<br>&gt; 99.4000        -52.4318<br>&gt; 99.6000        -60.7888<br>&gt; 99.8000        -36.3946<br>&gt; 100.0000        28.9634<br>&gt; <br>&gt; ########################################<br>&gt; <br>&gt; pull_geometry            = direction<br>&gt; pull_init1               = 0.1<br>&gt; pull_vec1                = 0 0 1<br>&gt; <br>&gt; $ tail coord.xvg<br>&gt; 98.2000        5.03896        -0.0415608<br>&gt; 98.4000        5.03914        -0.0285805<br>&gt; 98.6000        5.03966        0.0746529<br>&gt; 98.8000        5.03966        0.22066<br>&gt; 99.0000        5.04063        0.254914<br>&gt; 99.2000        5.04097        0.0771699<br>&gt; 99.4000        5.03999        -0.0702654<br>&gt; 99.6000        5.04055        -0.0993152<br>&gt; 99.8000        5.04165        0.0109239<br>&gt; 100.0000        5.04156        0.158978<br>&gt; <br>&gt; $ tail force.xvg<br>&gt; 98.2000        70.7804<br>&gt; 98.4000        64.2902<br>&gt; 98.6000        12.6735<br>&gt; 98.8000        -60.3298<br>&gt; 99.0000        -77.457<br>&gt; 99.2000        11.415<br>&gt; 99.4000        85.1327<br>&gt; 99.6000        99.6576<br>&gt; 99.8000        44.5381<br>&gt; 100.0000        -29.4892<br>&gt; <br>&gt; ########################################<br>&gt; <br>&gt; pull_geometry            = direction<br>&gt; pull_init1               = -0.1<br>&gt; pull_vec1                = 0 0 1<br>&gt; <br>&gt; $ tail coord.xvg<br>&gt; 98.2000        5.02845        -0.0551189<br>&gt; 98.4000        5.02783        -0.0799781<br>&gt; 98.6000        5.0266        -0.145213<br>&gt; 98.8000        5.02534        -0.112499<br>&gt; 99.0000        5.02392        -0.06543<br>&gt; 99.2000        5.02339        -0.0648827<br>&gt; 99.4000        5.02286        -0.130913<br>&gt; 99.6000        5.02251        -0.196036<br>&gt; 99.8000        5.02211        -0.190228<br>&gt; 100.0000        5.02168        -0.216231<br>&gt; <br>&gt; $ tail force.xvg<br>&gt; 98.2000        -22.4406<br>&gt; 98.4000        -10.0109<br>&gt; 98.6000        22.6063<br>&gt; 98.8000        6.24961<br>&gt; 99.0000        -17.285<br>&gt; 99.2000        -17.5586<br>&gt; 99.4000        15.4567<br>&gt; 99.6000        48.0178<br>&gt; 99.8000        45.1138<br>&gt; 100.0000        58.1155<br>&gt; <br>&gt; ###############################<br>&gt; <br>&gt; pull_geometry            = direction<br>&gt; pull_init1               = 0.1<br>&gt; pull_vec1                = 0 0 -1<br>&gt; <br>&gt; $ tail coord.xvg<br>&gt; 98.2000        5.05883        -0.110131<br>&gt; 98.4000        5.05931        -0.156342<br>&gt; 98.6000        5.0597        -0.143227<br>&gt; 98.8000        5.05965        -0.13037<br>&gt; 99.0000        5.05919        -0.0630012<br>&gt; 99.2000        5.06013        -0.0468867<br>&gt; 99.4000        5.06169        -0.1017<br>&gt; 99.6000        5.06282        -0.205357<br>&gt; 99.8000        5.06437        -0.194031<br>&gt; 100.0000        5.06543        -0.139003<br>&gt; <br>&gt; $ tail force.xvg<br>&gt; 98.2000        -5.0653<br>&gt; 98.4000        -28.1712<br>&gt; 98.6000        -21.6133<br>&gt; 98.8000        -15.1848<br>&gt; 99.0000        18.4994<br>&gt; 99.2000        26.5566<br>&gt; 99.4000        -0.850237<br>&gt; 99.6000        -52.6784<br>&gt; 99.8000        -47.0155<br>&gt; 100.0000        -19.5014<br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; -- <br>&gt; gmx-users mailing list    gmx-users@gromacs.org<br>&gt; http://lists.gromacs.org/mailman/listinfo/gmx-users<br>&gt; Please search the archive at http://www.gromacs.org/search before posting!<br>&gt; Please don't post (un)subscribe requests to the list. Use the <br>&gt; www interface or send it to gmx-users-request@gromacs.org.<br>&gt; Can't post? Read http://www.gromacs.org/mailing_lists/users.php<br>                                               <br /><hr />Express yourself instantly with MSN Messenger! <a href='http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/' target='_new'>MSN Messenger</a></body>
</html>