Revamped examples
This commit is contained in:
@ -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).
|
||||
|
||||
----------
|
||||
|
||||
|
||||
27
examples/PACKAGES/electrode/README
Normal file
27
examples/PACKAGES/electrode/README
Normal 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
|
||||
|
||||
@ -1,2 +1 @@
|
||||
*.csv
|
||||
log.lammps*
|
||||
@ -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
|
||||
11
examples/PACKAGES/electrode/au-aq/in.ffield
Normal file
11
examples/PACKAGES/electrode/au-aq/in.ffield
Normal 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
|
||||
15
examples/PACKAGES/electrode/au-aq/in.tf
Normal file
15
examples/PACKAGES/electrode/au-aq/in.tf
Normal 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
|
||||
@ -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
|
||||
@ -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
|
||||
154
examples/PACKAGES/electrode/au-aq/log.26Apr2022.au-aq-tf.g++.1
Normal file
154
examples/PACKAGES/electrode/au-aq/log.26Apr2022.au-aq-tf.g++.1
Normal 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
|
||||
155
examples/PACKAGES/electrode/au-aq/log.26Apr2022.au-aq-tf.g++.4
Normal file
155
examples/PACKAGES/electrode/au-aq/log.26Apr2022.au-aq-tf.g++.4
Normal 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
|
||||
29
examples/PACKAGES/electrode/au-aq/settings.mod
Normal file
29
examples/PACKAGES/electrode/au-aq/settings.mod
Normal 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
|
||||
|
||||
@ -1,2 +0,0 @@
|
||||
*.csv
|
||||
log.lammps_*
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -1,2 +0,0 @@
|
||||
log*
|
||||
*csv
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -1,2 +0,0 @@
|
||||
*.csv
|
||||
log.lammps_*
|
||||
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
@ -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
|
||||
@ -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*
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -1,2 +0,0 @@
|
||||
log*
|
||||
*csv
|
||||
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
@ -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
|
||||
@ -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*
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -1,2 +0,0 @@
|
||||
log*
|
||||
*csv
|
||||
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
@ -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
|
||||
@ -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*
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
@ -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
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -1,2 +0,0 @@
|
||||
log*
|
||||
*csv
|
||||
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
@ -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
|
||||
@ -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*
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
1
examples/PACKAGES/electrode/graph-il/.gitignore
vendored
Normal file
1
examples/PACKAGES/electrode/graph-il/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
log.lammps*
|
||||
@ -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
|
||||
|
||||
12
examples/PACKAGES/electrode/graph-il/in.conp
Normal file
12
examples/PACKAGES/electrode/graph-il/in.conp
Normal 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
|
||||
18
examples/PACKAGES/electrode/graph-il/in.conq
Normal file
18
examples/PACKAGES/electrode/graph-il/in.conq
Normal 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
|
||||
35
examples/PACKAGES/electrode/graph-il/in.conq2
Normal file
35
examples/PACKAGES/electrode/graph-il/in.conq2
Normal 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
|
||||
12
examples/PACKAGES/electrode/graph-il/in.etypes
Normal file
12
examples/PACKAGES/electrode/graph-il/in.etypes
Normal 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
|
||||
11
examples/PACKAGES/electrode/graph-il/in.ffield
Normal file
11
examples/PACKAGES/electrode/graph-il/in.ffield
Normal 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
|
||||
13
examples/PACKAGES/electrode/graph-il/in.ramp
Normal file
13
examples/PACKAGES/electrode/graph-il/in.ramp
Normal 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
|
||||
19
examples/PACKAGES/electrode/graph-il/in.thermo
Normal file
19
examples/PACKAGES/electrode/graph-il/in.thermo
Normal 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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
27
examples/PACKAGES/electrode/graph-il/settings.mod
Normal file
27
examples/PACKAGES/electrode/graph-il/settings.mod
Normal 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
|
||||
1
examples/PACKAGES/electrode/planar/.gitignore
vendored
Normal file
1
examples/PACKAGES/electrode/planar/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
log.lammps*
|
||||
14
examples/PACKAGES/electrode/planar/in.planar-ewald-ew2d
Normal file
14
examples/PACKAGES/electrode/planar/in.planar-ewald-ew2d
Normal 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
|
||||
14
examples/PACKAGES/electrode/planar/in.planar-ewald-ew3dc
Normal file
14
examples/PACKAGES/electrode/planar/in.planar-ewald-ew3dc
Normal 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
|
||||
13
examples/PACKAGES/electrode/planar/in.planar-ewald-ffield
Normal file
13
examples/PACKAGES/electrode/planar/in.planar-ewald-ffield
Normal 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
|
||||
15
examples/PACKAGES/electrode/planar/in.planar-pppm-ew3dc
Normal file
15
examples/PACKAGES/electrode/planar/in.planar-pppm-ew3dc
Normal 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
|
||||
|
||||
13
examples/PACKAGES/electrode/planar/in.planar-pppm-ffield
Normal file
13
examples/PACKAGES/electrode/planar/in.planar-pppm-ffield
Normal 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
Reference in New Issue
Block a user