Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Second Moment Aproximation to the Tight Binding addes as pair style #3031

Merged
merged 23 commits into from Apr 29, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
4f4b18a
addig smatb pairs
Iximiel Nov 11, 2021
1c0e657
changed some comments
Iximiel Nov 11, 2021
bdc4f7f
styled the headers
Iximiel Nov 11, 2021
80efc88
fixed a grammar mistake
Iximiel Nov 11, 2021
c488e91
adding the pair_smatb to lammps documentation
Iximiel Nov 11, 2021
cfe08ba
working on the manual
Iximiel Nov 12, 2021
bfc3402
working on the documentation
Iximiel Nov 12, 2021
fe5f00b
Updating the documentation, now 'make html' do not give errors
Iximiel Nov 12, 2021
0eb227e
working on the documentation
Iximiel Nov 12, 2021
7a914c8
again correction in the documentation
Iximiel Nov 12, 2021
b06a70c
corrected some errors in the manual
Iximiel Nov 18, 2021
a5df494
added examples
Iximiel Nov 18, 2021
a759987
added examples
Iximiel Nov 18, 2021
4646671
added examples
Iximiel Nov 18, 2021
8faa750
Merge branch 'lammps:develop' into develop
Iximiel Nov 18, 2021
c918b6f
removed example dump file
Iximiel Nov 18, 2021
47f3f9d
Merge branch 'develop' of github.com:Iximiel/lammps into develop
Iximiel Nov 18, 2021
75d42a8
Merge branch 'develop' into Iximiel/develop
akohlmey Apr 27, 2022
3b1165c
update files to be more compatible with LAMMPS' conventions and for c…
akohlmey Apr 27, 2022
3cfae26
update docs and make part of SMTBQ package
akohlmey Apr 27, 2022
585b14f
fix memory leak
akohlmey Apr 27, 2022
2d45e33
move sources and examples for smatb styles to SMTBQ package folders
akohlmey Apr 27, 2022
b76594e
enforce only newton pair on with smatb pair styles. add unit tests
akohlmey Apr 27, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions doc/src/Commands_pair.rst
Expand Up @@ -245,6 +245,8 @@ OPT.
* :doc:`resquared (go) <pair_resquared>`
* :doc:`saip/metal <pair_saip_metal>`
* :doc:`sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>`
* :doc:`smatb <pair_smatb>`
* :doc:`smatb/single <pair_smatb>`
* :doc:`smd/hertz <pair_smd_hertz>`
* :doc:`smd/tlsph <pair_smd_tlsph>`
* :doc:`smd/tri_surface <pair_smd_triangulated_surface>`
Expand Down
12 changes: 7 additions & 5 deletions doc/src/Packages_details.rst
Expand Up @@ -2578,18 +2578,20 @@ SMTBQ package

**Contents:**

A pair style which implements a Second Moment Tight Binding model with
QEq charge equilibration (SMTBQ) potential for the description of
ionocovalent bonds in oxides.
Pair styles which implement Second Moment Tight Binding models.
One with QEq charge equilibration (SMTBQ) for the description of
ionocovalent bonds in oxides, and two more as plain SMATB models.

**Authors:** Nicolas Salles, Emile Maras, Olivier Politano, and Robert
Tetot (LAAS-CNRS, France).
**Authors:** SMTBQ: Nicolas Salles, Emile Maras, Olivier Politano, and Robert
Tetot (LAAS-CNRS, France);
SMATB: Daniele Rapetti (Politecnico di Torino)

**Supporting info:**

* src/SMTBQ: filenames -> commands
* src/SMTBQ/README
* :doc:`pair_style smtbq <pair_smtbq>`
* :doc:`pair_style smatb <pair_smatb>`, :doc:`pair_style smatb/single <pair_smatb>`
* examples/PACKAGES/smtbq

