File: pair_bop.html

package info (click to toggle)
liggghts 3.0.3%2Brepack-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 106,076 kB
  • ctags: 34,406
  • sloc: cpp: 363,723; python: 21,138; ansic: 9,146; perl: 3,687; sh: 2,841; fortran: 2,802; xml: 788; makefile: 485; objc: 238; lisp: 169; f90: 145; csh: 16; awk: 14
file content (452 lines) | stat: -rw-r--r-- 17,818 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A> 
</CENTER>






<HR>

<H3>pair_style bop command 
</H3>
<P><B>Syntax:</B>
</P>
<PRE>pair_style bop keyword ... 
</PRE>
<UL><LI>zero or more keywords may be appended 

<LI>keyword = <I>table</I> or <I>save</I> or <I>sigmaoff</I> 

<PRE>  <I>table</I> = BOP potential file has tabulated form
  <I>save</I> = pre-compute and save some values
  <I>sigmaoff</I> = assume a_sigma = 0 
</PRE>

</UL>
<P><B>Examples:</B>
</P>
<PRE>pair_style bop
pair_coeff * * ../potentials/CdTe_bop Cd Te
pair_style bop table save
pair_coeff * * ../potentials/CdTe.bop.table Cd Te Te
communicate single cutoff 14.70 
</PRE>
<P><B>Description:</B>
</P>
<P>The <I>bop</I> pair style computes Bond-Order Potentials (BOP) based on
quantum mechanical theory incorporating both sigma and pi bondings.
By analytically deriving the BOP from quantum mechanical theory its
transferability to different phases can approach that of quantum
mechanical methods.  This particlular BOP is extremely effective at
modeling III-V and II-VI compounds such as GaAs and CdTe.  This
potential is similar to the original BOP developed by Pettifor
(<A HREF = "#Pettifor_1">Pettifor_1</A>, <A HREF = "#Pettifor_2">Pettifor_2</A>,
<A HREF = "#Pettifor_3">Pettifor_3</A>) and later updated by Murdick, Zhou, and Ward
(<A HREF = "#Murdick">Murdick</A>, <A HREF = "#Ward">Ward</A>).
</P>
<P>The BOP potential consists of three terms:
</P>
<CENTER><IMG SRC = "Eqs/pair_bop.jpg">
</CENTER>
<P>where phi_ij(r_ij) is a short-range two-body function representing the
repulsion between a pair of ion cores, beta_(sigma,ij)(r_ij) and
beta_(sigma,ij)(r_ij) are respectively sigma and pi bond ingtegrals,
THETA_(sigma,ij) and THETA_(pi,ij) are sigma and pi bond-orders, and
U_prom is the promotion energy for sp-valent systems.
</P>
<P>The detailed formulas for this potential are given in Ward
(<A HREF = "#Ward">Ward</A>); here we provide only a brief description.
</P>
<P>The repulsive energy phi_ij(r_ij) and the bond integrals
beta_(sigma,ij)(r_ij) and beta_(phi,ij)(r_ij) are functions of the
interatomic distance r_ij between atom i and j.  Each of these
potentials has a smooth cutoff at a radius of r_(cut,ij).  These
smooth cutoffs ensure stable behavior at situations with high sampling
near the cutoff such as melts and surfaces.
</P>
<P>The bond-orders can be viewed as environment-dependent local variables
that are ij bond specific.  The maximum value of the sigma bond-order
(THETA_sigma) is 1, while that of the pi bond-order (THETA_pi) is 2,
attributing to a maximum value of the total bond-order
(THETA_sigma+THETA_pi) of 3.  The sigma and pi bond-orders reflect the
ubiquitous single-, double-, and triple- bond behavior of
chemistry. Their analytical expressions can be derived from tight-
binding theory by recursively expanding an inter-site Green's function
as a continued fraction. To accurately represent the bonding with a
computationally efficient potential formulation suitable for MD
simulations, the derived BOP only takes (and retains) the first two
levels of the recursive representations for both the sigma and the pi
bond-orders. Bond-order terms can be understood in terms of molecular
orbital hopping paths based upon the Cyrot-Lackmann theorem
(<A HREF = "#Pettifor_1">Pettifor_1</A>).  The sigma bond-order with a half-full
valence band filling.  This pi bond-order expression also contains
also contains a three-member ring term that allows implementation of
an asymmetric density of states, which helps to either stabilize or
destabilize close-packed structures.  The pi bond-order includes
hopping paths of length 4.  This enables the incorporation of dihedral
angles effects.
</P>
<P>The cutoffs for the various interactions are defined in the BOP
potential file.
</P>
<P>IMPORTANT NOTE: You must use the <A HREF = "communicate.html">communicate cutoff</A>
command to insure ghost atoms are acquired at a distance 3x further
than the largest BOP cutoff (for a particular pair of elements).
E.g. if the BOP cutoff is 4.9 Angstroms, then the ghost atom
communication needs to be 14.7 Angstroms or greater as in the example
above.  This is because the BOP formulation uses neighbors of
neighbors of neighbors to enumerate all the required many-body
interactions.  LAMMPS will generate an error if you do not use an
appropriate setting for the <A HREF = "communicate.html">communicate cutoff</A>
command.
</P>
<P>Several options can be specified as keywords with the pair_style
command.
</P>
<P>The <I>table</I> keyword tells LAMMPS what format the BOP potential file is
in.  The default is a non-tabulated form.  If the <I>table</I> keyword is
used, the file is in a tabulated form containing pre-tabulated pair
functions for phi_ij(r_ij), beta_(sigma,ij)(r_ij), and
beta_(pi,ij)(r_ij).  This allows you to use your own functional
form for various interactions.
</P>
<P>The <I>save</I> keyword gives you the option to calculate and store in
advance a set of distances, angles, and derivatives of angles.  The
default is to not do this, but to calculate the various quantities
on-the-fly each time they are needed.  The former may be faster, but
takes more memory.  The latter requires less memory, but may be
slower.  It is best to test this option to see if it makes a
difference on your machine for the specific problem you are modeling.
</P>
<P>The <I>sigmaoff</I> keyword optimizes the BOP equations for the case of
a_sigma = 0.  For some published BOP potentials, a_sigma = 0 and
several terms in the BOP equationas drop out.  If this is the case,
specifying <I>sigmaoff</I> will typically speed up the BOP pair style.
</P>
<HR>

