Merge branch 'develop' into mala

This commit is contained in:
Lenz Fiedler
2025-01-15 13:19:15 +01:00
committed by GitHub
30 changed files with 57965 additions and 3 deletions

View File

@ -58,6 +58,7 @@ OPT.
* :doc:`dt/reset (k) <fix_dt_reset>`
* :doc:`edpd/source <fix_dpd_source>`
* :doc:`efield (k) <fix_efield>`
* :doc:`efield/lepton <fix_efield_lepton>`
* :doc:`efield/tip4p <fix_efield>`
* :doc:`ehex <fix_ehex>`
* :doc:`electrode/conp (i) <fix_electrode>`

View File

@ -80,6 +80,7 @@ OPT.
* :doc:`coul/tt <pair_coul_tt>`
* :doc:`coul/wolf (ko) <pair_coul>`
* :doc:`coul/wolf/cs <pair_cs>`
* :doc:`dispersion/d3 <pair_dispersion_d3>`
* :doc:`dpd (giko) <pair_dpd>`
* :doc:`dpd/coul/slater/long (g) <pair_dpd_coul_slater_long>`
* :doc:`dpd/ext (ko) <pair_dpd_ext>`

View File

@ -994,6 +994,7 @@ Additional pair styles that are less commonly used.
* ``src/EXTRA-PAIR``: filenames -> commands
* :doc:`pair_style <pair_style>`
* ``examples/PACKAGES/dispersion``
----------

View File

@ -237,6 +237,7 @@ accelerated styles exist.
* :doc:`dt/reset <fix_dt_reset>` - reset the timestep based on velocity, forces
* :doc:`edpd/source <fix_dpd_source>` - add heat source to eDPD simulations
* :doc:`efield <fix_efield>` - impose electric field on system
* :doc:`efield/lepton <fix_efield_lepton>` - impose electric field on system using a Lepton expression for the potential
* :doc:`efield/tip4p <fix_efield>` - impose electric field on system with TIP4P molecules
* :doc:`ehex <fix_ehex>` - enhanced heat exchange algorithm
* :doc:`electrode/conp <fix_electrode>` - impose electric potential

View File