----------
Expand Down
4 changes: 2 additions & 2 deletions doc/src/Packages_list.rst
Expand Up @@ -429,8 +429,8 @@ whether an extra library is needed to build and use the package:
- n/a
- no
* - :ref:`SMTBQ <PKG-SMTBQ>`
- second moment tight binding potential
- :doc:`pair_style smtbq <pair_smtbq>`
- second moment tight binding potentials
- :doc:`pair_style smtbq <pair_smtbq>` :doc:`pair_style smatb <pair_smatb>`
- PACKAGES/smtbq
- no
* - :ref:`SPH <PKG-SPH>`
Expand Down
131 changes: 131 additions & 0 deletions doc/src/pair_smatb.rst
@@ -0,0 +1,131 @@
.. index:: pair_style smatb
.. index:: pair_style smatb/single

pair_style smatb command
=========================

pair_style smatb/single command
===============================

Syntax
""""""

.. code-block:: LAMMPS

pair_style style args

* style = *smatb*
* args = none

.. parsed-literal::

*smatb*

Examples
""""""""

.. code-block:: LAMMPS

pair_style smatb
pair_coeff 1 1 2.88 10.35 4.178 0.210 1.818 4.07293506 4.9883063257983666


Description
"""""""""""

The *smatb* styles compute the Second Moment Approximation to the Tight Binding
:ref:`(Cyrot) <Cyrot>`, :ref:`(Gupta) <Gupta>`, :ref:`(Rosato) <Rosato>`,
given by

.. math::
E_{i} = \sum_{j,R_{ij}\leq R_{c}} \alpha(R_{ij}) - \sqrt{\sum_{j,R_{ij}\leq R_{c}}\Xi^2(R_{ij})}

:math:`R_{ij}` is the distance between the atom :math:`i` and :math:`j`.
And the two functions :math:`\alpha\left(r\right)` and :math:`\Xi\left(r\right)` are:

.. math::
\alpha\left(r\right)=\left\lbrace\begin{array}{ll}
A e^{-p \left(\frac{r}{R_{0}}-1\right)} & r < R_{sc}\\
a_3\left(r-R_{c}\right)^3+a_4\left(r-R_{c}\right)^4
+a_5\left(r-R_{c}\right)^5& R_{sc} < r < R_{c}
\end{array}
\right.

.. math::
\Xi\left(r\right)=\left\lbrace\begin{array}{ll}
\xi e^{-q \left(\frac{r}{R_{0}}-1\right)} & r < R_{sc}\\
x_3\left(r-R_{c}\right)^3+x_4\left(r-R_{c}\right)^4
+x_5\left(r-R_{c}\right)^5& R_{sc} < r < R_{c}
\end{array}
\right.


The polynomial coefficients :math:`a_3`, :math:`a_4`, :math:`a_5`,
:math:`x_3`, :math:`x_4`, :math:`x_5` are computed by LAMMPS: the two
exponential terms and their first and second derivatives are smoothly
reduced to zero, from the inner cutoff :math:`R_{sc}` to the outer
cutoff :math:`R_{c}`.

Coefficients
""""""""""""

The following coefficients must be defined for each pair of atoms types via the
:doc:`pair_coeff <pair_coeff>` command as in the examples above, or in the data
file or restart files read by the :doc:`read_data <read_data>` or
:doc:`read_restart <read_restart>` commands, or by mixing as described below:

* :math:`R_{0}` (distance units)
* :math:`p` (dimensionless)
* :math:`q` (dimensionless)
* :math:`A` (energy units)
* :math:`\xi` (energy units)
* :math:`R_{cs}` (distance units)
* :math:`R_{c}` (distance units)


Note that: :math:`R_{0}` is the nearest neighbor distance, usually coincides
with the diameter of the atoms

See the :doc:`run_style <run_style>` command for details.

----------

Mixing info
"""""""""""

For atom type pairs I,J and I != J the coefficients are not automatically mixed.

----------

Restrictions
""""""""""""

