Merge pull request #2590 from markc242/relres-update

New pair style lj/relres
This commit is contained in:
Axel Kohlmeyer
2021-03-08 19:53:03 -05:00
committed by GitHub
21 changed files with 77321 additions and 0 deletions

View File

@ -163,6 +163,7 @@ OPT.
* :doc:`lj/long/dipole/long <pair_dipole>`
* :doc:`lj/long/tip4p/long (o) <pair_lj_long>`
* :doc:`lj/mdf <pair_mdf>`
* :doc:`lj/relres (o) <pair_lj_relres>`
* :doc:`lj/sdk (gko) <pair_sdk>`
* :doc:`lj/sdk/coul/long (go) <pair_sdk>`
* :doc:`lj/sdk/coul/msm (o) <pair_sdk>`

291
doc/src/pair_lj_relres.rst Normal file
View File

@ -0,0 +1,291 @@
.. index:: pair_style lj/relres
.. index:: pair_style lj/relres/omp
pair_style lj/relres command
============================
Accelerator Variants: *lj/relres/omp*
Syntax
""""""
.. code-block:: LAMMPS
pair_style lj/relres Rsi Rso Rci Rco
* Rsi = inner switching cutoff between the fine-grained and coarse-grained potentials (distance units)
* Rso = outer switching cutoff between the fine-grained and coarse-grained potentials (distance units)
* Rci = inner cutoff beyond which the force smoothing for all interactions is applied (distance units)
* Rco = outer cutoff for all interactions (distance units)
Examples
""""""""
.. code-block:: LAMMPS
pair_style lj/relres 4.0 5.0 8.0 10.0
pair_coeff 1 1 0.5 1.0 1.5 1.1
pair_coeff 2 2 0.5 1.0 0.0 0.0 3.0 3.5 6.0 7.0
Description
"""""""""""
Pair style *lj/relres* computes a LJ interaction using the Relative
Resolution (RelRes) framework which applies a fine-grained (FG)
potential between near neighbors and a coarse-grained (CG) potential
between far neighbors :ref:`(Chaimovich1) <Chaimovich1>`. This approach
can improve the computational efficiency by almost an order of
magnitude, while maintaining the correct static and dynamic behavior of
a reference system :ref:`(Chaimovich2) <Chaimovich2>`.
.. math::
E = \left\{\begin{array}{lr}
4 \epsilon^{\scriptscriptstyle FG} \left[ \left(\frac{\sigma^{FG}}{r}\right)^{12} - \left(\frac{\sigma^{FG}}{r}\right)^6 \right]-\Gamma_{si}, & \quad\mathrm{if}\quad r< r_{si}, \\
\sum_{m=0}^{4} \gamma_{sm}\left(r-r_{si}\right)^m-\Gamma_{so} , & \quad\mathrm{if}\quad r_{si}\leq r< r_{so}, \\
4 \epsilon^{\scriptscriptstyle CG} \left[ \left(\frac{\sigma^{CG}}{r}\right)^{12} - \left(\frac{\sigma^{CG}}{r}\right)^6 \right]-\Gamma_c, & \quad\mathrm{if}\quad r_{so}\leq r<r_{ci}, \\
\sum_{m=0}^{4} \gamma_{cm}\left(r-r_{ci}\right)^m -\Gamma_c, & \quad\mathrm{if}\quad r_{ci}\leq r< r_{co}, \\
0, & \quad\mathrm{if}\quad r\geq r_{co}.\end{array}\right.
The FG parameters of the LJ potential (:math:`\epsilon^{FG}` and
:math:`\sigma^{FG}`) are applied up to the inner switching cutoff,
:math:`r_{si}`, while the CG parameters of the LJ potential
(:math:`\epsilon^{CG}` and :math:`\sigma^{CG}`) are applied beyond the
outer switching cutoff, :math:`r_{so}`. Between :math:`r_{si}` and
:math:`r_{so}` a polynomial smoothing function is applied so that the
force and its derivative are continuous between the FG and CG
potentials. An analogous smoothing function is applied between the
inner and outer cutoffs (:math:`r_{ci}` and :math:`r_{co}`).
The offsets :math:`\Gamma_{si}`, :math:`\Gamma_{so}` and
:math:`\Gamma_{c}` ensure the continuity of the energy over the entire
domain. The corresponding polynomial coefficients :math:`\gamma_{sm}`
and :math:`\gamma_{cm}`, as well as the offsets are automatically
computed by LAMMPS.
.. note::
Energy and force resulting from this methodology can be plotted via the
:doc:`pair_write <pair_write>` command.
The following coefficients must be defined for each pair of atom types
via the :doc:`pair_coeff <pair_coeff>` command as in the examples above,
or in the data file or restart files read by the :doc:`read_data
<read_data>` or :doc:`read_restart <read_restart>` commands, or by
mixing as will be described below:
* :math:`\epsilon^{FG}` (energy units)
* :math:`\sigma^{FG}` (distance units)
* :math:`\epsilon^{CG}` (energy units)
* :math:`\sigma^{CG}` (distance units)
Additional parameters can be defined to specify different
:math:`r_{si}`, :math:`r_{so}`, :math:`r_{ci}`, :math:`r_{co}` for
a particular set of atom types:
* :math:`r_{si}` (distance units)
* :math:`r_{so}` (distance units)
* :math:`r_{ci}` (distance units)
* :math:`r_{co}` (distance units)
These parameters are optional, and they are used to override the global
cutoffs as defined in the pair_style command. If not specified, the
global values for :math:`r_{si}`, :math:`r_{so}`, :math:`r_{ci}`, and
:math:`r_{co}` are used. If this override option is employed, all four
arguments must be specified.
----------
Here are some guidelines for using the pair_style *lj/relres* command.
In general, RelRes focuses on the speedup of pairwise interactions between
all LJ sites. Importantly, it works with any settings and flags (e.g.,
:doc:`special_bonds <special_bonds>` settings and :doc:`newton <newton>`
flags) that can be used in a molecular simulation with the
conventional LJ potential. In particular, all intramolecular topology
with its energetics (i.e., bonds, angles, etc.) remains unaltered.
At the most basic level in the RelRes framework, all sites are mapped into
clusters. Each cluster is just a collection of sites bonded together (the
bonds themselves are not part of the cluster). In general, a molecule may
be comprised of several clusters, and preferably, no two sites in a cluster
are separated by more than two bonds. There are two categories of sites in
RelRes: "hybrid" sites embody both FG and CG models, while "ordinary" sites
embody just FG characteristics with no CG features. A given cluster has
a single hybrid site (typically its central site) and several ordinary sites
(typically its peripheral sites). Notice that while clusters are necessary
for the RelRes parameterization (discussed below), they are not actually
defined in LAMMPS. Besides, the total number of sites in the cluster are
called the "mapping ratio", and this substantially impacts the computational
efficiency of RelRes: For a mapping ratio of 3, the efficiency factor is
around 4, and for a mapping ratio of 5, the efficiency factor is around 5
:ref:`(Chaimovich2) <Chaimovich2>`.
The flexibility of LAMMPS allows placing any values for the LJ
parameters in the input script. However, here are the optimal
recommendations for the RelRes parameters, which yield the correct
structural and thermal behavior in a system of interest
:ref:`(Chaimovich1) <Chaimovich1>`. One must first assign a complete set of
parameters for the FG interactions that are applicable to all atom types.
Regarding the parameters for the CG interactions, the rules rely on the
site category (if it is a hybrid or an ordinary site). For atom types of
ordinary sites, :math:`\epsilon^{CG}` must be set to 0 (zero) while the
specific value of :math:`\sigma^{CG}` is irrelevant. For atom types of
hybrid sites, the CG parameters should be generally calculated using the
following equations:
.. math::
\sigma_I^{CG}=\frac{\left((\sum_{\alpha\in A}\sqrt{\epsilon_\alpha^{FG}\left(\sigma_\alpha^{FG}\right)^{12}}\right)^{1/2}}{\left((\sum_{\alpha\in A}\sqrt{\epsilon_\alpha^{FG}\left(\sigma_\alpha^{FG}\right)^6}\right)^{1/3}}
\quad\mathrm{and}\quad
\epsilon_I^{CG}=\frac{\left((\sum_{\alpha\in A}\sqrt{\epsilon_\alpha^{FG}\left(\sigma_\alpha^{FG}\right)^6}\right)^4}{\left((\sum_{\alpha\in A}\sqrt{\epsilon_\alpha^{FG}\left(\sigma_\alpha^{FG}\right)^{12}}\right)^2}
where :math:`I` is an atom type of a hybrid site of a particular cluster
:math:`A`, and corresponding with this cluster, the summation proceeds over
all of its sites :math:`\alpha`. These equations are derived from the
monopole term in the underlying Taylor series, and they are indeed relevant
only if geometric mixing is applicable for the FG model; if this is not the
case, Ref. :ref:`(Chaimovich2) <Chaimovich2>` discusses the alternative
formula, and in such a situation, the pair_coeff command should be explicitly
used for all combinations of atom types :math:`I\;!=J`.
The switching distance (the midpoint between inner and outer switching
cutoffs) is another crucial factor in RelRes: decreasing it improves the
computational efficiency, yet if it is too small, the molecular simulations
may not capture the system behavior correctly. As a rule of thumb,
the switching distance should be approximately :math:`\,\sim\! 1.5\sigma`
:ref:`(Chaimovich1) <Chaimovich1>`; recommendations can be found in
Ref. :ref:`(Chaimovich2) <Chaimovich2>`.
Regarding the switching smoothing zone, :math:`\,\sim\!0.1\sigma` is
recommended; if desired, smoothing can be eliminated by setting
the inner switching cutoff, :math:`r_{si}`, equal to the outer
switching cutoff, :math:`r_{so}` (the same is true for the other cutoffs
:math:`r_{ci}` and :math:`r_{co}`).
----------
As an example, imagine that in your system, a molecule is comprised just
of one cluster such that one atom type (#1) is associated with
its hybrid site, and another atom type (#2) is associated with its ordinary
sites (in total, there are 2 atom types). If geometric mixing is applicable,
the following commands should be used:
.. code-block:: LAMMPS
pair_style lj/relres Rsi Rso Rci Rco
pair_coeff 1 1 epsilon_FG1 sigma_FG1 epsilon_CG1 sigma_CG1
pair_coeff 2 2 epsilon_FG2 sigma_FG2 0.0 0.0
pair_modify shift yes
In a more complex situation, there may be two distinct clusters in a system
(these two clusters may be on same molecule or on different molecules),
each with its own switching cutoffs. If there are still two atom types
in each cluster as in the earlier example, the commands should be:
.. code-block:: LAMMPS
pair_style lj/relres Rsi Rso Rci Rco
pair_coeff 1 1 epsilon_FG1 sigma_FG1 epsilon_CG1 sigma_CG1 Rsi1 Rso1 Rci Rco
pair_coeff 2 2 epsilon_FG2 sigma_FG2 0.0 0.0 Rsi1 Rso1 Rci Rco
pair_coeff 3 3 epsilon_FG3 sigma_FG3 epsilon_CG3 sigma_CG3
pair_coeff 4 4 epsilon_FG4 sigma_FG4 0.0 0.0
pair_modify shift yes
In this example, the switching cutoffs for the first cluster (atom types 1
and 2) is defined explicitly in the pair_coeff command which overrides the
global values, while the second cluster (atom types 3 and 4) uses the global
definition from the pair_style command. The emphasis here is that the atom
types that belong to a specific cluster should have the same switching/cutoff
arguments.
In the case that geometric mixing is not applicable, for simulating the
system from the previous example, we recommend using the following commands:
.. code-block:: LAMMPS
pair_style lj/relres Rsi Rso Rci Rco
pair_coeff 1 1 epsilon_FG1 sigma_FG1 epsilon_CG1 sigma_CG1 Rsi1 Rso1 Rci Rco
pair_coeff 1 2 epsilon_FG12 sigma_FG12 0.0 0.0 Rsi1 Rso1 Rci Rco
pair_coeff 1 3 epsilon_FG13 sigma_FG13 epsilon_CG13 sigma_CG13 Rsi13 Rso13 Rci Rco
pair_coeff 1 4 epsilon_FG14 sigma_FG14 0.0 0.0 Rsi13 Rso13 Rci Rco
pair_coeff 2 2 epsilon_FG2 sigma_FG2 0.0 0.0 Rsi1 Rso1 Rci Rco
pair_coeff 2 3 epsilon_FG23 sigma_FG23 0.0 0.0 Rsi13 Rso13 Rci Rco
pair_coeff 2 4 epsilon_FG24 sigma_FG24 0.0 0.0 Rsi13 Rso13 Rci Rco
pair_coeff 3 3 epsilon_FG3 sigma_FG3 epsilon_CG3 sigma_CG3
pair_coeff 3 4 epsilon_FG34 sigma_FG34 0.0 0.0
pair_coeff 4 4 epsilon_FG4 sigma_FG4 0.0 0.0
pair_modify shift yes
Notice that the CG parameters are mixed only for interactions between atom
types associated with hybrid sites, and that the cutoffs are
mixed on the cluster basis.
More examples can be found in the *examples/relres* folder.
----------
.. include:: accel_styles.rst
----------
Mixing, shift, table, tail correction, restart, rRESPA info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
For atom type pairs :math:`I,\:J` with :math:`I\;!=J`, the
:math:`\epsilon^{FG}`, :math:`\sigma^{FG}`, :math:`\epsilon^{CG}`,
:math:`\sigma^{CG}`, :math:`r_{si}`, :math:`r_{so}`, :math:`r_{ci}`,
and :math:`r_{co}` parameters for this pair style can be mixed, if
not defined explicitly. All parameters are mixed according to the
pair_modify mix option. The default mix value is *geometric*\ ,
and it is recommended to use with this *lj/relres* style. See the
"pair_modify" command for details.
This pair style supports the :doc:`pair_modify <pair_modify>` shift
option for the energy of the pair interaction. It is recommended to set
this option to *yes*\ . Otherwise, the offset :math:`\Gamma_{c}`
is set to zero. Constants :math:`\Gamma_{si}` and :math:`\Gamma_{so}` are
not impacted by this option.
The :doc:`pair_modify <pair_modify>` table option is not relevant
for this pair style.
This pair style does not support the :doc:`pair_modify <pair_modify>`
tail option for adding long-range tail corrections to energy and
pressure, since the energy of the pair interaction is smoothed to 0.0
at the cutoff.
This pair style writes its information to :doc:`binary restart files
<restart>`, so pair_style and pair_coeff commands do 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*\ , *outer* keywords.
----------
Restrictions
""""""""""""
none
Related commands
""""""""""""""""
:doc:`pair_coeff <pair_coeff>`
Default
"""""""
none
----------
.. _Chaimovich1:
**(Chaimovich1)** A. Chaimovich, C. Peter and K. Kremer, J. Chem. Phys. 143,
243107 (2015).
.. _Chaimovich2:
**(Chaimovich2)** M. Chaimovich and A. Chaimovich, J. Chem. Theory Comput. 17,
1045-1059 (2021).

View File

@ -227,6 +227,7 @@ accelerated styles exist.
* :doc:`lj/long/dipole/long <pair_dipole>` - long-range LJ and long-range point dipoles
* :doc:`lj/long/tip4p/long <pair_lj_long>` - long-range LJ and long-range Coulomb for TIP4P water
* :doc:`lj/mdf <pair_mdf>` - LJ potential with a taper function
* :doc:`lj/relres <pair_lj_relres>` - LJ using multiscale Relative Resolution (RelRes) methodology :ref:`(Chaimovich) <Chaimovich2>`.
* :doc:`lj/sdk <pair_sdk>` - LJ for SDK coarse-graining
* :doc:`lj/sdk/coul/long <pair_sdk>` - LJ for SDK coarse-graining with long-range Coulomb
* :doc:`lj/sdk/coul/msm <pair_sdk>` - LJ for SDK coarse-graining with long-range Coulomb via MSM

View File

@ -384,6 +384,7 @@ CGDNA
cgs
cgsdk
CGSDK
Chaimovich
Chalopin
Champaign
charmm
@ -1953,6 +1954,7 @@ Monaghan
Monaghans
monodisperse
monodispersity
monopole
monovalent
Montalenti
Montero
@ -2623,10 +2625,12 @@ Rappe
Ravelo
rc
Rc
Rci
Rcm
rcmax
Rcmx
Rcmy
Rco
Rcut
rcutfac
rdc
@ -2653,6 +2657,7 @@ Reinders
reinit
relaxbox
relink
relres
relTol
remappings
remd
@ -2765,6 +2770,8 @@ rozero
Rperp
Rr
rRESPA
Rsi
Rso
Rspace
rsq
rst

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

