ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/doc/SelectionExpression.html
Revision: 379
Committed: Mon Feb 28 17:24:51 2005 UTC (20 years, 2 months ago) by tim
Content type: text/html
File size: 12098 byte(s)
Log Message:
selection expression

File Contents

# User Rev Content
1 tim 377 <html>
2 tim 379
3 tim 377 <head>
4 tim 379
5 tim 377 <title>Select Commands in OOPSE</title>
6 tim 379
7 tim 377 </head>
8    
9 tim 379
10    
11 tim 377 <body bgcolor=white>
12 tim 379
13 tim 377 <basefont size=3>
14    
15 tim 379
16    
17 tim 377 <div align=center>
18 tim 379
19     <p><font size="+2"><b>Select Commands in </b></font><b><font size="+2">OOPSE</font></b></p>
20     <h2 align="left"><a name="introduction" id="introduction"> Introduction </a></h2>
21     <p align="left">&nbsp;</p>
22     <p align="center"><img src="classoopse_1_1StuntDouble.png" width="292" height="136"></p>
23     <p align="left"><b><a name="stuntdouble" id="stuntdouble"></a> Stuntdouble </b> stands in for some object that can be manipulated by the Integrators or Minimizers. </p>
24     <p align="left"><b><a name="atom" id="atom"></a> Atom </b>is a fundamental unit in OOPSE</p>
25     <p align="left"><b><a name="datom" id="datom"></a> DirectionalAtom </b>is a special atom</p>
26     <p align="left"><b><a name="rigidbody" id="rigidbody"></a> Rigid-body </b>is a collection of atoms or directional atoms. </p>
27     <p align="left"> Every molecule, atom and directional atom in OOPSE have their own name which are given by .md file. In contrast, the name of rigid-body, which is [MoleculeName]_RB_[index] (the content inside the brackets will be replaced), is generated automatically. For example, the name of the first rigi-body of DMPC molecule is DMPC_RB_0. <br>
28     </p>
29 tim 377 </div>
30 tim 379
31 tim 377 <a name="syntax" id="syntax">
32 tim 379
33 tim 377 <h2>
34 tim 379
35 tim 377 Syntax of the select command
36 tim 379
37 tim 377 </h2>
38 tim 379
39 tim 377 </a>
40    
41 tim 379
42    
43 tim 377 The most general form of the select command is: <b>select <i>expression</i>
44 tim 379
45 tim 377 </b>
46 tim 379
47 tim 377 <p>The expression represents an arbitrary set of stuntdoubles (atoms or rigid-bodies) in OOPSE. Expressions are composed of either name expressions, index expression, predefined sets, user define expression, comparison operators, within expressions, or logical combinations of the above expression types. Expression can be combined with parentheses and the Boolean operators</p>
48 tim 379
49 tim 377 <p><b><a name="logic"></a> Logical expression. </b> </p>
50 tim 379
51 tim 377 <p>The logical operators allow complex queries to be constructed out of simpler ones using the standard boolean connectives <b>and, or, not</b>. Parentheses can be used to alter the precedence of the operators.
52 tim 379
53 tim 377 <ul>
54 tim 379
55 tim 377 <table width="441" border=1 cellpadding=5 bgcolor="#FFFFFF">
56 tim 379
57 tim 377 <tr bgcolor="#FFCCFF">
58 tim 379
59 tim 377 <td width="174"><div align="left">logical operator </div></td>
60 tim 379
61 tim 377 <td width="241"><div align="left">equivalent operator</div></td>
62 tim 379
63 tim 377 </tr>
64 tim 379
65 tim 377 <tr bgcolor="#FFCCFF">
66 tim 379
67 tim 377 <td><div align="left">and</div></td>
68 tim 379
69 tim 377 <td><div align="left">&quot;&amp;&quot;, &quot;&amp;&amp;&quot; </div></td>
70 tim 379
71 tim 377 </tr>
72 tim 379
73 tim 377 <tr bgcolor="#FFCCFF">
74 tim 379
75 tim 377 <td><div align="left">or</div></td>
76 tim 379
77     <td><div align="left">&quot;|&quot;, &quot;||&quot;, &quot;,&quot; </div></td>
78    
79 tim 377 </tr>
80 tim 379
81 tim 377 <tr bgcolor="#FFCCFF">
82 tim 379
83 tim 377 <td><div align="left">not</div></td>
84 tim 379
85 tim 377 <td><div align="left">&quot;!&quot;</div></td>
86 tim 379
87 tim 377 </tr>
88 tim 379
89 tim 377 </table>
90 tim 379
91 tim 377 <p>&nbsp;</p>
92 tim 379
93 tim 377 </ul>
94 tim 379
95 tim 377 <p><a name="name"><b> Name expression.
96 tim 379
97 tim 377 </b></a> </p>
98 tim 379
99 tim 377 <ul>
100 tim 379
101 tim 377 <table width="886" border="1" bordercolor="#6B7683" bgcolor="#FFFFCC">
102 tim 379
103 tim 377 <tr>
104 tim 379
105 tim 377 <td colspan="2"><div align="center">expression</div></td>
106 tim 379
107 tim 377 <td width="434"><div align="center">description</div></td>
108 tim 379
109 tim 377 </tr>
110 tim 379
111 tim 377 <tr>
112 tim 379
113 tim 377 <td width="183" rowspan="3">expression without &quot;.&quot; </td>
114 tim 379
115 tim 377 <td width="247"><div align="left">select DMPC</div></td>
116 tim 379
117 tim 377 <td>select all stuntdoubles belong to DMPC molecule </td>
118 tim 379
119 tim 377 </tr>
120 tim 379
121 tim 377 <tr>
122 tim 379
123 tim 377 <td><div align="left">select C*</div></td>
124 tim 379
125 tim 377 <td>select all carbon atoms </td>
126 tim 379
127 tim 377 </tr>
128 tim 379
129 tim 377 <tr>
130 tim 379
131 tim 377 <td><div align="left">select DMPC_RB_*</div></td>
132 tim 379
133 tim 377 <td>select all rigid-bodies (only select rigid-bodies, not include the atoms belong to them)</td>
134 tim 379
135 tim 377 </tr>
136 tim 379
137 tim 377 <tr>
138 tim 379
139 tim 377 <td rowspan="3">expression has one &quot;.&quot; </td>
140 tim 379
141 tim 377 <td>select TIP3P.O_TIP3P</td>
142 tim 379
143 tim 377 <td>select stuntdoubles belong to molecule </td>
144 tim 379
145 tim 377 </tr>
146 tim 379
147 tim 377 <tr>
148 tim 379
149 tim 377 <td>select DMPC_RB_0.PO4</td>
150 tim 379
151 tim 377 <td>select atoms belong to rigid-bodies</td>
152 tim 379
153 tim 377 </tr>
154 tim 379
155 tim 377 <tr>
156 tim 379
157 tim 377 <td>select DMPC.20</td>
158 tim 379
159 tim 377 <td>select stuntdoubles by their internal indices inside the molecules </td>
160 tim 379
161 tim 377 </tr>
162 tim 379
163 tim 377 <tr>
164 tim 379
165 tim 377 <td>expression has two &quot;.&quot;</td>
166 tim 379
167 tim 377 <td>select DMPC.DMPC_RB_?.*</td>
168 tim 379
169 tim 377 <td>select all atoms belong to rigid-bodies within DMPC molecule</td>
170 tim 379
171 tim 377 </tr>
172 tim 379
173 tim 377 </table>
174 tim 379
175 tim 377 <p>&nbsp;</p>
176 tim 379
177 tim 377 </ul>
178 tim 379
179 tim 377 <p><a name="index" id="index"><b> Index expression </b></a></p>
180 tim 379
181 tim 377 <p>Index expression is used to select stuntdobules by their global indices. </p>
182 tim 379
183 tim 377 <ul>
184 tim 379
185 tim 377 <table width="894" border=1 cellpadding=5 bgcolor="#FFFFFF"><tr bgcolor="#FFFFCC">
186 tim 379
187 tim 377 <td width="113">select 20 </td>
188 tim 379
189 tim 377 <td width="520">select stuntdoubles which global index is 20 </td>
190 tim 379
191 tim 377 </tr>
192 tim 379
193 tim 377 <tr bgcolor="#FFFFCC">
194 tim 379
195 tim 377 <td>select 20 to 30 </td>
196 tim 379
197 tim 377 <td>select stuntdoubles which global indices are between 20 (inclusive) and 30 (exclusive) </td>
198 tim 379
199 tim 377 </tr>
200 tim 379
201 tim 377 </table>
202 tim 379
203 tim 377 </ul>
204    
205 tim 379
206    
207 tim 377 <p>&nbsp; </p>
208 tim 379
209 tim 377 <p><a name="predefine" id="predefine"><b> Predefine set </b></a></p>
210 tim 379
211 tim 377 <ul>
212 tim 379
213 tim 377 <table width="449" border=1 cellpadding=5 bgcolor="#FFFFFF">
214 tim 379
215 tim 377 <tr bgcolor="#FFCCFF">
216 tim 379
217 tim 377 <td width="91"><div align="left">keyword</div></td>
218 tim 379
219 tim 377 <td width="332"><div align="left">description</div></td>
220 tim 379
221 tim 377 </tr>
222 tim 379
223 tim 377 <tr bgcolor="#FFCCFF">
224 tim 379
225 tim 377 <td><div align="left">all</div></td>
226 tim 379
227 tim 377 <td><div align="left">select all stuntdoubles</div></td>
228 tim 379
229 tim 377 </tr>
230 tim 379
231 tim 377 <tr bgcolor="#FFCCFF">
232 tim 379
233 tim 377 <td><div align="left">none</div></td>
234 tim 379
235 tim 377 <td><div align="left">select none of the stuntdoubles </div></td>
236 tim 379
237 tim 377 </tr>
238 tim 379
239 tim 377 <tr bgcolor="#FFCCFF">
240 tim 379
241 tim 377 <td><div align="left">rigidbody</div></td>
242 tim 379
243 tim 377 <td><div align="left">select all rigid-bodies</div></td>
244 tim 379
245 tim 377 </tr>
246 tim 379
247 tim 377 </table>
248 tim 379
249 tim 377 </ul>
250 tim 379
251 tim 377 <p>&nbsp;</p>
252 tim 379
253 tim 377 <p><a name="user" id="user"><b> User define expression.</b></a></p>
254 tim 379
255 tim 377 <p> User can define arbitrary terms to represent groups of stuntdoubles, and then use the terms you have defined in select commands. The general form for the define command is: <strong>define <em>term expression</em></strong></p>
256 tim 379
257 tim 377 <p> Once defined, user can use such terms in boolean expressions </p>
258 tim 379
259 tim 377 <ul>
260 tim 379
261 tim 377 <table width="659" border=1 cellpadding=5 bgcolor="#FFFFFF">
262 tim 379
263 tim 377 <tr bgcolor="#FFFFCC">
264 tim 379
265 tim 377 <td><p>define SSDWATER SSD or SSD1 or SSDRF</p>
266 tim 379
267 tim 377 <p>select SSDWATER </p> <div align="left"></div></td>
268 tim 379
269 tim 377 </tr>
270 tim 379
271 tim 377 </table>
272 tim 379
273 tim 377 </ul>
274 tim 379
275 tim 377 <p><a name="comparison" id="comparison"> <b>Comparison expression.</b></a></p>
276 tim 379
277 tim 377 <p>Stuntdoubles can be distinguished using comparision operators on their properties. The general form for the comparison command is: a property name, followed by a comparision operator and then a number.</p>
278 tim 379
279 tim 377 <ul>
280 tim 379
281 tim 377 <table width="668" border=1 cellpadding=5 bgcolor="#FFFFFF">
282 tim 379
283 tim 377 <tr bgcolor="#FFCCFF">
284 tim 379
285 tim 377 <td width="305"><div align="left">property</div></td>
286 tim 379
287 tim 377 <td width="331"><div align="left">mass, dipole, charge </div></td>
288 tim 379
289 tim 377 </tr>
290 tim 379
291 tim 377 <tr bgcolor="#FFCCFF">
292 tim 379
293 tim 377 <td><div align="left">comparision operator</div></td>
294 tim 379
295 tim 377 <td><div align="left">&quot;&gt;&quot;, &quot;&lt;&quot;, &quot;=&quot;, &quot;&gt;=&quot;, &quot;&lt;=&quot;, &quot;!=&quot; </div></td>
296 tim 379
297 tim 377 </tr>
298 tim 379
299 tim 377 </table>
300 tim 379
301 tim 377 </ul>
302 tim 379
303 tim 377 <ul>
304 tim 379
305 tim 377 <table width="672" border=1 cellpadding=5 bgcolor="#FFFFFF">
306 tim 379
307 tim 377 <tr bgcolor="#FFFFCC">
308 tim 379
309 tim 377 <td width="302">select mass &gt; 16.0 and charge &lt; -2 </td>
310 tim 379
311 tim 377 <td width="338">select stuntdoubles which mass is great than 16.0 and charge is less than -2 </td>
312 tim 379
313 tim 377 </tr>
314 tim 379
315 tim 377 </table>
316 tim 379
317 tim 377 </ul>
318 tim 379
319 tim 377 <p>&nbsp;</p>
320 tim 379
321 tim 377 <p><b> <a name="within"></a> Within expression.</b>
322 tim 379
323 tim 377 <p> Within selection selects all stuntdoubles within the specified distance (in ?) from a selection, including the selection itself. The general form for within selection is: <b>select within(<i>distance, expression</i>) </b>
324 tim 379
325 tim 377 <ul>
326 tim 379
327     <table width="681" border=1 cellpadding=5 bgcolor="#FFFFFF">
328    
329 tim 377 <tr bgcolor="#FFFFCC">
330 tim 379
331     <td width="306">select within(2.5, PO4 or NC4) </td>
332    
333     <td width="343"><blockquote>select stunntdoules which are within 2.5 ? from either PO4 or NC4 </blockquote></td>
334    
335 tim 377 </tr>
336     </table>
337 tim 379
338 tim 377 </ul>
339 tim 379
340 tim 377 <p>
341 tim 379
342     <h2><a name="syntax" id="syntax"> Tools using selection command </a></h2>
343     <p><b><a name="within"></a> Dump2XYZ</b>
344     <p>Dump2XYZ can transform an OOPSE dump file into a xyz file which could be opened by other molecular viewers, such as Jmol and VMD.
345     <ul>
346     <table width="890" border=1 cellpadding=5 bgcolor="#FFFFFF">
347     <tr bgcolor="#6699FF">
348     <td width="191"><blockquote>
349     <p>--selection</p>
350     </blockquote></td>
351     <td width="667">Specifying --selection=&quot;selection command&quot; with Dump2XYZ, user can select an arbitrary set of stuntdoubles to be converted. </td>
352     </tr>
353     <tr bgcolor="#CCFF99">
354     <td><blockquote>
355     <p>--originsele</p>
356     </blockquote></td>
357     <td rowspan="2">In order to rotate the system, --originsele and --refselec must be given to define the new coordinate set. A stuntdouble with a dipole, which direction is always (0, 0, 1) in body frame, is specified by --originsele. The new x-z plane is defined by the direction of dipole and the stuntdouble specified by --refsele. </td>
358     </tr>
359     <tr bgcolor="#CCFF99">
360     <td><blockquote>
361     <p>--refsele</p>
362     </blockquote></td>
363     </tr>
364     </table>
365     </ul>
366     <p>
367     <p><b><a name="within"></a> StaticProps</b>
368     <p>
369     <p align="center"><img src="definition.jpg" width="720" height="540">
370     <p align="left">There are five seperate radial distribution functions availiable in OOPSE. Since every radial distrbution function invlove the calculation between a pair, --sele1 and --sele2 must be given.
371     <ul>
372     <table width="890" border=1 cellpadding=5 bgcolor="#FFFFFF">
373     <tr bgcolor="#CCFFCC">
374     <td width="191"><blockquote>
375     <p>option</p>
376     </blockquote></td>
377     <td width="667"><blockquote>
378     <div align="center">description</div>
379     </blockquote></td>
380     </tr>
381     <tr bgcolor="#CCFFCC">
382     <td><blockquote>
383     <p>--gofr</p>
384     </blockquote></td>
385     <td>normal pair distribution function.</td>
386     </tr>
387     <tr bgcolor="#CCFFCC">
388     <td><blockquote>
389     <p>--r_theta</p>
390     </blockquote></td>
391     <td>Calculate angle dependent pair distribution function. The angle is defined by r and A's dipole moment. </td>
392     </tr>
393     <tr bgcolor="#CCFFCC">
394     <td><blockquote>
395     <p>--r_omega</p>
396     </blockquote></td>
397     <td>Calculate angle dependent pair distribution function. The angle is defined by A's dipole moment and B's dipole moment . </td>
398     </tr>
399     <tr bgcolor="#CCFFCC">
400     <td><blockquote>
401     <p>--theta_omega</p>
402     </blockquote></td>
403     <td>Calculate the two dimension distribution of two angles.</td>
404     </tr>
405     <tr bgcolor="#CCFFCC">
406     <td><blockquote>
407     <p>--gxyz</p>
408     </blockquote></td>
409     <td>Calculate the three dimension distribution of the particle B in the body frame of particle A. Therefore, --originsele and --refsele must be given to define the A's internal coordinate set. </td>
410     </tr>
411     </table>
412     </ul>
413     <p>&nbsp; </p>
414     <p><b><a name="within"></a> DynamicProps </b>
415     <ul>
416     <table width="890" border=1 cellpadding=5 bgcolor="#FFFFFF">
417     <tr bgcolor="#CCFFCC">
418     <td width="191"> <p align="center">option</p></td>
419     <td width="667"><blockquote>
420     <div align="center">description</div>
421     </blockquote></td>
422     </tr>
423     <tr bgcolor="#CCFFCC">
424     <td> <p align="center">--rcorr</p></td>
425     <td>mean square displacement </td>
426     </tr>
427     <tr bgcolor="#CCFFCC">
428     <td> <p align="center">--vcorr</p></td>
429     <td>velocity correlation function</td>
430     </tr>
431     <tr bgcolor="#CCFFCC">
432     <td> <p align="center">--dcorr</p></td>
433     <td>dipole correlation function </td>
434     </tr>
435     </table>
436     </ul>
437     <p>
438 tim 377 </body>
439 tim 379
440 tim 377 </html>
441 tim 379

Properties

Name Value
svn:executable *