Skip to content

Commit

Permalink
Merge pull request lammps#4129 from akohlmey/pedone-potentials
Browse files Browse the repository at this point in the history
Add pair style for analytic form of Pedone potential non-Coulomb
  • Loading branch information
akohlmey authored Apr 10, 2024
2 parents c3be4fa + b36f49c commit 9ca47a3
Show file tree
Hide file tree
Showing 18 changed files with 1,535 additions and 26 deletions.
1 change: 1 addition & 0 deletions doc/src/Commands_pair.rst
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@ OPT.
* :doc:`oxrna2/coaxstk <pair_oxrna2>`
* :doc:`pace (k) <pair_pace>`
* :doc:`pace/extrapolation (k) <pair_pace>`
* :doc:`pedone (o) <pair_pedone>`
* :doc:`pod <pair_pod>`
* :doc:`peri/eps <pair_peri>`
* :doc:`peri/lps (o) <pair_peri>`
Expand Down
137 changes: 137 additions & 0 deletions doc/src/pair_pedone.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
.. index:: pair_style pedone
.. index:: pair_style pedone/omp

pair_style pedone command
=========================

Accelerator Variants: *pedone/omp*


Syntax
""""""

.. code-block:: LAMMPS
pair_style style args
* style = pedone*
* args = list of arguments for a particular style

.. parsed-literal::
*pedone* args = cutoff
cutoff = global cutoff for Pedone interactions (distance units)
Examples
""""""""

.. code-block:: LAMMPS
pair_style hybrid/overlay pedone 15.0 coul/long 15.0
kspace_style pppm 1.0e-5

pair_coeff * * coul/long
pair_coeff 1 2 pedone 0.030211 2.241334 2.923245 5.0
pair_coeff 2 2 pedone 0.042395 1.379316 3.618701 22.0

Used in input scripts:

.. parsed-literal::
examples/PACKAGES/pedone/in.pedone.relax
examples/PACKAGES/pedone/in.pedone.melt
Description
"""""""""""

.. versionadded:: TBD

Pair style *pedone* computes the **non-Coulomb** interactions of the Pedone
(or PMMCS) potential :ref:`(Pedone) <Pedone>` which combines Coulomb
interactions, Morse potential, and repulsive :math:`r^{-12}`
Lennard-Jones terms (see below). The *pedone* pair style is meant
to be used in addition to a :doc:`Coulomb pair style <pair_coul>` via
pair style :doc:`hybrid/overlay <pair_hybrid>` (see example above).
Using *coul/long* or *could/dsf* (for solids) is recommended.

The full Pedone potential function from :ref:`(Pedone) <Pedone>` for each
pair of atoms is:

.. math::
E = \frac{C q_i q_j}{\epsilon r}
+ D_0 \left[ e^{- 2 \alpha (r - r_0)} - 2 e^{- \alpha (r - r_0)} \right]
+ \frac{B_0}{r^{12}} \qquad r < r_c
:math:`r_c` is the cutoff and :math:`C` is a conversion factor that is
specific to the choice of :doc:`units <units>` so that the entire
Coulomb term is in energy units with :math:`q_i` and :math:`q_j` as the
assigned charges in multiples of the elementary charge.

The following coefficients must be defined for the selected pairs of
atom types via the :doc:`pair_coeff <pair_coeff>` command as in the
example above:

* :math:`D_0` (energy units)
* :math:`\alpha` (1/distance units)
* :math:`r_0` (distance units)
* :math:`C_0` (energy units)
* cutoff (distance units)

The last coefficient is optional. If not specified, the global *pedone*
cutoff is used.

----------

.. include:: accel_styles.rst

----------

Mixing, shift, table, tail correction, restart, rRESPA info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

This pair style does not support mixing.

This pair style support the :doc:`pair_modify <pair_modify>` shift
option for the energy of the pair interaction.

This pair style does not support the :doc:`pair_modify <pair_modify>`
tail option for adding long-range tail corrections to energy and
pressure.

This pair style writes its information to :doc:`binary restart files <restart>`,
so pair_style and pair_coeff commands does not need to be specified in an input
script that reads a restart file.

This pair style can only be used via the *pair* keyword of the
:doc:`run_style respa <run_style>` command. It does not support the
*inner*, *middle*, or *outer* keywords.

----------

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

The *pedone* pair style is only enabled if LAMMPS was built with the
EXTRA-PAIR package. See the :doc:`Build package <Build_package>` page
for more info.

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

:doc:`pair_coeff <pair_coeff>`, :doc:`pair_style <pair_style>`,
:doc:`pair style coul/long and coul/dsf <pair_coul>`,
:doc:`pair style morse <pair_morse>`

Default
"""""""

none

-------------

.. _Pedone:

**(Pedone)** A. Pedone, G. Malavasi, M. C. Menziani, A. N. Cormack, and U. Segre, J. Phys. Chem. B, 110, 11780 (2006)
49 changes: 25 additions & 24 deletions doc/src/pair_style.rst
Original file line number Diff line number Diff line change
Expand Up @@ -275,30 +275,30 @@ accelerated styles exist.
* :doc:`lj/smooth/linear <pair_lj_smooth_linear>` - linear smoothed LJ potential
* :doc:`lj/switch3/coulgauss/long <pair_lj_switch3_coulgauss_long>` - smoothed LJ vdW potential with Gaussian electrostatics
* :doc:`lj96/cut <pair_lj96>` - Lennard-Jones 9/6 potential
* :doc:`local/density <pair_local_density>` - generalized basic local density potential
* :doc:`lubricate <pair_lubricate>` - hydrodynamic lubrication forces
* :doc:`lubricate/poly <pair_lubricate>` - hydrodynamic lubrication forces with polydispersity
* :doc:`lubricateU <pair_lubricateU>` - hydrodynamic lubrication forces for Fast Lubrication Dynamics
* :doc:`lubricateU/poly <pair_lubricateU>` - hydrodynamic lubrication forces for Fast Lubrication with polydispersity
* :doc:`local/density <pair_local_density>` - Generalized basic local density potential
* :doc:`lubricate <pair_lubricate>` - Hydrodynamic lubrication forces
* :doc:`lubricate/poly <pair_lubricate>` - Hydrodynamic lubrication forces with polydispersity
* :doc:`lubricateU <pair_lubricateU>` - Hydrodynamic lubrication forces for Fast Lubrication Dynamics
* :doc:`lubricateU/poly <pair_lubricateU>` - Hydrodynamic lubrication forces for Fast Lubrication with polydispersity
* :doc:`mdpd <pair_mesodpd>` - mDPD particle interactions
* :doc:`mdpd/rhosum <pair_mesodpd>` - mDPD particle interactions for mass density
* :doc:`meam <pair_meam>` - modified embedded atom method (MEAM)
* :doc:`meam/ms <pair_meam>` - multi-state modified embedded atom method (MS-MEAM)
* :doc:`meam/spline <pair_meam_spline>` - splined version of MEAM
* :doc:`meam/sw/spline <pair_meam_sw_spline>` - splined version of MEAM with a Stillinger-Weber term
* :doc:`mesocnt <pair_mesocnt>` - mesoscopic vdW potential for (carbon) nanotubes
* :doc:`mesocnt/viscous <pair_mesocnt>` - mesoscopic vdW potential for (carbon) nanotubes with friction
* :doc:`mgpt <pair_mgpt>` - simplified model generalized pseudopotential theory (MGPT) potential
* :doc:`meam <pair_meam>` - Modified embedded atom method (MEAM)
* :doc:`meam/ms <pair_meam>` - Multi-state modified embedded atom method (MS-MEAM)
* :doc:`meam/spline <pair_meam_spline>` - Splined version of MEAM
* :doc:`meam/sw/spline <pair_meam_sw_spline>` - Splined version of MEAM with a Stillinger-Weber term
* :doc:`mesocnt <pair_mesocnt>` - Mesoscopic vdW potential for (carbon) nanotubes
* :doc:`mesocnt/viscous <pair_mesocnt>` - Mesoscopic vdW potential for (carbon) nanotubes with friction
* :doc:`mgpt <pair_mgpt>` - Simplified model generalized pseudopotential theory (MGPT) potential
* :doc:`mie/cut <pair_mie>` - Mie potential
* :doc:`mm3/switch3/coulgauss/long <pair_lj_switch3_coulgauss_long>` - smoothed MM3 vdW potential with Gaussian electrostatics
* :doc:`mm3/switch3/coulgauss/long <pair_lj_switch3_coulgauss_long>` - Smoothed MM3 vdW potential with Gaussian electrostatics
* :doc:`momb <pair_momb>` - Many-Body Metal-Organic (MOMB) force field
* :doc:`morse <pair_morse>` - Morse potential
* :doc:`morse/smooth/linear <pair_morse>` - linear smoothed Morse potential
* :doc:`morse/smooth/linear <pair_morse>` - Linear smoothed Morse potential
* :doc:`morse/soft <pair_morse>` - Morse potential with a soft core
* :doc:`multi/lucy <pair_multi_lucy>` - DPD potential with density-dependent force
* :doc:`multi/lucy/rx <pair_multi_lucy_rx>` - reactive DPD potential with density-dependent force
* :doc:`nb3b/harmonic <pair_nb3b>` - non-bonded 3-body harmonic potential
* :doc:`nb3b/screened <pair_nb3b>` - non-bonded 3-body screened harmonic potential
* :doc:`nb3b/harmonic <pair_nb3b>` - Non-bonded 3-body harmonic potential
* :doc:`nb3b/screened <pair_nb3b>` - Non-bonded 3-body screened harmonic potential
* :doc:`nm/cut <pair_nm>` - N-M potential
* :doc:`nm/cut/coul/cut <pair_nm>` - N-M potential with cutoff Coulomb
* :doc:`nm/cut/coul/long <pair_nm>` - N-M potential with long-range Coulomb
Expand All @@ -322,21 +322,22 @@ accelerated styles exist.
* :doc:`oxrna2/xstk <pair_oxrna2>` -
* :doc:`pace <pair_pace>` - Atomic Cluster Expansion (ACE) machine-learning potential
* :doc:`pace/extrapolation <pair_pace>` - Atomic Cluster Expansion (ACE) machine-learning potential with extrapolation grades
* :doc:`pedone <pair_pedone>` - Pedone (PMMCS) potential (non-Coulomb part)
* :doc:`pod <pair_pod>` - Proper orthogonal decomposition (POD) machine-learning potential
* :doc:`peri/eps <pair_peri>` - peridynamic EPS potential
* :doc:`peri/lps <pair_peri>` - peridynamic LPS potential
* :doc:`peri/pmb <pair_peri>` - peridynamic PMB potential
* :doc:`peri/ves <pair_peri>` - peridynamic VES potential
* :doc:`polymorphic <pair_polymorphic>` - polymorphic 3-body potential
* :doc:`peri/eps <pair_peri>` - Peridynamic EPS potential
* :doc:`peri/lps <pair_peri>` - Peridynamic LPS potential
* :doc:`peri/pmb <pair_peri>` - Peridynamic PMB potential
* :doc:`peri/ves <pair_peri>` - Peridynamic VES potential
* :doc:`polymorphic <pair_polymorphic>` - Polymorphic 3-body potential
* :doc:`python <pair_python>` -
* :doc:`quip <pair_quip>` -
* :doc:`rann <pair_rann>` -
* :doc:`reaxff <pair_reaxff>` - ReaxFF potential
* :doc:`rebo <pair_airebo>` - second generation REBO potential of Brenner
* :doc:`rebo <pair_airebo>` - Second generation REBO potential of Brenner
* :doc:`rebomos <pair_rebomos>` - REBOMoS potential for MoS2
* :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:`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>` -
Expand Down
2 changes: 1 addition & 1 deletion doc/src/variable.rst
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ point number with the value. The atom-IDs may be listed in any order.
at 0.0.

Below is a small example for the atomfile variable file format:

.. parsed-literal::
# first set
Expand Down
4 changes: 4 additions & 0 deletions doc/utils/sphinx-config/false_positives.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2040,6 +2040,7 @@ Makefiles
makelist
makepkg
Makse
Malavasi
malloc
Malolepsza
Manby
Expand Down Expand Up @@ -2149,6 +2150,7 @@ membered
memcheck
Mendelev
Menon
Menziani
mer
Meremianin
Mersenne
Expand Down Expand Up @@ -2772,6 +2774,8 @@ Peachey
peachpuff
Pearlman
Pedersen
pedone
Pedone
peID
PEigenDense
Peng
Expand Down
38 changes: 38 additions & 0 deletions examples/PACKAGES/pedone/in.pedone.melt
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Ca-O melt with Pedone potential

units metal
atom_style charge

lattice fcc 4.8105 # experimental lattice parameter for fcc-lattice Ca cations

region box block 0 4 0 4 0 4
create_box 2 box
create_atoms 1 box

lattice fcc 4.8105 origin 0.5 0.5 0.5 # O anion lattice shifted by half a unit cell
create_atoms 2 box

mass 1 40.078
mass 2 15.999

set type 1 charge 1.2
set type 2 charge -1.2

timestep 0.002
neigh_modify delay 5 every 1 check yes

pair_style hybrid/overlay pedone 15.0 coul/long 15.0
kspace_style pppm 1.0e-6

pair_coeff * * coul/long
pair_coeff 1 2 pedone 0.030211 2.241334 2.923245 5.0
pair_coeff 2 2 pedone 0.042395 1.379316 3.618701 22.0

velocity all create 6000.0 98347

fix 1 all nvt temp 3000.0 3000.0 0.1

# dump 1 all atom 500 Ca-O-melt.lammpstrj

thermo 100
run 1000
38 changes: 38 additions & 0 deletions examples/PACKAGES/pedone/in.pedone.relax
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Ca-O crystal with Pedone potential

units metal
atom_style charge

lattice fcc 4.8105 # experimental lattice parameter for fcc-lattice Ca cations

region box block 0 4 0 4 0 4
create_box 2 box
create_atoms 1 box

lattice fcc 4.8105 origin 0.5 0.5 0.5 # O anion lattice shifted by half a unit cell
create_atoms 2 box

mass 1 40.078
mass 2 15.999

displace_atoms all random 0.01 0.01 0.01 9084544
set type 1 charge 1.2
set type 2 charge -1.2

timestep 0.002
neigh_modify delay 5 every 1 check yes

pair_style hybrid/overlay pedone 15.0 coul/long 15.0
kspace_style pppm 1.0e-6

pair_coeff * * coul/long
pair_coeff 1 2 pedone 0.030211 2.241334 2.923245 5.0
pair_coeff 2 2 pedone 0.042395 1.379316 3.618701 22.0

variable len equal lx*0.25
thermo_style custom step v_len lx pe press
thermo 100
fix 1 all box/relax iso 0.0
minimize 0.0 0.0 1000 10000

print "Expected lattice parameter: 4.7748, computed: $(v_len:%6.4f)"
Loading

0 comments on commit 9ca47a3

Please sign in to comment.