<P>Only a single pair_coeff command is used with the <I>bop</I> style which
specifies a BOP potential file, with parameters for all needed
elements.  These are mapped to LAMMPS atom types by specifying
N additional arguments after the filename in the pair_coeff command,
where N is the number of LAMMPS atom types:
</P>
<UL><LI>filename
<LI>N element names = mapping of BOP elements to atom types 
</UL>
<P>See the <A HREF = "pair_coeff.html">pair_coeff</A> doc page for alternate ways
to specify the path for the potential file.
</P>
<P>As an example, imagine the CdTe.bop file has BOP values for Cd
and Te.  If your LAMMPS simulation has 4 atoms types and you want the
1st 3 to be Cd, and the 4th to be Te, you would use the following
pair_coeff command:
</P>
<PRE>pair_coeff * * CdTe Cd Cd Cd Te 
</PRE>
<P>The 1st 2 arguments must be * * so as to span all LAMMPS atom types.
The first three Cd arguments map LAMMPS atom types 1,2,3 to the Cd
element in the BOP file.  The final Te argument maps LAMMPS atom type
4 to the Te element in the BOP file.  If a mapping value is specified
as NULL, the mapping is not performed.  This can be used when a
<I>bop</I> potential is used as part of the <I>hybrid</I> pair style.  The
NULL values are placeholders for atom types that will be used with
other potentials.
</P>
<P>BOP files in the <I>potentials</I> directory of the LAMMPS distribution
have a ".bop" or ".bop.table" suffix, depending on whether they are of
the non-tabulated or tabulated form, as described above.
</P>
<P>The parameters/coefficients format for the both kinds of BOP files are
given below with variables matching the formulation of Ward
(<A HREF = "#Ward">Ward</A>). Each header line containing a ":" is preceded by a
blank line.
</P>
<UL><LI>Line 1: elements: (header)
<LI>Line 2: #elements <I>N</I> 
</UL>
<P>The first two lines are followed by N lines containing the atomic 
number and mass of each element.
</P>
<HR>

