Commit bfea3dce authored by sjplimp's avatar sjplimp Committed by GitHub
Browse files

Merge pull request #268 from arielzn/born_dsf

pair styles born/coul/dsf and born/coul/dsf/cs added
parents eef862ee 9de1a2a0
Loading
Loading
Loading
Loading
+22 −5
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ pair_style born/coul/msm/omp command :h3
pair_style born/coul/wolf command :h3
pair_style born/coul/wolf/gpu command :h3
pair_style born/coul/wolf/omp command :h3
pair_style born/coul/dsf command :h3
pair_style born/coul/dsf/cs command :h3

[Syntax:]

@@ -37,7 +39,11 @@ args = list of arguments for a particular style :ul
  {born/coul/wolf} args = alpha cutoff (cutoff2)
    alpha = damping parameter (inverse distance units)
    cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units)
    cutoff2 = global cutoff for Coulombic (optional) (distance units) :pre
    cutoff2 = global cutoff for Coulombic (optional) (distance units)
  {born/coul/dsf} or {born/coul/dsf/cs} args = alpha cutoff (cutoff2)
    alpha = damping parameter (inverse distance units)
    cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units)
    cutoff2 = global cutoff for Coulombic (distance units) :pre

[Examples:]

@@ -62,6 +68,11 @@ pair_style born/coul/wolf 0.25 10.0 9.0
pair_coeff * * 6.08 0.317 2.340 24.18 11.51
pair_coeff 1 1 6.08 0.317 2.340 24.18 11.51 :pre

pair_style born/coul/dsf 0.1 10.0 12.0
pair_coeff * *   0.0 1.00 0.00 0.00 0.00
pair_coeff 1 1 480.0 0.25 0.00 1.05 0.50 :pre


[Description:]

The {born} style computes the Born-Mayer-Huggins or Tosi/Fumi
@@ -90,10 +101,15 @@ term.
The {born/coul/wolf} style adds a Coulombic term as described for the
Wolf potential in the "coul/wolf"_pair_coul.html pair style.

The {born/coul/dsf} style computes the Coulomb contribution
with the damped shifted force model as in the
"coul/dsf"_pair_coul.html style.

Style {born/coul/long/cs} is identical to {born/coul/long} except that
a term is added for the "core/shell model"_Section_howto.html#howto_25
to allow charges on core and shell particles to be separated by r =
0.0.
0.0. The same correction is introduced for {born/coul/dsf/cs} style
which is identical to {born/coul/dsf}.

Note that these potentials are related to the "Buckingham
potential"_pair_buck.html.
@@ -116,9 +132,10 @@ The second coefficient, rho, must be greater than zero.
The last coefficient is optional.  If not specified, the global A,C,D
cutoff specified in the pair_style command is used.

For {born/coul/long} and {born/coul/wolf} no Coulombic cutoff can be
specified for an individual I,J type pair.  All type pairs use the
same global Coulombic cutoff specified in the pair_style command.
For {born/coul/long}, {born/coul/wolf} and {born/coul/dsf} no
Coulombic cutoff can be specified for an individual I,J type pair.
All type pairs use the same global Coulombic cutoff specified in
the pair_style command.

:line

+20 −3
Original line number Diff line number Diff line
@@ -8,19 +8,24 @@

pair_style born/coul/long/cs command :h3
pair_style buck/coul/long/cs command :h3
pair_style born/coul/dsf/cs command :h3

[Syntax:]

pair_style style args :pre

style = {born/coul/long/cs} or {buck/coul/long/cs}
style = {born/coul/long/cs} or {buck/coul/long/cs} or {born/coul/dsf/cs}
args = list of arguments for a particular style :ul
  {born/coul/long/cs} args = cutoff (cutoff2)
    cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units)
    cutoff2 = global cutoff for Coulombic (optional) (distance units)
  {buck/coul/long/cs} args = cutoff (cutoff2)
    cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units)
    cutoff2 = global cutoff for Coulombic (optional) (distance units) :pre
    cutoff2 = global cutoff for Coulombic (optional) (distance units)
  {born/coul/dsf/cs} args = alpha cutoff (cutoff2)
    alpha = damping parameter (inverse distance units)
    cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units)
    cutoff2 = global cutoff for Coulombic (distance units) :pre

