Interlayer Potential for TMDs and Metal Surfaces
This commit is contained in:
157
doc/src/pair_ilp_tmd.rst
Normal file
157
doc/src/pair_ilp_tmd.rst
Normal file
@ -0,0 +1,157 @@
|
||||
.. index:: pair_style ilp/tmd
|
||||
|
||||
pair_style ilp/tmd command
|
||||
===================================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style [hybrid/overlay ...] ilp/tmd cutoff tap_flag
|
||||
|
||||
* cutoff = global cutoff (distance units)
|
||||
* tap_flag = 0/1 to turn off/on the taper function
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style hybrid/overlay ilp/tmd 16.0 1
|
||||
pair_coeff * * ilp/tmd TMD.ILP Mo S S
|
||||
|
||||
pair_style hybrid/overlay sw/mod sw/mod ilp/tmd 16.0
|
||||
pair_coeff * * sw/mod 1 tmd.sw.mod Mo S S NULL NULL NULL
|
||||
pair_coeff * * sw/mod 2 tmd.sw.mod NULL NULL NULL Mo S S
|
||||
pair_coeff * * ilp/tmd TMD.ILP Mo S S Mo S S
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The *ilp/tmd* style computes the registry-dependent interlayer
|
||||
potential (ILP) potential for itransition metal dichalcogenide (TMD)
|
||||
as described in :ref:`(Ouyang3) <Ouyang3>`.
|
||||
|
||||
.. math::
|
||||
|
||||
E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\
|
||||
V_{ij} = & {\rm Tap}(r_{ij})\left \{ e^{-\alpha (r_{ij}/\beta -1)}
|
||||
\left [ \epsilon + f(\rho_{ij}) + f(\rho_{ji})\right ] -
|
||||
\frac{1}{1+e^{-d\left [ \left ( r_{ij}/\left (s_R \cdot r^{eff} \right ) \right )-1 \right ]}}
|
||||
\cdot \frac{C_6}{r^6_{ij}} \right \}\\
|
||||
\rho_{ij}^2 = & r_{ij}^2 - ({\bf r}_{ij} \cdot {\bf n}_i)^2 \\
|
||||
\rho_{ji}^2 = & r_{ij}^2 - ({\bf r}_{ij} \cdot {\bf n}_j)^2 \\
|
||||
f(\rho) = & C e^{ -( \rho / \delta )^2 } \\
|
||||
{\rm Tap}(r_{ij}) = & 20\left ( \frac{r_{ij}}{R_{cut}} \right )^7 -
|
||||
70\left ( \frac{r_{ij}}{R_{cut}} \right )^6 +
|
||||
84\left ( \frac{r_{ij}}{R_{cut}} \right )^5 -
|
||||
35\left ( \frac{r_{ij}}{R_{cut}} \right )^4 + 1
|
||||
|
||||
Where :math:`\mathrm{Tap}(r_{ij})` is the taper function which provides
|
||||
a continuous cutoff (up to third derivative) for interatomic separations
|
||||
larger than :math:`r_c` :doc:`pair_style ilp_graphene_hbn <pair_ilp_graphene_hbn>`.
|
||||
|
||||
It is important to include all the pairs to build the neighbor list for
|
||||
calculating the normals.
|
||||
|
||||
.. note::
|
||||
|
||||
Since each MX2 (M = Mo, W and X = S, Se Te) layer contains two
|
||||
sublayers of X atoms and one sublayer of M atoms, the definition of the
|
||||
normal vectors used for graphene and h-BN is no longer valid for TMDs.
|
||||
In :ref:`(Ouyang3) <Ouyang3>`, a new definition is proposed, where for
|
||||
each atom `i`, its six nearest neighboring atoms belonging to the same
|
||||
sublayer are chosen to define the normal vector `{\bf n}_i`.
|
||||
|
||||
The parameter file (e.g. TMD.ILP), is intended for use with *metal*
|
||||
:doc:`units <units>`, with energies in meV. Two additional parameters,
|
||||
*S*, and *rcut* are included in the parameter file. *S* is designed to
|
||||
facilitate scaling of energies. *rcut* is designed to build the neighbor
|
||||
list for calculating the normals for each atom pair.
|
||||
|
||||
.. note::
|
||||
|
||||
The parameters presented in the parameter file (e.g. BNCH.ILP),
|
||||
are fitted with taper function by setting the cutoff equal to 16.0
|
||||
Angstrom. Using different cutoff or taper function should be careful.
|
||||
These parameters provide a good description in both short- and long-range
|
||||
interaction regimes. This feature is essential for simulations in high pressure
|
||||
regime (i.e., the interlayer distance is smaller than the equilibrium
|
||||
distance). The benchmark tests and comparison of these parameters can
|
||||
be found in :ref:`(Ouyang3) <Ouyang3>`.
|
||||
|
||||
This potential must be used in combination with hybrid/overlay.
|
||||
Other interactions can be set to zero using pair_style *none*\ .
|
||||
|
||||
This pair style tallies a breakdown of the total interlayer potential
|
||||
energy into sub-categories, which can be accessed via the :doc:`compute pair <compute_pair>` command as a vector of values of length 2.
|
||||
The 2 values correspond to the following sub-categories:
|
||||
|
||||
1. *E_vdW* = vdW (attractive) energy
|
||||
2. *E_Rep* = Repulsive energy
|
||||
|
||||
To print these quantities to the log file (with descriptive column
|
||||
headings) the following commands could be included in an input script:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute 0 all pair ilp/tmd
|
||||
variable Evdw equal c_0[1]
|
||||
variable Erep equal c_0[2]
|
||||
thermo_style custom step temp epair v_Erep v_Evdw
|
||||
|
||||
----------
|
||||
|
||||
Mixing, shift, table, tail correction, restart, rRESPA info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
This pair style does not support the pair_modify mix, shift, table, and
|
||||
tail options.
|
||||
|
||||
This pair style does not write their information to binary restart
|
||||
files, 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.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This pair style is part of the INTERLAYER package. It is only enabled
|
||||
if LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
This pair style requires the newton setting to be *on* for pair
|
||||
interactions.
|
||||
|
||||
The TMD.ILP potential file provided with LAMMPS (see the potentials
|
||||
directory) are parameterized for *metal* units. You can use this
|
||||
potential with any LAMMPS units, but you would need to create your
|
||||
BNCH.ILP potential file with coefficients listed in the appropriate
|
||||
units, if your simulation does not use *metal* units.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`pair_coeff <pair_coeff>`,
|
||||
:doc:`pair_none <pair_none>`,
|
||||
:doc:`pair_style hybrid/overlay <pair_hybrid>`,
|
||||
:doc:`pair_style drip <pair_drip>`,
|
||||
:doc:`pair_style saip_metal <pair_saip_metal>`,
|
||||
:doc:`pair_style ilp_graphene_hbn <pair_ilp_graphene_hbn>`,
|
||||
:doc:`pair_style pair_kolmogorov_crespi_z <pair_kolmogorov_crespi_z>`,
|
||||
:doc:`pair_style pair_kolmogorov_crespi_full <pair_kolmogorov_crespi_full>`,
|
||||
:doc:`pair_style pair_lebedeva_z <pair_lebedeva_z>`,
|
||||
:doc:`pair_style pair_coul_shield <pair_coul_shield>`.
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
tap_flag = 1
|
||||
|
||||
|
||||
----------
|
||||
|
||||
.. _Ouyang3:
|
||||
|
||||
**(Ouyang3)** W. Ouyang, et al., J. Chem. Theory Comput. 17, 7237 (2021).
|
||||
156
doc/src/pair_saip_metal.rst
Normal file
156
doc/src/pair_saip_metal.rst
Normal file
@ -0,0 +1,156 @@
|
||||
.. index:: pair_style saip/metal
|
||||
|
||||
pair_style saip/metal command
|
||||
===================================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style [hybrid/overlay ...] saip/metal cutoff tap_flag
|
||||
|
||||
* cutoff = global cutoff (distance units)
|
||||
* tap_flag = 0/1 to turn off/on the taper function
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style hybrid/overlay saip/metal 16.0 1
|
||||
pair_coeff * * saip/metal CHAu.ILP Au C H
|
||||
|
||||
pair_style hybrid/overlay eam rebo saip/metal 16.0
|
||||
pair_coeff 1 1 eam Au_u3.eam Au NULL NULL
|
||||
pair_coeff * * rebo CH.rebo NULL C H
|
||||
pair_coeff * * saip/metal CHAu.ILP Au C H
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The *saip/metal* style computes the registry-dependent interlayer
|
||||
potential (ILP) potential for heterojunctions formed with hexagonal
|
||||
2D materials and metal surfaces, as described in :ref:`(Ouyang4) <Ouyang4>`.
|
||||
|
||||
.. math::
|
||||
|
||||
E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\
|
||||
V_{ij} = & {\rm Tap}(r_{ij})\left \{ e^{-\alpha (r_{ij}/\beta -1)}
|
||||
\left [ \epsilon + f(\rho_{ij}) + f(\rho_{ji})\right ] -
|
||||
\frac{1}{1+e^{-d\left [ \left ( r_{ij}/\left (s_R \cdot r^{eff} \right ) \right )-1 \right ]}}
|
||||
\cdot \frac{C_6}{r^6_{ij}} \right \}\\
|
||||
\rho_{ij}^2 = & r_{ij}^2 - ({\bf r}_{ij} \cdot {\bf n}_i)^2 \\
|
||||
\rho_{ji}^2 = & r_{ij}^2 - ({\bf r}_{ij} \cdot {\bf n}_j)^2 \\
|
||||
f(\rho) = & C e^{ -( \rho / \delta )^2 } \\
|
||||
{\rm Tap}(r_{ij}) = & 20\left ( \frac{r_{ij}}{R_{cut}} \right )^7 -
|
||||
70\left ( \frac{r_{ij}}{R_{cut}} \right )^6 +
|
||||
84\left ( \frac{r_{ij}}{R_{cut}} \right )^5 -
|
||||
35\left ( \frac{r_{ij}}{R_{cut}} \right )^4 + 1
|
||||
|
||||
Where :math:`\mathrm{Tap}(r_{ij})` is the taper function which provides
|
||||
a continuous cutoff (up to third derivative) for interatomic separations
|
||||
larger than :math:`r_c` :doc:`pair_style ilp_graphene_hbn <pair_ilp_graphene_hbn>`.
|
||||
|
||||
It is important to include all the pairs to build the neighbor list for
|
||||
calculating the normals.
|
||||
|
||||
.. note::
|
||||
|
||||
To account for the isotropic nature of the isolated gold atom
|
||||
electron cloud, their corresponding normal vectors (`{\bf n}_i`) are
|
||||
assumed to lie along the interatomic vector `{\bf r}_ij`. Notably, this
|
||||
assumption is suitable for many bulk material surfaces, for
|
||||
example, for systems possessing s-type valence orbitals or
|
||||
metallic surfaces, whose valence electrons are mostly
|
||||
delocalized, such that their Pauli repulsions with the electrons
|
||||
of adjacent surfaces are isotropic. Caution should be used in
|
||||
the case of very small gold contacts, for example, nanoclusters,
|
||||
where edge effects may become relevant.
|
||||
|
||||
The parameter file (e.g. CHAu.ILP), is intended for use with *metal*
|
||||
:doc:`units <units>`, with energies in meV. Two additional parameters,
|
||||
*S*, and *rcut* are included in the parameter file. *S* is designed to
|
||||
facilitate scaling of energies. *rcut* is designed to build the neighbor
|
||||
list for calculating the normals for each atom pair.
|
||||
|
||||
.. note::
|
||||
|
||||
The parameters presented in the parameter file (e.g. BNCH.ILP),
|
||||
are fitted with taper function by setting the cutoff equal to 16.0
|
||||
Angstrom. Using different cutoff or taper function should be careful.
|
||||
|
||||
This potential must be used in combination with hybrid/overlay.
|
||||
Other interactions can be set to zero using pair_style *none*\ .
|
||||
|
||||
This pair style tallies a breakdown of the total interlayer potential
|
||||
energy into sub-categories, which can be accessed via the :doc:`compute pair <compute_pair>` command as a vector of values of length 2.
|
||||
The 2 values correspond to the following sub-categories:
|
||||
|
||||
1. *E_vdW* = vdW (attractive) energy
|
||||
2. *E_Rep* = Repulsive energy
|
||||
|
||||
To print these quantities to the log file (with descriptive column
|
||||
headings) the following commands could be included in an input script:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute 0 all pair saip/metal
|
||||
variable Evdw equal c_0[1]
|
||||
variable Erep equal c_0[2]
|
||||
thermo_style custom step temp epair v_Erep v_Evdw
|
||||
|
||||
----------
|
||||
|
||||
Mixing, shift, table, tail correction, restart, rRESPA info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
This pair style does not support the pair_modify mix, shift, table, and
|
||||
tail options.
|
||||
|
||||
This pair style does not write their information to binary restart
|
||||
files, 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.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This pair style is part of the INTERLAYER package. It is only enabled
|
||||
if LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
This pair style requires the newton setting to be *on* for pair
|
||||
interactions.
|
||||
|
||||
The CHAu.ILP potential file provided with LAMMPS (see the potentials
|
||||
directory) are parameterized for *metal* units. You can use this
|
||||
potential with any LAMMPS units, but you would need to create your
|
||||
BNCH.ILP potential file with coefficients listed in the appropriate
|
||||
units, if your simulation does not use *metal* units.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`pair_coeff <pair_coeff>`,
|
||||
:doc:`pair_none <pair_none>`,
|
||||
:doc:`pair_style hybrid/overlay <pair_hybrid>`,
|
||||
:doc:`pair_style drip <pair_drip>`,
|
||||
:doc:`pair_style ilp_tmd <pair_ilp_tmd>`,
|
||||
:doc:`pair_style ilp_graphene_hbn <pair_ilp_graphene_hbn>`,
|
||||
:doc:`pair_style pair_kolmogorov_crespi_z <pair_kolmogorov_crespi_z>`,
|
||||
:doc:`pair_style pair_kolmogorov_crespi_full <pair_kolmogorov_crespi_full>`,
|
||||
:doc:`pair_style pair_lebedeva_z <pair_lebedeva_z>`,
|
||||
:doc:`pair_style pair_coul_shield <pair_coul_shield>`.
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
tap_flag = 1
|
||||
|
||||
|
||||
----------
|
||||
|
||||
.. _Ouyang4:
|
||||
|
||||
**(Ouyang4)** W. Ouyang, O. Hod, and R. Guerra, J. Chem. Theory Comput. 17, 7215 (2021).
|
||||
12
examples/PACKAGES/interlayer/ilp_tmds/MoS2.ILP
Normal file
12
examples/PACKAGES/interlayer/ilp_tmds/MoS2.ILP
Normal file
@ -0,0 +1,12 @@
|
||||
# DATE: 2021-12-02 UNITS: metal CONTRIBUTOR: Wengen Ouyang w.g.ouyang@gmail.com
|
||||
# CITATION: W. Ouyang, et al., J. Chem. Theory Comput. 17, 7237 (2021).
|
||||
# Interlayer Potential (ILP) for bilayer and bulk Molybdenum Disulfide.
|
||||
# The parameters below are fitted against the HSE + MBD-NL DFT reference data.
|
||||
#
|
||||
# --------------- Repulsion Potential ----------------++++++++++++++ Vdw Potential ++++++++++++++++*****
|
||||
# beta(A) alpha delta(A) epsilon(meV) C(meV) d sR reff(A) C6(meV*A^6) S rcut
|
||||
Mo Mo 5.5794503728 9.3776624643 2.0272224617 144.1517754265 97.9785701736 89.4375967588 2.0590305447 5.1220549022 491850.3161946840 1.0000 4.0
|
||||
S S 3.1614021873 8.0932627454 1.9531402037 4.5867641760 118.0654664611 58.8094158385 0.2153665787 4.2996001250 148811.2434089213 1.0000 4.0
|
||||
Mo S 3.6271521213 19.9713750996 7.5850312329 76.1019310047 3.3174955929 45.7203284638 0.9474703731 4.4104250318 150597.8577162951 1.0000 4.0
|
||||
# symmetric part
|
||||
S Mo 3.6271521213 19.9713750996 7.5850312329 76.1019310047 3.3174955929 45.7203284638 0.9474703731 4.4104250318 150597.8577162951 1.0000 4.0
|
||||
File diff suppressed because it is too large
Load Diff
36
examples/PACKAGES/interlayer/ilp_tmds/in.mos2
Normal file
36
examples/PACKAGES/interlayer/ilp_tmds/in.mos2
Normal file
@ -0,0 +1,36 @@
|
||||
units metal
|
||||
atom_style full
|
||||
processors * * 1
|
||||
boundary p p f
|
||||
read_data ./bilayer_MoS2_AAprime_stacking.data
|
||||
|
||||
mass * 32.065 # mass of sulphur atom , uint: a.u.=1.66X10^(-27)kg
|
||||
mass 1 95.94 # mass of molebdenum atom , uint: a.u.=1.66X10^(-27)kg
|
||||
mass 4 95.94
|
||||
|
||||
# Define potentials
|
||||
pair_style hybrid/overlay sw/mod sw/mod ilp/tmd 16.0
|
||||
pair_coeff * * sw/mod 1 tmd.sw.mod Mo S S NULL NULL NULL
|
||||
pair_coeff * * sw/mod 2 tmd.sw.mod NULL NULL NULL Mo S S
|
||||
pair_coeff * * ilp/tmd MoS2.ILP Mo S S Mo S S
|
||||
|
||||
# Calculate the pair potential
|
||||
compute 0 all pair ilp/tmd
|
||||
compute 1 all pair sw/mod 1
|
||||
compute 2 all pair sw/mod 2
|
||||
variable SW1 equal c_1
|
||||
variable SW2 equal c_2
|
||||
variable ILP equal c_0
|
||||
variable Eatt equal c_0[1]
|
||||
variable Erep equal c_0[2]
|
||||
|
||||
thermo_style custom step etotal pe ke v_SW1 v_SW2 v_ILP v_Erep v_Eatt temp
|
||||
|
||||
thermo 100
|
||||
thermo_modify lost error
|
||||
|
||||
timestep 1e-3
|
||||
|
||||
velocity all create 300.0 12345
|
||||
fix intall all nve
|
||||
run 1000
|
||||
154
examples/PACKAGES/interlayer/ilp_tmds/log.7Jan22.mos2.g++.1
Normal file
154
examples/PACKAGES/interlayer/ilp_tmds/log.7Jan22.mos2.g++.1
Normal file
@ -0,0 +1,154 @@
|
||||
LAMMPS (7 Jan 2022)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
units metal
|
||||
atom_style full
|
||||
processors * * 1
|
||||
boundary p p f
|
||||
read_data ./bilayer_MoS2_AAprime_stacking.data
|
||||
Reading data file ...
|
||||
triclinic box = (0 0 -100) to (51.15232 44.299209 100) with tilt (25.57616 0 0)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
1536 atoms
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 0 0
|
||||
special bond factors coul: 0 0 0
|
||||
0 = max # of 1-2 neighbors
|
||||
0 = max # of 1-3 neighbors
|
||||
0 = max # of 1-4 neighbors
|
||||
1 = max # of special neighbors
|
||||
special bonds CPU = 0.001 seconds
|
||||
read_data CPU = 0.007 seconds
|
||||
|
||||
mass * 32.065 # mass of sulphur atom , uint: a.u.=1.66X10^(-27)kg
|
||||
mass 1 95.94 # mass of molebdenum atom , uint: a.u.=1.66X10^(-27)kg
|
||||
mass 4 95.94
|
||||
|
||||
# Define potentials
|
||||
pair_style hybrid/overlay sw/mod sw/mod ilp/tmd 16.0
|
||||
pair_coeff * * sw/mod 1 tmd.sw.mod Mo S S NULL NULL NULL
|
||||
Reading sw potential file tmd.sw.mod with DATE: 2018-03-26
|
||||
pair_coeff * * sw/mod 2 tmd.sw.mod NULL NULL NULL Mo S S
|
||||
Reading sw potential file tmd.sw.mod with DATE: 2018-03-26
|
||||
pair_coeff * * ilp/tmd MoS2.ILP Mo S S Mo S S
|
||||
Reading ilp/tmd potential file MoS2.ILP with DATE: 2021-12-02
|
||||
|
||||
# Calculate the pair potential
|
||||
compute 0 all pair ilp/tmd
|
||||
compute 1 all pair sw/mod 1
|
||||
compute 2 all pair sw/mod 2
|
||||
variable SW1 equal c_1
|
||||
variable SW2 equal c_2
|
||||
variable ILP equal c_0
|
||||
variable Eatt equal c_0[1]
|
||||
variable Erep equal c_0[2]
|
||||
|
||||
thermo_style custom step etotal pe ke v_SW1 v_SW2 v_ILP v_Erep v_Eatt temp
|
||||
|
||||
thermo 100
|
||||
thermo_modify lost error
|
||||
|
||||
timestep 1e-3
|
||||
|
||||
velocity all create 300.0 12345
|
||||
fix intall all nve
|
||||
run 1000
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Your simulation uses code contributions which should be cited:
|
||||
|
||||
- ilp/graphene/hbn potential doi:10.1021/acs.nanolett.8b02848
|
||||
@Article{Ouyang2018
|
||||
author = {W. Ouyang, D. Mandelli, M. Urbakh, and O. Hod},
|
||||
title = {Nanoserpents: Graphene Nanoribbon Motion on Two-Dimensional Hexagonal Materials},
|
||||
journal = {Nano Letters},
|
||||
volume = 18,
|
||||
pages = {6009}
|
||||
year = 2018,
|
||||
}
|
||||
|
||||
- ilp/tmd potential doi/10.1021/acs.jctc.1c00782
|
||||
@Article{Ouyang2021
|
||||
author = {W. Ouyang, R. Sofer, X. Gao, J. Hermann, A. Tkatchenko, L. Kronik, M. Urbakh, and O. Hod},
|
||||
title = {Anisotropic Interlayer Force Field for Transition Metal Dichalcogenides: The Case of Molybdenum Disulfide},
|
||||
journal = {J. Chem. Theory Comput.},
|
||||
volume = 17,
|
||||
pages = {7237–7245}
|
||||
year = 2021,
|
||||
}
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 18
|
||||
ghost atom cutoff = 18
|
||||
binsize = 9, bins = 9 5 23
|
||||
4 neighbor lists, perpetual/occasional/extra = 4 0 0
|
||||
(1) pair sw/mod, perpetual, skip from (4)
|
||||
attributes: full, newton on
|
||||
pair build: skip
|
||||
stencil: none
|
||||
bin: none
|
||||
(2) pair sw/mod, perpetual, skip from (4)
|
||||
attributes: full, newton on
|
||||
pair build: skip
|
||||
stencil: none
|
||||
bin: none
|
||||
(3) pair ilp/tmd, perpetual
|
||||
attributes: full, newton on, ghost
|
||||
pair build: full/bin/ghost
|
||||
stencil: full/ghost/bin/3d
|
||||
bin: standard
|
||||
(4) neighbor class addition, perpetual, copy from (3)
|
||||
attributes: full, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 30.29 | 30.29 | 30.29 Mbytes
|
||||
Step TotEng PotEng KinEng v_SW1 v_SW2 v_ILP v_Erep v_Eatt Temp
|
||||
0 -1834.4469 -1893.9712 59.524297 -929.02881 -929.02881 -35.913549 63.00343 -98.916979 300
|
||||
100 -1834.4497 -1883.3105 48.860775 -924.84264 -925.08505 -33.382796 56.58255 -89.965346 246.25629
|
||||
200 -1834.4381 -1873.7072 39.269085 -922.29961 -922.52535 -28.882252 50.08277 -78.965022 197.91457
|
||||
300 -1834.4483 -1881.1263 46.678028 -923.39264 -923.65627 -34.077402 51.011967 -85.089369 235.25534
|
||||
400 -1834.431 -1868.0728 33.64182 -916.85743 -916.27044 -34.944916 50.414038 -85.358954 169.55338
|
||||
500 -1834.4499 -1881.9059 47.456 -925.22919 -924.29582 -32.380877 44.755168 -77.136045 239.17628
|
||||
600 -1834.4343 -1869.8642 35.429976 -920.97805 -919.60784 -29.278358 43.270241 -72.548599 178.56562
|
||||
700 -1834.443 -1878.144 43.700934 -921.8051 -921.55671 -34.782141 49.959943 -84.742084 220.2509
|
||||
800 -1834.4327 -1869.824 35.391298 -917.19193 -917.91383 -34.718247 55.349728 -90.067976 178.37068
|
||||
900 -1834.4465 -1877.6741 43.227638 -923.33877 -922.50874 -31.826599 53.965592 -85.792191 217.86551
|
||||
1000 -1834.4412 -1876.1808 41.739587 -923.17282 -923.49367 -29.514347 55.454643 -84.96899 210.3658
|
||||
Loop time of 72.8218 on 1 procs for 1000 steps with 1536 atoms
|
||||
|
||||
Performance: 1.186 ns/day, 20.228 hours/ns, 13.732 timesteps/s
|
||||
99.6% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 72.781 | 72.781 | 72.781 | 0.0 | 99.94
|
||||
Bond | 0.00014503 | 0.00014503 | 0.00014503 | 0.0 | 0.00
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0.016691 | 0.016691 | 0.016691 | 0.0 | 0.02
|
||||
Output | 0.00057989 | 0.00057989 | 0.00057989 | 0.0 | 0.00
|
||||
Modify | 0.013405 | 0.013405 | 0.013405 | 0.0 | 0.02
|
||||
Other | | 0.01044 | | | 0.01
|
||||
|
||||
Nlocal: 1536 ave 1536 max 1536 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 3510 ave 3510 max 3510 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 0 ave 0 max 0 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 992256 ave 992256 max 992256 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 992256
|
||||
Ave neighs/atom = 646
|
||||
Ave special neighs/atom = 0
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:01:12
|
||||
154
examples/PACKAGES/interlayer/ilp_tmds/log.7Jan22.mos2.g++.4
Normal file
154
examples/PACKAGES/interlayer/ilp_tmds/log.7Jan22.mos2.g++.4
Normal file
@ -0,0 +1,154 @@
|
||||
LAMMPS (7 Jan 2022)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
units metal
|
||||
atom_style full
|
||||
processors * * 1
|
||||
boundary p p f
|
||||
read_data ./bilayer_MoS2_AAprime_stacking.data
|
||||
Reading data file ...
|
||||
triclinic box = (0 0 -100) to (51.15232 44.299209 100) with tilt (25.57616 0 0)
|
||||
2 by 2 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
1536 atoms
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 0 0
|
||||
special bond factors coul: 0 0 0
|
||||
0 = max # of 1-2 neighbors
|
||||
0 = max # of 1-3 neighbors
|
||||
0 = max # of 1-4 neighbors
|
||||
1 = max # of special neighbors
|
||||
special bonds CPU = 0.000 seconds
|
||||
read_data CPU = 0.007 seconds
|
||||
|
||||
mass * 32.065 # mass of sulphur atom , uint: a.u.=1.66X10^(-27)kg
|
||||
mass 1 95.94 # mass of molebdenum atom , uint: a.u.=1.66X10^(-27)kg
|
||||
mass 4 95.94
|
||||
|
||||
# Define potentials
|
||||
pair_style hybrid/overlay sw/mod sw/mod ilp/tmd 16.0
|
||||
pair_coeff * * sw/mod 1 tmd.sw.mod Mo S S NULL NULL NULL
|
||||
Reading sw potential file tmd.sw.mod with DATE: 2018-03-26
|
||||
pair_coeff * * sw/mod 2 tmd.sw.mod NULL NULL NULL Mo S S
|
||||
Reading sw potential file tmd.sw.mod with DATE: 2018-03-26
|
||||
pair_coeff * * ilp/tmd MoS2.ILP Mo S S Mo S S
|
||||
Reading ilp/tmd potential file MoS2.ILP with DATE: 2021-12-02
|
||||
|
||||
# Calculate the pair potential
|
||||
compute 0 all pair ilp/tmd
|
||||
compute 1 all pair sw/mod 1
|
||||
compute 2 all pair sw/mod 2
|
||||
variable SW1 equal c_1
|
||||
variable SW2 equal c_2
|
||||
variable ILP equal c_0
|
||||
variable Eatt equal c_0[1]
|
||||
variable Erep equal c_0[2]
|
||||
|
||||
thermo_style custom step etotal pe ke v_SW1 v_SW2 v_ILP v_Erep v_Eatt temp
|
||||
|
||||
thermo 100
|
||||
thermo_modify lost error
|
||||
|
||||
timestep 1e-3
|
||||
|
||||
velocity all create 300.0 12345
|
||||
fix intall all nve
|
||||
run 1000
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Your simulation uses code contributions which should be cited:
|
||||
|
||||
- ilp/graphene/hbn potential doi:10.1021/acs.nanolett.8b02848
|
||||
@Article{Ouyang2018
|
||||
author = {W. Ouyang, D. Mandelli, M. Urbakh, and O. Hod},
|
||||
title = {Nanoserpents: Graphene Nanoribbon Motion on Two-Dimensional Hexagonal Materials},
|
||||
journal = {Nano Letters},
|
||||
volume = 18,
|
||||
pages = {6009}
|
||||
year = 2018,
|
||||
}
|
||||
|
||||
- ilp/tmd potential doi/10.1021/acs.jctc.1c00782
|
||||
@Article{Ouyang2021
|
||||
author = {W. Ouyang, R. Sofer, X. Gao, J. Hermann, A. Tkatchenko, L. Kronik, M. Urbakh, and O. Hod},
|
||||
title = {Anisotropic Interlayer Force Field for Transition Metal Dichalcogenides: The Case of Molybdenum Disulfide},
|
||||
journal = {J. Chem. Theory Comput.},
|
||||
volume = 17,
|
||||
pages = {7237–7245}
|
||||
year = 2021,
|
||||
}
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 18
|
||||
ghost atom cutoff = 18
|
||||
binsize = 9, bins = 9 5 23
|
||||
4 neighbor lists, perpetual/occasional/extra = 4 0 0
|
||||
(1) pair sw/mod, perpetual, skip from (4)
|
||||
attributes: full, newton on
|
||||
pair build: skip
|
||||
stencil: none
|
||||
bin: none
|
||||
(2) pair sw/mod, perpetual, skip from (4)
|
||||
attributes: full, newton on
|
||||
pair build: skip
|
||||
stencil: none
|
||||
bin: none
|
||||
(3) pair ilp/tmd, perpetual
|
||||
attributes: full, newton on, ghost
|
||||
pair build: full/bin/ghost
|
||||
stencil: full/ghost/bin/3d
|
||||
bin: standard
|
||||
(4) neighbor class addition, perpetual, copy from (3)
|
||||
attributes: full, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 17.98 | 17.98 | 17.98 Mbytes
|
||||
Step TotEng PotEng KinEng v_SW1 v_SW2 v_ILP v_Erep v_Eatt Temp
|
||||
0 -1834.4469 -1893.9712 59.524297 -929.02881 -929.02881 -35.913549 63.00343 -98.916979 300
|
||||
100 -1834.4497 -1883.3105 48.860775 -924.84264 -925.08505 -33.382796 56.58255 -89.965346 246.25629
|
||||
200 -1834.4381 -1873.7072 39.269085 -922.29961 -922.52535 -28.882252 50.08277 -78.965022 197.91457
|
||||
300 -1834.4483 -1881.1263 46.678028 -923.39264 -923.65627 -34.077402 51.011967 -85.089369 235.25534
|
||||
400 -1834.431 -1868.0728 33.64182 -916.85743 -916.27044 -34.944916 50.414038 -85.358954 169.55338
|
||||
500 -1834.4499 -1881.9059 47.456 -925.22919 -924.29582 -32.380877 44.755168 -77.136045 239.17628
|
||||
600 -1834.4343 -1869.8642 35.429976 -920.97805 -919.60784 -29.278358 43.270241 -72.548599 178.56562
|
||||
700 -1834.443 -1878.144 43.700934 -921.8051 -921.55671 -34.782141 49.959943 -84.742084 220.2509
|
||||
800 -1834.4327 -1869.824 35.391298 -917.19193 -917.91383 -34.718247 55.349728 -90.067976 178.37068
|
||||
900 -1834.4465 -1877.6741 43.227638 -923.33877 -922.50874 -31.826599 53.965592 -85.792191 217.86551
|
||||
1000 -1834.4412 -1876.1808 41.739587 -923.17282 -923.49367 -29.514347 55.454643 -84.96899 210.3658
|
||||
Loop time of 24.6309 on 4 procs for 1000 steps with 1536 atoms
|
||||
|
||||
Performance: 3.508 ns/day, 6.842 hours/ns, 40.599 timesteps/s
|
||||
99.7% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 22.906 | 23.627 | 24.36 | 14.0 | 95.92
|
||||
Bond | 0.00010889 | 0.00011572 | 0.00012719 | 0.0 | 0.00
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0.25886 | 0.992 | 1.7126 | 68.3 | 4.03
|
||||
Output | 0.00050901 | 0.00054202 | 0.00062029 | 0.0 | 0.00
|
||||
Modify | 0.0030735 | 0.0033236 | 0.0035581 | 0.3 | 0.01
|
||||
Other | | 0.008194 | | | 0.03
|
||||
|
||||
Nlocal: 384 ave 387 max 381 min
|
||||
Histogram: 1 0 0 0 0 2 0 0 0 1
|
||||
Nghost: 2262 ave 2265 max 2259 min
|
||||
Histogram: 1 0 0 0 0 2 0 0 0 1
|
||||
Neighs: 0 ave 0 max 0 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 248064 ave 250002 max 246126 min
|
||||
Histogram: 1 0 0 0 0 2 0 0 0 1
|
||||
|
||||
Total # of neighbors = 992256
|
||||
Ave neighs/atom = 646
|
||||
Ave special neighs/atom = 0
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:24
|
||||
143
examples/PACKAGES/interlayer/ilp_tmds/tmd.sw.mod
Normal file
143
examples/PACKAGES/interlayer/ilp_tmds/tmd.sw.mod
Normal file
@ -0,0 +1,143 @@
|
||||
# DATE: 2018-03-26 UNITS: metal CONTRIBUTOR: Jin-Wu Jiang jwjiang5918@hotmail.com
|
||||
# CITATION: J.-W. Jiang, Acta Mech. Solida. Sin 32, 17 (2019).
|
||||
# The Stillinger-Weber parameters, for transition-metal dichalcogenide (TMD) lateral heterostructures.
|
||||
# M = Mo, W; X = S, Se, Te
|
||||
|
||||
# these entries are in LAMMPS "metal" units:
|
||||
# epsilon = eV; sigma = Angstroms
|
||||
# other quantities are unitless
|
||||
|
||||
# format of a single entry (one or more lines):
|
||||
# element 1, element 2, element 3,
|
||||
# epsilon, sigma, a, lambda, gamma, costheta0, A, B, p, q, tol
|
||||
|
||||
# M-X-X terms
|
||||
Mo S S 1.000 1.252 2.523 67.883 1.000 0.143 6.918 7.223 4 0 0.0
|
||||
Mo Se Se 1.000 0.913 3.672 32.526 1.000 0.143 5.737 27.084 4 0 0.0
|
||||
Mo Te Te 1.000 0.880 4.097 23.705 1.000 0.143 5.086 40.810 4 0 0.0
|
||||
W S S 1.000 0.889 3.558 37.687 1.000 0.143 5.664 24.525 4 0 0.0
|
||||
W Se Se 1.000 0.706 4.689 25.607 1.000 0.143 5.476 65.662 4 0 0.0
|
||||
W Te Te 1.000 0.778 4.632 21.313 1.000 0.143 4.326 62.148 4 0 0.0
|
||||
# X-M-M terms
|
||||
S Mo Mo 1.000 1.252 2.523 62.449 1.000 0.143 6.918 7.223 4 0 0.0
|
||||
S W W 1.000 0.889 3.558 33.553 1.000 0.143 5.664 24.525 4 0 0.0
|
||||
Se Mo Mo 1.000 0.913 3.672 27.079 1.000 0.143 5.737 27.084 4 0 0.0
|
||||
Se W W 1.000 0.706 4.689 23.218 1.000 0.143 5.476 65.662 4 0 0.0
|
||||
Te Mo Mo 1.000 0.880 4.097 20.029 1.000 0.143 5.086 40.810 4 0 0.0
|
||||
Te W W 1.000 0.778 4.632 17.370 1.000 0.143 4.326 62.148 4 0 0.0
|
||||
# M-X1-X2 terms
|
||||
Mo S Se 1.000 0.000 0.000 46.989 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
Mo S Te 1.000 0.000 0.000 40.114 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
Mo Se S 1.000 0.000 0.000 46.989 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
Mo Se Te 1.000 0.000 0.000 27.767 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
Mo Te S 1.000 0.000 0.000 40.114 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
Mo Te Se 1.000 0.000 0.000 27.767 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
W S Se 1.000 0.000 0.000 31.065 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
W S Te 1.000 0.000 0.000 28.341 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
W Se S 1.000 0.000 0.000 31.065 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
W Se Te 1.000 0.000 0.000 23.362 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
W Te S 1.000 0.000 0.000 28.341 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
W Te Se 1.000 0.000 0.000 23.362 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
# X-M1-M2 terms
|
||||
S Mo W 1.000 0.000 0.000 45.775 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
S W Mo 1.000 0.000 0.000 45.775 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
Se Mo W 1.000 0.000 0.000 25.074 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
Se W Mo 1.000 0.000 0.000 25.074 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
Te Mo W 1.000 0.000 0.000 18.652 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
Te W Mo 1.000 0.000 0.000 18.652 1.000 0.143 0.000 0.000 4 0 0.0
|
||||
# zero terms
|
||||
Mo Mo Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo Mo W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo Mo S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo Mo Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo Mo Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo W Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo W W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo W S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo W Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo W Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo S Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo S W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo Se Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo Se W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo Te Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Mo Te W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W Mo Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W Mo W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W Mo S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W Mo Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W Mo Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W W Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W W W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W W S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W W Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W W Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W S Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W S W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W Se Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W Se W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W Te Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
W Te W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S Mo S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S Mo Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S Mo Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S W S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S W Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S W Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S S Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S S W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S S S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S S Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S S Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S Se Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S Se W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S Se S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S Se Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S Se Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S Te Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S Te W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S Te S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S Te Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
S Te Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se Mo S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se Mo Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se Mo Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se W S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se W Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se W Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se S Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se S W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se S S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se S Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se S Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se Se Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se Se W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se Se S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se Se Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se Se Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se Te Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se Te W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se Te S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se Te Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Se Te Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te Mo S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te Mo Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te Mo Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te W S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te W Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te W Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te S Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te S W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te S S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te S Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te S Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te Se Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te Se W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te Se S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te Se Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te Se Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te Te Mo 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te Te W 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te Te S 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te Te Se 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
Te Te Te 0.000 1.000 1.000 1.000 1.000 0.143 1.000 1.000 4 0 0.0
|
||||
@ -0,0 +1,218 @@
|
||||
Gold/graphene heterjunction atop2
|
||||
|
||||
206 atoms
|
||||
2 atom types
|
||||
|
||||
0 17.216640 xlo xhi
|
||||
0 14.910048 ylo yhi
|
||||
-30 30.000000 zlo zhi
|
||||
8.60832 0 0 xy xz yz
|
||||
|
||||
Atoms
|
||||
|
||||
1 1 1 0 -8.60832 -4.97002 3.5
|
||||
2 1 1 0 -7.1736 -4.14166 5.85461
|
||||
3 1 1 0 -5.73888 -3.31334 8.20922
|
||||
4 1 1 0 -7.1736 -2.48501 3.5
|
||||
5 1 1 0 -5.73888 -1.65666 5.85461
|
||||
6 1 1 0 -4.30416 -0.828336 8.20922
|
||||
7 1 1 0 -5.73888 0 3.5
|
||||
8 1 1 0 -4.30416 0.828352 5.85461
|
||||
9 1 1 0 -2.86944 1.65667 8.20922
|
||||
10 1 1 0 -4.30416 2.48501 3.5
|
||||
11 1 1 0 -2.86944 3.31336 5.85461
|
||||
12 1 1 0 -1.43472 4.14168 8.20922
|
||||
13 1 1 0 -2.86944 4.97002 3.5
|
||||
14 1 1 0 -1.43472 5.79837 5.85461
|
||||
15 1 1 0 0 6.62669 8.20922
|
||||
16 1 1 0 -1.43472 7.45502 3.5
|
||||
17 1 1 0 0 8.28337 5.85461
|
||||
18 1 1 0 1.43472 9.11167 8.20922
|
||||
19 1 1 0 -5.73888 -4.97002 3.5
|
||||
20 1 1 0 -4.30416 -4.14166 5.85461
|
||||
21 1 1 0 -2.86944 -3.31334 8.20922
|
||||
22 1 1 0 -4.30416 -2.48501 3.5
|
||||
23 1 1 0 -2.86944 -1.65666 5.85461
|
||||
24 1 1 0 -1.43472 -0.828336 8.20922
|
||||
25 1 1 0 -2.86944 0 3.5
|
||||
26 1 1 0 -1.43472 0.828352 5.85461
|
||||
27 1 1 0 0 1.65667 8.20922
|
||||
28 1 1 0 -1.43472 2.48501 3.5
|
||||
29 1 1 0 0 3.31336 5.85461
|
||||
30 1 1 0 1.43472 4.14168 8.20922
|
||||
31 1 1 0 0 4.97002 3.5
|
||||
32 1 1 0 1.43472 5.79837 5.85461
|
||||
33 1 1 0 2.86944 6.62669 8.20922
|
||||
34 1 1 0 1.43472 7.45502 3.5
|
||||
35 1 1 0 2.86944 8.28337 5.85461
|
||||
36 1 1 0 4.30416 9.11167 8.20922
|
||||
37 1 1 0 -2.86944 -4.97002 3.5
|
||||
38 1 1 0 -1.43472 -4.14166 5.85461
|
||||
39 1 1 0 0 -3.31334 8.20922
|
||||
40 1 1 0 -1.43472 -2.48501 3.5
|
||||
41 1 1 0 0 -1.65666 5.85461
|
||||
42 1 1 0 1.43472 -0.828336 8.20922
|
||||
43 1 1 0 0 0 3.5
|
||||
44 1 1 0 1.43472 0.828352 5.85461
|
||||
45 1 1 0 2.86944 1.65667 8.20922
|
||||
46 1 1 0 1.43472 2.48501 3.5
|
||||
47 1 1 0 2.86944 3.31336 5.85461
|
||||
48 1 1 0 4.30416 4.14168 8.20922
|
||||
49 1 1 0 2.86944 4.97002 3.5
|
||||
50 1 1 0 4.30416 5.79837 5.85461
|
||||
51 1 1 0 5.73888 6.62669 8.20922
|
||||
52 1 1 0 4.30416 7.45502 3.5
|
||||
53 1 1 0 5.73888 8.28337 5.85461
|
||||
54 1 1 0 7.1736 9.11167 8.20922
|
||||
55 1 1 0 0 -4.97002 3.5
|
||||
56 1 1 0 1.43472 -4.14166 5.85461
|
||||
57 1 1 0 2.86944 -3.31334 8.20922
|
||||
58 1 1 0 1.43472 -2.48501 3.5
|
||||
59 1 1 0 2.86944 -1.65666 5.85461
|
||||
60 1 1 0 4.30416 -0.828336 8.20922
|
||||
61 1 1 0 2.86944 0 3.5
|
||||
62 1 1 0 4.30416 0.828352 5.85461
|
||||
63 1 1 0 5.73888 1.65667 8.20922
|
||||
64 1 1 0 4.30416 2.48501 3.5
|
||||
65 1 1 0 5.73888 3.31336 5.85461
|
||||
66 1 1 0 7.1736 4.14168 8.20922
|
||||
67 1 1 0 5.73888 4.97002 3.5
|
||||
68 1 1 0 7.1736 5.79837 5.85461
|
||||
69 1 1 0 8.60832 6.62669 8.20922
|
||||
70 1 1 0 7.1736 7.45502 3.5
|
||||
71 1 1 0 8.60832 8.28337 5.85461
|
||||
72 1 1 0 10.0431 9.11167 8.20922
|
||||
73 1 1 0 2.86944 -4.97002 3.5
|
||||
74 1 1 0 4.30416 -4.14166 5.85461
|
||||
75 1 1 0 5.73888 -3.31334 8.20922
|
||||
76 1 1 0 4.30416 -2.48501 3.5
|
||||
77 1 1 0 5.73888 -1.65666 5.85461
|
||||
78 1 1 0 7.1736 -0.828336 8.20922
|
||||
79 1 1 0 5.73888 0 3.5
|
||||
80 1 1 0 7.1736 0.828352 5.85461
|
||||
81 1 1 0 8.60832 1.65667 8.20922
|
||||
82 1 1 0 7.1736 2.48501 3.5
|
||||
83 1 1 0 8.60832 3.31336 5.85461
|
||||
84 1 1 0 10.0431 4.14168 8.20922
|
||||
85 1 1 0 8.60832 4.97002 3.5
|
||||
86 1 1 0 10.0431 5.79837 5.85461
|
||||
87 1 1 0 11.4777 6.62669 8.20922
|
||||
88 1 1 0 10.0431 7.45502 3.5
|
||||
89 1 1 0 11.4777 8.28337 5.85461
|
||||
90 1 1 0 12.9124 9.11167 8.20922
|
||||
91 1 1 0 5.73888 -4.97002 3.5
|
||||
92 1 1 0 7.1736 -4.14166 5.85461
|
||||
93 1 1 0 8.60832 -3.31334 8.20922
|
||||
94 1 1 0 7.1736 -2.48501 3.5
|
||||
95 1 1 0 8.60832 -1.65666 5.85461
|
||||
96 1 1 0 10.0431 -0.828336 8.20922
|
||||
97 1 1 0 8.60832 0 3.5
|
||||
98 1 1 0 10.0431 0.828352 5.85461
|
||||
99 1 1 0 11.4777 1.65667 8.20922
|
||||
100 1 1 0 10.0431 2.48501 3.5
|
||||
101 1 1 0 11.4777 3.31336 5.85461
|
||||
102 1 1 0 12.9124 4.14168 8.20922
|
||||
103 1 1 0 11.4777 4.97002 3.5
|
||||
104 1 1 0 12.9124 5.79837 5.85461
|
||||
105 1 1 0 14.3472 6.62669 8.20922
|
||||
106 1 1 0 12.9124 7.45502 3.5
|
||||
107 1 1 0 14.3472 8.28337 5.85461
|
||||
108 1 1 0 15.7819 9.11167 8.20922
|
||||
109 2 2 0 -11.0678 -6.39002 0
|
||||
110 2 2 0 -9.83808 -5.68001 0
|
||||
111 2 2 0 -9.83808 -4.26001 0
|
||||
112 2 2 0 -8.60832 -3.55001 0
|
||||
113 2 2 0 -8.60832 -2.13001 0
|
||||
114 2 2 0 -7.37856 -1.42 0
|
||||
115 2 2 0 -7.37856 0 0
|
||||
116 2 2 0 -6.1488 0.710007 0
|
||||
117 2 2 0 -6.1488 2.13001 0
|
||||
118 2 2 0 -4.91904 2.84001 0
|
||||
119 2 2 0 -4.91904 4.26001 0
|
||||
120 2 2 0 -3.68928 4.97002 0
|
||||
121 2 2 0 -3.68928 6.39002 0
|
||||
122 2 2 0 -2.45952 7.10003 0
|
||||
123 2 2 0 -8.60832 -6.39002 0
|
||||
124 2 2 0 -7.37856 -5.68001 0
|
||||
125 2 2 0 -7.37856 -4.26001 0
|
||||
126 2 2 0 -6.1488 -3.55001 0
|
||||
127 2 2 0 -6.1488 -2.13001 0
|
||||
128 2 2 0 -4.91904 -1.42 0
|
||||
129 2 2 0 -4.91904 0 0
|
||||
130 2 2 0 -3.68928 0.710007 0
|
||||
131 2 2 0 -3.68928 2.13001 0
|
||||
132 2 2 0 -2.45952 2.84001 0
|
||||
133 2 2 0 -2.45952 4.26001 0
|
||||
134 2 2 0 -1.22976 4.97002 0
|
||||
135 2 2 0 -1.22976 6.39002 0
|
||||
136 2 2 0 0 7.10003 0
|
||||
137 2 2 0 -6.1488 -6.39002 0
|
||||
138 2 2 0 -4.91904 -5.68001 0
|
||||
139 2 2 0 -4.91904 -4.26001 0
|
||||
140 2 2 0 -3.68928 -3.55001 0
|
||||
141 2 2 0 -3.68928 -2.13001 0
|
||||
142 2 2 0 -2.45952 -1.42 0
|
||||
143 2 2 0 -2.45952 0 0
|
||||
144 2 2 0 -1.22976 0.710007 0
|
||||
145 2 2 0 -1.22976 2.13001 0
|
||||
146 2 2 0 0 2.84001 0
|
||||
147 2 2 0 0 4.26001 0
|
||||
148 2 2 0 1.22976 4.97002 0
|
||||
149 2 2 0 1.22976 6.39002 0
|
||||
150 2 2 0 2.45952 7.10003 0
|
||||
151 2 2 0 -3.68928 -6.39002 0
|
||||
152 2 2 0 -2.45952 -5.68001 0
|
||||
153 2 2 0 -2.45952 -4.26001 0
|
||||
154 2 2 0 -1.22976 -3.55001 0
|
||||
155 2 2 0 -1.22976 -2.13001 0
|
||||
156 2 2 0 0 -1.42 0
|
||||
157 2 2 0 0 0 0
|
||||
158 2 2 0 1.22976 0.710007 0
|
||||
159 2 2 0 1.22976 2.13001 0
|
||||
160 2 2 0 2.45952 2.84001 0
|
||||
161 2 2 0 2.45952 4.26001 0
|
||||
162 2 2 0 3.68928 4.97002 0
|
||||
163 2 2 0 3.68928 6.39002 0
|
||||
164 2 2 0 4.91904 7.10003 0
|
||||
165 2 2 0 -1.22976 -6.39002 0
|
||||
166 2 2 0 0 -5.68001 0
|
||||
167 2 2 0 0 -4.26001 0
|
||||
168 2 2 0 1.22976 -3.55001 0
|
||||
169 2 2 0 1.22976 -2.13001 0
|
||||
170 2 2 0 2.45952 -1.42 0
|
||||
171 2 2 0 2.45952 0 0
|
||||
172 2 2 0 3.68928 0.710007 0
|
||||
173 2 2 0 3.68928 2.13001 0
|
||||
174 2 2 0 4.91904 2.84001 0
|
||||
175 2 2 0 4.91904 4.26001 0
|
||||
176 2 2 0 6.1488 4.97002 0
|
||||
177 2 2 0 6.1488 6.39002 0
|
||||
178 2 2 0 7.37856 7.10003 0
|
||||
179 2 2 0 1.22976 -6.39002 0
|
||||
180 2 2 0 2.45952 -5.68001 0
|
||||
181 2 2 0 2.45952 -4.26001 0
|
||||
182 2 2 0 3.68928 -3.55001 0
|
||||
183 2 2 0 3.68928 -2.13001 0
|
||||
184 2 2 0 4.91904 -1.42 0
|
||||
185 2 2 0 4.91904 0 0
|
||||
186 2 2 0 6.1488 0.710007 0
|
||||
187 2 2 0 6.1488 2.13001 0
|
||||
188 2 2 0 7.37856 2.84001 0
|
||||
189 2 2 0 7.37856 4.26001 0
|
||||
190 2 2 0 8.60832 4.97002 0
|
||||
191 2 2 0 8.60832 6.39002 0
|
||||
192 2 2 0 9.83808 7.10003 0
|
||||
193 2 2 0 3.68928 -6.39002 0
|
||||
194 2 2 0 4.91904 -5.68001 0
|
||||
195 2 2 0 4.91904 -4.26001 0
|
||||
196 2 2 0 6.1488 -3.55001 0
|
||||
197 2 2 0 6.1488 -2.13001 0
|
||||
198 2 2 0 7.37856 -1.42 0
|
||||
199 2 2 0 7.37856 0 0
|
||||
200 2 2 0 8.60832 0.710007 0
|
||||
201 2 2 0 8.60832 2.13001 0
|
||||
202 2 2 0 9.83808 2.84001 0
|
||||
203 2 2 0 9.83808 4.26001 0
|
||||
204 2 2 0 11.0678 4.97002 0
|
||||
205 2 2 0 11.0678 6.39002 0
|
||||
206 2 2 0 12.2976 7.10003 0
|
||||
304
examples/PACKAGES/interlayer/saip_metal/Au_u3.eam
Normal file
304
examples/PACKAGES/interlayer/saip_metal/Au_u3.eam
Normal file
@ -0,0 +1,304 @@
|
||||
DATE: 2007-06-11 CONTRIBUTOR: Stephen Foiles, foiles@sandia.gov CITATION: Foiles et al, Phys Rev B, 33, 7983 (1986) COMMENT: Au functions (universal 3)
|
||||
79 196.97 4.0800 FCC
|
||||
500 5.0100200400801306e-04 500 1.1212121212121229e-02 5.5500000000000114e+00
|
||||
0. -4.8957152905617285e-01 -7.9715640025473178e-01 -1.0578883960846852e+00 -1.2926127947875230e+00
|
||||
-1.5095569422429875e+00 -1.7122648936144031e+00 -1.9048413422057351e+00 -2.0891201727137485e+00 -2.2663983238144567e+00
|
||||
-2.4376343280801933e+00 -2.6035610602672676e+00 -2.7647541747522837e+00 -2.9216758736402824e+00 -3.0747041024053061e+00
|
||||
-3.2241527134554815e+00 -3.3702858039738999e+00 -3.5133281677083659e+00 -3.6534730789787062e+00 -3.7908881991052965e+00
|
||||
-3.9257201323331685e+00 -4.0580979915702073e+00 -4.1881362255503518e+00 -4.3159368868681156e+00 -4.4415914703869532e+00
|
||||
-4.5651824180406777e+00 -4.6867843610837383e+00 -4.8057271896893496e+00 -4.9225428194100118e+00 -5.0375518642392478e+00
|
||||
-5.1508071160268400e+00 -5.2623574177682428e+00 -5.3722481110899878e+00 -5.4805214221734673e+00 -5.5872167960755803e+00
|
||||
-5.6923711875656409e+00 -5.7960193150587713e+00 -5.8981938832717162e+00 -5.9989257789102055e+00 -6.0982442433711128e+00
|
||||
-6.1961770255185797e+00 -6.2927505172300755e+00 -6.3879898739630221e+00 -6.4819191222678398e+00 -6.5745612557757909e+00
|
||||
-6.6659383213942363e+00 -6.7560714963274222e+00 -6.8449811575657975e+00 -6.9326869443612225e+00 -7.0192078145907431e+00
|
||||
-7.1045620956965934e+00 -7.1887675307249026e+00 -7.2718413201122871e+00 -7.3538001594709783e+00 -7.4346602740871788e+00
|
||||
-7.5144374500173683e+00 -7.5931470626842668e+00 -7.6708041027267768e+00 -7.7474231996531557e+00 -7.8230186434242626e+00
|
||||
-7.8976044041140483e+00 -7.9711941500525256e+00 -8.0438012641899377e+00 -8.1154388592656233e+00 -8.1861197916399533e+00
|
||||
-8.2558566739872958e+00 -8.3245422947421162e+00 -8.3922909783827322e+00 -8.4591345411027419e+00 -8.5250848116729685e+00
|
||||
-8.5901534242832440e+00 -8.6543518260104975e+00 -8.7176912839660190e+00 -8.7801828915952456e+00 -8.8418375746797437e+00
|
||||
-8.9026660968182796e+00 -8.9626790645054371e+00 -9.0218869318345583e+00 -9.0803000048545641e+00 -9.1379284456149890e+00
|
||||
-9.1947822759222504e+00 -9.2508713808343828e+00 -9.3062055119176534e+00 -9.3607942902817172e+00 -9.4146472094187175e+00
|
||||
-9.4677736378592954e+00 -9.5201828216614217e+00 -9.5718838867486511e+00 -9.6228858411114970e+00 -9.6731975768810230e+00
|
||||
-9.7228278723202948e+00 -9.7717853935587300e+00 -9.8200786965443854e+00 -9.8677162285657687e+00 -9.9147063299085403e+00
|
||||
-9.9610572353697080e+00 -1.0006777075716059e+01 -1.0051873879085917e+01 -1.0096355572334687e+01 -1.0140229982333324e+01
|
||||
-1.0183504837223779e+01 -1.0226187767631245e+01 -1.0268286307844107e+01 -1.0309807896958148e+01 -1.0350759879991415e+01
|
||||
-1.0391149508974991e+01 -1.0430983944016759e+01 -1.0470270254340903e+01 -1.0509015419313812e+01 -1.0547226329446460e+01
|
||||
-1.0584909787380639e+01 -1.0622072508863425e+01 -1.0658721123705675e+01 -1.0694862176726588e+01 -1.0730502128690375e+01
|
||||
-1.0765647357231160e+01 -1.0800304157765481e+01 -1.0834478744401679e+01 -1.0868177250846543e+01 -1.0901405731255011e+01
|
||||
-1.0934170161169504e+01 -1.0966476438362747e+01 -1.0998305613052082e+01 -1.1029642623608026e+01 -1.1060541364165090e+01
|
||||
-1.1091007442363775e+01 -1.1121046391844686e+01 -1.1150663673092822e+01 -1.1179864674283067e+01 -1.1208654712122325e+01
|
||||
-1.1237039032675568e+01 -1.1265022812202858e+01 -1.1292611157979593e+01 -1.1319809109111020e+01 -1.1346621637357089e+01
|
||||
-1.1373053647933659e+01 -1.1399109980321157e+01 -1.1424795409037074e+01 -1.1450114644530743e+01 -1.1475072333821913e+01
|
||||
-1.1499673061386034e+01 -1.1523921349906175e+01 -1.1547821661045987e+01 -1.1571378396217483e+01 -1.1594595897343936e+01
|
||||
-1.1617478447613394e+01 -1.1640030272231115e+01 -1.1662255539162913e+01 -1.1684158359879063e+01 -1.1705742790064448e+01
|
||||
-1.1727012830377930e+01 -1.1747972427151581e+01 -1.1768625473108273e+01 -1.1788975808067732e+01 -1.1809027219651057e+01
|
||||
-1.1828783443971588e+01 -1.1848248166323742e+01 -1.1867425021867007e+01 -1.1886317596296180e+01 -1.1904929426511444e+01
|
||||
-1.1923264001280529e+01 -1.1941324761893725e+01 -1.1959115102806834e+01 -1.1976638372285890e+01 -1.1993897873043124e+01
|
||||
-1.2010896862859283e+01 -1.2027638555207147e+01 -1.2044126119861630e+01 -1.2060362683511414e+01 -1.2076351330354896e+01
|
||||
-1.2092095102692895e+01 -1.2107597001515842e+01 -1.2122859987083302e+01 -1.2137886979491554e+01 -1.2152680859244981e+01
|
||||
-1.2167244467811599e+01 -1.2181580608172624e+01 -1.2195692045369128e+01 -1.2209581507042515e+01 -1.2223251683959631e+01
|
||||
-1.2236705230541986e+01 -1.2249944765383702e+01 -1.2262972871759644e+01 -1.2275792098131888e+01 -1.2288404958645174e+01
|
||||
-1.2300813933624454e+01 -1.2313021470052036e+01 -1.2325029982052683e+01 -1.2336841851360191e+01 -1.2348459427786452e+01
|
||||
-1.2359885029681209e+01 -1.2371120944384643e+01 -1.2382169428670977e+01 -1.2393032709195722e+01 -1.2403712982922912e+01
|
||||
-1.2414212417563022e+01 -1.2424533151985770e+01 -1.2434677296644395e+01 -1.2444646933984359e+01 -1.2454444118846823e+01
|
||||
-1.2464070878870530e+01 -1.2473529214881864e+01 -1.2482821101290483e+01 -1.2491948486462661e+01 -1.2500913293104531e+01
|
||||
-1.2509717418631112e+01 -1.2518362735533742e+01 -1.2526851091744220e+01 -1.2535184310980299e+01 -1.2543364193106981e+01
|
||||
-1.2551392514460986e+01 -1.2559271028251487e+01 -1.2567001464809550e+01 -1.2574585531975458e+01 -1.2582024915407260e+01
|
||||
-1.2589321278906255e+01 -1.2596476264728608e+01 -1.2603491493898218e+01 -1.2610368566512761e+01 -1.2617109062046893e+01
|
||||
-1.2623714539650450e+01 -1.2630186538435169e+01 -1.2636526577774021e+01 -1.2642736157575655e+01 -1.2648816758572025e+01
|
||||
-1.2654769842585210e+01 -1.2660596852812091e+01 -1.2666299214075934e+01 -1.2671878333104587e+01 -1.2677335598782520e+01
|
||||
-1.2682672382407077e+01 -1.2687890037941429e+01 -1.2692989902259228e+01 -1.2697973295398810e+01 -1.2702841520781590e+01
|
||||
-1.2707595865484677e+01 -1.2712237600437788e+01 -1.2716767980672103e+01 -1.2721188245543544e+01 -1.2725499618954018e+01
|
||||
-1.2729703309571278e+01 -1.2733800511047093e+01 -1.2737792402218929e+01 -1.2741680147342777e+01 -1.2745464896273461e+01
|
||||
-1.2749147784686329e+01 -1.2752729934263357e+01 -1.2756212452903469e+01 -1.2759596434907849e+01 -1.2762882961170817e+01
|
||||
-1.2766073099373443e+01 -1.2769167904163396e+01 -1.2772168417342755e+01 -1.2775075668041040e+01 -1.2777890672899161e+01
|
||||
-1.2780614436235851e+01 -1.2783247950228656e+01 -1.2785792195072531e+01 -1.2788248139155144e+01 -1.2790616739214897e+01
|
||||
-1.2792898940504074e+01 -1.2795095676954247e+01 -1.2797207871315777e+01 -1.2799236435329590e+01 -1.2801182269872015e+01
|
||||
-1.2803046265103035e+01 -1.2804829300613164e+01 -1.2806532245573180e+01 -1.2808155958872703e+01 -1.2809701289260033e+01
|
||||
-1.2811169075485736e+01 -1.2812560146428609e+01 -1.2813875321245860e+01 -1.2815115409492705e+01 -1.2816281211258342e+01
|
||||
-1.2817373517289411e+01 -1.2818393109122212e+01 -1.2819340759202873e+01 -1.2820217231013203e+01 -1.2821023279192104e+01
|
||||
-1.2821759649647788e+01 -1.2822427079680551e+01 -1.2823026298102377e+01 -1.2823558025339139e+01 -1.2824022973555884e+01
|
||||
-1.2824421846750738e+01 -1.2824755340884394e+01 -1.2825024143968903e+01 -1.2825228936181929e+01 -1.2825370389970544e+01
|
||||
-1.2825449170149454e+01 -1.2825465934008321e+01 -1.2825421331404641e+01 -1.2825316004863907e+01 -1.2825150589679538e+01
|
||||
-1.2824925714000869e+01 -1.2824641998933430e+01 -1.2824300058630001e+01 -1.2823900500371678e+01 -1.2823443924677008e+01
|
||||
-1.2822930925372475e+01 -1.2822362089687545e+01 -1.2821737998335266e+01 -1.2821059225605609e+01 -1.2820326339439703e+01
|
||||
-1.2819539901514531e+01 -1.2818700467326494e+01 -1.2817808586266779e+01 -1.2816864801704810e+01 -1.2815869651057142e+01
|
||||
-1.2814823665874542e+01 -1.2813727371908385e+01 -1.2812581289188415e+01 -1.2811385932095050e+01 -1.2810141809430661e+01
|
||||
-1.2808849424492109e+01 -1.2807509275137932e+01 -1.2806121853857348e+01 -1.2804687647842002e+01 -1.2803207139049391e+01
|
||||
-1.2801680804267562e+01 -1.2800109115181044e+01 -1.2798492538441906e+01 -1.2796831535720230e+01 -1.2795126563774261e+01
|
||||
-1.2793378074507473e+01 -1.2791586515037579e+01 -1.2789752327746214e+01 -1.2787875950343164e+01 -1.2785957815921392e+01
|
||||
-1.2783998353016159e+01 -1.2781997985658450e+01 -1.2779957133436710e+01 -1.2777876211545163e+01 -1.2775755630837466e+01
|
||||
-1.2773595797890607e+01 -1.2771397115037757e+01 -1.2769159980443646e+01 -1.2766884788135826e+01 -1.2764571928060604e+01
|
||||
-1.2762221786140117e+01 -1.2759834744312911e+01 -1.2757411180587496e+01 -1.2754951469079856e+01 -1.2752455980080526e+01
|
||||
-1.2749925080078015e+01 -1.2747359131814051e+01 -1.2744758494332700e+01 -1.2742123523021974e+01 -1.2739454569654299e+01
|
||||
-1.2736751982434271e+01 -1.2734016106033550e+01 -1.2731247281644073e+01 -1.2728445847010562e+01 -1.2725612136477366e+01
|
||||
-1.2722746481020067e+01 -1.2719849208295955e+01 -1.2716920642677451e+01 -1.2713961105291219e+01 -1.2710970914052950e+01
|
||||
-1.2707950383715342e+01 -1.2704899825894245e+01 -1.2701819549111633e+01 -1.2698709858824714e+01 -1.2695571057476627e+01
|
||||
-1.2692403444507590e+01 -1.2689207316418333e+01 -1.2685982966778283e+01 -1.2682730686276955e+01 -1.2679450762748274e+01
|
||||
-1.2676143481210602e+01 -1.2672809123886282e+01 -1.2669447970248484e+01 -1.2666060297048034e+01 -1.2662646378337513e+01
|
||||
-1.2659206485508321e+01 -1.2655740887330012e+01 -1.2652249849954160e+01 -1.2648733636973702e+01 -1.2645192509433400e+01
|
||||
-1.2641626725862807e+01 -1.2638036542308100e+01 -1.2634422212364143e+01 -1.2630783987181303e+01 -1.2627122115519796e+01
|
||||
-1.2623436843761965e+01 -1.2619728415937288e+01 -1.2615997073756944e+01 -1.2612243056634497e+01 -1.2608466601707505e+01
|
||||
-1.2604667943878439e+01 -1.2600847315820829e+01 -1.2597004948012454e+01 -1.2593141068763316e+01 -1.2589255904233141e+01
|
||||
-1.2585349678458442e+01 -1.2581422613378436e+01 -1.2577474928845049e+01 -1.2573506842665893e+01 -1.2569518570612672e+01
|
||||
-1.2565510326445747e+01 -1.2561482321940957e+01 -1.2557434766904635e+01 -1.2553367869200429e+01 -1.2549281834767953e+01
|
||||
-1.2545176867640066e+01 -1.2541053169977886e+01 -1.2536910942071927e+01 -1.2532750382365748e+01 -1.2528571687499834e+01
|
||||
-1.2524375052292953e+01 -1.2520160669792631e+01 -1.2515928731280837e+01 -1.2511679426286037e+01 -1.2507412942623887e+01
|
||||
-1.2503129466394512e+01 -1.2498829182010240e+01 -1.2494512272209931e+01 -1.2490178918083529e+01 -1.2485829299075931e+01
|
||||
-1.2481463593022681e+01 -1.2477081976149066e+01 -1.2472684623102168e+01 -1.2468271706957921e+01 -1.2463843399241114e+01
|
||||
-1.2459399869938352e+01 -1.2454941287520114e+01 -1.2450467818950528e+01 -1.2445979629709200e+01 -1.2441476883802807e+01
|
||||
-1.2436959743776242e+01 -1.2432428370735579e+01 -1.2427882924363757e+01 -1.2423323562927180e+01 -1.2418750443296403e+01
|
||||
-1.2414163720958641e+01 -1.2409563550025496e+01 -1.2404950083268204e+01 -1.2400323472108994e+01 -1.2395683866638137e+01
|
||||
-1.2391031415638508e+01 -1.2386366266593996e+01 -1.2381688565699505e+01 -1.2376998457873469e+01 -1.2372296086778988e+01
|
||||
-1.2367581594827470e+01 -1.2362855123197278e+01 -1.2358116811839636e+01 -1.2353366799502965e+01 -1.2348605223731283e+01
|
||||
-1.2343832220880358e+01 -1.2339047926144303e+01 -1.2334252473538754e+01 -1.2329445995936339e+01 -1.2324628625072819e+01
|
||||
-1.2319800491555498e+01 -1.2314961724870955e+01 -1.2310112453398233e+01 -1.2305252804431802e+01 -1.2300382904176104e+01
|
||||
-1.2295502877757599e+01 -1.2290612849255922e+01 -1.2285712941681595e+01 -1.2280803277011501e+01 -1.2275883976197065e+01
|
||||
-1.2270955159159030e+01 -1.2266016944812691e+01 -1.2261069451071990e+01 -1.2256112794858382e+01 -1.2251147092104929e+01
|
||||
-1.2246172457791317e+01 -1.2241189005916794e+01 -1.2236196849536327e+01 -1.2231196100756961e+01 -1.2226186870754645e+01
|
||||
-1.2221169269778557e+01 -1.2216143407156778e+01 -1.2211109391316540e+01 -1.2206067329782854e+01 -1.2201017329189654e+01
|
||||
-1.2195959495286388e+01 -1.2190893932956897e+01 -1.2185820746216905e+01 -1.2180740038219483e+01 -1.2175651911274144e+01
|
||||
-1.2170556466849121e+01 -1.2165453805586139e+01 -1.2160344027287238e+01 -1.2155227230953187e+01 -1.2150103514768489e+01
|
||||
-1.2144972976118879e+01 -1.2139835711592468e+01 -1.2134691816995428e+01 -1.2129541387352219e+01 -1.2124384516914006e+01
|
||||
-1.2119221299176161e+01 -1.2114051826867808e+01 -1.2108876191973877e+01 -1.2103694485731239e+01 -1.2098506798646667e+01
|
||||
1.0000000000000000e+01 1.0805574801665273e+01 1.0631847858835727e+01 1.0461243720756954e+01 1.0293701484862595e+01
|
||||
1.0129161486782039e+01 9.9675652748633752e+00 9.8088555852185095e+00 9.6529763172782737e+00 9.4998725098501495e+00
|
||||
9.3494903176658113e+00 9.2017769884090512e+00 9.0566808402160746e+00 8.9141512396361691e+00 8.7741385800461558e+00
|
||||
8.6365942605050918e+00 8.5014706650466110e+00 8.3687211423932126e+00 8.2382999860894301e+00 8.1101624150417138e+00
|
||||
7.9842645544597417e+00 7.8605634171872794e+00 7.7390168854186641e+00 7.6195836927906271e+00 7.5022234068421483e+00
|
||||
7.3868964118359770e+00 7.2735638919322412e+00 7.1621878147100233e+00 7.0527309150267854e+00 6.9451566792110100e+00
|
||||
6.8394293295802697e+00 6.7355138092775633e+00 6.6333757674209153e+00 6.5329815445585950e+00 6.4342981584245820e+00
|
||||
6.3372932899870307e+00 6.2419352697848751e+00 6.1481930645462910e+00 6.0560362640834171e+00 5.9654350684569408e+00
|
||||
5.8763602754058297e+00 5.7887832680370934e+00 5.7026760027689534e+00 5.6180109975234984e+00 5.5347613201630281e+00
|
||||
5.4529005771653658e+00 5.3724029025332811e+00 5.2932429469330771e+00 5.2153958670574525e+00 5.1388373152087752e+00
|
||||
5.0635434290976775e+00 4.9894908218520868e+00 4.9166565722336202e+00 4.8450182150562568e+00 4.7745537318030244e+00
|
||||
4.7052415414373172e+00 4.6370604914042133e+00 4.5699898488174995e+00 4.5040092918309540e+00 4.4390989011863837e+00
|
||||
4.3752391519379046e+00 4.3124109053472068e+00 4.2505954009471623e+00 4.1897742487697371e+00 4.1299294217346301e+00
|
||||
4.0710432481965597e+00 4.0130984046462856e+00 3.9560779085630173e+00 3.8999651114162219e+00 3.8447436918106490e+00
|
||||
3.7903976487755244e+00 3.7369112951915469e+00 3.6842692513550759e+00 3.6324564386757885e+00 3.5814580735046917e+00
|
||||
3.5312596610909424e+00 3.4818469896633388e+00 3.4332061246358023e+00 3.3853234029318457e+00 3.3381854274280585e+00
|
||||
3.2917790615123010e+00 3.2460914237553453e+00 3.2011098826928475e+00 3.1568220517161620e+00 3.1132157840687995e+00
|
||||
3.0702791679473052e+00 3.0280005217038024e+00 2.9863683891479127e+00 2.9453715349469149e+00 2.9049989401212031e+00
|
||||
2.8652397976330661e+00 2.8260835080677538e+00 2.7875196754040701e+00 2.7495381028725490e+00 2.7121287889004861e+00
|
||||
2.6752819231404459e+00 2.6389878825821427e+00 2.6032372277445006e+00 2.5680206989471230e+00 2.5333292126596092e+00
|
||||
2.4991538579262169e+00 2.4654858928652175e+00 2.4323167412411522e+00 2.3996379891079158e+00 2.3674413815221413e+00
|
||||
2.3357188193244838e+00 2.3044623559882069e+00 2.2736641945330405e+00 2.2433166845033981e+00 2.2134123190090094e+00
|
||||
2.1839437318277817e+00 2.1549036945682332e+00 2.1262851138912282e+00 2.0980810287893803e+00 2.0702846079231421e+00
|
||||
2.0428891470118629e+00 2.0158880662797287e+00 1.9892749079540977e+00 1.9630433338162305e+00 1.9371871228028326e+00
|
||||
1.9117001686573332e+00 1.8865764776298732e+00 1.8618101662255242e+00 1.8373954589986567e+00 1.8133266863934736e+00
|
||||
1.7895982826292780e+00 1.7662047836297887e+00 1.7431408249951446e+00 1.7204011400162642e+00 1.6979805577301548e+00
|
||||
1.6758740010159414e+00 1.6540764847299485e+00 1.6325831138797682e+00 1.6113890818360090e+00 1.5904896685812631e+00
|
||||
1.5698802389953030e+00 1.5495562411756083e+00 1.5295132047931617e+00 1.5097467394817556e+00 1.4902525332610779e+00
|
||||
1.4710263509920978e+00 1.4520640328647758e+00 1.4333614929167453e+00 1.4149147175828105e+00 1.3967197642743017e+00
|
||||
1.3787727599880384e+00 1.3610698999438213e+00 1.3436074462500613e+00 1.3263817265971412e+00 1.3093891329776568e+00
|
||||
1.2926261204330345e+00 1.2760892058259614e+00 1.2597749666384104e+00 1.2436800397941354e+00 1.2278011205055179e+00
|
||||
1.2121349611442653e+00 1.1966783701352099e+00 1.1814282108731646e+00 1.1663814006616207e+00 1.1515349096736216e+00
|
||||
1.1368857599339677e+00 1.1224310243221538e+00 1.1081678255959133e+00 1.0940933354347777e+00 1.0802047735033540e+00
|
||||
1.0664994065336018e+00 1.0529745474261105e+00 1.0396275543696873e+00 1.0264558299790636e+00 1.0134568204501591e+00
|
||||
1.0006280147325910e+00 9.8796694371932858e-01 9.7547117945254058e-01 9.6313833434599161e-01 9.5096606042309872e-01
|
||||
9.3895204857064130e-01 9.2709402780763028e-01 9.1538976456901011e-01 9.0383706200408298e-01 8.9243375928902324e-01
|
||||
8.8117773095362040e-01 8.7006688622134831e-01 8.5909916836317990e-01 8.4827255406426261e-01 8.3758505280347961e-01
|
||||
8.2703470624577946e-01 8.1661958764644282e-01 8.0633780126770205e-01 7.9618748180697452e-01 7.8616679383677379e-01
|
||||
7.7627393125577271e-01 7.6650711675103622e-01 7.5686460127104382e-01 7.4734466350931328e-01 7.3794560939844800e-01
|
||||
7.2866577161422441e-01 7.1950350908982941e-01 7.1045720653968303e-01 7.0152527399280729e-01 6.9270614633555994e-01
|
||||
6.8399828286361952e-01 6.7540016684266746e-01 6.6691030507811533e-01 6.5852722749315973e-01 6.5024948671545957e-01
|
||||
6.4207565767183183e-01 6.3400433719114346e-01 6.2603414361502985e-01 6.1816371641637247e-01 6.1039171582519103e-01
|
||||
6.0271682246215619e-01 5.9513773697920058e-01 5.8765317970717135e-01 5.8026189031060227e-01 5.7296262744913307e-01
|
||||
5.6575416844568593e-01 5.5863530896103342e-01 5.5160486267489972e-01 5.4466166097323665e-01 5.3780455264156046e-01
|
||||
5.3103240356438519e-01 5.2434409643048596e-01 5.1773853044386442e-01 5.1121462104036297e-01 5.0477129960984257e-01
|
||||
4.9840751322363630e-01 4.9212222436742437e-01 4.8591441067911845e-01 4.7978306469198984e-01 4.7372719358258308e-01
|
||||
4.6774581892364075e-01 4.6183797644160940e-01 4.5600271577899854e-01 4.5023910026113789e-01 4.4454620666747857e-01
|
||||
4.3892312500724628e-01 4.3336895829939870e-01 4.2788282235674124e-01 4.2246384557415340e-01 4.1711116872087395e-01
|
||||
4.1182394473671557e-01 4.0660133853207370e-01 4.0144252679182912e-01 3.9634669778282294e-01 3.9131305116509196e-01
|
||||
3.8634079780649699e-01 3.8142915960098733e-01 3.7657736929016927e-01 3.7178467028821949e-01 3.6705031651014153e-01
|
||||
3.6237357220308475e-01 3.5775371178097082e-01 3.5319001966201569e-01 3.4868179010940459e-01 3.4422832707482875e-01
|
||||
3.3982894404491404e-01 3.3548296389055388e-01 3.3118971871888547e-01 3.2694854972808862e-01 3.2275880706481352e-01
|
||||
3.1861984968415236e-01 3.1453104521226827e-01 3.1049176981145088e-01 3.0650140804759829e-01 3.0255935276022683e-01
|
||||
2.9866500493462489e-01 2.9481777357656291e-01 2.9101707558902667e-01 2.8726233565130066e-01 2.8355298610018842e-01
|
||||
2.7988846681334323e-01 2.7626822509466997e-01 2.7269171556180360e-01 2.6915840003556291e-01 2.6566774743136179e-01
|
||||
2.6221923365253019e-01 2.5881234148553212e-01 2.5544656049706482e-01 2.5212138693284381e-01 2.4883632361830443e-01
|
||||
2.4559087986095385e-01 2.4238457135443525e-01 2.3921692008426909e-01 2.3608745423523203e-01 2.3299570810033643e-01
|
||||
2.2994122199135791e-01 2.2692354215095900e-01 2.2394222066622227e-01 2.2099681538379912e-01 2.1808688982637836e-01
|
||||
2.1521201311067273e-01 2.1237175986674206e-01 2.0956571015868608e-01 2.0679344940674138e-01 2.0405456831059254e-01
|
||||
2.0134866277408214e-01 1.9867533383106650e-01 1.9603418757262059e-01 1.9342483507539932e-01 1.9084689233118013e-01
|
||||
1.8829998017762417e-01 1.8578372423012723e-01 1.8329775481485111e-01 1.8084170690282164e-01 1.7841522004510058e-01
|
||||
1.7601793830906587e-01 1.7364951021567787e-01 1.7130958867779622e-01 1.6899783093949772e-01 1.6671389851636942e-01
|
||||
1.6445745713676541e-01 1.6222817668402545e-01 1.6002573113959606e-01 1.5784979852708414e-01 1.5570006085717925e-01
|
||||
1.5357620407348982e-01 1.5147791799920274e-01 1.4940489628460174e-01 1.4735683635542873e-01 1.4533343936204179e-01
|
||||
1.4333441012935921e-01 1.4135945710761266e-01 1.3940829232386509e-01 1.3748063133425781e-01 1.3557619317704184e-01
|
||||
1.3369470032628961e-01 1.3183587864635271e-01 1.2999945734701779e-01 1.2818516893932053e-01 1.2639274919208354e-01
|
||||
1.2462193708907865e-01 1.2287247478685437e-01 1.2114410757319938e-01 1.1943658382625610e-01 1.1774965497421075e-01
|
||||
1.1608307545560770e-01 1.1443660268028921e-01 1.1280999699087069e-01 1.1120302162480744e-01 1.0961544267703616e-01
|
||||
1.0804702906317853e-01 1.0649755248324544e-01 1.0496678738591259e-01 1.0345451093332692e-01 1.0196050296639880e-01
|
||||
1.0048454597061207e-01 9.9026425042358035e-02 9.7585927855701637e-02 9.6162844629714694e-02 9.4756968096170180e-02
|
||||
9.3368093467816937e-02 9.1996018407021207e-02 9.0640542994902873e-02 8.9301469700904246e-02 8.7978603352773188e-02
|
||||
8.6671751107017858e-02 8.5380722419717170e-02 8.4105329017804209e-02 8.2845384870704919e-02 8.1600706162422654e-02
|
||||
8.0371111263961570e-02 7.9156420706169683e-02 7.7956457152975389e-02 7.6771045374937508e-02 7.5600012223214552e-02
|
||||
7.4443186603889711e-02 7.3300399452608467e-02 7.2171483709613682e-02 7.1056274295101307e-02 6.9954608084900727e-02
|
||||
6.8866323886512593e-02 6.7791262415458853e-02 6.6729266271942755e-02 6.5680179917855241e-02 6.4643849654059782e-02
|
||||
6.3620123597996070e-02 6.2608851661605680e-02 6.1609885529501529e-02 6.0623078637479733e-02 5.9648286151297469e-02
|
||||
5.8685364945727514e-02 5.7734173583902315e-02 5.6794572296926749e-02 5.5866422963745777e-02 5.4949589091318085e-02
|
||||
5.4043935794994447e-02 5.3149329779194954e-02 5.2265639318327395e-02 5.1392734237947213e-02 5.0530485896169264e-02
|
||||
4.9678767165325599e-02 4.8837452413847959e-02 4.8006417488384745e-02 4.7185539696183554e-02 4.6374697787631813e-02
|
||||
4.5573771939098062e-02 4.4782643735936878e-02 4.4001196155732281e-02 4.3229313551768289e-02 4.2466881636676002e-02
|
||||
4.1713787466318930e-02 4.0969919423873957e-02 4.0235167204098587e-02 3.9509421797826461e-02 3.8792575476626734e-02
|
||||
3.8084521777679070e-02 3.7385155488821820e-02 3.6694372633812034e-02 3.6012070457733802e-02 3.5338147412623977e-02
|
||||
3.4672503143249545e-02 3.4015038473080184e-02 3.3365655390433790e-02 3.2724257034773219e-02 3.2090747683195087e-02
|
||||
3.1465032737088228e-02 3.0847018708923368e-02 3.0236613209244201e-02 2.9633724933796790e-02 2.9038263650822849e-02
|
||||
2.8450140188500894e-02 2.7869266422559935e-02 2.7295555264015059e-02 2.6728920647080878e-02 2.6169277517213096e-02
|
||||
2.5616541819305283e-02 2.5070630486026202e-02 2.4531461426288370e-02 2.3998953513874044e-02 2.3473026576187994e-02
|
||||
2.2953601383141287e-02 2.2440599636177394e-02 2.1933943957428426e-02 2.1433557878997700e-02 2.0939365832377321e-02
|
||||
2.0451293137978777e-02 1.9969265994807195e-02 1.9493211470244187e-02 1.9023057489961914e-02 1.8558732827946622e-02
|
||||
1.8100167096652742e-02 1.7647290737265786e-02 1.7200035010079828e-02 1.6758331985001762e-02 1.6322114532147491e-02
|
||||
1.5891316312564019e-02 1.5465871769059669e-02 1.5045716117135788e-02 1.4630785336033236e-02 1.4221016159874589e-02
|
||||
1.3816346068919350e-02 1.3416713280920645e-02 1.3022056742576282e-02 1.2632316121086506e-02 1.2247431795811115e-02
|
||||
1.1867344850018502e-02 1.1491997062734294e-02 1.1121330900689896e-02 1.0755289510353649e-02 1.0393816710068116e-02
|
||||
1.0036856982265419e-02 9.6843554657850550e-03 9.3362579482734187e-03 8.9925108586740299e-03 8.6530612598050283e-03
|
||||
8.3178568410263720e-03 7.9868459109810885e-03 7.6599773904311164e-03 7.3372008051761917e-03 7.0184662790432339e-03
|
||||
6.7037245269728762e-03 6.3929268481707213e-03 6.0860251193467496e-03 5.7829717880334419e-03 5.4837198659721809e-03
|
||||
5.1882229225839183e-03 4.8964350785134503e-03 4.6083109992463012e-03 4.3238058887972164e-03 4.0428754834809233e-03
|
||||
3.7654760457356273e-03 3.4915643580391009e-03 3.2210977168825039e-03 2.9540339268092630e-03 2.6903312945348867e-03
|
||||
2.4299486231265099e-03 2.1728452062454995e-03 1.9189808224691074e-03 1.6683157296605300e-03 1.4208106594140180e-03
|
||||
1.1764268115650456e-03 9.3512584875343752e-04 6.9686989105854913e-04 4.6162151069073509e-04 2.2934372674099368e-04
|
||||
0. 0. 0. 0. 0.
|
||||
0. -1.7831576971772225e-06 -1.7829473560940145e-06 -1.7782999134140250e-06 -1.7396066660757176e-06
|
||||
-1.5502042294296973e-06 -8.8426152031463411e-07 9.8556394279670839e-07 5.4481397941997004e-06 1.4867980596266735e-05
|
||||
3.2931882373114611e-05 6.5001911635479206e-05 1.1844733129823650e-04 2.0292956292228964e-04 3.3061789567627280e-04
|
||||
5.1631865139898162e-04 7.7750625171452148e-04 1.1342505546196036e-03 1.6090404968482838e-03 2.2265091736790310e-03
|
||||
3.0130697967437337e-03 3.9964753739159253e-03 5.2053174122329016e-03 6.6684804747326187e-03 8.4145700898494158e-03
|
||||
1.0471331413380081e-02 1.2865075292653572e-02 1.5620127103903481e-02 1.8758312051505910e-02 2.2298488651209647e-02
|
||||
2.6256139979086490e-02 3.0643030051867304e-02 3.5466930497161764e-02 4.0731420543962615e-02 4.6435761370805517e-02
|
||||
5.2574844033296930e-02 5.9139208584218839e-02 6.6115130616746232e-02 7.3484770312949976e-02 8.1226378166431079e-02
|
||||
8.9314550862798825e-02 9.7720530333377464e-02 1.0641253872936574e-01 1.1535614197752375e-01 1.2451463465257184e-01
|
||||
1.3384943911489966e-01 1.4332051219208441e-01 1.5288675310804134e-01 1.6250640686299977e-01 1.7213745782213952e-01
|
||||
1.8173800886164226e-01 1.9126664203325738e-01 2.0068275732617824e-01 2.0994688671760819e-01 2.1902098129774128e-01
|
||||
2.2786866982518550e-01 2.3645548760484036e-01 2.4474907507936638e-01 2.5271934598115031e-01 2.6033862530372609e-01
|
||||
2.6758175771636061e-01 2.7442618736416513e-01 2.8085201026831896e-01 2.8684200076794752e-01 2.9238161362919257e-01
|
||||
2.9745896359004576e-01 3.0206478421416350e-01 3.0619236799615202e-01 3.0983748969858205e-01 3.1299831490900054e-01
|
||||
3.1567529578803644e-01 3.1787105594027310e-01 3.1959026628048548e-01 3.2083951369276065e-01 3.2162716419150783e-01
|
||||
3.2196322219462736e-01 3.2185918741117270e-01 3.2132791073360423e-01 3.2038345040730398e-01 3.1904092963154262e-01
|
||||
3.1731639662735489e-01 3.1522668808996457e-01 3.1278929682789780e-01 3.1002224428031333e-01 3.0694395849559442e-01
|
||||
3.0357315805328966e-01 2.9992874231469280e-01 2.9602968829703968e-01 2.9189495438311042e-01 2.8754339100018278e-01
|
||||
2.8299365833241197e-01 2.7826415106644475e-01 2.7337293011327013e-01 2.6833766119817071e-01 2.6317556016622490e-01
|
||||
2.5790334481240507e-01 2.5253719301192845e-01 2.4709270689965823e-01 2.4158488282382962e-01 2.3602808678300846e-01
|
||||
2.3043603504002608e-01 2.2482177959857719e-01 2.1919769822107593e-01 2.1357548866472253e-01 2.0796616681221014e-01
|
||||
2.0238006837668632e-01 1.9682685386586041e-01 1.9131551649703571e-01 1.8585439276358340e-01 1.8045117536392397e-01
|
||||
1.7511292821512736e-01 1.6984610328584182e-01 1.6465655899624476e-01 1.5954957994634089e-01 1.5452989774784154e-01
|
||||
1.4960171274948575e-01 1.4476871645916312e-01 1.4003411448137193e-01 1.3540064980182454e-01 1.3087062626531676e-01
|
||||
1.2644593210615351e-01 1.2212806340381377e-01 1.1791814734874029e-01 1.1381696521559581e-01 1.0982497495270227e-01
|
||||
1.0594233330738234e-01 1.0216891741732059e-01 9.8504345807853610e-02 9.4947998744229878e-02 9.1499037896515922e-02
|
||||
8.8156425282689632e-02 8.4918941462833075e-02 8.1785202964199666e-02 7.8753678922999892e-02 7.5822706934523865e-02
|
||||
7.2990508108212282e-02 7.0255201329076034e-02 6.7614816730809491e-02 6.5067308389770595e-02 6.2610566252190747e-02
|
||||
6.0242427309737501e-02 5.7960686041162335e-02 5.5763104139705089e-02 5.3647419547805608e-02 5.1611354822063804e-02
|
||||
4.9652624852581040e-02 4.7768943961766119e-02 4.5958032408290661e-02 4.4217622322437089e-02 4.2545463099253666e-02
|
||||
4.0939326276119958e-02 3.9397009921156023e-02 3.7916342558795169e-02 3.6495186658488166e-02 3.5131441711998557e-02
|
||||
3.3823046924352340e-02 3.2567983542793888e-02 3.1364276847442030e-02 3.0209997826661672e-02 2.9103264559298569e-02
|
||||
2.8042243325222982e-02 2.7025149464665166e-02 2.6050248006059928e-02 2.5115854081193878e-02 2.4220333145593687e-02
|
||||
2.3362101021181081e-02 2.2539623777381168e-02 2.1751417465993073e-02 2.0996047724244904e-02 2.0272129259673144e-02
|
||||
1.9578325229605120e-02 1.8913346527239971e-02 1.8275950985547906e-02 1.7664942509474035e-02 1.7079170146182210e-02
|
||||
1.6517527102405061e-02 1.5978949717292412e-02 1.5462416398510370e-02 1.4966946528739644e-02 1.4491599349138851e-02
|
||||
1.4035472825800033e-02 1.3597702504676568e-02 1.3177460360014326e-02 1.2773953640795865e-02 1.2386423719326689e-02
|
||||
1.2014144945642569e-02 1.1656423511043013e-02 1.1312596323698576e-02 1.0982029898946477e-02 1.0664119266562466e-02
|
||||
1.0358286897015456e-02 1.0063981648444464e-02 9.7806777358369068e-03 9.5078737236651834e-03 9.2450915430226099e-03
|
||||
8.9918755341101830e-03 8.7477915147424201e-03 8.5124258753712101e-03 8.2853847010027626e-03 8.0662929202166000e-03
|
||||
7.8547934813988918e-03 7.6505465561820252e-03 7.4532287699864697e-03 7.2625324594723373e-03 7.0781649566377391e-03
|
||||
6.8998478992157719e-03 6.7273165669869683e-03 6.5603192435464419e-03 6.3986166030376990e-03 6.2419811213184351e-03
|
||||
6.0901965109942113e-03 5.9430571797293996e-03 5.8003677112200558e-03 5.6619423682011671e-03 5.5276046168472315e-03
|
||||
5.3971866719101091e-03 5.2705290619417255e-03 5.1474802139427622e-03 5.0278960567748665e-03 4.9116396426866493e-03
|
||||
4.7985807862983842e-03 4.6885957204045869e-03 4.5815667679608429e-03 4.4773820296277189e-03 4.3759350862647983e-03
|
||||
4.2771247157669945e-03 4.1808546236654642e-03 4.0870331869144738e-03 3.9955732103115205e-03 3.9063916950075328e-03
|
||||
3.8194096185795723e-03 3.7345517261597044e-03 3.6517463321247695e-03 3.5709251318705310e-03 3.4920230232068361e-03
|
||||
3.4149779369359312e-03 3.3397306761761419e-03 3.2662247640278252e-03 3.1944062991780403e-03 3.1242238190676563e-03
|
||||
3.0556281702526777e-03 2.9885723856094282e-03 2.9230115680471264e-03 2.8589027804069439e-03 2.7962049412380424e-03
|
||||
2.7348787261558677e-03 2.6748864745025913e-03 2.6161921010387501e-03 2.5587610124084281e-03 2.5025600281369659e-03
|
||||
2.4475573059231370e-03 2.3937222710050804e-03 2.3410255493871018e-03 2.2894389047275615e-03 2.2389351786910455e-03
|
||||
2.1894882345865480e-03 2.1410729041159010e-03 2.0936649370659199e-03 2.0472409537899139e-03 2.0017784003263928e-03
|
||||
1.9572555060149294e-03 1.9136512434761582e-03 1.8709452908242524e-03 1.8291179959948681e-03 1.7881503430709211e-03
|
||||
1.7480239204993170e-03 1.7087208910940010e-03 1.6702239637275546e-03 1.6325163666199224e-03 1.5955818221355528e-03
|
||||
1.5594045230046330e-03 1.5239691098921856e-03 1.4892606502381611e-03 1.4552646182992637e-03 1.4219668763247734e-03
|
||||
1.3893536568035242e-03 1.3574115457224423e-03 1.3261274667792575e-03 1.2954886664959878e-03 1.2654827001831598e-03
|
||||
1.2360974187060614e-03 1.2073209560072781e-03 1.1791417173435681e-03 1.1515483681964686e-03 1.1245298238168333e-03
|
||||
1.0980752393683485e-03 1.0721740006359309e-03 1.0468157152645832e-03 1.0219902045009582e-03 9.9768749540547069e-04
|
||||
9.7389781351026050e-04 9.5061157589512724e-04 9.2781938465829467e-04 9.0551202075806955e-04 8.8368043820333253e-04
|
||||
8.6231575857328643e-04 8.4140926584569745e-04 8.2095240151548038e-04 8.0093675998754374e-04 7.8135408422465649e-04
|
||||
7.6219626163744406e-04 7.4345532020104327e-04 7.2512342478281075e-04 7.0719287367141531e-04 6.8965609529112945e-04
|
||||
6.7250564509304875e-04 6.5573420260951407e-04 6.3933456866314964e-04 6.2329966272035506e-04 6.0762252037869363e-04
|
||||
5.9229629098164066e-04 5.7731423535101883e-04 5.6266972362913406e-04 5.4835623322502941e-04 5.3436734685573598e-04
|
||||
5.2069675067826018e-04 5.0733823250428620e-04 4.9428568009335372e-04 4.8153307951850736e-04 4.6907451359892022e-04
|
||||
4.5690416039606205e-04 4.4501629176734933e-04 4.3340527197435058e-04 4.2206555634115121e-04 4.1099168995894532e-04
|
||||
4.0017830643392614e-04 3.8962012667513243e-04 3.7931195771878645e-04 3.6924869158691878e-04 3.5942530417727367e-04
|
||||
3.4983685418248783e-04 3.4047848203533695e-04 3.3134540887916168e-04 3.2243293556059871e-04 3.1373644164300191e-04
|
||||
3.0525138443908070e-04 2.9697329806099675e-04 2.8889779248634888e-04 2.8102055263917042e-04 2.7333733748388656e-04
|
||||
2.6584397913223187e-04 2.5853638196079477e-04 2.5141052173933108e-04 2.4446244476847984e-04 2.3768826702580664e-04
|
||||
2.3108417332027859e-04 2.2464641645359579e-04 2.1837131638841566e-04 2.1225525942282237e-04 2.0629469737029615e-04
|
||||
2.0048614674503164e-04 1.9482618795227565e-04 1.8931146448311360e-04 1.8393868211358157e-04 1.7870460810785922e-04
|
||||
1.7360607042538924e-04 1.6863995693152702e-04 1.6380321461182627e-04 1.5909284878984527e-04 1.5450592234811291e-04
|
||||
1.5003955495253643e-04 1.4569092228004094e-04 1.4145725524941817e-04 1.3733583925549381e-04 1.3332401340639035e-04
|
||||
1.2941916976447285e-04 1.2561875259019684e-04 1.2192025758962256e-04 1.1832123116558560e-04 1.1481926967199518e-04
|
||||
1.1141201867234099e-04 1.0809717220155090e-04 1.0487247203196451e-04 1.0173570694327339e-04 9.8684711996519393e-05
|
||||
9.5717367812364704e-05 9.2831599853758062e-05 9.0025377713029344e-05 8.7296714403644476e-05 8.4643665656705669e-05
|
||||
8.2064329222285900e-05 7.9556844175830525e-05 7.7119390229634256e-05 7.4750187049616845e-05 7.2447493577418743e-05
|
||||
7.0209607358121592e-05 6.8034863873412711e-05 6.5921635880691453e-05 6.3868332757837688e-05 6.1873399854119916e-05
|
||||
5.9935317847005769e-05 5.8052602105302092e-05 5.6223802058414686e-05 5.4447500572124986e-05 5.2722313330662903e-05
|
||||
5.1046888225471810e-05 4.9419904750476994e-05 4.7840073404086360e-05 4.6306135098001444e-05 4.4816860572784081e-05
|
||||
4.3371049820362410e-05 4.1967531513508512e-05 4.0605162442243665e-05 3.9282826957377651e-05 3.7999436421067619e-05
|
||||
3.6753928664559794e-05 3.5545267453040291e-05 3.4372441957743801e-05 3.3234466235174207e-05 3.2130378713673274e-05
|
||||
3.1059241687114931e-05 3.0020140815963667e-05 2.9012184635493878e-05 2.8034504071359221e-05 2.7086251962327905e-05
|
||||
2.6166602590371475e-05 2.5274751217888719e-05 2.4409913632244271e-05 2.3571325697446452e-05 2.2758242913066616e-05
|
||||
2.1969939980260233e-05 2.1205710374978511e-05 2.0464865928223751e-05 1.9746736413416423e-05 1.9050669140745365e-05
|
||||
1.8376028558536356e-05 1.7722195861539949e-05 1.7088568606125681e-05 1.6474560332307943e-05 1.5879600192587038e-05
|
||||
1.5303132587501673e-05 1.4744616807896445e-05 1.4203526683784977e-05 1.3679350239809867e-05 1.3171589357173225e-05
|
||||
1.2679759442045687e-05 1.2203389100309283e-05 1.1742019818655313e-05 1.1295205651874632e-05 1.0862512916360960e-05
|
||||
1.0443519889684208e-05 1.0037816516215981e-05 9.6450041186859356e-06 9.2646951156482942e-06 8.8965127447286651e-06
|
||||
8.5400907916164900e-06 8.1950733247201143e-06 7.8611144353785568e-06 7.5378779835937114e-06 7.2250373491803614e-06
|
||||
6.9222751882549137e-06 6.6292831950053900e-06 6.3457618686353938e-06 6.0714202854210658e-06 5.8059758758126974e-06
|
||||
5.5491542064604101e-06 5.3006887671412965e-06 5.0603207624608454e-06 4.8277989082726527e-06 4.6028792327467837e-06
|
||||
4.3853248819745191e-06 4.1749059300766062e-06 3.9713991936930954e-06 3.7745880508142688e-06 3.5842622638456757e-06
|
||||
3.4002178068596534e-06 3.2222566969260485e-06 3.0501868294746811e-06 2.8838218176012410e-06 2.7229808352391242e-06
|
||||
2.5674884641312622e-06 2.4171745445294654e-06 2.2718740295380683e-06 2.1314268430473412e-06 1.9956777411659336e-06
|
||||
1.8644761770997796e-06 1.7376761694013680e-06 1.6151361735109885e-06 1.4967189565443510e-06 1.3822914752352456e-06
|
||||
1.2717247569860561e-06 1.1648937839490780e-06 1.0616773800793238e-06 9.6195810109658104e-07 8.6562212728696897e-07
|
||||
7.7255915909348342e-07 6.8266231542009619e-07 5.9582803460662395e-07 5.1195597799675132e-07 4.3094893605718154e-07
|
||||
3.5271273698142622e-07 2.7715615772249259e-07 2.0419083740348351e-07 1.3373119304687232e-07 6.5694337570851248e-08
|
||||
0. 0. 0. 0. 0.
|
||||
|
||||
37595
examples/PACKAGES/interlayer/saip_metal/CH.rebo
Normal file
37595
examples/PACKAGES/interlayer/saip_metal/CH.rebo
Normal file
File diff suppressed because it is too large
Load Diff
18
examples/PACKAGES/interlayer/saip_metal/CHAu.ILP
Normal file
18
examples/PACKAGES/interlayer/saip_metal/CHAu.ILP
Normal file
@ -0,0 +1,18 @@
|
||||
# DATE: 2021-12-02 UNITS: metal CONTRIBUTOR: Wengen Ouyang w.g.ouyang@gmail.com
|
||||
# CITATION: W. Ouyang, O. Hod, and R. Guerra, J. Chem. Theory Comput. 17, 7215 (2021).
|
||||
# Semi-anisotropic interlayer Potential (SAIP) for graphene/gold, benzene/gold heterojunctions
|
||||
# The parameters below are fitted against the PBE + D3 DFT reference data.
|
||||
# The parameters for C-C, C-H and H-H are taken from Nano Letters 18, 6009-6016 (2018).
|
||||
#
|
||||
# --------------- Repulsion Potential ----------------++++++++++++++ Vdw Potential ++++++++++++++++*****
|
||||
# beta(A) alpha delta(A) epsilon(meV) C(meV) d sR reff(A) C6(meV*A^6) S rcut
|
||||
C C 3.205843 7.511126 1.235334 1.528338E-5 37.530428 15.499947 0.7954443 3.681440 25.714535E3 1.0 2.0
|
||||
H H 3.974540 6.53799 1.080633 0.6700556 0.8333833 15.022371 0.7490632 2.767223 1.6159581E3 1.0 1.2
|
||||
C H 2.642950 12.91410 1.020257 0.9750012 25.340996 15.222927 0.8115998 3.887324 5.6874617E3 1.0 1.5
|
||||
Au C 3.6913278482 13.5655648421 1.0175514400 0.0070964784 -0.0010368264 11.0586486772 1.0635582839 3.7552608806 81.5847131142 1000.0 1.0
|
||||
Au H 3.7899616131 4.3065009639 10.6811825156 0.2250887843 -0.1116891520 18.6149213872 0.9833194192 3.3507558896 70.6865381780 1000.0 1.0
|
||||
Au Au 3.6671967387 12.8109735143 1.0353581041 0.0000000000 0.0000000000 10.1628585345 1.0642897301 3.7372959779 0.0000000000 1000.0 1.0
|
||||
# Symmetric part
|
||||
C Au 3.6913278482 13.5655648421 1.0175514400 0.0070964784 -0.0010368264 11.0586486772 1.0635582839 3.7552608806 81.5847131142 1000.0 2.0
|
||||
H Au 3.7899616131 4.3065009639 10.6811825156 0.2250887843 -0.1116891520 18.6149213872 0.9833194192 3.3507558896 70.6865381780 1000.0 1.5
|
||||
H C 2.642950 12.91410 1.020257 0.9750012 25.340996 15.222927 0.8115998 3.887324 5.6874617E3 1.0 1.5
|
||||
44
examples/PACKAGES/interlayer/saip_metal/in.gold_gr
Normal file
44
examples/PACKAGES/interlayer/saip_metal/in.gold_gr
Normal file
@ -0,0 +1,44 @@
|
||||
units metal
|
||||
atom_style full
|
||||
processors * * 1
|
||||
boundary p p f
|
||||
read_data ./3Lgold_1Lgr_atop_sliding.data
|
||||
|
||||
# global group definition
|
||||
group gold type 1
|
||||
group gra type 2
|
||||
|
||||
# Define mass
|
||||
mass * 12.0107 # mass of carbon atom , uint: a.u.=1.66X10^(-27)kg
|
||||
mass 1 196.96657 # mass of gold atom , uint: a.u.=1.66X10^(-27)kg
|
||||
|
||||
# Define potentials
|
||||
pair_style hybrid/overlay eam rebo saip/metal 16.0
|
||||
pair_coeff 1 1 eam ./Au_u3.eam
|
||||
pair_coeff * * rebo ./CH.rebo NULL C
|
||||
pair_coeff * * saip/metal ./CHAu.ILP Au C
|
||||
|
||||
# compute energy
|
||||
compute 0 all pair rebo
|
||||
compute 1 all pair eam
|
||||
compute 2 all pair saip/metal
|
||||
variable REBO equal c_0
|
||||
variable EAM equal c_1
|
||||
variable ILP equal c_2
|
||||
|
||||
thermo_style custom step etotal pe ke v_REBO v_ILP temp
|
||||
|
||||
thermo 100
|
||||
thermo_modify lost error
|
||||
|
||||
# Creat initial velocity
|
||||
velocity all set 0.0 0.0 0.0
|
||||
velocity gra create 300.0 4928459 mom yes rot yes dist gaussian
|
||||
velocity gold create 300.0 4928459 mom yes rot yes dist gaussian
|
||||
|
||||
# Integration
|
||||
fix intsub gold nve
|
||||
fix intrib gra nve
|
||||
|
||||
timestep 1e-3
|
||||
run 1000
|
||||
164
examples/PACKAGES/interlayer/saip_metal/log.7Jan22.gold_gr.g++.1
Normal file
164
examples/PACKAGES/interlayer/saip_metal/log.7Jan22.gold_gr.g++.1
Normal file
@ -0,0 +1,164 @@
|
||||
LAMMPS (7 Jan 2022)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
units metal
|
||||
atom_style full
|
||||
processors * * 1
|
||||
boundary p p f
|
||||
read_data ./3Lgold_1Lgr_atop_sliding.data
|
||||
Reading data file ...
|
||||
triclinic box = (0 0 -30) to (17.21664 14.910048 30) with tilt (8.60832 0 0)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
206 atoms
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 0 0
|
||||
special bond factors coul: 0 0 0
|
||||
0 = max # of 1-2 neighbors
|
||||
0 = max # of 1-3 neighbors
|
||||
0 = max # of 1-4 neighbors
|
||||
1 = max # of special neighbors
|
||||
special bonds CPU = 0.001 seconds
|
||||
read_data CPU = 0.003 seconds
|
||||
|
||||
# global group definition
|
||||
group gold type 1
|
||||
108 atoms in group gold
|
||||
group gra type 2
|
||||
98 atoms in group gra
|
||||
|
||||
# Define mass
|
||||
mass * 12.0107 # mass of carbon atom , uint: a.u.=1.66X10^(-27)kg
|
||||
mass 1 196.96657 # mass of gold atom , uint: a.u.=1.66X10^(-27)kg
|
||||
|
||||
# Define potentials
|
||||
pair_style hybrid/overlay eam rebo saip/metal 16.0
|
||||
pair_coeff 1 1 eam ./Au_u3.eam
|
||||
Reading eam potential file ./Au_u3.eam with DATE: 2007-06-11
|
||||
pair_coeff * * rebo ./CH.rebo NULL C
|
||||
Reading rebo potential file ./CH.rebo with DATE: 2018-7-3
|
||||
pair_coeff * * saip/metal ./CHAu.ILP Au C
|
||||
Reading saip/metal potential file ./CHAu.ILP with DATE: 2021-12-02
|
||||
|
||||
# compute energy
|
||||
compute 0 all pair rebo
|
||||
compute 1 all pair eam
|
||||
compute 2 all pair saip/metal
|
||||
variable REBO equal c_0
|
||||
variable EAM equal c_1
|
||||
variable ILP equal c_2
|
||||
|
||||
thermo_style custom step etotal pe ke v_REBO v_ILP temp
|
||||
|
||||
thermo 100
|
||||
thermo_modify lost error
|
||||
|
||||
# Creat initial velocity
|
||||
velocity all set 0.0 0.0 0.0
|
||||
velocity gra create 300.0 4928459 mom yes rot yes dist gaussian
|
||||
velocity gold create 300.0 4928459 mom yes rot yes dist gaussian
|
||||
|
||||
# Integration
|
||||
fix intsub gold nve
|
||||
fix intrib gra nve
|
||||
|
||||
timestep 1e-3
|
||||
run 1000
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Your simulation uses code contributions which should be cited:
|
||||
|
||||
- ilp/graphene/hbn potential doi:10.1021/acs.nanolett.8b02848
|
||||
@Article{Ouyang2018
|
||||
author = {W. Ouyang, D. Mandelli, M. Urbakh, and O. Hod},
|
||||
title = {Nanoserpents: Graphene Nanoribbon Motion on Two-Dimensional Hexagonal Materials},
|
||||
journal = {Nano Letters},
|
||||
volume = 18,
|
||||
pages = {6009}
|
||||
year = 2018,
|
||||
}
|
||||
|
||||
- saip/metal potential doi.org/10.1021/acs.jctc.1c00622
|
||||
@Article{Ouyang2021
|
||||
author = {W. Ouyang, O. Hod, and R. Guerra},
|
||||
title = {Registry-Dependent Potential for Interfaces of Gold with Graphitic Systems},
|
||||
journal = {J. Chem. Theory Comput.},
|
||||
volume = 17,
|
||||
pages = {7215-7223}
|
||||
year = 2021,
|
||||
}
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 18
|
||||
ghost atom cutoff = 18
|
||||
binsize = 9, bins = 3 2 7
|
||||
4 neighbor lists, perpetual/occasional/extra = 4 0 0
|
||||
(1) pair eam, perpetual, skip from (4)
|
||||
attributes: half, newton on
|
||||
pair build: skip
|
||||
stencil: none
|
||||
bin: none
|
||||
(2) pair rebo, perpetual, skip from (3)
|
||||
attributes: full, newton on, ghost
|
||||
pair build: skip/ghost
|
||||
stencil: none
|
||||
bin: none
|
||||
(3) pair saip/metal, perpetual
|
||||
attributes: full, newton on, ghost
|
||||
pair build: full/bin/ghost
|
||||
stencil: full/ghost/bin/3d
|
||||
bin: standard
|
||||
(4) neighbor class addition, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton/tri
|
||||
stencil: half/bin/3d/tri
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 9.747 | 9.747 | 9.747 Mbytes
|
||||
Step TotEng PotEng KinEng v_REBO v_ILP Temp
|
||||
0 -1121.4621 -1129.3728 7.9107209 -724.70925 -6.0302289 298.53659
|
||||
100 -1121.4483 -1124.9731 3.5248501 -723.03272 -5.9765533 133.02159
|
||||
200 -1121.4403 -1125.2912 3.8509646 -722.66784 -6.0468507 145.32858
|
||||
300 -1121.4424 -1126.4665 5.0240531 -722.72787 -6.0350568 189.59886
|
||||
400 -1121.4419 -1125.1443 3.7023978 -722.59976 -5.8294548 139.72193
|
||||
500 -1121.4413 -1125.2711 3.8297939 -722.5342 -6.0189944 144.52963
|
||||
600 -1121.4449 -1125.8808 4.4359049 -722.77707 -5.8685221 167.40319
|
||||
700 -1121.4489 -1126.1966 4.747709 -723.13681 -5.8666379 179.17012
|
||||
800 -1121.4443 -1125.8469 4.402607 -722.94487 -6.0094567 166.14658
|
||||
900 -1121.4424 -1125.8437 4.4013317 -722.94918 -5.8699702 166.09846
|
||||
1000 -1121.4467 -1125.7453 4.2986881 -722.66682 -6.0651168 162.22487
|
||||
Loop time of 6.43246 on 1 procs for 1000 steps with 206 atoms
|
||||
|
||||
Performance: 13.432 ns/day, 1.787 hours/ns, 155.462 timesteps/s
|
||||
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 6.4201 | 6.4201 | 6.4201 | 0.0 | 99.81
|
||||
Bond | 8.9059e-05 | 8.9059e-05 | 8.9059e-05 | 0.0 | 0.00
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0.0071852 | 0.0071852 | 0.0071852 | 0.0 | 0.11
|
||||
Output | 0.00026031 | 0.00026031 | 0.00026031 | 0.0 | 0.00
|
||||
Modify | 0.0019433 | 0.0019433 | 0.0019433 | 0.0 | 0.03
|
||||
Other | | 0.002875 | | | 0.04
|
||||
|
||||
Nlocal: 206 ave 206 max 206 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 2187 ave 2187 max 2187 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 0 ave 0 max 0 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 158548 ave 158548 max 158548 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 158548
|
||||
Ave neighs/atom = 769.65049
|
||||
Ave special neighs/atom = 0
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:06
|
||||
164
examples/PACKAGES/interlayer/saip_metal/log.7Jan22.gold_gr.g++.4
Normal file
164
examples/PACKAGES/interlayer/saip_metal/log.7Jan22.gold_gr.g++.4
Normal file
@ -0,0 +1,164 @@
|
||||
LAMMPS (7 Jan 2022)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
units metal
|
||||
atom_style full
|
||||
processors * * 1
|
||||
boundary p p f
|
||||
read_data ./3Lgold_1Lgr_atop_sliding.data
|
||||
Reading data file ...
|
||||
triclinic box = (0 0 -30) to (17.21664 14.910048 30) with tilt (8.60832 0 0)
|
||||
2 by 2 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
206 atoms
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 0 0
|
||||
special bond factors coul: 0 0 0
|
||||
0 = max # of 1-2 neighbors
|
||||
0 = max # of 1-3 neighbors
|
||||
0 = max # of 1-4 neighbors
|
||||
1 = max # of special neighbors
|
||||
special bonds CPU = 0.000 seconds
|
||||
read_data CPU = 0.003 seconds
|
||||
|
||||
# global group definition
|
||||
group gold type 1
|
||||
108 atoms in group gold
|
||||
group gra type 2
|
||||
98 atoms in group gra
|
||||
|
||||
# Define mass
|
||||
mass * 12.0107 # mass of carbon atom , uint: a.u.=1.66X10^(-27)kg
|
||||
mass 1 196.96657 # mass of gold atom , uint: a.u.=1.66X10^(-27)kg
|
||||
|
||||
# Define potentials
|
||||
pair_style hybrid/overlay eam rebo saip/metal 16.0
|
||||
pair_coeff 1 1 eam ./Au_u3.eam
|
||||
Reading eam potential file ./Au_u3.eam with DATE: 2007-06-11
|
||||
pair_coeff * * rebo ./CH.rebo NULL C
|
||||
Reading rebo potential file ./CH.rebo with DATE: 2018-7-3
|
||||
pair_coeff * * saip/metal ./CHAu.ILP Au C
|
||||
Reading saip/metal potential file ./CHAu.ILP with DATE: 2021-12-02
|
||||
|
||||
# compute energy
|
||||
compute 0 all pair rebo
|
||||
compute 1 all pair eam
|
||||
compute 2 all pair saip/metal
|
||||
variable REBO equal c_0
|
||||
variable EAM equal c_1
|
||||
variable ILP equal c_2
|
||||
|
||||
thermo_style custom step etotal pe ke v_REBO v_ILP temp
|
||||
|
||||
thermo 100
|
||||
thermo_modify lost error
|
||||
|
||||
# Creat initial velocity
|
||||
velocity all set 0.0 0.0 0.0
|
||||
velocity gra create 300.0 4928459 mom yes rot yes dist gaussian
|
||||
velocity gold create 300.0 4928459 mom yes rot yes dist gaussian
|
||||
|
||||
# Integration
|
||||
fix intsub gold nve
|
||||
fix intrib gra nve
|
||||
|
||||
timestep 1e-3
|
||||
run 1000
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Your simulation uses code contributions which should be cited:
|
||||
|
||||
- ilp/graphene/hbn potential doi:10.1021/acs.nanolett.8b02848
|
||||
@Article{Ouyang2018
|
||||
author = {W. Ouyang, D. Mandelli, M. Urbakh, and O. Hod},
|
||||
title = {Nanoserpents: Graphene Nanoribbon Motion on Two-Dimensional Hexagonal Materials},
|
||||
journal = {Nano Letters},
|
||||
volume = 18,
|
||||
pages = {6009}
|
||||
year = 2018,
|
||||
}
|
||||
|
||||
- saip/metal potential doi.org/10.1021/acs.jctc.1c00622
|
||||
@Article{Ouyang2021
|
||||
author = {W. Ouyang, O. Hod, and R. Guerra},
|
||||
title = {Registry-Dependent Potential for Interfaces of Gold with Graphitic Systems},
|
||||
journal = {J. Chem. Theory Comput.},
|
||||
volume = 17,
|
||||
pages = {7215-7223}
|
||||
year = 2021,
|
||||
}
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 18
|
||||
ghost atom cutoff = 18
|
||||
binsize = 9, bins = 3 2 7
|
||||
4 neighbor lists, perpetual/occasional/extra = 4 0 0
|
||||
(1) pair eam, perpetual, skip from (4)
|
||||
attributes: half, newton on
|
||||
pair build: skip
|
||||
stencil: none
|
||||
bin: none
|
||||
(2) pair rebo, perpetual, skip from (3)
|
||||
attributes: full, newton on, ghost
|
||||
pair build: skip/ghost
|
||||
stencil: none
|
||||
bin: none
|
||||
(3) pair saip/metal, perpetual
|
||||
attributes: full, newton on, ghost
|
||||
pair build: full/bin/ghost
|
||||
stencil: full/ghost/bin/3d
|
||||
bin: standard
|
||||
(4) neighbor class addition, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton/tri
|
||||
stencil: half/bin/3d/tri
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 9.299 | 9.299 | 9.3 Mbytes
|
||||
Step TotEng PotEng KinEng v_REBO v_ILP Temp
|
||||
0 -1121.4621 -1129.3728 7.9107209 -724.70925 -6.0302289 298.53659
|
||||
100 -1121.4483 -1124.9731 3.5248501 -723.03272 -5.9765533 133.02159
|
||||
200 -1121.4403 -1125.2912 3.8509646 -722.66784 -6.0468507 145.32858
|
||||
300 -1121.4424 -1126.4665 5.0240531 -722.72787 -6.0350568 189.59886
|
||||
400 -1121.4419 -1125.1443 3.7023978 -722.59976 -5.8294548 139.72193
|
||||
500 -1121.4413 -1125.2711 3.8297939 -722.5342 -6.0189944 144.52963
|
||||
600 -1121.4449 -1125.8808 4.4359049 -722.77707 -5.8685221 167.40319
|
||||
700 -1121.4489 -1126.1966 4.747709 -723.13681 -5.8666379 179.17012
|
||||
800 -1121.4443 -1125.8469 4.402607 -722.94487 -6.0094567 166.14658
|
||||
900 -1121.4424 -1125.8437 4.4013317 -722.94918 -5.8699702 166.09846
|
||||
1000 -1121.4467 -1125.7453 4.2986881 -722.66682 -6.0651168 162.22487
|
||||
Loop time of 2.44776 on 4 procs for 1000 steps with 206 atoms
|
||||
|
||||
Performance: 35.298 ns/day, 0.680 hours/ns, 408.537 timesteps/s
|
||||
99.7% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 1.6906 | 2.0172 | 2.3939 | 19.2 | 82.41
|
||||
Bond | 5.4278e-05 | 6.3818e-05 | 7.3153e-05 | 0.0 | 0.00
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0.049363 | 0.42514 | 0.75161 | 41.7 | 17.37
|
||||
Output | 0.00018596 | 0.00020656 | 0.00024754 | 0.0 | 0.01
|
||||
Modify | 0.00063656 | 0.00074701 | 0.00089514 | 0.0 | 0.03
|
||||
Other | | 0.004362 | | | 0.18
|
||||
|
||||
Nlocal: 51.5 ave 61 max 44 min
|
||||
Histogram: 1 1 0 0 0 0 1 0 0 1
|
||||
Nghost: 1670.75 ave 1699 max 1641 min
|
||||
Histogram: 1 0 0 0 1 0 1 0 0 1
|
||||
Neighs: 0 ave 0 max 0 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 39637 ave 47080 max 33737 min
|
||||
Histogram: 1 1 0 0 0 0 1 0 0 1
|
||||
|
||||
Total # of neighbors = 158548
|
||||
Ave neighs/atom = 769.65049
|
||||
Ave special neighs/atom = 0
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:02
|
||||
18
potentials/CHAu.ILP
Normal file
18
potentials/CHAu.ILP
Normal file
@ -0,0 +1,18 @@
|
||||
# DATE: 2021-12-02 UNITS: metal CONTRIBUTOR: Wengen Ouyang w.g.ouyang@gmail.com
|
||||
# CITATION: W. Ouyang, O. Hod, and R. Guerra, J. Chem. Theory Comput. 17, 7215 (2021).
|
||||
# Semi-anisotropic interlayer Potential (SAIP) for graphene/gold, benzene/gold heterojunctions
|
||||
# The parameters below are fitted against the PBE + D3 DFT reference data.
|
||||
# The parameters for C-C, C-H and H-H are taken from Nano Letters 18, 6009-6016 (2018).
|
||||
#
|
||||
# --------------- Repulsion Potential ----------------++++++++++++++ Vdw Potential ++++++++++++++++*****
|
||||
# beta(A) alpha delta(A) epsilon(meV) C(meV) d sR reff(A) C6(meV*A^6) S rcut
|
||||
C C 3.205843 7.511126 1.235334 1.528338E-5 37.530428 15.499947 0.7954443 3.681440 25.714535E3 1.0 2.0
|
||||
H H 3.974540 6.53799 1.080633 0.6700556 0.8333833 15.022371 0.7490632 2.767223 1.6159581E3 1.0 1.2
|
||||
C H 2.642950 12.91410 1.020257 0.9750012 25.340996 15.222927 0.8115998 3.887324 5.6874617E3 1.0 1.5
|
||||
Au C 3.6913278482 13.5655648421 1.0175514400 0.0070964784 -0.0010368264 11.0586486772 1.0635582839 3.7552608806 81.5847131142 1000.0 1.0
|
||||
Au H 3.7899616131 4.3065009639 10.6811825156 0.2250887843 -0.1116891520 18.6149213872 0.9833194192 3.3507558896 70.6865381780 1000.0 1.0
|
||||
Au Au 3.6671967387 12.8109735143 1.0353581041 0.0000000000 0.0000000000 10.1628585345 1.0642897301 3.7372959779 0.0000000000 1000.0 1.0
|
||||
# Symmetric part
|
||||
C Au 3.6913278482 13.5655648421 1.0175514400 0.0070964784 -0.0010368264 11.0586486772 1.0635582839 3.7552608806 81.5847131142 1000.0 2.0
|
||||
H Au 3.7899616131 4.3065009639 10.6811825156 0.2250887843 -0.1116891520 18.6149213872 0.9833194192 3.3507558896 70.6865381780 1000.0 1.5
|
||||
H C 2.642950 12.91410 1.020257 0.9750012 25.340996 15.222927 0.8115998 3.887324 5.6874617E3 1.0 1.5
|
||||
12
potentials/MoS2.ILP
Normal file
12
potentials/MoS2.ILP
Normal file
@ -0,0 +1,12 @@
|
||||
# DATE: 2021-12-02 UNITS: metal CONTRIBUTOR: Wengen Ouyang w.g.ouyang@gmail.com
|
||||
# CITATION: W. Ouyang, et al., J. Chem. Theory Comput. 17, 7237 (2021).
|
||||
# Interlayer Potential (ILP) for bilayer and bulk Molybdenum Disulfide.
|
||||
# The parameters below are fitted against the HSE + MBD-NL DFT reference data.
|
||||
#
|
||||
# --------------- Repulsion Potential ----------------++++++++++++++ Vdw Potential ++++++++++++++++*****
|
||||
# beta(A) alpha delta(A) epsilon(meV) C(meV) d sR reff(A) C6(meV*A^6) S rcut
|
||||
Mo Mo 5.5794503728 9.3776624643 2.0272224617 144.1517754265 97.9785701736 89.4375967588 2.0590305447 5.1220549022 491850.3161946840 1.0000 4.0
|
||||
S S 3.1614021873 8.0932627454 1.9531402037 4.5867641760 118.0654664611 58.8094158385 0.2153665787 4.2996001250 148811.2434089213 1.0000 4.0
|
||||
Mo S 3.6271521213 19.9713750996 7.5850312329 76.1019310047 3.3174955929 45.7203284638 0.9474703731 4.4104250318 150597.8577162951 1.0000 4.0
|
||||
# symmetric part
|
||||
S Mo 3.6271521213 19.9713750996 7.5850312329 76.1019310047 3.3174955929 45.7203284638 0.9474703731 4.4104250318 150597.8577162951 1.0000 4.0
|
||||
@ -59,7 +59,8 @@ static const char cite_ilp[] =
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
PairILPGrapheneHBN::PairILPGrapheneHBN(LAMMPS *lmp) : Pair(lmp)
|
||||
PairILPGrapheneHBN::PairILPGrapheneHBN(LAMMPS *lmp)
|
||||
: Pair(lmp), variant(ILP_GrhBN)
|
||||
{
|
||||
restartinfo = 0;
|
||||
one_coeff = 1;
|
||||
@ -87,6 +88,14 @@ PairILPGrapheneHBN::PairILPGrapheneHBN(LAMMPS *lmp) : Pair(lmp)
|
||||
dnormal = nullptr;
|
||||
dnormdri = nullptr;
|
||||
|
||||
// for ilp/tmd
|
||||
dnn = nullptr;
|
||||
vect = nullptr;
|
||||
pvet = nullptr;
|
||||
dpvet1 = nullptr;
|
||||
dpvet2 = nullptr;
|
||||
dNave = nullptr;
|
||||
|
||||
// always compute energy offset
|
||||
offset_flag = 1;
|
||||
|
||||
@ -105,6 +114,13 @@ PairILPGrapheneHBN::~PairILPGrapheneHBN()
|
||||
memory->destroy(normal);
|
||||
memory->destroy(dnormal);
|
||||
memory->destroy(dnormdri);
|
||||
// adds for ilp/tmd
|
||||
memory->destroy(dnn);
|
||||
memory->destroy(vect);
|
||||
memory->destroy(pvet);
|
||||
memory->destroy(dpvet1);
|
||||
memory->destroy(dpvet2);
|
||||
memory->destroy(dNave);
|
||||
|
||||
if (allocated) {
|
||||
memory->destroy(setflag);
|
||||
@ -195,7 +211,24 @@ void PairILPGrapheneHBN::read_file(char *filename)
|
||||
// open file on proc 0
|
||||
|
||||
if (comm->me == 0) {
|
||||
PotentialFileReader reader(lmp, filename, "ilp/graphene/hbn", unit_convert_flag);
|
||||
std::string potential_name;
|
||||
switch (variant) {
|
||||
case ILP_GrhBN:
|
||||
potential_name = "ilp/graphene/hbn";
|
||||
break;
|
||||
|
||||
case ILP_TMD:
|
||||
potential_name = "ilp/tmd";
|
||||
break;
|
||||
|
||||
case SAIP_METAL:
|
||||
potential_name = "saip/metal";
|
||||
break;
|
||||
|
||||
default:
|
||||
error->one(FLERR,"Unknown ILP style variant {}",variant);
|
||||
}
|
||||
PotentialFileReader reader(lmp, filename, potential_name, unit_convert_flag);
|
||||
char *line;
|
||||
|
||||
// transparently convert units for supported conversions
|
||||
@ -311,9 +344,9 @@ void PairILPGrapheneHBN::read_file(char *filename)
|
||||
void PairILPGrapheneHBN::init_style()
|
||||
{
|
||||
if (force->newton_pair == 0)
|
||||
error->all(FLERR, "Pair style ilp/graphene/hbn requires newton pair on");
|
||||
error->all(FLERR, "Pair style ilp/* requires newton pair on");
|
||||
if (!atom->molecule_flag)
|
||||
error->all(FLERR, "Pair style ilp/graphene/hbn requires atom attribute molecule");
|
||||
error->all(FLERR, "Pair style ilp/* requires atom attribute molecule");
|
||||
|
||||
// need a full neighbor list, including neighbors of ghosts
|
||||
|
||||
|
||||
@ -27,23 +27,23 @@ namespace LAMMPS_NS {
|
||||
class PairILPGrapheneHBN : public Pair {
|
||||
public:
|
||||
PairILPGrapheneHBN(class LAMMPS *);
|
||||
~PairILPGrapheneHBN() override;
|
||||
virtual ~PairILPGrapheneHBN();
|
||||
|
||||
void compute(int, int) override;
|
||||
void settings(int, char **) override;
|
||||
void coeff(int, char **) override;
|
||||
double init_one(int, int) override;
|
||||
void init_style() override;
|
||||
void ILP_neigh();
|
||||
void calc_normal();
|
||||
void calc_FRep(int, int);
|
||||
virtual void compute(int, int);
|
||||
virtual void settings(int, char **);
|
||||
void coeff(int, char **);
|
||||
double init_one(int, int);
|
||||
void init_style();
|
||||
void calc_FvdW(int, int);
|
||||
double single(int, int, int, int, double, double, double, double &) override;
|
||||
double single(int, int, int, int, double, double, double, double &);
|
||||
|
||||
static constexpr int NPARAMS_PER_LINE = 13;
|
||||
|
||||
enum { ILP_GrhBN, ILP_TMD, SAIP_METAL }; // for telling class variants apart in shared code
|
||||
|
||||
protected:
|
||||
int me;
|
||||
int variant;
|
||||
int maxlocal; // size of numneigh, firstneigh arrays
|
||||
int pgsize; // size of neighbor page
|
||||
int oneatom; // max # of neighbors for one atom
|
||||
@ -68,6 +68,18 @@ class PairILPGrapheneHBN : public Pair {
|
||||
double ***dnormdri;
|
||||
double ****dnormal;
|
||||
|
||||
// adds for ilp/tmd
|
||||
int Nnei; // max # of nearest neighbors for one atom
|
||||
double **dnn;
|
||||
double **vect;
|
||||
double **pvet;
|
||||
double ***dpvet1;
|
||||
double ***dpvet2;
|
||||
double ***dNave;
|
||||
|
||||
virtual void ILP_neigh();
|
||||
virtual void calc_normal();
|
||||
virtual void calc_FRep(int, int);
|
||||
void read_file(char *);
|
||||
void allocate();
|
||||
};
|
||||
|
||||
877
src/INTERLAYER/pair_ilp_tmd.cpp
Normal file
877
src/INTERLAYER/pair_ilp_tmd.cpp
Normal file
@ -0,0 +1,877 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/, 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.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Wengen Ouyang (Wuhan University)
|
||||
e-mail: w.g.ouyang at gmail dot com
|
||||
|
||||
This is a full version of the potential described in
|
||||
[Ouyang et al, J. Chem. Theory Comput. 17, 7237 (2021).]
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "pair_ilp_tmd.h"
|
||||
|
||||
#include "atom.h"
|
||||
#include "citeme.h"
|
||||
#include "comm.h"
|
||||
#include "error.h"
|
||||
#include "force.h"
|
||||
#include "interlayer_taper.h"
|
||||
#include "memory.h"
|
||||
#include "my_page.h"
|
||||
#include "neigh_list.h"
|
||||
#include "neigh_request.h"
|
||||
#include "neighbor.h"
|
||||
|
||||
#include <cmath>
|
||||
#include <cstring>
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace InterLayer;
|
||||
|
||||
#define MAXLINE 1024
|
||||
#define DELTA 4
|
||||
#define PGDELTA 1
|
||||
|
||||
static const char cite_ilp_tmd[] =
|
||||
"ilp/tmd potential doi/10.1021/acs.jctc.1c00782\n"
|
||||
"@Article{Ouyang2021\n"
|
||||
" author = {W. Ouyang, R. Sofer, X. Gao, J. Hermann, A. Tkatchenko, L. Kronik, M. Urbakh, and O. Hod},\n"
|
||||
" title = {Anisotropic Interlayer Force Field for Transition Metal Dichalcogenides: The Case of Molybdenum Disulfide},\n"
|
||||
" journal = {J. Chem. Theory Comput.},\n"
|
||||
" volume = 17,\n"
|
||||
" pages = {7237–7245}\n"
|
||||
" year = 2021,\n"
|
||||
"}\n\n";
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
PairILPTMD::PairILPTMD(LAMMPS *lmp) : PairILPGrapheneHBN(lmp)
|
||||
{
|
||||
variant = ILP_TMD;
|
||||
|
||||
// for TMD, each atom have six neighbors
|
||||
Nnei = 6;
|
||||
|
||||
if (lmp->citeme) lmp->citeme->add(cite_ilp_tmd);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
global settings
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void PairILPTMD::settings(int narg, char **arg)
|
||||
{
|
||||
if (narg < 1 || narg > 2) error->all(FLERR, "Illegal pair_style command");
|
||||
if (!utils::strmatch(force->pair_style, "^hybrid/overlay"))
|
||||
error->all(FLERR, "Pair style ilp/tmd must be used as sub-style with hybrid/overlay");
|
||||
|
||||
cut_global = utils::numeric(FLERR, arg[0], false, lmp);
|
||||
if (narg == 2) tap_flag = utils::numeric(FLERR, arg[1], false, lmp);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Repulsive forces and energy
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void PairILPTMD::calc_FRep(int eflag, int /* vflag */)
|
||||
{
|
||||
int i,j,ii,jj,inum,jnum,itype,jtype,k,kk;
|
||||
double prodnorm1,fkcx,fkcy,fkcz;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair,fpair1;
|
||||
double rsq,r,Rcut,rhosq1,exp0,exp1,r2inv,r6inv,r8inv,Tap,dTap,Vilp;
|
||||
double frho1,TSvdw,TSvdw2inv,Erep,fsum,rdsq1;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
int *ILP_neighs_i;
|
||||
|
||||
|
||||
evdwl = 0.0;
|
||||
|
||||
double **x = atom->x;
|
||||
double **f = atom->f;
|
||||
int *type = atom->type;
|
||||
int nlocal = atom->nlocal;
|
||||
int newton_pair = force->newton_pair;
|
||||
double dprodnorm1[3] = {0.0, 0.0, 0.0};
|
||||
double fp1[3] = {0.0, 0.0, 0.0};
|
||||
double fprod1[3] = {0.0, 0.0, 0.0};
|
||||
double delki[3] = {0.0, 0.0, 0.0};
|
||||
double fk[3] = {0.0, 0.0, 0.0};
|
||||
|
||||
inum = list->inum;
|
||||
ilist = list->ilist;
|
||||
numneigh = list->numneigh;
|
||||
firstneigh = list->firstneigh;
|
||||
|
||||
//calculate exp(-lambda*(r-z0))*[epsilon/2 + f(rho_ij)]
|
||||
// loop over neighbors of owned atoms
|
||||
for (ii = 0; ii < inum; ii++) {
|
||||
i = ilist[ii];
|
||||
xtmp = x[i][0];
|
||||
ytmp = x[i][1];
|
||||
ztmp = x[i][2];
|
||||
itype = type[i];
|
||||
jlist = firstneigh[i];
|
||||
jnum = numneigh[i];
|
||||
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
j = jlist[jj];
|
||||
j &= NEIGHMASK;
|
||||
jtype = type[j];
|
||||
|
||||
delx = xtmp - x[j][0];
|
||||
dely = ytmp - x[j][1];
|
||||
delz = ztmp - x[j][2];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
|
||||
// only include the interation between different layers
|
||||
if (rsq < cutsq[itype][jtype] && atom->molecule[i] != atom->molecule[j]) {
|
||||
|
||||
int iparam_ij = elem2param[map[itype]][map[jtype]];
|
||||
Param& p = params[iparam_ij];
|
||||
|
||||
r = sqrt(rsq);
|
||||
// turn on/off taper function
|
||||
if (tap_flag) {
|
||||
Rcut = sqrt(cutsq[itype][jtype]);
|
||||
Tap = calc_Tap(r,Rcut);
|
||||
dTap = calc_dTap(r,Rcut);
|
||||
} else {Tap = 1.0; dTap = 0.0;}
|
||||
|
||||
// Calculate the transverse distance
|
||||
// note that rho_ij does not equal to rho_ji except when normals are all along z
|
||||
prodnorm1 = normal[i][0]*delx + normal[i][1]*dely + normal[i][2]*delz;
|
||||
rhosq1 = rsq - prodnorm1*prodnorm1; // rho_ij
|
||||
rdsq1 = rhosq1*p.delta2inv; // (rho_ij/delta)^2
|
||||
|
||||
// store exponents
|
||||
exp0 = exp(-p.lambda*(r-p.z0));
|
||||
exp1 = exp(-rdsq1);
|
||||
|
||||
frho1 = exp1*p.C;
|
||||
Erep = 0.5*p.epsilon + frho1;
|
||||
Vilp = exp0*Erep;
|
||||
|
||||
// derivatives
|
||||
fpair = p.lambda*exp0/r*Erep;
|
||||
fpair1 = 2.0*exp0*frho1*p.delta2inv;
|
||||
fsum = fpair + fpair1;
|
||||
// derivatives of the product of rij and ni, the result is a vector
|
||||
dprodnorm1[0] = dnormdri[i][0][0]*delx + dnormdri[i][1][0]*dely + dnormdri[i][2][0]*delz;
|
||||
dprodnorm1[1] = dnormdri[i][0][1]*delx + dnormdri[i][1][1]*dely + dnormdri[i][2][1]*delz;
|
||||
dprodnorm1[2] = dnormdri[i][0][2]*delx + dnormdri[i][1][2]*dely + dnormdri[i][2][2]*delz;
|
||||
fp1[0] = prodnorm1*normal[i][0]*fpair1;
|
||||
fp1[1] = prodnorm1*normal[i][1]*fpair1;
|
||||
fp1[2] = prodnorm1*normal[i][2]*fpair1;
|
||||
fprod1[0] = prodnorm1*dprodnorm1[0]*fpair1;
|
||||
fprod1[1] = prodnorm1*dprodnorm1[1]*fpair1;
|
||||
fprod1[2] = prodnorm1*dprodnorm1[2]*fpair1;
|
||||
|
||||
fkcx = (delx*fsum - fp1[0])*Tap - Vilp*dTap*delx/r;
|
||||
fkcy = (dely*fsum - fp1[1])*Tap - Vilp*dTap*dely/r;
|
||||
fkcz = (delz*fsum - fp1[2])*Tap - Vilp*dTap*delz/r;
|
||||
|
||||
f[i][0] += fkcx - fprod1[0]*Tap;
|
||||
f[i][1] += fkcy - fprod1[1]*Tap;
|
||||
f[i][2] += fkcz - fprod1[2]*Tap;
|
||||
f[j][0] -= fkcx;
|
||||
f[j][1] -= fkcy;
|
||||
f[j][2] -= fkcz;
|
||||
|
||||
// calculate the forces acted on the neighbors of atom i from atom j
|
||||
ILP_neighs_i = ILP_firstneigh[i];
|
||||
for (kk = 0; kk < ILP_numneigh[i]; kk++) {
|
||||
k = ILP_neighs_i[kk];
|
||||
if (k == i) continue;
|
||||
// derivatives of the product of rij and ni respect to rk, k=0,1,2, where atom k is the neighbors of atom i
|
||||
dprodnorm1[0] = dnormal[i][0][kk][0]*delx + dnormal[i][1][kk][0]*dely + dnormal[i][2][kk][0]*delz;
|
||||
dprodnorm1[1] = dnormal[i][0][kk][1]*delx + dnormal[i][1][kk][1]*dely + dnormal[i][2][kk][1]*delz;
|
||||
dprodnorm1[2] = dnormal[i][0][kk][2]*delx + dnormal[i][1][kk][2]*dely + dnormal[i][2][kk][2]*delz;
|
||||
fk[0] = (-prodnorm1*dprodnorm1[0]*fpair1)*Tap;
|
||||
fk[1] = (-prodnorm1*dprodnorm1[1]*fpair1)*Tap;
|
||||
fk[2] = (-prodnorm1*dprodnorm1[2]*fpair1)*Tap;
|
||||
f[k][0] += fk[0];
|
||||
f[k][1] += fk[1];
|
||||
f[k][2] += fk[2];
|
||||
delki[0] = x[k][0] - x[i][0];
|
||||
delki[1] = x[k][1] - x[i][1];
|
||||
delki[2] = x[k][2] - x[i][2];
|
||||
if (evflag) ev_tally_xyz(k,j,nlocal,newton_pair,0.0,0.0,fk[0],fk[1],fk[2],delki[0],delki[1],delki[2]);
|
||||
}
|
||||
|
||||
if (eflag) pvector[1] += evdwl = Tap*Vilp;
|
||||
if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,evdwl,0.0,fkcx,fkcy,fkcz,delx,dely,delz);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
create ILP neighbor list from main neighbor list to calcualte normals
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void PairILPTMD::ILP_neigh()
|
||||
{
|
||||
int i,j,l,ii,jj,ll,n,allnum,jnum,itype,jtype,ltype,imol,jmol,count;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,deljx,deljy,deljz,rsq,rsqlj;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
int *neighsort;
|
||||
int neighptr[10],check[10];
|
||||
|
||||
double **x = atom->x;
|
||||
int *type = atom->type;
|
||||
|
||||
if (atom->nmax > maxlocal) {
|
||||
maxlocal = atom->nmax;
|
||||
memory->destroy(ILP_numneigh);
|
||||
memory->sfree(ILP_firstneigh);
|
||||
memory->create(ILP_numneigh,maxlocal,"ILPTMD:numneigh");
|
||||
ILP_firstneigh = (int **) memory->smalloc(maxlocal*sizeof(int *),"ILPTMD:firstneigh");
|
||||
}
|
||||
|
||||
allnum = list->inum + list->gnum;
|
||||
ilist = list->ilist;
|
||||
numneigh = list->numneigh;
|
||||
firstneigh = list->firstneigh;
|
||||
|
||||
// store all ILP neighs of owned and ghost atoms
|
||||
// scan full neighbor list of I
|
||||
|
||||
ipage->reset();
|
||||
|
||||
for (ii = 0; ii < allnum; ii++) {
|
||||
i = ilist[ii];
|
||||
|
||||
//initialize varibles
|
||||
n = 0;
|
||||
neighsort = ipage->vget();
|
||||
for (ll = 0; ll < 10; ll++){
|
||||
neighptr[ll] = -1;
|
||||
check[ll] = -1;
|
||||
}
|
||||
|
||||
xtmp = x[i][0];
|
||||
ytmp = x[i][1];
|
||||
ztmp = x[i][2];
|
||||
itype = map[type[i]];
|
||||
imol = atom->molecule[i];
|
||||
jlist = firstneigh[i];
|
||||
jnum = numneigh[i];
|
||||
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
j = jlist[jj];
|
||||
j &= NEIGHMASK;
|
||||
jtype = map[type[j]];
|
||||
jmol = atom->molecule[j];
|
||||
delx = xtmp - x[j][0];
|
||||
dely = ytmp - x[j][1];
|
||||
delz = ztmp - x[j][2];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
|
||||
// check if the atom i is TMD, i.e., Mo/S/W/Se
|
||||
if(strcmp(elements[itype],"Mo") == 0 || strcmp(elements[itype],"W") == 0
|
||||
|| strcmp(elements[itype],"S") == 0 || strcmp(elements[itype],"Se") == 0
|
||||
|| strcmp(elements[itype],"Te") == 0) {
|
||||
if (rsq != 0 && rsq < cutILPsq[itype][jtype] && imol == jmol && type[i] == type[j]) {
|
||||
neighptr[n++] = j;
|
||||
}
|
||||
}
|
||||
else {// atom i is C, B, N or H.
|
||||
if (rsq != 0 && rsq < cutILPsq[itype][jtype] && imol == jmol) {
|
||||
neighptr[n++] = j;
|
||||
}
|
||||
}
|
||||
} // loop over jj
|
||||
|
||||
// if atom i is Mo/W/S/Se/Te, then sorting the orders of neighbors
|
||||
if(strcmp(elements[itype],"Mo") == 0 || strcmp(elements[itype],"W") == 0
|
||||
|| strcmp(elements[itype],"S") == 0 || strcmp(elements[itype],"Se") == 0
|
||||
|| strcmp(elements[itype],"Te") == 0) {
|
||||
// initialize neighsort
|
||||
for (ll = 0; ll < n; ll++){
|
||||
neighsort[ll] = neighptr[ll];
|
||||
check[ll] = neighptr[ll];
|
||||
}
|
||||
|
||||
// select the first neighbor of atomi
|
||||
if(n == Nnei) {
|
||||
neighsort[0] = neighptr[0];
|
||||
check[0] = -1;
|
||||
}
|
||||
else if (n < Nnei && n > 0) {
|
||||
for (jj = 0; jj < n; jj++) { //identify the first neighbor
|
||||
j = neighptr[jj];
|
||||
jtype = map[type[j]];
|
||||
count = 0;
|
||||
for (ll = 0; ll < n; ll++) {
|
||||
l = neighptr[ll];
|
||||
ltype = map[type[l]];
|
||||
if(l == j) continue;
|
||||
deljx = x[l][0] - x[j][0];
|
||||
deljy = x[l][1] - x[j][1];
|
||||
deljz = x[l][2] - x[j][2];
|
||||
rsqlj = deljx*deljx + deljy*deljy + deljz*deljz;
|
||||
if(rsqlj != 0 && rsqlj < cutILPsq[ltype][jtype]) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if(count == 1) {
|
||||
neighsort[0] = neighptr[jj];
|
||||
check[jj] = -1;
|
||||
break;
|
||||
}
|
||||
} // end of idenfying the first neighbor
|
||||
}
|
||||
else if (n > Nnei) {
|
||||
fprintf (screen,"Molecule ID = %d\n",imol);
|
||||
fprintf (screen,"Atom Type = %d\n",type[i]);
|
||||
fprintf (screen,"Neinum = %d\n",n);
|
||||
error->one(FLERR,"There are too many neighbors for TMD atoms, please check your configuration");
|
||||
}
|
||||
|
||||
// sort the order of neighbors of atomi
|
||||
for (jj = 0; jj < n; jj++) {
|
||||
j = neighsort[jj];
|
||||
jtype = map[type[j]];
|
||||
ll = 0;
|
||||
while(ll < n) {
|
||||
l = neighptr[ll];
|
||||
if(check[ll] == -1) {ll++; continue;}
|
||||
ltype = map[type[l]];
|
||||
deljx = x[l][0] - x[j][0];
|
||||
deljy = x[l][1] - x[j][1];
|
||||
deljz = x[l][2] - x[j][2];
|
||||
rsqlj = deljx*deljx + deljy*deljy + deljz*deljz;
|
||||
if(rsqlj != 0 && rsqlj < cutILPsq[ltype][jtype]) {
|
||||
neighsort[jj+1] = l;
|
||||
check[ll] = -1;
|
||||
break;
|
||||
}
|
||||
ll++;
|
||||
}
|
||||
} // end of sorting the order of neighbors
|
||||
}
|
||||
else {// for B/N/C/H atoms
|
||||
if (n > 3) error->one(FLERR,"There are too many neighbors for B/N/C/H atoms, please check your configuration");
|
||||
for (ll = 0; ll < n; ll++) {
|
||||
neighsort[ll] = neighptr[ll];
|
||||
}
|
||||
}
|
||||
|
||||
ILP_firstneigh[i] = neighsort;
|
||||
ILP_numneigh[i] = n;
|
||||
|
||||
ipage->vgot(n);
|
||||
if (ipage->status())
|
||||
error->one(FLERR,"Neighbor list overflow, boost neigh_modify one");
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Calculate the normals for each atom
|
||||
------------------------------------------------------------------------- */
|
||||
void PairILPTMD::calc_normal()
|
||||
{
|
||||
int i,j,ii,jj,inum,jnum;
|
||||
int cont,id,ip,m,k,itype;
|
||||
double nn,xtp,ytp,ztp,delx,dely,delz,nn2;
|
||||
int *ilist,*jlist;
|
||||
double Nave[3],dni[3],dpvdri[3][3];
|
||||
|
||||
double **x = atom->x;
|
||||
int *type = atom->type;
|
||||
|
||||
memory->destroy(dnn);
|
||||
memory->destroy(vect);
|
||||
memory->destroy(pvet);
|
||||
memory->destroy(dpvet1);
|
||||
memory->destroy(dpvet2);
|
||||
memory->destroy(dNave);
|
||||
memory->create(dnn,Nnei,3,"ILPTMD:dnn");
|
||||
memory->create(vect,Nnei,3,"ILPTMD:vect");
|
||||
memory->create(pvet,Nnei,3,"ILPTMD:pvet");
|
||||
memory->create(dpvet1,Nnei,3,3,"ILPTMD:dpvet1");
|
||||
memory->create(dpvet2,Nnei,3,3,"ILPTMD:dpvet2");
|
||||
memory->create(dNave,3,Nnei,3,"ILPTMD:dNave");
|
||||
|
||||
// grow normal array if necessary
|
||||
|
||||
if (atom->nmax > nmax) {
|
||||
memory->destroy(normal);
|
||||
memory->destroy(dnormal);
|
||||
memory->destroy(dnormdri);
|
||||
nmax = atom->nmax;
|
||||
memory->create(normal,nmax,3,"ILPTMD:normal");
|
||||
memory->create(dnormdri,nmax,3,3,"ILPTMD:dnormdri");
|
||||
memory->create(dnormal,nmax,3,Nnei,3,"ILPTMD:dnormal");
|
||||
}
|
||||
|
||||
inum = list->inum;
|
||||
ilist = list->ilist;
|
||||
//Calculate normals
|
||||
for (ii = 0; ii < inum; ii++) {
|
||||
i = ilist[ii];
|
||||
itype = map[type[i]];
|
||||
xtp = x[i][0];
|
||||
ytp = x[i][1];
|
||||
ztp = x[i][2];
|
||||
|
||||
// Initialize the arrays
|
||||
for (id = 0; id < 3; id++){
|
||||
Nave[id] = 0.0;
|
||||
dni[id] = 0.0;
|
||||
normal[i][id] = 0.0;
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
dpvdri[ip][id] = 0.0;
|
||||
dnormdri[i][ip][id] = 0.0;
|
||||
for (m = 0; m < Nnei; m++){
|
||||
dnn[m][id] = 0.0;
|
||||
vect[m][id] = 0.0;
|
||||
pvet[m][id] = 0.0;
|
||||
dpvet1[m][ip][id] = 0.0;
|
||||
dpvet2[m][ip][id] = 0.0;
|
||||
dNave[id][m][ip] = 0.0;
|
||||
dnormal[i][id][m][ip] = 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cont = 0;
|
||||
jlist = ILP_firstneigh[i];
|
||||
jnum = ILP_numneigh[i];
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
j = jlist[jj];
|
||||
j &= NEIGHMASK;
|
||||
|
||||
delx = x[j][0] - xtp;
|
||||
dely = x[j][1] - ytp;
|
||||
delz = x[j][2] - ztp;
|
||||
vect[cont][0] = delx;
|
||||
vect[cont][1] = dely;
|
||||
vect[cont][2] = delz;
|
||||
cont++;
|
||||
}
|
||||
|
||||
//############################ For the dangling atoms ############################
|
||||
if (cont <= 1) {
|
||||
normal[i][0] = 0.0;
|
||||
normal[i][1] = 0.0;
|
||||
normal[i][2] = 1.0;
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
dnormdri[i][id][ip] = 0.0;
|
||||
for (m = 0; m < Nnei; m++){
|
||||
dnormal[i][id][m][ip] = 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//############################ For the edge atoms of TMD ################################
|
||||
else if (cont > 1 && cont < Nnei) {
|
||||
if(strcmp(elements[itype],"Mo") == 0|| strcmp(elements[itype],"W") == 0 || strcmp(elements[itype],"S") == 0|| strcmp(elements[itype],"Se") == 0) {
|
||||
// derivatives of Ni[l] respect to the cont neighbors
|
||||
for (k = 0; k < cont-1; k++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
pvet[k][ip] = vect[k][modulo(ip+1,3)]*vect[k+1][modulo(ip+2,3)] - vect[k][modulo(ip+2,3)]*vect[k+1][modulo(ip+1,3)];
|
||||
}
|
||||
// dpvet1[k][l][ip]: the derivatve of the k (=0,...cont-1)th Nik respect to the ip component of atom l
|
||||
// derivatives respect to atom l
|
||||
// dNik,x/drl
|
||||
dpvet1[k][0][0] = 0.0;
|
||||
dpvet1[k][0][1] = vect[modulo(k+1,Nnei)][2];
|
||||
dpvet1[k][0][2] = -vect[modulo(k+1,Nnei)][1];
|
||||
// dNik,y/drl
|
||||
dpvet1[k][1][0] = -vect[modulo(k+1,Nnei)][2];
|
||||
dpvet1[k][1][1] = 0.0;
|
||||
dpvet1[k][1][2] = vect[modulo(k+1,Nnei)][0];
|
||||
// dNik,z/drl
|
||||
dpvet1[k][2][0] = vect[modulo(k+1,Nnei)][1];
|
||||
dpvet1[k][2][1] = -vect[modulo(k+1,Nnei)][0];
|
||||
dpvet1[k][2][2] = 0.0;
|
||||
|
||||
// dpvet2[k][l][ip]: the derivatve of the k (=0,...cont-1)th Nik respect to the ip component of atom l+1
|
||||
// derivatives respect to atom l+1
|
||||
// dNik,x/drl+1
|
||||
dpvet2[k][0][0] = 0.0;
|
||||
dpvet2[k][0][1] = -vect[modulo(k,Nnei)][2];
|
||||
dpvet2[k][0][2] = vect[modulo(k,Nnei)][1];
|
||||
// dNik,y/drl+1
|
||||
dpvet2[k][1][0] = vect[modulo(k,Nnei)][2];
|
||||
dpvet2[k][1][1] = 0.0;
|
||||
dpvet2[k][1][2] = -vect[modulo(k,Nnei)][0];
|
||||
// dNik,z/drl+1
|
||||
dpvet2[k][2][0] = -vect[modulo(k,Nnei)][1];
|
||||
dpvet2[k][2][1] = vect[modulo(k,Nnei)][0];
|
||||
dpvet2[k][2][2] = 0.0;
|
||||
}
|
||||
|
||||
// average the normal vectors by using the Nnei neighboring planes
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
Nave[ip] = 0.0;
|
||||
for (k = 0; k < cont-1; k++){
|
||||
Nave[ip] += pvet[k][ip];
|
||||
}
|
||||
Nave[ip] /= (cont - 1);
|
||||
}
|
||||
// the magnitude of the normal vector
|
||||
nn2 = Nave[0]*Nave[0] + Nave[1]*Nave[1] + Nave[2]*Nave[2];
|
||||
nn = sqrt(nn2);
|
||||
if (nn == 0) error->one(FLERR,"The magnitude of the normal vector is zero");
|
||||
// the unit normal vector
|
||||
normal[i][0] = Nave[0]/nn;
|
||||
normal[i][1] = Nave[1]/nn;
|
||||
normal[i][2] = Nave[2]/nn;
|
||||
|
||||
// derivatives of non-normalized normal vector, dNave:3xcontx3 array
|
||||
// dNave[id][m][ip]: the derivatve of the id component of Nave respect to the ip component of atom m
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
for (m = 0; m < cont; m++){
|
||||
if(m == 0) {
|
||||
dNave[id][m][ip] = dpvet1[m][id][ip]/(cont-1);
|
||||
}
|
||||
else if(m == cont - 1) {
|
||||
dNave[id][m][ip] = dpvet2[m-1][id][ip]/(cont-1);
|
||||
}
|
||||
else { // sum of the derivatives of the mth and (m-1)th normal vector respect to the atom m
|
||||
dNave[id][m][ip] = (dpvet1[m][id][ip] + dpvet2[m-1][id][ip])/(cont-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// derivatives of nn, dnn:contx3 vector
|
||||
// dnn[m][id]: the derivative of nn respect to r[m][id], m=0,...Nnei-1; id=0,1,2
|
||||
// r[m][id]: the id's component of atom m
|
||||
for (m = 0; m < cont; m++){
|
||||
for (id = 0; id < 3; id++){
|
||||
dnn[m][id] = (Nave[0]*dNave[0][m][id] + Nave[1]*dNave[1][m][id] + Nave[2]*dNave[2][m][id])/nn;
|
||||
}
|
||||
}
|
||||
// dnormal[i][id][m][ip]: the derivative of normal[i][id] respect to r[m][ip], id,ip=0,1,2.
|
||||
// for atom m, which is a neighbor atom of atom i, m = 0,...,Nnei-1
|
||||
for (m = 0; m < cont; m++){
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
dnormal[i][id][m][ip] = dNave[id][m][ip]/nn - Nave[id]*dnn[m][ip]/nn2;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Calculte dNave/dri, defined as dpvdri
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
dpvdri[id][ip] = 0.0;
|
||||
for (k = 0; k < cont; k++){
|
||||
dpvdri[id][ip] -= dNave[id][k][ip];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// derivatives of nn, dnn:3x1 vector
|
||||
dni[0] = (Nave[0]*dpvdri[0][0] + Nave[1]*dpvdri[1][0] + Nave[2]*dpvdri[2][0])/nn;
|
||||
dni[1] = (Nave[0]*dpvdri[0][1] + Nave[1]*dpvdri[1][1] + Nave[2]*dpvdri[2][1])/nn;
|
||||
dni[2] = (Nave[0]*dpvdri[0][2] + Nave[1]*dpvdri[1][2] + Nave[2]*dpvdri[2][2])/nn;
|
||||
// derivatives of unit vector ni respect to ri, the result is 3x3 matrix
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
dnormdri[i][id][ip] = dpvdri[id][ip]/nn - Nave[id]*dni[ip]/nn2;
|
||||
}
|
||||
}
|
||||
} // for TMD
|
||||
//############################ For the edge & bulk atoms of GrhBN ################################
|
||||
else {
|
||||
if(cont == 2) {
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
pvet[0][ip] = vect[0][modulo(ip+1,3)]*vect[1][modulo(ip+2,3)] - vect[0][modulo(ip+2,3)]*vect[1][modulo(ip+1,3)];
|
||||
}
|
||||
// dpvet1[k][l][ip]: the derivatve of the k (=0,...cont-1)th Nik respect to the ip component of atom l
|
||||
// derivatives respect to atom l
|
||||
// dNik,x/drl
|
||||
dpvet1[0][0][0] = 0.0;
|
||||
dpvet1[0][0][1] = vect[1][2];
|
||||
dpvet1[0][0][2] = -vect[1][1];
|
||||
// dNi0,y/drl
|
||||
dpvet1[0][1][0] = -vect[1][2];
|
||||
dpvet1[0][1][1] = 0.0;
|
||||
dpvet1[0][1][2] = vect[1][0];
|
||||
// dNi0,z/drl
|
||||
dpvet1[0][2][0] = vect[1][1];
|
||||
dpvet1[0][2][1] = -vect[1][0];
|
||||
dpvet1[0][2][2] = 0.0;
|
||||
|
||||
// dpvet2[0][l][ip]: the derivatve of the 0 (=0,...cont-1)th Ni0 respect to the ip component of atom l+1
|
||||
// derivatives respect to atom l+1
|
||||
// dNi0,x/drl+1
|
||||
dpvet2[0][0][0] = 0.0;
|
||||
dpvet2[0][0][1] = -vect[0][2];
|
||||
dpvet2[0][0][2] = vect[0][1];
|
||||
// dNi0,y/drl+1
|
||||
dpvet2[0][1][0] = vect[0][2];
|
||||
dpvet2[0][1][1] = 0.0;
|
||||
dpvet2[0][1][2] = -vect[0][0];
|
||||
// dNi0,z/drl+1
|
||||
dpvet2[0][2][0] = -vect[0][1];
|
||||
dpvet2[0][2][1] = vect[0][0];
|
||||
dpvet2[0][2][2] = 0.0;
|
||||
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
Nave[ip] += pvet[0][ip];
|
||||
}
|
||||
// the magnitude of the normal vector
|
||||
nn2 = Nave[0]*Nave[0] + Nave[1]*Nave[1] + Nave[2]*Nave[2];
|
||||
nn = sqrt(nn2);
|
||||
if (nn == 0) error->one(FLERR,"The magnitude of the normal vector is zero");
|
||||
// the unit normal vector
|
||||
normal[i][0] = Nave[0]/nn;
|
||||
normal[i][1] = Nave[1]/nn;
|
||||
normal[i][2] = Nave[2]/nn;
|
||||
|
||||
// derivatives of non-normalized normal vector, dNave:3xcontx3 array
|
||||
// dNave[id][m][ip]: the derivatve of the id component of Nave respect to the ip component of atom m
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
for (m = 0; m < cont; m++){
|
||||
if(m == 0) {
|
||||
dNave[id][m][ip] = dpvet1[m][id][ip]/(cont-1);
|
||||
}
|
||||
else if(m == cont - 1) {
|
||||
dNave[id][m][ip] = dpvet2[m-1][id][ip]/(cont-1);
|
||||
}
|
||||
else { // sum of the derivatives of the mth and (m-1)th normal vector respect to the atom m
|
||||
dNave[id][m][ip] = (dpvet1[m][id][ip] + dpvet2[m-1][id][ip])/(cont-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// derivatives of nn, dnn:contx3 vector
|
||||
// dnn[m][id]: the derivative of nn respect to r[m][id], m=0,...Nnei-1; id=0,1,2
|
||||
// r[m][id]: the id's component of atom m
|
||||
for (m = 0; m < cont; m++){
|
||||
for (id = 0; id < 3; id++){
|
||||
dnn[m][id] = (Nave[0]*dNave[0][m][id] + Nave[1]*dNave[1][m][id] + Nave[2]*dNave[2][m][id])/nn;
|
||||
}
|
||||
}
|
||||
// dnormal[i][id][m][ip]: the derivative of normal[i][id] respect to r[m][ip], id,ip=0,1,2.
|
||||
// for atom m, which is a neighbor atom of atom i, m = 0,...,Nnei-1
|
||||
for (m = 0; m < cont; m++){
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
dnormal[i][id][m][ip] = dNave[id][m][ip]/nn - Nave[id]*dnn[m][ip]/nn2;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Calculte dNave/dri, defined as dpvdri
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
dpvdri[id][ip] = 0.0;
|
||||
for (k = 0; k < cont; k++){
|
||||
dpvdri[id][ip] -= dNave[id][k][ip];
|
||||
}
|
||||
}
|
||||
}
|
||||
// derivatives of nn, dnn:3x1 vector
|
||||
dni[0] = (Nave[0]*dpvdri[0][0] + Nave[1]*dpvdri[1][0] + Nave[2]*dpvdri[2][0])/nn;
|
||||
dni[1] = (Nave[0]*dpvdri[0][1] + Nave[1]*dpvdri[1][1] + Nave[2]*dpvdri[2][1])/nn;
|
||||
dni[2] = (Nave[0]*dpvdri[0][2] + Nave[1]*dpvdri[1][2] + Nave[2]*dpvdri[2][2])/nn;
|
||||
// derivatives of unit vector ni respect to ri, the result is 3x3 matrix
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
dnormdri[i][id][ip] = dpvdri[id][ip]/nn - Nave[id]*dni[ip]/nn2;
|
||||
}
|
||||
}
|
||||
} // end of cont == 2
|
||||
else if(cont == 3) {
|
||||
// derivatives of Ni[l] respect to the 3 neighbors
|
||||
for (k = 0; k < 3; k++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
pvet[k][ip] = vect[modulo(k,3)][modulo(ip+1,3)]*vect[modulo(k+1,3)][modulo(ip+2,3)] \
|
||||
-vect[modulo(k,3)][modulo(ip+2,3)]*vect[modulo(k+1,3)][modulo(ip+1,3)];
|
||||
}
|
||||
// dpvet1[k][l][ip]: the derivatve of the k (=0,...cont-1)th Nik respect to the ip component of atom l
|
||||
// derivatives respect to atom l
|
||||
// dNik,x/drl
|
||||
dpvet1[k][0][0] = 0.0;
|
||||
dpvet1[k][0][1] = vect[modulo(k+1,3)][2];
|
||||
dpvet1[k][0][2] = -vect[modulo(k+1,3)][1];
|
||||
// dNik,y/drl
|
||||
dpvet1[k][1][0] = -vect[modulo(k+1,3)][2];
|
||||
dpvet1[k][1][1] = 0.0;
|
||||
dpvet1[k][1][2] = vect[modulo(k+1,3)][0];
|
||||
// dNik,z/drl
|
||||
dpvet1[k][2][0] = vect[modulo(k+1,3)][1];
|
||||
dpvet1[k][2][1] = -vect[modulo(k+1,3)][0];
|
||||
dpvet1[k][2][2] = 0.0;
|
||||
|
||||
// dpvet2[k][l][ip]: the derivatve of the k (=0,...cont-1)th Nik respect to the ip component of atom l+1
|
||||
// derivatives respect to atom l+1
|
||||
// dNik,x/drl+1
|
||||
dpvet2[k][0][0] = 0.0;
|
||||
dpvet2[k][0][1] = -vect[modulo(k,3)][2];
|
||||
dpvet2[k][0][2] = vect[modulo(k,3)][1];
|
||||
// dNik,y/drl+1
|
||||
dpvet2[k][1][0] = vect[modulo(k,3)][2];
|
||||
dpvet2[k][1][1] = 0.0;
|
||||
dpvet2[k][1][2] = -vect[modulo(k,3)][0];
|
||||
// dNik,z/drl+1
|
||||
dpvet2[k][2][0] = -vect[modulo(k,3)][1];
|
||||
dpvet2[k][2][1] = vect[modulo(k,3)][0];
|
||||
dpvet2[k][2][2] = 0.0;
|
||||
}
|
||||
|
||||
// average the normal vectors by using the 3 neighboring planes
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
Nave[ip] = 0.0;
|
||||
for (k = 0; k < 3; k++){
|
||||
Nave[ip] += pvet[k][ip];
|
||||
}
|
||||
Nave[ip] /= 3;
|
||||
}
|
||||
// the magnitude of the normal vector
|
||||
nn2 = Nave[0]*Nave[0] + Nave[1]*Nave[1] + Nave[2]*Nave[2];
|
||||
nn = sqrt(nn2);
|
||||
if (nn == 0) error->one(FLERR,"The magnitude of the normal vector is zero");
|
||||
// the unit normal vector
|
||||
normal[i][0] = Nave[0]/nn;
|
||||
normal[i][1] = Nave[1]/nn;
|
||||
normal[i][2] = Nave[2]/nn;
|
||||
|
||||
// for the central atoms, dnormdri is always zero
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
dnormdri[i][id][ip] = 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
// derivatives of non-normalized normal vector, dNave:3x3x3 array
|
||||
// dNave[id][m][ip]: the derivatve of the id component of Nave respect to the ip component of atom m
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
for (m = 0; m < 3; m++){ // sum of the derivatives of the mth and (m-1)th normal vector respect to the atom m
|
||||
dNave[id][m][ip] = (dpvet1[modulo(m,3)][id][ip] + dpvet2[modulo(m-1,3)][id][ip])/3;
|
||||
}
|
||||
}
|
||||
}
|
||||
// derivatives of nn, dnn:3x3 vector
|
||||
// dnn[m][id]: the derivative of nn respect to r[m][id], m=0,...3-1; id=0,1,2
|
||||
// r[m][id]: the id's component of atom m
|
||||
for (m = 0; m < 3; m++){
|
||||
for (id = 0; id < 3; id++){
|
||||
dnn[m][id] = (Nave[0]*dNave[0][m][id] + Nave[1]*dNave[1][m][id] + Nave[2]*dNave[2][m][id])/nn;
|
||||
}
|
||||
}
|
||||
// dnormal[i][id][m][ip]: the derivative of normal[i][id] respect to r[m][ip], id,ip=0,1,2.
|
||||
// for atom m, which is a neighbor atom of atom i, m = 0,...,3-1
|
||||
for (m = 0; m < 3; m++){
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
dnormal[i][id][m][ip] = dNave[id][m][ip]/nn - Nave[id]*dnn[m][ip]/nn2;
|
||||
}
|
||||
}
|
||||
}
|
||||
} // end of cont == 3
|
||||
else error->one(FLERR,"There are too many neighbors for calculating normals of B/N/C/H atoms");
|
||||
} // for B/N/C/H
|
||||
} // end of if(cont<Nnei)
|
||||
//############################ For the bulk atoms ################################
|
||||
else if(cont == Nnei) {
|
||||
// derivatives of Ni[l] respect to the Nnei neighbors
|
||||
for (k = 0; k < Nnei; k++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
pvet[k][ip] = vect[modulo(k,Nnei)][modulo(ip+1,3)]*vect[modulo(k+1,Nnei)][modulo(ip+2,3)] \
|
||||
-vect[modulo(k,Nnei)][modulo(ip+2,3)]*vect[modulo(k+1,Nnei)][modulo(ip+1,3)];
|
||||
}
|
||||
// dpvet1[k][l][ip]: the derivatve of the k (=0,...cont-1)th Nik respect to the ip component of atom l
|
||||
// derivatives respect to atom l
|
||||
// dNik,x/drl
|
||||
dpvet1[k][0][0] = 0.0;
|
||||
dpvet1[k][0][1] = vect[modulo(k+1,Nnei)][2];
|
||||
dpvet1[k][0][2] = -vect[modulo(k+1,Nnei)][1];
|
||||
// dNik,y/drl
|
||||
dpvet1[k][1][0] = -vect[modulo(k+1,Nnei)][2];
|
||||
dpvet1[k][1][1] = 0.0;
|
||||
dpvet1[k][1][2] = vect[modulo(k+1,Nnei)][0];
|
||||
// dNik,z/drl
|
||||
dpvet1[k][2][0] = vect[modulo(k+1,Nnei)][1];
|
||||
dpvet1[k][2][1] = -vect[modulo(k+1,Nnei)][0];
|
||||
dpvet1[k][2][2] = 0.0;
|
||||
|
||||
// dpvet2[k][l][ip]: the derivatve of the k (=0,...cont-1)th Nik respect to the ip component of atom l+1
|
||||
// derivatives respect to atom l+1
|
||||
// dNik,x/drl+1
|
||||
dpvet2[k][0][0] = 0.0;
|
||||
dpvet2[k][0][1] = -vect[modulo(k,Nnei)][2];
|
||||
dpvet2[k][0][2] = vect[modulo(k,Nnei)][1];
|
||||
// dNik,y/drl+1
|
||||
dpvet2[k][1][0] = vect[modulo(k,Nnei)][2];
|
||||
dpvet2[k][1][1] = 0.0;
|
||||
dpvet2[k][1][2] = -vect[modulo(k,Nnei)][0];
|
||||
// dNik,z/drl+1
|
||||
dpvet2[k][2][0] = -vect[modulo(k,Nnei)][1];
|
||||
dpvet2[k][2][1] = vect[modulo(k,Nnei)][0];
|
||||
dpvet2[k][2][2] = 0.0;
|
||||
}
|
||||
|
||||
// average the normal vectors by using the Nnei neighboring planes
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
Nave[ip] = 0.0;
|
||||
for (k = 0; k < Nnei; k++){
|
||||
Nave[ip] += pvet[k][ip];
|
||||
}
|
||||
Nave[ip] /= Nnei;
|
||||
}
|
||||
// the magnitude of the normal vector
|
||||
nn2 = Nave[0]*Nave[0] + Nave[1]*Nave[1] + Nave[2]*Nave[2];
|
||||
nn = sqrt(nn2);
|
||||
if (nn == 0) error->one(FLERR,"The magnitude of the normal vector is zero");
|
||||
// the unit normal vector
|
||||
normal[i][0] = Nave[0]/nn;
|
||||
normal[i][1] = Nave[1]/nn;
|
||||
normal[i][2] = Nave[2]/nn;
|
||||
|
||||
// for the central atoms, dnormdri is always zero
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
dnormdri[i][id][ip] = 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
// derivatives of non-normalized normal vector, dNave:3xNneix3 array
|
||||
// dNave[id][m][ip]: the derivatve of the id component of Nave respect to the ip component of atom m
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
for (m = 0; m < Nnei; m++){ // sum of the derivatives of the mth and (m-1)th normal vector respect to the atom m
|
||||
dNave[id][m][ip] = (dpvet1[modulo(m,Nnei)][id][ip] + dpvet2[modulo(m-1,Nnei)][id][ip])/Nnei;
|
||||
}
|
||||
}
|
||||
}
|
||||
// derivatives of nn, dnn:Nneix3 vector
|
||||
// dnn[m][id]: the derivative of nn respect to r[m][id], m=0,...Nnei-1; id=0,1,2
|
||||
// r[m][id]: the id's component of atom m
|
||||
for (m = 0; m < Nnei; m++){
|
||||
for (id = 0; id < 3; id++){
|
||||
dnn[m][id] = (Nave[0]*dNave[0][m][id] + Nave[1]*dNave[1][m][id] + Nave[2]*dNave[2][m][id])/nn;
|
||||
}
|
||||
}
|
||||
// dnormal[i][id][m][ip]: the derivative of normal[i][id] respect to r[m][ip], id,ip=0,1,2.
|
||||
// for atom m, which is a neighbor atom of atom i, m = 0,...,Nnei-1
|
||||
for (m = 0; m < Nnei; m++){
|
||||
for (id = 0; id < 3; id++){
|
||||
for (ip = 0; ip < 3; ip++){
|
||||
dnormal[i][id][m][ip] = dNave[id][m][ip]/nn - Nave[id]*dnn[m][ip]/nn2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
error->one(FLERR,"There are too many neighbors for calculating normals of TMD atoms");
|
||||
} // end of four cases of cont
|
||||
} // end of i loop
|
||||
}
|
||||
71
src/INTERLAYER/pair_ilp_tmd.h
Normal file
71
src/INTERLAYER/pair_ilp_tmd.h
Normal file
@ -0,0 +1,71 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/, 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
|
||||
// clang-format off
|
||||
PairStyle(ilp/tmd,PairILPTMD);
|
||||
// clang-format on
|
||||
#else
|
||||
|
||||
#ifndef LMP_PAIR_ILP_TMD_H
|
||||
#define LMP_PAIR_ILP_TMD_H
|
||||
|
||||
#include "pair_ilp_graphene_hbn.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
class PairILPTMD : public PairILPGrapheneHBN {
|
||||
public:
|
||||
PairILPTMD(class LAMMPS *);
|
||||
|
||||
protected:
|
||||
void settings(int, char **);
|
||||
void ILP_neigh();
|
||||
void calc_normal();
|
||||
void calc_FRep(int, int);
|
||||
|
||||
/**************************************************************/
|
||||
/* modulo operation with cycling around range */
|
||||
|
||||
inline int modulo(int k, int range)
|
||||
{
|
||||
if (k < 0) k += range;
|
||||
return k % range;
|
||||
}
|
||||
/**************************************************************/
|
||||
|
||||
};
|
||||
|
||||
} // namespace LAMMPS_NS
|
||||
|
||||
#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: 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.
|
||||
|
||||
*/
|
||||
233
src/INTERLAYER/pair_saip_metal.cpp
Normal file
233
src/INTERLAYER/pair_saip_metal.cpp
Normal file
@ -0,0 +1,233 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/, 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.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Wengen Ouyang (Wuhan University)
|
||||
e-mail: w.g.ouyang at gmail dot com
|
||||
|
||||
This is a full version of the potential described in
|
||||
[Ouyang et al, J. Chem. Theory Comput. 17, 7215-7223 (2021)]
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "pair_saip_metal.h"
|
||||
|
||||
#include "atom.h"
|
||||
#include "citeme.h"
|
||||
#include "error.h"
|
||||
#include "force.h"
|
||||
#include "interlayer_taper.h"
|
||||
#include "neigh_list.h"
|
||||
#include "neigh_request.h"
|
||||
#include "neighbor.h"
|
||||
|
||||
#include <cmath>
|
||||
#include <cstring>
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace InterLayer;
|
||||
|
||||
#define MAXLINE 1024
|
||||
#define DELTA 4
|
||||
#define PGDELTA 1
|
||||
|
||||
static const char cite_saip[] =
|
||||
"saip/metal potential doi.org/10.1021/acs.jctc.1c00622\n"
|
||||
"@Article{Ouyang2021\n"
|
||||
" author = {W. Ouyang, O. Hod, and R. Guerra},\n"
|
||||
" title = {Registry-Dependent Potential for Interfaces of Gold with Graphitic Systems},\n"
|
||||
" journal = {J. Chem. Theory Comput.},\n"
|
||||
" volume = 17,\n"
|
||||
" pages = {7215-7223}\n"
|
||||
" year = 2021,\n"
|
||||
"}\n\n";
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
PairSAIPMETAL::PairSAIPMETAL(LAMMPS *lmp) : PairILPGrapheneHBN(lmp) {
|
||||
variant = SAIP_METAL;
|
||||
if (lmp->citeme) lmp->citeme->add(cite_saip);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
global settings
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void PairSAIPMETAL::settings(int narg, char **arg)
|
||||
{
|
||||
if (narg < 1 || narg > 2) error->all(FLERR, "Illegal pair_style command");
|
||||
if (!utils::strmatch(force->pair_style, "^hybrid/overlay"))
|
||||
error->all(FLERR, "Pair style saip/metal must be used as sub-style with hybrid/overlay");
|
||||
|
||||
cut_global = utils::numeric(FLERR, arg[0], false, lmp);
|
||||
if (narg == 2) tap_flag = utils::numeric(FLERR, arg[1], false, lmp);
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Repulsive forces and energy
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void PairSAIPMETAL::calc_FRep(int eflag, int /* vflag */)
|
||||
{
|
||||
int i,j,ii,jj,inum,jnum,itype,jtype,k,kk;
|
||||
double prodnorm1,fkcx,fkcy,fkcz,filp;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair,fpair1;
|
||||
double rsq,r,Rcut,rhosq1,exp0,exp1,Tap,dTap,Vilp;
|
||||
double frho1,Erep,fsum,rdsq1;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
int *ILP_neighs_i;
|
||||
|
||||
evdwl = 0.0;
|
||||
|
||||
double **x = atom->x;
|
||||
double **f = atom->f;
|
||||
int *type = atom->type;
|
||||
int nlocal = atom->nlocal;
|
||||
int newton_pair = force->newton_pair;
|
||||
double dprodnorm1[3] = {0.0, 0.0, 0.0};
|
||||
double fp1[3] = {0.0, 0.0, 0.0};
|
||||
double fprod1[3] = {0.0, 0.0, 0.0};
|
||||
double delki[3] = {0.0, 0.0, 0.0};
|
||||
double fk[3] = {0.0, 0.0, 0.0};
|
||||
|
||||
inum = list->inum;
|
||||
ilist = list->ilist;
|
||||
numneigh = list->numneigh;
|
||||
firstneigh = list->firstneigh;
|
||||
|
||||
//calculate exp(-lambda*(r-z0))*[epsilon/2 + f(rho_ij)]
|
||||
// loop over neighbors of owned atoms
|
||||
for (ii = 0; ii < inum; ii++) {
|
||||
i = ilist[ii];
|
||||
xtmp = x[i][0];
|
||||
ytmp = x[i][1];
|
||||
ztmp = x[i][2];
|
||||
itype = type[i];
|
||||
jlist = firstneigh[i];
|
||||
jnum = numneigh[i];
|
||||
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
j = jlist[jj];
|
||||
j &= NEIGHMASK;
|
||||
jtype = type[j];
|
||||
|
||||
delx = xtmp - x[j][0];
|
||||
dely = ytmp - x[j][1];
|
||||
delz = ztmp - x[j][2];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
|
||||
// only include the interaction between different layers
|
||||
if (rsq < cutsq[itype][jtype] && atom->molecule[i] != atom->molecule[j]) {
|
||||
|
||||
int iparam_ij = elem2param[map[itype]][map[jtype]];
|
||||
Param& p = params[iparam_ij];
|
||||
|
||||
r = sqrt(rsq);
|
||||
// turn on/off taper function
|
||||
if (tap_flag) {
|
||||
Rcut = sqrt(cutsq[itype][jtype]);
|
||||
Tap = calc_Tap(r,Rcut);
|
||||
dTap = calc_dTap(r,Rcut);
|
||||
} else {Tap = 1.0; dTap = 0.0;}
|
||||
// for atoms in bulk materials
|
||||
if (strcmp(elements[map[itype]],"C") != 0 && strcmp(elements[map[itype]],"H") != 0 &&
|
||||
strcmp(elements[map[itype]],"B") != 0 && strcmp(elements[map[itype]],"N") != 0) {
|
||||
// Set ni along rij
|
||||
exp0 = exp(-p.lambda*(r-p.z0));
|
||||
frho1 = 1.0*p.C;
|
||||
Erep = 0.5*p.epsilon + frho1;
|
||||
Vilp = exp0*Erep;
|
||||
// derivatives
|
||||
fpair = p.lambda*exp0/r*Erep;
|
||||
filp = fpair*Tap - Vilp*dTap/r;
|
||||
fkcx = delx*filp;
|
||||
fkcy = dely*filp;
|
||||
fkcz = delz*filp;
|
||||
|
||||
f[i][0] += fkcx;
|
||||
f[i][1] += fkcy;
|
||||
f[i][2] += fkcz;
|
||||
f[j][0] -= fkcx;
|
||||
f[j][1] -= fkcy;
|
||||
f[j][2] -= fkcz;
|
||||
|
||||
if (eflag) pvector[1] += evdwl = Tap*Vilp;
|
||||
if (evflag) ev_tally(i,j,nlocal,newton_pair,evdwl,0.0,filp,delx,dely,delz);
|
||||
}
|
||||
else { // for atoms in 2D materials
|
||||
// Calculate the transverse distance
|
||||
prodnorm1 = normal[i][0]*delx + normal[i][1]*dely + normal[i][2]*delz;
|
||||
rhosq1 = rsq - prodnorm1*prodnorm1; // rho_ij
|
||||
rdsq1 = rhosq1*p.delta2inv; // (rho_ij/delta)^2
|
||||
|
||||
// store exponents
|
||||
exp0 = exp(-p.lambda*(r-p.z0));
|
||||
exp1 = exp(-rdsq1);
|
||||
|
||||
frho1 = exp1*p.C;
|
||||
Erep = 0.5*p.epsilon + frho1;
|
||||
Vilp = exp0*Erep;
|
||||
|
||||
// derivatives
|
||||
fpair = p.lambda*exp0/r*Erep;
|
||||
fpair1 = 2.0*exp0*frho1*p.delta2inv;
|
||||
fsum = fpair + fpair1;
|
||||
// derivatives of the product of rij and ni, the result is a vector
|
||||
dprodnorm1[0] = dnormdri[0][0][i]*delx + dnormdri[1][0][i]*dely + dnormdri[2][0][i]*delz;
|
||||
dprodnorm1[1] = dnormdri[0][1][i]*delx + dnormdri[1][1][i]*dely + dnormdri[2][1][i]*delz;
|
||||
dprodnorm1[2] = dnormdri[0][2][i]*delx + dnormdri[1][2][i]*dely + dnormdri[2][2][i]*delz;
|
||||
fp1[0] = prodnorm1*normal[i][0]*fpair1;
|
||||
fp1[1] = prodnorm1*normal[i][1]*fpair1;
|
||||
fp1[2] = prodnorm1*normal[i][2]*fpair1;
|
||||
fprod1[0] = prodnorm1*dprodnorm1[0]*fpair1;
|
||||
fprod1[1] = prodnorm1*dprodnorm1[1]*fpair1;
|
||||
fprod1[2] = prodnorm1*dprodnorm1[2]*fpair1;
|
||||
|
||||
fkcx = (delx*fsum - fp1[0])*Tap - Vilp*dTap*delx/r;
|
||||
fkcy = (dely*fsum - fp1[1])*Tap - Vilp*dTap*dely/r;
|
||||
fkcz = (delz*fsum - fp1[2])*Tap - Vilp*dTap*delz/r;
|
||||
|
||||
f[i][0] += fkcx - fprod1[0]*Tap;
|
||||
f[i][1] += fkcy - fprod1[1]*Tap;
|
||||
f[i][2] += fkcz - fprod1[2]*Tap;
|
||||
f[j][0] -= fkcx;
|
||||
f[j][1] -= fkcy;
|
||||
f[j][2] -= fkcz;
|
||||
|
||||
// calculate the forces acted on the neighbors of atom i from atom j
|
||||
ILP_neighs_i = ILP_firstneigh[i];
|
||||
for (kk = 0; kk < ILP_numneigh[i]; kk++) {
|
||||
k = ILP_neighs_i[kk];
|
||||
if (k == i) continue;
|
||||
// derivatives of the product of rij and ni respect to rk, k=0,1,2, where atom k is the neighbors of atom i
|
||||
dprodnorm1[0] = dnormal[0][0][kk][i]*delx + dnormal[1][0][kk][i]*dely + dnormal[2][0][kk][i]*delz;
|
||||
dprodnorm1[1] = dnormal[0][1][kk][i]*delx + dnormal[1][1][kk][i]*dely + dnormal[2][1][kk][i]*delz;
|
||||
dprodnorm1[2] = dnormal[0][2][kk][i]*delx + dnormal[1][2][kk][i]*dely + dnormal[2][2][kk][i]*delz;
|
||||
fk[0] = (-prodnorm1*dprodnorm1[0]*fpair1)*Tap;
|
||||
fk[1] = (-prodnorm1*dprodnorm1[1]*fpair1)*Tap;
|
||||
fk[2] = (-prodnorm1*dprodnorm1[2]*fpair1)*Tap;
|
||||
f[k][0] += fk[0];
|
||||
f[k][1] += fk[1];
|
||||
f[k][2] += fk[2];
|
||||
delki[0] = x[k][0] - x[i][0];
|
||||
delki[1] = x[k][1] - x[i][1];
|
||||
delki[2] = x[k][2] - x[i][2];
|
||||
if (evflag) ev_tally_xyz(k,j,nlocal,newton_pair,0.0,0.0,fk[0],fk[1],fk[2],delki[0],delki[1],delki[2]);
|
||||
}
|
||||
|
||||
if (eflag) pvector[1] += evdwl = Tap*Vilp;
|
||||
if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,evdwl,0.0,fkcx,fkcy,fkcz,delx,dely,delz);
|
||||
} // end of speration atoms for bulk materials
|
||||
} // end of rsq < cutoff
|
||||
} // loop over jj
|
||||
} // loop over ii
|
||||
}
|
||||
58
src/INTERLAYER/pair_saip_metal.h
Normal file
58
src/INTERLAYER/pair_saip_metal.h
Normal file
@ -0,0 +1,58 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/, 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
|
||||
// clang-format off
|
||||
PairStyle(saip/metal,PairSAIPMETAL);
|
||||
// clang-format on
|
||||
#else
|
||||
|
||||
#ifndef LMP_PAIR_SAIP_METAL_H
|
||||
#define LMP_PAIR_SAIP_METAL_H
|
||||
|
||||
#include "pair_ilp_graphene_hbn.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
class PairSAIPMETAL : public PairILPGrapheneHBN {
|
||||
public:
|
||||
PairSAIPMETAL(class LAMMPS *);
|
||||
|
||||
protected:
|
||||
void settings(int, char **);
|
||||
void calc_FRep(int, int);
|
||||
};
|
||||
|
||||
} // namespace LAMMPS_NS
|
||||
|
||||
#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: 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.
|
||||
|
||||
*/
|
||||
Reference in New Issue
Block a user