16
examples/relres/README Normal file
View File

@ -0,0 +1,16 @@
The input script in.22DMH.relres provides an example of a molecular
simulation using the Relative Resolution (RelRes) algorithm. In this
example, 2,2-Dimethylhexane is the molecule in focus. This script
uses the data file Data.22DMH.in.relres, which consists of 8000
molecules. It also generates the RelRes potential for the selected atom types.
The input script in.22DMH.respa demonstrates the use of the lj/relres pair
style with r-RESPA applying multi-timestepping between the appropriate atom
types (using a hybrid pair style configuration).
The input script in.22DMH.real demonstrates the use of the lj/relres pair
style with real units (the data file Data.22DMH.in.real). It performs
a set of molecular simulations with different switching distances. Finally,
it performs a molecular simulation with the lj/smooth pair style, allowing
comparison of the thermal characteristics and the running time between the
RelRes and the conventional approach.

View File

@ -0,0 +1,109 @@
# Example: use of lj/relres for simulation of 2,2-dimethylhexane: C3H7-C5H11
# with various Rso setting as well as run of reference system for time comparison (real units)
# The first run writes restart file that is used by all subsequent runs.
# Run relres with Rso=6.25
units real
atom_style molecular
boundary p p p
dielectric 1
special_bonds lj/coul 0.0 0.0 0.5
bond_style harmonic
angle_style harmonic
dihedral_style fourier
pair_style lj/relres 5.75 6.25 12.0 14.0
read_data Data.22DMH.in.real
pair_coeff 6 6 0.175 3.905 0.0 0.0
pair_coeff 4 4 0.118 3.905 0.0 0.0
pair_coeff 2 2 0.118 3.905 1.2218 3.905
pair_coeff 5 5 0.145 3.960 0.0 0.0
pair_coeff 3 3 0.118 3.905 0.0 0.0
pair_coeff 1 1 0.05 3.8 2.9128 3.9309
pair_modify shift yes
neighbor 2.0 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e+02
run 1000
write_restart restart.relres.real
# Run relres with Rso=7.25
clear
read_restart restart.relres.real
pair_style lj/relres 6.75 7.25 12.0 14.0
pair_coeff 6 6 0.175 3.905 0.0 0.0
pair_coeff 4 4 0.118 3.905 0.0 0.0
pair_coeff 2 2 0.118 3.905 1.2218 3.905
pair_coeff 5 5 0.145 3.960 0.0 0.0
pair_coeff 3 3 0.118 3.905 0.0 0.0
pair_coeff 1 1 0.05 3.8 2.9128 3.9309
pair_modify shift yes
neighbor 2.0 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e+02
run 1000
# Run relres with mixed Rso: 6.25 for C3H7 group and 7.25 for C5H11 group
clear
read_restart restart.relres.real
pair_style lj/relres 6.75 7.25 12.0 14.0
pair_coeff 6 6 0.175 3.905 0.0 0.0 5.75 6.25 12.0 14.0
pair_coeff 4 4 0.118 3.905 0.0 0.0 5.75 6.25 12.0 14.0
pair_coeff 2 2 0.118 3.905 1.2218 3.905 5.75 6.25 12.0 14.0
pair_coeff 5 5 0.145 3.960 0.0 0.0
pair_coeff 3 3 0.118 3.905 0.0 0.0
pair_coeff 1 1 0.05 3.8 2.9128 3.9309
pair_modify shift yes
neighbor 2.0 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e+02
run 1000
# Run reference system with lj/smooth
clear
read_restart restart.relres.real
pair_style lj/smooth 12.0 14.0
pair_coeff 6 6 0.175 3.905
pair_coeff 4 4 0.118 3.905
pair_coeff 2 2 0.118 3.905
pair_coeff 5 5 0.145 3.960
pair_coeff 3 3 0.118 3.905
pair_coeff 1 1 0.05 3.8
pair_modify shift yes
neighbor 2.0 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e+02
run 1000

View File

@ -0,0 +1,34 @@
# Example: use of lj/relres for simulation of 2,2-dimethylhexane: C3H7-C5H11
# with with mixed Rso: 0.625e-9 for C3H7 group and 0.725e-9 for C5H11 group (si units)
units si
atom_style molecular
boundary p p p
dielectric 1
special_bonds lj/coul 0.0 0.0 0.5
pair_style lj/relres 0.675e-9 .725e-9 1.2e-9 1.4e-9
bond_style harmonic
angle_style harmonic
dihedral_style fourier
read_data Data.22DMH.in.relres
pair_coeff 6 6 1.21585e-21 0.3905e-9 0.0 0.0 0.575e-9 0.625e-9 1.2e-9 1.4e-9
pair_coeff 4 4 0.819828e-21 0.3905e-9 0.0 0.0 0.575e-9 0.625e-9 1.2e-9 1.4e-9
pair_coeff 2 2 0.819828e-21 0.3905e-9 8.48872E-21 0.3905E-9 0.575e-9 0.625e-9 1.2e-9 1.4e-9
pair_coeff 5 5 1.00742E-21 0.396E-9 0.0 0.0
pair_coeff 3 3 0.819828e-21 0.3905e-9 0.0 0.0
pair_coeff 1 1 0.347385E-21 0.38E-9 20.2372E-21 0.39309E-9
pair_modify shift yes
neighbor 2.0e-10 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0e-15
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e-13
run 1000
#write_data Data.22DMH.out.relres pair ij
#pair_write 1 1 1201 r 0.2e-9 1.4e-9 potential.relres LJ11
#pair_write 2 2 1201 r 0.2e-9 1.4e-9 potential.relres LJ22
#pair_write 1 2 1201 r 0.2e-9 1.4e-9 potential.relres LJ12

View File

@ -0,0 +1,49 @@
units si
atom_style molecular
boundary p p p
dielectric 1
special_bonds lj/coul 0.0 0.0 0.5
pair_style hybrid lj/relres 0.675e-9 0.725e-9 1.2e-9 1.4e-9 lj/relres 0.675e-9 .725e-9 1.2e-9 1.4e-9
bond_style harmonic
angle_style harmonic
dihedral_style fourier
read_data Data.22DMH.in.relres
pair_coeff 1 1 lj/relres 1 3.47385e-22 3.8e-10 2.02372e-20 3.9309e-10 6.75e-10 7.25e-10 1.2e-09 1.4e-09
pair_coeff 1 2 lj/relres 1 5.33663e-22 3.85214e-10 1.31068e-20 3.91793e-10 6.22997e-10 6.73146e-10 1.2e-09 1.4e-09
pair_coeff 1 3 lj/relres 2 5.33663e-22 3.85214e-10 0 3.91793e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 1 4 lj/relres 2 5.33663e-22 3.85214e-10 0 3.91793e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 1 5 lj/relres 2 5.91576e-22 3.87918e-10 0 3.94542e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 1 6 lj/relres 2 6.49898e-22 3.85214e-10 0 3.91793e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 2 2 lj/relres 1 8.19828e-22 3.905e-10 8.48872e-21 3.905e-10 5.75e-10 6.25e-10 1.2e-09 1.4e-09
pair_coeff 2 3 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 2 4 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_coeff 2 5 lj/relres 2 9.08797e-22 3.9324e-10 0 3.9324e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 2 6 lj/relres 2 9.98393e-22 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_coeff 3 3 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 3 4 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 3 5 lj/relres 2 9.08797e-22 3.9324e-10 0 3.9324e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 3 6 lj/relres 2 9.98393e-22 3.905e-10 0 3.905e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 4 4 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_coeff 4 5 lj/relres 2 9.08797e-22 3.9324e-10 0 3.9324e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 4 6 lj/relres 2 9.98393e-22 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_coeff 5 5 lj/relres 2 1.00742e-21 3.96e-10 0 3.96e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 5 6 lj/relres 2 1.10674e-21 3.9324e-10 0 3.9324e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 6 6 lj/relres 2 1.21585e-21 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_modify shift yes
neighbor 2.0e-10 bin
neigh_modify every 2 delay 4 check yes
timestep 2.0e-15
thermo 50
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e-13
run_style respa 2 2 hybrid 1 2
run 500
#write_data Data.22DMH.out.relres pair ij
#pair_write 1 1 1201 r 0.2e-9 1.4e-9 potential.relres LJ11
#pair_write 2 2 1201 r 0.2e-9 1.4e-9 potential.relres LJ22
#pair_write 1 2 1201 r 0.2e-9 1.4e-9 potential.relres LJ12

View File