[Examples:]

@@ -32,6 +37,10 @@ pair_style buck/coul/long/cs 10.0 8.0
pair_coeff * * 100.0 1.5 200.0
pair_coeff 1 1 100.0 1.5 200.0 9.0 :pre

pair_style born/coul/dsf/cs 0.1 10.0 12.0
pair_coeff * *   0.0 1.00 0.00 0.00 0.00
pair_coeff 1 1 480.0 0.25 0.00 1.05 0.50 :pre

[Description:]

These pair styles are designed to be used with the adiabatic
@@ -39,7 +48,7 @@ core/shell model of "(Mitchell and Finchham)"_#MitchellFinchham. See
"Section 6.25"_Section_howto.html#howto_25 of the manual for an
overview of the model as implemented in LAMMPS.

These pair styles are identical to the "pair_style
The styles with a {coul/long} term are identical to the "pair_style
born/coul/long"_pair_born.html and "pair_style
buck/coul/long"_pair_buck.html styles, except they correctly treat the
special case where the distance between two charged core and shell
@@ -63,6 +72,14 @@ where C is an energy-conversion constant, Qi and Qj are the charges on
the core and shell, epsilon is the dielectric constant and r_min is the
minimal distance.

The pair style {born/coul/dsf/cs} is identical to the
"pair_style born/coul/dsf"_pair_born.html style, which uses the
the damped shifted force model as in "coul/dsf"_pair_coul.html
to compute the Coulomb contribution. This approach does not require
a long-range solver, thus the only correction is the addition of a
minimal distance to avoid the possible r = 0.0 case for a
core/shell pair.

[Restrictions:]

These pair styles are part of the CORESHELL package.  They are only
+71 −0
Original line number Diff line number Diff line
# Testsystem for core-shell model compared to Mitchel and Finchham
# Hendrik Heenen, June 2014

# ------------------------ INITIALIZATION ----------------------------

units 		metal
dimension	3
boundary	p	p	p
atom_style	full

# ----------------------- ATOM DEFINITION ----------------------------

fix csinfo all property/atom i_CSID
read_data data.coreshell fix csinfo NULL CS-Info

group cores type 1 2
group shells type 3 4

neighbor 2.0 bin
comm_modify vel yes

# ------------------------ FORCE FIELDS ------------------------------

pair_style   born/coul/dsf/cs 0.1 20.0 20.0    # A, rho, sigma=0, C, D 
pair_coeff   * *      0.0 1.000   0.00  0.00   0.00
pair_coeff   3 3    487.0 0.23768 0.00  1.05   0.50 #Na-Na
pair_coeff   3 4 145134.0 0.23768 0.00  6.99   8.70 #Na-Cl
pair_coeff   4 4 405774.0 0.23768 0.00 72.40 145.40 #Cl-Cl

bond_style harmonic
bond_coeff 1 63.014 0.0
bond_coeff 2 25.724 0.0

# ------------------------ Equilibration Run -------------------------------

reset_timestep 0

thermo 50
thermo_style custom step etotal pe ke temp press &
             epair evdwl ecoul elong ebond fnorm fmax vol

compute CSequ all temp/cs cores shells 

# output via chunk method

#compute prop all property/atom i_CSID
#compute cs_chunk all chunk/atom c_prop
#compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0
#fix ave_chunk all ave/time 100 1 100 c_cstherm file chunk.dump mode vector 

thermo_modify temp CSequ

# velocity bias option

velocity all create 1427 134 dist gaussian mom yes rot no bias yes temp CSequ
velocity all scale 1427 temp CSequ

fix thermoberendsen all temp/berendsen 1427 1427 0.4
fix nve all nve
fix_modify thermoberendsen temp CSequ

# 2 fmsec timestep

timestep 0.002
run 500

unfix thermoberendsen

# ------------------------ Dynamic Run -------------------------------