This pair style is part of the SMTBQ package and is only enabled
if LAMMPS is built with that package. See the :doc:`Build package <Build_package>` page for more info.

These pair potentials require the :doc:`newton <newton>` setting to be "on" for pair interactions.

Related commands
""""""""""""""""

* :doc:`pair_coeff <pair_coeff>`

Default
"""""""

none

----------

.. _Cyrot:

**(Cyrot)** Cyrot-Lackmann and Ducastelle, Phys Rev. B, 4, 2406-2412 (1971).

.. _Gupta:

**(Gupta)** Gupta ,Phys Rev. B, 23, 6265-6270 (1981).

.. _Rosato:

**(Rosato)** Rosato and Guillope and Legrand, Philosophical Magazine A, 59.2, 321-336 (1989).

2 changes: 2 additions & 0 deletions doc/src/pair_style.rst
Expand Up @@ -323,6 +323,8 @@ accelerated styles exist.
* :doc:`resquared <pair_resquared>` - Everaers RE-Squared ellipsoidal potential
* :doc:`saip/metal <pair_saip_metal>` - interlayer potential for hetero-junctions formed with hexagonal 2D materials and metal surfaces
* :doc:`sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>` - smoothed dissipative particle dynamics for water at isothermal conditions
* :doc:`smatb <pair_smatb>` - Second Moment Approximation to the Tight Binding
* :doc:`smatb/single <pair_smatb>` - Second Moment Approximation to the Tight Binding for single-element systems
* :doc:`smd/hertz <pair_smd_hertz>` -
* :doc:`smd/tlsph <pair_smd_tlsph>` -
* :doc:`smd/tri_surface <pair_smd_triangulated_surface>` -
Expand Down
9 changes: 9 additions & 0 deletions doc/utils/sphinx-config/false_positives.txt
Expand Up @@ -693,6 +693,7 @@ DFT
dftb
dh
dhex
di
dia
diag
diagonalization
Expand Down Expand Up @@ -784,6 +785,7 @@ dtheta
dtshrink
du
dU
Ducastelle
Dudarev
Duin
Dullweber
Expand Down Expand Up @@ -1246,6 +1248,7 @@ Gubbins
Guenole
Guericke
gui
Guillope
Gumbsch
Gunsteren
Gunzenmuller
Expand Down Expand Up @@ -1722,6 +1725,7 @@ lebedeva
Lebedeva
Lebold
Lechman
Legrand
Lehoucq
Leimkuhler
Leite
Expand Down Expand Up @@ -2636,6 +2640,7 @@ Polarizable
polarizables
polarizer
Politano
Politecnico
polyA
polybond
polydisperse
Expand Down Expand Up @@ -2794,6 +2799,7 @@ Randisi
randomizations
rann
RANN
Rapetti
Raphson
Rappe
Ravelo
Expand Down Expand Up @@ -2939,6 +2945,7 @@ Rohart
Ronchetti
Ronevich
Rosati
Rosato
Rosenberger
Rossky
rosybrown
Expand Down Expand Up @@ -3115,6 +3122,7 @@ smallbig
smallint
Smallint
smallsmall
smatb
smd
SMD
smi
Expand Down Expand Up @@ -3383,6 +3391,7 @@ toolchain
topologies
Toporov
Torder
Torino
torsions
Tosi
Toukmaji
Expand Down
48 changes: 48 additions & 0 deletions examples/PACKAGES/smtbq/AgCuPancake.data
@@ -0,0 +1,48 @@
# AgCu Pancake : energy should be around -90.16 eV
34 atoms
2 atom types
0 30 xlo xhi
0 30 ylo yhi
0 30 zlo zhi

Masses

1 108 # Ag
2 64 # Cu

Atoms # atomic

1 1 11.8677744 17.4748811 16.8202155
2 1 14.4591543 12.6388264 17.3769114
3 1 19.2905996 14.8698601 15.9074284
4 1 13.6418392 11.2583912 15.0376329
5 1 16.5295136 18.8875825 16.3408808
6 1 11.4394217 12.6680604 13.934792
7 1 17.1772792 13.4579369 17.0971284
8 1 11.7477198 12.5836832 16.6835448
9 1 12.3254647 15.127665 12.9151285
10 1 11.5595413 17.5592601 14.0713777
11 1 18.9820568 14.9536515 13.1587506
12 1 14.5653354 15.1189885 11.12255
13 1 14.5797485 17.250847 17.5049696
14 1 13.9305528 12.7833817 12.6633235
15 1 12.8538576 14.9830633 17.6286053
16 1 16.7229337 16.4525301 12.4627193
17 1 14.0512024 17.3954338 12.7914031
18 1 18.2824041 17.2316517 14.6999911
19 1 16.2210303 18.9719703 13.5921161
20 1 17.2517138 16.3080477 17.1761679
21 1 16.0269821 11.057668 13.3712031
22 1 16.3354169 10.9735982 16.1199203
23 1 13.9149278 18.8223918 15.2392839
24 1 18.1136886 12.5568867 14.5759053
25 1 16.6484505 13.6019749 12.3834541
26 1 11.0468778 15.1307677 15.4471491
27 1 15.4347551 14.8811145 18.8773723
28 2 15.1502129 14.9589199 16.3394186
29 2 13.2837251 13.9076768 15.1588849
30 2 13.4425035 16.3005712 15.2145264
31 2 15.7534979 16.8960911 14.9738557
32 2 15.4967806 13.024304 14.8837423
33 2 14.8498337 15.0410649 13.6605697
34 2 17.0232044 14.8712576 14.7690776
38 changes: 38 additions & 0 deletions examples/PACKAGES/smtbq/in.smatbAgCuPancake
@@ -0,0 +1,38 @@
# -*- lammps -*-

units metal
atom_style atomic
boundary p p p

read_data AgCuPancake.data

pair_style smatb
# NN p q a qsi cutOff_Start cutOff_End
pair_coeff 1 1 2.89 10.85 3.18 0.1031 1.1895 4.08707719 5.0056268338740553
pair_coeff 1 2 2.725 10.70 2.805 0.0977 1.2275 4.08707719 4.4340500673763259
pair_coeff 2 2 2.56 10.55 2.43 0.0894 1.2799 3.62038672 4.4340500673763259


neighbor 8.0 bin
neigh_modify every 1 delay 0 check yes

thermo 1
minimize 1.0e-8 1.0e-10 10000 100000

velocity all create 600.0 761341 rot yes mom yes

fix 1 all nve
thermo 10
timestep 0.005

#dump 1 all atom 50 dump.smatb

#dump 2 all image 10 image.*.jpg element element &
# axes yes 0.8 0.02 view 60 -30
#dump_modify 2 pad 3 element Ag Cu

#dump 3 all movie 10 movie.mpg element element &
# axes yes 0.8 0.02 view 60 -30
#dump_modify 3 pad 3 element Ag Cu

run 10000
27 changes: 27 additions & 0 deletions examples/PACKAGES/smtbq/in.smatbBulkFCC
@@ -0,0 +1,27 @@
# -*- lammps -*-

units metal
atom_style atomic
boundary p p p

lattice fcc 4.0782

region myreg block 0 8 0 8 0 8

create_box 1 myreg

create_atoms 1 box

mass 1 196.96655 # Au

pair_style smatb/single
pair_coeff 1 1 2.88 10.35 4.178 0.210 1.818 4.07293506 4.9883063257983666

neighbor 8.0 bin
neigh_modify every 1 delay 0 check yes

thermo 1
fix boxmin all box/relax iso 1.0
minimize 1.0e-8 1.0e-10 10000 100000
unfix boxmin
minimize 1.0e-8 1.0e-10 10000 100000