Revamped examples

This commit is contained in:
Shern Tee
2022-04-26 07:22:44 +00:00
committed by Ludwig Ahrens
parent bc0236d869
commit 66b8ab9c6e
143 changed files with 4659 additions and 45735 deletions

View File

@ -112,7 +112,8 @@ moderate mesh size but requires more memory.
kspace_modify amat onestep/twostep
The *fix_modify tf* option allows to specify Thomas-Fermi parameters (:ref:`Scalfi <Scalfi>`) for each atom type.
The *fix_modify tf* option enables the Thomas-Fermi metallicity model
(:ref:`Scalfi <Scalfi>`) and allows parameters to be set for each atom type.
.. code-block:: LAMMPS
@ -121,13 +122,67 @@ The *fix_modify tf* option allows to specify Thomas-Fermi parameters (:ref:`Scal
If this option is used parameters must be set for all atom types of the electrode.
The *fix_modify timer* option turns on (off) additional timer outputs in the log
file, for code developers to track optimization.
.. code-block:: LAMMPS
fix_modify ID timer on/off
The *fix_modify set* options allow calculated quantities to be accessed via
internal variables. Currently four types of quantities can be accessed:
.. code-block:: LAMMPS
fix-modify ID set v group-ID variablename
fix-modify ID set qsb group-ID variablename
fix-modify ID set mc group-ID1 group-ID2 variablename
fix-modify ID set me group-ID1 group-ID2 variablename
One use case is to output the potential that is internally calculated and
applied to each electrode group by *fix electrode/conq* or *fix electrode/thermo*.
For that case the *v* option makes *fix electrode* update the variable
*variablename* with the potential applied to group *group-ID*, where *group-ID*
must be a group whose charges are updated by *fix electrode* and *variablename*
must be an internal-style variable:
.. code-block:: LAMMPS
fix conq bot electrode/conq -1.0 1.979 couple top 1.0
variable vbot internal 0.0
fix_modify conq set v bot vbot
The *qsb* option similarly outputs the total updated charge of the group if its
potential were 0.0V. The *mc* option requires two *group-IDs*, and outputs the
entry \{*group-ID1*, *group-ID2*\} of the (symmetric) *macro-capacitance* matrix
(MC) which relates the electrodes' applied potentials (V), total charges (Q), and
total charges at 0.0 V (Qsb):
.. math::
\mathbf{Q} = \mathbf{Q}_{SB} + \mathbf{MC} \cdot \mathbf{V}
Lastly, the *me* option also requires two *group-IDs* and outputs the entry
\{*group-ID1*, *group-ID2*\} of the *macro-elastance* matrix, which is the
inverse of the macro-capacitance matrix. (As the names denote, the
macro-capacitance matrix gives electrode charges from potentials, and the
macro-elastance matrix gives electrode potentials from charges).
.. warning::
Positions of electrode particles have to be immobilized at all times.
The parallelization for the fix works best if electrode atoms are evenly
distributed across processors. For a system with two electrodes at the bottom
and top of the cell this can be achieved with *processors * * 2*.
and top of the cell this can be achieved with *processors * * 2*, or with the
line
.. code-block:: LAMMPS
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
which avoids an error if the script is run on an odd number of processors (such
as on just one processor for testing).
----------

View File

@ -0,0 +1,27 @@
These examples demonstrate the use of the ELECTRODE package for constant potential molecular dynamics.
planar/
au-vac.data -- gold electrodes with vacuum
in.planar* -- comparison of gold electrodes with vacuum to theoretical capacitance of planar capacitor
-- 5x, further labeled by long-range solver (ewald / pppm) and boundary correction (ew2d / ew3dc / ffield)
-- the pppm-ew2d combination would not give correct results and will throw an error if selected
test.sh -- run all in.planar files and check charge at 1.2V and %difference from theoretical (last column)
graph-il/
graph-il.data -- graphene electrodes with electrolyte (coarse-grained BMIm-PF6)
in.conp -- reference run at constant potential
in.etypes -- type-based smart neighborlists
in.ffield -- finite field method with fully periodic cell
in.ramp -- equal-style ramping potential difference
in.conq -- constrained electrode total charges
in.conq2 -- constrained electrode total charges via dynamically-set potentials
in.thermo -- thermalize electrolyte with thermopotentiostat instead of NVT
au-aq/
au-aq.data -- gold electrodes with electrolyte (SPC water + NaCl)
in.ffield -- finite field method with fully periodic cell
in.tf -- Thomas-Fermi metallicity model with more delocalized charges
# future work:
# in.cylinder -- comparison of carbon nanotube to theoretical induced charge for charge near circular conductor

View File

@ -21,6 +21,26 @@ Masses
6 196.966553 # Au1
7 196.966553 # Au2
Pair Coeffs # lj/cut/coul/long
1 0.15540152963671128 3.166 # O / SPC
2 0.0 0.0 # H1 / SPC
3 0.0 0.0 # H2 / SPC
4 0.09999999999999999 2.584 # Na
5 0.09999999999999999 4.401 # Cl
6 5.29 2.951 # Au1
7 5.29 2.951 # Au2
Bond Coeffs # harmonic
1 450 0.9999965664194801
2 450 0.9999965664194801
Angle Coeffs # harmonic
1 55 109.46937551578806
Atoms # full
1 1 4 1.0 7.888691126451055e-01 4.808873587891468e-01 6.184365012625710e+01 0 0 0 # Na

View File

@ -0,0 +1,11 @@
# electrodes with constant potential using finite field
# for z-periodic gold-saline electrochemical cell
boundary p p p # ffield uses periodic z-boundary and no slab
include settings.mod # styles, groups, computes and fixes
fix conp bot electrode/conp -1.0 1.805132 couple top 1.0 symm on ffield yes etypes 6*7
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qtop c_qbot c_qztop c_qzbot
run 500

View File

@ -0,0 +1,15 @@
# electrodes with constant potential using finite field
# for z-periodic gold-saline electrochemical cell
# using Thomas-Fermi metallicity model: electrode q and qz will be
# smaller because of more delocalized charge
boundary p p p # ffield uses periodic z-boundary and no slab
include settings.mod # styles, groups, computes and fixes
fix conp bot electrode/conp -1.0 1.805132 couple top 1.0 symm on ffield yes etypes 6*7
fix_modify conp tf 6 1.0 18.1715745
fix_modify conp tf 7 1.0 18.1715745
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qtop c_qbot c_qztop c_qzbot
run 500

View File

@ -0,0 +1,150 @@
LAMMPS (24 Mar 2022)
# electrodes with constant potential using finite field
# for z-periodic gold-saline electrochemical cell
boundary p p p # ffield uses periodic z-boundary and no slab
include settings.mod # styles, groups, computes and fixes
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
atom_style full
pair_style lj/cut/coul/long 15
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
read_data "data.au-aq"
Reading data file ...
orthogonal box = (0 0 0) to (36.629993 36.629993 107.95213)
1 by 1 by 1 MPI processor grid
reading atoms ...
9798 atoms
reading velocities ...
9798 velocities
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
4320 bonds
reading angles ...
2160 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.002 seconds
read_data CPU = 0.051 seconds
group bot type 6
1620 atoms in group bot
group top type 7
1620 atoms in group top
group SPC type 1 2 3
6480 atoms in group SPC
group electrolyte type 1 2 3 4 5
6558 atoms in group electrolyte
fix nvt electrolyte nvt temp 298.0 298.0 241
fix shake SPC shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
2160 = # of frozen angles
find clusters CPU = 0.002 seconds
variable q atom q
variable qz atom q*(z-lz/2)
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qztop top reduce sum v_qz
compute qzbot bot reduce sum v_qz
compute ctemp electrolyte temp
fix conp bot electrode/conp -1.0 1.805132 couple top 1.0 symm on ffield yes etypes 6*7
3240 atoms in group conp_group
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qtop c_qbot c_qztop c_qzbot
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.24017705
grid = 54 54 120
stencil order = 5
estimated absolute RMS force accuracy = 3.6312561e-05
estimated relative force accuracy = 1.093542e-07
using double precision MKL FFT
3d grid and FFT values/proc = 472567 349920
generated 21 of 21 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 17
ghost atom cutoff = 17
binsize = 8.5, bins = 5 5 13
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conp, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 194.6 | 194.6 | 194.6 Mbytes
Step Temp c_ctemp E_pair TotEng c_qtop c_qbot c_qztop c_qzbot
0 171.61215 298.06731 -39212.819 -35306.164 4.1391573 -4.1391573 78.718381 131.56372
50 147.03139 255.37383 -39870.139 -36523.051 4.1312167 -4.1312167 78.563872 131.30255
100 149.89027 260.33932 -39878.859 -36466.689 4.0217834 -4.0217834 76.482548 127.82573
150 151.7382 263.54893 -39873.178 -36418.942 4.0469977 -4.0469977 76.967548 128.59855
200 151.7508 263.57081 -39827.015 -36372.492 4.1830375 -4.1830375 79.554159 132.93925
250 152.61146 265.06566 -39791.293 -36317.177 4.1835865 -4.1835865 79.56665 132.97185
300 153.51486 266.63475 -39751.841 -36257.16 4.1571861 -4.1571861 79.061431 132.12905
350 156.35115 271.561 -39754.955 -36195.708 4.3498059 -4.3498059 82.720202 138.28678
400 156.26118 271.40474 -39690.781 -36133.582 4.3444079 -4.3444079 82.619396 138.11873
450 158.54164 275.36558 -39681.083 -36071.97 4.2020488 -4.2020488 79.912674 133.55185
500 161.40138 280.33258 -39684.185 -36009.972 4.3021924 -4.3021924 81.807527 136.7464
Loop time of 246.197 on 1 procs for 500 steps with 9798 atoms
Performance: 0.175 ns/day, 136.776 hours/ns, 2.031 timesteps/s
356.3% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 105.64 | 105.64 | 105.64 | 0.0 | 42.91
Bond | 0.0010592 | 0.0010592 | 0.0010592 | 0.0 | 0.00
Kspace | 37.643 | 37.643 | 37.643 | 0.0 | 15.29
Neigh | 5.8827 | 5.8827 | 5.8827 | 0.0 | 2.39
Comm | 0.18181 | 0.18181 | 0.18181 | 0.0 | 0.07
Output | 0.0055762 | 0.0055762 | 0.0055762 | 0.0 | 0.00
Modify | 96.78 | 96.78 | 96.78 | 0.0 | 39.31
Other | | 0.06346 | | | 0.03
Nlocal: 9798 ave 9798 max 9798 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 31695 ave 31695 max 31695 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 8.25614e+06 ave 8.25614e+06 max 8.25614e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 8256142
Ave neighs/atom = 842.63544
Ave special neighs/atom = 1.3227189
Neighbor list builds = 22
Dangerous builds = 0
Total wall time: 0:19:39

View File

@ -0,0 +1,151 @@
LAMMPS (24 Mar 2022)
# electrodes with constant potential using finite field
# for z-periodic gold-saline electrochemical cell
boundary p p p # ffield uses periodic z-boundary and no slab
include settings.mod # styles, groups, computes and fixes
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
processors * * 2
atom_style full
pair_style lj/cut/coul/long 15
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
read_data "data.au-aq"
Reading data file ...
orthogonal box = (0 0 0) to (36.629993 36.629993 107.95213)
2 by 1 by 2 MPI processor grid
reading atoms ...
9798 atoms
reading velocities ...
9798 velocities
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
4320 bonds
reading angles ...
2160 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.002 seconds
read_data CPU = 0.149 seconds
group bot type 6
1620 atoms in group bot
group top type 7
1620 atoms in group top
group SPC type 1 2 3
6480 atoms in group SPC
group electrolyte type 1 2 3 4 5
6558 atoms in group electrolyte
fix nvt electrolyte nvt temp 298.0 298.0 241
fix shake SPC shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
2160 = # of frozen angles
find clusters CPU = 0.003 seconds
variable q atom q
variable qz atom q*(z-lz/2)
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qztop top reduce sum v_qz
compute qzbot bot reduce sum v_qz
compute ctemp electrolyte temp
fix conp bot electrode/conp -1.0 1.805132 couple top 1.0 symm on ffield yes etypes 6*7
3240 atoms in group conp_group
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qtop c_qbot c_qztop c_qzbot
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.24017705
grid = 54 54 120
stencil order = 5
estimated absolute RMS force accuracy = 3.6312561e-05
estimated relative force accuracy = 1.093542e-07
using double precision MKL FFT
3d grid and FFT values/proc = 138958 87480
generated 21 of 21 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 17
ghost atom cutoff = 17
binsize = 8.5, bins = 5 5 13
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conp, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 118.1 | 120.6 | 123.1 Mbytes
Step Temp c_ctemp E_pair TotEng c_qtop c_qbot c_qztop c_qzbot
0 171.61215 298.06731 -39212.819 -35306.164 4.1391573 -4.1391573 78.718381 131.56372
50 147.03139 255.37383 -39870.139 -36523.051 4.1312167 -4.1312167 78.563872 131.30255
100 149.89027 260.33932 -39878.859 -36466.689 4.0217834 -4.0217834 76.482548 127.82573
150 151.7382 263.54893 -39873.178 -36418.942 4.0469977 -4.0469977 76.967548 128.59855
200 151.7508 263.57081 -39827.015 -36372.492 4.1830375 -4.1830375 79.554159 132.93925
250 152.61146 265.06566 -39791.293 -36317.177 4.1835865 -4.1835865 79.56665 132.97185
300 153.51486 266.63475 -39751.841 -36257.16 4.1571861 -4.1571861 79.061431 132.12905
350 156.35115 271.561 -39754.955 -36195.708 4.3498059 -4.3498059 82.7202 138.28678
400 156.26118 271.40474 -39690.781 -36133.582 4.3444079 -4.3444079 82.619398 138.11873
450 158.54163 275.36558 -39681.083 -36071.97 4.2020488 -4.2020488 79.912675 133.55185
500 161.40138 280.33257 -39684.185 -36009.972 4.3021924 -4.3021924 81.807527 136.7464
Loop time of 111.902 on 4 procs for 500 steps with 9798 atoms
Performance: 0.386 ns/day, 62.168 hours/ns, 4.468 timesteps/s
97.2% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 21.816 | 31.136 | 40.866 | 166.5 | 27.82
Bond | 0.00073413 | 0.00080346 | 0.00084203 | 0.0 | 0.00
Kspace | 29.546 | 39.137 | 48.326 | 146.4 | 34.97
Neigh | 2.5867 | 2.5872 | 2.5877 | 0.0 | 2.31
Comm | 0.33289 | 0.33603 | 0.33791 | 0.3 | 0.30
Output | 0.0022537 | 0.0030028 | 0.005192 | 2.3 | 0.00
Modify | 38.498 | 38.635 | 38.77 | 2.2 | 34.53
Other | | 0.06679 | | | 0.06
Nlocal: 2449.5 ave 2908 max 2012 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 19345.5 ave 20244 max 18492 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 2.06404e+06 ave 2.7528e+06 max 1.40672e+06 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 8256142
Ave neighs/atom = 842.63544
Ave special neighs/atom = 1.3227189
Neighbor list builds = 22
Dangerous builds = 0
Total wall time: 0:07:48

View File

@ -0,0 +1,154 @@
LAMMPS (24 Mar 2022)
# electrodes with constant potential using finite field
# for z-periodic gold-saline electrochemical cell
# using Thomas-Fermi metallicity model: electrode q and qz will be
# smaller because of more delocalized charge
boundary p p p # ffield uses periodic z-boundary and no slab
include settings.mod # styles, groups, computes and fixes
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
atom_style full
pair_style lj/cut/coul/long 15
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
read_data "data.au-aq"
Reading data file ...
orthogonal box = (0 0 0) to (36.629993 36.629993 107.95213)
1 by 1 by 1 MPI processor grid
reading atoms ...
9798 atoms
reading velocities ...
9798 velocities
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
4320 bonds
reading angles ...
2160 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.010 seconds
read_data CPU = 0.115 seconds
group bot type 6
1620 atoms in group bot
group top type 7
1620 atoms in group top
group SPC type 1 2 3
6480 atoms in group SPC
group electrolyte type 1 2 3 4 5
6558 atoms in group electrolyte
fix nvt electrolyte nvt temp 298.0 298.0 241
fix shake SPC shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
2160 = # of frozen angles
find clusters CPU = 0.010 seconds
variable q atom q
variable qz atom q*(z-lz/2)
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qztop top reduce sum v_qz
compute qzbot bot reduce sum v_qz
compute ctemp electrolyte temp
fix conp bot electrode/conp -1.0 1.805132 couple top 1.0 symm on ffield yes etypes 6*7
3240 atoms in group conp_group
fix_modify conp tf 6 1.0 18.1715745
fix_modify conp tf 7 1.0 18.1715745
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qtop c_qbot c_qztop c_qzbot
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.24017705
grid = 54 54 120
stencil order = 5
estimated absolute RMS force accuracy = 3.6312561e-05
estimated relative force accuracy = 1.093542e-07
using double precision MKL FFT
3d grid and FFT values/proc = 472567 349920
generated 21 of 21 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 17
ghost atom cutoff = 17
binsize = 8.5, bins = 5 5 13
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conp, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 194.6 | 194.6 | 194.6 Mbytes
Step Temp c_ctemp E_pair TotEng c_qtop c_qbot c_qztop c_qzbot
0 171.61215 298.06731 -39190.106 -35283.45 4.0804484 -4.0804484 79.075127 131.20697
50 147.14308 255.56782 -39849.964 -36500.334 3.9990346 -3.9990346 77.497181 128.57759
100 149.94935 260.44194 -39857.533 -36444.019 3.8613914 -3.8613914 74.82985 124.15315
150 151.95924 263.93285 -39855.567 -36396.299 3.8677064 -3.8677064 74.957279 124.33201
200 151.66737 263.42591 -39802.585 -36349.961 3.99842 -3.99842 77.491015 128.54496
250 152.36874 264.64408 -39763.306 -36294.716 3.9925863 -3.9925863 77.379445 128.37226
300 153.83916 267.19802 -39737.075 -36235.012 3.94995 -3.94995 76.553896 127.00395
350 155.88897 270.75827 -39722.265 -36173.539 4.0598524 -4.0598524 78.679643 130.5394
400 156.51993 271.85415 -39674.759 -36111.669 4.1312899 -4.1312899 80.060369 132.83599
450 160.21339 278.26919 -39697.962 -36050.793 3.9068098 -3.9068098 75.713484 125.59216
500 161.63639 280.74075 -39669.412 -35989.849 3.9261656 -3.9261656 76.0806 126.22255
Loop time of 280.183 on 1 procs for 500 steps with 9798 atoms
Performance: 0.154 ns/day, 155.657 hours/ns, 1.785 timesteps/s
341.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 | 119.69 | 119.69 | 119.69 | 0.0 | 42.72
Bond | 0.0010952 | 0.0010952 | 0.0010952 | 0.0 | 0.00
Kspace | 42.137 | 42.137 | 42.137 | 0.0 | 15.04
Neigh | 6.5403 | 6.5403 | 6.5403 | 0.0 | 2.33
Comm | 0.19411 | 0.19411 | 0.19411 | 0.0 | 0.07
Output | 0.0053644 | 0.0053644 | 0.0053644 | 0.0 | 0.00
Modify | 111.54 | 111.54 | 111.54 | 0.0 | 39.81
Other | | 0.07244 | | | 0.03
Nlocal: 9798 ave 9798 max 9798 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 31718 ave 31718 max 31718 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 8.25685e+06 ave 8.25685e+06 max 8.25685e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 8256852
Ave neighs/atom = 842.7079
Ave special neighs/atom = 1.3227189
Neighbor list builds = 23
Dangerous builds = 0
Total wall time: 0:21:11

View File

@ -0,0 +1,155 @@
LAMMPS (24 Mar 2022)
# electrodes with constant potential using finite field
# for z-periodic gold-saline electrochemical cell
# using Thomas-Fermi metallicity model: electrode q and qz will be
# smaller because of more delocalized charge
boundary p p p # ffield uses periodic z-boundary and no slab
include settings.mod # styles, groups, computes and fixes
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
processors * * 2
atom_style full
pair_style lj/cut/coul/long 15
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
read_data "data.au-aq"
Reading data file ...
orthogonal box = (0 0 0) to (36.629993 36.629993 107.95213)
2 by 1 by 2 MPI processor grid
reading atoms ...
9798 atoms
reading velocities ...
9798 velocities
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
4320 bonds
reading angles ...
2160 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.002 seconds
read_data CPU = 0.091 seconds
group bot type 6
1620 atoms in group bot
group top type 7
1620 atoms in group top
group SPC type 1 2 3
6480 atoms in group SPC
group electrolyte type 1 2 3 4 5
6558 atoms in group electrolyte
fix nvt electrolyte nvt temp 298.0 298.0 241
fix shake SPC shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
2160 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
variable qz atom q*(z-lz/2)
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qztop top reduce sum v_qz
compute qzbot bot reduce sum v_qz
compute ctemp electrolyte temp
fix conp bot electrode/conp -1.0 1.805132 couple top 1.0 symm on ffield yes etypes 6*7
3240 atoms in group conp_group
fix_modify conp tf 6 1.0 18.1715745
fix_modify conp tf 7 1.0 18.1715745
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qtop c_qbot c_qztop c_qzbot
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.24017705
grid = 54 54 120
stencil order = 5
estimated absolute RMS force accuracy = 3.6312561e-05
estimated relative force accuracy = 1.093542e-07
using double precision MKL FFT
3d grid and FFT values/proc = 138958 87480
generated 21 of 21 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 17
ghost atom cutoff = 17
binsize = 8.5, bins = 5 5 13
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conp, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 118.1 | 120.6 | 123.1 Mbytes
Step Temp c_ctemp E_pair TotEng c_qtop c_qbot c_qztop c_qzbot
0 171.61215 298.06731 -39190.106 -35283.45 4.0804484 -4.0804484 79.075127 131.20697
50 147.14308 255.56782 -39849.964 -36500.334 3.9990346 -3.9990346 77.497181 128.57759
100 149.94935 260.44194 -39857.533 -36444.019 3.8613914 -3.8613914 74.82985 124.15315
150 151.95924 263.93285 -39855.567 -36396.299 3.8677064 -3.8677064 74.957279 124.33201
200 151.66737 263.42591 -39802.585 -36349.961 3.99842 -3.99842 77.491015 128.54496
250 152.36874 264.64408 -39763.306 -36294.716 3.9925863 -3.9925863 77.379445 128.37226
300 153.83916 267.19802 -39737.075 -36235.012 3.94995 -3.94995 76.553896 127.00395
350 155.88897 270.75827 -39722.265 -36173.539 4.0598524 -4.0598524 78.679643 130.5394
400 156.51993 271.85415 -39674.759 -36111.669 4.1312899 -4.1312899 80.060369 132.83599
450 160.21339 278.26919 -39697.962 -36050.793 3.9068098 -3.9068098 75.713485 125.59216
500 161.63639 280.74075 -39669.412 -35989.849 3.9261654 -3.9261654 76.080597 126.22255
Loop time of 110.716 on 4 procs for 500 steps with 9798 atoms
Performance: 0.390 ns/day, 61.509 hours/ns, 4.516 timesteps/s
97.2% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 21.17 | 30.449 | 39.65 | 164.9 | 27.50
Bond | 0.0007313 | 0.00077537 | 0.00081477 | 0.0 | 0.00
Kspace | 29.854 | 38.911 | 48.058 | 143.8 | 35.14
Neigh | 2.7206 | 2.7213 | 2.722 | 0.0 | 2.46
Comm | 0.33023 | 0.33225 | 0.33384 | 0.2 | 0.30
Output | 0.0024528 | 0.0027565 | 0.0035754 | 0.9 | 0.00
Modify | 38.091 | 38.233 | 38.365 | 2.1 | 34.53
Other | | 0.06636 | | | 0.06
Nlocal: 2449.5 ave 2908 max 2017 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 19351.2 ave 20266 max 18479 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 2.06421e+06 ave 2.7551e+06 max 1.40237e+06 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 8256853
Ave neighs/atom = 842.708
Ave special neighs/atom = 1.3227189
Neighbor list builds = 23
Dangerous builds = 0
Total wall time: 0:08:22

View File

@ -0,0 +1,29 @@
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
atom_style full
pair_style lj/cut/coul/long 15
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
read_data "data.au-aq"
group bot type 6
group top type 7
group SPC type 1 2 3
group electrolyte type 1 2 3 4 5
fix nvt electrolyte nvt temp 298.0 298.0 241
fix shake SPC shake 1e-4 20 0 b 1 2 a 1
variable q atom q
variable qz atom q*(z-lz/2)
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qztop top reduce sum v_qz
compute qzbot bot reduce sum v_qz
compute ctemp electrolyte temp

View File

@ -1,2 +0,0 @@
*.csv
log.lammps_*

View File

@ -1,17 +0,0 @@
atom_style full
units real
kspace_style pppm/electrode 1.0e-8
kspace_modify gewald 0.231
kspace_modify mesh 8 8 16
kspace_modify order 5
boundary p p f
kspace_modify slab 3.0
pair_style lj/cut/coul/long 12 12
processors * * 1
read_data "charged.data"
group ele type 1 2
pair_coeff * * 0.0 0.0

View File

@ -1,12 +0,0 @@
#!/bin/python3
import numpy as np
onestep = np.loadtxt("onestep.csv", skiprows=1)
twostep = np.loadtxt("twostep.csv", skiprows=1)
for matrix in [onestep, twostep]:
assert matrix.shape == (288, 288), matrix.shape
diff = abs(np.sum(onestep - twostep))
assert diff < 1e-11, diff

View File

@ -1,20 +0,0 @@
#!/bin/bash -e
lmpbin=$1
if [ ! -f $lmpbin ]; then
echo "LAMMPS binary '$lmpbin' is not a file"
exit 1
fi
rm -f *.csv
$lmpbin < onestep.in > /dev/null
$lmpbin < twostep.in > /dev/null
for matrix in twostep.csv onestep.csv; do
if [ ! -f $matrix ]; then
echo "$matrix missing after running LAMMPS"
exit 1
fi
done
python3 check.py
rm *.csv log.lammps

View File

@ -1,6 +0,0 @@
include charged.settings
kspace_modify amat onestep
fix fxupdate ele electrode/conp 0.0 1.805 write_mat onestep.csv
run 0

View File

@ -1,6 +0,0 @@
include charged.settings
kspace_modify amat twostep
fix fxupdate ele electrode/conp 0.0 1.805 write_mat twostep.csv
run 0

View File

@ -1,2 +0,0 @@
log*
*csv

View File

@ -1,19 +0,0 @@
#Roy-Maroncelli BMI-PF6 + carbon
pair_modify mix arithmetic
pair_coeff 1 1 0.61185 4.38
pair_coeff 2 2 0.08604 3.41
pair_coeff 3 3 0.43738 5.04
pair_coeff 4 4 1.12572 5.06
pair_coeff 5 5 0.05497 3.37
bond_coeff 1 200 2.7076
bond_coeff 2 200 3.8213
angle_coeff 1 200 116.035
group BMI type 1 2 3
fix fx_rattle_BMI BMI shake 1e-4 20 0 b 1 2 a 1
group bot molecule 641
group top molecule 642
group ele union bot top
group electrolyte type 1 2 3 4

View File

@ -1,35 +0,0 @@
variable tag string equal
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m3dc.settings"
boundary p p f
pair_style lj/cut/coul/long 16 16
processors * * 2
read_data "cap.data"
include "cgil.settings"
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
variable qtop equal 1.0
variable qbot equal -v_qtop
variable vbot internal 0.0
variable vtop internal 0.0
fix fxupdate bot electrode/conq v_qbot 1.979 couple top v_qtop symm on
fix_modify fxupdate set v bot vbot
fix_modify fxupdate set v top vtop
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e) $(v_vbot:%20.15e) $(v_vtop:%20.15e)" file ${tag}.csv screen no title "#Fix electrode conq test setting = equal"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall v_vbot v_vtop
run 50

View File

@ -1,39 +0,0 @@
variable tag string equal_intvars
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m3dc.settings"
boundary p p f
pair_style lj/cut/coul/long 16 16
processors * * 2
read_data "cap.data"
include "cgil.settings"
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
variable qtop equal 1.0
variable qbot equal -v_qtop
variable qsb_bot internal 0.0
variable me00 internal 0.0
variable vbot equal v_me00*(v_qbot-v_qsb_bot)
variable vtop equal -v_vbot
fix fxupdate bot electrode/conp v_vbot 1.979 couple top v_vtop symm on
fix_modify fxupdate set qsb bot qsb_bot
fix_modify fxupdate set me bot bot me00
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e) $(v_vtop:%20.15e) $(v_vbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode conq test setting = equal, emulated with conp"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall v_vbot v_vtop
run 50

View File

@ -1,5 +0,0 @@
kspace_style pppm/electrode 1.0e-7
#kspace_modify gewald 0.2311815
kspace_modify slab 3.0
#kspace_modify mesh 24 24 210
#kspace_modify order 5

View File

@ -1,31 +0,0 @@
variable tag string equal
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m3dc.settings"
boundary p p f
pair_style lj/cut/coul/long 16 16
processors * * 2
read_data "cap.data"
include "cgil.settings"
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
variable vtop equal ramp(0,5)
variable vbot equal -v_vtop
fix fxupdate bot electrode/conq v_vbot 1.979 couple top v_vtop symm on
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode conq test setting = ramp"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

View File

@ -1,2 +0,0 @@
*.csv
log.lammps_*

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +0,0 @@
#Roy-Maroncelli BMI-PF6 + carbon
pair_modify mix arithmetic
pair_coeff 1 1 0.61185 4.38
pair_coeff 2 2 0.08604 3.41
pair_coeff 3 3 0.43738 5.04
pair_coeff 4 4 1.12572 5.06
pair_coeff 5 5 0.05497 3.37
bond_coeff 1 200 2.7076
bond_coeff 2 200 3.8213
angle_coeff 1 200 116.035
group BMI type 1 2 3
fix fx_rattle_BMI BMI shake 1e-4 20 0 b 1 2 a 1
group bot molecule 641
group top molecule 642
group ele union bot top
group electrolyte type 1 2 3 4

View File

@ -1,20 +0,0 @@
#!/bin/python3
import numpy as np
const = np.loadtxt("const.csv", skiprows=1)
equal = np.loadtxt("equal.csv", skiprows=1)
ramp = np.loadtxt("ramp.csv", skiprows=1)
for matrix in [const, equal, ramp]:
assert matrix.shape == (6, 3), matrix.shape
# equal follows const
diff0 = abs(np.sum(const - equal))
assert diff0 < 1e-8, diff0
# equal starts same as ramp but ends differently
diff1 = abs(np.sum(equal[0] - ramp[0]))
assert diff1 < 1e-8, diff1
diff2 = np.sum(abs(equal[-1] - ramp[-1]))
assert diff2 > 1e-8, diff2

View File

@ -1,22 +0,0 @@
#!/bin/bash -e
lmpbin=$1
if [ ! -f $lmpbin ]; then
echo "LAMMPS binary '$lmpbin' is not a file"
exit 1
fi
rm -f *.csv
$lmpbin < const.in > /dev/null
$lmpbin < equal.in > /dev/null
$lmpbin < ramp.in > /dev/null
for printout in const.csv equal.csv ramp.csv; do
if [ ! -f $printout ]; then
echo "$printout missing after running LAMMPS"
exit 1
fi
cat $printout
done
python3 check.py
rm *.csv log.lammps*

View File

@ -1,29 +0,0 @@
variable tag string const
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m3dc.settings"
boundary p p f
pair_style lj/cut/coul/long 16 16
#processors * * 2
read_data "cap.data"
include "cgil.settings"
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
fix fxupdate bot electrode/conp -1.0 1.979 couple top 1.0 symm on
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode equal-style variable test setting = const"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

View File

@ -1,31 +0,0 @@
variable tag string equal
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m3dc.settings"
boundary p p f
pair_style lj/cut/coul/long 16 16
#processors * * 2
read_data "cap.data"
include "cgil.settings"
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
variable vtop equal 1.0
variable vbot equal -v_vtop
fix fxupdate bot electrode/conp v_vbot 1.979 couple top v_vtop symm on
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode equal-style variable test setting = equal"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

View File

@ -1,5 +0,0 @@
kspace_style pppm/electrode 1.0e-7
#kspace_modify gewald 0.2311815
kspace_modify slab 3.0
#kspace_modify mesh 24 24 210
#kspace_modify order 5

View File

@ -1,31 +0,0 @@
variable tag string ramp
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m3dc.settings"
boundary p p f
pair_style lj/cut/coul/long 16 16
#processors * * 2
read_data "cap.data"
include "cgil.settings"
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
variable vtop equal ramp(1.0,5.0)
variable vbot equal -v_vtop
fix fxupdate bot electrode/conp v_vbot 1.979 couple top v_vtop symm on
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode equal-style variable test setting = ramp"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

View File

@ -1,2 +0,0 @@
log*
*csv

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +0,0 @@
#Roy-Maroncelli BMI-PF6 + carbon
pair_modify mix arithmetic
pair_coeff 1 1 0.61185 4.38
pair_coeff 2 2 0.08604 3.41
pair_coeff 3 3 0.43738 5.04
pair_coeff 4 4 1.12572 5.06
pair_coeff 5 5 0.05497 3.37
bond_coeff 1 200 2.7076
bond_coeff 2 200 3.8213
angle_coeff 1 200 116.035
group BMI type 1 2 3
fix fx_rattle_BMI BMI shake 1e-4 20 0 b 1 2 a 1
group bot molecule 641
group top molecule 642
group ele union bot top
group electrolyte type 1 2 3 4

View File

@ -1,12 +0,0 @@
#!/bin/python3
import numpy as np
ref = np.loadtxt("ref.csv", skiprows=1)
etypes = np.loadtxt("etypes.csv", skiprows=1)
for matrix in [ref, etypes]:
assert matrix.shape == (6, 3), matrix.shape
diff0 = abs(np.sum(ref - etypes))
assert diff0 < 1e-8, diff0

View File

@ -1,21 +0,0 @@
#!/bin/bash -e
lmpbin=$1
if [ ! -f $lmpbin ]; then
echo "LAMMPS binary '$lmpbin' is not a file"
exit 1
fi
rm -f *.csv
$lmpbin -i ref.in > /dev/null
$lmpbin -i etypes.in > /dev/null
for printout in ref.csv etypes.csv; do
if [ ! -f $printout ]; then
echo "$printout missing after running LAMMPS"
exit 1
fi
#cat $printout
done
python3 check.py
rm *.csv log.lammps*

View File

@ -1,31 +0,0 @@
variable tag string etypes
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m3dc.settings"
boundary p p f
pair_style lj/cut/coul/long 16 16
#processors * * 2
read_data "cap.data"
include "cgil.settings"
neigh_modify check no # force neighbor list rebuild for cost testing
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
fix fxupdate bot electrode/conp -1.0 1.979 couple top 1.0 symm on etypes 5
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode equal-style variable test setting = etypes"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

View File

@ -1,5 +0,0 @@
kspace_style pppm/electrode 1.0e-7
#kspace_modify gewald 0.2311815
kspace_modify slab 3.0 amat onestep # default
#kspace_modify mesh 24 24 210
#kspace_modify order 5

View File

@ -1,31 +0,0 @@
variable tag string ref
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m3dc.settings"
boundary p p f
pair_style lj/cut/coul/long 16 16
#processors * * 2
read_data "cap.data"
include "cgil.settings"
neigh_modify check no # force neighbor list rebuild for cost testing
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
fix fxupdate bot electrode/conp -1.0 1.979 couple top 1.0 symm on
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode equal-style variable test setting = ref"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

View File

@ -1,2 +0,0 @@
log*
*csv

File diff suppressed because it is too large Load Diff

View File

@ -1,21 +0,0 @@
#Roy-Maroncelli BMI-PF6 + carbon
pair_modify mix arithmetic
pair_coeff 1 1 0.61185 4.38
pair_coeff 2 2 0.08604 3.41
pair_coeff 3 3 0.43738 5.04
pair_coeff 4 4 1.12572 5.06
pair_coeff 5 5 0.05497 3.37
bond_coeff 1 200 2.7076
bond_coeff 2 200 3.8213
angle_coeff 1 200 116.035
group BMI type 1 2 3
fix fx_rattle_BMI BMI shake 1e-4 20 0 b 1 2 a 1
group bot molecule 641
group top molecule 642
group ele union bot top
group electrolyte type 1 2 3 4
neigh_modify one 4000

View File

@ -1,18 +0,0 @@
#!/bin/python3
import numpy as np
ref = np.loadtxt("ref.csv", skiprows=1)
ffield = np.loadtxt("ffield.csv", skiprows=1)
ffield_flip = np.loadtxt("ffield_flip.csv", skiprows=1)
for matrix in [ref, ffield, ffield_flip]:
assert matrix.shape == (6, 3), matrix.shape
# ref is close to ffield
diff = np.sum(np.abs(ref - ffield))
assert diff < 3e-4, diff
# ffield and ffield_flip are identical
diff = np.sum(np.abs(ffield_flip - ffield))
assert diff < 1e-9, diff

View File

@ -1,22 +0,0 @@
#!/bin/bash -e
lmpbin=$1
if [ ! -f $lmpbin ]; then
echo "LAMMPS binary '$lmpbin' is not a file"
exit 1
fi
rm -f *.csv
$lmpbin < ref.in > /dev/null
$lmpbin < ffield.in > /dev/null
$lmpbin < ffield_flip.in > /dev/null
for printout in ref.csv ffield.csv ffield_flip.csv; do
if [ ! -f $printout ]; then
echo "$printout missing after running LAMMPS"
exit 1
fi
# cat $printout
done
python3 check.py
rm *.csv log.lammps*

View File

@ -1,29 +0,0 @@
variable tag string ffield
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m.settings"
boundary p p p
pair_style lj/cut/coul/long 14 14
#processors * * 2
read_data "cap.data"
include "cgil.settings"
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
fix fxupdate bot electrode/conp -1.0 1.979 couple top 1.0 symm on write_inv ${tag}_inv.csv ffield on
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode equal-style variable test setting = ffield"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

View File

@ -1,29 +0,0 @@
variable tag string ffield_flip
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m.settings"
boundary p p p
pair_style lj/cut/coul/long 14 14
#processors * * 2
read_data "cap.data"
include "cgil.settings"
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
fix fxupdate top electrode/conp 1.0 1.979 couple bot -1.0 symm on write_inv ${tag}_inv.csv ffield on
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode equal-style variable test setting = ffield"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

View File

@ -1,4 +0,0 @@
kspace_style pppm/electrode 1.0e-6
#kspace_modify gewald 0.2311815
#kspace_modify mesh 24 24 210
#kspace_modify order 5

View File

@ -1,5 +0,0 @@
kspace_style pppm/electrode 1.0e-6
#kspace_modify gewald 0.2311815
kspace_modify slab 3.0
#kspace_modify mesh 24 24 210
#kspace_modify order 5

View File

@ -1,29 +0,0 @@
variable tag string ref
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m3dc.settings"
boundary p p f
pair_style lj/cut/coul/long 14 14
#processors * * 2
read_data "cap.data"
include "cgil.settings"
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
fix fxupdate bot electrode/conp -1.0 1.979 couple top 1.0 symm on write_inv ${tag}_inv.csv
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode equal-style variable test setting = ref"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +0,0 @@
#Roy-Maroncelli BMI-PF6 + carbon
bond_coeff 1 200 2.7076
bond_coeff 2 200 3.8213
angle_coeff 1 200 116.035
group BMI type 1 2 3
fix fx_rattle_BMI BMI shake 1e-4 20 0 b 1 2 a 1
group bot molecule 641
group top molecule 642
group ele union bot top
group electrolyte type 1 2 3 4
set group bot charge 0
set group top charge 0
fix fxupdate bot electrode/conp -1.0 1.979 couple top 1.0 symm on

View File

@ -1,32 +0,0 @@
variable tag string coul
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m3dc.settings"
boundary p p f
pair_style coul/long 16
#processors * * 2
read_data "cap.data"
pair_modify mix arithmetic
pair_coeff * *
include "cgil.settings"
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode equal-style variable test setting = coul"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

View File

@ -1,37 +0,0 @@
variable tag string hybrid
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m3dc.settings"
boundary p p f
pair_style hybrid/overlay lj/cut 16 coul/long 16
#processors * * 2
read_data "cap.data"
pair_modify mix arithmetic
pair_coeff 1 1 lj/cut 0.61185 4.38
pair_coeff 2 2 lj/cut 0.08604 3.41
pair_coeff 3 3 lj/cut 0.43738 5.04
pair_coeff 4 4 lj/cut 1.12572 5.06
pair_coeff 5 5 lj/cut 0.05497 3.37
pair_coeff * * coul/long
include "cgil.settings"
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode equal-style variable test setting = hybrid"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

View File

@ -1,36 +0,0 @@
variable tag string lj
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
#include "p3m3dc.settings"
boundary p p f
pair_style lj/cut 16
#processors * * 2
read_data "cap.data"
pair_modify mix arithmetic
pair_coeff 1 1 0.61185 4.38
pair_coeff 2 2 0.08604 3.41
pair_coeff 3 3 0.43738 5.04
pair_coeff 4 4 1.12572 5.06
pair_coeff 5 5 0.05497 3.37
include "cgil.settings"
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode equal-style variable test setting = lj"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

View File

@ -1,5 +0,0 @@
kspace_style pppm/electrode 1.0e-7
#kspace_modify gewald 0.2311815
kspace_modify slab 3.0
#kspace_modify mesh 24 24 210
#kspace_modify order 5

View File

@ -1,36 +0,0 @@
variable tag string ref
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m3dc.settings"
boundary p p f
pair_style lj/cut/coul/long 16 16
#processors * * 2
read_data "cap.data"
pair_modify mix arithmetic
pair_coeff 1 1 0.61185 4.38
pair_coeff 2 2 0.08604 3.41
pair_coeff 3 3 0.43738 5.04
pair_coeff 4 4 1.12572 5.06
pair_coeff 5 5 0.05497 3.37
include "cgil.settings"
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode equal-style variable test setting = ref"
thermo 10
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

View File

@ -1,2 +0,0 @@
log*
*csv

File diff suppressed because it is too large Load Diff

View File

@ -1,23 +0,0 @@
#Roy-Maroncelli BMI-PF6 + carbon
pair_modify mix arithmetic
pair_coeff 1 1 0.61185 4.38
pair_coeff 2 2 0.08604 3.41
pair_coeff 3 3 0.43738 5.04
pair_coeff 4 4 1.12572 5.06
pair_coeff 5 5 0.05497 3.37
bond_coeff 1 200 2.7076
bond_coeff 2 200 3.8213
angle_coeff 1 200 116.035
group BMI type 1 2 3
fix fx_rattle_BMI BMI shake 1e-4 20 0 b 1 2 a 1
group bot molecule 641
group top molecule 642
group ele union bot top
group electrolyte type 1 2 3 4
group carbon type 5
group carbon_neutral subtract carbon ele
neigh_modify exclude group carbon carbon_neutral

View File

@ -1,12 +0,0 @@
#!/bin/python3
import numpy as np
nointel = np.loadtxt("ref_nointel.csv", skiprows=1)
intel = np.loadtxt("ref_intel.csv", skiprows=1)
for matrix in [nointel, intel]:
assert matrix.shape == (6, 3), matrix.shape
diff0 = np.sum(np.abs(nointel - intel))
assert diff0 < 5e-4, diff0

View File

@ -1,17 +0,0 @@
#!/bin/bash -e
lmpbin=$1
if [ ! -f $lmpbin ]; then
echo "LAMMPS binary '$lmpbin' is not a file"
exit 1
fi
rm -f *.csv
$lmpbin -i ref.in #> /dev/null
mv ref.csv ref_nointel.csv
$lmpbin -i ref.in -pk intel 0 omp 1 mode double -sf intel #> /dev/null
mv ref.csv ref_intel.csv
python3 check.py
#rm *.csv log.lammps*

View File

@ -1,5 +0,0 @@
kspace_style pppm/electrode 1.0e-7
kspace_modify gewald 0.21
kspace_modify slab 3.0
kspace_modify mesh 32 32 200
kspace_modify order 5

View File

@ -1,32 +0,0 @@
variable tag string ref
log log.lammps_${tag}
atom_style full
units real
bond_style harmonic
angle_style harmonic
include "p3m3dc.settings"
boundary p p f
pair_style lj/cut/coul/long 16 16
#processors * * 2
read_data "cap.data"
include "cgil.settings"
neigh_modify check no # force neighbor list rebuild for cost testing
#dump alldump all custom 1000 all_${tag}.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 500.0 500.0 100.
fix fxupdate bot electrode/conp -1.0 1.979 couple top 1.0 symm on
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute qall ele reduce sum v_q
compute ctemp electrolyte temp
fix print all print 10 "$(step:%8.3g) $(c_qtop:%20.15e) $(c_qbot:%20.15e)" file ${tag}.csv screen no title "#Fix electrode equal-style variable test setting = etypes"
thermo 10
timestep 2.5
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 50

View File

@ -1,30 +0,0 @@
atom_style full
units real
bond_style harmonic
angle_style harmonic
# Select one file for kspace settings
include "p3m3dc.settings"
# include "ew3dc.settings"
# include "ew2d.settings"
boundary p p f
pair_style lj/cut/coul/long 15 12
processors * * 2
read_data "cap.data"
include "mw.settings"
dump alldump all custom 1000 all.lammpstrj id mol type x y z q
fix fxnvt electrolyte nvt temp 298.0 298.0 241
fix fxupdate bot electrode/conp -1.0 1.805132 couple top 1.0 write_inv fix_inv.csv symm on
compute q ele property/atom q
compute qtop top reduce sum c_q
compute qbot bot reduce sum c_q
compute qall ele reduce sum c_q
compute ctemp electrolyte temp
thermo 100
thermo_style custom step c_ctemp epair etotal c_qtop c_qbot c_qall
run 200

View File

@ -1,4 +0,0 @@
kspace_style ewald/electrode 1.0e-6
kspace_modify gewald 0.2311815
kspace_modify kmax/ewald 10 10 29
kspace_modify slab ew2d

View File

@ -1,4 +0,0 @@
kspace_style ewald/electrode 1.0e-6
kspace_modify gewald 0.2311815
kspace_modify kmax/ewald 10 10 88
kspace_modify slab 3.0

View File

@ -1,17 +0,0 @@
pair_modify mix arithmetic
pair_coeff 1 1 0.15540152963671128 3.166
pair_coeff 4 4 0.09999999999999999 2.584
pair_coeff 5 5 0.09999999999999999 4.401
pair_coeff 6 6 5.29 2.951
pair_coeff 7 7 5.29 2.951
pair_coeff 2 2 0.0 0.0
pair_coeff 3 3 0.0 0.0
bond_coeff 1 450 0.9999965664194801
bond_coeff 2 450 0.9999965664194801
angle_coeff 1 55 109.46937551578806
group SPC type 1 2 3
fix fx_rattle_SPC SPC shake 1.0e-4 20 0 b 1 2 a 1
group bot type 6
group top type 7
group ele type 6 7
group electrolyte type 1 2 3 4 5

View File

@ -1,5 +0,0 @@
kspace_style pppm/electrode 1.0e-6
kspace_modify gewald 0.2311815
kspace_modify slab 3.0
kspace_modify mesh 24 24 210
kspace_modify order 5

View File

@ -0,0 +1 @@
log.lammps*

View File

@ -13,11 +13,28 @@ LAMMPS data file. CGCMM style. atom_style full generated by VMD/TopoTools v1.7 o
Masses
1 67.070000 # 1
2 15.040000 # 2
3 57.119999 # 3
4 144.960007 # 4
5 12.001000 # 5
1 67.070000 # Roy-Maroncelli BMI1
2 15.040000 # Roy-Maroncelli BMI2
3 57.119999 # Roy-Maroncelli BMI3
4 144.960007 # Roy-Maroncelli PF64
5 12.001000 # carbon 5
Pair Coeffs # lj/cut/coul/long
1 0.61185 4.38
2 0.08604 3.41
3 0.43738 5.04
4 1.12572 5.06
5 0.05497 3.37
Bond Coeffs # harmonic
1 200 2.7076
2 200 3.8213
Angle Coeffs # harmonic
1 200 116.035
Atoms # full

View File

@ -0,0 +1,12 @@
# electrodes with constant potential
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
kspace_modify slab 3.0
fix conp bot electrode/conp -1.0 1.979 couple top 1.0 symm on
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop
run 500

View File

@ -0,0 +1,18 @@
# electrodes with constrained total charges
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
kspace_modify slab 3.0
fix conq bot electrode/conq -1.0 1.979 couple top 1.0 etypes 5 # conq doesn't take symm option
# ask fix conq to output electrode potentials to internal variables
variable vbot internal 0.0
variable vtop internal 0.0
fix_modify conq set v bot vbot
fix_modify conq set v top vtop
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop v_vbot v_vtop
run 500

View File

@ -0,0 +1,35 @@
# electrodes with constrained total charges imposed from dynamically computed potentials
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
kspace_modify slab 3.0
fix conp bot electrode/conp v_vbot 1.979 couple top v_vtop etypes 5
# get the four entries of electrode elastance matrix
variable me00 internal 0.0
variable me01 internal 0.0
variable me10 internal 0.0
variable me11 internal 0.0
fix_modify conp set me bot bot me00
fix_modify conp set me bot top me01
fix_modify conp set me top bot me10
fix_modify conp set me top top me11
# get the 0V charges (qsb), and excess charge required to reach preset total charges
variable qsb_bot internal 0.0
variable qsb_top internal 0.0
fix_modify conp set qsb bot qsb_bot
fix_modify conp set qsb top qsb_top
variable qex_bot equal -1.0-v_qsb_bot # difference between desired and 0V charge
variable qex_top equal 1.0-v_qsb_top # difference between desired and 0V charge
# calculate imposed potential as elastance * excess charge
# note: fix will wait until the run setup to look for its potential variables
variable vbot equal v_me00*v_qex_bot+v_me01*v_qex_top
variable vtop equal v_me10*v_qex_bot+v_me11*v_qex_top
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop v_vbot v_vtop
run 500

View File

@ -0,0 +1,12 @@
# electrodes with constant potential and smart neighborlists
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
kspace_modify slab 3.0
fix conp bot electrode/conp -1.0 1.979 couple top 1.0 symm on etypes 5
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop
run 500

View File

@ -0,0 +1,11 @@
# electrodes with constant potential using finite field
# for z-periodic graphene-ionic liquid supercapacitor
boundary p p p # ffield uses periodic z-boundary and no slab
include settings.mod # styles, groups, computes and fixes
fix conp bot electrode/conp -1.0 1.979 couple top 1.0 symm on etypes 5 ffield yes
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop
run 500

View File

@ -0,0 +1,13 @@
# electrodes with equal-style ramped (electrode-)constant potential
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
kspace_modify slab 3.0
variable v equal ramp(2,4)
fix conp bot electrode/conp 0.0 1.979 couple top v_v symm on etypes 5
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop v_v
run 500

View File

@ -0,0 +1,19 @@
# electrodes with thermopotentiostat
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
kspace_modify slab 3.0
unfix nvt # remove NVT thermostat included from "settings.mod"
fix conpthermo bot electrode/thermo -1.0 1.979 couple top 1.0 etypes 5 temp 500 100
# to compare to regular constant potential, switch previous line to this:
#fix conp bot electrode/conp -1.0 1.979 couple top 1.0 etypes 5 symm on
fix nve electrolyte nve
# note ionic liquid does not reach 500K immediately
# because its thermal response time is finite
# run this about 10k steps (10ps) to reach preset temperature
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop
run 500

View File

@ -0,0 +1,142 @@
LAMMPS (24 Mar 2022)
# electrodes with constant potential
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 1 by 1 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.036 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
kspace_modify slab 3.0
fix conp bot electrode/conp -1.0 1.979 couple top 1.0 symm on
832 atoms in group conp_group
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20904498
grid = 32 32 200
stencil order = 5
estimated absolute RMS force accuracy = 3.7023506e-05
estimated relative force accuracy = 1.1149519e-07
using double precision MKL FFT
3d grid and FFT values/proc = 307242 204800
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, perpetual, copy from (1)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 57.15 | 57.15 | 57.15 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop
0 0 0 25137191 25137191 0.0085142912 -0.0085142912
50 17.83755 64.26354 25137031 25137214 0.0045923944 -0.0045923944
100 48.393682 174.34846 25136774 25137273 -0.009514517 0.009514517
150 70.421272 253.7075 25136655 25137380 -0.033017005 0.033017005
200 82.204844 296.16031 25136667 25137514 -0.063668175 0.063668175
250 87.54223 315.38937 25136757 25137659 -0.096776257 0.096776257
300 91.704746 330.38571 25136865 25137810 -0.1283784 0.1283784
350 100.36017 361.56871 25136934 25137968 -0.15649799 0.15649799
400 111.37575 401.25467 25136986 25138133 -0.18065435 0.18065435
450 121.79848 438.80476 25137043 25138298 -0.19979365 0.19979365
500 126.95916 457.39718 25137145 25138453 -0.21037535 0.21037535
Loop time of 103.439 on 1 procs for 500 steps with 3776 atoms
Performance: 0.418 ns/day, 57.466 hours/ns, 4.834 timesteps/s
393.6% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 19.309 | 19.309 | 19.309 | 0.0 | 18.67
Bond | 0.0018867 | 0.0018867 | 0.0018867 | 0.0 | 0.00
Kspace | 23.047 | 23.047 | 23.047 | 0.0 | 22.28
Neigh | 0.25707 | 0.25707 | 0.25707 | 0.0 | 0.25
Comm | 0.070734 | 0.070734 | 0.070734 | 0.0 | 0.07
Output | 0.0023085 | 0.0023085 | 0.0023085 | 0.0 | 0.00
Modify | 60.73 | 60.73 | 60.73 | 0.0 | 58.71
Other | | 0.01994 | | | 0.02
Nlocal: 3776 ave 3776 max 3776 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 12509 ave 12509 max 12509 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 1.72633e+06 ave 1.72633e+06 max 1.72633e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1726328
Ave neighs/atom = 457.18432
Ave special neighs/atom = 0.50847458
Neighbor list builds = 7
Dangerous builds = 0
Total wall time: 0:03:10

View File

@ -0,0 +1,143 @@
LAMMPS (24 Mar 2022)
# electrodes with constant potential
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
processors * * 2
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 2 by 2 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.014 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
kspace_modify slab 3.0
fix conp bot electrode/conp -1.0 1.979 couple top 1.0 symm on
832 atoms in group conp_group
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20904498
grid = 32 32 200
stencil order = 5
estimated absolute RMS force accuracy = 3.7023506e-05
estimated relative force accuracy = 1.1149519e-07
using double precision MKL FFT
3d grid and FFT values/proc = 151593 85504
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, perpetual, copy from (1)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 23.13 | 26.96 | 30.79 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop
0 0 0 25137191 25137191 0.0085142912 -0.0085142912
50 17.83755 64.26354 25137031 25137214 0.0045923944 -0.0045923944
100 48.393682 174.34846 25136774 25137273 -0.009514517 0.009514517
150 70.421272 253.7075 25136655 25137380 -0.033017005 0.033017005
200 82.204844 296.16031 25136667 25137514 -0.063668175 0.063668175
250 87.54223 315.38937 25136757 25137659 -0.096776257 0.096776257
300 91.704746 330.38571 25136865 25137810 -0.1283784 0.1283784
350 100.36017 361.56871 25136934 25137968 -0.15649799 0.15649799
400 111.37575 401.25467 25136986 25138133 -0.18065435 0.18065435
450 121.79848 438.80476 25137043 25138298 -0.19979365 0.19979365
500 126.95916 457.39718 25137145 25138453 -0.21037535 0.21037535
Loop time of 49.6656 on 4 procs for 500 steps with 3776 atoms
Performance: 0.870 ns/day, 27.592 hours/ns, 10.067 timesteps/s
95.1% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 5.968 | 6.1677 | 6.382 | 6.5 | 12.42
Bond | 0.00071151 | 0.00078617 | 0.00090387 | 0.0 | 0.00
Kspace | 17.345 | 17.558 | 17.755 | 3.8 | 35.35
Neigh | 0.10939 | 0.10945 | 0.10948 | 0.0 | 0.22
Comm | 0.15295 | 0.15474 | 0.15699 | 0.4 | 0.31
Output | 0.00074458 | 0.0010336 | 0.0018799 | 1.5 | 0.00
Modify | 25.634 | 25.641 | 25.645 | 0.1 | 51.63
Other | | 0.03276 | | | 0.07
Nlocal: 944 ave 951 max 941 min
Histogram: 1 2 0 0 0 0 0 0 0 1
Nghost: 5923.25 ave 5941 max 5906 min
Histogram: 1 0 0 1 0 0 1 0 0 1
Neighs: 431582 ave 442090 max 419903 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Total # of neighbors = 1726328
Ave neighs/atom = 457.18432
Ave special neighs/atom = 0.50847458
Neighbor list builds = 7
Dangerous builds = 0
Total wall time: 0:01:11

View File

@ -0,0 +1,153 @@
LAMMPS (24 Mar 2022)
# electrodes with constrained total charges
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 1 by 1 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.012 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.000 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
kspace_modify slab 3.0
fix conq bot electrode/conq -1.0 1.979 couple top 1.0 etypes 5 # conq doesn't take symm option
832 atoms in group conp_group
# ask fix conq to output electrode potentials to internal variables
variable vbot internal 0.0
variable vtop internal 0.0
fix_modify conq set v bot vbot
fix_modify conq set v top vtop
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop v_vbot v_vtop
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20904498
grid = 32 32 200
stencil order = 5
estimated absolute RMS force accuracy = 3.7023506e-05
estimated relative force accuracy = 1.1149519e-07
using double precision MKL FFT
3d grid and FFT values/proc = 307242 204800
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conq, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conq, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 56.89 | 56.89 | 56.89 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop v_vbot v_vtop
0 0 0 25136984 25136984 -1 1 -9.931852 10.097344
50 20.206425 72.797911 25136825 25137033 -1 1 -9.4359366 9.5964514
100 55.931663 201.50563 25136587 25137163 -1 1 -8.0440112 8.1861787
150 81.389273 293.22204 25136533 25137371 -1 1 -6.1113109 6.2267114
200 92.867946 334.57639 25136646 25137603 -1 1 -4.1857807 4.2740694
250 97.518304 351.33028 25136809 25137814 -1 1 -2.8383703 2.9101475
300 102.36577 368.79431 25136933 25137987 -1 1 -2.3831643 2.4461115
350 113.66597 409.50566 25136960 25138131 -1 1 -2.7083563 2.7457811
400 122.8443 442.57252 25136991 25138256 -1 1 -3.4311003 3.3941657
450 128.63713 463.44243 25137048 25138373 -1 1 -4.132871 3.9852959
500 131.18361 472.61665 25137142 25138493 -1 1 -4.5104095 4.2567261
Loop time of 48.9361 on 1 procs for 500 steps with 3776 atoms
Performance: 0.883 ns/day, 27.187 hours/ns, 10.217 timesteps/s
393.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 | 17.652 | 17.652 | 17.652 | 0.0 | 36.07
Bond | 0.0010418 | 0.0010418 | 0.0010418 | 0.0 | 0.00
Kspace | 16.566 | 16.566 | 16.566 | 0.0 | 33.85
Neigh | 0.21584 | 0.21584 | 0.21584 | 0.0 | 0.44
Comm | 0.04167 | 0.04167 | 0.04167 | 0.0 | 0.09
Output | 0.0014585 | 0.0014585 | 0.0014585 | 0.0 | 0.00
Modify | 14.445 | 14.445 | 14.445 | 0.0 | 29.52
Other | | 0.0134 | | | 0.03
Nlocal: 3776 ave 3776 max 3776 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 12510 ave 12510 max 12510 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 1.72559e+06 ave 1.72559e+06 max 1.72559e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1725588
Ave neighs/atom = 456.98835
Ave special neighs/atom = 0.50847458
Neighbor list builds = 6
Dangerous builds = 0
Total wall time: 0:01:43

View File

@ -0,0 +1,154 @@
LAMMPS (24 Mar 2022)
# electrodes with constrained total charges
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
processors * * 2
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 2 by 2 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.020 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
kspace_modify slab 3.0
fix conq bot electrode/conq -1.0 1.979 couple top 1.0 etypes 5 # conq doesn't take symm option
832 atoms in group conp_group
# ask fix conq to output electrode potentials to internal variables
variable vbot internal 0.0
variable vtop internal 0.0
fix_modify conq set v bot vbot
fix_modify conq set v top vtop
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop v_vbot v_vtop
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20904498
grid = 32 32 200
stencil order = 5
estimated absolute RMS force accuracy = 3.7023506e-05
estimated relative force accuracy = 1.1149519e-07
using double precision MKL FFT
3d grid and FFT values/proc = 151593 85504
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conq, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conq, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 23.63 | 27.46 | 31.29 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop v_vbot v_vtop
0 0 0 25136984 25136984 -1 1 -9.931852 10.097344
50 20.206425 72.797911 25136825 25137033 -1 1 -9.4359366 9.5964514
100 55.931663 201.50563 25136587 25137163 -1 1 -8.0440112 8.1861787
150 81.389273 293.22204 25136533 25137371 -1 1 -6.1113109 6.2267114
200 92.867946 334.57639 25136646 25137603 -1 1 -4.1857807 4.2740694
250 97.518304 351.33028 25136809 25137814 -1 1 -2.8383703 2.9101475
300 102.36577 368.79431 25136933 25137987 -1 1 -2.3831643 2.4461115
350 113.66597 409.50566 25136960 25138131 -1 1 -2.7083563 2.7457811
400 122.8443 442.57252 25136991 25138256 -1 1 -3.4311003 3.3941657
450 128.63713 463.44243 25137048 25138373 -1 1 -4.132871 3.9852959
500 131.18361 472.61665 25137142 25138493 -1 1 -4.5104095 4.2567261
Loop time of 28.8336 on 4 procs for 500 steps with 3776 atoms
Performance: 1.498 ns/day, 16.019 hours/ns, 17.341 timesteps/s
94.1% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 5.7721 | 5.9353 | 6.144 | 6.0 | 20.58
Bond | 0.00057855 | 0.00067043 | 0.00074793 | 0.0 | 0.00
Kspace | 13.485 | 13.694 | 13.857 | 4.0 | 47.49
Neigh | 0.092021 | 0.092044 | 0.092068 | 0.0 | 0.32
Comm | 0.11486 | 0.11638 | 0.11801 | 0.4 | 0.40
Output | 0.00090452 | 0.001109 | 0.0017097 | 1.0 | 0.00
Modify | 8.974 | 8.9761 | 8.978 | 0.1 | 31.13
Other | | 0.01837 | | | 0.06
Nlocal: 944 ave 948 max 940 min
Histogram: 1 0 0 1 0 0 1 0 0 1
Nghost: 5920.5 ave 5941 max 5899 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Neighs: 431397 ave 442329 max 421103 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Total # of neighbors = 1725588
Ave neighs/atom = 456.98835
Ave special neighs/atom = 0.50847458
Neighbor list builds = 6
Dangerous builds = 0
Total wall time: 0:00:51

View File

@ -0,0 +1,170 @@
LAMMPS (24 Mar 2022)
# electrodes with constrained total charges imposed from dynamically computed potentials
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 1 by 1 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.031 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
kspace_modify slab 3.0
fix conp bot electrode/conp v_vbot 1.979 couple top v_vtop etypes 5
832 atoms in group conp_group
# get the four entries of electrode elastance matrix
variable me00 internal 0.0
variable me01 internal 0.0
variable me10 internal 0.0
variable me11 internal 0.0
fix_modify conp set me bot bot me00
fix_modify conp set me bot top me01
fix_modify conp set me top bot me10
fix_modify conp set me top top me11
# get the 0V charges (qsb), and excess charge required to reach preset total charges
variable qsb_bot internal 0.0
variable qsb_top internal 0.0
fix_modify conp set qsb bot qsb_bot
fix_modify conp set qsb top qsb_top
variable qex_bot equal -1.0-v_qsb_bot # difference between desired and 0V charge
variable qex_top equal 1.0-v_qsb_top # difference between desired and 0V charge
# calculate imposed potential as elastance * excess charge
# note: fix will wait until the run setup to look for its potential variables
variable vbot equal v_me00*v_qex_bot+v_me01*v_qex_top
variable vtop equal v_me10*v_qex_bot+v_me11*v_qex_top
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop v_vbot v_vtop
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20904498
grid = 32 32 200
stencil order = 5
estimated absolute RMS force accuracy = 3.7023506e-05
estimated relative force accuracy = 1.1149519e-07
using double precision MKL FFT
3d grid and FFT values/proc = 307242 204800
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conp, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 56.89 | 56.89 | 56.89 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop v_vbot v_vtop
0 0 0 25136984 25136984 -1 1 -9.931852 10.097344
50 20.206425 72.797911 25136825 25137033 -1 1 -9.4359366 9.5964514
100 55.931663 201.50563 25136587 25137163 -1 1 -8.0440112 8.1861787
150 81.389273 293.22204 25136533 25137371 -1 1 -6.1113109 6.2267114
200 92.867946 334.57639 25136646 25137603 -1 1 -4.1857807 4.2740694
250 97.518304 351.33028 25136809 25137814 -1 1 -2.8383703 2.9101475
300 102.36577 368.79431 25136933 25137987 -1 1 -2.3831643 2.4461115
350 113.66597 409.50566 25136960 25138131 -1 1 -2.7083563 2.7457811
400 122.8443 442.57252 25136991 25138256 -1 1 -3.4311003 3.3941657
450 128.63713 463.44243 25137048 25138373 -1 1 -4.132871 3.9852959
500 131.18361 472.61665 25137142 25138493 -1 1 -4.5104095 4.2567261
Loop time of 62.9692 on 1 procs for 500 steps with 3776 atoms
Performance: 0.686 ns/day, 34.983 hours/ns, 7.940 timesteps/s
393.7% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 20.307 | 20.307 | 20.307 | 0.0 | 32.25
Bond | 0.0020074 | 0.0020074 | 0.0020074 | 0.0 | 0.00
Kspace | 23.562 | 23.562 | 23.562 | 0.0 | 37.42
Neigh | 0.26149 | 0.26149 | 0.26149 | 0.0 | 0.42
Comm | 0.059436 | 0.059436 | 0.059436 | 0.0 | 0.09
Output | 0.0023888 | 0.0023888 | 0.0023888 | 0.0 | 0.00
Modify | 18.756 | 18.756 | 18.756 | 0.0 | 29.79
Other | | 0.01897 | | | 0.03
Nlocal: 3776 ave 3776 max 3776 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 12510 ave 12510 max 12510 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 1.72559e+06 ave 1.72559e+06 max 1.72559e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1725588
Ave neighs/atom = 456.98835
Ave special neighs/atom = 0.50847458
Neighbor list builds = 6
Dangerous builds = 0
Total wall time: 0:02:26

View File

@ -0,0 +1,171 @@
LAMMPS (24 Mar 2022)
# electrodes with constrained total charges imposed from dynamically computed potentials
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
processors * * 2
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 2 by 2 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.019 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
kspace_modify slab 3.0
fix conp bot electrode/conp v_vbot 1.979 couple top v_vtop etypes 5
832 atoms in group conp_group
# get the four entries of electrode elastance matrix
variable me00 internal 0.0
variable me01 internal 0.0
variable me10 internal 0.0
variable me11 internal 0.0
fix_modify conp set me bot bot me00
fix_modify conp set me bot top me01
fix_modify conp set me top bot me10
fix_modify conp set me top top me11
# get the 0V charges (qsb), and excess charge required to reach preset total charges
variable qsb_bot internal 0.0
variable qsb_top internal 0.0
fix_modify conp set qsb bot qsb_bot
fix_modify conp set qsb top qsb_top
variable qex_bot equal -1.0-v_qsb_bot # difference between desired and 0V charge
variable qex_top equal 1.0-v_qsb_top # difference between desired and 0V charge
# calculate imposed potential as elastance * excess charge
# note: fix will wait until the run setup to look for its potential variables
variable vbot equal v_me00*v_qex_bot+v_me01*v_qex_top
variable vtop equal v_me10*v_qex_bot+v_me11*v_qex_top
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop v_vbot v_vtop
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20904498
grid = 32 32 200
stencil order = 5
estimated absolute RMS force accuracy = 3.7023506e-05
estimated relative force accuracy = 1.1149519e-07
using double precision MKL FFT
3d grid and FFT values/proc = 151593 85504
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conp, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 23.63 | 27.46 | 31.29 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop v_vbot v_vtop
0 0 0 25136984 25136984 -1 1 -9.931852 10.097344
50 20.206425 72.797911 25136825 25137033 -1 1 -9.4359366 9.5964514
100 55.931663 201.50563 25136587 25137163 -1 1 -8.0440112 8.1861787
150 81.389273 293.22204 25136533 25137371 -1 1 -6.1113109 6.2267114
200 92.867946 334.57639 25136646 25137603 -1 1 -4.1857807 4.2740694
250 97.518304 351.33028 25136809 25137814 -1 1 -2.8383703 2.9101475
300 102.36577 368.79431 25136933 25137987 -1 1 -2.3831643 2.4461115
350 113.66597 409.50566 25136960 25138131 -1 1 -2.7083563 2.7457811
400 122.8443 442.57252 25136991 25138256 -1 1 -3.4311003 3.3941657
450 128.63713 463.44243 25137048 25138373 -1 1 -4.132871 3.9852959
500 131.18361 472.61665 25137142 25138493 -1 1 -4.5104095 4.2567261
Loop time of 33.4031 on 4 procs for 500 steps with 3776 atoms
Performance: 1.293 ns/day, 18.557 hours/ns, 14.969 timesteps/s
94.3% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 7.1262 | 7.3913 | 7.611 | 6.8 | 22.13
Bond | 0.0007191 | 0.00079089 | 0.00087005 | 0.0 | 0.00
Kspace | 15.139 | 15.358 | 15.623 | 4.7 | 45.98
Neigh | 0.10374 | 0.10377 | 0.10383 | 0.0 | 0.31
Comm | 0.14245 | 0.14353 | 0.14563 | 0.3 | 0.43
Output | 0.0012987 | 0.0015671 | 0.0022434 | 1.0 | 0.00
Modify | 10.381 | 10.383 | 10.384 | 0.0 | 31.08
Other | | 0.02134 | | | 0.06
Nlocal: 944 ave 948 max 940 min
Histogram: 1 0 0 1 0 0 1 0 0 1
Nghost: 5920.5 ave 5941 max 5899 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Neighs: 431397 ave 442329 max 421103 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Total # of neighbors = 1725588
Ave neighs/atom = 456.98835
Ave special neighs/atom = 0.50847458
Neighbor list builds = 6
Dangerous builds = 0
Total wall time: 0:01:01

View File

@ -0,0 +1,147 @@
LAMMPS (24 Mar 2022)
# electrodes with constant potential and smart neighborlists
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 1 by 1 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.024 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
kspace_modify slab 3.0
fix conp bot electrode/conp -1.0 1.979 couple top 1.0 symm on etypes 5
832 atoms in group conp_group
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20904498
grid = 32 32 200
stencil order = 5
estimated absolute RMS force accuracy = 3.7023506e-05
estimated relative force accuracy = 1.1149519e-07
using double precision MKL FFT
3d grid and FFT values/proc = 307242 204800
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conp, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 56.89 | 56.89 | 56.89 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop
0 0 0 25137191 25137191 0.0085142912 -0.0085142912
50 17.83755 64.26354 25137031 25137214 0.0045923944 -0.0045923944
100 48.393682 174.34846 25136774 25137273 -0.009514517 0.009514517
150 70.421272 253.7075 25136655 25137380 -0.033017005 0.033017005
200 82.204844 296.16031 25136667 25137514 -0.063668175 0.063668175
250 87.54223 315.38937 25136757 25137659 -0.096776257 0.096776257
300 91.704746 330.38571 25136865 25137810 -0.1283784 0.1283784
350 100.36017 361.56871 25136934 25137968 -0.15649799 0.15649799
400 111.37575 401.25467 25136986 25138133 -0.18065435 0.18065435
450 121.79848 438.80476 25137043 25138298 -0.19979365 0.19979365
500 126.95916 457.39718 25137145 25138453 -0.21037535 0.21037535
Loop time of 63.497 on 1 procs for 500 steps with 3776 atoms
Performance: 0.680 ns/day, 35.276 hours/ns, 7.874 timesteps/s
393.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 | 20.628 | 20.628 | 20.628 | 0.0 | 32.49
Bond | 0.0019309 | 0.0019309 | 0.0019309 | 0.0 | 0.00
Kspace | 23.61 | 23.61 | 23.61 | 0.0 | 37.18
Neigh | 0.28156 | 0.28156 | 0.28156 | 0.0 | 0.44
Comm | 0.061191 | 0.061191 | 0.061191 | 0.0 | 0.10
Output | 0.0022666 | 0.0022666 | 0.0022666 | 0.0 | 0.00
Modify | 18.891 | 18.891 | 18.891 | 0.0 | 29.75
Other | | 0.02047 | | | 0.03
Nlocal: 3776 ave 3776 max 3776 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 12509 ave 12509 max 12509 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 1.72633e+06 ave 1.72633e+06 max 1.72633e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1726328
Ave neighs/atom = 457.18432
Ave special neighs/atom = 0.50847458
Neighbor list builds = 7
Dangerous builds = 0
Total wall time: 0:02:24

View File

@ -0,0 +1,148 @@
LAMMPS (24 Mar 2022)
# electrodes with constant potential and smart neighborlists
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
processors * * 2
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 2 by 2 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.016 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
kspace_modify slab 3.0
fix conp bot electrode/conp -1.0 1.979 couple top 1.0 symm on etypes 5
832 atoms in group conp_group
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20904498
grid = 32 32 200
stencil order = 5
estimated absolute RMS force accuracy = 3.7023506e-05
estimated relative force accuracy = 1.1149519e-07
using double precision MKL FFT
3d grid and FFT values/proc = 151593 85504
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conp, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 23.63 | 27.46 | 31.29 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop
0 0 0 25137191 25137191 0.0085142912 -0.0085142912
50 17.83755 64.26354 25137031 25137214 0.0045923944 -0.0045923944
100 48.393682 174.34846 25136774 25137273 -0.009514517 0.009514517
150 70.421272 253.7075 25136655 25137380 -0.033017005 0.033017005
200 82.204844 296.16031 25136667 25137514 -0.063668175 0.063668175
250 87.54223 315.38937 25136757 25137659 -0.096776257 0.096776257
300 91.704746 330.38571 25136865 25137810 -0.1283784 0.1283784
350 100.36017 361.56871 25136934 25137968 -0.15649799 0.15649799
400 111.37575 401.25467 25136986 25138133 -0.18065435 0.18065435
450 121.79848 438.80476 25137043 25138298 -0.19979365 0.19979365
500 126.95916 457.39718 25137145 25138453 -0.21037535 0.21037535
Loop time of 30.7883 on 4 procs for 500 steps with 3776 atoms
Performance: 1.403 ns/day, 17.105 hours/ns, 16.240 timesteps/s
94.1% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 6.5102 | 6.7303 | 6.9362 | 7.6 | 21.86
Bond | 0.00064504 | 0.00071061 | 0.000779 | 0.0 | 0.00
Kspace | 14.081 | 14.287 | 14.507 | 5.2 | 46.40
Neigh | 0.11831 | 0.11841 | 0.11851 | 0.0 | 0.38
Comm | 0.12216 | 0.12434 | 0.12651 | 0.6 | 0.40
Output | 0.00083347 | 0.0010533 | 0.0017069 | 1.2 | 0.00
Modify | 9.5052 | 9.5071 | 9.5093 | 0.1 | 30.88
Other | | 0.01927 | | | 0.06
Nlocal: 944 ave 951 max 941 min
Histogram: 1 2 0 0 0 0 0 0 0 1
Nghost: 5923.25 ave 5941 max 5906 min
Histogram: 1 0 0 1 0 0 1 0 0 1
Neighs: 431582 ave 442090 max 419903 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Total # of neighbors = 1726328
Ave neighs/atom = 457.18432
Ave special neighs/atom = 0.50847458
Neighbor list builds = 7
Dangerous builds = 0
Total wall time: 0:00:56

View File

@ -0,0 +1,146 @@
LAMMPS (24 Mar 2022)
# electrodes with constant potential using finite field
# for z-periodic graphene-ionic liquid supercapacitor
boundary p p p # ffield uses periodic z-boundary and no slab
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 1 by 1 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.022 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
fix conp bot electrode/conp -1.0 1.979 couple top 1.0 symm on etypes 5 ffield yes
832 atoms in group conp_group
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20949995
grid = 32 32 90
stencil order = 5
estimated absolute RMS force accuracy = 3.5014341e-05
estimated relative force accuracy = 1.0544465e-07
using double precision MKL FFT
3d grid and FFT values/proc = 147537 92160
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conp, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 49.5 | 49.5 | 49.5 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop
0 0 0 25137187 25137187 0.0085209384 -0.0085209384
50 17.837642 64.263873 25137027 25137211 0.0045513522 -0.0045513522
100 48.393984 174.34955 25136771 25137269 -0.0097291786 0.0097291786
150 70.421823 253.70949 25136651 25137377 -0.033522793 0.033522793
200 82.205535 296.1628 25136664 25137510 -0.064555648 0.064555648
250 87.542843 315.39158 25136754 25137655 -0.098075546 0.098075546
300 91.705733 330.38927 25136862 25137806 -0.13006751 0.13006751
350 100.36128 361.5727 25136930 25137964 -0.15852814 0.15852814
400 111.37586 401.25505 25136982 25138129 -0.18297207 0.18297207
450 121.79814 438.80351 25137039 25138294 -0.2023394 0.2023394
500 126.95882 457.39597 25137142 25138449 -0.21305221 0.21305221
Loop time of 36.7618 on 1 procs for 500 steps with 3776 atoms
Performance: 1.175 ns/day, 20.423 hours/ns, 13.601 timesteps/s
393.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 | 19.737 | 19.737 | 19.737 | 0.0 | 53.69
Bond | 0.00092668 | 0.00092668 | 0.00092668 | 0.0 | 0.00
Kspace | 6.5854 | 6.5854 | 6.5854 | 0.0 | 17.91
Neigh | 0.33914 | 0.33914 | 0.33914 | 0.0 | 0.92
Comm | 0.090124 | 0.090124 | 0.090124 | 0.0 | 0.25
Output | 0.0013975 | 0.0013975 | 0.0013975 | 0.0 | 0.00
Modify | 9.9834 | 9.9834 | 9.9834 | 0.0 | 27.16
Other | | 0.02455 | | | 0.07
Nlocal: 3776 ave 3776 max 3776 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 23654 ave 23654 max 23654 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 1.86369e+06 ave 1.86369e+06 max 1.86369e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1863691
Ave neighs/atom = 493.56224
Ave special neighs/atom = 0.50847458
Neighbor list builds = 7
Dangerous builds = 0
Total wall time: 0:01:39

View File

@ -0,0 +1,147 @@
LAMMPS (24 Mar 2022)
# electrodes with constant potential using finite field
# for z-periodic graphene-ionic liquid supercapacitor
boundary p p p # ffield uses periodic z-boundary and no slab
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
processors * * 2
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 2 by 2 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.016 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
fix conp bot electrode/conp -1.0 1.979 couple top 1.0 symm on etypes 5 ffield yes
832 atoms in group conp_group
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20949995
grid = 32 32 90
stencil order = 5
estimated absolute RMS force accuracy = 3.5014341e-05
estimated relative force accuracy = 1.0544465e-07
using double precision MKL FFT
3d grid and FFT values/proc = 46644 23552
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conp, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 21.96 | 22.27 | 22.77 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop
0 0 0 25137187 25137187 0.0085209384 -0.0085209384
50 17.837642 64.263873 25137027 25137211 0.0045513522 -0.0045513522
100 48.393984 174.34955 25136771 25137269 -0.0097291786 0.0097291786
150 70.421823 253.70949 25136651 25137377 -0.033522793 0.033522793
200 82.205535 296.1628 25136664 25137510 -0.064555648 0.064555648
250 87.542843 315.39158 25136754 25137655 -0.098075546 0.098075546
300 91.705733 330.38927 25136862 25137806 -0.13006751 0.13006751
350 100.36128 361.5727 25136930 25137964 -0.15852814 0.15852814
400 111.37586 401.25505 25136982 25138129 -0.18297207 0.18297207
450 121.79814 438.80351 25137039 25138294 -0.2023394 0.2023394
500 126.95882 457.39597 25137142 25138449 -0.21305221 0.21305221
Loop time of 19.3932 on 4 procs for 500 steps with 3776 atoms
Performance: 2.228 ns/day, 10.774 hours/ns, 25.782 timesteps/s
96.3% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 7.1247 | 7.6399 | 8.1323 | 13.3 | 39.39
Bond | 0.00072445 | 0.00077581 | 0.00085933 | 0.0 | 0.00
Kspace | 5.098 | 5.5905 | 6.1036 | 15.6 | 28.83
Neigh | 0.145 | 0.14517 | 0.14532 | 0.0 | 0.75
Comm | 0.24683 | 0.25127 | 0.25907 | 1.0 | 1.30
Output | 0.00084146 | 0.0011298 | 0.0019741 | 1.5 | 0.01
Modify | 5.6957 | 5.7129 | 5.729 | 0.6 | 29.46
Other | | 0.05153 | | | 0.27
Nlocal: 944 ave 951 max 941 min
Histogram: 1 2 0 0 0 0 0 0 0 1
Nghost: 10122.8 ave 10136 max 10101 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Neighs: 465923 ave 510116 max 422901 min
Histogram: 1 0 1 0 0 0 0 1 0 1
Total # of neighbors = 1863691
Ave neighs/atom = 493.56224
Ave special neighs/atom = 0.50847458
Neighbor list builds = 7
Dangerous builds = 0
Total wall time: 0:00:44

View File

@ -0,0 +1,148 @@
LAMMPS (24 Mar 2022)
# electrodes with equal-style ramped (electrode-)constant potential
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 1 by 1 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.014 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
kspace_modify slab 3.0
variable v equal ramp(2,4)
fix conp bot electrode/conp 0.0 1.979 couple top v_v symm on etypes 5
832 atoms in group conp_group
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop v_v
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20904498
grid = 32 32 200
stencil order = 5
estimated absolute RMS force accuracy = 3.7023506e-05
estimated relative force accuracy = 1.1149519e-07
using double precision MKL FFT
3d grid and FFT values/proc = 307242 204800
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conp, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 56.89 | 56.89 | 56.89 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop v_v
0 0 0 25137191 25137191 0.0085142912 -0.0085142912 2
50 17.839699 64.271283 25137031 25137214 -0.0067894391 0.0067894391 2.2
100 48.411618 174.41308 25136774 25137273 -0.033422174 0.033422174 2.4
150 70.478909 253.91515 25136654 25137380 -0.071583953 0.071583953 2.6
200 82.322716 296.58497 25136666 25137513 -0.11962095 0.11962095 2.8
250 87.739905 316.10153 25136754 25137658 -0.17281469 0.17281469 3
300 91.974584 331.35786 25136861 25137808 -0.22657123 0.22657123 3.2
350 100.73048 362.90284 25136928 25137965 -0.27817429 0.27817429 3.4
400 111.78597 402.73256 25136977 25138129 -0.32659395 0.32659395 3.6
450 122.14181 440.04167 25137033 25138291 -0.37054363 0.37054363 3.8
500 127.32331 458.70912 25137133 25138444 -0.40653009 0.40653009 4
Loop time of 50.8569 on 1 procs for 500 steps with 3776 atoms
Performance: 0.849 ns/day, 28.254 hours/ns, 9.831 timesteps/s
393.5% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 18.166 | 18.166 | 18.166 | 0.0 | 35.72
Bond | 0.00091918 | 0.00091918 | 0.00091918 | 0.0 | 0.00
Kspace | 17.267 | 17.267 | 17.267 | 0.0 | 33.95
Neigh | 0.27635 | 0.27635 | 0.27635 | 0.0 | 0.54
Comm | 0.044714 | 0.044714 | 0.044714 | 0.0 | 0.09
Output | 0.0018345 | 0.0018345 | 0.0018345 | 0.0 | 0.00
Modify | 15.086 | 15.086 | 15.086 | 0.0 | 29.66
Other | | 0.01409 | | | 0.03
Nlocal: 3776 ave 3776 max 3776 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 12511 ave 12511 max 12511 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 1.72628e+06 ave 1.72628e+06 max 1.72628e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1726280
Ave neighs/atom = 457.17161
Ave special neighs/atom = 0.50847458
Neighbor list builds = 7
Dangerous builds = 0
Total wall time: 0:01:50

View File

@ -0,0 +1,149 @@
LAMMPS (24 Mar 2022)
# electrodes with equal-style ramped (electrode-)constant potential
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
processors * * 2
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 2 by 2 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.024 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
kspace_modify slab 3.0
variable v equal ramp(2,4)
fix conp bot electrode/conp 0.0 1.979 couple top v_v symm on etypes 5
832 atoms in group conp_group
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop v_v
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20904498
grid = 32 32 200
stencil order = 5
estimated absolute RMS force accuracy = 3.7023506e-05
estimated relative force accuracy = 1.1149519e-07
using double precision MKL FFT
3d grid and FFT values/proc = 151593 85504
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/conp, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/conp, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 23.63 | 27.46 | 31.29 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop v_v
0 0 0 25137191 25137191 0.0085142912 -0.0085142912 2
50 17.839699 64.271283 25137031 25137214 -0.0067894391 0.0067894391 2.2
100 48.411618 174.41308 25136774 25137273 -0.033422174 0.033422174 2.4
150 70.478909 253.91515 25136654 25137380 -0.071583953 0.071583953 2.6
200 82.322716 296.58497 25136666 25137513 -0.11962095 0.11962095 2.8
250 87.739905 316.10153 25136754 25137658 -0.17281469 0.17281469 3
300 91.974584 331.35786 25136861 25137808 -0.22657123 0.22657123 3.2
350 100.73048 362.90284 25136928 25137965 -0.27817429 0.27817429 3.4
400 111.78597 402.73256 25136977 25138129 -0.32659395 0.32659395 3.6
450 122.14181 440.04167 25137033 25138291 -0.37054363 0.37054363 3.8
500 127.32331 458.70912 25137133 25138444 -0.40653009 0.40653009 4
Loop time of 31.7642 on 4 procs for 500 steps with 3776 atoms
Performance: 1.360 ns/day, 17.647 hours/ns, 15.741 timesteps/s
94.1% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 6.7949 | 7.0359 | 7.3092 | 7.9 | 22.15
Bond | 0.00069874 | 0.00073747 | 0.00077928 | 0.0 | 0.00
Kspace | 14.375 | 14.648 | 14.89 | 5.5 | 46.12
Neigh | 0.12057 | 0.1206 | 0.12062 | 0.0 | 0.38
Comm | 0.13412 | 0.13439 | 0.13483 | 0.1 | 0.42
Output | 0.0010019 | 0.0013088 | 0.0020937 | 1.3 | 0.00
Modify | 9.8017 | 9.8025 | 9.8031 | 0.0 | 30.86
Other | | 0.02036 | | | 0.06
Nlocal: 944 ave 951 max 941 min
Histogram: 1 2 0 0 0 0 0 0 0 1
Nghost: 5924.75 ave 5941 max 5910 min
Histogram: 1 0 0 1 0 1 0 0 0 1
Neighs: 431570 ave 442073 max 419253 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Total # of neighbors = 1726280
Ave neighs/atom = 457.17161
Ave special neighs/atom = 0.50847458
Neighbor list builds = 7
Dangerous builds = 0
Total wall time: 0:00:58

View File

@ -0,0 +1,154 @@
LAMMPS (24 Mar 2022)
# electrodes with thermopotentiostat
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 1 by 1 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.013 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
kspace_modify slab 3.0
unfix nvt # remove NVT thermostat included from "settings.mod"
fix conpthermo bot electrode/thermo -1.0 1.979 couple top 1.0 etypes 5 temp 500 100
832 atoms in group conp_group
# to compare to regular constant potential, switch previous line to this:
#fix conp bot electrode/conp -1.0 1.979 couple top 1.0 etypes 5 symm on
fix nve electrolyte nve
# note ionic liquid does not reach 500K immediately
# because its thermal response time is finite
# run this about 10k steps (10ps) to reach preset temperature
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20904498
grid = 32 32 200
stencil order = 5
estimated absolute RMS force accuracy = 3.7023506e-05
estimated relative force accuracy = 1.1149519e-07
using double precision MKL FFT
3d grid and FFT values/proc = 307242 204800
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/thermo, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/thermo, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 56.89 | 56.89 | 56.89 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop
0 0 0 25137187 25137187 0.12767613 -0.12767613
50 16.63971 59.94807 25137031 25137203 0.11714714 -0.11714714
100 40.785523 146.93846 25136782 25137202 0.1278358 -0.1278358
150 53.394067 192.3634 25136654 25137204 0.080257143 -0.080257143
200 56.419019 203.26143 25136624 25137205 0.024756489 -0.024756489
250 54.922935 197.87147 25136640 25137205 -0.024533719 0.024533719
300 52.884861 190.52888 25136660 25137205 -0.066341094 0.066341094
350 52.41676 188.84244 25136666 25137206 -0.089546252 0.089546252
400 54.366979 195.86852 25136646 25137206 -0.10239753 0.10239753
450 54.906542 197.81241 25136642 25137208 -0.099987401 0.099987401
500 54.33841 195.7656 25136642 25137201 -0.21295942 0.21295942
Loop time of 57.1461 on 1 procs for 500 steps with 3776 atoms
Performance: 0.756 ns/day, 31.748 hours/ns, 8.749 timesteps/s
394.1% 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.46 | 21.46 | 21.46 | 0.0 | 37.55
Bond | 0.0010731 | 0.0010731 | 0.0010731 | 0.0 | 0.00
Kspace | 18.682 | 18.682 | 18.682 | 0.0 | 32.69
Neigh | 0.21613 | 0.21613 | 0.21613 | 0.0 | 0.38
Comm | 0.048817 | 0.048817 | 0.048817 | 0.0 | 0.09
Output | 0.0017289 | 0.0017289 | 0.0017289 | 0.0 | 0.00
Modify | 16.721 | 16.721 | 16.721 | 0.0 | 29.26
Other | | 0.01639 | | | 0.03
Nlocal: 3776 ave 3776 max 3776 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 12504 ave 12504 max 12504 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 1.72597e+06 ave 1.72597e+06 max 1.72597e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1725966
Ave neighs/atom = 457.08845
Ave special neighs/atom = 0.50847458
Neighbor list builds = 5
Dangerous builds = 0
Total wall time: 0:01:53

View File

@ -0,0 +1,155 @@
LAMMPS (24 Mar 2022)
# electrodes with thermopotentiostat
# for graphene-ionic liquid supercapacitor
boundary p p f # slab calculation
include settings.mod # styles, groups, computes and fixes
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
processors * * 2
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
Reading data file ...
orthogonal box = (0 0 -68) to (32.2 34.4 68)
1 by 2 by 2 MPI processor grid
reading atoms ...
3776 atoms
scanning bonds ...
2 = max bonds/atom
scanning angles ...
1 = max angles/atom
reading bonds ...
640 bonds
reading angles ...
320 angles
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
1 = max # of 1-3 neighbors
1 = max # of 1-4 neighbors
2 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.020 seconds
group bot molecule 641
416 atoms in group bot
group top molecule 642
416 atoms in group top
group bmi type 1 2 3
960 atoms in group bmi
group electrolyte type 1 2 3 4
1280 atoms in group electrolyte
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
0 = # of size 2 clusters
0 = # of size 3 clusters
0 = # of size 4 clusters
320 = # of frozen angles
find clusters CPU = 0.001 seconds
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp
kspace_modify slab 3.0
unfix nvt # remove NVT thermostat included from "settings.mod"
fix conpthermo bot electrode/thermo -1.0 1.979 couple top 1.0 etypes 5 temp 500 100
832 atoms in group conp_group
# to compare to regular constant potential, switch previous line to this:
#fix conp bot electrode/conp -1.0 1.979 couple top 1.0 etypes 5 symm on
fix nve electrolyte nve
# note ionic liquid does not reach 500K immediately
# because its thermal response time is finite
# run this about 10k steps (10ps) to reach preset temperature
thermo 50
thermo_style custom step temp c_ctemp epair etotal c_qbot c_qtop
run 500
PPPM/electrode initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.20904498
grid = 32 32 200
stencil order = 5
estimated absolute RMS force accuracy = 3.7023506e-05
estimated relative force accuracy = 1.1149519e-07
using double precision MKL FFT
3d grid and FFT values/proc = 151593 85504
generated 10 of 10 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 4 4 16
3 neighbor lists, perpetual/occasional/extra = 2 1 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
(2) fix electrode/thermo, occasional, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(3) fix electrode/thermo, perpetual, skip from (1)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 23.63 | 27.46 | 31.29 Mbytes
Step Temp c_ctemp E_pair TotEng c_qbot c_qtop
0 0 0 25137187 25137187 0.12767613 -0.12767613
50 16.63971 59.94807 25137031 25137203 0.11714714 -0.11714714
100 40.785523 146.93846 25136782 25137202 0.1278358 -0.1278358
150 53.394067 192.3634 25136654 25137204 0.080257143 -0.080257143
200 56.419019 203.26143 25136624 25137205 0.024756489 -0.024756489
250 54.922935 197.87147 25136640 25137205 -0.024533719 0.024533719
300 52.884861 190.52888 25136660 25137205 -0.066341094 0.066341094
350 52.41676 188.84244 25136666 25137206 -0.089546252 0.089546252
400 54.366979 195.86852 25136646 25137206 -0.10239753 0.10239753
450 54.906542 197.81241 25136642 25137208 -0.099987401 0.099987401
500 54.33841 195.7656 25136642 25137201 -0.21295942 0.21295942
Loop time of 35.5912 on 4 procs for 500 steps with 3776 atoms
Performance: 1.214 ns/day, 19.773 hours/ns, 14.048 timesteps/s
94.3% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 7.6394 | 7.8432 | 8.0506 | 6.5 | 22.04
Bond | 0.0007217 | 0.0007899 | 0.0008878 | 0.0 | 0.00
Kspace | 16.214 | 16.422 | 16.624 | 4.5 | 46.14
Neigh | 0.094438 | 0.094566 | 0.094678 | 0.0 | 0.27
Comm | 0.15777 | 0.16435 | 0.17055 | 1.4 | 0.46
Output | 0.0011138 | 0.0013714 | 0.0020178 | 1.0 | 0.00
Modify | 11.027 | 11.035 | 11.044 | 0.2 | 31.00
Other | | 0.03023 | | | 0.08
Nlocal: 944 ave 951 max 940 min
Histogram: 1 1 1 0 0 0 0 0 0 1
Nghost: 5918.5 ave 5940 max 5899 min
Histogram: 1 0 1 0 0 0 1 0 0 1
Neighs: 431492 ave 442132 max 419533 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Total # of neighbors = 1725966
Ave neighs/atom = 457.08845
Ave special neighs/atom = 0.50847458
Neighbor list builds = 5
Dangerous builds = 0
Total wall time: 0:01:01

View File

@ -0,0 +1,27 @@
# set boundary in main script because ffield is periodic
units real
# distribute electrode atoms among all processors:
if "$(extract_setting(world_size) % 2) == 0" then "processors * * 2"
atom_style full
pair_style lj/cut/coul/long 16
bond_style harmonic
angle_style harmonic
kspace_style pppm/electrode 1e-7
# kspace_modify in main script because ffield is periodic
read_data "data.graph-il"
group bot molecule 641
group top molecule 642
group bmi type 1 2 3
group electrolyte type 1 2 3 4
fix nvt electrolyte nvt temp 500.0 500.0 100
fix shake bmi shake 1e-4 20 0 b 1 2 a 1
variable q atom q
compute qtop top reduce sum v_q
compute qbot bot reduce sum v_q
compute ctemp electrolyte temp

View File

@ -0,0 +1 @@
log.lammps*

View File

@ -0,0 +1,14 @@
boundary p p f
kspace_style ewald/electrode 1.0e-7
kspace_modify slab ew2d
include "settings.mod" # styles, computes, groups and fixes
# constant potential electrodes with ramping potential difference
fix conp bot electrode/conp 0 1.979 couple top v_v symm on
thermo 1
# thermo: step, imposed potential, bottom charge, top charge, theory charge, percent deviation
thermo_style custom step v_v c_qbot c_qtop v_qtheory v_percdev
run 10

View File

@ -0,0 +1,14 @@
boundary p p f
kspace_style ewald/electrode 1.0e-7
kspace_modify slab 3.0 # ew3dc
include "settings.mod" # styles, computes, groups and fixes
# constant potential electrodes with ramping potential difference
fix conp bot electrode/conp 0 1.979 couple top v_v symm on
thermo 1
# thermo: step, imposed potential, bottom charge, top charge, theory charge, percent deviation
thermo_style custom step v_v c_qbot c_qtop v_qtheory v_percdev
run 10

View File

@ -0,0 +1,13 @@
boundary p p p # finite field, fully periodic
kspace_style ewald/electrode 1.0e-7
include "settings.mod" # styles, computes, groups and fixes
# constant potential electrodes with ramping potential difference
fix conp bot electrode/conp 0 1.979 couple top v_v symm on ffield yes
thermo 1
# thermo: step, imposed potential, bottom charge, top charge, theory charge, percent deviation
thermo_style custom step v_v c_qbot c_qtop v_qtheory v_percdev
run 10

View File

@ -0,0 +1,15 @@
boundary p p f
kspace_style pppm/electrode 1.0e-7
kspace_modify slab 3.0
include "settings.mod" # styles, computes, groups and fixes
# constant potential electrodes with ramping potential difference
fix conp bot electrode/conp 0 1.979 couple top v_v symm on
thermo 1
# thermo: step, imposed potential, bottom charge, top charge, theory charge, percent deviation
thermo_style custom step v_v c_qbot c_qtop v_qtheory v_percdev
run 10

View File

@ -0,0 +1,13 @@
boundary p p p # finite field, fully periodic
kspace_style pppm/electrode 1.0e-7
include "settings.mod" # styles, computes, groups and fixes
# constant potential electrodes with ramping potential difference
fix conp bot electrode/conp 0 1.979 couple top v_v symm on ffield yes
thermo 1
# thermo: step, imposed potential, bottom charge, top charge, theory charge, percent deviation
thermo_style custom step v_v c_qbot c_qtop v_qtheory v_percdev
run 10

Some files were not shown because too many files have changed in this diff Show More