<P><B>Non-tabulated potential file format</B>:
</P>
<P>Following the definition of the elements is the block of global 
variables for spline and quadratic fits of THETA_(S,ij) and its 
components THETA_0, THETA_1, and S.
</P>
<UL><LI>Line 1: global: (header) 

<LI>Line 2: delta_1-delta_7 (if all are not used in the particular 
formulation, set unused values to 0.0) 

<LI>Line 3: ncutoff, r_big, r_small (r_big and r_small are parameters for 
pairwise paramters gamma typically set to 0.99 and 0.01, respectively) 

<LI>Line 4: which, alpha, nfunc (these are options for the spline 
which=1.0 (means using a smooth function); which=2.0 (spline), alpha is 
a parameter in the spline, nfunc is the type of GSP function (f_ij) 
(nfunc=1 is the published equation from Ward (<A HREF = "#Ward">Ward</A>); nfunc=2 
f_ij(r_ij)=exp(n_ij*r_ij); nfunc=3 f_ij(r_ij)=1/(r_ij)^(n_ij)). 

<LI>Line 5: alpha_1, beta_1, gamma_1 (alpha_1=first coefficient for 
THETA_0; beta_1=first exponent for THETA_0; gamma_1=second exponent for
THETA_0) 

<LI>Line 6: alpha_2, beta_2 (alpha_2=second coefficient for S; beta_2=first 
exponent for S) 

<LI>Line 7: alpha_3, beta_3 (alpha_3=first coefficient for THETA_1; 
beta_3=second coefficient for THETA_1) 
</UL>
<P>The next block contains constants for the environment depend
promotional energy for sp-valent systems, each of which are species
dependent.  Refer to Pettifor (<A HREF = "#Pettifor_3">Pettifor_3</A>) for constant
definitions.  As well as one species dependent parameter p_pi.
</P>
<UL><LI>Line 1: ptrs: (header) 
</UL>
<P>Following the ptrs header there are N lines for e_1-e_N containing 
(A_ij)^(mu*nu), delta^mu, p_pi
</P>
<UL><LI>Line 2: (A_ij)^(mu*nu), delta^mu, p_pi (for e_1)
<LI>Line 3: (A_ij)^(mu*nu), delta^mu, p_pi (for e_2 and continues to e_N) 
</UL>
<P>The next block contains constants for the pair interactions.
</P>
<UL><LI>Line 1: pairs: (header) 
</UL>
<P>Following the header the block contains a series of constants for the 
number of pair interaction types, the block will be broken up into 
parameters for e_i-e_j with i=0->N, j=i->N.  Each single interaction 
section for this block will contain (see <A HREF = "#Ward">Ward</A> for parameter 
definitions):
</P>
<UL><LI>Line 2: r_0, r_c, r_1, r_cut (for e_1-e_2 interactions) 

<LI>Line 3: m, n, n_c 

<LI>Line 4: phi_0, beta_(sigma,0), beta_(pi,0) 

<LI>Line 5: a_sigma, c_sigma, delta_sigma (From complete formulation of 1/2 
full valance shell for this particular formulation delta_sigma=0) 

<LI>Line 6: a_pi, c_pi, delta_pi 

<LI>Line 7: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of 
the previous section but is interaction type dependent) 