@ -45,8 +45,9 @@ Description
Add a force :math:`\vec{F} = q\vec{E}` to each charged atom in the group due to an
external electric field being applied to the system. If the system
contains point-dipoles, also add a torque on the dipoles due to the
external electric field.
contains point-dipoles, also add a torque :math:`\vec{T} = \vec{p} \times \vec{E}` on the dipoles due to the
external electric field. This fix does not compute the dipole force :math:`\vec{F} = (\vec{p} \cdot \nabla) \vec{E}`,
and the :doc:`fix efield/lepton <fix_efield_lepton>` command should be used instead.
.. versionadded:: 28Mar2023
@ -68,6 +69,7 @@ For point-dipoles, equal-style variables can be used, but atom-style
variables are not currently supported, since they imply a spatial
gradient in the electric field which means additional terms with
gradients of the field are required for the force and torque on dipoles.
The :doc:`fix efield/lepton <fix_efield_lepton>` command should be used instead.
Equal-style variables can specify formulas with various mathematical
functions, and include :doc:`thermo_style <thermo_style>` command
@ -229,7 +231,7 @@ Fix style *efield/tip4p* can only be used with tip4p pair styles.
Related commands
""""""""""""""""
:doc:`fix addforce <fix_addforce>`
:doc:`fix addforce <fix_addforce>`, :doc:`fix efield/lepton <fix_efield_lepton>`
Default
"""""""

View File

@ -0,0 +1,143 @@
.. index:: fix efield/lepton
fix efield/lepton command
=========================
Syntax
""""""
.. code-block:: LAMMPS
fix ID group-ID efield/lepton V ...
* ID, group-ID are documented in the :doc:`fix <fix>` command
* style = *efield/lepton*
* V = electric potential (electric field * distance units)
* V must be a Lepton expression (see below)
* zero or more keyword/value pairs may be appended to args
* keyword = *region* or *step*
.. parsed-literal::
*region* value = region-ID
region-ID = ID of region atoms must be in to have effect
*step* value = h
h = step size for numerical differentiation (distance units)
Examples
""""""""
.. code-block:: LAMMPS
fix ex all efield/lepton "-E*x; E=1"
fix dexx all efield/lepton "-0.5*x^2" step 1
fix yukawa all efield/lepton "A*exp(-B*r)/r; r=abs(sqrt(x^2+y^2+z^2)); A=1; B=1" step 1e-6
fix infp all efield/lepton "-abs(x)" step 1
variable th equal 2*PI*ramp(0,1)
fix erot all efield/lepton "-(x*cos(v_th)+y*sin(v_th))"
Description
"""""""""""
.. versionadded:: TBD
Add an electric potential :math:`V` that applies to a group of charged atoms a force :math:`\vec{F} = q \vec{E}`,
and to dipoles a force :math:`\vec{F} = (\vec{p} \cdot \nabla) \vec{E}` and torque :math:`\vec{T} = \vec{p} \times \vec{E}`,
where :math:`\vec{E} = - \nabla V`. The fix also evaluates the electrostatic energy (:math:`U_{q} = q V` and :math:`U_{p} = - \vec{p} \cdot \vec{E}`)
due to this potential when the :doc:`fix_modify energy yes <fix_modify>` command is specified (see below).
.. note::
This command should be used instead of :doc:`fix efield <fix_efield>` if you want to impose a non-uniform electric field on a system with dipoles
since the latter does not include the dipole force term. If you only have charges or if the electric field gradient is negligible,
:doc:`fix efield <fix_efield>` should be used since it is faster.
The `Lepton library <https://simtk.org/projects/lepton>`_, that the *efield/lepton* fix style interfaces with, evaluates
the expression string at run time to compute the energy, forces, and torques. It creates an analytical representation
of :math:`V` and :math:`\vec{E}`, while the gradient force is computed using a central difference scheme
.. math::
\vec{F} = \frac{|\vec{p}|}{2h} \left[ \vec{E}(\vec{x} + h \hat{p}) - \vec{E}(\vec{x} - h \hat{p}) \right] .
The Lepton expression must be either enclosed in quotes or must not contain any whitespace so that LAMMPS
recognizes it as a single keyword. More on valid Lepton expressions below. The final Lepton expression must
be a function of only :math:`x, y, z`, which refer to the current *unwrapped* coordinates of the atoms to ensure continuity.
Special care must be taken when using this fix with periodic boundary conditions or box-changing commands.
----------
.. include:: lepton_expression.rst
----------
If the *region* keyword is used, the atom must also be in the specified
geometric :doc:`region <region>` in order to be affected by the potential.
The *step* keyword is required when :doc:`atom_style dipole <atom_style>` is used and the electric field is non-uniform.
----------
Restart, fix_modify, output, run start/stop, minimize info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
No information about this fix is written to :doc:`binary restart files
<restart>`.
The :doc:`fix_modify <fix_modify>` *energy* option is supported by this
fix to add the potential energy defined above to the global potential energy
of the system as part of :doc:`thermodynamic output <thermo_style>`.
The default setting for this fix is :doc:`fix_modify energy no <fix_modify>`.
The :doc:`fix_modify <fix_modify>` *virial* option is supported by this
fix to add the contribution due to the added ***forces*** on charges and dipoles
to both the global pressure and per-atom stress of the system via the
:doc:`compute pressure <compute_pressure>` and :doc:`compute stress/atom
<compute_stress_atom>` commands. The former can be accessed by
:doc:`thermodynamic output <thermo_style>`. The default setting for
this fix is :doc:`fix_modify virial no <fix_modify>`.
The :doc:`fix_modify <fix_modify>` *respa* option is supported by this
fix. This allows to set at which level of the :doc:`r-RESPA <run_style>`
integrator the fix adding its forces. Default is the outermost level.
This fix computes a global scalar and a global 3-vector of forces,
which can be accessed by various :doc:`output commands <Howto_output>`.
The scalar is the potential energy discussed above.
The vector is the total force added to the group of atoms.
The scalar and vector values calculated by this fix are "extensive".
This fix cannot be used with the *start/stop* keywords of
the :doc:`run <run>` command.
The forces due to this fix are imposed during an energy minimization,
invoked by the :doc:`minimize <minimize>` command. You should not
specify force components with a variable that has time-dependence for
use with a minimizer, since the minimizer increments the timestep as
the iteration count during the minimization.
.. note::
If you want the electric potential energy to be included in the
total potential energy of the system (the quantity being minimized),
you MUST enable the :doc:`fix_modify <fix_modify>` *energy* option for this fix.
----------
Restrictions
""""""""""""
Fix style *efield/lepton* is part of the LEPTON package. It is only enabled if LAMMPS was built with that package.
See the :doc:`Build package <Build_package>` page for more info.
Related commands
""""""""""""""""
:doc:`fix efield <fix_efield>`
Default
"""""""
none

View File

@ -0,0 +1,158 @@
.. index:: pair_style dispersion/d3
pair_style dispersion/d3 command
================================
Syntax
""""""
.. code-block:: LAMMPS
pair_style dispersion/d3 damping functional cutoff cn_cutoff
* damping = damping function: *zero*, *zerom*, *bj*, or *bjm*
* functional = XC functional form: *pbe*, *pbe0*, ... (see list below)
* cutoff = global cutoff (distance units)
* cn_cutoff = coordination number cutoff (distance units)
Examples
""""""""
.. code-block:: LAMMPS
pair_style dispersion/d3 zero pbe 30.0 20.0
pair_coeff * * C
Description
"""""""""""
.. versionadded:: TBD
Style *dispersion/d3* computes the dispersion energy-correction used in
the DFT-D3 method of Grimme :ref:`(Grimme1) <Grimme1>`. It would
typically be used with a machine learning (ML) potential that was
trained with results from plain DFT calculations without the dispersion
correction through pair_style hybrid/overlay. ML potentials are often
combined *a posteriori* with dispersion energy-correction schemes (see
*e.g.* :ref:`(Qamar) <Qamar>` and :ref:`(Batatia) <Batatia>`).
The energy contribution :math:`E_i` for an atom :math:`i` is given by:
.. math::
E_i = \frac{1}{2} \sum_{j \neq i} \big(
s_6 \frac{C_{6,ij}}{r^6_{ij}} f_6^{damp}(r_{ij}) +
s_8 \frac{C_{8,ij}}{r^8_{ij}} f_8^{damp}(r_{ij}) \big)
where :math:`C_n` is the averaged, geometry-dependent nth-order
dispersion coefficient for atom pair :math:`ij`, :math:`r_{ij}` their
inter-nuclear distance, :math:`s_n` are XC functional-dependent scaling
factor, and :math:`f_n^{damp}` are damping functions.
.. note::
It is currently *not* possible to calculate three-body dispersion
contributions, according to, for example, the Axilrod-Teller-Muto
model.
Available damping functions are the original "zero-damping"
:ref:`(Grimme1) <Grimme1>`, Becke-Johnson damping :ref:`(Grimme2)
<Grimme2>`, and their revised forms :ref:`(Sherrill) <Sherrill>`.
Available XC functional scaling factors are listed in the table below,
and depend on the selected damping function.
+------------------+--------------------------------------------------------------------------------+
| Damping function | XC functional |
+==================+================================================================================+
| | | | slater-dirac-exchange, b-lyp, b-p, b97-d, revpbe, pbe, pbesol, rpw86-pbe, |
| | | | rpbe, tpss, b3-lyp, pbe0, hse06, revpbe38, pw6b95, tpss0, b2-plyp, pwpb95, |
| | zero | | b2gp-plyp, ptpss, hf, mpwlyp, bpbe, bh-lyp, tpssh, pwb6k, b1b95, bop, o-lyp, |
| | | | o-pbe, ssb, revssb, otpss, b3pw91, revpbe0, pbe38, mpw1b95, mpwb1k, bmk, |
| | | | cam-b3lyp, lc-wpbe, m05, m052x, m06l, m06, m062x, m06hf, hcth120 |
+------------------+--------------------------------------------------------------------------------+
| zerom | b2-plyp, b3-lyp, b97-d, b-lyp, b-p, pbe, pbe0, lc-wpbe |
+------------------+--------------------------------------------------------------------------------+
| | | | b-p, b-lyp, revpbe, rpbe, b97-d, pbe, rpw86-pbe, b3-lyp, tpss, hf, tpss0, |
| | | | pbe0, hse06, revpbe38, pw6b95, b2-plyp, dsd-blyp, dsd-blyp-fc, bop, mpwlyp, |
| | bj | | o-lyp, pbesol, bpbe, opbe, ssb, revssb, otpss, b3pw91, bh-lyp, revpbe0, |
| | | | tpssh, mpw1b95, pwb6k, b1b95, bmk, cam-b3lyp, lc-wpbe, b2gp-plyp, ptpss, |
| | | | pwpb95, hf/mixed, hf/sv, hf/minis, b3lyp/6-31gd, hcth120, pw1pw, pwgga, |
| | | | hsesol, hf3c, hf3cv, pbeh3c, pbeh-3c |
+------------------+--------------------------------------------------------------------------------+
| bjm | b2-plyp, b3-lyp, b97-d, b-lyp, b-p, pbe, pbe0, lc-wpbe |
+------------------+--------------------------------------------------------------------------------+
This style is primarily supposed to be used combined with a
machine-learned interatomic potential trained on a DFT dataset (the
selected XC functional should be chosen accordingly) via the
:doc:`pair_style hybrid <pair_hybrid>` command.
Coefficients
""""""""""""
All the required coefficients are already stored internally (in the
``src/EXTRA-PAIR/d3_parameters.h`` file). The only information to
provide are the chemical symbols of the atoms. The number of chemical
symbols given must be equal to the number of atom types used and must
match their ordering as atom types.
Mixing, shift, table, tail correction, restart, rRESPA info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
This pair style does not support mixing since all parameters are
explicit for each pair of atom types.
This pair style does not support the :doc:`pair_modify` shift, table,
and tail options.
This pair style does not write its information to :doc:`binary restart
files <restart>`.
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*, *outer* keywords.
Restrictions
""""""""""""
Style *dispersion/d3* is part of the EXTRA-PAIR package. It is only
enabled if LAMMPS was built with that package. See the :doc:`Build
package <Build_package>` page for more info.
It is currently *not* possible to calculate three-body dispersion
contributions according to, for example, the Axilrod-Teller-Muto model.
Related commands
""""""""""""""""
:doc:`pair_coeff <pair_coeff>`
Default
"""""""
none
----------
.. _Grimme1:
**(Grimme1)** S. Grimme, J. Antony, S. Ehrlich, and H. Krieg, J. Chem. Phys. 132, 154104 (2010).
.. _Qamar:
**(Qamar)** M. Qamar, M. Mrovec, T. Lysogorskiy, A. Bochkarev, and R. Drautz, J. Chem. Theory Comput. 19, 5151 (2023).
.. _Batatia:
**(Batatia)** I. Batatia, *et al.*, arXiv:2401.0096 (2023).
.. _Grimme2:
**(Grimme2)** S. Grimme, S. Ehrlich and L. Goerigk, J. Comput. Chem. 32, 1456 (2011).
.. _Sherrill:
**(Sherrill)** D. G. A. Smith, L. A. Burns, K. Patkowski, and C. D. Sherrill, J. Phys. Chem. Lett., 7, 2197, (2016).

View File

@ -172,6 +172,7 @@ accelerated styles exist.
* :doc:`coul/tt <pair_coul_tt>` - damped charge-dipole Coulomb for Drude dipoles
* :doc:`coul/wolf <pair_coul>` - Coulomb via Wolf potential
* :doc:`coul/wolf/cs <pair_cs>` - Coulomb via Wolf potential with core/shell adjustments
* :doc:`dispersion/d3 <pair_dispersion_d3>` - Dispersion correction for potentials derived from DFT functionals
* :doc:`dpd <pair_dpd>` - dissipative particle dynamics (DPD)
* :doc:`dpd/coul/slater/long <pair_dpd_coul_slater_long>` - dissipative particle dynamics (DPD) with electrostatic interactions
* :doc:`dpd/ext <pair_dpd_ext>` - generalized force field for DPD

View File

@ -25,6 +25,7 @@ Ackland
acks
acolor
acos
acs
Acta
actinide
activationfunctions
@ -248,6 +249,7 @@ basename
Bashford
bashrc
Baskes
Batatia
Batra
Bayly
bb
@ -255,6 +257,7 @@ bcc
bcolor
bdiam
bdw
Becke
Beckman
Becton
Behler
@ -313,6 +316,7 @@ bitrate
bitrates
Bitzek
Bjerrum
bjm
Bkappa
blabel
Blaise
@ -1342,6 +1346,7 @@ gmres
gname
gneb
GNEB
Goerigk
Goga
Goldfarb
Gompper
@ -1707,6 +1712,7 @@ Jaramillo
Jarzynski
jatempl
javascript
jcc
jcp
jea
jec
@ -1728,6 +1734,7 @@ Jonsson
Jorgensen
jp
jparam
jpclett
jpeg
jpeglib
jpg
@ -1844,6 +1851,7 @@ Krass
Kraus
Kremer
Kress
Krieg
Kronik
ksh
kspace
@ -1916,6 +1924,7 @@ lB
lbfgs
lbl
LBtype
lc
lcbop
ld
lda
@ -2062,6 +2071,7 @@ ly
Lybrand
Lykotrafitis
lyon
lyp
Lysogorskiy
Lyulin
lz
@ -2827,12 +2837,14 @@ pathangle
pathname
pathnames
Patera
Patkowski
Patomtrans
Pattnaik
Pavese
Pavia
Paxton
pbc
pbe
pc
pcg
pchain
@ -2923,6 +2935,7 @@ ploop
PloS
plt
plumedfile
plyp
pmb
pmcmoves
pme
@ -3065,6 +3078,7 @@ qE
qeff
qelectron
qeq
Qamar
QeQ
QEq
qfactor
@ -3433,6 +3447,7 @@ Shardlow
shawn
Shen
Shenderova
Sherrill
Shi
Shiga
Shinoda
@ -4120,6 +4135,7 @@ workflows
Workum
Worley
wormlike
wpbe
Wriggers
writedata
Wuppertal
@ -4240,6 +4256,7 @@ Zemer
zenodo
Zentrum
Zepeda
zerom
zflag
Zhang
Zhao

View File

@ -0,0 +1,50 @@
# Point dipoles in a 3d box with an external potential (ignoring dipolar interactions)
units lj
atom_style hybrid sphere dipole
dimension 3
boundary s s s
region box block -2 2 -2 2 -2 2
create_box 1 box
create_atoms 1 random 100 12345 NULL
# need both mass settings due to hybrid atom style
mass 1 1.0
set group all mass 1.0
set group all diameter 0.1
set group all dipole/random 98934 0.01
pair_style none
comm_modify cutoff 3.0
velocity all create 0.0 87287 mom yes rot yes
fix 1 all nve/sphere update dipole
###############################################################################################################
## Yukawa potential
#fix 2 all efield/lepton "A*exp(-B*r)/r; r=abs(sqrt(x^2+y^2+z^2)); A = 0.1; B = 5" step 1e-8
## Gradually increasing uniform field
#variable E equal ramp(0,1)
#fix 2 all efield/lepton "-v_E*(x+y+z)"
## Linear gradient field
fix 2 all efield/lepton "-1/6*x^3" step 1e-6
fix_modify 2 energy yes
###############################################################################################################
timestep 1e-3
compute erot all erotate/sphere
variable etotal equal "ke + c_erot + pe" # thermo etotal doesn't include erot
thermo_style custom step temp ke c_erot pe v_etotal
thermo 500
thermo_modify norm no
#dump 1 all custom 500 dump.dipole id x y z diameter mux muy muz fx fy fz tqx tqy tqz
run 10000

View File

@ -0,0 +1,115 @@
LAMMPS (19 Nov 2024 - Development - patch_19Nov2024-283-g742c869534-modified)
using 1 OpenMP thread(s) per MPI task
# Point dipoles in a 3d box with an external potential (ignoring dipolar interactions)
units lj
atom_style hybrid sphere dipole
WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132)
dimension 3
boundary s s s
region box block -2 2 -2 2 -2 2
create_box 1 box
Created orthogonal box = (-2 -2 -2) to (2 2 2)
1 by 1 by 1 MPI processor grid
create_atoms 1 random 100 12345 NULL
Created 100 atoms
using lattice units in orthogonal box = (-2.0004 -2.0004 -2.0004) to (2.0004 2.0004 2.0004)
create_atoms CPU = 0.000 seconds
# need both mass settings due to hybrid atom style
mass 1 1.0
set group all mass 1.0
Setting atom values ...
100 settings made for mass
set group all diameter 0.1
Setting atom values ...
100 settings made for diameter
set group all dipole/random 98934 0.01
Setting atom values ...
100 settings made for dipole/random
pair_style none
comm_modify cutoff 3.0
velocity all create 0.0 87287 mom yes rot yes
fix 1 all nve/sphere update dipole
###############################################################################################################
## Yukawa potential
#fix 2 all efield/lepton "A*exp(-B*r)/r; r=abs(sqrt(x^2+y^2+z^2)); A = 0.1; B = 5" step 1e-8
## Gradually increasing uniform field
#variable E equal ramp(0,1)
#fix 2 all efield/lepton "-v_E*(x+y+z)"
## Linear gradient field
fix 2 all efield/lepton "-1/6*x^3" step 1e-6
fix_modify 2 energy yes
###############################################################################################################
timestep 1e-3
compute erot all erotate/sphere
variable etotal equal "ke + c_erot + pe" # thermo etotal doesn't include erot
thermo_style custom step temp ke c_erot pe v_etotal
thermo 500
thermo_modify norm no
#dump 1 all custom 500 dump.dipole id x y z diameter mux muy muz fx fy fz tqx tqy tqz
run 10000
WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (src/atom.cpp:2442)
Per MPI rank memory allocation (min/avg/max) = 4.273 | 4.273 | 4.273 Mbytes
Step Temp KinEng c_erot PotEng v_etotal
0 0 0 0 0.036419797 0.036419797
500 3.7159175e-06 0.00055181374 0.44262618 -0.40675701 0.036420985
1000 1.2808438e-05 0.0019020531 0.24499116 -0.21047295 0.036420259
1500 2.8343769e-05 0.0042090498 0.26504485 -0.2328336 0.036420307
2000 4.8796894e-05 0.0072463388 0.30953526 -0.28036098 0.036420618
2500 7.8933715e-05 0.011721657 0.2015076 -0.17680909 0.036420173
3000 0.00011381678 0.016901791 0.31002163 -0.29050294 0.036420476
3500 0.00015650339 0.023240753 0.27837968 -0.26520001 0.036420418
4000 0.00020429109 0.030337227 0.26201101 -0.25592795 0.036420289
4500 0.00026362339 0.039148074 0.29769952 -0.3004271 0.036420499
5000 0.00033328941 0.049493478 0.21642442 -0.22949776 0.036420131
5500 0.00040914224 0.060757622 0.28422322 -0.30856047 0.036420377
6000 0.00049425119 0.073396302 0.31767 -0.35464572 0.03642058
6500 0.00058508892 0.086885704 0.29079532 -0.34126075 0.036420276
7000 0.00069845073 0.10371993 0.25776048 -0.32506015 0.036420262
7500 0.0008215656 0.12200249 0.27033777 -0.35591972 0.036420539
8000 0.00095528125 0.14185927 0.33943527 -0.44487406 0.036420479
8500 0.0011052502 0.16412965 0.26727165 -0.39498109 0.036420218
9000 0.0012738298 0.18916373 0.31082058 -0.46356382 0.036420485
9500 0.001464197 0.21743325 0.25669856 -0.43771158 0.036420224
10000 0.0016627654 0.24692067 0.36273185 -0.57323194 0.036420578
Loop time of 0.84714 on 1 procs for 10000 steps with 100 atoms
Performance: 1019901.911 tau/day, 11804.420 timesteps/s, 1.180 Matom-step/s
62.3% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 9.21e-07 | 9.21e-07 | 9.21e-07 | 0.0 | 0.00
Comm | 0.00094138 | 0.00094138 | 0.00094138 | 0.0 | 0.11
Output | 0.0001983 | 0.0001983 | 0.0001983 | 0.0 | 0.02
Modify | 0.84105 | 0.84105 | 0.84105 | 0.0 | 99.28
Other | | 0.004946 | | | 0.58
Nlocal: 100 ave 100 max 100 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 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
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 5
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,115 @@
LAMMPS (19 Nov 2024 - Development - patch_19Nov2024-283-g742c869534-modified)
using 1 OpenMP thread(s) per MPI task
# Point dipoles in a 3d box with an external potential (ignoring dipolar interactions)
units lj
atom_style hybrid sphere dipole
WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132)
dimension 3
boundary s s s
region box block -2 2 -2 2 -2 2
create_box 1 box
Created orthogonal box = (-2 -2 -2) to (2 2 2)
1 by 2 by 2 MPI processor grid
create_atoms 1 random 100 12345 NULL
Created 100 atoms
using lattice units in orthogonal box = (-2.0004 -2.0004 -2.0004) to (2.0004 2.0004 2.0004)
create_atoms CPU = 0.000 seconds
# need both mass settings due to hybrid atom style
mass 1 1.0
set group all mass 1.0
Setting atom values ...
100 settings made for mass
set group all diameter 0.1
Setting atom values ...
100 settings made for diameter
set group all dipole/random 98934 0.01
Setting atom values ...
100 settings made for dipole/random
pair_style none
comm_modify cutoff 3.0
velocity all create 0.0 87287 mom yes rot yes
fix 1 all nve/sphere update dipole
###############################################################################################################
## Yukawa potential
#fix 2 all efield/lepton "A*exp(-B*r)/r; r=abs(sqrt(x^2+y^2+z^2)); A = 0.1; B = 5" step 1e-8
## Gradually increasing uniform field
#variable E equal ramp(0,1)
#fix 2 all efield/lepton "-v_E*(x+y+z)"
## Linear gradient field
fix 2 all efield/lepton "-1/6*x^3" step 1e-6
fix_modify 2 energy yes
###############################################################################################################
timestep 1e-3
compute erot all erotate/sphere
variable etotal equal "ke + c_erot + pe" # thermo etotal doesn't include erot
thermo_style custom step temp ke c_erot pe v_etotal
thermo 500
thermo_modify norm no
#dump 1 all custom 500 dump.dipole id x y z diameter mux muy muz fx fy fz tqx tqy tqz
run 10000
WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (src/atom.cpp:2442)
Per MPI rank memory allocation (min/avg/max) = 4.289 | 4.289 | 4.289 Mbytes
Step Temp KinEng c_erot PotEng v_etotal
0 0 0 0 0.036419797 0.036419797
500 3.7159175e-06 0.00055181374 0.44262618 -0.40675701 0.036420985
1000 1.2808438e-05 0.0019020531 0.24499116 -0.21047295 0.036420259
1500 2.8343769e-05 0.0042090498 0.26504485 -0.2328336 0.036420307
2000 4.8796894e-05 0.0072463388 0.30953526 -0.28036098 0.036420618
2500 7.8933715e-05 0.011721657 0.2015076 -0.17680909 0.036420173
3000 0.00011381678 0.016901791 0.31002163 -0.29050294 0.036420476
3500 0.00015650339 0.023240753 0.27837968 -0.26520001 0.036420418
4000 0.00020429109 0.030337227 0.26201101 -0.25592795 0.036420289
4500 0.00026362339 0.039148074 0.29769952 -0.3004271 0.036420499
5000 0.00033328941 0.049493478 0.21642442 -0.22949776 0.036420131
5500 0.00040914224 0.060757622 0.28422322 -0.30856047 0.036420377
6000 0.00049425119 0.073396302 0.31767 -0.35464572 0.03642058
6500 0.00058508892 0.086885704 0.29079532 -0.34126075 0.036420276
7000 0.00069845073 0.10371993 0.25776048 -0.32506015 0.036420262
7500 0.0008215656 0.12200249 0.27033777 -0.35591972 0.036420539
8000 0.00095528125 0.14185927 0.33943527 -0.44487406 0.036420479
8500 0.0011052502 0.16412965 0.26727165 -0.39498109 0.036420218
9000 0.0012738298 0.18916373 0.31082058 -0.46356382 0.036420485
9500 0.001464197 0.21743325 0.25669856 -0.43771158 0.036420224
10000 0.0016627654 0.24692067 0.36273185 -0.57323194 0.036420578
Loop time of 0.985035 on 4 procs for 10000 steps with 100 atoms
Performance: 877125.838 tau/day, 10151.919 timesteps/s, 1.015 Matom-step/s
67.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 | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 7.22e-07 | 8.9125e-07 | 1.031e-06 | 0.0 | 0.00
Comm | 0.09818 | 0.1024 | 0.10798 | 1.1 | 10.40
Output | 0.00021634 | 0.00028668 | 0.00044312 | 0.0 | 0.03
Modify | 0.773 | 0.81845 | 0.84055 | 3.0 | 83.09
Other | | 0.06389 | | | 6.49
Nlocal: 25 ave 30 max 23 min
Histogram: 2 1 0 0 0 0 0 0 0 1
Nghost: 75 ave 77 max 70 min
Histogram: 1 0 0 0 0 0 0 0 1 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 5
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,6 @@
To run these examples, one needs to compile LAMMPS with the ML-PACE (-DPKG_ML-PACE=ON) and the EXTRA-PAIR packages (-DPKG_EXTRA-PAIR=ON).
These examples show how to combine a short-ranged ML potential with a dispersion correction scheme. Here we combine a general-purpose ACE potential for carbon (10.1021/acs.jctc.2c01149), with two different dispersion correction schemes:
- D2 (a pure two-body potential, here tabulated)
- D3 (a many-body potential, implemented in LAMMPS).

View File

@ -0,0 +1,36 @@
atom_style atomic
units metal
boundary p p p
atom_modify sort 0 0.0
lattice sc 1.0
region box block 0 10 0 10 0 10
create_box 1 box
create_atoms 1 region box
variable l equal 47.6
change_box all x final 0 $l y final 0 $l z final 0 $l remap
region world block INF INF INF INF INF INF
### interactions
pair_style hybrid/overlay pace table linear 10000
pair_coeff * * pace potential_files/c_ace.yace C
pair_coeff * * table potential_files/d2.table D2 9.0
mass 1 12.011000
velocity all create 200 1234
compute c1 all pair pace
compute c2 all pair table
# calculate the e/atom for each pair style individually
variable dUpace equal c_c1/atoms
variable dUd2 equal c_c2/atoms
### run
timestep 0.001
fix 1 all nvt temp 200.0 200.0 0.01
thermo_style custom step temp pe press etotal v_dUpace v_dUd2
thermo 10
run 100

View File

@ -0,0 +1,36 @@
atom_style atomic
units metal
boundary p p p
atom_modify sort 0 0.0
lattice sc 1.0
region box block 0 10 0 10 0 10
create_box 1 box
create_atoms 1 region box
variable l equal 47.6
change_box all x final 0 $l y final 0 $l z final 0 $l remap
region world block INF INF INF INF INF INF
### interactions
pair_style hybrid/overlay pace dispersion/d3 bj pbe 16.0 16.0
pair_coeff * * pace potential_files/c_ace.yace C
pair_coeff * * dispersion/d3 C
mass 1 12.011000
velocity all create 200 1234
compute c1 all pair pace
compute c2 all pair dispersion/d3
# calculate the e/atom for each pair style individually
variable Upace equal c_c1/atoms
variable Ud3 equal c_c2/atoms
### run
timestep 0.001
fix 1 all nvt temp 200.0 200.0 0.01
thermo_style custom step temp pe press etotal v_Upace v_Ud3
thermo 10
run 100

View File

@ -0,0 +1,122 @@
LAMMPS (19 Nov 2024 - Development - patch_19Nov2024-125-g095d33dafb)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
atom_style atomic
units metal
boundary p p p
atom_modify sort 0 0.0
lattice sc 1.0
Lattice spacing in x,y,z = 1 1 1
region box block 0 10 0 10 0 10
create_box 1 box
Created orthogonal box = (0 0 0) to (10 10 10)
1 by 1 by 1 MPI processor grid
create_atoms 1 region box
Created 1000 atoms
using lattice units in orthogonal box = (0 0 0) to (10 10 10)
create_atoms CPU = 0.000 seconds
variable l equal 47.6
change_box all x final 0 $l y final 0 $l z final 0 $l remap
change_box all x final 0 47.6 y final 0 $l z final 0 $l remap
change_box all x final 0 47.6 y final 0 47.6 z final 0 $l remap
change_box all x final 0 47.6 y final 0 47.6 z final 0 47.6 remap
Changing box ...
orthogonal box = (0 0 0) to (47.6 10 10)
orthogonal box = (0 0 0) to (47.6 47.6 10)
orthogonal box = (0 0 0) to (47.6 47.6 47.6)
region world block INF INF INF INF INF INF
### interactions
pair_style hybrid/overlay pace table linear 10000
ACE version: 2023.11.25
Recursive evaluator is used
pair_coeff * * pace potential_files/c_ace.yace C
Loading potential_files/c_ace.yace
Total number of basis functions
C: 20 (r=1) 455 (r>1)
Mapping LAMMPS atom type #1(C) -> ACE species type #0
pair_coeff * * table potential_files/d2.table D2 9.0
Reading pair table potential file potential_files/d2.table with DATE: 2021-12-16
WARNING: 8063 of 20000 force values in table D2 are inconsistent with -dE/dr.
WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466)
WARNING: 2386 of 20000 distance values in table 1e-06 with relative error
WARNING: over D2 to re-computed values (src/pair_table.cpp:474)
mass 1 12.011000
velocity all create 200 1234
compute c1 all pair pace
compute c2 all pair table
# calculate the e/atom for each pair style individually
variable dUpace equal c_c1/atoms
variable dUd2 equal c_c2/atoms
### run
timestep 0.001
fix 1 all nvt temp 200.0 200.0 0.01
thermo_style custom step temp pe press etotal v_dUpace v_dUd2
thermo 10
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 11
ghost atom cutoff = 11
binsize = 5.5, bins = 9 9 9
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair pace, perpetual
attributes: full, newton on, cut 7.5
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(2) pair table, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.735 | 3.735 | 3.735 Mbytes
Step Temp PotEng Press TotEng v_dUpace v_dUd2
0 200 -262.26589 -9971.6713 -236.43971 -0.2577066 -0.0045592958
10 198.01563 -261.95164 -9936.5218 -236.38171 -0.25738489 -0.004566747
20 199.80384 -261.06484 -9826.0969 -235.26399 -0.25647577 -0.0045890709
30 200.79867 -259.7549 -9655.8924 -233.82559 -0.25512792 -0.0046269853
40 194.7303 -258.36397 -9450.9508 -233.21827 -0.25368377 -0.004680203
50 197.08802 -257.40377 -9200.5727 -231.95362 -0.25265301 -0.0047507608
60 204.21755 -257.66495 -8919.2309 -231.29416 -0.25282305 -0.0048419012
70 216.81983 -260.19034 -8702.5441 -232.19221 -0.25523198 -0.0049583602
80 242.71952 -266.40641 -8617.9868 -235.06383 -0.26129243 -0.0051139831
90 294.45869 -279.46195 -8724.2954 -241.43824 -0.27411961 -0.0053423377
100 400.44323 -307.29577 -9070.6387 -255.58618 -0.30165815 -0.0056376175
Loop time of 2.66184 on 1 procs for 100 steps with 1000 atoms
Performance: 3.246 ns/day, 7.394 hours/ns, 37.568 timesteps/s, 37.568 katom-step/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 | 2.6584 | 2.6584 | 2.6584 | 0.0 | 99.87
Neigh | 0.0012861 | 0.0012861 | 0.0012861 | 0.0 | 0.05
Comm | 0.00064617 | 0.00064617 | 0.00064617 | 0.0 | 0.02
Output | 0.00024173 | 0.00024173 | 0.00024173 | 0.0 | 0.01
Modify | 0.00099328 | 0.00099328 | 0.00099328 | 0.0 | 0.04
Other | | 0.0002431 | | | 0.01
Nlocal: 1000 ave 1000 max 1000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 2375 ave 2375 max 2375 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 26027 ave 26027 max 26027 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 17736 ave 17736 max 17736 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 26027
Ave neighs/atom = 26.027
Neighbor list builds = 1
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,122 @@
LAMMPS (19 Nov 2024 - Development - patch_19Nov2024-125-g095d33dafb)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
atom_style atomic
units metal
boundary p p p
atom_modify sort 0 0.0
lattice sc 1.0
Lattice spacing in x,y,z = 1 1 1
region box block 0 10 0 10 0 10
create_box 1 box
Created orthogonal box = (0 0 0) to (10 10 10)
1 by 2 by 2 MPI processor grid
create_atoms 1 region box
Created 1000 atoms
using lattice units in orthogonal box = (0 0 0) to (10 10 10)
create_atoms CPU = 0.000 seconds
variable l equal 47.6
change_box all x final 0 $l y final 0 $l z final 0 $l remap
change_box all x final 0 47.6 y final 0 $l z final 0 $l remap
change_box all x final 0 47.6 y final 0 47.6 z final 0 $l remap
change_box all x final 0 47.6 y final 0 47.6 z final 0 47.6 remap
Changing box ...
orthogonal box = (0 0 0) to (47.6 10 10)
orthogonal box = (0 0 0) to (47.6 47.6 10)
orthogonal box = (0 0 0) to (47.6 47.6 47.6)
region world block INF INF INF INF INF INF
### interactions
pair_style hybrid/overlay pace table linear 10000
ACE version: 2023.11.25
Recursive evaluator is used
pair_coeff * * pace potential_files/c_ace.yace C
Loading potential_files/c_ace.yace
Total number of basis functions
C: 20 (r=1) 455 (r>1)
Mapping LAMMPS atom type #1(C) -> ACE species type #0
pair_coeff * * table potential_files/d2.table D2 9.0
Reading pair table potential file potential_files/d2.table with DATE: 2021-12-16
WARNING: 8063 of 20000 force values in table D2 are inconsistent with -dE/dr.
WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466)
WARNING: 2386 of 20000 distance values in table 1e-06 with relative error
WARNING: over D2 to re-computed values (src/pair_table.cpp:474)
mass 1 12.011000
velocity all create 200 1234
compute c1 all pair pace
compute c2 all pair table
# calculate the e/atom for each pair style individually
variable dUpace equal c_c1/atoms
variable dUd2 equal c_c2/atoms
### run
timestep 0.001
fix 1 all nvt temp 200.0 200.0 0.01
thermo_style custom step temp pe press etotal v_dUpace v_dUd2
thermo 10
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 11
ghost atom cutoff = 11
binsize = 5.5, bins = 9 9 9
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair pace, perpetual
attributes: full, newton on, cut 7.5
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(2) pair table, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.655 | 3.655 | 3.655 Mbytes
Step Temp PotEng Press TotEng v_dUpace v_dUd2
0 200 -262.26589 -9971.6713 -236.43971 -0.2577066 -0.0045592958
10 198.00622 -261.95011 -9934.5046 -236.38139 -0.25738304 -0.0045670733
20 199.81545 -261.06219 -9818.4051 -235.25985 -0.25647183 -0.0045903655
30 200.85902 -259.76256 -9639.9086 -233.82546 -0.25513263 -0.0046299265
40 195.00229 -258.4153 -9425.3772 -233.23448 -0.25372979 -0.0046855071
50 198.00573 -257.57066 -9164.7658 -232.00201 -0.25281159 -0.0047590772
60 206.26759 -258.09159 -8877.0162 -231.45607 -0.25323684 -0.0048547477
70 219.81939 -261.10607 -8668.5789 -232.7206 -0.25612771 -0.0049783595
80 250.27428 -268.27862 -8601.1343 -235.96048 -0.2631332 -0.0051454143
90 308.88167 -283.24793 -8745.8792 -243.36177 -0.27785093 -0.0053969977
100 427.60692 -315.05776 -9147.2389 -259.8405 -0.30933434 -0.0057234269
Loop time of 0.69628 on 4 procs for 100 steps with 1000 atoms
Performance: 12.409 ns/day, 1.934 hours/ns, 143.620 timesteps/s, 143.620 katom-step/s
99.5% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.67839 | 0.68307 | 0.69054 | 0.6 | 98.10
Neigh | 0.00034181 | 0.00034811 | 0.00036188 | 0.0 | 0.05
Comm | 0.0045334 | 0.012031 | 0.016704 | 4.4 | 1.73
Output | 0.00015123 | 0.00017175 | 0.0002318 | 0.0 | 0.02
Modify | 0.00041346 | 0.00043062 | 0.00044327 | 0.0 | 0.06
Other | | 0.0002301 | | | 0.03
Nlocal: 250 ave 261 max 246 min
Histogram: 3 0 0 0 0 0 0 0 0 1
Nghost: 1250 ave 1254 max 1239 min
Histogram: 1 0 0 0 0 0 0 0 0 3
Neighs: 6501 ave 6778 max 6320 min
Histogram: 1 0 2 0 0 0 0 0 0 1
FullNghs: 4421.5 ave 4595 max 4332 min
Histogram: 1 2 0 0 0 0 0 0 0 1
Total # of neighbors = 26004
Ave neighs/atom = 26.004
Neighbor list builds = 1
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,117 @@
LAMMPS (19 Nov 2024 - Development - patch_19Nov2024-125-g095d33dafb)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
atom_style atomic
units metal
boundary p p p
atom_modify sort 0 0.0
lattice sc 1.0
Lattice spacing in x,y,z = 1 1 1
region box block 0 10 0 10 0 10
create_box 1 box
Created orthogonal box = (0 0 0) to (10 10 10)
1 by 1 by 1 MPI processor grid
create_atoms 1 region box
Created 1000 atoms
using lattice units in orthogonal box = (0 0 0) to (10 10 10)
create_atoms CPU = 0.000 seconds
variable l equal 47.6
change_box all x final 0 $l y final 0 $l z final 0 $l remap
change_box all x final 0 47.6 y final 0 $l z final 0 $l remap
change_box all x final 0 47.6 y final 0 47.6 z final 0 $l remap
change_box all x final 0 47.6 y final 0 47.6 z final 0 47.6 remap
Changing box ...
orthogonal box = (0 0 0) to (47.6 10 10)
orthogonal box = (0 0 0) to (47.6 47.6 10)
orthogonal box = (0 0 0) to (47.6 47.6 47.6)
region world block INF INF INF INF INF INF
### interactions
pair_style hybrid/overlay pace dispersion/d3 bj pbe 16.0 16.0
ACE version: 2023.11.25
Recursive evaluator is used
pair_coeff * * pace potential_files/c_ace.yace C
Loading potential_files/c_ace.yace
Total number of basis functions
C: 20 (r=1) 455 (r>1)
Mapping LAMMPS atom type #1(C) -> ACE species type #0
pair_coeff * * dispersion/d3 C
mass 1 12.011000
velocity all create 200 1234
compute c1 all pair pace
compute c2 all pair dispersion/d3
# calculate the e/atom for each pair style individually
variable Upace equal c_c1/atoms
variable Ud3 equal c_c2/atoms
### run
timestep 0.001
fix 1 all nvt temp 200.0 200.0 0.01
thermo_style custom step temp pe press etotal v_Upace v_Ud3
thermo 10
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 6 6 6
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair pace, perpetual
attributes: full, newton on, cut 7.5
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(2) pair dispersion/d3, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.225 | 4.225 | 4.225 Mbytes
Step Temp PotEng Press TotEng v_Upace v_Ud3
0 200 -269.22784 -10163.81 -243.40166 -0.2577066 -0.011521241
10 198.05578 -268.91992 -10128.61 -243.34481 -0.25738487 -0.01153505
20 199.85092 -268.05146 -10018.116 -242.24454 -0.25647561 -0.011575851
30 201.10902 -266.77119 -9847.2946 -240.80181 -0.2551274 -0.011643795
40 195.0686 -265.42225 -9641.6992 -240.23287 -0.25368339 -0.011738855
50 197.63706 -264.51951 -9390.1455 -238.99847 -0.25265765 -0.011861864
60 205.01072 -264.86268 -9107.4427 -238.38947 -0.25284579 -0.012016888
70 217.51797 -267.50863 -8890.9916 -239.42034 -0.25529813 -0.012210496
80 244.30754 -273.91051 -8806.154 -242.36286 -0.26145652 -0.01245399
90 296.72041 -287.2518 -8913.8963 -248.93603 -0.27448382 -0.012767981
100 404.07337 -315.6103 -9266.1292 -263.43195 -0.3024416 -0.013168694
Loop time of 4.52709 on 1 procs for 100 steps with 1000 atoms
Performance: 1.909 ns/day, 12.575 hours/ns, 22.089 timesteps/s, 22.089 katom-step/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 | 4.5223 | 4.5223 | 4.5223 | 0.0 | 99.89
Neigh | 0.0023631 | 0.0023631 | 0.0023631 | 0.0 | 0.05
Comm | 0.00088624 | 0.00088624 | 0.00088624 | 0.0 | 0.02
Output | 0.00027759 | 0.00027759 | 0.00027759 | 0.0 | 0.01
Modify | 0.0010211 | 0.0010211 | 0.0010211 | 0.0 | 0.02
Other | | 0.0002737 | | | 0.01
Nlocal: 1000 ave 1000 max 1000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 3913 ave 3913 max 3913 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 116409 ave 116409 max 116409 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 17748 ave 17748 max 17748 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 116409
Ave neighs/atom = 116.409
Neighbor list builds = 1
Dangerous builds = 0
Total wall time: 0:00:04

View File

@ -0,0 +1,117 @@
LAMMPS (19 Nov 2024 - Development - patch_19Nov2024-125-g095d33dafb)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
atom_style atomic
units metal
boundary p p p
atom_modify sort 0 0.0
lattice sc 1.0
Lattice spacing in x,y,z = 1 1 1
region box block 0 10 0 10 0 10
create_box 1 box
Created orthogonal box = (0 0 0) to (10 10 10)
1 by 2 by 2 MPI processor grid
create_atoms 1 region box
Created 1000 atoms
using lattice units in orthogonal box = (0 0 0) to (10 10 10)
create_atoms CPU = 0.000 seconds
variable l equal 47.6
change_box all x final 0 $l y final 0 $l z final 0 $l remap
change_box all x final 0 47.6 y final 0 $l z final 0 $l remap
change_box all x final 0 47.6 y final 0 47.6 z final 0 $l remap
change_box all x final 0 47.6 y final 0 47.6 z final 0 47.6 remap
Changing box ...
orthogonal box = (0 0 0) to (47.6 10 10)
orthogonal box = (0 0 0) to (47.6 47.6 10)
orthogonal box = (0 0 0) to (47.6 47.6 47.6)
region world block INF INF INF INF INF INF
### interactions
pair_style hybrid/overlay pace dispersion/d3 bj pbe 16.0 16.0
ACE version: 2023.11.25
Recursive evaluator is used
pair_coeff * * pace potential_files/c_ace.yace C
Loading potential_files/c_ace.yace
Total number of basis functions
C: 20 (r=1) 455 (r>1)
Mapping LAMMPS atom type #1(C) -> ACE species type #0
pair_coeff * * dispersion/d3 C
mass 1 12.011000
velocity all create 200 1234
compute c1 all pair pace
compute c2 all pair dispersion/d3
# calculate the e/atom for each pair style individually
variable Upace equal c_c1/atoms
variable Ud3 equal c_c2/atoms
### run
timestep 0.001
fix 1 all nvt temp 200.0 200.0 0.01
thermo_style custom step temp pe press etotal v_Upace v_Ud3
thermo 10
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 6 6 6
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair pace, perpetual
attributes: full, newton on, cut 7.5
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(2) pair dispersion/d3, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.732 | 3.732 | 3.732 Mbytes
Step Temp PotEng Press TotEng v_Upace v_Ud3
0 200 -269.22784 -10163.81 -243.40166 -0.2577066 -0.011521241
10 198.04813 -268.91867 -10126.59 -243.34454 -0.25738301 -0.011535654
20 199.86491 -268.04994 -10010.421 -242.24121 -0.25647167 -0.011578276
30 201.18317 -266.78129 -9831.2837 -240.80233 -0.25513213 -0.011649162
40 195.35281 -265.47802 -9616.0833 -240.25194 -0.2537296 -0.011748422
50 198.56247 -264.69401 -9354.3017 -239.05347 -0.25281709 -0.011876925
60 207.17238 -265.30194 -9065.1196 -238.54959 -0.25326251 -0.012039431
70 221.05245 -268.44583 -8856.3622 -239.90114 -0.25620278 -0.012243053
80 252.00942 -275.82142 -8789.4126 -243.27922 -0.26332044 -0.012500977
90 311.21153 -291.09334 -8935.4036 -250.90632 -0.27825852 -0.012834817
100 431.24438 -323.45003 -9344.1963 -267.76306 -0.31019084 -0.013259185
Loop time of 1.20684 on 4 procs for 100 steps with 1000 atoms
Performance: 7.159 ns/day, 3.352 hours/ns, 82.861 timesteps/s, 82.861 katom-step/s
99.4% 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.2007 | 1.2019 | 1.2029 | 0.1 | 99.60
Neigh | 0.00060541 | 0.00062493 | 0.00064411 | 0.0 | 0.05
Comm | 0.0024344 | 0.0033552 | 0.0045996 | 1.4 | 0.28
Output | 0.00016956 | 0.00017999 | 0.00021054 | 0.0 | 0.01
Modify | 0.00046946 | 0.00048235 | 0.00049796 | 0.0 | 0.04
Other | | 0.0002449 | | | 0.02
Nlocal: 250 ave 261 max 246 min
Histogram: 3 0 0 0 0 0 0 0 0 1
Nghost: 2198 ave 2202 max 2187 min
Histogram: 1 0 0 0 0 0 0 0 0 3
Neighs: 29023.2 ave 29681 max 27646 min
Histogram: 1 0 0 0 0 0 0 1 0 2
FullNghs: 4421 ave 4595 max 4331 min
Histogram: 1 2 0 0 0 0 0 0 0 1
Total # of neighbors = 116093
Ave neighs/atom = 116.093
Neighbor list builds = 1
Dangerous builds = 0
Total wall time: 0:00:01

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

5
src/.gitignore vendored
View File

@ -95,6 +95,8 @@
/angle_lepton.h
/dihedral_lepton.cpp
/dihedral_lepton.h
/fix_efield_lepton.cpp
/fix_efield_lepton.h
/fix_wall_lepton.cpp
/fix_wall_lepton.h
/lepton_utils.cpp
@ -1219,6 +1221,9 @@
/pair_dipole_cut.h
/pair_dipole_sf.cpp
/pair_dipole_sf.h
/d3_parameters.h
/pair_dispersion_d3.h
/pair_dispersion_d3.cpp
/pair_dsmc.cpp
/pair_dsmc.h
/pair_e3b.cpp

33960
src/EXTRA-PAIR/d3_parameters.h Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,89 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
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(dispersion/d3,PairDispersionD3);
// clang-format on
#else
#ifndef LMP_PAIR_DISPERSION_D3_H
#define LMP_PAIR_DISPERSION_D3_H
#include "pair.h"
namespace LAMMPS_NS {
class PairDispersionD3 : public Pair {
public:
PairDispersionD3(class LAMMPS *);
~PairDispersionD3() override;
void compute(int, int) override;
void settings(int, char **) override;
void coeff(int, char **) override;
void init_style() override;
double init_one(int, int) override;
int pack_forward_comm(int, int *, double *, int, int *) override;
int pack_reverse_comm(int, int, double *) override;
void unpack_forward_comm(int, int, double *) override;
void unpack_reverse_comm(int, int *, double *) override;
protected:
int nmax;
double evdwl;
double rthr; // R^2 distance to cutoff for D3_calculation
double cn_thr; // R^2 distance to cutoff for CN_calculation
std::string damping_type; // damping function type
double s6, s8, s18, rs6, rs8, rs18; // XC parameters
double a1, a2, alpha, alpha6, alpha8;
double* r2r4 = nullptr; // scale r4/r2 values of the atoms by sqrt(Z)
double* rcov = nullptr; // covalent radii
int* mxci = nullptr; // How large the grid for c6 interpolation
double** r0ab = nullptr; // cut-off radii for all element pairs
double***** c6ab = nullptr; // C6 for all element pairs
double* cn = nullptr; // Coordination numbers
double* dc6 = nullptr; // dC6i(iat) saves dE_dsp/dCN(iat)
int communicationStage; // communication stage
void allocate();
virtual void set_funcpar(std::string&);
void calc_coordination_number();
int find_atomic_number(std::string&);
std::vector<int> is_int_in_array(int*, int, int);
void read_r0ab(int*, int);
void set_limit_in_pars_array(int&, int&, int&, int&);
void read_c6ab(int*, int);
double* get_dC6(int, int, double, double);
};
} // namespace LAMMPS_NS
#endif
#endif

View File

@ -0,0 +1,373 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
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: Gabriel Alkuino (Syracuse University) - gsalkuin@syr.edu
Modified from fix_efield
------------------------------------------------------------------------- */
#include "fix_efield_lepton.h"
#include "atom.h"
#include "comm.h"
#include "domain.h"
#include "error.h"
#include "force.h"
#include "input.h"
#include "modify.h"
#include "region.h"
#include "respa.h"
#include "update.h"
#include <array>
#include "Lepton.h"
#include "lepton_utils.h"
using namespace LAMMPS_NS;
using namespace FixConst;
#define EPSILON 1.0e-10
/* ---------------------------------------------------------------------- */
FixEfieldLepton::FixEfieldLepton(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg), idregion(nullptr), region(nullptr)
{
if (domain->xperiodic || domain->yperiodic || domain->zperiodic) {
error->warning(FLERR, "Fix {} uses unwrapped coordinates", style);
}
if (narg < 4) utils::missing_cmd_args(FLERR, std::string("fix ") + style, error);
scalar_flag = 1;
global_freq = 1;
extscalar = 1;
energy_global_flag = 1;
virial_global_flag = virial_peratom_flag = 1;
respa_level_support = 1;
ilevel_respa = 0;
// optional args
int iarg = 4;
while (iarg < narg) {
if (strcmp(arg[iarg], "region") == 0) {
if (iarg + 2 > narg)
utils::missing_cmd_args(FLERR, std::string("fix ") + style + " region", error);
region = domain->get_region_by_id(arg[iarg + 1]);
if (!region) error->all(FLERR, "Region {} for fix {} does not exist", arg[iarg + 1], style);
idregion = utils::strdup(arg[iarg + 1]);
iarg += 2;
} else if (strcmp(arg[iarg], "step") == 0) {
if (iarg + 2 > narg)
utils::missing_cmd_args(FLERR, std::string("fix ") + style + "step", error);
h = utils::numeric(FLERR, arg[iarg+1], false, lmp);
iarg += 2;
} else {
error->all(FLERR, "Unknown keyword for fix {} command: {}", style, arg[iarg]);
}
}
// check validity of Lepton expression
// remove whitespace and quotes from expression string and then
// check if the expression can be parsed without error
expr = LeptonUtils::condense(arg[3]);
try {
auto parsed = Lepton::Parser::parse(LeptonUtils::substitute(expr, lmp));
auto phi = parsed.createCompiledExpression();
} catch (std::exception &e) {
error->all(FLERR, e.what());
}
force_flag = 0;
fsum[0] = fsum[1] = fsum[2] = fsum[3] = 0.0;
}
/* ---------------------------------------------------------------------- */
FixEfieldLepton::~FixEfieldLepton()
{
delete[] idregion;
}
/* ---------------------------------------------------------------------- */
int FixEfieldLepton::setmask()
{
int mask = 0;
mask |= POST_FORCE;
mask |= POST_FORCE_RESPA;
mask |= MIN_POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixEfieldLepton::init()
{
if (!atom->q_flag && !atom->mu_flag)
error->all(FLERR, "Fix {} requires atom attribute q or mu", style);
if (atom->mu_flag && !atom->torque_flag)
error->all(FLERR, "Dipoles must be finite-sized to rotate", style);
// set index and check validity of region
if (idregion) {
region = domain->get_region_by_id(idregion);
if (!region) error->all(FLERR, "Region {} for fix {} does not exist", idregion, style);
}
if (utils::strmatch(update->integrate_style, "^respa")) {
ilevel_respa = (dynamic_cast<Respa *>(update->integrate))->nlevels - 1;
if (respa_level >= 0) ilevel_respa = MIN(respa_level, ilevel_respa);
}
// unit conversion factors and restrictions (see issue #1377)
char *unit_style = update->unit_style;
qe2f = force->qe2f;
mue2e = qe2f;
if (strcmp(unit_style, "electron") == 0 || strcmp(unit_style, "micro") == 0 || strcmp(unit_style, "nano") == 0) {
error->all(FLERR, "Fix {} does not support {} units", style, unit_style);
}
}
/* ---------------------------------------------------------------------- */
void FixEfieldLepton::setup(int vflag)
{
if (utils::strmatch(update->integrate_style, "^respa")) {
auto respa = dynamic_cast<Respa *>(update->integrate);
respa->copy_flevel_f(ilevel_respa);
post_force_respa(vflag, ilevel_respa, 0);
respa->copy_f_flevel(ilevel_respa);
} else {
post_force(vflag);
}
}
/* ---------------------------------------------------------------------- */
void FixEfieldLepton::min_setup(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
Apply F = qE,
F = (mu . D) E,
T = mu x E
------------------------------------------------------------------------- */
void FixEfieldLepton::post_force(int vflag)
{
double **f = atom->f;
double **x = atom->x;
int *mask = atom->mask;
imageint *image = atom->image;
int nlocal = atom->nlocal;
auto parsed = Lepton::Parser::parse(LeptonUtils::substitute(expr, lmp)).optimize();
Lepton::CompiledExpression phi;
auto dphi_x = parsed.differentiate("x").createCompiledExpression();
auto dphi_y = parsed.differentiate("y").createCompiledExpression();
auto dphi_z = parsed.differentiate("z").createCompiledExpression();
std::array<Lepton::CompiledExpression*, 3> dphis = {&dphi_x, &dphi_y, &dphi_z};
// array of vectors of ptrs to Lepton variable references
std::array<std::vector<double *>, 3> var_ref_ptrs{};
// fill ptr-vectors with Lepton refs as needed
const char* DIM_NAMES[] = {"x", "y", "z"};
if (atom->q_flag){
phi = parsed.createCompiledExpression();
for (size_t d = 0; d < 3; d++) {
try {
double *ptr = &(phi.getVariableReference(DIM_NAMES[d]));
var_ref_ptrs[d].push_back(ptr);
} catch (Lepton::Exception &) {
// do nothing
}
}
}
bool e_uniform = true;
for (size_t j = 0; j < 3; j++)
for (size_t d = 0; d < 3; d++) {
try {
double *ptr = &((*dphis[j]).getVariableReference(DIM_NAMES[d]));
var_ref_ptrs[d].push_back(ptr);
e_uniform = false;
}
catch (Lepton::Exception &) {
// do nothing
}
}
if (!e_uniform && atom->mu_flag && h < 0) {
error->all(FLERR, "Fix {} requires keyword `step' for dipoles in a non-uniform electric field", style);
}
// virial setup
v_init(vflag);
// update region if necessary
if (region) region->prematch();
// fsum[0] = "potential energy" for added force
// fsum[123] = extra force added to atoms
fsum[0] = fsum[1] = fsum[2] = fsum[3] = 0.0;
force_flag = 0;
double ex, ey, ez;
double fx, fy, fz;
double v[6], unwrap[3], dstep[3];
double xf, yf, zf, xb, yb, zb;
double exf, eyf, ezf, exb, eyb, ezb;
double mu_norm, h_mu;
double *q = atom->q;
double **mu = atom->mu;
double **t = atom->torque;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
if (region && !region->match(x[i][0], x[i][1], x[i][2])) continue;
fx = fy = fz = 0.0;
domain->unmap(x[i], image[i], unwrap);
// put unwrapped coords into Lepton variable refs
for (size_t d = 0; d < 3; d++) {
for (auto & var_ref_ptr : var_ref_ptrs[d]) {
*var_ref_ptr = unwrap[d];
}
}
// evaluate e-field, used by q and mu
ex = -dphi_x.evaluate();
ey = -dphi_y.evaluate();
ez = -dphi_z.evaluate();
// charges
// force = q E
if (atom->q_flag) {
fx = qe2f * q[i] * ex;
fy = qe2f * q[i] * ey;
fz = qe2f * q[i] * ez;
// potential energy = q phi
fsum[0] += qe2f * q[i] * phi.evaluate();
}
if (atom->mu_flag) {
// dipoles
mu_norm = sqrt(mu[i][0]*mu[i][0] + mu[i][1]*mu[i][1] + mu[i][2]*mu[i][2]);
if (mu_norm > EPSILON) {
// torque = mu cross E
t[i][0] += mue2e * (ez * mu[i][1] - ey * mu[i][2]);
t[i][1] += mue2e * (ex * mu[i][2] - ez * mu[i][0]);
t[i][2] += mue2e * (ey * mu[i][0] - ex * mu[i][1]);
// potential energy = - mu dot E
fsum[0] -= mue2e * (mu[i][0] * ex + mu[i][1] * ey + mu[i][2] * ez);
// force = (mu dot D) E for non-uniform E
// using central difference method
if (!e_uniform) {
h_mu = h / mu_norm;
dstep[0] = h_mu * mu[i][0];
dstep[1] = h_mu * mu[i][1];
dstep[2] = h_mu * mu[i][2];
// one step forwards, two steps back ;)
for (size_t d = 0; d < 3; d++) {
for (auto & var_ref_ptr : var_ref_ptrs[d]) {
*var_ref_ptr += dstep[d];
}
}
exf = -dphi_x.evaluate();
eyf = -dphi_y.evaluate();
ezf = -dphi_z.evaluate();
for (size_t d = 0; d < 3; d++) {
for (auto & var_ref_ptr : var_ref_ptrs[d]) {
*var_ref_ptr -= 2*dstep[d];
}
}
exb = -dphi_x.evaluate();
eyb = -dphi_y.evaluate();
ezb = -dphi_z.evaluate();
fx += qe2f * (exf - exb) / 2.0 / h_mu;
fy += qe2f * (eyf - eyb) / 2.0 / h_mu;
fz += qe2f * (ezf - ezb) / 2.0 / h_mu;
}
}
}
f[i][0] += fx;
f[i][1] += fy;
f[i][2] += fz;
fsum[1] += fx;
fsum[2] += fy;
fsum[3] += fz;
if (evflag) {
v[0] = fx * unwrap[0];
v[1] = fy * unwrap[1];
v[2] = fz * unwrap[2];
v[3] = fx * unwrap[1];
v[4] = fx * unwrap[2];
v[5] = fy * unwrap[2];
v_tally(i, v);
}
}
}
}
/* ---------------------------------------------------------------------- */
void FixEfieldLepton::post_force_respa(int vflag, int ilevel, int /*iloop*/)
{
if (ilevel == ilevel_respa) post_force(vflag);
}
/* ---------------------------------------------------------------------- */
void FixEfieldLepton::min_post_force(int vflag)
{
post_force(vflag);
}
/* ----------------------------------------------------------------------
return energy added by fix
------------------------------------------------------------------------- */
double FixEfieldLepton::compute_scalar()
{
if (force_flag == 0) {
MPI_Allreduce(fsum, fsum_all, 4, MPI_DOUBLE, MPI_SUM, world);
force_flag = 1;
}
return fsum_all[0];
}
/* ----------------------------------------------------------------------
return total extra force due to fix
------------------------------------------------------------------------- */
double FixEfieldLepton::compute_vector(int n)
{
if (force_flag == 0) {
MPI_Allreduce(fsum, fsum_all, 4, MPI_DOUBLE, MPI_SUM, world);
force_flag = 1;
}
return fsum_all[n + 1];
}

View File

@ -0,0 +1,60 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
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: Gabriel Alkuino (Syracuse University) - gsalkuin@syr.edu
Modified from fix_efield
------------------------------------------------------------------------- */
#ifdef FIX_CLASS
// clang-format off
FixStyle(efield/lepton,FixEfieldLepton);
// clang-format on
#else
#ifndef LMP_FIX_EFIELD_LEPTON_H
#define LMP_FIX_EFIELD_LEPTON_H
#include "fix.h"
namespace LAMMPS_NS {
class FixEfieldLepton : public Fix {
public:
FixEfieldLepton(class LAMMPS *, int, char **);
~FixEfieldLepton() override;
int setmask() override;
void init() override;
void setup(int) override;
void min_setup(int) override;
void post_force(int) override;
void post_force_respa(int, int, int) override;
void min_post_force(int) override;
double compute_scalar() override;
double compute_vector(int) override;
protected:
char *idregion;
class Region *region;
int ilevel_respa;
std::string expr;
int force_flag;
double h = -1.0;
double qe2f, mue2e;
double fsum[4], fsum_all[4];
};
} // namespace LAMMPS_NS
#endif
#endif

View File

@ -0,0 +1,78 @@
---
lammps_version: 29 Aug 2024
tags: generated
date_generated: Tue Nov 12 08:53:18 2024
epsilon: 2e-13
skip_tests:
prerequisites: ! |
atom full
fix efield
pre_commands: ! ""
post_commands: ! |
region half block 0 EDGE EDGE EDGE EDGE EDGE
fix move all nve
fix test solute efield/lepton "A*exp(-B*r)/r; r=abs(sqrt(x^2+y^2+z^2)); A=1; B=1"
input_file: in.fourmol
natoms: 29
global_scalar: 1.6704454516566274
run_pos: ! |2
1 -2.7045174040786113e-01 2.4911873718363386e+00 -1.6695654631491835e-01
2 3.1004221019407835e-01 2.9612623619618166e+00 -8.5467074498303619e-01
3 -7.0398277208953364e-01 1.2305442007296870e+00 -6.2777337959095758e-01
4 -1.5818277418447926e+00 1.4837528245352911e+00 -1.2538808796681880e+00
5 -9.0729118448236790e-01 9.2661863916543652e-01 3.9958383542336978e-01
6 2.4837968642651539e-01 2.8318965710323424e-01 -1.2316675533799510e+00
7 3.4143233737928985e-01 -2.2652080889821399e-02 -2.5292246648830696e+00
8 1.1742106633496632e+00 -4.8857819177533296e-01 -6.3774855832878818e-01
9 1.3804619006746952e+00 -2.5282186304504617e-01 2.8361638661486044e-01
10 2.0510714422715428e+00 -1.4603992238436605e+00 -9.8323613298241641e-01
11 1.7878067664442001e+00 -1.9921902225913919e+00 -1.8890639278278800e+00
12 3.0062962291402449e+00 -4.9013271581056822e-01 -1.6231874104184338e+00
13 4.0515414154880354e+00 -8.9202039400328714e-01 -1.6400010189207204e+00
14 2.6066986955414859e+00 -4.1789289874186603e-01 -2.6634027530740045e+00
15 2.9695346087268195e+00 5.5422728642528218e-01 -1.2342046800948778e+00
16 2.6747089246970055e+00 -2.4124172919180635e+00 -2.3435358040545039e-02
17 2.2153515161424591e+00 -2.0897925974376559e+00 1.1963115055447653e+00
18 2.1369701703995672e+00 3.0158507413483879e+00 -3.5179348337128169e+00
19 1.5355837136075503e+00 2.6255292355356850e+00 -4.2353987779858899e+00
20 2.7727573005675157e+00 3.6923910449606199e+00 -3.9330842459130921e+00
21 4.9040128073216458e+00 -4.0752348172972228e+00 -3.6210314709902178e+00
22 4.3582355554441330e+00 -4.2126119427287785e+00 -4.4612844196314905e+00
23 5.7439382849308398e+00 -3.5821957939275575e+00 -3.8766361295936442e+00
24 2.0689243582420707e+00 3.1513346907257525e+00 3.1550389754825381e+00
25 1.3045351331495809e+00 3.2665125705836533e+00 2.5111855257438469e+00
26 2.5809237402711407e+00 4.0117602605482343e+00 3.2212060529090203e+00
27 -1.9611343130355228e+00 -4.3563411931353464e+00 2.1098293115521636e+00
28 -2.7473562684513140e+00 -4.0200819932378886e+00 1.5830052163433823e+00
29 -1.3126000191359133e+00 -3.5962518039481126e+00 2.2746342468736911e+00
run_vel: ! |2
1 8.1748902719248895e-03 1.6488825063890555e-02 4.7920575746796803e-03
2 5.4511084007743318e-03 5.2051261388670498e-03 -1.4434422725438370e-03
3 -8.2274804663814219e-03 -1.2934351097927732e-02 -4.0974640813287184e-03
4 -3.7810439919825625e-03 -6.5599673887508873e-03 -1.1281975069807595e-03
5 -1.1114610957297140e-02 -9.7941960094448405e-03 -2.8000606969231651e-03
6 -3.9614471141667384e-02 4.6885125158393097e-02 3.6916688468892268e-02
7 9.0823633550694307e-04 -1.0137209973964618e-02 -5.1576821598862101e-02
8 7.7662077312228937e-03 -3.3034358179113549e-03 3.4641870510036560e-02
9 1.9711566942801151e-03 3.6632927647716452e-03 1.5119486507285342e-02
10 2.9189761590759169e-02 -2.9234948386605512e-02 -1.5014329233453094e-02
11 -4.7800378310285741e-03 -3.7519133265433713e-03 -2.3499734597008941e-03
12 2.2651912734175032e-03 -3.4688766322378106e-04 -3.0617028612628929e-03
13 2.7541524307768692e-03 5.8168212242409026e-03 -7.9509320189794788e-04
14 3.5269195768251409e-03 -5.7943367272026312e-03 -3.9501557653067150e-03
15 -1.8489707819649144e-03 -5.8542853523402688e-03 6.2913780244787517e-03
16 1.8687298458400135e-02 -1.3267695591612149e-02 -4.5638131306342533e-02
17 -1.2902476276599238e-02 9.7586450769834993e-03 3.7292773489970149e-02
18 -8.0065797284243809e-04 -8.6270476160336701e-04 -1.4483040521307380e-03
19 1.2452390811276265e-03 -2.5061097157054544e-03 7.2998631050251199e-03
20 3.5930060220586732e-03 3.6938860299406654e-03 3.2322732694668697e-03
21 -1.4689220345082588e-03 -2.7352130061578030e-04 7.0581623990333337e-04
22 -7.0694199253619090e-03 -4.2577148926459460e-03 2.8079117595322244e-04
23 6.0446963119181341e-03 -1.4000131615895693e-03 2.5819754845648850e-03
24 3.1926367864219455e-04 -9.9445665025542493e-04 1.4999996888246658e-04
25 1.3789754587624503e-04 -4.4335894897561037e-03 -8.1808136628206090e-04
26 2.0485904035354775e-03 2.7813358632583834e-03 4.3245727149805969e-03
27 4.5604120337294426e-04 -1.0305523013893942e-03 2.1188058337867958e-04
28 -6.2544520861285771e-03 1.4127711177082084e-03 -1.8429821885090839e-03
29 6.4110631550796319e-04 3.1273432723457764e-03 3.7253671103666878e-03
...

View File

@ -0,0 +1,78 @@
---
lammps_version: 29 Aug 2024
tags: generated
date_generated: Tue Nov 12 08:53:32 2024
epsilon: 2e-13
skip_tests:
prerequisites: ! |
atom full
fix efield
pre_commands: ! ""
post_commands: ! |
region half block 0 EDGE EDGE EDGE EDGE EDGE
fix move all nve
fix test solute efield/lepton "A*exp(-B*r)/r; r=abs(sqrt(x^2+y^2+z^2)); A=1; B=1" region half
input_file: in.fourmol
natoms: 29
global_scalar: 1.6224257709052041
run_pos: ! |2
1 -2.7045550227503484e-01 2.4912161552650542e+00 -1.6695870672991683e-01
2 3.1004259198805995e-01 2.9612627263370541e+00 -8.5467109039916112e-01
3 -7.0398509489328243e-01 1.2305505728672561e+00 -6.2777617667397034e-01
4 -1.5818160259170788e+00 1.4837409852928742e+00 -1.2538708748776086e+00
5 -9.0719735527200218e-01 9.2652068440082169e-01 3.9954204708150570e-01
6 2.4837966543189102e-01 2.8318973351568738e-01 -1.2316676191454061e+00
7 3.4143233915513954e-01 -2.2652082568946554e-02 -2.5292246658165061e+00
8 1.1742106609334979e+00 -4.8857818923052260e-01 -6.3774855737315483e-01
9 1.3804619006758012e+00 -2.5282186302388332e-01 2.8361638664582128e-01
10 2.0510714422251031e+00 -1.4603992237831411e+00 -9.8323613295984091e-01
11 1.7878067664437562e+00 -1.9921902225910537e+00 -1.8890639278278771e+00
12 3.0062962291411979e+00 -4.9013271581129958e-01 -1.6231874104189474e+00
13 4.0515414154880700e+00 -8.9202039400332667e-01 -1.6400010189207255e+00
14 2.6066986955415903e+00 -4.1789289874193392e-01 -2.6634027530740991e+00
15 2.9695346087273786e+00 5.5422728642511987e-01 -1.2342046800950848e+00
16 2.6747089246973057e+00 -2.4124172919184503e+00 -2.3435358040670606e-02
17 2.2153515161430364e+00 -2.0897925974384783e+00 1.1963115055450686e+00
18 2.1369701703991302e+00 3.0158507413490390e+00 -3.5179348337124896e+00
19 1.5355837136075265e+00 2.6255292355357338e+00 -4.2353987779858606e+00
20 2.7727573005674877e+00 3.6923910449606310e+00 -3.9330842459130633e+00
21 4.9040128073216458e+00 -4.0752348172972228e+00 -3.6210314709902178e+00
22 4.3582355554441330e+00 -4.2126119427287785e+00 -4.4612844196314905e+00
23 5.7439382849308398e+00 -3.5821957939275575e+00 -3.8766361295936442e+00
24 2.0689243582419663e+00 3.1513346907264923e+00 3.1550389754824169e+00
25 1.3045351331492137e+00 3.2665125705841698e+00 2.5111855257432798e+00
26 2.5809237402711096e+00 4.0117602605482601e+00 3.2212060529089785e+00
27 -1.9611343130355403e+00 -4.3563411931354130e+00 2.1098293115521884e+00
28 -2.7473562684513166e+00 -4.0200819932378939e+00 1.5830052163433843e+00
29 -1.3126000191359157e+00 -3.5962518039481259e+00 2.2746342468736964e+00
run_vel: ! |2
1 8.1707610252536762e-03 1.6516729522797459e-02 4.7898444127747793e-03
2 5.4518750405498674e-03 5.2058557730251687e-03 -1.4441331386370641e-03
3 -8.2289377254294322e-03 -1.2927459179389453e-02 -4.1002423460516626e-03
4 -3.7700883579582412e-03 -6.5718761179186279e-03 -1.1180449896675260e-03
5 -1.1021377362739846e-02 -9.8914014766124762e-03 -2.8411972311159365e-03
6 -3.9614514600574871e-02 4.6885283311817079e-02 3.6916556408268048e-02
7 9.0823995329068752e-04 -1.0137213428025349e-02 -5.1576824114592634e-02
8 7.7662014866174776e-03 -3.3034295723750589e-03 3.4641871541434638e-02
9 1.9711566911953310e-03 3.6632928332818136e-03 1.5119486593282045e-02
10 2.9189761435066477e-02 -2.9234948184549876e-02 -1.5014329155936850e-02
11 -4.7800378317950521e-03 -3.7519133256272356e-03 -2.3499734593625606e-03
12 2.2651912749160931e-03 -3.4688766464208300e-04 -3.0617028620660344e-03
13 2.7541524308356854e-03 5.8168212241007178e-03 -7.9509320188147147e-04
14 3.5269195770455336e-03 -5.7943367273509527e-03 -3.9501557655038776e-03
15 -1.8489707807796338e-03 -5.8542853526596435e-03 6.2913780240085072e-03
16 1.8687298458816809e-02 -1.3267695592172753e-02 -4.5638131306663686e-02
17 -1.2902476275417624e-02 9.7586450753110940e-03 3.7292773490567067e-02
18 -8.0065797374504898e-04 -8.6270476028742454e-04 -1.4483040514595652e-03
19 1.2452390810788788e-03 -2.5061097156065682e-03 7.2998631050903854e-03
20 3.5930060220034791e-03 3.6938860299639783e-03 3.2322732695251408e-03
21 -1.4689220345081530e-03 -2.7352130061585414e-04 7.0581623990322755e-04
22 -7.0694199253619021e-03 -4.2577148926459503e-03 2.8079117595321425e-04
23 6.0446963119181419e-03 -1.4000131615895712e-03 2.5819754845648798e-03
24 3.1926367843162763e-04 -9.9445664874966543e-04 1.4999996864545090e-04
25 1.3789754514824566e-04 -4.4335894886887352e-03 -8.1808136740210897e-04
26 2.0485904034778955e-03 2.7813358633230435e-03 4.3245727148973397e-03
27 4.5604120333659156e-04 -1.0305523015253445e-03 2.1188058342984497e-04
28 -6.2544520861335402e-03 1.4127711176935673e-03 -1.8429821885043371e-03
29 6.4110631550259628e-04 3.1273432723195943e-03 3.7253671103774067e-03
...

View File

@ -0,0 +1,154 @@
---
lammps_version: 19 Nov 2024
date_generated: Wed Dec 11 15:29:39 2024
epsilon: 1e-7
skip_tests:
prerequisites: ! |
pair dispersion/d3
pre_commands: ! ""
post_commands: ! ""
input_file: in.manybody
pair_style: dispersion/d3 zero pbe 12.0 12.0
pair_coeff: ! |
* * Si Si Si Si Si Si Si Si
extract: ! ""
natoms: 64
init_vdwl: -9.262365244070887
init_coul: 0
init_stress: ! |-
-1.8070680161672350e+00 -1.8151671910236220e+00 -1.9214651805560712e+00 -4.1552461721989307e-02 -7.1708481048125128e-01 -1.3638435843456306e-01
init_forces: ! |2
1 4.5901744149339814e-04 -5.8645004258887296e-03 -2.6408414442435817e-03
2 4.1982212100397494e-02 7.7916988680959785e-03 4.1558505642265483e-03
3 -1.0599537919974110e-03 -1.5284351857714875e-03 1.3250226437598804e-03
4 1.2952849248980391e-02 -1.2730397232186651e-02 6.4718612421368858e-03
5 1.9307066949767124e-03 3.1031437654175332e-03 3.5451961708816851e-03
6 6.0636534612296018e-03 -3.4538157294514024e-02 -1.5549038123319472e-02
7 -5.5478612773693318e-03 9.7600792842619001e-03 -2.1450928859339292e-02
8 1.7128887807534021e-05 -1.3865910298862735e-04 8.9170060304616253e-04
9 -5.8527207660040638e-02 8.5011601463707259e-02 7.9837310973084497e-02
10 -9.9174557760647319e-03 1.3163286906290764e-02 1.2367199083459195e-02
11 -2.0922976098149738e-02 1.7815876096333588e-02 -3.2459912594439561e-02
12 9.4039240797013243e-02 3.7466484052249387e-02 -9.4966824523796730e-03
13 -4.3611820846840114e-02 -7.5650463287387754e-02 4.1545920229193796e-02
14 1.3914347992697577e-02 -9.8186446053987742e-03 -1.5039026985332828e-02
15 9.8798529628413748e-02 -9.6939234786348333e-02 -3.5897115916559530e-02
16 -1.8828449808127548e-02 1.0084992417269656e-02 -1.6621409840469250e-02
17 1.8867454988099414e-02 -3.3410341395584034e-02 5.8649656805337354e-02
18 -5.7757243295743490e-03 3.7525865932555918e-03 -1.7465564682291646e-02
19 7.3146350339646261e-03 -5.0979152089016683e-03 -5.7918362966919833e-03
20 1.2526948607359642e-01 3.4964179836823706e-02 -4.0345565678621194e-02
21 -7.9108983611317768e-02 -7.4234491850519224e-02 7.8298798433197120e-02
22 3.3256958035759267e-02 -3.5876634662328263e-03 -5.5658445807261810e-03
23 -9.4983041888941230e-02 -1.6190744700903256e-01 6.5979264480813399e-02
24 -3.9837469539795965e-02 2.5364084079376788e-02 -2.8343465953968475e-02
25 -7.3424056398832139e-03 -1.1672660207324508e-02 -4.2413533423389452e-03
26 7.1482435767536698e-02 7.9794866672039319e-02 -1.2051822893472583e-01
27 -1.2443813900029382e-02 -4.4129788887813590e-03 -4.9977235842165457e-03
28 -5.0454676878239251e-03 -4.8367643826771898e-03 -9.7359590852317181e-03
29 5.0973790709941257e-02 -3.5296812997722318e-02 -1.5607922729704526e-02
30 6.9152527680774289e-02 -1.5810831557831798e-03 3.8412598766233222e-02
31 2.4462930027397904e-02 -3.5045454052408158e-02 -1.9154039485981871e-02
32 2.9037764598216036e-02 -6.8595457693026449e-03 -3.2736895722578810e-03
33 -2.3571014326886783e-02 7.4043101437256172e-03 -2.8705289218120600e-02
34 -1.4606618211317998e-02 -9.1068965341847558e-04 -8.5624377570787912e-03
35 -3.2510043401035402e-02 -2.8006234725365901e-02 -4.6845303279608771e-02
36 6.2991561249353990e-03 2.3238393607814253e-02 -5.8116057369683007e-03
37 2.6891579366883651e-02 -1.3896976671852732e-02 3.1371675512071220e-02
38 2.0868635140715318e-02 5.0357172404813764e-03 -5.3296214134632008e-03
39 -8.0127916540111269e-02 -3.7084303697709070e-02 1.2218320413943409e-01
40 -3.9584086191698675e-02 1.4186027994256518e-02 -1.1786983662869569e-02
41 -2.4078556290238202e-02 2.3979806392354495e-02 3.9808779679712705e-02
42 1.2092253594807115e-01 7.0237820528219294e-02 -6.7634093701619297e-02
43 -4.7905857363210326e-02 1.7234517679973846e-01 6.1081728342102619e-02
44 -8.9268222669576444e-02 1.0935256558697629e-01 4.9391188655423857e-02
45 -1.0932468625449131e-02 -1.1437973186082834e-02 2.2070666035756106e-02
46 -3.6031863627779687e-02 2.6734739238025461e-02 -3.3611450612771009e-02
47 1.4499510792417522e-03 -1.4213296744594713e-02 -2.3112799817407201e-04
48 -1.3767091755648294e-02 -3.0136222933599762e-03 1.3113656065372467e-02
49 -9.7091851340953099e-03 3.6127847173236860e-02 1.4509648044635070e-02
50 8.4557962865172906e-02 -1.0736631874343017e-01 9.9597088988686328e-02
51 -1.0386138512718579e-02 -2.0257306348498042e-02 -3.3076970024004795e-02
52 -4.6611247598798901e-02 6.5689772901113247e-02 1.9370639130365311e-02
53 -5.5610674070546090e-03 -1.4027210037762585e-02 8.7210863818644770e-03
54 -4.3167807623476724e-02 5.3419018792160038e-02 -1.5968205606008208e-02
55 2.1005445106472131e-03 1.5540888545067990e-02 3.0653660856435228e-02
56 -2.0590128088026315e-04 -4.1762635041913861e-03 1.7714423656329605e-02
57 1.0284475505097292e-02 4.9815307763691908e-03 1.2436353033202291e-02
58 -1.0342665676627626e-01 -1.9280058551284476e-02 -7.4866501808988087e-02
59 -2.3544588605186314e-03 3.6121601861319316e-03 -4.6871794758065605e-03
60 -5.4150711425366791e-03 5.8612714396504555e-02 1.4839344681837788e-02
61 2.7954413433097583e-03 -5.0942788256137531e-02 7.2754423172912289e-03
62 1.1252409114510897e-01 -8.8720719849435095e-02 5.4683231090040328e-02
63 -3.1773161308752101e-02 3.6061405691521872e-02 -3.8399113596128895e-02
64 -1.4722975703463983e-02 -2.6147363460941667e-02 -2.1059016257148011e-01
run_vdwl: -9.262826276539041
run_coul: 0
run_stress: ! |-
-1.8014717148220629e+00 -1.8087390477796537e+00 -1.9142638698777830e+00 -3.9974176411585433e-02 -7.1417886625446692e-01 -1.3759726065342742e-01
run_forces: ! |2
1 4.7667962871302064e-04 -5.8467702639815730e-03 -2.6991867530137183e-03
2 4.1869408756196061e-02 8.4979875396755736e-03 3.4984717617200642e-03
3 -9.9160928389676294e-04 -1.4869879157543243e-03 1.2223462368121266e-03
4 1.3147106326425097e-02 -1.2926544726456277e-02 6.7789603977131685e-03
5 1.9770775501047611e-03 3.1765296749256397e-03 3.5629842559820419e-03
6 5.7506960260337615e-03 -3.4699407409212034e-02 -1.5506043496333955e-02
7 -5.3406567846472110e-03 9.4551314732373871e-03 -2.0752905880674206e-02
8 8.7145147942647994e-05 -2.8842758704853994e-05 8.0207322231987555e-04
9 -5.8415508752920696e-02 8.4979266050254798e-02 7.9622715923589979e-02
10 -9.9578406934257829e-03 1.3145690562371913e-02 1.2350278008781093e-02
11 -2.0970548283900613e-02 1.7641558319062160e-02 -3.3050100269910745e-02
12 9.5891788559756261e-02 3.8024542707650773e-02 -9.8061835139289615e-03
13 -4.4952222762277574e-02 -7.6842596098760999e-02 4.2613909344851382e-02
14 1.4295961622308551e-02 -1.0328974985624625e-02 -1.5428512528767140e-02
15 9.9943438550046268e-02 -9.7907452664271769e-02 -3.6257259204378979e-02
16 -1.8390119036246416e-02 9.7159754168328807e-03 -1.6211888959160415e-02
17 1.8981263199444591e-02 -3.3819017834561864e-02 5.9290153986863804e-02
18 -5.6513870204191862e-03 3.7641108672139441e-03 -1.7558647302488333e-02
19 7.4901241599460017e-03 -4.9270563654430326e-03 -5.9132694173721096e-03
20 1.2404887106966292e-01 3.4634285214608047e-02 -4.0135253428616791e-02
21 -7.8277898329671802e-02 -7.3279299061393410e-02 7.8010388051092297e-02
22 3.3238064217578078e-02 -3.5092881119841469e-03 -5.5130499477600743e-03
23 -9.5777464822891442e-02 -1.6270801792262735e-01 6.6577987317167353e-02
24 -4.0548984401360968e-02 2.6001318442684454e-02 -2.8710977737247827e-02
25 -7.2079783062206065e-03 -1.1551923840558299e-02 -3.9390884564980888e-03
26 7.2339414723388659e-02 7.9165643731302623e-02 -1.2169899193410784e-01
27 -1.2311213312665015e-02 -4.3068558457195986e-03 -4.9048891116894693e-03
28 -5.1134183157394847e-03 -4.9743298126113068e-03 -9.7660849586977162e-03
29 5.0646655331378507e-02 -3.5366362323187593e-02 -1.5821692482521729e-02
30 6.8872718311900991e-02 -2.6404119526525157e-04 3.9973810783156115e-02
31 2.4365821183292665e-02 -3.5211120751695441e-02 -1.9277907381276990e-02
32 2.9047476664616767e-02 -6.6602395038829866e-03 -3.0527687942334758e-03
33 -2.3100260653796608e-02 7.7806328399545937e-03 -2.8840665484158416e-02
34 -1.4082353103513787e-02 -1.2664441856360465e-03 -8.7897343645731985e-03
35 -3.2837748489127933e-02 -2.8259033656815206e-02 -4.7109045095865137e-02
36 6.3043838001276449e-03 2.2728472774255215e-02 -5.6021644246419438e-03
37 2.6212204671836617e-02 -1.3029975577260208e-02 3.1750286315189745e-02
38 2.0139944452979241e-02 4.3293211501602355e-03 -6.1649221447719615e-03
39 -7.8960492305738997e-02 -3.6406244109795260e-02 1.2184493007508632e-01
40 -3.9632145471438944e-02 1.3535049580284708e-02 -1.1321798778509602e-02
41 -2.4388307313721387e-02 2.3366329734192243e-02 3.8928089351917827e-02
42 1.1996964485176551e-01 6.9851097891208414e-02 -6.7069887050515309e-02
43 -4.8078980444857013e-02 1.7214309658435833e-01 6.1467794064474092e-02
44 -9.0284549171230966e-02 1.1015441455508669e-01 5.0331470960535987e-02
45 -1.0780088763184573e-02 -1.1270483165899507e-02 2.2080179323856999e-02
46 -3.6837588895857240e-02 2.7230340603483512e-02 -3.4349458862779035e-02
47 1.9027883772889591e-03 -1.3952420713065544e-02 -8.4498460237889667e-04
48 -1.3553909303709658e-02 -3.5297267658357221e-03 1.3635814385361164e-02
49 -9.5576836243609284e-03 3.6186064167046728e-02 1.4320944955278008e-02
50 8.5217870416684924e-02 -1.0799325876848664e-01 1.0051859972722318e-01
51 -1.0113063844638476e-02 -2.0226413912563735e-02 -3.3234528235788117e-02
52 -4.6943693418830201e-02 6.5649633286230746e-02 1.9270389814905101e-02
53 -5.4874429583722370e-03 -1.4030397163369601e-02 8.5032803055005886e-03
54 -4.2513762116223583e-02 5.3134910658803179e-02 -1.5583625460937492e-02
55 2.2355623057473926e-03 1.5758808140961804e-02 3.0512038204829561e-02
56 2.6470325258791221e-04 -3.6590607960638329e-03 1.7588493428989670e-02
57 1.0304091828730023e-02 5.7001837939965440e-03 1.2617318628876883e-02
58 -1.0367740879426791e-01 -1.9270956079747929e-02 -7.4383753891338625e-02
59 -2.4598814101855909e-03 3.6232140177768373e-03 -4.7141806905685686e-03
60 -5.0750993133886020e-03 5.8880547694201937e-02 1.4800121801422891e-02
61 2.7189102310242325e-03 -5.1306885606950549e-02 7.3310325318400645e-03
62 1.1256471955447235e-01 -8.8211823429294622e-02 5.4263270982756615e-02
63 -3.2228752477428985e-02 3.6691295193452315e-02 -3.8707049961896577e-02
64 -1.5804472791823187e-02 -2.5887199342793252e-02 -2.1134763354069236e-01
...