run 1000
+185 −0
Original line number Diff line number Diff line
LAMMPS (27 Oct 2016)
# Testsystem for core-shell model compared to Mitchel and Finchham
# Hendrik Heenen, June 2014

# ------------------------ INITIALIZATION ----------------------------

units 		metal
dimension	3
boundary	p	p	p
atom_style	full

# ----------------------- ATOM DEFINITION ----------------------------

fix csinfo all property/atom i_CSID
read_data data.coreshell fix csinfo NULL CS-Info
  orthogonal box = (0 0 0) to (24.096 24.096 24.096)
  1 by 1 by 1 MPI processor grid
  reading atoms ...
  432 atoms
  scanning bonds ...
  1 = max bonds/atom
  reading bonds ...
  216 bonds
  1 = max # of 1-2 neighbors
  0 = max # of 1-3 neighbors
  0 = max # of 1-4 neighbors
  1 = max # of special neighbors

group cores type 1 2
216 atoms in group cores
group shells type 3 4
216 atoms in group shells

neighbor 2.0 bin
comm_modify vel yes

# ------------------------ FORCE FIELDS ------------------------------

pair_style   born/coul/dsf/cs 0.1 20.0 20.0    # A, rho, sigma=0, C, D
pair_coeff   * *      0.0 1.000   0.00  0.00   0.00
pair_coeff   3 3    487.0 0.23768 0.00  1.05   0.50 #Na-Na
pair_coeff   3 4 145134.0 0.23768 0.00  6.99   8.70 #Na-Cl
pair_coeff   4 4 405774.0 0.23768 0.00 72.40 145.40 #Cl-Cl

bond_style harmonic
bond_coeff 1 63.014 0.0
bond_coeff 2 25.724 0.0

# ------------------------ Equilibration Run -------------------------------

reset_timestep 0

thermo 50
thermo_style custom step etotal pe ke temp press              epair evdwl ecoul elong ebond fnorm fmax vol

compute CSequ all temp/cs cores shells

# output via chunk method

#compute prop all property/atom i_CSID
#compute cs_chunk all chunk/atom c_prop
#compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0
#fix ave_chunk all ave/time 100 1 100 c_cstherm file chunk.dump mode vector

thermo_modify temp CSequ

# velocity bias option

velocity all create 1427 134 dist gaussian mom yes rot no bias yes temp CSequ
Neighbor list info ...
  1 neighbor list requests
  update every 1 steps, delay 10 steps, check yes
  max neighbors/atom: 2000, page size: 100000
  master list distance cutoff = 22
  ghost atom cutoff = 22
  binsize = 11 -> bins = 3 3 3
velocity all scale 1427 temp CSequ

fix thermoberendsen all temp/berendsen 1427 1427 0.4
fix nve all nve
fix_modify thermoberendsen temp CSequ

# 2 fmsec timestep

timestep 0.002
run 500
Memory usage per processor = 7.04355 Mbytes
Step TotEng PotEng KinEng Temp Press E_pair E_vdwl E_coul E_long E_bond Fnorm Fmax Volume 
       0   -635.80596   -675.46362    39.657659         1427   -21302.622   -675.46362    1.6320365   -677.09565            0            0 1.3517686e-14 2.942091e-15      13990.5 
      50    -633.9898   -666.02679     32.03699    1152.7858   -4578.5681   -668.50431    37.800204   -706.30452            0    2.4775226    14.568073    4.3012389      13990.5 
     100   -631.89604   -661.96148    30.065442    1081.8436   -3536.6738   -664.61798     39.18583   -703.80381            0    2.6564973    14.677968    3.9051029      13990.5 
     150   -630.08723   -662.95879    32.871559     1182.816   -109.19506   -665.76772    46.247821   -712.01554            0    2.8089226    15.270039    2.9328953      13990.5 
     200   -628.55895   -663.97376    35.414806    1274.3296     -1748.35   -666.58439    41.738552   -708.32294            0    2.6106349    14.148282    3.1047826      13990.5 
     250   -627.28761   -661.92274    34.635123    1246.2743   -1280.4899     -664.917    43.045475   -707.96247            0    2.9942594    14.248617    2.4694705      13990.5 
     300    -626.6163   -663.65651    37.040209    1332.8164   -1887.9043   -666.35215     40.84964   -707.20179            0    2.6956373    13.142643    1.9263242      13990.5 
     350   -625.76781   -664.66441    38.896607    1399.6151    -1839.482   -667.47659    40.999206   -708.47579            0    2.8121749    13.601238    1.9262698      13990.5 
     400   -625.02586   -661.46042    36.434568    1311.0236    -868.2031   -664.40231     43.21398   -707.61629            0    2.9418875    14.945389    2.7493413      13990.5 
     450    -624.3278   -660.50844    36.180639    1301.8865   -2203.3944   -663.49896    40.008669   -703.50763            0    2.9905179    14.158866    1.7299899      13990.5 
     500   -623.56254   -661.33839    37.775849    1359.2869   -810.50736   -664.11652    42.993999   -707.11052            0    2.7781274     13.68709    2.9115277      13990.5 