<LI>Line 8: r_0, r_c, r_1, r_cut (for e_1-e_2 interactions and repeats as 
above) 
</UL>
<P>The next block contains tris.
</P>
<UL><LI>Line 1: tris: (header) 
</UL>
<P>Following the header there is a line for each three body interaction 
types as e_j-e_i-e_k with i->N, j->N, k=j->N
</P>
<UL><LI>Line 2: g_sigma0, g_sigma1, g_sigma2 (these are coefficients for 
g_(sigma,ijk)(theta_ijk) for e_1-e_1-e_1 interaction.  <A HREF = "#Ward">Ward</A> 
contains the full expressions for the constants as functions of 
b_(sigma,ijk), p_(sigma,ijk), u(sigma,ijk) 

<LI>Line 3: g_sigma0, g_sigma1, g_sigma2 (for e_1-e_1-e_2) 
</UL>
<P>This would be the end of the potential parameter file without pre-
tabulated data.
</P>
<HR>

<P><B>Tabulated potential file format</B>:
</P>
<P>The parameters/coefficients format for the BOP potentials input file 
containing pre-tabulated functions of is given below with variables 
matching the formulation of Ward (<A HREF = "#Ward">Ward</A>).
</P>
<UL><LI>Line 1: # elements N 
</UL>
<P>The first two lines are followed by N lines containing the atomic 
number and mass of each element THETA_0 and THETA_1 (see 
<A HREF = "#Ward">Ward</A>).
</P>
<P>Following the definition of the elements several global variables for 
the tabulated functions are given.
</P>
<UL><LI>Line 1: nr, nBOt (nr is the number of divisions the radius is broken 
into for function tables and MUST be a factor of 5; nBOt is the number 
of divisions for the tabulated values of THETA_(S,ij) 

<LI>Line 2: delta_1-delta_7 (if all are not used in the particular  

<LI>formulation, set unused values to 0.0) 
</UL>
<P>Following this N lines for e_1-e_N containing p_pi.
</P>
<UL><LI>Line 3: p_pi (for e_1)
<LI>Line 4: p_pi (for e_2 and continues to e_N) 
</UL>
<P>The next section contains several pair constants for the number of 
interaction types e_i-e_j, with i=1->N, j=i->N
</P>
<UL><LI>Line 1: r_cut (for e_1-e_1 interactions) 

<LI>Line 2: c_sigma, a_sigma, c_pi, a_pi 

<LI>Line 3: delta_sigma, delta_pi 

<LI>Line 4: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of 
the previous section but is interaction type dependent) 
</UL>
<P>The next section contains a line for each three body interaction type 
e_j-e_i-e_k with i=0->N, j=0->N, k=j->N
</P>
<UL><LI>Line 1: g_(sigma0), g_(sigma1), g_(sigma2) (These are coefficients for 
g_(sigma,jik)(THETA_ijk) for e_1-e_1-e_1 interaction. <A HREF = "#Ward">Ward</A> 
contains the full expressions for the constants as functions of 
b_(sigma,ijk), p_(sigma,ijk), u_(sigma,ijk)) 

<LI>Line 2: g_(sigma0), g_(sigma1), g_(sigma2) (for e_1-e_1-e_2) 
</UL>
<P>The next section contains a block for each interaction type for the 
phi_ij(r_ij).  Each block has nr entries with 5 entries per line.
</P>
<UL><LI>Line 1: phi(r1), phi(r2), phi(r3), phi(r4), phi(r5) (for the e_1-e_1 
interaction type) 

<LI>Line 2: phi(r6), phi(r7), phi(r8), phi(r9), phi(r10) (this continues 
until nr) 

<LI>... 

<LI>Line nr/5_1: phi(r1), phi(r2), phi(r3), phi(r4), phi(r5), (for the 
e_1-e_1 interaction type) 
</UL>
<P>The next section contains a block for each interaction type for the 
beta_(sigma,ij)(r_ij).  Each block has nr entries with 5 entries per 
line.
</P>
<UL><LI>Line 1: beta_sigma(r1), beta_sigma(r2), beta_sigma(r3), beta_sigma(r4), 
beta_sigma(r5) (for the e_1-e_1 interaction type) 

<LI>Line 2: beta_sigma(r6), beta_sigma(r7), beta_sigma(r8), beta_sigma(r9), 
beta_sigma(r10) (this continues until nr) 

<LI>... 

<LI>Line nr/5+1: beta_sigma(r1), beta_sigma(r2), beta_sigma(r3), 
beta_sigma(r4), beta_sigma(r5) (for the e_1-e_2 interaction type) 
</UL>
<P>The next section contains a block for each interaction type for 
beta_(pi,ij)(r_ij).  Each block has nr entries with 5 entries per line.
</P>
<UL><LI>Line 1: beta_pi(r1), beta_pi(r2), beta_pi(r3), beta_pi(r4), beta_pi(r5) 
(for the e_1-e_1 interaction type) 

<LI>Line 2: beta_pi(r6), beta_pi(r7), beta_pi(r8), beta_pi(r9), 
beta_pi(r10) (this continues until nr) 

<LI>... 

<LI>Line nr/5+1: beta_pi(r1), beta_pi(r2), beta_pi(r3), beta_pi(r4), 
beta_pi(r5) (for the e_1-e_2 interaction type) 
</UL>
<P>The next section contains a block for each interaction type for the 
THETA_(S,ij)((THETA_(sigma,ij))^(1/2), f_(sigma,ij)).  Each block has 
nBOt entries with 5 entries per line.
</P>
<UL><LI>Line 1: THETA_(S,ij)(r1), THETA_(S,ij)(r2), THETA_(S,ij)(r3), 
THETA_(S,ij)(r4), THETA_(S,ij)(r5) (for the e_1-e_2 interaction type) 

<LI>Line 2: THETA_(S,ij)(r6), THETA_(S,ij)(r7), THETA_(S,ij)(r8), 
THETA_(S,ij)(r9), THETA_(S,ij)(r10) (this continues until nBOt) 

<LI>... 

<LI>Line nBOt/5+1: THETA_(S,ij)(r1), THETA_(S,ij)(r2), THETA_(S,ij)(r3), 
THETA_(S,ij)(r4), THETA_(S,ij)(r5) (for the e_1-e_2 interaction type) 
</UL>
<P>The next section contains a block of N lines for e_1-e_N
</P>
<UL><LI>Line 1: delta^mu (for e_1)
<LI>Line 2: delta^mu (for e_2 and repeats to e_N) 
</UL>
<P>The last section contains more constants for e_i-e_j interactions with 
i=0->N, j=i->N
</P>
<UL><LI>Line 1: (A_ij)^(mu*nu) (for e1-e1)
<LI>Line 2: (A_ij)^(mu*nu) (for e1-e2 and repeats as above) 
</UL>
<HR>

<P><B>Mixing, shift, table tail correction, restart</B>:
</P>
<P>This pair style does not support the <A HREF = "pair_modify.html">pair_modify</A>
mix, shift, table, and tail options.
</P>
<P>This pair style does not write its information to <A HREF = "restart.html">binary restart
files</A>, since it is stored in potential files.  Thus, you
need to re-specify the pair_style and pair_coeff commands in an input
script that reads a restart file.
</P>
<P>This pair style can only be used via the <I>pair</I> keyword of the
<A HREF = "run_style.html">run_style respa</A> command.  It does not support the
<I>inner</I>, <I>middle</I>, <I>outer</I> keywords.
</P>
<HR>

<P><B>Restrictions:</B>
</P>
<P>These pair styles are part of the MANYBODY package.  They are only 
enabled if LAMMPS was built with that package (which it is by default).  
See the <A HREF = "Section_start.html#start_3">Making LAMMPS</A> section for more 
info.
</P>
<P>These pair potentials require the <A HREF = "newton.html">newtion</A> setting to be 
"on" for pair interactions.
</P>
<P>The CdTe.bop and GaAs.bop potential files provided with LAMMPS (see the 
potentials directory) are parameterized for metal <A HREF = "units.html">units</A>.  
You can use the BOP potential with any LAMMPS units, but you would need 
to create your own BOP potential file with coefficients listed in the 
appropriate units if your simulation does not use "metal" units.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "pair_coeff.html">pair_coeff</A>
</P>
<P><B>Default:</B>
</P>
<P>non-tabulated potential file, a_0 is non-zero.
</P>
<HR>

<A NAME = "Pettofor_1"></A>

<P><B>(Pettifor_1)</B> D.G. Pettifor and I.I. Oleinik, Phys. Rev. B, 59, 8487 
(1999).
</P>
<A NAME = "Pettofor_2"></A>

<P><B>(Pettifor_2)</B> D.G. Pettifor and I.I. Oleinik, Phys. Rev. Lett., 84, 
4124 (2000).
</P>
<A NAME = "Pettofor_3"></A>

<P><B>(Pettifor_3)</B> D.G. Pettifor and I.I. Oleinik, Phys. Rev. B, 65, 172103 
(2002).
</P>
<A NAME = "Murdick"></A>

<P><B>(Murdick)</B> D.A. Murdick, X.W. Zhou, H.N.G. Wadley, D. Nguyen-Manh, R. 
Drautz, and D.G. Pettifor, Phys. Rev. B, 73, 45206 (2006).
</P>
<A NAME = "Ward"></A>

<P><B>(Ward)</B> D.K. Ward, X.W. Zhou, B.M. Wong, F.P. Doty, and J.A. 
Zimmerman, Phys. Rev. B, 85,115206 (2012).
</P>
</HTML>