added ExTeP to USER-MISC
This commit is contained in:
@ -1045,6 +1045,7 @@ package"_Section_start.html#start_3.
|
|||||||
"edpd"_pair_meso.html,
|
"edpd"_pair_meso.html,
|
||||||
"eff/cut"_pair_eff.html,
|
"eff/cut"_pair_eff.html,
|
||||||
"exp6/rx"_pair_exp6_rx.html,
|
"exp6/rx"_pair_exp6_rx.html,
|
||||||
|
"extep"_pair_extep.html,
|
||||||
"gauss/cut"_pair_gauss.html,
|
"gauss/cut"_pair_gauss.html,
|
||||||
"kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html,
|
"kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html,
|
||||||
"lennard/mdf"_pair_mdf.html,
|
"lennard/mdf"_pair_mdf.html,
|
||||||
|
|||||||
@ -443,6 +443,7 @@ pair_edip.html
|
|||||||
pair_eff.html
|
pair_eff.html
|
||||||
pair_eim.html
|
pair_eim.html
|
||||||
pair_exp6_rx.html
|
pair_exp6_rx.html
|
||||||
|
pair_extep.html
|
||||||
pair_gauss.html
|
pair_gauss.html
|
||||||
pair_gayberne.html
|
pair_gayberne.html
|
||||||
pair_gran.html
|
pair_gran.html
|
||||||
|
|||||||
40
doc/src/pair_extep.txt
Normal file
40
doc/src/pair_extep.txt
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||||
|
|
||||||
|
:link(lws,http://lammps.sandia.gov)
|
||||||
|
:link(ld,Manual.html)
|
||||||
|
:link(lc,Section_commands.html#comm)
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
|
pair_style extep command :h3
|
||||||
|
|
||||||
|
[Syntax:]
|
||||||
|
|
||||||
|
pair_style extep :pre
|
||||||
|
|
||||||
|
[Examples:]
|
||||||
|
|
||||||
|
pair_style extep
|
||||||
|
pair_coeff * * BN.extep B N :pre
|
||||||
|
|
||||||
|
[Description:]
|
||||||
|
|
||||||
|
Style {extep} computes the Extended Tersoff Potential (ExTeP)
|
||||||
|
interactions as described in "(Los2017)"_#Los2017.
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
|
[Restrictions:] none
|
||||||
|
|
||||||
|
[Related commands:]
|
||||||
|
|
||||||
|
"pair_tersoff" pair_tersoff.html
|
||||||
|
|
||||||
|
[Default:] none
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
|
:link(Los2017)
|
||||||
|
[(Los2017)] J. H. Los et al. "Extended Tersoff potential for boron nitride:
|
||||||
|
Energetics and elastic properties of pristine and defective h-BN",
|
||||||
|
Phys. Rev. B 96 (184108), 2017.
|
||||||
@ -32,6 +32,7 @@ Pair Styles :h1
|
|||||||
pair_eff
|
pair_eff
|
||||||
pair_eim
|
pair_eim
|
||||||
pair_exp6_rx
|
pair_exp6_rx
|
||||||
|
pair_extep
|
||||||
pair_gauss
|
pair_gauss
|
||||||
pair_gayberne
|
pair_gayberne
|
||||||
pair_gran
|
pair_gran
|
||||||
|
|||||||
116
examples/USER/misc/extep/BN.data
Normal file
116
examples/USER/misc/extep/BN.data
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
info: BN sample with r_BN=1.45
|
||||||
|
|
||||||
|
100 atoms
|
||||||
|
2 atom types
|
||||||
|
|
||||||
|
0.0 21.75000000 xlo xhi
|
||||||
|
0.0 12.55736835 ylo yhi
|
||||||
|
0.0 50.00000000 zlo zhi
|
||||||
|
|
||||||
|
Masses
|
||||||
|
|
||||||
|
1 10.811
|
||||||
|
2 14.0067
|
||||||
|
|
||||||
|
Atoms
|
||||||
|
|
||||||
|
1 1 0.00000000 0.00000000 0.00000000
|
||||||
|
2 2 1.45000000 0.00000000 0.00000000
|
||||||
|
3 1 2.17500000 1.25573684 0.00000000
|
||||||
|
4 2 3.62500000 1.25573684 0.00000000
|
||||||
|
5 1 0.00000000 2.51147367 0.00000000
|
||||||
|
6 2 1.45000000 2.51147367 0.00000000
|
||||||
|
7 1 2.17500000 3.76721051 0.00000000
|
||||||
|
8 2 3.62500000 3.76721051 0.00000000
|
||||||
|
9 1 0.00000000 5.02294734 0.00000000
|
||||||
|
10 2 1.45000000 5.02294734 0.00000000
|
||||||
|
11 1 2.17500000 6.27868418 0.00000000
|
||||||
|
12 2 3.62500000 6.27868418 0.00000000
|
||||||
|
13 1 0.00000000 7.53442101 0.00000000
|
||||||
|
14 2 1.45000000 7.53442101 0.00000000
|
||||||
|
15 1 2.17500000 8.79015785 0.00000000
|
||||||
|
16 2 3.62500000 8.79015785 0.00000000
|
||||||
|
17 1 0.00000000 10.04589468 0.00000000
|
||||||
|
18 2 1.45000000 10.04589468 0.00000000
|
||||||
|
19 1 2.17500000 11.30163152 0.00000000
|
||||||
|
20 2 3.62500000 11.30163152 0.00000000
|
||||||
|
21 1 4.35000000 0.00000000 0.00000000
|
||||||
|
22 2 5.80000000 0.00000000 0.00000000
|
||||||
|
23 1 6.52500000 1.25573684 0.00000000
|
||||||
|
24 2 7.97500000 1.25573684 0.00000000
|
||||||
|
25 1 4.35000000 2.51147367 0.00000000
|
||||||
|
26 2 5.80000000 2.51147367 0.00000000
|
||||||
|
27 1 6.52500000 3.76721051 0.00000000
|
||||||
|
28 2 7.97500000 3.76721051 0.00000000
|
||||||
|
29 1 4.35000000 5.02294734 0.00000000
|
||||||
|
30 2 5.80000000 5.02294734 0.00000000
|
||||||
|
31 1 6.52500000 6.27868418 0.00000000
|
||||||
|
32 2 7.97500000 6.27868418 0.00000000
|
||||||
|
33 1 4.35000000 7.53442101 0.00000000
|
||||||
|
34 2 5.80000000 7.53442101 0.00000000
|
||||||
|
35 1 6.52500000 8.79015785 0.00000000
|
||||||
|
36 2 7.97500000 8.79015785 0.00000000
|
||||||
|
37 1 4.35000000 10.04589468 0.00000000
|
||||||
|
38 2 5.80000000 10.04589468 0.00000000
|
||||||
|
39 1 6.52500000 11.30163152 0.00000000
|
||||||
|
40 2 7.97500000 11.30163152 0.00000000
|
||||||
|
41 1 8.70000000 0.00000000 0.00000000
|
||||||
|
42 2 10.15000000 0.00000000 0.00000000
|
||||||
|
43 1 10.87500000 1.25573684 0.00000000
|
||||||
|
44 2 12.32500000 1.25573684 0.00000000
|
||||||
|
45 1 8.70000000 2.51147367 0.00000000
|
||||||
|
46 2 10.15000000 2.51147367 0.00000000
|
||||||
|
47 1 10.87500000 3.76721051 0.00000000
|
||||||
|
48 2 12.32500000 3.76721051 0.00000000
|
||||||
|
49 1 8.70000000 5.02294734 0.00000000
|
||||||
|
50 2 10.15000000 5.02294734 0.00000000
|
||||||
|
51 1 10.87500000 6.27868418 0.00000000
|
||||||
|
52 2 12.32500000 6.27868418 0.00000000
|
||||||
|
53 1 8.70000000 7.53442101 0.00000000
|
||||||
|
54 2 10.15000000 7.53442101 0.00000000
|
||||||
|
55 1 10.87500000 8.79015785 0.00000000
|
||||||
|
56 2 12.32500000 8.79015785 0.00000000
|
||||||
|
57 1 8.70000000 10.04589468 0.00000000
|
||||||
|
58 2 10.15000000 10.04589468 0.00000000
|
||||||
|
59 1 10.87500000 11.30163152 0.00000000
|
||||||
|
60 2 12.32500000 11.30163152 0.00000000
|
||||||
|
61 1 13.05000000 0.00000000 0.00000000
|
||||||
|
62 2 14.50000000 0.00000000 0.00000000
|
||||||
|
63 1 15.22500000 1.25573684 0.00000000
|
||||||
|
64 2 16.67500000 1.25573684 0.00000000
|
||||||
|
65 1 13.05000000 2.51147367 0.00000000
|
||||||
|
66 2 14.50000000 2.51147367 0.00000000
|
||||||
|
67 1 15.22500000 3.76721051 0.00000000
|
||||||
|
68 2 16.67500000 3.76721051 0.00000000
|
||||||
|
69 1 13.05000000 5.02294734 0.00000000
|
||||||
|
70 2 14.50000000 5.02294734 0.00000000
|
||||||
|
71 1 15.22500000 6.27868418 0.00000000
|
||||||
|
72 2 16.67500000 6.27868418 0.00000000
|
||||||
|
73 1 13.05000000 7.53442101 0.00000000
|
||||||
|
74 2 14.50000000 7.53442101 0.00000000
|
||||||
|
75 1 15.22500000 8.79015785 0.00000000
|
||||||
|
76 2 16.67500000 8.79015785 0.00000000
|
||||||
|
77 1 13.05000000 10.04589468 0.00000000
|
||||||
|
78 2 14.50000000 10.04589468 0.00000000
|
||||||
|
79 1 15.22500000 11.30163152 0.00000000
|
||||||
|
80 2 16.67500000 11.30163152 0.00000000
|
||||||
|
81 1 17.40000000 0.00000000 0.00000000
|
||||||
|
82 2 18.85000000 0.00000000 0.00000000
|
||||||
|
83 1 19.57500000 1.25573684 0.00000000
|
||||||
|
84 2 21.02500000 1.25573684 0.00000000
|
||||||
|
85 1 17.40000000 2.51147367 0.00000000
|
||||||
|
86 2 18.85000000 2.51147367 0.00000000
|
||||||
|
87 1 19.57500000 3.76721051 0.00000000
|
||||||
|
88 2 21.02500000 3.76721051 0.00000000
|
||||||
|
89 1 17.40000000 5.02294734 0.00000000
|
||||||
|
90 2 18.85000000 5.02294734 0.00000000
|
||||||
|
91 1 19.57500000 6.27868418 0.00000000
|
||||||
|
92 2 21.02500000 6.27868418 0.00000000
|
||||||
|
93 1 17.40000000 7.53442101 0.00000000
|
||||||
|
94 2 18.85000000 7.53442101 0.00000000
|
||||||
|
95 1 19.57500000 8.79015785 0.00000000
|
||||||
|
96 2 21.02500000 8.79015785 0.00000000
|
||||||
|
97 1 17.40000000 10.04589468 0.00000000
|
||||||
|
98 2 18.85000000 10.04589468 0.00000000
|
||||||
|
99 1 19.57500000 11.30163152 0.00000000
|
||||||
|
100 2 21.02500000 11.30163152 0.00000000
|
||||||
29
examples/USER/misc/extep/input
Normal file
29
examples/USER/misc/extep/input
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# Initialization
|
||||||
|
units metal
|
||||||
|
boundary p p p
|
||||||
|
atom_style atomic
|
||||||
|
processors * * 1
|
||||||
|
|
||||||
|
# System and atom definition
|
||||||
|
read_data BN.data # read lammps data file
|
||||||
|
|
||||||
|
# Neighbor update settings
|
||||||
|
neighbor 2.0 bin
|
||||||
|
neigh_modify every 1
|
||||||
|
neigh_modify delay 0
|
||||||
|
neigh_modify check yes
|
||||||
|
|
||||||
|
# Potential
|
||||||
|
pair_style extep
|
||||||
|
pair_coeff * * ../../../../potentials/BN.extep B N
|
||||||
|
|
||||||
|
# Output
|
||||||
|
thermo 10
|
||||||
|
thermo_style custom step time etotal pe temp lx ly lz pxx pyy pzz spcpu
|
||||||
|
thermo_modify line one format float %14.8g
|
||||||
|
|
||||||
|
# Setup NPT MD run
|
||||||
|
timestep 0.0001 # ps
|
||||||
|
velocity all create 300.0 12345
|
||||||
|
fix thermos all npt temp 300 300 1.0 x 0 0 1.0 y 0 0 1.0
|
||||||
|
run 1000
|
||||||
127
potentials/BN.extep
Normal file
127
potentials/BN.extep
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
# B and N mixture, parameterized for Tersoff potential
|
||||||
|
# values are from Albe et.al - Rad. Eff. Def. Sol. 141 (1997) 85.
|
||||||
|
|
||||||
|
#values are calculated from Albe et. al from
|
||||||
|
# m = 3
|
||||||
|
# gamma = 1
|
||||||
|
# c = c, d=d
|
||||||
|
# cos(thetat0) = h
|
||||||
|
# n = n
|
||||||
|
# beta = gamma_albe
|
||||||
|
# lambda1=beta_albe*sqrt(2*S_albe)
|
||||||
|
# lambda2=beta_albe*sqrt(2/S_albe)
|
||||||
|
# lambda3=lambda3
|
||||||
|
# A=D0/(S-1)*exp(lambda1*r0)
|
||||||
|
# B=S*D0/(S-1)*exp(lambda2*r0)
|
||||||
|
# R = R, D=D
|
||||||
|
|
||||||
|
# Tersoff parameters for various elements and mixtures
|
||||||
|
# multiple entries can be added to this file, LAMMPS reads the ones it needs
|
||||||
|
# these entries are in LAMMPS "metal" units:
|
||||||
|
# A,B = eV; lambda1,lambda2,lambda3 = 1/Angstroms; R,D = Angstroms
|
||||||
|
# other quantities are unitless
|
||||||
|
|
||||||
|
# format of a single entry (one or more lines):
|
||||||
|
#I J K m, gamma*, lambda3, c, d, h, n, gamma, lambda2, B, R, D, lambda1, A
|
||||||
|
B B B 3 1.0 0.0 26617.3000 141.2000 -0.1300 1.1422470 0.01498959 2.5211820 2768.7363631 2.0 0.2 2.6857244 3376.3350735
|
||||||
|
N N N 3 1.0 0.0 23.5000 3.7500 -0.4000 0.6650000 0.01925100 2.6272721 2563.5603417 2.0 0.2 2.8293093 2978.9527928
|
||||||
|
B B N 3 1.0 0.0 26617.3000 141.2000 -0.1300 1.1422470 0.01498959 2.5211820 2768.7363631 2.0 0.2 2.6857244 3376.3350735
|
||||||
|
N N B 3 1.0 0.0 23.5000 3.7500 -0.4000 0.6650000 0.01925100 2.6272721 2563.5603417 2.0 0.2 2.8293093 2978.9527928
|
||||||
|
B N B 3 1.0 0.0d0 306.586555205d0 10.d0 -0.7218d0 0.6576543657d0 0.0027024851d0 2.69335d0 2595.6860833266d0 2.d0 0.2d0 2.95d0 3330.0655849887d0
|
||||||
|
B N N 3 1.0 0.0d0 306.586555205d0 10.d0 -0.7218d0 0.6576543657d0 0.0027024851d0 2.69335d0 2595.6860833266d0 2.d0 0.2d0 2.95d0 3330.0655849887d0
|
||||||
|
N B B 3 1.0 0.0d0 306.586555205d0 10.d0 -0.7218d0 0.6576543657d0 0.0027024851d0 2.69335d0 2595.6860833266d0 2.d0 0.2d0 2.95d0 3330.0655849887d0
|
||||||
|
N B N 3 1.0 0.0d0 306.586555205d0 10.d0 -0.7218d0 0.6576543657d0 0.0027024851d0 2.69335d0 2595.6860833266d0 2.d0 0.2d0 2.95d0 3330.0655849887d0
|
||||||
|
#
|
||||||
|
# 1.9925 Bicubic Splines Parameters
|
||||||
|
#
|
||||||
|
# F_corr [ B, B]
|
||||||
|
#
|
||||||
|
#t1 t2 i j val dx dy dxy
|
||||||
|
B B 0 0 0.0000 0.0000 0.0000 0.0000
|
||||||
|
B B 0 1 0.0054 0.0000 0.0000 0.0000
|
||||||
|
B B 0 2 0.0182 0.0000 0.0000 0.0000
|
||||||
|
B B 0 3 -0.0034 0.0000 0.0000 0.0000
|
||||||
|
B B 0 4 -0.0034 0.0000 0.0000 0.0000
|
||||||
|
B B 1 0 0.0054 0.0000 0.0000 0.0000
|
||||||
|
B B 1 1 0.0100 0.0000 0.0000 0.0000
|
||||||
|
B B 1 2 0.0062 0.0000 0.0000 0.0000
|
||||||
|
B B 1 3 0.0154 0.0000 0.0000 0.0000
|
||||||
|
B B 1 4 0.0154 0.0000 0.0000 0.0000
|
||||||
|
B B 2 0 0.0182 0.0000 0.0000 0.0000
|
||||||
|
B B 2 1 0.0062 0.0000 0.0000 0.0000
|
||||||
|
B B 2 2 0.0154 0.0000 0.0000 0.0000
|
||||||
|
B B 2 3 -0.0390 0.0000 -0.0727 0.0000
|
||||||
|
B B 2 4 -0.0390 0.0000 -0.0727 0.0000
|
||||||
|
B B 3 0 -0.0034 0.0000 0.0000 0.0000
|
||||||
|
B B 3 1 0.0154 0.0000 0.0000 0.0000
|
||||||
|
B B 3 2 -0.0390 -0.0727 0.0000 0.0000
|
||||||
|
B B 3 3 -0.1300 0.0000 0.0000 0.0000
|
||||||
|
B B 3 4 -0.1300 0.0000 0.0000 0.0000
|
||||||
|
B B 4 0 -0.0034 0.0000 0.0000 0.0000
|
||||||
|
B B 4 1 0.0154 0.0000 0.0000 0.0000
|
||||||
|
B B 4 2 -0.0390 -0.0727 0.0000 0.0000
|
||||||
|
B B 4 3 -0.1300 0.0000 0.0000 0.0000
|
||||||
|
B B 4 4 -0.1300 0.0000 0.0000 0.0000
|
||||||
|
#
|
||||||
|
# F_corr [ B, N]
|
||||||
|
#
|
||||||
|
#t1 t2 i j val dx dy dxy
|
||||||
|
B N 0 0 0.0170 0.0000 0.0000 0.0000
|
||||||
|
B N 0 1 0.0078 0.0000 0.0000 0.0000
|
||||||
|
B N 0 2 0.0000 0.0000 0.0000 0.0000
|
||||||
|
B N 0 3 -0.0860 0.0000 0.0000 0.0000
|
||||||
|
B N 0 4 -0.0860 0.0000 0.0000 0.0000
|
||||||
|
B N 1 0 -0.0090 0.0000 0.0000 0.0000
|
||||||
|
B N 1 1 0.0090 0.0000 0.0000 0.0000
|
||||||
|
B N 1 2 -0.0068 0.0000 -0.0214 0.0000
|
||||||
|
B N 1 3 -0.0338 0.0000 0.0388 0.0000
|
||||||
|
B N 1 4 -0.0338 0.0000 0.0388 0.0000
|
||||||
|
B N 2 0 0.0000 0.0000 0.0000 0.0000
|
||||||
|
B N 2 1 -0.0198 0.0000 0.0000 0.0000
|
||||||
|
B N 2 2 0.0000 0.0000 0.0000 0.0000
|
||||||
|
B N 2 3 -0.0084 0.0000 0.0169 0.0000
|
||||||
|
B N 2 4 -0.0084 0.0000 0.0169 0.0000
|
||||||
|
B N 3 0 -0.0750 0.0000 0.0000 0.0000
|
||||||
|
B N 3 1 -0.0168 0.0306 0.0000 0.0000
|
||||||
|
B N 3 2 -0.0138 0.0084 0.0000 0.0000
|
||||||
|
B N 3 3 0.0000 0.0000 0.0000 0.0000
|
||||||
|
B N 3 4 0.0000 0.0000 0.0000 0.0000
|
||||||
|
B N 4 0 -0.0750 0.0000 0.0000 0.0000
|
||||||
|
B N 4 1 -0.0168 0.0306 0.0000 0.0000
|
||||||
|
B N 4 2 -0.0138 0.0084 0.0000 0.0000
|
||||||
|
B N 4 3 0.0000 0.0000 0.0000 0.0000
|
||||||
|
B N 4 4 0.0000 0.0000 0.0000 0.0000
|
||||||
|
#
|
||||||
|
# F_corr [ N, N]
|
||||||
|
#
|
||||||
|
#t1 t2 i j val dx dy dxy
|
||||||
|
N N 0 0 0.0000 0.0000 0.0000 0.0000
|
||||||
|
N N 0 1 -0.0282 0.0000 0.0000 0.0000
|
||||||
|
N N 0 2 -0.0018 0.0000 0.0000 0.0000
|
||||||
|
N N 0 3 -0.0004 0.0000 0.0000 0.0000
|
||||||
|
N N 0 4 -0.0004 0.0000 0.0000 0.0000
|
||||||
|
N N 1 0 -0.0282 0.0000 0.0000 0.0000
|
||||||
|
N N 1 1 0.0200 0.0000 0.0000 0.0000
|
||||||
|
N N 1 2 0.0180 0.0162 -0.0027 0.0000
|
||||||
|
N N 1 3 0.0146 0.0000 0.0000 0.0000
|
||||||
|
N N 1 4 0.0146 0.0000 0.0000 0.0000
|
||||||
|
N N 2 0 -0.0018 0.0000 0.0000 0.0000
|
||||||
|
N N 2 1 0.0180 -0.0027 0.0162 0.0000
|
||||||
|
N N 2 2 0.0306 0.0000 0.0000 0.0000
|
||||||
|
N N 2 3 0.0060 0.0000 -0.0073 0.0000
|
||||||
|
N N 2 4 0.0060 0.0000 -0.0073 0.0000
|
||||||
|
N N 3 0 -0.0004 0.0000 0.0000 0.0000
|
||||||
|
N N 3 1 0.0146 0.0000 0.0000 0.0000
|
||||||
|
N N 3 2 0.0060 -0.0073 0.0000 0.0000
|
||||||
|
N N 3 3 0.0000 0.0000 0.0000 0.0000
|
||||||
|
N N 3 4 0.0000 0.0000 0.0000 0.0000
|
||||||
|
N N 4 0 -0.0004 0.0000 0.0000 0.0000
|
||||||
|
N N 4 1 0.0146 0.0000 0.0000 0.0000
|
||||||
|
N N 4 2 0.0060 -0.0073 0.0000 0.0000
|
||||||
|
N N 4 3 0.0000 0.0000 0.0000 0.0000
|
||||||
|
N N 4 4 0.0000 0.0000 0.0000 0.0000
|
||||||
|
|
||||||
|
# Elastic properties
|
||||||
|
# ==================
|
||||||
|
# hBN: B=164 N/M; C11=290 N/M; kappa=0.64 eV
|
||||||
|
# cBN: B=402 GPa; C11=567 GPa; C66=533 GPa
|
||||||
1174
src/USER-MISC/pair_extep.cpp
Executable file
1174
src/USER-MISC/pair_extep.cpp
Executable file
File diff suppressed because it is too large
Load Diff
225
src/USER-MISC/pair_extep.h
Executable file
225
src/USER-MISC/pair_extep.h
Executable file
@ -0,0 +1,225 @@
|
|||||||
|
/* -*- c++ -*- ----------------------------------------------------------
|
||||||
|
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||||
|
http://lammps.sandia.gov, Sandia National Laboratories
|
||||||
|
Steve Plimpton, sjplimp@sandia.gov
|
||||||
|
|
||||||
|
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||||
|
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||||
|
certain rights in this software. This software is distributed under
|
||||||
|
the GNU General Public License.
|
||||||
|
|
||||||
|
See the README file in the top-level LAMMPS directory.
|
||||||
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
#ifdef PAIR_CLASS
|
||||||
|
|
||||||
|
PairStyle(extep,PairExTeP)
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#ifndef LMP_PAIR_EXTEP_H
|
||||||
|
#define LMP_PAIR_EXTEP_H
|
||||||
|
|
||||||
|
#include "pair.h"
|
||||||
|
#include "my_page.h"
|
||||||
|
|
||||||
|
#define MAXTYPES 8
|
||||||
|
#define NSPLINE 5
|
||||||
|
|
||||||
|
namespace LAMMPS_NS {
|
||||||
|
|
||||||
|
class PairExTeP : public Pair {
|
||||||
|
public:
|
||||||
|
PairExTeP(class LAMMPS *);
|
||||||
|
virtual ~PairExTeP();
|
||||||
|
virtual void compute(int, int);
|
||||||
|
void settings(int, char **);
|
||||||
|
void coeff(int, char **);
|
||||||
|
void init_style();
|
||||||
|
double init_one(int, int);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
struct Param {
|
||||||
|
double lam1,lam2,lam3;
|
||||||
|
double c,d,h;
|
||||||
|
double gamma,powerm;
|
||||||
|
double powern,beta;
|
||||||
|
double biga,bigb,bigd,bigr;
|
||||||
|
double cut,cutsq;
|
||||||
|
double c1,c2,c3,c4;
|
||||||
|
int ielement,jelement,kelement;
|
||||||
|
int powermint;
|
||||||
|
double Z_i,Z_j; // added for ExTePZBL
|
||||||
|
double ZBLcut,ZBLexpscale;
|
||||||
|
double c5,ca1,ca4; // added for ExTePMOD
|
||||||
|
double powern_del;
|
||||||
|
};
|
||||||
|
|
||||||
|
Param *params; // parameter set for an I-J-K interaction
|
||||||
|
char **elements; // names of unique elements
|
||||||
|
int ***elem2param; // mapping from element triplets to parameters
|
||||||
|
int *map; // mapping from atom types to elements
|
||||||
|
double cutmax; // max cutoff for all elements
|
||||||
|
int nelements; // # of unique elements
|
||||||
|
int nparams; // # of stored parameter sets
|
||||||
|
int maxparam; // max # of parameter sets
|
||||||
|
|
||||||
|
int maxlocal; // size of numneigh, firstneigh arrays
|
||||||
|
int maxpage; // # of pages currently allocated
|
||||||
|
int pgsize; // size of neighbor page
|
||||||
|
int oneatom; // max # of neighbors for one atom
|
||||||
|
MyPage<int> *ipage; // neighbor list pages
|
||||||
|
int *SR_numneigh; // # of pair neighbors for each atom
|
||||||
|
int **SR_firstneigh; // ptr to 1st neighbor of each atom
|
||||||
|
|
||||||
|
double *Nt, *Nd; // sum of cutoff fns ( f_C ) with SR neighs
|
||||||
|
|
||||||
|
void allocate();
|
||||||
|
void spline_init();
|
||||||
|
virtual void read_file(char *);
|
||||||
|
virtual void setup();
|
||||||
|
virtual void repulsive(Param *, double, double &, int, double &);
|
||||||
|
virtual double zeta(Param *, double, double, double *, double *);
|
||||||
|
virtual void force_zeta(Param *, double, double, double &,
|
||||||
|
double &, int, double &);
|
||||||
|
void attractive(Param *, double, double, double, double *, double *,
|
||||||
|
double *, double *, double *);
|
||||||
|
|
||||||
|
virtual double ters_fc(double, Param *);
|
||||||
|
virtual double ters_fc_d(double, Param *);
|
||||||
|
virtual double ters_fa(double, Param *);
|
||||||
|
virtual double ters_fa_d(double, Param *);
|
||||||
|
virtual double ters_bij(double, Param *);
|
||||||
|
virtual double ters_bij_d(double, Param *);
|
||||||
|
|
||||||
|
virtual void ters_zetaterm_d(double, double *, double, double *, double,
|
||||||
|
double *, double *, double *, Param *);
|
||||||
|
void costheta_d(double *, double, double *, double,
|
||||||
|
double *, double *, double *);
|
||||||
|
|
||||||
|
// inlined functions for efficiency
|
||||||
|
|
||||||
|
inline double ters_gijk(const double costheta,
|
||||||
|
const Param * const param) const {
|
||||||
|
const double ters_c = param->c * param->c;
|
||||||
|
const double ters_d = param->d * param->d;
|
||||||
|
const double hcth = param->h - costheta;
|
||||||
|
|
||||||
|
return param->gamma*(1.0 + ters_c/ters_d - ters_c / (ters_d + hcth*hcth));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline double ters_gijk_d(const double costheta,
|
||||||
|
const Param * const param) const {
|
||||||
|
const double ters_c = param->c * param->c;
|
||||||
|
const double ters_d = param->d * param->d;
|
||||||
|
const double hcth = param->h - costheta;
|
||||||
|
const double numerator = -2.0 * ters_c * hcth;
|
||||||
|
const double denominator = 1.0/(ters_d + hcth*hcth);
|
||||||
|
return param->gamma*numerator*denominator*denominator;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline double vec3_dot(const double x[3], const double y[3]) const {
|
||||||
|
return x[0]*y[0] + x[1]*y[1] + x[2]*y[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void vec3_add(const double x[3], const double y[3],
|
||||||
|
double * const z) const {
|
||||||
|
z[0] = x[0]+y[0]; z[1] = x[1]+y[1]; z[2] = x[2]+y[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void vec3_scale(const double k, const double x[3],
|
||||||
|
double y[3]) const {
|
||||||
|
y[0] = k*x[0]; y[1] = k*x[1]; y[2] = k*x[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void vec3_scaleadd(const double k, const double x[3],
|
||||||
|
const double y[3], double * const z) const {
|
||||||
|
z[0] = k*x[0]+y[0];
|
||||||
|
z[1] = k*x[1]+y[1];
|
||||||
|
z[2] = k*x[2]+y[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
// splines parameters
|
||||||
|
// F[Ni=0-1, 1-2, 2-3,
|
||||||
|
// Nj=...,
|
||||||
|
struct TF_corr_param {
|
||||||
|
double
|
||||||
|
f_00,
|
||||||
|
f_01,
|
||||||
|
f_10,
|
||||||
|
f_11,
|
||||||
|
f_x_00,
|
||||||
|
f_x_01,
|
||||||
|
f_x_10,
|
||||||
|
f_x_11,
|
||||||
|
f_y_00,
|
||||||
|
f_y_01,
|
||||||
|
f_y_10,
|
||||||
|
f_y_11;
|
||||||
|
} F_corr_param[MAXTYPES][MAXTYPES][NSPLINE][NSPLINE];
|
||||||
|
|
||||||
|
double F_corr_data[MAXTYPES][MAXTYPES][NSPLINE][NSPLINE][3];
|
||||||
|
|
||||||
|
double F_corr( int, int, double, double, double*, double* );
|
||||||
|
void SR_neigh();
|
||||||
|
|
||||||
|
double envelop_function(double, double, double*);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ERROR/WARNING messages:
|
||||||
|
|
||||||
|
E: Illegal ... command
|
||||||
|
|
||||||
|
Self-explanatory. Check the input script syntax and compare to the
|
||||||
|
documentation for the command. You can use -echo screen as a
|
||||||
|
command-line option when running LAMMPS to see the offending line.
|
||||||
|
|
||||||
|
E: Incorrect args for pair coefficients
|
||||||
|
|
||||||
|
Self-explanatory. Check the input script or data file.
|
||||||
|
|
||||||
|
E: Pair style ExTeP requires atom IDs
|
||||||
|
|
||||||
|
This is a requirement to use the ExTeP potential.
|
||||||
|
|
||||||
|
E: Pair style ExTeP requires newton pair on
|
||||||
|
|
||||||
|
See the newton command. This is a restriction to use the ExTeP
|
||||||
|
potential.
|
||||||
|
|
||||||
|
E: All pair coeffs are not set
|
||||||
|
|
||||||
|
All pair coefficients must be set in the data file or by the
|
||||||
|
pair_coeff command before running a simulation.
|
||||||
|
|
||||||
|
E: Cannot open ExTeP potential file %s
|
||||||
|
|
||||||
|
The specified potential file cannot be opened. Check that the path
|
||||||
|
and name are correct.
|
||||||
|
|
||||||
|
E: Incorrect format in ExTeP potential file
|
||||||
|
|
||||||
|
Incorrect number of words per line in the potential file.
|
||||||
|
|
||||||
|
E: Illegal ExTeP parameter
|
||||||
|
|
||||||
|
One or more of the coefficients defined in the potential file is
|
||||||
|
invalid.
|
||||||
|
|
||||||
|
E: Potential file has duplicate entry
|
||||||
|
|
||||||
|
The potential file for a SW or ExTeP potential has more than
|
||||||
|
one entry for the same 3 ordered elements.
|
||||||
|
|
||||||
|
E: Potential file is missing an entry
|
||||||
|
|
||||||
|
The potential file for a SW or ExTeP potential does not have a
|
||||||
|
needed entry.
|
||||||
|
|
||||||
|
*/
|
||||||
Reference in New Issue
Block a user