Loop time of 10.7162 on 1 procs for 500 steps with 432 atoms

Performance: 8.063 ns/day, 2.977 hours/ns, 46.658 timesteps/s
99.9% CPU use with 1 MPI tasks x no OpenMP threads

MPI task timing breakdown:
Section |  min time  |  avg time  |  max time  |%varavg| %total
---------------------------------------------------------------
Pair    | 10.478     | 10.478     | 10.478     |   0.0 | 97.78
Bond    | 0.0029511  | 0.0029511  | 0.0029511  |   0.0 |  0.03
Neigh   | 0.14159    | 0.14159    | 0.14159    |   0.0 |  1.32
Comm    | 0.074382   | 0.074382   | 0.074382   |   0.0 |  0.69
Output  | 0.00054097 | 0.00054097 | 0.00054097 |   0.0 |  0.01
Modify  | 0.010588   | 0.010588   | 0.010588   |   0.0 |  0.10
Other   |            | 0.007748   |            |       |  0.07

Nlocal:    432 ave 432 max 432 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost:    9280 ave 9280 max 9280 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs:    297636 ave 297636 max 297636 min
Histogram: 1 0 0 0 0 0 0 0 0 0

Total # of neighbors = 297636
Ave neighs/atom = 688.972
Ave special neighs/atom = 1
Neighbor list builds = 20
Dangerous builds = 0

unfix thermoberendsen

# ------------------------ Dynamic Run -------------------------------