@ -0,0 +1,456 @@
LAMMPS (10 Feb 2021)
using 1 OpenMP thread(s) per MPI task
# Example: use of lj/relres for simulation of 2,2-dimethylhexane: C3H7-C5H11
# with various Rso setting as well as run of reference system for time comparison (real units)
# The first run writes restart file that is used by all subsequent runs.
# Run relres with Rso=6.25
units real
atom_style molecular
boundary p p p
dielectric 1
special_bonds lj/coul 0.0 0.0 0.5
bond_style harmonic
angle_style harmonic
dihedral_style fourier
pair_style lj/relres 5.75 6.25 12.0 14.0
read_data Data.22DMH.in.real
Reading data file ...
orthogonal box = (3.7421629 3.7421629 3.7421629) to (68.257837 68.257837 68.257837)
1 by 1 by 1 MPI processor grid
reading atoms ...
8000 atoms
reading velocities ...
8000 velocities
scanning bonds ...
4 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
3 = max dihedrals/atom
reading bonds ...
7000 bonds
reading angles ...
9000 angles
reading dihedrals ...
5000 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0.5
special bond factors coul: 0 0 0.5
4 = max # of 1-2 neighbors
4 = max # of 1-3 neighbors
5 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.003 seconds
read_data CPU = 0.036 seconds
pair_coeff 6 6 0.175 3.905 0.0 0.0
pair_coeff 4 4 0.118 3.905 0.0 0.0
pair_coeff 2 2 0.118 3.905 1.2218 3.905
pair_coeff 5 5 0.145 3.960 0.0 0.0
pair_coeff 3 3 0.118 3.905 0.0 0.0
pair_coeff 1 1 0.05 3.8 2.9128 3.9309
pair_modify shift yes
neighbor 2.0 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e+02
run 1000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Pair style lj/relres: doi:10.1021/acs.jctc.0c01003
@Article{Chaimovich1,
author = {A. Chaimovich, C. Peter, K. Kremer},
title = {Relative resolution: A hybrid formalism for fluid mixtures},
journal = {J.~Chem.~Phys.},
year = 2015,
volume = 143,
pages = {243107}
@Article{Chaimovich2,
author = {M. Chaimovich, A. Chaimovich},
title = {Relative Resolution: A Computationally Efficient Implementation in LAMMPS},
journal = {J.~Chem.~Theory~Comput.},
year = 2021,
volume = 17,
pages = {1045--1059}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Neighbor list info ...
update every 2 steps, delay 4 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 16
ghost atom cutoff = 16
binsize = 8, bins = 9 9 9
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/relres, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 20.01 | 20.01 | 20.01 Mbytes
Step Temp Press PotEng KinEng TotEng E_pair E_mol Volume
0 286.85653 -328.51562 3703.8924 6839.6636 10543.556 -4875.3137 8579.2062 268531.8
100 293.231 -55.62132 3520.4874 6991.6533 10512.141 -4797.2633 8317.7507 268531.8
200 292.73476 332.40528 3456.3029 6979.8212 10436.124 -4914.7261 8371.0291 268531.8
300 292.56511 221.98408 3380.7472 6975.7762 10356.523 -4936.5552 8317.3024 268531.8
400 288.42948 117.72433 3428.113 6877.1681 10305.281 -4887.6852 8315.7982 268531.8
500 289.20503 -238.73381 3373.758 6895.6601 10269.418 -4947.3214 8321.0795 268531.8
600 292.02137 74.370782 3263.4324 6962.8115 10226.244 -4948.3906 8211.823 268531.8
700 290.20603 475.24398 3260.0754 6919.5273 10179.603 -4931.4093 8191.4846 268531.8
800 293.12504 175.54324 3156.6048 6989.1268 10145.732 -5006.7161 8163.3209 268531.8
900 287.78433 63.785361 3251.5393 6861.7855 10113.325 -5029.094 8280.6333 268531.8
1000 290.11974 -101.34839 3183.4817 6917.47 10100.952 -5002.9413 8186.423 268531.8
Loop time of 6.05162 on 1 procs for 1000 steps with 8000 atoms
Performance: 14.277 ns/day, 1.681 hours/ns, 165.245 timesteps/s
99.4% 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.7637 | 4.7637 | 4.7637 | 0.0 | 78.72
Bond | 0.693 | 0.693 | 0.693 | 0.0 | 11.45
Neigh | 0.41311 | 0.41311 | 0.41311 | 0.0 | 6.83
Comm | 0.070843 | 0.070843 | 0.070843 | 0.0 | 1.17
Output | 0.00045886 | 0.00045886 | 0.00045886 | 0.0 | 0.01
Modify | 0.084814 | 0.084814 | 0.084814 | 0.0 | 1.40
Other | | 0.02564 | | | 0.42
Nlocal: 8000.00 ave 8000 max 8000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 18934.0 ave 18934 max 18934 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 371920.0 ave 371920 max 371920 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 371920
Ave neighs/atom = 46.490000
Ave special neighs/atom = 5.2500000
Neighbor list builds = 13
Dangerous builds = 0
write_restart restart.relres.real
System init for write_restart ...
# Run relres with Rso=7.25
clear
using 1 OpenMP thread(s) per MPI task
read_restart restart.relres.real
Reading restart file ...
restart file = 10 Feb 2021, LAMMPS = 10 Feb 2021
restoring atom style molecular from restart
orthogonal box = (3.7421629 3.7421629 3.7421629) to (68.257837 68.257837 68.257837)
1 by 1 by 1 MPI processor grid
restoring pair style lj/relres from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style fourier from restart
8000 atoms
7000 bonds
9000 angles
5000 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0.5
special bond factors coul: 0 0 0.5
4 = max # of 1-2 neighbors
4 = max # of 1-3 neighbors
5 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.002 seconds
read_restart CPU = 0.004 seconds
pair_style lj/relres 6.75 7.25 12.0 14.0
pair_coeff 6 6 0.175 3.905 0.0 0.0
pair_coeff 4 4 0.118 3.905 0.0 0.0
pair_coeff 2 2 0.118 3.905 1.2218 3.905
pair_coeff 5 5 0.145 3.960 0.0 0.0
pair_coeff 3 3 0.118 3.905 0.0 0.0
pair_coeff 1 1 0.05 3.8 2.9128 3.9309
pair_modify shift yes
neighbor 2.0 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e+02
Resetting global fix info from restart file:
fix style: nvt, fix ID: 2
run 1000
All restart file global fix info was re-assigned
Neighbor list info ...
update every 2 steps, delay 4 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 16
ghost atom cutoff = 16
binsize = 8, bins = 9 9 9
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/relres, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 20.51 | 20.51 | 20.51 Mbytes
Step Temp Press PotEng KinEng TotEng E_pair E_mol Volume
1000 290.11974 21.86402 3334.7257 6917.47 10252.196 -4851.6973 8186.423 268531.8
1100 289.71937 460.00291 3365.0978 6907.9236 10273.021 -4881.5513 8246.6491 268531.8
1200 293.0828 194.76483 3348.6267 6988.1197 10336.746 -4743.4894 8092.1162 268531.8
1300 291.27785 153.93026 3496.2858 6945.0834 10441.369 -4753.3325 8249.6183 268531.8
1400 292.69435 -51.690836 3516.6743 6978.8575 10495.532 -4774.0701 8290.7445 268531.8
1500 290.0279 149.43706 3578.8283 6915.2801 10494.108 -4815.5857 8394.414 268531.8
1600 292.89473 -109.05125 3487.6652 6983.6354 10471.301 -4839.1407 8326.8059 268531.8
1700 290.99802 -146.06465 3496.48 6938.4111 10434.891 -4868.0031 8364.4831 268531.8
1800 286.48455 -45.580207 3550.2611 6830.7943 10381.055 -4766.3336 8316.5947 268531.8
1900 287.0735 -157.60878 3488.4248 6844.8368 10333.262 -4853.6992 8342.124 268531.8
2000 287.38046 -429.32757 3435.8336 6852.1558 10287.989 -4878.4345 8314.2681 268531.8
Loop time of 7.46943 on 1 procs for 1000 steps with 8000 atoms
Performance: 11.567 ns/day, 2.075 hours/ns, 133.879 timesteps/s
99.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 | 6.1145 | 6.1145 | 6.1145 | 0.0 | 81.86
Bond | 0.71392 | 0.71392 | 0.71392 | 0.0 | 9.56
Neigh | 0.45677 | 0.45677 | 0.45677 | 0.0 | 6.12
Comm | 0.072404 | 0.072404 | 0.072404 | 0.0 | 0.97
Output | 0.00036481 | 0.00036481 | 0.00036481 | 0.0 | 0.00
Modify | 0.085956 | 0.085956 | 0.085956 | 0.0 | 1.15
Other | | 0.02552 | | | 0.34
Nlocal: 8000.00 ave 8000 max 8000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 18846.0 ave 18846 max 18846 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 475557.0 ave 475557 max 475557 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 475557
Ave neighs/atom = 59.444625
Ave special neighs/atom = 5.2500000
Neighbor list builds = 14
Dangerous builds = 0
# Run relres with mixed Rso: 6.25 for C3H7 group and 7.25 for C5H11 group
clear
using 1 OpenMP thread(s) per MPI task
read_restart restart.relres.real
Reading restart file ...
restart file = 10 Feb 2021, LAMMPS = 10 Feb 2021
restoring atom style molecular from restart
orthogonal box = (3.7421629 3.7421629 3.7421629) to (68.257837 68.257837 68.257837)
1 by 1 by 1 MPI processor grid
restoring pair style lj/relres from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style fourier from restart
8000 atoms
7000 bonds
9000 angles
5000 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0.5
special bond factors coul: 0 0 0.5
4 = max # of 1-2 neighbors
4 = max # of 1-3 neighbors
5 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.002 seconds
read_restart CPU = 0.004 seconds
pair_style lj/relres 6.75 7.25 12.0 14.0
pair_coeff 6 6 0.175 3.905 0.0 0.0 5.75 6.25 12.0 14.0
pair_coeff 4 4 0.118 3.905 0.0 0.0 5.75 6.25 12.0 14.0
pair_coeff 2 2 0.118 3.905 1.2218 3.905 5.75 6.25 12.0 14.0
pair_coeff 5 5 0.145 3.960 0.0 0.0
pair_coeff 3 3 0.118 3.905 0.0 0.0
pair_coeff 1 1 0.05 3.8 2.9128 3.9309
pair_modify shift yes
neighbor 2.0 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e+02
Resetting global fix info from restart file:
fix style: nvt, fix ID: 2
run 1000
All restart file global fix info was re-assigned
Neighbor list info ...
update every 2 steps, delay 4 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 16
ghost atom cutoff = 16
binsize = 8, bins = 9 9 9
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/relres, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 20.51 | 20.51 | 20.51 Mbytes
Step Temp Press PotEng KinEng TotEng E_pair E_mol Volume
1000 290.11974 54.754001 3314.0966 6917.47 10231.567 -4872.3264 8186.423 268531.8
1100 289.78217 480.37221 3342.8765 6909.4211 10252.298 -4900.7266 8243.6032 268531.8
1200 293.25523 188.46596 3322.6257 6992.2308 10314.857 -4771.3485 8093.9742 268531.8
1300 291.59734 146.50303 3465.2113 6952.701 10417.912 -4782.9861 8248.1974 268531.8
1400 292.71873 -40.372074 3491.747 6979.4389 10471.186 -4790.7124 8282.4594 268531.8
1500 290.60378 120.25863 3539.5538 6929.0112 10468.565 -4849.9813 8389.5351 268531.8
1600 293.21218 -143.75501 3452.9516 6991.2046 10444.156 -4885.0192 8337.9708 268531.8
1700 291.02865 -207.34728 3465.4131 6939.1416 10404.555 -4887.363 8352.7761 268531.8
1800 286.00091 -91.017961 3530.3422 6819.2625 10349.605 -4807.6624 8338.0046 268531.8
1900 286.3006 -145.399 3485.1695 6826.4082 10311.578 -4848.263 8333.4325 268531.8
2000 288.43931 -469.99712 3409.0906 6877.4025 10286.493 -4905.9002 8314.9907 268531.8
Loop time of 6.78592 on 1 procs for 1000 steps with 8000 atoms
Performance: 12.732 ns/day, 1.885 hours/ns, 147.364 timesteps/s
99.4% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 5.4637 | 5.4637 | 5.4637 | 0.0 | 80.52
Bond | 0.68994 | 0.68994 | 0.68994 | 0.0 | 10.17
Neigh | 0.45166 | 0.45166 | 0.45166 | 0.0 | 6.66
Comm | 0.070376 | 0.070376 | 0.070376 | 0.0 | 1.04
Output | 0.000405 | 0.000405 | 0.000405 | 0.0 | 0.01
Modify | 0.084545 | 0.084545 | 0.084545 | 0.0 | 1.25
Other | | 0.02527 | | | 0.37
Nlocal: 8000.00 ave 8000 max 8000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 18820.0 ave 18820 max 18820 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 434269.0 ave 434269 max 434269 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 434269
Ave neighs/atom = 54.283625
Ave special neighs/atom = 5.2500000
Neighbor list builds = 14
Dangerous builds = 0
# Run reference system with lj/smooth
clear
using 1 OpenMP thread(s) per MPI task
read_restart restart.relres.real
Reading restart file ...
restart file = 10 Feb 2021, LAMMPS = 10 Feb 2021
restoring atom style molecular from restart
orthogonal box = (3.7421629 3.7421629 3.7421629) to (68.257837 68.257837 68.257837)
1 by 1 by 1 MPI processor grid
restoring pair style lj/relres from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style fourier from restart
8000 atoms
7000 bonds
9000 angles
5000 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0.5
special bond factors coul: 0 0 0.5
4 = max # of 1-2 neighbors
4 = max # of 1-3 neighbors
5 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.002 seconds
read_restart CPU = 0.004 seconds
pair_style lj/smooth 12.0 14.0
pair_coeff 6 6 0.175 3.905
pair_coeff 4 4 0.118 3.905
pair_coeff 2 2 0.118 3.905
pair_coeff 5 5 0.145 3.960
pair_coeff 3 3 0.118 3.905
pair_coeff 1 1 0.05 3.8
pair_modify shift yes
neighbor 2.0 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e+02
Resetting global fix info from restart file:
fix style: nvt, fix ID: 2
run 1000
All restart file global fix info was re-assigned
Neighbor list info ...
update every 2 steps, delay 4 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 16
ghost atom cutoff = 16
binsize = 8, bins = 9 9 9
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/smooth, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 26.62 | 26.62 | 26.62 Mbytes
Step Temp Press PotEng KinEng TotEng E_pair E_mol Volume
1000 290.11974 -80.648214 3258.0256 6917.47 10175.496 -4928.3973 8186.423 268531.8
1100 289.70919 358.20314 3288.412 6907.6811 10196.093 -4959.5166 8247.9285 268531.8
1200 292.84488 96.692992 3277.1296 6982.4468 10259.576 -4818.7374 8095.867 268531.8
1300 291.07262 65.629153 3425.4662 6940.1899 10365.656 -4828.0862 8253.5524 268531.8
1400 292.39722 -113.07286 3448.8088 6971.773 10420.582 -4841.3586 8290.1674 268531.8
1500 289.80998 90.176596 3510.6526 6910.0843 10420.737 -4884.6145 8395.2671 268531.8
1600 292.48452 -180.26543 3426.6967 6973.8544 10400.551 -4903.46 8330.1567 268531.8
1700 291.32152 -220.54923 3421.802 6946.1246 10367.927 -4946.101 8367.9031 268531.8
1800 286.77292 -101.26406 3475.3166 6837.6701 10312.987 -4830.565 8305.8816 268531.8
1900 286.6849 -161.65289 3428.0457 6835.5713 10263.617 -4909.5924 8337.6381 268531.8
2000 287.3785 -477.01298 3367.9719 6852.1091 10220.081 -4962.7001 8330.6719 268531.8
Loop time of 25.7415 on 1 procs for 1000 steps with 8000 atoms
Performance: 3.356 ns/day, 7.150 hours/ns, 38.848 timesteps/s
99.5% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 24.253 | 24.253 | 24.253 | 0.0 | 94.22
Bond | 0.72224 | 0.72224 | 0.72224 | 0.0 | 2.81
Neigh | 0.57723 | 0.57723 | 0.57723 | 0.0 | 2.24
Comm | 0.076624 | 0.076624 | 0.076624 | 0.0 | 0.30
Output | 0.00035693 | 0.00035693 | 0.00035693 | 0.0 | 0.00
Modify | 0.087599 | 0.087599 | 0.087599 | 0.0 | 0.34
Other | | 0.02479 | | | 0.10
Nlocal: 8000.00 ave 8000 max 8000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 18804.0 ave 18804 max 18804 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 2.02600e+06 ave 2.026e+06 max 2.026e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 2026005
Ave neighs/atom = 253.25063
Ave special neighs/atom = 5.2500000
Neighbor list builds = 13
Dangerous builds = 0
Total wall time: 0:00:46

View File

@ -0,0 +1,456 @@
LAMMPS (10 Feb 2021)
using 1 OpenMP thread(s) per MPI task
# Example: use of lj/relres for simulation of 2,2-dimethylhexane: C3H7-C5H11
# with various Rso setting as well as run of reference system for time comparison (real units)
# The first run writes restart file that is used by all subsequent runs.
# Run relres with Rso=6.25
units real
atom_style molecular
boundary p p p
dielectric 1
special_bonds lj/coul 0.0 0.0 0.5
bond_style harmonic
angle_style harmonic
dihedral_style fourier
pair_style lj/relres 5.75 6.25 12.0 14.0
read_data Data.22DMH.in.real
Reading data file ...
orthogonal box = (3.7421629 3.7421629 3.7421629) to (68.257837 68.257837 68.257837)
2 by 1 by 2 MPI processor grid
reading atoms ...
8000 atoms
reading velocities ...
8000 velocities
scanning bonds ...
4 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
3 = max dihedrals/atom
reading bonds ...
7000 bonds
reading angles ...
9000 angles
reading dihedrals ...
5000 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0.5
special bond factors coul: 0 0 0.5
4 = max # of 1-2 neighbors
4 = max # of 1-3 neighbors
5 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.035 seconds
pair_coeff 6 6 0.175 3.905 0.0 0.0
pair_coeff 4 4 0.118 3.905 0.0 0.0
pair_coeff 2 2 0.118 3.905 1.2218 3.905
pair_coeff 5 5 0.145 3.960 0.0 0.0
pair_coeff 3 3 0.118 3.905 0.0 0.0
pair_coeff 1 1 0.05 3.8 2.9128 3.9309
pair_modify shift yes
neighbor 2.0 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e+02
run 1000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Pair style lj/relres: doi:10.1021/acs.jctc.0c01003
@Article{Chaimovich1,
author = {A. Chaimovich, C. Peter, K. Kremer},
title = {Relative resolution: A hybrid formalism for fluid mixtures},
journal = {J.~Chem.~Phys.},
year = 2015,
volume = 143,
pages = {243107}
@Article{Chaimovich2,
author = {M. Chaimovich, A. Chaimovich},
title = {Relative Resolution: A Computationally Efficient Implementation in LAMMPS},
journal = {J.~Chem.~Theory~Comput.},
year = 2021,
volume = 17,
pages = {1045--1059}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Neighbor list info ...
update every 2 steps, delay 4 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 16
ghost atom cutoff = 16
binsize = 8, bins = 9 9 9
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/relres, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 9.953 | 9.953 | 9.953 Mbytes
Step Temp Press PotEng KinEng TotEng E_pair E_mol Volume
0 286.85653 -328.51562 3703.8924 6839.6636 10543.556 -4875.3137 8579.2062 268531.8
100 293.231 -55.62132 3520.4874 6991.6533 10512.141 -4797.2633 8317.7507 268531.8
200 292.73476 332.40528 3456.3029 6979.8212 10436.124 -4914.7261 8371.0291 268531.8
300 292.56511 221.98408 3380.7472 6975.7762 10356.523 -4936.5552 8317.3024 268531.8
400 288.42948 117.72433 3428.113 6877.1681 10305.281 -4887.6852 8315.7982 268531.8
500 289.20503 -238.73381 3373.758 6895.6601 10269.418 -4947.3214 8321.0795 268531.8
600 292.02137 74.370782 3263.4324 6962.8115 10226.244 -4948.3906 8211.823 268531.8
700 290.20603 475.24398 3260.0754 6919.5273 10179.603 -4931.4093 8191.4846 268531.8
800 293.12504 175.54324 3156.6048 6989.1268 10145.732 -5006.7161 8163.3209 268531.8
900 287.78433 63.785361 3251.5393 6861.7855 10113.325 -5029.094 8280.6333 268531.8
1000 290.11974 -101.34839 3183.4817 6917.47 10100.952 -5002.9413 8186.423 268531.8
Loop time of 2.12445 on 4 procs for 1000 steps with 8000 atoms
Performance: 40.669 ns/day, 0.590 hours/ns, 470.709 timesteps/s
91.7% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.2517 | 1.3228 | 1.4636 | 7.2 | 62.27
Bond | 0.18406 | 0.19356 | 0.20925 | 2.1 | 9.11
Neigh | 0.12468 | 0.125 | 0.12534 | 0.1 | 5.88
Comm | 0.25384 | 0.40233 | 0.4919 | 14.1 | 18.94
Output | 0.00034203 | 0.00061893 | 0.00088527 | 0.0 | 0.03
Modify | 0.052326 | 0.059507 | 0.066224 | 2.6 | 2.80
Other | | 0.02066 | | | 0.97
Nlocal: 2000.00 ave 2031 max 1964 min
Histogram: 1 0 0 0 1 0 0 1 0 1
Nghost: 9898.50 ave 9926 max 9869 min
Histogram: 1 0 0 0 1 0 1 0 0 1
Neighs: 92980.0 ave 94819 max 90517 min
Histogram: 1 0 0 1 0 0 0 0 0 2
Total # of neighbors = 371920
Ave neighs/atom = 46.490000
Ave special neighs/atom = 5.2500000
Neighbor list builds = 13
Dangerous builds = 0
write_restart restart.relres.real
System init for write_restart ...
# Run relres with Rso=7.25
clear
using 1 OpenMP thread(s) per MPI task
read_restart restart.relres.real
Reading restart file ...
restart file = 10 Feb 2021, LAMMPS = 10 Feb 2021
restoring atom style molecular from restart
orthogonal box = (3.7421629 3.7421629 3.7421629) to (68.257837 68.257837 68.257837)
2 by 1 by 2 MPI processor grid
restoring pair style lj/relres from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style fourier from restart
8000 atoms
7000 bonds
9000 angles
5000 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0.5
special bond factors coul: 0 0 0.5
4 = max # of 1-2 neighbors
4 = max # of 1-3 neighbors
5 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.002 seconds
read_restart CPU = 0.005 seconds
pair_style lj/relres 6.75 7.25 12.0 14.0
pair_coeff 6 6 0.175 3.905 0.0 0.0
pair_coeff 4 4 0.118 3.905 0.0 0.0
pair_coeff 2 2 0.118 3.905 1.2218 3.905
pair_coeff 5 5 0.145 3.960 0.0 0.0
pair_coeff 3 3 0.118 3.905 0.0 0.0
pair_coeff 1 1 0.05 3.8 2.9128 3.9309
pair_modify shift yes
neighbor 2.0 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e+02
Resetting global fix info from restart file:
fix style: nvt, fix ID: 2
run 1000
All restart file global fix info was re-assigned
Neighbor list info ...
update every 2 steps, delay 4 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 16
ghost atom cutoff = 16
binsize = 8, bins = 9 9 9
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/relres, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 10.34 | 10.34 | 10.34 Mbytes
Step Temp Press PotEng KinEng TotEng E_pair E_mol Volume
1000 290.11974 21.86402 3334.7257 6917.47 10252.196 -4851.6973 8186.423 268531.8
1100 289.71937 460.00291 3365.0978 6907.9236 10273.021 -4881.5513 8246.6491 268531.8
1200 293.0828 194.76483 3348.6267 6988.1197 10336.746 -4743.4894 8092.1162 268531.8
1300 291.27785 153.93026 3496.2858 6945.0834 10441.369 -4753.3325 8249.6183 268531.8
1400 292.69435 -51.690836 3516.6743 6978.8575 10495.532 -4774.0701 8290.7445 268531.8
1500 290.0279 149.43706 3578.8283 6915.2801 10494.108 -4815.5857 8394.414 268531.8
1600 292.89473 -109.05125 3487.6652 6983.6354 10471.301 -4839.1407 8326.8059 268531.8
1700 290.99802 -146.06465 3496.48 6938.4111 10434.891 -4868.0031 8364.4831 268531.8
1800 286.48455 -45.580207 3550.2611 6830.7943 10381.055 -4766.3336 8316.5947 268531.8
1900 287.0735 -157.60878 3488.4248 6844.8368 10333.262 -4853.6992 8342.124 268531.8
2000 287.38046 -429.32757 3435.8336 6852.1558 10287.989 -4878.4345 8314.2681 268531.8
Loop time of 2.6513 on 4 procs for 1000 steps with 8000 atoms
Performance: 32.588 ns/day, 0.736 hours/ns, 377.174 timesteps/s
89.9% 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.5783 | 1.6371 | 1.7079 | 3.7 | 61.75
Bond | 0.18196 | 0.19132 | 0.20276 | 1.7 | 7.22
Neigh | 0.14093 | 0.14128 | 0.14156 | 0.1 | 5.33
Comm | 0.50333 | 0.5809 | 0.64199 | 6.6 | 21.91
Output | 0.00023452 | 0.00040924 | 0.00063279 | 0.0 | 0.02
Modify | 0.066524 | 0.076747 | 0.084331 | 2.5 | 2.89
Other | | 0.02354 | | | 0.89
Nlocal: 2000.00 ave 2009 max 1981 min
Histogram: 1 0 0 0 0 0 0 1 0 2
Nghost: 9892.50 ave 9923 max 9868 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Neighs: 118889.0 ave 120387 max 117552 min
Histogram: 1 0 0 1 0 1 0 0 0 1
Total # of neighbors = 475557
Ave neighs/atom = 59.444625
Ave special neighs/atom = 5.2500000
Neighbor list builds = 14
Dangerous builds = 0
# Run relres with mixed Rso: 6.25 for C3H7 group and 7.25 for C5H11 group
clear
using 1 OpenMP thread(s) per MPI task
read_restart restart.relres.real
Reading restart file ...
restart file = 10 Feb 2021, LAMMPS = 10 Feb 2021
restoring atom style molecular from restart
orthogonal box = (3.7421629 3.7421629 3.7421629) to (68.257837 68.257837 68.257837)
2 by 1 by 2 MPI processor grid
restoring pair style lj/relres from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style fourier from restart
8000 atoms
7000 bonds
9000 angles
5000 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0.5
special bond factors coul: 0 0 0.5
4 = max # of 1-2 neighbors
4 = max # of 1-3 neighbors
5 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_restart CPU = 0.004 seconds
pair_style lj/relres 6.75 7.25 12.0 14.0
pair_coeff 6 6 0.175 3.905 0.0 0.0 5.75 6.25 12.0 14.0
pair_coeff 4 4 0.118 3.905 0.0 0.0 5.75 6.25 12.0 14.0
pair_coeff 2 2 0.118 3.905 1.2218 3.905 5.75 6.25 12.0 14.0
pair_coeff 5 5 0.145 3.960 0.0 0.0
pair_coeff 3 3 0.118 3.905 0.0 0.0
pair_coeff 1 1 0.05 3.8 2.9128 3.9309
pair_modify shift yes
neighbor 2.0 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e+02
Resetting global fix info from restart file:
fix style: nvt, fix ID: 2
run 1000
All restart file global fix info was re-assigned
Neighbor list info ...
update every 2 steps, delay 4 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 16
ghost atom cutoff = 16
binsize = 8, bins = 9 9 9
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/relres, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 10.34 | 10.34 | 10.34 Mbytes
Step Temp Press PotEng KinEng TotEng E_pair E_mol Volume
1000 290.11974 54.754001 3314.0966 6917.47 10231.567 -4872.3264 8186.423 268531.8
1100 289.78217 480.37221 3342.8765 6909.4211 10252.298 -4900.7266 8243.6032 268531.8
1200 293.25523 188.46596 3322.6257 6992.2308 10314.857 -4771.3485 8093.9742 268531.8
1300 291.59734 146.50303 3465.2113 6952.701 10417.912 -4782.9861 8248.1974 268531.8
1400 292.71873 -40.372074 3491.747 6979.4389 10471.186 -4790.7124 8282.4594 268531.8
1500 290.60378 120.25863 3539.5538 6929.0112 10468.565 -4849.9813 8389.5351 268531.8
1600 293.21218 -143.75501 3452.9516 6991.2046 10444.156 -4885.0192 8337.9708 268531.8
1700 291.02865 -207.34728 3465.4131 6939.1416 10404.555 -4887.363 8352.7761 268531.8
1800 286.00091 -91.017961 3530.3422 6819.2625 10349.605 -4807.6624 8338.0046 268531.8
1900 286.3006 -145.399 3485.1695 6826.4082 10311.578 -4848.263 8333.4325 268531.8
2000 288.43931 -469.99712 3409.0906 6877.4025 10286.493 -4905.9002 8314.9907 268531.8
Loop time of 2.32221 on 4 procs for 1000 steps with 8000 atoms
Performance: 37.206 ns/day, 0.645 hours/ns, 430.624 timesteps/s
90.9% 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.4451 | 1.5022 | 1.555 | 3.7 | 64.69
Bond | 0.18307 | 0.19206 | 0.20526 | 2.0 | 8.27
Neigh | 0.12827 | 0.12956 | 0.13074 | 0.3 | 5.58
Comm | 0.36752 | 0.42006 | 0.48825 | 8.1 | 18.09
Output | 0.00022658 | 0.00025297 | 0.0003292 | 0.0 | 0.01
Modify | 0.05223 | 0.057658 | 0.063373 | 2.1 | 2.48
Other | | 0.02044 | | | 0.88
Nlocal: 2000.00 ave 2016 max 1981 min
Histogram: 1 0 0 0 0 1 1 0 0 1
Nghost: 9878.25 ave 9891 max 9868 min
Histogram: 1 0 1 0 0 1 0 0 0 1
Neighs: 108567.0 ave 110532 max 107467 min
Histogram: 1 1 1 0 0 0 0 0 0 1
Total # of neighbors = 434269
Ave neighs/atom = 54.283625
Ave special neighs/atom = 5.2500000
Neighbor list builds = 14
Dangerous builds = 0
# Run reference system with lj/smooth
clear
using 1 OpenMP thread(s) per MPI task
read_restart restart.relres.real
Reading restart file ...
restart file = 10 Feb 2021, LAMMPS = 10 Feb 2021
restoring atom style molecular from restart
orthogonal box = (3.7421629 3.7421629 3.7421629) to (68.257837 68.257837 68.257837)
2 by 1 by 2 MPI processor grid
restoring pair style lj/relres from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style fourier from restart
8000 atoms
7000 bonds
9000 angles
5000 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0.5
special bond factors coul: 0 0 0.5
4 = max # of 1-2 neighbors
4 = max # of 1-3 neighbors
5 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.004 seconds
read_restart CPU = 0.007 seconds
pair_style lj/smooth 12.0 14.0
pair_coeff 6 6 0.175 3.905
pair_coeff 4 4 0.118 3.905
pair_coeff 2 2 0.118 3.905
pair_coeff 5 5 0.145 3.960
pair_coeff 3 3 0.118 3.905
pair_coeff 1 1 0.05 3.8
pair_modify shift yes
neighbor 2.0 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e+02
Resetting global fix info from restart file:
fix style: nvt, fix ID: 2
run 1000
All restart file global fix info was re-assigned
Neighbor list info ...
update every 2 steps, delay 4 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 16
ghost atom cutoff = 16
binsize = 8, bins = 9 9 9
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/smooth, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 11.86 | 11.86 | 11.86 Mbytes
Step Temp Press PotEng KinEng TotEng E_pair E_mol Volume
1000 290.11974 -80.648214 3258.0256 6917.47 10175.496 -4928.3973 8186.423 268531.8
1100 289.70919 358.20314 3288.412 6907.6811 10196.093 -4959.5166 8247.9285 268531.8
1200 292.84488 96.692992 3277.1296 6982.4468 10259.576 -4818.7374 8095.867 268531.8
1300 291.07262 65.629153 3425.4662 6940.1899 10365.656 -4828.0862 8253.5524 268531.8
1400 292.39722 -113.07286 3448.8088 6971.773 10420.582 -4841.3586 8290.1674 268531.8
1500 289.80998 90.176596 3510.6526 6910.0843 10420.737 -4884.6145 8395.2671 268531.8
1600 292.48452 -180.26543 3426.6967 6973.8544 10400.551 -4903.46 8330.1567 268531.8
1700 291.32152 -220.54923 3421.802 6946.1246 10367.927 -4946.101 8367.9031 268531.8
1800 286.77292 -101.26406 3475.3166 6837.6701 10312.987 -4830.565 8305.8816 268531.8
1900 286.6849 -161.65289 3428.0457 6835.5713 10263.617 -4909.5924 8337.6381 268531.8
2000 287.3785 -477.01298 3367.9719 6852.1091 10220.081 -4962.7001 8330.6719 268531.8
Loop time of 7.44371 on 4 procs for 1000 steps with 8000 atoms
Performance: 11.607 ns/day, 2.068 hours/ns, 134.342 timesteps/s
92.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 | 6.0092 | 6.1923 | 6.5395 | 8.2 | 83.19
Bond | 0.18292 | 0.18861 | 0.19918 | 1.5 | 2.53
Neigh | 0.16826 | 0.16868 | 0.1691 | 0.1 | 2.27
Comm | 0.47602 | 0.82734 | 1.0097 | 22.7 | 11.11
Output | 0.00023062 | 0.00025561 | 0.00032727 | 0.0 | 0.00
Modify | 0.040804 | 0.047642 | 0.054462 | 3.1 | 0.64
Other | | 0.01893 | | | 0.25
Nlocal: 2000.00 ave 2015 max 1972 min
Histogram: 1 0 0 0 0 0 0 1 1 1
Nghost: 9870.50 ave 9899 max 9855 min
Histogram: 1 1 1 0 0 0 0 0 0 1
Neighs: 506501.0 ave 514030 max 499023 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Total # of neighbors = 2026005
Ave neighs/atom = 253.25063
Ave special neighs/atom = 5.2500000
Neighbor list builds = 13
Dangerous builds = 0
Total wall time: 0:00:14

View File

@ -0,0 +1,142 @@
LAMMPS (10 Feb 2021)
using 1 OpenMP thread(s) per MPI task
# Example: use of lj/relres for simulation of 2,2-dimethylhexane: C3H7-C5H11
# with with mixed Rso: 0.625e-9 for C3H7 group and 0.725e-9 for C5H11 group (si units)
units si
atom_style molecular
boundary p p p
dielectric 1
special_bonds lj/coul 0.0 0.0 0.5
pair_style lj/relres 0.675e-9 .725e-9 1.2e-9 1.4e-9
bond_style harmonic
angle_style harmonic
dihedral_style fourier
read_data Data.22DMH.in.relres
Reading data file ...
orthogonal box = (3.7421629e-10 3.7421629e-10 3.7421629e-10) to (6.8257837e-09 6.8257837e-09 6.8257837e-09)
1 by 1 by 1 MPI processor grid
reading atoms ...
8000 atoms
reading velocities ...
8000 velocities
scanning bonds ...
4 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
3 = max dihedrals/atom
reading bonds ...
7000 bonds
reading angles ...
9000 angles
reading dihedrals ...
5000 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0.5
special bond factors coul: 0 0 0.5
4 = max # of 1-2 neighbors
4 = max # of 1-3 neighbors
5 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.003 seconds
read_data CPU = 0.035 seconds
pair_coeff 6 6 1.21585e-21 0.3905e-9 0.0 0.0 0.575e-9 0.625e-9 1.2e-9 1.4e-9
pair_coeff 4 4 0.819828e-21 0.3905e-9 0.0 0.0 0.575e-9 0.625e-9 1.2e-9 1.4e-9
pair_coeff 2 2 0.819828e-21 0.3905e-9 8.48872E-21 0.3905E-9 0.575e-9 0.625e-9 1.2e-9 1.4e-9
pair_coeff 5 5 1.00742E-21 0.396E-9 0.0 0.0
pair_coeff 3 3 0.819828e-21 0.3905e-9 0.0 0.0
pair_coeff 1 1 0.347385E-21 0.38E-9 20.2372E-21 0.39309E-9
pair_modify shift yes
neighbor 2.0e-10 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0e-15
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e-13
run 1000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Pair style lj/relres: doi:10.1021/acs.jctc.0c01003
@Article{Chaimovich1,
author = {A. Chaimovich, C. Peter, K. Kremer},
title = {Relative resolution: A hybrid formalism for fluid mixtures},
journal = {J.~Chem.~Phys.},
year = 2015,
volume = 143,
pages = {243107}
@Article{Chaimovich2,
author = {M. Chaimovich, A. Chaimovich},
title = {Relative Resolution: A Computationally Efficient Implementation in LAMMPS},
journal = {J.~Chem.~Theory~Comput.},
year = 2021,
volume = 17,
pages = {1045--1059}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Neighbor list info ...
update every 2 steps, delay 4 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 1.6e-09
ghost atom cutoff = 1.6e-09
binsize = 8e-10, bins = 9 9 9
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/relres, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 20.39 | 20.39 | 20.39 Mbytes
Step Temp Press PotEng KinEng TotEng E_pair E_mol Volume
0 286.85659 -21390710 2.6345656e-17 4.7519899e-17 7.3865555e-17 -3.3260066e-17 5.9605722e-17 2.685318e-25
100 292.25165 10716172 2.5245584e-17 4.841363e-17 7.3659214e-17 -3.2561964e-17 5.7807548e-17 2.685318e-25
200 291.6011 48774461 2.4897987e-17 4.8305863e-17 7.320385e-17 -3.3268705e-17 5.8166692e-17 2.685318e-25
300 291.50656 37655969 2.4389062e-17 4.8290201e-17 7.2679262e-17 -3.3428236e-17 5.7817297e-17 2.685318e-25
400 287.23427 25920755 2.4747225e-17 4.7582464e-17 7.2329689e-17 -3.3065908e-17 5.7813133e-17 2.685318e-25
500 288.56911 -9297451 2.4379025e-17 4.7803591e-17 7.2182615e-17 -3.3515426e-17 5.7894451e-17 2.685318e-25
600 291.82949 20083719 2.3686904e-17 4.8343696e-17 7.2030599e-17 -3.3468666e-17 5.7155569e-17 2.685318e-25
700 290.64445 60535932 2.3704156e-17 4.8147386e-17 7.1851542e-17 -3.3299994e-17 5.700415e-17 2.685318e-25
800 293.01243 38119194 2.3163674e-17 4.8539659e-17 7.1703333e-17 -3.3641284e-17 5.6804958e-17 2.685318e-25
900 289.1191 32514067 2.3608264e-17 4.7894701e-17 7.1502965e-17 -3.3787865e-17 5.7396129e-17 2.685318e-25
1000 292.45834 -714652.68 2.2885394e-17 4.8447871e-17 7.1333265e-17 -3.3864138e-17 5.6749532e-17 2.685318e-25
Loop time of 6.82188 on 1 procs for 1000 steps with 8000 atoms
99.4% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 5.5321 | 5.5321 | 5.5321 | 0.0 | 81.09
Bond | 0.69427 | 0.69427 | 0.69427 | 0.0 | 10.18
Neigh | 0.4138 | 0.4138 | 0.4138 | 0.0 | 6.07
Comm | 0.070615 | 0.070615 | 0.070615 | 0.0 | 1.04
Output | 0.00037602 | 0.00037602 | 0.00037602 | 0.0 | 0.01
Modify | 0.084796 | 0.084796 | 0.084796 | 0.0 | 1.24
Other | | 0.02591 | | | 0.38
Nlocal: 8000.00 ave 8000 max 8000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 18912.0 ave 18912 max 18912 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 434283.0 ave 434283 max 434283 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 434283
Ave neighs/atom = 54.285375
Ave special neighs/atom = 5.2500000
Neighbor list builds = 13
Dangerous builds = 0
#write_data Data.22DMH.out.relres pair ij
#pair_write 1 1 1201 r 0.2e-9 1.4e-9 potential.relres LJ11
#pair_write 2 2 1201 r 0.2e-9 1.4e-9 potential.relres LJ22
#pair_write 1 2 1201 r 0.2e-9 1.4e-9 potential.relres LJ12
Total wall time: 0:00:06

View File

@ -0,0 +1,142 @@
LAMMPS (10 Feb 2021)
using 1 OpenMP thread(s) per MPI task
# Example: use of lj/relres for simulation of 2,2-dimethylhexane: C3H7-C5H11
# with with mixed Rso: 0.625e-9 for C3H7 group and 0.725e-9 for C5H11 group (si units)
units si
atom_style molecular
boundary p p p
dielectric 1
special_bonds lj/coul 0.0 0.0 0.5
pair_style lj/relres 0.675e-9 .725e-9 1.2e-9 1.4e-9
bond_style harmonic
angle_style harmonic
dihedral_style fourier
read_data Data.22DMH.in.relres
Reading data file ...
orthogonal box = (3.7421629e-10 3.7421629e-10 3.7421629e-10) to (6.8257837e-09 6.8257837e-09 6.8257837e-09)
1 by 2 by 2 MPI processor grid
reading atoms ...
8000 atoms
reading velocities ...
8000 velocities
scanning bonds ...
4 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
3 = max dihedrals/atom
reading bonds ...
7000 bonds
reading angles ...
9000 angles
reading dihedrals ...
5000 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0.5
special bond factors coul: 0 0 0.5
4 = max # of 1-2 neighbors
4 = max # of 1-3 neighbors
5 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.037 seconds
pair_coeff 6 6 1.21585e-21 0.3905e-9 0.0 0.0 0.575e-9 0.625e-9 1.2e-9 1.4e-9
pair_coeff 4 4 0.819828e-21 0.3905e-9 0.0 0.0 0.575e-9 0.625e-9 1.2e-9 1.4e-9
pair_coeff 2 2 0.819828e-21 0.3905e-9 8.48872E-21 0.3905E-9 0.575e-9 0.625e-9 1.2e-9 1.4e-9
pair_coeff 5 5 1.00742E-21 0.396E-9 0.0 0.0
pair_coeff 3 3 0.819828e-21 0.3905e-9 0.0 0.0
pair_coeff 1 1 0.347385E-21 0.38E-9 20.2372E-21 0.39309E-9
pair_modify shift yes
neighbor 2.0e-10 bin
neigh_modify every 2 delay 4 check yes
timestep 1.0e-15
thermo 100
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e-13
run 1000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Pair style lj/relres: doi:10.1021/acs.jctc.0c01003
@Article{Chaimovich1,
author = {A. Chaimovich, C. Peter, K. Kremer},
title = {Relative resolution: A hybrid formalism for fluid mixtures},
journal = {J.~Chem.~Phys.},
year = 2015,
volume = 143,
pages = {243107}
@Article{Chaimovich2,
author = {M. Chaimovich, A. Chaimovich},
title = {Relative Resolution: A Computationally Efficient Implementation in LAMMPS},
journal = {J.~Chem.~Theory~Comput.},
year = 2021,
volume = 17,
pages = {1045--1059}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Neighbor list info ...
update every 2 steps, delay 4 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 1.6e-09
ghost atom cutoff = 1.6e-09
binsize = 8e-10, bins = 9 9 9
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/relres, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 10.33 | 10.33 | 10.34 Mbytes
Step Temp Press PotEng KinEng TotEng E_pair E_mol Volume
0 286.85659 -21390710 2.6345656e-17 4.7519899e-17 7.3865555e-17 -3.3260066e-17 5.9605722e-17 2.685318e-25
100 292.25165 10716172 2.5245584e-17 4.841363e-17 7.3659214e-17 -3.2561964e-17 5.7807548e-17 2.685318e-25
200 291.6011 48774461 2.4897987e-17 4.8305863e-17 7.320385e-17 -3.3268705e-17 5.8166692e-17 2.685318e-25
300 291.50656 37655969 2.4389062e-17 4.8290201e-17 7.2679262e-17 -3.3428236e-17 5.7817297e-17 2.685318e-25
400 287.23427 25920755 2.4747225e-17 4.7582464e-17 7.2329689e-17 -3.3065908e-17 5.7813133e-17 2.685318e-25
500 288.56911 -9297451 2.4379025e-17 4.7803591e-17 7.2182615e-17 -3.3515426e-17 5.7894451e-17 2.685318e-25
600 291.82949 20083719 2.3686904e-17 4.8343696e-17 7.2030599e-17 -3.3468666e-17 5.7155569e-17 2.685318e-25
700 290.64445 60535932 2.3704156e-17 4.8147386e-17 7.1851542e-17 -3.3299994e-17 5.700415e-17 2.685318e-25
800 293.01243 38119194 2.3163674e-17 4.8539659e-17 7.1703333e-17 -3.3641284e-17 5.6804958e-17 2.685318e-25
900 289.1191 32514067 2.3608264e-17 4.7894701e-17 7.1502965e-17 -3.3787865e-17 5.7396129e-17 2.685318e-25
1000 292.45834 -714652.68 2.2885394e-17 4.8447871e-17 7.1333265e-17 -3.3864138e-17 5.6749532e-17 2.685318e-25
Loop time of 2.33734 on 4 procs for 1000 steps with 8000 atoms
92.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 | 1.474 | 1.5509 | 1.6662 | 5.7 | 66.35
Bond | 0.18735 | 0.19226 | 0.20418 | 1.6 | 8.23
Neigh | 0.11755 | 0.11806 | 0.11861 | 0.1 | 5.05
Comm | 0.28111 | 0.41325 | 0.49073 | 12.3 | 17.68
Output | 0.00020343 | 0.00056368 | 0.0016305 | 0.0 | 0.02
Modify | 0.038727 | 0.044364 | 0.050037 | 2.6 | 1.90
Other | | 0.01797 | | | 0.77
Nlocal: 2000.00 ave 2013 max 1987 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Nghost: 9887.00 ave 9898 max 9865 min
Histogram: 1 0 0 0 0 0 0 1 1 1
Neighs: 108571.0 ave 110054 max 107417 min
Histogram: 1 0 0 1 1 0 0 0 0 1
Total # of neighbors = 434283
Ave neighs/atom = 54.285375
Ave special neighs/atom = 5.2500000
Neighbor list builds = 13
Dangerous builds = 0
#write_data Data.22DMH.out.relres pair ij
#pair_write 1 1 1201 r 0.2e-9 1.4e-9 potential.relres LJ11
#pair_write 2 2 1201 r 0.2e-9 1.4e-9 potential.relres LJ22
#pair_write 1 2 1201 r 0.2e-9 1.4e-9 potential.relres LJ12
Total wall time: 0:00:02

View File

@ -0,0 +1,170 @@
LAMMPS (10 Feb 2021)
using 1 OpenMP thread(s) per MPI task
units si
atom_style molecular
boundary p p p
dielectric 1
special_bonds lj/coul 0.0 0.0 0.5
pair_style hybrid lj/relres 0.675e-9 0.725e-9 1.2e-9 1.4e-9 lj/relres 0.675e-9 .725e-9 1.2e-9 1.4e-9
bond_style harmonic
angle_style harmonic
dihedral_style fourier
read_data Data.22DMH.in.relres
Reading data file ...
orthogonal box = (3.7421629e-10 3.7421629e-10 3.7421629e-10) to (6.8257837e-09 6.8257837e-09 6.8257837e-09)
1 by 1 by 1 MPI processor grid
reading atoms ...
8000 atoms
reading velocities ...
8000 velocities
scanning bonds ...
4 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
3 = max dihedrals/atom
reading bonds ...
7000 bonds
reading angles ...
9000 angles
reading dihedrals ...
5000 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0.5
special bond factors coul: 0 0 0.5
4 = max # of 1-2 neighbors
4 = max # of 1-3 neighbors
5 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.002 seconds
read_data CPU = 0.035 seconds
pair_coeff 1 1 lj/relres 1 3.47385e-22 3.8e-10 2.02372e-20 3.9309e-10 6.75e-10 7.25e-10 1.2e-09 1.4e-09
pair_coeff 1 2 lj/relres 1 5.33663e-22 3.85214e-10 1.31068e-20 3.91793e-10 6.22997e-10 6.73146e-10 1.2e-09 1.4e-09
pair_coeff 1 3 lj/relres 2 5.33663e-22 3.85214e-10 0 3.91793e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 1 4 lj/relres 2 5.33663e-22 3.85214e-10 0 3.91793e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 1 5 lj/relres 2 5.91576e-22 3.87918e-10 0 3.94542e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 1 6 lj/relres 2 6.49898e-22 3.85214e-10 0 3.91793e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 2 2 lj/relres 1 8.19828e-22 3.905e-10 8.48872e-21 3.905e-10 5.75e-10 6.25e-10 1.2e-09 1.4e-09
pair_coeff 2 3 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 2 4 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_coeff 2 5 lj/relres 2 9.08797e-22 3.9324e-10 0 3.9324e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 2 6 lj/relres 2 9.98393e-22 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_coeff 3 3 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 3 4 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 3 5 lj/relres 2 9.08797e-22 3.9324e-10 0 3.9324e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 3 6 lj/relres 2 9.98393e-22 3.905e-10 0 3.905e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 4 4 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_coeff 4 5 lj/relres 2 9.08797e-22 3.9324e-10 0 3.9324e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 4 6 lj/relres 2 9.98393e-22 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_coeff 5 5 lj/relres 2 1.00742e-21 3.96e-10 0 3.96e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 5 6 lj/relres 2 1.10674e-21 3.9324e-10 0 3.9324e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 6 6 lj/relres 2 1.21585e-21 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_modify shift yes
neighbor 2.0e-10 bin
neigh_modify every 2 delay 4 check yes
timestep 2.0e-15
thermo 50
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e-13
run_style respa 2 2 hybrid 1 2
Respa levels:
1 = bond angle dihedral improper hybrid-1
2 = hybrid-2 kspace
run 500
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Pair style lj/relres: doi:10.1021/acs.jctc.0c01003
@Article{Chaimovich1,
author = {A. Chaimovich, C. Peter, K. Kremer},
title = {Relative resolution: A hybrid formalism for fluid mixtures},
journal = {J.~Chem.~Phys.},
year = 2015,
volume = 143,
pages = {243107}
@Article{Chaimovich2,
author = {M. Chaimovich, A. Chaimovich},
title = {Relative Resolution: A Computationally Efficient Implementation in LAMMPS},
journal = {J.~Chem.~Theory~Comput.},
year = 2021,
volume = 17,
pages = {1045--1059}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Neighbor list info ...
update every 2 steps, delay 4 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 1.6e-09
ghost atom cutoff = 1.6e-09
binsize = 8e-10, bins = 9 9 9
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair lj/relres, perpetual, skip from (3)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(2) pair lj/relres, perpetual, skip from (3)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 24.68 | 24.68 | 24.68 Mbytes
Step Temp Press PotEng KinEng TotEng E_pair E_mol Volume
0 286.85659 -21399113 2.6345159e-17 4.7519899e-17 7.3865059e-17 -3.3260563e-17 5.9605722e-17 2.685318e-25
50 292.22255 10509008 2.525105e-17 4.840881e-17 7.3659861e-17 -3.2554301e-17 5.7805351e-17 2.685318e-25
100 291.58497 48053357 2.4902763e-17 4.8303191e-17 7.3205953e-17 -3.325361e-17 5.8156373e-17 2.685318e-25
150 291.49413 37394583 2.4391667e-17 4.8288142e-17 7.2679809e-17 -3.3414422e-17 5.7806089e-17 2.685318e-25
200 287.20382 26161531 2.4752701e-17 4.7577421e-17 7.2330122e-17 -3.3050943e-17 5.7803644e-17 2.685318e-25
250 288.54952 -9191037 2.4382928e-17 4.7800345e-17 7.2183273e-17 -3.3506471e-17 5.78894e-17 2.685318e-25
300 291.83353 19619708 2.369006e-17 4.8344366e-17 7.2034426e-17 -3.3461257e-17 5.7151317e-17 2.685318e-25
350 290.64842 60193012 2.3711746e-17 4.8148044e-17 7.185979e-17 -3.3286381e-17 5.6998127e-17 2.685318e-25
400 293.0168 38268765 2.3173289e-17 4.8540384e-17 7.1713672e-17 -3.3633853e-17 5.6807142e-17 2.685318e-25
450 289.19195 33053376 2.36093e-17 4.7906769e-17 7.151607e-17 -3.3774223e-17 5.7383524e-17 2.685318e-25
500 292.43942 -684078.27 2.2898459e-17 4.8444735e-17 7.1343194e-17 -3.3856946e-17 5.6755405e-17 2.685318e-25
Loop time of 4.85018 on 1 procs for 500 steps with 8000 atoms
99.4% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 3.4622 | 3.4622 | 3.4622 | 0.0 | 71.38
Bond | 0.68987 | 0.68987 | 0.68987 | 0.0 | 14.22
Neigh | 0.44102 | 0.44102 | 0.44102 | 0.0 | 9.09
Comm | 0.087413 | 0.087413 | 0.087413 | 0.0 | 1.80
Output | 0.00034455 | 0.00034455 | 0.00034455 | 0.0 | 0.01
Modify | 0.084174 | 0.084174 | 0.084174 | 0.0 | 1.74
Other | | 0.08514 | | | 1.76
Nlocal: 8000.00 ave 8000 max 8000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 18908.0 ave 18908 max 18908 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0.00000 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0.0000000
Ave special neighs/atom = 5.2500000
Neighbor list builds = 13
Dangerous builds = 0
#write_data Data.22DMH.out.relres pair ij
#pair_write 1 1 1201 r 0.2e-9 1.4e-9 potential.relres LJ11
#pair_write 2 2 1201 r 0.2e-9 1.4e-9 potential.relres LJ22
#pair_write 1 2 1201 r 0.2e-9 1.4e-9 potential.relres LJ12
Total wall time: 0:00:04

View File

@ -0,0 +1,170 @@
LAMMPS (10 Feb 2021)
using 1 OpenMP thread(s) per MPI task
units si
atom_style molecular
boundary p p p
dielectric 1
special_bonds lj/coul 0.0 0.0 0.5
pair_style hybrid lj/relres 0.675e-9 0.725e-9 1.2e-9 1.4e-9 lj/relres 0.675e-9 .725e-9 1.2e-9 1.4e-9
bond_style harmonic
angle_style harmonic
dihedral_style fourier
read_data Data.22DMH.in.relres
Reading data file ...
orthogonal box = (3.7421629e-10 3.7421629e-10 3.7421629e-10) to (6.8257837e-09 6.8257837e-09 6.8257837e-09)
1 by 2 by 2 MPI processor grid
reading atoms ...
8000 atoms
reading velocities ...
8000 velocities
scanning bonds ...
4 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
3 = max dihedrals/atom
reading bonds ...
7000 bonds
reading angles ...
9000 angles
reading dihedrals ...
5000 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0.5
special bond factors coul: 0 0 0.5
4 = max # of 1-2 neighbors
4 = max # of 1-3 neighbors
5 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.036 seconds
pair_coeff 1 1 lj/relres 1 3.47385e-22 3.8e-10 2.02372e-20 3.9309e-10 6.75e-10 7.25e-10 1.2e-09 1.4e-09
pair_coeff 1 2 lj/relres 1 5.33663e-22 3.85214e-10 1.31068e-20 3.91793e-10 6.22997e-10 6.73146e-10 1.2e-09 1.4e-09
pair_coeff 1 3 lj/relres 2 5.33663e-22 3.85214e-10 0 3.91793e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 1 4 lj/relres 2 5.33663e-22 3.85214e-10 0 3.91793e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 1 5 lj/relres 2 5.91576e-22 3.87918e-10 0 3.94542e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 1 6 lj/relres 2 6.49898e-22 3.85214e-10 0 3.91793e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 2 2 lj/relres 1 8.19828e-22 3.905e-10 8.48872e-21 3.905e-10 5.75e-10 6.25e-10 1.2e-09 1.4e-09
pair_coeff 2 3 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 2 4 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_coeff 2 5 lj/relres 2 9.08797e-22 3.9324e-10 0 3.9324e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 2 6 lj/relres 2 9.98393e-22 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_coeff 3 3 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 3 4 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 3 5 lj/relres 2 9.08797e-22 3.9324e-10 0 3.9324e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 3 6 lj/relres 2 9.98393e-22 3.905e-10 0 3.905e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 4 4 lj/relres 2 8.19828e-22 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_coeff 4 5 lj/relres 2 9.08797e-22 3.9324e-10 0 3.9324e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 4 6 lj/relres 2 9.98393e-22 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_coeff 5 5 lj/relres 2 1.00742e-21 3.96e-10 0 3.96e-10 6.75e-10 7.25e-10 7.25e-10 7.25e-10
pair_coeff 5 6 lj/relres 2 1.10674e-21 3.9324e-10 0 3.9324e-10 6.22997e-10 6.73146e-10 6.73146e-10 6.73146e-10
pair_coeff 6 6 lj/relres 2 1.21585e-21 3.905e-10 0 3.905e-10 5.75e-10 6.25e-10 6.25e-10 6.25e-10
pair_modify shift yes
neighbor 2.0e-10 bin
neigh_modify every 2 delay 4 check yes
timestep 2.0e-15
thermo 50
thermo_style custom step temp press pe ke etotal epair emol vol
fix 2 all nvt temp 290 290 2.0e-13
run_style respa 2 2 hybrid 1 2
Respa levels:
1 = bond angle dihedral improper hybrid-1
2 = hybrid-2 kspace
run 500
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Pair style lj/relres: doi:10.1021/acs.jctc.0c01003
@Article{Chaimovich1,
author = {A. Chaimovich, C. Peter, K. Kremer},
title = {Relative resolution: A hybrid formalism for fluid mixtures},
journal = {J.~Chem.~Phys.},
year = 2015,
volume = 143,
pages = {243107}
@Article{Chaimovich2,
author = {M. Chaimovich, A. Chaimovich},
title = {Relative Resolution: A Computationally Efficient Implementation in LAMMPS},
journal = {J.~Chem.~Theory~Comput.},
year = 2021,
volume = 17,
pages = {1045--1059}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Neighbor list info ...
update every 2 steps, delay 4 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 1.6e-09
ghost atom cutoff = 1.6e-09
binsize = 8e-10, bins = 9 9 9
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair lj/relres, perpetual, skip from (3)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(2) pair lj/relres, perpetual, skip from (3)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 12.35 | 12.35 | 12.35 Mbytes
Step Temp Press PotEng KinEng TotEng E_pair E_mol Volume
0 286.85659 -21399113 2.6345159e-17 4.7519899e-17 7.3865059e-17 -3.3260563e-17 5.9605722e-17 2.685318e-25
50 292.22255 10509008 2.525105e-17 4.840881e-17 7.3659861e-17 -3.2554301e-17 5.7805351e-17 2.685318e-25
100 291.58497 48053357 2.4902763e-17 4.8303191e-17 7.3205953e-17 -3.325361e-17 5.8156373e-17 2.685318e-25
150 291.49413 37394583 2.4391667e-17 4.8288142e-17 7.2679809e-17 -3.3414422e-17 5.7806089e-17 2.685318e-25
200 287.20382 26161531 2.4752701e-17 4.7577421e-17 7.2330122e-17 -3.3050943e-17 5.7803644e-17 2.685318e-25
250 288.54952 -9191037 2.4382928e-17 4.7800345e-17 7.2183273e-17 -3.3506471e-17 5.78894e-17 2.685318e-25
300 291.83353 19619708 2.369006e-17 4.8344366e-17 7.2034426e-17 -3.3461257e-17 5.7151317e-17 2.685318e-25
350 290.64842 60193012 2.3711746e-17 4.8148044e-17 7.185979e-17 -3.3286381e-17 5.6998127e-17 2.685318e-25
400 293.0168 38268765 2.3173289e-17 4.8540384e-17 7.1713672e-17 -3.3633853e-17 5.6807142e-17 2.685318e-25
450 289.19195 33053376 2.36093e-17 4.7906769e-17 7.151607e-17 -3.3774223e-17 5.7383524e-17 2.685318e-25
500 292.43942 -684078.27 2.2898459e-17 4.8444735e-17 7.1343194e-17 -3.3856946e-17 5.6755405e-17 2.685318e-25
Loop time of 1.76801 on 4 procs for 500 steps with 8000 atoms
91.6% 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.93397 | 0.97055 | 1.0377 | 4.0 | 54.89
Bond | 0.18914 | 0.19729 | 0.20727 | 1.5 | 11.16
Neigh | 0.12623 | 0.12644 | 0.12663 | 0.1 | 7.15
Comm | 0.31509 | 0.39593 | 0.44272 | 7.7 | 22.39
Output | 0.00031866 | 0.00034685 | 0.00041755 | 0.0 | 0.02
Modify | 0.035567 | 0.037833 | 0.039797 | 0.8 | 2.14
Other | | 0.03963 | | | 2.24
Nlocal: 2000.00 ave 2016 max 1985 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Nghost: 9883.00 ave 9895 max 9866 min
Histogram: 1 0 0 0 0 1 0 1 0 1
Neighs: 0.00000 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0.0000000
Ave special neighs/atom = 5.2500000
Neighbor list builds = 13
Dangerous builds = 0
#write_data Data.22DMH.out.relres pair ij
#pair_write 1 1 1201 r 0.2e-9 1.4e-9 potential.relres LJ11
#pair_write 2 2 1201 r 0.2e-9 1.4e-9 potential.relres LJ22
#pair_write 1 2 1201 r 0.2e-9 1.4e-9 potential.relres LJ12
Total wall time: 0:00:01

View File

@ -0,0 +1,194 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://lammps.sandia.gov/, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
This software is distributed under the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Axel Kohlmeyer (Temple U)
------------------------------------------------------------------------- */
#include "pair_lj_relres_omp.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neigh_list.h"
#include "suffix.h"
#include <cmath>
#include "omp_compat.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
PairLJRelResOMP::PairLJRelResOMP(LAMMPS *lmp) :
PairLJRelRes(lmp), ThrOMP(lmp, THR_PAIR)
{
suffix_flag |= Suffix::OMP;
respa_enable = 0;
}
/* ---------------------------------------------------------------------- */
void PairLJRelResOMP::compute(int eflag, int vflag)
{
ev_init(eflag,vflag);
const int nall = atom->nlocal + atom->nghost;
const int nthreads = comm->nthreads;
const int inum = list->inum;
#if defined(_OPENMP)
#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag)
#endif
{
int ifrom, ito, tid;
loop_setup_thr(ifrom, ito, tid, inum, nthreads);
ThrData *thr = fix->get_thr(tid);
thr->timer(Timer::START);
ev_setup_thr(eflag, vflag, nall, eatom, vatom, nullptr, thr);
if (evflag) {
if (eflag) {
if (force->newton_pair) eval<1,1,1>(ifrom, ito, thr);
else eval<1,1,0>(ifrom, ito, thr);
} else {
if (force->newton_pair) eval<1,0,1>(ifrom, ito, thr);
else eval<1,0,0>(ifrom, ito, thr);
}
} else {
if (force->newton_pair) eval<0,0,1>(ifrom, ito, thr);
else eval<0,0,0>(ifrom, ito, thr);
}
thr->timer(Timer::PAIR);
reduce_thr(this, eflag, vflag, thr);
} // end of omp parallel region
}
template <int EVFLAG, int EFLAG, int NEWTON_PAIR>
void PairLJRelResOMP::eval(int iifrom, int iito, ThrData * const thr)
{
int i,j,ii,jj,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
double rsq,r2inv,r6inv,forcelj,factor_lj;
double r,t,tsq,fskin;
int *ilist,*jlist,*numneigh,**firstneigh;
evdwl = 0.0;
const dbl3_t * _noalias const x = (dbl3_t *) atom->x[0];
dbl3_t * _noalias const f = (dbl3_t *) thr->get_f()[0];
const int * _noalias const type = atom->type;
const int nlocal = atom->nlocal;
const double * _noalias const special_lj = force->special_lj;
double fxtmp,fytmp,fztmp;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// loop over neighbors of my atoms
for (ii = iifrom; ii < iito; ++ii) {
i = ilist[ii];
xtmp = x[i].x;
ytmp = x[i].y;
ztmp = x[i].z;
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
fxtmp=fytmp=fztmp=0.0;
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j].x;
dely = ytmp - x[j].y;
delz = ztmp - x[j].z;
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cutsq[itype][jtype]) {
r2inv = 1.0/rsq;
if (rsq < cutf_inner_sq[itype][jtype]) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv*(ljf1[itype][jtype]*r6inv-ljf2[itype][jtype]);
} else if (rsq < cutfsq[itype][jtype]) {
r = sqrt(rsq);
t = r - cutf_inner[itype][jtype];
tsq = t*t;
fskin = ljswf1[itype][jtype]+ljswf2[itype][jtype]*t+
ljswf3[itype][jtype]*tsq+ljswf4[itype][jtype]*tsq*t;
forcelj = fskin*r;
} else if (rsq < cut_inner_sq[itype][jtype]) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv*(lj1[itype][jtype]*r6inv-lj2[itype][jtype]);
} else {
r = sqrt(rsq);
t = r-cut_inner[itype][jtype];
tsq = t*t;
fskin = ljsw1[itype][jtype]+ljsw2[itype][jtype]*t+
ljsw3[itype][jtype]*tsq+ljsw4[itype][jtype]*tsq*t;
forcelj = fskin*r;
}
fpair = factor_lj*forcelj*r2inv;
fxtmp += delx*fpair;
fytmp += dely*fpair;
fztmp += delz*fpair;
if (NEWTON_PAIR || j < nlocal) {
f[j].x -= delx*fpair;
f[j].y -= dely*fpair;
f[j].z -= delz*fpair;
}
if (EFLAG) {
if (rsq < cutf_inner_sq[itype][jtype]) {
evdwl = r6inv*(ljf3[itype][jtype]*r6inv-
ljf4[itype][jtype])-offsetsm[itype][jtype];
} else if (rsq < cutfsq[itype][jtype]) {
evdwl = ljswf0[itype][jtype]-ljswf1[itype][jtype]*t-
ljswf2[itype][jtype]*tsq/2.0-ljswf3[itype][jtype]*tsq*t/3.0-
ljswf4[itype][jtype]*tsq*tsq/4.0-offsetsp[itype][jtype];
} else if (rsq < cut_inner_sq[itype][jtype]) {
evdwl = r6inv*(lj3[itype][jtype]*r6inv-
lj4[itype][jtype])-offset[itype][jtype];
} else {
evdwl = ljsw0[itype][jtype]-ljsw1[itype][jtype]*t-
ljsw2[itype][jtype]*tsq/2.0-ljsw3[itype][jtype]*tsq*t/3.0-
ljsw4[itype][jtype]*tsq*tsq/4.0-offset[itype][jtype];
}
evdwl *= factor_lj;
}
if (EVFLAG) ev_tally_thr(this,i,j,nlocal,NEWTON_PAIR,
evdwl,0.0,fpair,delx,dely,delz,thr);
}
}
f[i].x += fxtmp;
f[i].y += fytmp;
f[i].z += fztmp;
}
}
/* ---------------------------------------------------------------------- */
double PairLJRelResOMP::memory_usage()
{
double bytes = memory_usage_thr();
bytes += PairLJRelRes::memory_usage();
return bytes;
}

View File

@ -0,0 +1,48 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Axel Kohlmeyer (Temple U)
------------------------------------------------------------------------- */
#ifdef PAIR_CLASS
PairStyle(lj/relres/omp,PairLJRelResOMP)
#else
#ifndef LMP_PAIR_LJ_RELRES_OMP_H
#define LMP_PAIR_LJ_RELRES_OMP_H
#include "pair_lj_relres.h"
#include "thr_omp.h"
namespace LAMMPS_NS {
class PairLJRelResOMP : public PairLJRelRes, public ThrOMP {
public:
PairLJRelResOMP(class LAMMPS *);
virtual void compute(int, int);
virtual double memory_usage();
private:
template <int EVFLAG, int EFLAG, int NEWTON_PAIR>
void eval(int ifrom, int ito, ThrData * const thr);
};
}
#endif
#endif

744
src/pair_lj_relres.cpp Normal file
View File

@ -0,0 +1,744 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Mark Chaimovich(RSM) mark.chaimovich@russianschool.com
------------------------------------------------------------------------- */
#include "pair_lj_relres.h"
#include "atom.h"
#include "citeme.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "neigh_list.h"
#include "memory.h"
#include <cmath>
#include <cstdlib>
using namespace LAMMPS_NS;
static const char cite_relres[] =
"Pair style lj/relres: doi:10.1021/acs.jctc.0c01003\n\n"
"@Article{Chaimovich1,\n"
" author = {A. Chaimovich, C. Peter, K. Kremer},\n"
" title = {Relative resolution: A hybrid formalism for fluid mixtures},\n"
" journal = {J.~Chem.~Phys.},\n"
" year = 2015,\n"
" volume = 143,\n"
" pages = {243107}\n"
"@Article{Chaimovich2,\n"
" author = {M. Chaimovich, A. Chaimovich},\n"
" title = {Relative Resolution: A Computationally Efficient Implementation in LAMMPS},\n"
" journal = {J.~Chem.~Theory~Comput.},\n"
" year = 2021,\n"
" volume = 17,\n"
" pages = {1045--1059}\n"
"}\n\n";
/* ---------------------------------------------------------------------- */
PairLJRelRes::PairLJRelRes(LAMMPS *lmp) : Pair(lmp)
{
if (lmp->citeme) lmp->citeme->add(cite_relres);
writedata = 1;
}
/* ---------------------------------------------------------------------- */
PairLJRelRes::~PairLJRelRes()
{
if (allocated) {
memory->destroy(setflag);
memory->destroy(cutsq);
memory->destroy(cutfsq);
memory->destroy(cut);
memory->destroy(cut_inner);
memory->destroy(cut_inner_sq);
memory->destroy(cutf);
memory->destroy(cutf_inner);
memory->destroy(cutf_inner_sq);
memory->destroy(epsilon);
memory->destroy(sigma);
memory->destroy(epsilonf);
memory->destroy(sigmaf);
memory->destroy(lj1);
memory->destroy(lj2);
memory->destroy(lj3);
memory->destroy(lj4);
memory->destroy(ljsw0);
memory->destroy(ljsw1);
memory->destroy(ljsw2);
memory->destroy(ljsw3);
memory->destroy(ljsw4);
memory->destroy(ljf1);
memory->destroy(ljf2);
memory->destroy(ljf3);
memory->destroy(ljf4);
memory->destroy(ljswf0);
memory->destroy(ljswf1);
memory->destroy(ljswf2);
memory->destroy(ljswf3);
memory->destroy(ljswf4);
memory->destroy(offset);
memory->destroy(offsetsm);
memory->destroy(offsetsp);
}
}
/* ---------------------------------------------------------------------- */
void PairLJRelRes::compute(int eflag, int vflag)
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
double rsq,r2inv,r6inv,forcelj,factor_lj;
double r,t,tsq,fskin;
int *ilist,*jlist,*numneigh,**firstneigh;
evdwl = 0.0;
ev_init(eflag,vflag);
double **x = atom->x;
double **f = atom->f;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cutsq[itype][jtype]) {
r2inv = 1.0/rsq;
if (rsq < cutf_inner_sq[itype][jtype]) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv*(ljf1[itype][jtype]*r6inv-ljf2[itype][jtype]);
} else if (rsq < cutfsq[itype][jtype]) {
r = sqrt(rsq);
t = r - cutf_inner[itype][jtype];
tsq = t*t;
fskin = ljswf1[itype][jtype]+ljswf2[itype][jtype]*t+
ljswf3[itype][jtype]*tsq+ljswf4[itype][jtype]*tsq*t;
forcelj = fskin*r;
} else if (rsq < cut_inner_sq[itype][jtype]) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv*(lj1[itype][jtype]*r6inv-lj2[itype][jtype]);
} else {
r = sqrt(rsq);
t = r-cut_inner[itype][jtype];
tsq = t*t;
fskin = ljsw1[itype][jtype]+ljsw2[itype][jtype]*t+
ljsw3[itype][jtype]*tsq+ljsw4[itype][jtype]*tsq*t;
forcelj = fskin*r;
}
fpair = factor_lj*forcelj*r2inv;
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
if (eflag) {
if (rsq < cutf_inner_sq[itype][jtype]) {
evdwl = r6inv*(ljf3[itype][jtype]*r6inv-
ljf4[itype][jtype])-offsetsm[itype][jtype];
} else if (rsq < cutfsq[itype][jtype]) {
evdwl = ljswf0[itype][jtype]-ljswf1[itype][jtype]*t-
ljswf2[itype][jtype]*tsq/2.0-ljswf3[itype][jtype]*tsq*t/3.0-
ljswf4[itype][jtype]*tsq*tsq/4.0-offsetsp[itype][jtype];
} else if (rsq < cut_inner_sq[itype][jtype]) {
evdwl = r6inv*(lj3[itype][jtype]*r6inv-
lj4[itype][jtype])-offset[itype][jtype];
} else {
evdwl = ljsw0[itype][jtype]-ljsw1[itype][jtype]*t-
ljsw2[itype][jtype]*tsq/2.0-ljsw3[itype][jtype]*tsq*t/3.0-
ljsw4[itype][jtype]*tsq*tsq/4.0-offset[itype][jtype];
}
evdwl *= factor_lj;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,0.0,fpair,delx,dely,delz);
}
}
}
if (vflag_fdotr) virial_fdotr_compute();
}
/* ----------------------------------------------------------------------
allocate all arrays
------------------------------------------------------------------------- */
void PairLJRelRes::allocate()
{
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"pair:setflag");
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
setflag[i][j] = 0;
memory->create(cutsq,n+1,n+1,"pair:cutsq");
memory->create(cutfsq,n+1,n+1,"pair:cutfsq");
memory->create(cut,n+1,n+1,"pair:cut");
memory->create(cutf,n+1,n+1,"pair:cutf");
memory->create(cut_inner,n+1,n+1,"pair:cut_inner");
memory->create(cutf_inner,n+1,n+1,"pair:cutf_inner");
memory->create(cut_inner_sq,n+1,n+1,"pair:cut_inner_sq");
memory->create(cutf_inner_sq,n+1,n+1,"pair:cutf_inner_sq");
memory->create(epsilon,n+1,n+1,"pair:epsilon");
memory->create(sigma,n+1,n+1,"pair:sigma");
memory->create(epsilonf,n+1,n+1,"pair:epsilonf");
memory->create(sigmaf,n+1,n+1,"pair:sigmaf");
memory->create(lj1,n+1,n+1,"pair:lj1");
memory->create(lj2,n+1,n+1,"pair:lj2");
memory->create(lj3,n+1,n+1,"pair:lj3");
memory->create(lj4,n+1,n+1,"pair:lj4");
memory->create(ljf1,n+1,n+1,"pair:ljf1");
memory->create(ljf2,n+1,n+1,"pair:ljf2");
memory->create(ljf3,n+1,n+1,"pair:ljf3");
memory->create(ljf4,n+1,n+1,"pair:ljf4");
memory->create(ljsw0,n+1,n+1,"pair:ljsw0");
memory->create(ljsw1,n+1,n+1,"pair:ljsw1");
memory->create(ljsw2,n+1,n+1,"pair:ljsw2");
memory->create(ljsw3,n+1,n+1,"pair:ljsw3");
memory->create(ljsw4,n+1,n+1,"pair:ljsw4");
memory->create(ljswf0,n+1,n+1,"pair:ljswf0");
memory->create(ljswf1,n+1,n+1,"pair:ljswf1");
memory->create(ljswf2,n+1,n+1,"pair:ljswf2");
memory->create(ljswf3,n+1,n+1,"pair:ljswf3");
memory->create(ljswf4,n+1,n+1,"pair:ljswf4");
memory->create(offset,n+1,n+1,"pair:offset");
memory->create(offsetsp,n+1,n+1,"pair:offsetsp");
memory->create(offsetsm,n+1,n+1,"pair:offsetsm");
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
void PairLJRelRes::settings(int narg, char **arg)
{
if (narg != 4) error->all(FLERR,"Illegal pair_style command");
cutf_inner_global = utils::numeric(FLERR,arg[0],false,lmp);
cutf_global = utils::numeric(FLERR,arg[1],false,lmp);
cut_inner_global = utils::numeric(FLERR,arg[2],false,lmp);
cut_global = utils::numeric(FLERR,arg[3],false,lmp);
if (cut_inner_global <= 0.0 || cut_inner_global > cut_global)
error->all(FLERR,"Illegal pair_style command");
if (cutf_inner_global <= 0.0 || cutf_inner_global > cutf_global)
error->all(FLERR,"Illegal pair_style command");
if (cutf_global > cut_inner_global)
error->all(FLERR,"Illegal pair_style command");
// reset cutoffs that have been explicitly set
if (allocated) {
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++)
if (setflag[i][j]) {
cut_inner[i][j] = cut_inner_global;
cut[i][j] = cut_global;
cutf_inner[i][j] = cutf_inner_global;
cutf[i][j] = cutf_global;
}
}
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairLJRelRes::coeff(int narg, char **arg)
{
if (narg != 6 && narg != 10)
error->all(FLERR,"Incorrect args for pair coefficients");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error);
utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error);
double epsilonf_one = utils::numeric(FLERR,arg[2],false,lmp);
double sigmaf_one = utils::numeric(FLERR,arg[3],false,lmp);
double epsilon_one = utils::numeric(FLERR,arg[4],false,lmp);
double sigma_one = utils::numeric(FLERR,arg[5],false,lmp);
double cut_inner_one = cut_inner_global;
double cut_one = cut_global;
double cutf_inner_one = cutf_inner_global;
double cutf_one = cutf_global;
if (narg == 10) {
cutf_inner_one = utils::numeric(FLERR,arg[6],false,lmp);
cutf_one = utils::numeric(FLERR,arg[7],false,lmp);
cut_inner_one = utils::numeric(FLERR,arg[8],false,lmp);
cut_one = utils::numeric(FLERR,arg[9],false,lmp);
}
if (cut_inner_one <= 0.0 || cut_inner_one > cut_one)
error->all(FLERR,"Incorrect args for pair coefficients");
if (cutf_inner_one <= 0.0 || cutf_inner_one > cutf_one)
error->all(FLERR,"Incorrect args for pair coefficients");
if (cutf_one > cut_inner_one)
error->all(FLERR,"Incorrect args for pair coefficients");
if (epsilon_one == 0.0) { //set cutoff for fg interactions
cut_inner_one = cutf_one;
cut_one = cutf_one;
}
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
epsilon[i][j] = epsilon_one;
sigma[i][j] = sigma_one;
epsilonf[i][j] = epsilonf_one;
sigmaf[i][j] = sigmaf_one;
cut_inner[i][j] = cut_inner_one;
cut[i][j] = cut_one;
cutf_inner[i][j] = cutf_inner_one;
cutf[i][j] = cutf_one;
setflag[i][j] = 1;
count++;
}
}
if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairLJRelRes::init_one(int i, int j)
{ double ljswc0,ljswc3,ljswc4;
// mixing rules:
// fg and cg - no mixing;
// fg and fg or fg anf hybrid - mixing fg parameters only
// cg and cg of cg and hybrid - mixing cg parameters only
// hybrid and hybrid - mixing fg and cg parameters
if (setflag[i][j] == 0) {
if (((epsilon[i][i] == 0.0) && (epsilonf[j][j] == 0.0))
|| ((epsilonf[i][i] == 0.0) && (epsilon[j][j] == 0.0))) { //no mixing
epsilon[i][j] = 0.0;
epsilonf[i][j] = 0.0;
sigma[i][j] = mix_distance(sigma[i][i],sigma[j][j]);
sigmaf[i][j] = mix_distance(sigmaf[i][i],sigmaf[j][j]);
cut_inner[i][j] = cutf[i][j] = cutf_inner[i][j] = cut[i][j] = 0.0;
} else if ((epsilon[i][i] == 0.0) || (epsilon[j][j] == 0.0)) { // fg only
epsilon[i][j] = 0.0;
sigma[i][j] = mix_distance(sigma[i][i],sigma[j][j]);
epsilonf[i][j] = mix_energy(epsilonf[i][i],epsilonf[j][j],
sigmaf[i][i],sigmaf[j][j]);
sigmaf[i][j] = mix_distance(sigmaf[i][i],sigmaf[j][j]);
cutf_inner[i][j] = mix_distance(cutf_inner[i][i],cutf_inner[j][j]);
cutf[i][j] = mix_distance(cutf[i][i],cutf[j][j]);
cut_inner[i][j] = cutf[i][j];
cut[i][j] = cutf[i][j];
} else if ((epsilonf[i][i] == 0.0) || (epsilonf[j][j] == 0.0)) { // cg only
epsilonf[i][j] = 0.0;
epsilon[i][j] = mix_energy(epsilon[i][i],epsilon[j][j],
sigma[i][i],sigma[j][j]);
sigma[i][j] = mix_distance(sigma[i][i],sigma[j][j]);
sigmaf[i][j] = mix_distance(sigmaf[i][i],sigmaf[j][j]);
cut_inner[i][j] = mix_distance(cut_inner[i][i],cut_inner[j][j]);
cut[i][j] = mix_distance(cut[i][i],cut[j][j]);
cutf_inner[i][j] = mix_distance(cutf_inner[i][i],cutf_inner[j][j]);
cutf[i][j] = mix_distance(cutf[i][i],cutf[j][j]);
} else { // fg and cg
epsilon[i][j] = mix_energy(epsilon[i][i],epsilon[j][j],
sigma[i][i],sigma[j][j]);
sigma[i][j] = mix_distance(sigma[i][i],sigma[j][j]);
epsilonf[i][j] = mix_energy(epsilonf[i][i],epsilonf[j][j],
sigmaf[i][i],sigmaf[j][j]);
sigmaf[i][j] = mix_distance(sigmaf[i][i],sigmaf[j][j]);
cut_inner[i][j] = mix_distance(cut_inner[i][i],cut_inner[j][j]);
cut[i][j] = mix_distance(cut[i][i],cut[j][j]);
cutf_inner[i][j] = mix_distance(cutf_inner[i][i],cutf_inner[j][j]);
cutf[i][j] = mix_distance(cutf[i][i],cutf[j][j]);
}
}
cut_inner_sq[i][j] = cut_inner[i][j]*cut_inner[i][j];
cutf_inner_sq[i][j] = cutf_inner[i][j]*cutf_inner[i][j];
cutfsq[i][j] = cutf[i][j]*cutf[i][j];
if (epsilon[i][j] != 0) { // cg or fg+cg (cut coefficients)
lj1[i][j] = 48.0 * epsilon[i][j] * pow(sigma[i][j],12.0);
lj2[i][j] = 24.0 * epsilon[i][j] * pow(sigma[i][j],6.0);
lj3[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],12.0);
lj4[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],6.0);
if (cut_inner[i][j] != cut[i][j]) {
double r6inv = 1.0/pow(cut_inner[i][j],6.0);
double t = cut[i][j] - cut_inner[i][j];
double tsq = t*t;
double ratio = sigma[i][j] / cut_inner[i][j];
ljsw0[i][j] = 4.0*epsilon[i][j]*(pow(ratio,12.0) - pow(ratio,6.0));
ljsw1[i][j] = r6inv*(lj1[i][j]*r6inv-lj2[i][j]) / cut_inner[i][j];
ljsw2[i][j] = -r6inv * (13.0*lj1[i][j]*r6inv - 7.0*lj2[i][j]) /
cut_inner_sq[i][j];
ljsw3[i][j] = -(3.0/tsq) * (ljsw1[i][j] + 2.0/3.0*ljsw2[i][j]*t);
ljsw4[i][j] = -1.0/(3.0*tsq) * (ljsw2[i][j] + 2.0*ljsw3[i][j]*t);
if (offset_flag) {
offset[i][j] = ljsw0[i][j] - ljsw1[i][j]*t - ljsw2[i][j]*tsq/2.0 -
ljsw3[i][j]*tsq*t/3.0 - ljsw4[i][j]*tsq*tsq/4.0;
} else offset[i][j] = 0.0;
} else {
ljsw0[i][j] = 0.0;
ljsw1[i][j] = 0.0;
ljsw2[i][j] = 0.0;
ljsw3[i][j] = 0.0;
ljsw4[i][j] = 0.0;
double ratio = sigma[i][j] / cut_inner[i][j];
if (offset_flag)
offset[i][j] = 4.0*epsilon[i][j]*(pow(ratio,12.0) - pow(ratio,6.0));
else offset[i][j] = 0.0;
}
} else {
ljsw0[i][j] = 0.0;
ljsw1[i][j] = 0.0;
ljsw2[i][j] = 0.0;
ljsw3[i][j] = 0.0;
ljsw4[i][j] = 0.0;
lj1[i][j] = 0.0;
lj2[i][j] = 0.0;
lj3[i][j] = 0.0;
lj4[i][j] = 0.0;
offset[i][j] = 0.0;
}
if (epsilonf[i][j] != 0 ) { // fg (cut=cutf coefficients)
ljf1[i][j] = 48.0 * epsilonf[i][j] * pow(sigmaf[i][j],12.0);
ljf2[i][j] = 24.0 * epsilonf[i][j] * pow(sigmaf[i][j],6.0);
ljf3[i][j] = 4.0 * epsilonf[i][j] * pow(sigmaf[i][j],12.0);
ljf4[i][j] = 4.0 * epsilonf[i][j] * pow(sigmaf[i][j],6.0);
if (cutf_inner[i][j] != cutf[i][j]) {
double r6inv = 1.0/pow(cutf_inner[i][j],6.0);
double t = cutf[i][j] - cutf_inner[i][j];
double tsq = t*t;
double ratio = sigmaf[i][j] / cutf_inner[i][j];
ljswf0[i][j] = 4.0*epsilonf[i][j]*(pow(ratio,12.0) - pow(ratio,6.0));
ljswf1[i][j] = r6inv*(ljf1[i][j]*r6inv-ljf2[i][j]) / cutf_inner[i][j];
ljswf2[i][j] = -r6inv * (13.0*ljf1[i][j]*r6inv - 7.0*ljf2[i][j]) /
cutf_inner_sq[i][j];
ljswf3[i][j] = -(3.0/tsq) * (ljswf1[i][j] + 2.0/3.0*ljswf2[i][j]*t);
ljswf4[i][j] = -1.0/(3.0*tsq) * (ljswf2[i][j] + 2.0*ljswf3[i][j]*t);
offsetsp[i][j] = ljswf0[i][j] - ljswf1[i][j]*t - ljswf2[i][j]*tsq/2.0-
ljswf3[i][j]*tsq*t/3.0 - ljswf4[i][j]*tsq*tsq/4.0;
} else {
ljswf0[i][j] = 0.0;
ljswf1[i][j] = 0.0;
ljswf2[i][j] = 0.0;
ljswf3[i][j] = 0.0;
ljswf4[i][j] = 0.0;
double ratio = sigmaf[i][j] / cutf_inner[i][j];
offsetsp[i][j] = 4.0*epsilonf[i][j]*(pow(ratio,12.0) - pow(ratio,6.0));
}
} else {
ljswf0[i][j] = 0.0;
ljswf1[i][j] = 0.0;
ljswf2[i][j] = 0.0;
ljswf3[i][j] = 0.0;
ljswf4[i][j] = 0.0;
ljf4[i][j] = 0.0;
ljf1[i][j] = 0.0;
ljf2[i][j] = 0.0;
ljf3[i][j] = 0.0;
offsetsp[i][j] = 0.0;
}
if (epsilon[i][j] != 0) { // cg or fg+cg (cutf coefficients)
if (cutf_inner[i][j] != cutf[i][j]) {
double r2inv = 1.0/pow(cutf[i][j],2.0);
double r6inv = r2inv * r2inv * r2inv;
double t = cutf[i][j] - cutf_inner[i][j];
double tsq = t*t;
double tsqinv = 1.0/tsq;
double ratio = sigma[i][j] / cutf[i][j];
double Et = 4.0 * epsilon[i][j] * (pow(ratio,12.0) - pow(ratio,6.0));
double Ft = r6inv * (lj1[i][j] * r6inv - lj2[i][j]) / cutf[i][j];
double dFt = -r6inv * (13.0*lj1[i][j]*r6inv - 7.0*lj2[i][j]) * r2inv;
double A = Ft + dFt * t / 3.0;
ljswc3 = 3.0 * A * tsqinv;
ljswc4 = -(2.0 * Ft + dFt * t) * tsqinv / t;
ljswc0 = Et + ljswc3 * t * tsq /3.0 + ljswc4 * tsq * tsq / 4.0;
offsetsm[i][j] = ljswc0;
} else {
ljswc0 = 0.0;
ljswc3 = 0.0;
ljswc4 = 0.0;
double ratio = sigma[i][j] / cutf_inner[i][j];
offsetsm[i][j] = 4.0*epsilon[i][j]*(pow(ratio,12.0) - pow(ratio,6.0));
}
} else {
ljswc0 = 0.0;
ljswc3 = 0.0;
ljswc4 = 0.0;
offsetsm[i][j] = 0.0;
}
// combine cutf coefficients
ljswf0[i][j] += ljswc0;
ljswf3[i][j] += ljswc3;
ljswf4[i][j] += ljswc4;
// combine shifting constants
offsetsp[i][j] += offset[i][j];
offsetsm[i][j] = offsetsp[i][j] - offsetsm[i][j];
if (i !=j) {
cut[j][i] = cut[i][j];
cutsq[j][i] = cutsq[i][j];
cutf[j][i] = cutf[i][j];
cutfsq[j][i] = cutfsq[i][j];
cut_inner[j][i] = cut_inner[i][j];
cut_inner_sq[j][i] = cut_inner_sq[i][j];
cutf_inner[j][i] = cutf_inner[i][j];
cutf_inner_sq[j][i] = cutf_inner_sq[i][j];
lj1[j][i] = lj1[i][j];
lj2[j][i] = lj2[i][j];
lj3[j][i] = lj3[i][j];
lj4[j][i] = lj4[i][j];
ljsw0[j][i] = ljsw0[i][j];
ljsw1[j][i] = ljsw1[i][j];
ljsw2[j][i] = ljsw2[i][j];
ljsw3[j][i] = ljsw3[i][j];
ljsw4[j][i] = ljsw4[i][j];
offset[j][i] = offset[i][j];
ljf1[j][i] = ljf1[i][j];
ljf2[j][i] = ljf2[i][j];
ljf3[j][i] = ljf3[i][j];
ljf4[j][i] = ljf4[i][j];
ljswf0[j][i] = ljswf0[i][j];
ljswf1[j][i] = ljswf1[i][j];
ljswf2[j][i] = ljswf2[i][j];
ljswf3[j][i] = ljswf3[i][j];
ljswf4[j][i] = ljswf4[i][j];
offsetsp[j][i] = offsetsp[i][j];
offsetsm[j][i] = offsetsm[i][j];
}
return cut[i][j];
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLJRelRes::write_restart(FILE *fp)
{
write_restart_settings(fp);
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
fwrite(&setflag[i][j],sizeof(int),1,fp);
if (setflag[i][j]) {
fwrite(&epsilonf[i][j],sizeof(double),1,fp);
fwrite(&sigmaf[i][j],sizeof(double),1,fp);
fwrite(&epsilon[i][j],sizeof(double),1,fp);
fwrite(&sigma[i][j],sizeof(double),1,fp);
fwrite(&cutf_inner[i][j],sizeof(double),1,fp);
fwrite(&cutf[i][j],sizeof(double),1,fp);
fwrite(&cut_inner[i][j],sizeof(double),1,fp);
fwrite(&cut[i][j],sizeof(double),1,fp);
}
}
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLJRelRes::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp);
MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
if (setflag[i][j]) {
if (me == 0) {
fread(&epsilonf[i][j],sizeof(double),1,fp);
fread(&sigmaf[i][j],sizeof(double),1,fp);
fread(&epsilon[i][j],sizeof(double),1,fp);
fread(&sigma[i][j],sizeof(double),1,fp);
fread(&cutf_inner[i][j],sizeof(double),1,fp);
fread(&cutf[i][j],sizeof(double),1,fp);
fread(&cut_inner[i][j],sizeof(double),1,fp);
fread(&cut[i][j],sizeof(double),1,fp);
}
MPI_Bcast(&epsilonf[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&sigmaf[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cutf_inner[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cutf[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_inner[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world);
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLJRelRes::write_restart_settings(FILE *fp)
{
fwrite(&cutf_inner_global,sizeof(double),1,fp);
fwrite(&cutf_global,sizeof(double),1,fp);
fwrite(&cut_inner_global,sizeof(double),1,fp);
fwrite(&cut_global,sizeof(double),1,fp);
fwrite(&offset_flag,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLJRelRes::read_restart_settings(FILE *fp)
{
int me = comm->me;
if (me == 0) {
fread(&cutf_inner_global,sizeof(double),1,fp);
fread(&cutf_global,sizeof(double),1,fp);
fread(&cut_inner_global,sizeof(double),1,fp);
fread(&cut_global,sizeof(double),1,fp);
fread(&offset_flag,sizeof(int),1,fp);
fread(&mix_flag,sizeof(int),1,fp);
}
MPI_Bcast(&cutf_inner_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cutf_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_inner_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&offset_flag,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void PairLJRelRes::write_data(FILE *fp)
{
for (int i = 1; i <= atom->ntypes; i++)
fprintf(fp,"%d %g %g %g %g\n",i,epsilonf[i][i],sigmaf[i][i],
epsilon[i][i],sigma[i][i]);
}
/* ----------------------------------------------------------------------
proc 0 writes all pairs to data file
------------------------------------------------------------------------- */
void PairLJRelRes::write_data_all(FILE *fp)
{
for (int i = 1; i <= atom->ntypes; i++)
for (int j = i; j <= atom->ntypes; j++)
fprintf(fp,"%d %d %g %g %g %g %g %g %g %g\n",i,j,
epsilonf[i][j],sigmaf[i][j],epsilon[i][j],sigma[i][j],
cutf_inner[i][j],cutf[i][j],cut_inner[i][j],cut[i][j]);
}
/* ---------------------------------------------------------------------- */
double PairLJRelRes::single(int /*i*/, int /*j*/, int itype, int jtype,
double rsq, double /*factor_coul*/,
double factor_lj, double &fforce)
{
double r2inv,r6inv,forcelj,philj,r,t,tsq,fskin;
r2inv = 1.0/rsq;
if (rsq < cutf_inner_sq[itype][jtype]) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv*(ljf1[itype][jtype]*r6inv-ljf2[itype][jtype]);
} else if (rsq < cutfsq[itype][jtype]) {
r = sqrt(rsq);
t = r - cutf_inner[itype][jtype];
tsq = t*t;
fskin = ljswf1[itype][jtype]+ljswf2[itype][jtype]*t+
ljswf3[itype][jtype]*tsq+ljswf4[itype][jtype]*tsq*t;
forcelj = fskin*r;
} else if (rsq < cut_inner_sq[itype][jtype]) {
r6inv = r2inv*r2inv*r2inv;
forcelj = r6inv * (lj1[itype][jtype]*r6inv-lj2[itype][jtype]);
} else {
r = sqrt(rsq);
t = r - cut_inner[itype][jtype];
tsq = t*t;
fskin = ljsw1[itype][jtype] + ljsw2[itype][jtype]*t +
ljsw3[itype][jtype]*tsq + ljsw4[itype][jtype]*tsq*t;
forcelj = fskin*r;
}
fforce = factor_lj*forcelj*r2inv;
if (rsq < cutf_inner_sq[itype][jtype]) {
philj = r6inv*(ljf3[itype][jtype]*r6inv-
ljf4[itype][jtype])-offsetsm[itype][jtype];
} else if (rsq < cutfsq[itype][jtype]) {
philj = ljswf0[itype][jtype]-ljswf1[itype][jtype]*t-
ljswf2[itype][jtype]*tsq/2.0-ljswf3[itype][jtype]*tsq*t/3.0-
ljswf4[itype][jtype]*tsq*tsq/4.0-offsetsp[itype][jtype];
} else if (rsq < cut_inner_sq[itype][jtype]) {
philj = r6inv * (lj3[itype][jtype]*r6inv - lj4[itype][jtype]) -
offset[itype][jtype];
} else {
philj = ljsw0[itype][jtype] - ljsw1[itype][jtype]*t -
ljsw2[itype][jtype]*tsq/2.0 - ljsw3[itype][jtype]*tsq*t/3.0 -
ljsw4[itype][jtype]*tsq*tsq/4.0 - offset[itype][jtype];
}
return factor_lj*philj;
}

74
src/pair_lj_relres.h Normal file
View File

@ -0,0 +1,74 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef PAIR_CLASS
PairStyle(lj/relres,PairLJRelRes)
#else
#ifndef LMP_PAIR_LJ_RELRES_H
#define LMP_PAIR_LJ_RELRES_H
#include "pair.h"
namespace LAMMPS_NS {
class PairLJRelRes : public Pair {
public:
PairLJRelRes(class LAMMPS *);
virtual ~PairLJRelRes();
virtual void compute(int, int);
void settings(int, char **);
void coeff(int, char **);
double init_one(int, int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_restart_settings(FILE *);
void read_restart_settings(FILE *);
void write_data(FILE *);
void write_data_all(FILE *);
double single(int, int, int, int, double, double, double, double &);
protected:
double cut_inner_global, cut_global, cutf_inner_global, cutf_global;
double **cut,**cut_inner,**cut_inner_sq,**cutf,**cutfsq,**cutf_inner,**cutf_inner_sq;
double **epsilon,**sigma;
double **epsilonf,**sigmaf;
double **lj1,**lj2,**lj3,**lj4;
double **ljf1,**ljf2,**ljf3,**ljf4;
double **ljsw0,**ljsw1,**ljsw2,**ljsw3,**ljsw4;
double **ljswf0,**ljswf1,**ljswf2,**ljswf3,**ljswf4;
double **offset,**offsetsp,**offsetsm;
void allocate();
};
}
#endif
#endif
/* ERROR/WARNING messages:
E: Illegal ... command
Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line.
E: Incorrect args for pair coefficients
Self-explanatory. Check the input script or data file.
*/

View File

@ -0,0 +1,91 @@
---
lammps_version: 10 Feb 2021
date_generated: Sun Feb 28 23:32:03 2021
epsilon: 5e-13
prerequisites: ! |
pair born
pre_commands: ! ""
post_commands: ! ""
input_file: in.metal
pair_style: lj/relres 4.0 5.0 7.0 8.0
pair_coeff: ! |
1 1 0.00121585 3.905 0 3.905
1 2 0.00121585 3.905 0.00121585 3.905
2 2 0.00121585 3.905 0.00121585 3.905
extract: ! ""
natoms: 32
init_vdwl: 278.180950996338
init_coul: 0
init_stress: ! |2-
1.1877397131221412e+03 1.1638761902735005e+03 1.0939934354329380e+03 6.8492993891187240e+01 -3.1686913926055702e+00 -3.0318931219574608e+01
init_forces: ! |2
1 1.1257725802206693e-01 1.5003115850475984e+01 3.7161715906573249e+00
2 -3.9371074133244033e+00 -1.5797318896888202e+01 9.8265483014448343e+00
3 -9.8213019857385877e+00 4.5398626929289222e+01 -1.1984345677554444e+01
4 3.8619783724436347e+00 -2.2367670285503563e+00 -9.8667499113042698e+00
5 1.7421331278287461e+01 3.5003615980663376e+01 5.4604696757275848e+00
6 9.1359404522604510e+00 4.9829473194427507e+00 -2.4129924428156402e+00
7 -1.5766701507678247e+01 2.0974333341024735e+01 -2.6155159105794188e+00
8 -1.5183115657866077e+01 -1.2451351620442299e+01 1.1636254945740577e+01
9 3.8090425554608491e+00 -1.0907791092741443e+01 -6.1447809963829947e+00
10 -1.0395436945303533e+01 -3.8367074884512746e+01 -2.5800182132854442e+01
11 -7.9545805384553478e+00 -1.0115999734551822e+01 9.0610883954699659e+00
12 9.1249981420231450e+00 -2.0896442188182313e+01 -1.2969177591443883e+00
13 -4.5921575862854080e+00 4.6114711730821698e+00 -1.0000636415917823e+01
14 1.2749517192690996e+01 -3.9970170399846938e+00 1.6639389558970819e+01
15 -6.5965824174094028e+00 6.6153731373766966e+00 -5.6427929840815771e+00
16 2.4351513585083858e+01 -2.0415196023133920e+01 8.4814988111712459e+00
17 1.0299109427501774e+01 2.9546303629211895e+01 -1.9341947600693978e+00
18 -3.7195187867020032e+01 -1.1030315937513105e+01 -1.6710107278365474e+01
19 -3.9497427656163509e+01 -2.2552418505155995e+01 8.0707729455886117e+00
20 4.7864511359094548e+00 3.9752456387755553e+00 -7.5621289377276177e+00
21 3.8528644298025895e+01 1.3519655659162099e+01 8.5256493265734801e-01
22 1.1077729180999789e+00 -1.6208072481067383e+01 -3.0979650557204157e+00
23 1.4113913436346907e+01 3.1494001129414158e+01 -1.8142897754964714e+01
24 3.3881181432547542e+01 2.4370415248363962e+01 2.0078166368292568e+01
25 1.4753375696198107e+01 -1.6860224492541906e-01 -1.0357256153984068e+01
26 -1.4396504175389046e+01 -3.8109515237450715e+01 3.1516681941309770e+01
27 1.1459132062617343e+01 -2.7648747331934835e+00 -6.0134710728971097e-01
28 8.6792370740090519e-01 1.3711362475104321e+01 1.7060845401384995e+01
29 1.4886320532090263e+01 2.6415990570893030e+01 -6.3587763727632818e-01
30 -8.3053344792491117e+00 -6.7854505410487436e+00 -1.9926676569327796e+01
31 -3.9722675775001202e+00 -2.6202171362782902e+01 1.7034787150328516e+01
32 -4.7637017675627781e+01 -1.6616078530154439e+01 -4.7018745333836263e+00
run_vdwl: 277.787230338519
run_coul: 0
run_stress: ! |2-
1.1861045479571328e+03 1.1621545499754693e+03 1.0925950582629255e+03 6.7871794269310669e+01 -3.2811225906376507e+00 -3.0119921761225132e+01
run_forces: ! |2
1 5.0761504793041319e-02 1.4972569031846831e+01 3.7082674582636526e+00
2 -3.9381058430565288e+00 -1.5782802165860760e+01 9.8125660936307053e+00
3 -9.7425327584084691e+00 4.5033863259233172e+01 -1.1963779315033937e+01
4 3.8461752102094633e+00 -2.2100266107527706e+00 -9.8627527183535459e+00
5 1.7286298464840606e+01 3.4803069057765718e+01 5.5124972577097848e+00
6 9.1365148074930023e+00 4.9905844771929031e+00 -2.4069911355223432e+00
7 -1.5710733381690963e+01 2.0948145953415406e+01 -2.6352545999033143e+00
8 -1.5191011151562712e+01 -1.2423405537748620e+01 1.1609656474941872e+01
9 3.8300649394200663e+00 -1.0939289188313623e+01 -6.1652357236607127e+00
10 -1.0179095304450680e+01 -3.8138499760472136e+01 -2.5614937128525611e+01
11 -7.9328424473210770e+00 -1.0126931858947339e+01 9.0323728831931760e+00
12 9.1240445709604625e+00 -2.0801517592482849e+01 -1.2864845436518126e+00
13 -4.6154026287895666e+00 4.5678314059294269e+00 -9.9574005013456635e+00
14 1.2739453844823467e+01 -3.8639640724167696e+00 1.6503517451482374e+01
15 -6.5851001501170838e+00 6.5954448786505750e+00 -5.6251052965943709e+00
16 2.4131969420516253e+01 -2.0319213195026325e+01 8.4318175142187748e+00
17 1.0274453472246744e+01 2.9448733262109759e+01 -1.9321994588155988e+00
18 -3.6997902937678973e+01 -1.0947728341166549e+01 -1.6629476705430637e+01
19 -3.9256632036490366e+01 -2.2382462798833316e+01 8.0133124681507351e+00
20 4.7785967094492916e+00 3.9919292918758300e+00 -7.5598392292642806e+00
21 3.8336179494883886e+01 1.3372767736301565e+01 8.9441495342140864e-01
22 1.1374772919402263e+00 -1.6159423036575365e+01 -3.0958996778988328e+00
23 1.4060431172656273e+01 3.1322405912593315e+01 -1.8048650528231175e+01
24 3.3628163932173699e+01 2.4221707885083035e+01 1.9997423960892526e+01
25 1.4719235839277802e+01 -1.3664529090023003e-01 -1.0322356751316049e+01
26 -1.4249543090594170e+01 -3.7792175725759691e+01 3.1320364026272529e+01
27 1.1432267884704974e+01 -2.7686316107074638e+00 -6.2637494606673982e-01
28 8.4057547201635785e-01 1.3690742783314787e+01 1.7006819241247609e+01
29 1.4764759789215882e+01 2.6280384715684544e+01 -6.1061690968417726e-01
30 -8.2772161889870315e+00 -6.7692020199003098e+00 -1.9822795745009806e+01
31 -4.0013247597925483e+00 -2.6130935247333245e+01 1.6988712159243850e+01
32 -4.7439981142681432e+01 -1.6547325597799496e+01 -4.6655910283603808e+00
...