run 1000
Memory usage per processor = 7.04355 Mbytes
Step TotEng PotEng KinEng Temp Press E_pair E_vdwl E_coul E_long E_bond Fnorm Fmax Volume 
     500   -623.56254   -661.33839    37.775849    1359.2869   -810.50736   -664.11652    42.993999   -707.11052            0    2.7781274     13.68709    2.9115277      13990.5 
     550    -623.5004   -660.74472    37.244326    1340.1611   -1413.4326   -663.99669    41.875014    -705.8717            0    3.2519651    15.097948     2.278405      13990.5 
     600   -623.46963   -659.61729    36.147655    1300.6997   -521.50578   -662.54994    43.956071   -706.50601            0    2.9326492     14.99649    2.6334959      13990.5 
     650   -623.49291   -661.50698    38.014069    1367.8588   -1230.0925   -664.21074    42.027844   -706.23859            0    2.7037578    13.982308    1.6247207      13990.5 
     700    -623.4913   -660.11564     36.62434    1317.8522   -727.89052   -663.24921    43.413397   -706.66261            0    3.1335699    15.009937    2.0563966      13990.5 
     750   -623.50292   -657.95982      34.4569    1239.8613    636.46644   -661.16971    46.539267   -707.70898            0    3.2098934     15.25993    2.1864622      13990.5 
     800    -623.5176   -659.92032    36.402711    1309.8773   -912.75799   -662.84989    42.668309    -705.5182            0    2.9295708    13.577516    2.0006099      13990.5 
     850   -623.44098   -660.92727    37.486295    1348.8679   -550.40358   -664.08308    43.667245   -707.75033            0    3.1558098    14.836208     2.279198      13990.5 
     900   -623.46361   -661.21737    37.753765    1358.4923    1267.8647   -664.52195     47.67284   -712.19479            0    3.3045765    15.058502     1.886141      13990.5 
     950   -623.50114   -660.58464    37.083492    1334.3739    1754.7359   -663.48186     48.70363   -712.18549            0     2.897226    15.519042    2.2654928      13990.5 
    1000   -623.50161   -660.02915    36.527539     1314.369    228.76104   -663.31152    45.374099   -708.68562            0    3.2823685    14.783709    2.4201134      13990.5 
    1050   -623.45985   -660.57417    37.114321    1335.4832    -1490.604   -663.75391    41.258878   -705.01279            0    3.1797391    14.250262    2.3153255      13990.5 
    1100   -623.51051   -661.20338    37.692871    1356.3011    1791.7899   -664.01042    48.626451   -712.63687            0     2.807039    15.559872     3.184101      13990.5 
    1150   -623.51067   -663.19545    39.684776    1427.9758    1023.0584   -666.07723      46.5628   -712.64003            0    2.8817804    13.895322    2.3950292      13990.5 
    1200   -623.49625    -659.6715    36.175253    1301.6927    1600.2805   -662.62259    48.522365   -711.14495            0    2.9510854    15.567834    2.1677651      13990.5 
    1250   -623.48282   -660.56735    37.084533    1334.4113   -871.67341   -663.86673    42.560699   -706.42743            0    3.2993759    14.569539    2.0093709      13990.5 
    1300   -623.47744   -663.63125    40.153811     1444.853    1343.7147   -666.39564    47.104842   -713.50048            0    2.7643857    14.186019    1.4599359      13990.5 
    1350   -623.49121   -661.42731    37.936096    1365.0531    589.73669   -664.46099    45.947687   -710.40867            0    3.0336821    14.801223    2.7486556      13990.5 
    1400   -623.50803   -660.03912     36.53109    1314.4968    362.97431   -663.24909    45.772904   -709.02199            0    3.2099708    14.566488    1.9170714      13990.5 
    1450   -623.51243   -659.65548    36.143052     1300.534    2853.0755    -663.0534    51.355353   -714.40875            0    3.3979157    15.890282    2.5251359      13990.5 
    1500   -623.51621   -661.87741    38.361201    1380.3496    740.04973   -665.00896    46.208742    -711.2177            0    3.1315492    15.168927    2.4710846      13990.5 
Loop time of 22.2766 on 1 procs for 1000 steps with 432 atoms

Performance: 7.757 ns/day, 3.094 hours/ns, 44.890 timesteps/s
99.9% CPU use with 1 MPI tasks x no OpenMP threads

MPI task timing breakdown:
Section |  min time  |  avg time  |  max time  |%varavg| %total
---------------------------------------------------------------
Pair    | 21.8       | 21.8       | 21.8       |   0.0 | 97.86
Bond    | 0.005852   | 0.005852   | 0.005852   |   0.0 |  0.03
Neigh   | 0.30423    | 0.30423    | 0.30423    |   0.0 |  1.37
Comm    | 0.14388    | 0.14388    | 0.14388    |   0.0 |  0.65
Output  | 0.0010855  | 0.0010855  | 0.0010855  |   0.0 |  0.00
Modify  | 0.0064189  | 0.0064189  | 0.0064189  |   0.0 |  0.03
Other   |            | 0.01527    |            |       |  0.07

Nlocal:    432 ave 432 max 432 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost:    9318 ave 9318 max 9318 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs:    297131 ave 297131 max 297131 min
Histogram: 1 0 0 0 0 0 0 0 0 0

Total # of neighbors = 297131
Ave neighs/atom = 687.803
Ave special neighs/atom = 1
Neighbor list builds = 44
Dangerous builds = 0
Total wall time: 0:00:33
+185 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading