New example structure

This commit is contained in:
talinke
2025-04-10 12:01:02 -07:00
parent 4dd8c66390
commit 43a7b14b7c
15 changed files with 713 additions and 583 deletions

View File

@ -107,9 +107,7 @@ This is not done by default, but only if the :doc:`fix_modify
<fix_modify>` command is used to assign a temperature compute to this
fix that includes such a bias term. See the doc pages for individual
:doc:`compute temp commands <compute>` to determine which ones include
a bias. In this case, the thermostat works in the following manner:
bias is removed from each atom, thermostatting is performed on the
remaining thermal degrees of freedom, and the bias is added back in.
a bias.
The *damp* parameter is specified in time units and determines how
rapidly the temperature is relaxed. For example, a value of 100.0 means
@ -148,13 +146,13 @@ Restart, fix_modify, output, run start/stop, minimize info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
No information about this fix is written to :doc:`binary restart files <restart>`.
For the Bruenger thermostat: Because the state of the random number generator
is not saved in restart files, this means you cannot do "exact"
restarts with this fix, where the simulation continues on the same as
if no restart had taken place. However, in a statistical sense, a
restarted simulation should produce the same behavior. The "exact" restart is
done with either vfull or vhalf velocity output for as long as the choice of
vfull/vhalf is the same for the simulation as it is in the restart file.
Because the state of the random number generator is not saved in restart files,
this means you cannot do "exact" restarts with this fix, where the simulation
continues on the same as if no restart had taken place. However, in a
statistical sense, a restarted simulation should produce the same behavior.
The "exact" restart is done with either vfull or vhalf velocity output for as
long as the choice of vfull/vhalf is the same for the simulation as it is in
the restart file.
The :doc:`fix_modify <fix_modify>` *temp* option is supported by this
fix. You can use it to assign a temperature :doc:`compute <compute>`

46
examples/gjf/README Normal file
View File

@ -0,0 +1,46 @@
LAMMPS GJ THERMOSTAT EXAMPLE
Required LAMMPS packages: EXTRA-FIX, MOLECULE, EXTRA-PAIR
This directory contains the ingredients to run an NVT simulation using the
GJ thermostats.
Example:
NP=4 #number of processors
mpirun -np $NP lmp_mpi -in.gjf.vhalf
Compared to other thermostats, the GJ thermostat allows for larger timesteps
with the correct Boltzmann statistics. A comparison using averaged properties
from this example's input file is shown below. 'X' denotes a failed simulation.
KINETIC ENERGY (eV)
| Δt || 0.01 | 0.05 | 0.10 | 0.11 | 0.12 | 0.13 | 0.14 |
|==============||========|========|========|========|========|========|========|
| langevin/gjf || 1.112 | 1.108 | 1.114 | 1.118 | 1.111 | 1.133 | 1.168 |
| langevin || 1.113 | 1.125 | 1.121 | 1.135 | 1.152 | X | X |
| nvt || 1.094 | 1.114 | 1.117 | 1.113 | 1.121 | X | X |
|--------------||--------|--------|--------|--------|--------|--------|--------|
POTENTIAL ENERGY (eV)
| Δt || 0.01 | 0.05 | 0.10 | 0.11 | 0.12 | 0.13 | 0.14 |
|==============||========|========|========|========|========|========|========|
| langevin/gjf || -55.16 | -55.16 | -55.15 | -55.15 | -55.15 | -55.14 | -55.12 |
| langevin || -55.16 | -55.12 | -54.93 | -54.85 | -54.71 | X | X |
| nvt || -55.17 | -55.10 | -54.95 | -54.88 | -54.82 | X | X |
|--------------||--------|--------|--------|--------|--------|--------|--------|
Script Commands:
--
fix nve all nve
fix lang all langevin 10 10 1 26488
--
vs
--
fix noho all nvt temp 10 10 1
--
vs
--
fix lang all langevin/gjf 10 10 1 26488
--

View File

@ -1,13 +0,0 @@
# LAMMPS GJF-2GJ THERMOSTAT EXAMPLE
## GJF-2GJ THERMOSTAT
This directory contains the ingredients to run an NVT simulation using the GJF-2GJ thermostat.
Example:
```
NP=4 #number of processors
mpirun -np $NP lmp_mpi -in.gjf.vhalf
```
## Required LAMMPS packages: MOLECULE package

View File

@ -1,4 +1,4 @@
# GJF-2GJ thermostat
# GJ thermostat
units metal
atom_style full
@ -14,8 +14,7 @@ neighbor 1 bin
timestep 0.1
fix lang all langevin 10 10 1 26488 gjf vfull
fix nve all nve
fix lang all langevin/gjf 10 10 1 26488 vel vfull method 4
thermo 200
run 5000

View File

@ -1,4 +1,4 @@
# GJF-2GJ thermostat
# GJ thermostat
units metal
atom_style full
@ -14,8 +14,7 @@ neighbor 1 bin
timestep 0.1
fix lang all langevin 10 10 1 26488 gjf vhalf
fix nve all nve
fix lang all langevin/gjf 10 10 1 26488
thermo 200
run 5000

View File

@ -1,125 +0,0 @@
LAMMPS (19 Sep 2019)
using 1 OpenMP thread(s) per MPI task
# GJF-2GJ thermostat
units metal
atom_style full
boundary p p p
read_data argon.lmp
orthogonal box = (0 0 0) to (32.146 32.146 32.146)
1 by 1 by 1 MPI processor grid
reading atoms ...
864 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000150019 secs
read_data CPU = 0.001946 secs
include ff-argon.lmp
#############################
#Atoms types - mass - charge#
#############################
#@ 1 atom types #!THIS LINE IS NECESSARY DON'T SPEND HOURS FINDING THAT OUT!#
variable Ar equal 1
#############
#Atom Masses#
#############
mass ${Ar} 39.903
mass 1 39.903
###########################
#Pair Potentials - Tersoff#
###########################
pair_style lj/cubic
pair_coeff * * 0.0102701 3.42
velocity all create 10 2357 mom yes dist gaussian
neighbor 1 bin
timestep 0.1
fix lang all langevin 10 10 1 26488 gjf vfull
fix nve all nve
thermo 200
run 5000
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6.94072
ghost atom cutoff = 6.94072
binsize = 3.47036, bins = 10 10 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cubic, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.875 | 6.875 | 6.875 Mbytes
Step Temp E_pair E_mol TotEng Press
0 11.080223 -56.207655 0 -54.97164 37.215524
200 8.2588471 -55.073602 0 -54.152316 339.80416
400 8.1427292 -55.072244 0 -54.16391 338.91883
600 8.7595618 -55.066739 0 -54.089596 344.25426
800 8.550633 -55.148315 0 -54.194479 318.9385
1000 8.5394337 -55.125709 0 -54.173122 326.59471
1200 8.565973 -55.114892 0 -54.159345 328.5193
1400 8.2092914 -55.109233 0 -54.193475 329.56161
1600 8.209495 -55.138161 0 -54.22238 321.39971
1800 8.4039924 -55.13355 0 -54.196072 322.64214
2000 8.4548937 -55.062994 0 -54.119838 343.29888
2200 8.3775139 -55.13364 0 -54.199116 323.63744
2400 8.537332 -55.163702 0 -54.21135 315.62864
2600 8.672488 -55.112054 0 -54.144625 330.1106
2800 8.3000218 -55.147275 0 -54.221396 318.73112
3000 8.3552421 -55.135164 0 -54.203124 323.53075
3200 8.4126798 -55.135753 0 -54.197306 321.48817
3400 8.4986413 -55.135408 0 -54.187372 323.42951
3600 8.38431 -55.103932 0 -54.16865 330.68929
3800 8.8262454 -55.103648 0 -54.119067 332.97779
4000 7.9658136 -55.120402 0 -54.231803 324.9595
4200 8.2265544 -55.129011 0 -54.211327 323.87069
4400 8.1253738 -55.153089 0 -54.246691 316.304
4600 8.2010823 -55.124053 0 -54.20921 325.98402
4800 8.5512149 -55.075877 0 -54.121976 338.30137
5000 8.4737659 -55.158604 0 -54.213343 316.22418
Loop time of 2.73236 on 1 procs for 5000 steps with 864 atoms
Performance: 15810.507 ns/day, 0.002 hours/ns, 1829.920 timesteps/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.4262 | 1.4262 | 1.4262 | 0.0 | 52.20
Bond | 0.00042836 | 0.00042836 | 0.00042836 | 0.0 | 0.02
Neigh | 0.12819 | 0.12819 | 0.12819 | 0.0 | 4.69
Comm | 0.058611 | 0.058611 | 0.058611 | 0.0 | 2.15
Output | 0.00047283 | 0.00047283 | 0.00047283 | 0.0 | 0.02
Modify | 1.0924 | 1.0924 | 1.0924 | 0.0 | 39.98
Other | | 0.02605 | | | 0.95
Nlocal: 864 ave 864 max 864 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1593 ave 1593 max 1593 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 18143 ave 18143 max 18143 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18143
Ave neighs/atom = 20.9988
Ave special neighs/atom = 0
Neighbor list builds = 158
Dangerous builds = 5
Total wall time: 0:00:02

View File

@ -1,125 +0,0 @@
LAMMPS (19 Sep 2019)
using 1 OpenMP thread(s) per MPI task
# GJF-2GJ thermostat
units metal
atom_style full
boundary p p p
read_data argon.lmp
orthogonal box = (0 0 0) to (32.146 32.146 32.146)
1 by 2 by 2 MPI processor grid
reading atoms ...
864 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000556268 secs
read_data CPU = 0.003817 secs
include ff-argon.lmp
#############################
#Atoms types - mass - charge#
#############################
#@ 1 atom types #!THIS LINE IS NECESSARY DON'T SPEND HOURS FINDING THAT OUT!#
variable Ar equal 1
#############
#Atom Masses#
#############
mass ${Ar} 39.903
mass 1 39.903
###########################
#Pair Potentials - Tersoff#
###########################
pair_style lj/cubic
pair_coeff * * 0.0102701 3.42
velocity all create 10 2357 mom yes dist gaussian
neighbor 1 bin
timestep 0.1
fix lang all langevin 10 10 1 26488 gjf vfull
fix nve all nve
thermo 200
run 5000
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6.94072
ghost atom cutoff = 6.94072
binsize = 3.47036, bins = 10 10 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cubic, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.808 | 6.808 | 6.808 Mbytes
Step Temp E_pair E_mol TotEng Press
0 11.080228 -56.207655 0 -54.971639 37.215541
200 8.4818184 -55.127334 0 -54.181174 324.96159
400 8.5960916 -55.09236 0 -54.133453 334.83136
600 8.1607556 -55.073136 0 -54.162791 339.035
800 8.8350489 -55.133382 0 -54.147819 324.48149
1000 8.5692704 -55.118463 0 -54.162548 327.26328
1200 8.4174147 -55.126297 0 -54.187322 324.4248
1400 8.6362603 -55.123075 0 -54.159688 326.7798
1600 8.222512 -55.153799 0 -54.236565 317.8147
1800 8.324523 -55.116698 0 -54.188085 327.35373
2000 7.9615959 -55.155825 0 -54.267697 315.37215
2200 8.495968 -55.083943 0 -54.136205 336.67775
2400 7.7926986 -55.044816 0 -54.175529 344.87758
2600 8.1551351 -55.069404 0 -54.159687 339.60901
2800 8.2593599 -55.084151 0 -54.162807 336.54935
3000 8.2860869 -55.110296 0 -54.185971 328.99074
3200 8.4074534 -55.123576 0 -54.185712 326.06823
3400 8.6694364 -55.128925 0 -54.161836 324.67512
3600 8.5718984 -55.129861 0 -54.173653 325.20586
3800 8.508102 -55.099093 0 -54.150001 333.91437
4000 8.2966658 -55.117782 0 -54.192276 327.13516
4200 8.7641728 -55.135792 0 -54.158136 324.00844
4400 8.8827909 -55.096369 0 -54.10548 335.08467
4600 8.7666577 -55.127213 0 -54.149279 326.15539
4800 8.6670762 -55.163395 0 -54.19657 316.48383
5000 8.1893094 -55.073756 0 -54.160226 337.95271
Loop time of 0.870594 on 4 procs for 5000 steps with 864 atoms
Performance: 49621.267 ns/day, 0.000 hours/ns, 5743.202 timesteps/s
96.5% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.33582 | 0.35125 | 0.3724 | 2.3 | 40.35
Bond | 0.00030267 | 0.00031316 | 0.00033538 | 0.0 | 0.04
Neigh | 0.034246 | 0.03479 | 0.035904 | 0.4 | 4.00
Comm | 0.15068 | 0.17419 | 0.19191 | 3.6 | 20.01
Output | 0.00044776 | 0.00054703 | 0.00083177 | 0.0 | 0.06
Modify | 0.27679 | 0.28079 | 0.28849 | 0.9 | 32.25
Other | | 0.02871 | | | 3.30
Nlocal: 216 ave 216 max 216 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 888.75 ave 899 max 876 min
Histogram: 1 0 1 0 0 0 0 0 0 2
Neighs: 4536 ave 4737 max 4335 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 18144
Ave neighs/atom = 21
Ave special neighs/atom = 0
Neighbor list builds = 178
Dangerous builds = 11
Total wall time: 0:00:00

View File

@ -1,125 +0,0 @@
LAMMPS (19 Sep 2019)
using 1 OpenMP thread(s) per MPI task
# GJF-2GJ thermostat
units metal
atom_style full
boundary p p p
read_data argon.lmp
orthogonal box = (0 0 0) to (32.146 32.146 32.146)
1 by 1 by 1 MPI processor grid
reading atoms ...
864 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000147804 secs
read_data CPU = 0.00194898 secs
include ff-argon.lmp
#############################
#Atoms types - mass - charge#
#############################
#@ 1 atom types #!THIS LINE IS NECESSARY DON'T SPEND HOURS FINDING THAT OUT!#
variable Ar equal 1
#############
#Atom Masses#
#############
mass ${Ar} 39.903
mass 1 39.903
###########################
#Pair Potentials - Tersoff#
###########################
pair_style lj/cubic
pair_coeff * * 0.0102701 3.42
velocity all create 10 2357 mom yes dist gaussian
neighbor 1 bin
timestep 0.1
fix lang all langevin 10 10 1 26488 gjf vhalf
fix nve all nve
thermo 200
run 5000
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6.94072
ghost atom cutoff = 6.94072
binsize = 3.47036, bins = 10 10 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cubic, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.5 | 6.5 | 6.5 Mbytes
Step Temp E_pair E_mol TotEng Press
0 11.080223 -56.207655 0 -54.97164 37.215524
200 9.8808568 -55.073602 0 -53.971378 345.62207
400 9.8712816 -55.072244 0 -53.971088 345.11889
600 10.528988 -55.066739 0 -53.892214 350.60093
800 10.167171 -55.148315 0 -54.014152 324.73679
1000 10.029026 -55.125709 0 -54.006956 331.93766
1200 10.194424 -55.114892 0 -53.977688 334.36032
1400 9.3473846 -55.109233 0 -54.066518 333.64378
1600 9.7774071 -55.138161 0 -54.047477 327.02358
1800 9.9814275 -55.13355 0 -54.020107 328.30017
2000 10.2515 -55.062994 0 -53.919424 349.74304
2200 9.8126922 -55.13364 0 -54.039019 328.78521
2400 10.044314 -55.163702 0 -54.043244 321.03397
2600 10.543316 -55.112054 0 -53.935932 336.82099
2800 9.7874375 -55.147275 0 -54.055472 324.06626
3000 9.7703821 -55.135164 0 -54.045263 328.60665
3200 10.141958 -55.135753 0 -54.004402 327.69084
3400 10.160576 -55.135408 0 -54.00198 329.39063
3600 10.044652 -55.103932 0 -53.983436 336.64469
3800 10.662403 -55.103648 0 -53.914241 339.56382
4000 9.2921047 -55.120402 0 -54.083853 329.71671
4200 9.8744553 -55.129011 0 -54.027501 329.78147
4400 9.4085964 -55.153089 0 -54.103546 320.90673
4600 9.5463801 -55.124053 0 -54.05914 330.80941
4800 10.223884 -55.075877 0 -53.935387 344.30099
5000 9.6243338 -55.158604 0 -54.084996 320.3511
Loop time of 2.29551 on 1 procs for 5000 steps with 864 atoms
Performance: 18819.358 ns/day, 0.001 hours/ns, 2178.166 timesteps/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.4393 | 1.4393 | 1.4393 | 0.0 | 62.70
Bond | 0.0004441 | 0.0004441 | 0.0004441 | 0.0 | 0.02
Neigh | 0.12136 | 0.12136 | 0.12136 | 0.0 | 5.29
Comm | 0.059342 | 0.059342 | 0.059342 | 0.0 | 2.59
Output | 0.00046968 | 0.00046968 | 0.00046968 | 0.0 | 0.02
Modify | 0.64937 | 0.64937 | 0.64937 | 0.0 | 28.29
Other | | 0.02522 | | | 1.10
Nlocal: 864 ave 864 max 864 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1593 ave 1593 max 1593 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 18143 ave 18143 max 18143 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18143
Ave neighs/atom = 20.9988
Ave special neighs/atom = 0
Neighbor list builds = 158
Dangerous builds = 5
Total wall time: 0:00:02

View File

@ -1,125 +0,0 @@
LAMMPS (19 Sep 2019)
using 1 OpenMP thread(s) per MPI task
# GJF-2GJ thermostat
units metal
atom_style full
boundary p p p
read_data argon.lmp
orthogonal box = (0 0 0) to (32.146 32.146 32.146)
1 by 2 by 2 MPI processor grid
reading atoms ...
864 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000315903 secs
read_data CPU = 0.0653752 secs
include ff-argon.lmp
#############################
#Atoms types - mass - charge#
#############################
#@ 1 atom types #!THIS LINE IS NECESSARY DON'T SPEND HOURS FINDING THAT OUT!#
variable Ar equal 1
#############
#Atom Masses#
#############
mass ${Ar} 39.903
mass 1 39.903
###########################
#Pair Potentials - Tersoff#
###########################
pair_style lj/cubic
pair_coeff * * 0.0102701 3.42
velocity all create 10 2357 mom yes dist gaussian
neighbor 1 bin
timestep 0.1
fix lang all langevin 10 10 1 26488 gjf vhalf
fix nve all nve
thermo 200
run 5000
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6.94072
ghost atom cutoff = 6.94072
binsize = 3.47036, bins = 10 10 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cubic, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.433 | 6.433 | 6.433 Mbytes
Step Temp E_pair E_mol TotEng Press
0 11.080228 -56.207655 0 -54.971639 37.215541
200 9.8046716 -55.127334 0 -54.033608 329.70647
400 10.174622 -55.09236 0 -53.957366 340.49331
600 9.9812299 -55.073136 0 -53.959714 345.56477
800 10.512874 -55.133382 0 -53.960655 330.4996
1000 9.9587885 -55.118463 0 -54.007545 332.24728
1200 10.236607 -55.126297 0 -53.984388 330.94998
1400 10.134679 -55.123075 0 -53.992537 332.15441
1600 9.8934078 -55.153799 0 -54.050174 323.80795
1800 10.064966 -55.116698 0 -53.993936 333.59644
2000 9.6736107 -55.155825 0 -54.076719 321.5129
2200 10.264537 -55.083943 0 -53.938918 343.02135
2400 9.5640032 -55.044816 0 -53.977937 351.23099
2600 9.6581077 -55.069404 0 -53.992028 344.99996
2800 9.9622575 -55.084151 0 -53.972846 342.6574
3000 9.8724909 -55.110296 0 -54.009005 334.68094
3200 10.032027 -55.123576 0 -54.004488 331.89534
3400 10.221132 -55.128925 0 -53.988742 330.24082
3600 10.085802 -55.129861 0 -54.004774 330.63601
3800 10.098545 -55.099093 0 -53.972585 339.61905
4000 10.000257 -55.117782 0 -54.002238 333.24569
4200 10.20477 -55.135792 0 -53.997435 329.17565
4400 10.545132 -55.096369 0 -53.920044 341.04725
4600 10.376108 -55.127213 0 -53.969743 331.92825
4800 10.247392 -55.163395 0 -54.020283 322.15219
5000 9.7753102 -55.073756 0 -53.983305 343.64146
Loop time of 1.19785 on 4 procs for 5000 steps with 864 atoms
Performance: 36064.674 ns/day, 0.001 hours/ns, 4174.152 timesteps/s
88.6% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.36387 | 0.38652 | 0.44086 | 5.1 | 32.27
Bond | 0.00028847 | 0.00030833 | 0.000338 | 0.0 | 0.03
Neigh | 0.033934 | 0.034959 | 0.036917 | 0.6 | 2.92
Comm | 0.39292 | 0.47821 | 0.52198 | 7.3 | 39.92
Output | 0.00050343 | 0.0012343 | 0.0023338 | 1.9 | 0.10
Modify | 0.1605 | 0.17963 | 0.19457 | 2.9 | 15.00
Other | | 0.117 | | | 9.77
Nlocal: 216 ave 216 max 216 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 888.75 ave 899 max 876 min
Histogram: 1 0 1 0 0 0 0 0 0 2
Neighs: 4536 ave 4737 max 4335 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 18144
Ave neighs/atom = 21
Ave special neighs/atom = 0
Neighbor list builds = 178
Dangerous builds = 11
Total wall time: 0:00:01

View File

@ -0,0 +1,152 @@
LAMMPS (2 Apr 2025 - Development - 4dd8c66390-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
# GJ thermostat
units metal
atom_style full
boundary p p p
read_data argon.lmp
Reading data file ...
orthogonal box = (0 0 0) to (32.146 32.146 32.146)
1 by 1 by 1 MPI processor grid
reading atoms ...
864 atoms
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000 seconds
read_data CPU = 0.007 seconds
include ff-argon.lmp
#############################
#Atoms types - mass - charge#
#############################
#@ 1 atom types #!THIS LINE IS NECESSARY DON'T SPEND HOURS FINDING THAT OUT!#
variable Ar equal 1
#############
#Atom Masses#
#############
mass ${Ar} 39.903
mass 1 39.903
###########################
#Pair Potentials - Tersoff#
###########################
pair_style lj/cubic
pair_coeff * * 0.0102701 3.42
velocity all create 10 2357 mom yes dist gaussian
neighbor 1 bin
timestep 0.1
fix lang all langevin/gjf 10 10 1 26488 vel vfull method 4
thermo 200
run 5000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Langevin GJF methods: doi:10.1007/s10955-024-03345-1
@Article{gronbech_jensen_2024,
title = {On the Definition of Velocity in Discrete-Time, Stochastic Langevin Simulations},
volume = {191},
number = {10},
url = {https://doi.org/10.1007/s10955-024-03345-1},
doi = {10.1007/s10955-024-03345-1},
urldate = {2024-10-22},
journal = {J. Stat. Phys.},
author = {Gronbech-Jensen, Niels},
year = {2024},
pages = {137}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6.9407173
ghost atom cutoff = 6.9407173
binsize = 3.4703587, bins = 10 10 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cubic, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.481 | 6.481 | 6.481 Mbytes
Step Temp E_pair E_mol TotEng Press
0 10 -56.207652 0 -55.092137 33.341103
200 8.3566091 -55.074758 0 -54.142565 340.34804
400 8.5550582 -55.098903 0 -54.144573 333.63174
600 8.7873675 -55.044559 0 -54.064315 350.7384
800 8.7258741 -55.149735 0 -54.17635 318.83613
1000 8.3748307 -55.059754 0 -54.125529 343.7989
1200 8.6082188 -55.156326 0 -54.196066 316.8728
1400 8.9291902 -55.11836 0 -54.122295 328.12488
1600 8.3386383 -55.119788 0 -54.189601 325.81369
1800 8.0698034 -55.076285 0 -54.176086 338.69767
2000 8.5103978 -55.084479 0 -54.135131 338.12197
2200 8.3201517 -55.104858 0 -54.176733 329.95905
2400 8.7070407 -55.120649 0 -54.149366 328.06488
2600 8.4244379 -55.147583 0 -54.207824 321.45013
2800 8.7911907 -55.127309 0 -54.146638 325.76049
3000 8.250829 -55.1039 0 -54.183508 332.05048
3200 8.693979 -55.155552 0 -54.185726 318.29736
3400 8.9806023 -55.127303 0 -54.125504 327.48861
3600 8.8313967 -55.081076 0 -54.09592 339.16793
3800 8.8008688 -55.176748 0 -54.194998 313.08151
4000 8.1780418 -55.105368 0 -54.193096 330.04164
4200 8.3772045 -55.128813 0 -54.194323 324.29069
4400 8.3580983 -55.086979 0 -54.154621 335.63911
4600 8.1493124 -55.096648 0 -54.18758 332.51502
4800 9.0189389 -55.126828 0 -54.120752 326.36041
5000 8.7587383 -55.084993 0 -54.107943 337.17399
Loop time of 2.34344 on 1 procs for 5000 steps with 864 atoms
Performance: 18434.456 ns/day, 0.001 hours/ns, 2133.618 timesteps/s, 1.843 Matom-step/s
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.3044 | 1.3044 | 1.3044 | 0.0 | 55.66
Bond | 0.00055276 | 0.00055276 | 0.00055276 | 0.0 | 0.02
Neigh | 0.27376 | 0.27376 | 0.27376 | 0.0 | 11.68
Comm | 0.055077 | 0.055077 | 0.055077 | 0.0 | 2.35
Output | 0.00055401 | 0.00055401 | 0.00055401 | 0.0 | 0.02
Modify | 0.68502 | 0.68502 | 0.68502 | 0.0 | 29.23
Other | | 0.02412 | | | 1.03
Nlocal: 864 ave 864 max 864 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1593 ave 1593 max 1593 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 18143 ave 18143 max 18143 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18143
Ave neighs/atom = 20.998843
Ave special neighs/atom = 0
Neighbor list builds = 257
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,152 @@
LAMMPS (2 Apr 2025 - Development - 4dd8c66390-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
# GJ thermostat
units metal
atom_style full
boundary p p p
read_data argon.lmp
Reading data file ...
orthogonal box = (0 0 0) to (32.146 32.146 32.146)
1 by 2 by 2 MPI processor grid
reading atoms ...
864 atoms
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.002 seconds
read_data CPU = 0.014 seconds
include ff-argon.lmp
#############################
#Atoms types - mass - charge#
#############################
#@ 1 atom types #!THIS LINE IS NECESSARY DON'T SPEND HOURS FINDING THAT OUT!#
variable Ar equal 1
#############
#Atom Masses#
#############
mass ${Ar} 39.903
mass 1 39.903
###########################
#Pair Potentials - Tersoff#
###########################
pair_style lj/cubic
pair_coeff * * 0.0102701 3.42
velocity all create 10 2357 mom yes dist gaussian
neighbor 1 bin
timestep 0.1
fix lang all langevin/gjf 10 10 1 26488 vel vfull method 4
thermo 200
run 5000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Langevin GJF methods: doi:10.1007/s10955-024-03345-1
@Article{gronbech_jensen_2024,
title = {On the Definition of Velocity in Discrete-Time, Stochastic Langevin Simulations},
volume = {191},
number = {10},
url = {https://doi.org/10.1007/s10955-024-03345-1},
doi = {10.1007/s10955-024-03345-1},
urldate = {2024-10-22},
journal = {J. Stat. Phys.},
author = {Gronbech-Jensen, Niels},
year = {2024},
pages = {137}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6.9407173
ghost atom cutoff = 6.9407173
binsize = 3.4703587, bins = 10 10 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cubic, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.427 | 6.427 | 6.427 Mbytes
Step Temp E_pair E_mol TotEng Press
0 10 -56.207652 0 -55.092137 33.341103
200 8.3950866 -55.088994 0 -54.15251 334.90536
400 8.6408464 -55.090811 0 -54.126912 335.23135
600 8.3101447 -55.121286 0 -54.194277 325.43222
800 8.5045003 -55.090513 0 -54.141824 335.05857
1000 8.7236378 -55.101455 0 -54.12832 331.96596
1200 8.7063561 -55.109371 0 -54.138164 331.62683
1400 8.7935957 -55.089763 0 -54.108824 336.89842
1600 8.454418 -55.105207 0 -54.162104 330.18927
1800 8.7989267 -55.142078 0 -54.160544 322.47021
2000 8.7823094 -55.153625 0 -54.173945 318.95028
2200 8.6201117 -55.11511 0 -54.153524 329.13488
2400 9.1165215 -55.161069 0 -54.144107 318.48524
2600 8.7636341 -55.142401 0 -54.164805 322.46493
2800 8.4876731 -55.111528 0 -54.164715 329.66127
3000 8.7005957 -55.149445 0 -54.178881 319.92878
3200 8.1711364 -55.137611 0 -54.226108 322.83713
3400 8.7172512 -55.143449 0 -54.171026 322.68918
3600 8.6262526 -55.1002 0 -54.137928 333.02737
3800 8.1680259 -55.166423 0 -54.255267 313.66684
4000 8.8340067 -55.121759 0 -54.136312 328.58235
4200 8.427926 -55.126903 0 -54.186755 324.95528
4400 8.6352614 -55.193826 0 -54.23055 307.14392
4600 8.7381405 -55.120503 0 -54.14575 327.73985
4800 8.3857194 -55.081944 0 -54.146505 337.38629
5000 8.1179517 -55.162247 0 -54.256677 314.50176
Loop time of 2.08834 on 4 procs for 5000 steps with 864 atoms
Performance: 20686.324 ns/day, 0.001 hours/ns, 2394.250 timesteps/s, 2.069 Matom-step/s
63.4% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.53532 | 0.5439 | 0.54781 | 0.7 | 26.04
Bond | 0.0006347 | 0.00066042 | 0.00068198 | 0.0 | 0.03
Neigh | 0.10879 | 0.11194 | 0.118 | 1.1 | 5.36
Comm | 0.94935 | 0.96017 | 0.97155 | 0.8 | 45.98
Output | 0.0060135 | 0.006061 | 0.0061217 | 0.1 | 0.29
Modify | 0.2483 | 0.24911 | 0.25049 | 0.2 | 11.93
Other | | 0.2165 | | | 10.37
Nlocal: 216 ave 216 max 216 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 884.25 ave 892 max 875 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Neighs: 4535.5 ave 4737 max 4333 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 18142
Ave neighs/atom = 20.997685
Ave special neighs/atom = 0
Neighbor list builds = 280
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,152 @@
LAMMPS (2 Apr 2025 - Development - 4dd8c66390-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
# GJ thermostat
units metal
atom_style full
boundary p p p
read_data argon.lmp
Reading data file ...
orthogonal box = (0 0 0) to (32.146 32.146 32.146)
1 by 1 by 1 MPI processor grid
reading atoms ...
864 atoms
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000 seconds
read_data CPU = 0.008 seconds
include ff-argon.lmp
#############################
#Atoms types - mass - charge#
#############################
#@ 1 atom types #!THIS LINE IS NECESSARY DON'T SPEND HOURS FINDING THAT OUT!#
variable Ar equal 1
#############
#Atom Masses#
#############
mass ${Ar} 39.903
mass 1 39.903
###########################
#Pair Potentials - Tersoff#
###########################
pair_style lj/cubic
pair_coeff * * 0.0102701 3.42
velocity all create 10 2357 mom yes dist gaussian
neighbor 1 bin
timestep 0.1
fix lang all langevin/gjf 10 10 1 26488
thermo 200
run 5000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Langevin GJF methods: doi:10.1007/s10955-024-03345-1
@Article{gronbech_jensen_2024,
title = {On the Definition of Velocity in Discrete-Time, Stochastic Langevin Simulations},
volume = {191},
number = {10},
url = {https://doi.org/10.1007/s10955-024-03345-1},
doi = {10.1007/s10955-024-03345-1},
urldate = {2024-10-22},
journal = {J. Stat. Phys.},
author = {Gronbech-Jensen, Niels},
year = {2024},
pages = {137}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6.9407173
ghost atom cutoff = 6.9407173
binsize = 3.4703587, bins = 10 10 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cubic, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.481 | 6.481 | 6.481 Mbytes
Step Temp E_pair E_mol TotEng Press
0 10 -56.207652 0 -55.092137 33.341103
200 9.8808461 -55.073599 0 -53.971376 345.62224
400 9.8712816 -55.072241 0 -53.971084 345.11909
600 10.528988 -55.066736 0 -53.892211 350.60112
800 10.167171 -55.148312 0 -54.014149 324.73698
1000 10.029026 -55.125705 0 -54.006952 331.93785
1200 9.8898479 -55.086642 0 -53.983414 342.04309
1400 10.610014 -55.076793 0 -53.89323 346.34338
1600 9.9402137 -55.111688 0 -54.002842 335.04779
1800 9.8078801 -55.140475 0 -54.046391 325.88652
2000 10.472791 -55.06102 0 -53.892765 349.97306
2200 9.877248 -55.191201 0 -54.089379 312.77421
2400 9.9739487 -55.108904 0 -53.996295 335.9089
2600 10.131803 -55.149444 0 -54.019226 325.44115
2800 9.6980127 -55.118395 0 -54.036568 331.2097
3000 9.7193425 -55.149785 0 -54.065577 323.32384
3200 10.27638 -55.083302 0 -53.936957 342.56458
3400 9.9253941 -55.082368 0 -53.975175 342.28594
3600 10.665862 -55.056774 0 -53.866981 352.03551
3800 10.011077 -55.084664 0 -53.967913 341.45122
4000 9.4182671 -55.128803 0 -54.078181 327.81846
4200 10.02466 -55.106046 0 -53.98778 336.56944
4400 9.3721033 -55.146068 0 -54.100596 322.38199
4600 9.5485537 -55.118577 0 -54.053421 332.04274
4800 10.039726 -55.074068 0 -53.954122 344.76817
5000 9.7731898 -55.150518 0 -54.060304 322.94195
Loop time of 2.28614 on 1 procs for 5000 steps with 864 atoms
Performance: 18896.448 ns/day, 0.001 hours/ns, 2187.089 timesteps/s, 1.890 Matom-step/s
100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.2918 | 1.2918 | 1.2918 | 0.0 | 56.51
Bond | 0.00048345 | 0.00048345 | 0.00048345 | 0.0 | 0.02
Neigh | 0.2776 | 0.2776 | 0.2776 | 0.0 | 12.14
Comm | 0.055375 | 0.055375 | 0.055375 | 0.0 | 2.42
Output | 0.00054609 | 0.00054609 | 0.00054609 | 0.0 | 0.02
Modify | 0.63625 | 0.63625 | 0.63625 | 0.0 | 27.83
Other | | 0.02408 | | | 1.05
Nlocal: 864 ave 864 max 864 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1593 ave 1593 max 1593 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 18143 ave 18143 max 18143 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18143
Ave neighs/atom = 20.998843
Ave special neighs/atom = 0
Neighbor list builds = 258
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,152 @@
LAMMPS (2 Apr 2025 - Development - 4dd8c66390-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:99)
using 1 OpenMP thread(s) per MPI task
# GJ thermostat
units metal
atom_style full
boundary p p p
read_data argon.lmp
Reading data file ...
orthogonal box = (0 0 0) to (32.146 32.146 32.146)
1 by 2 by 2 MPI processor grid
reading atoms ...
864 atoms
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.002 seconds
read_data CPU = 0.014 seconds
include ff-argon.lmp
#############################
#Atoms types - mass - charge#
#############################
#@ 1 atom types #!THIS LINE IS NECESSARY DON'T SPEND HOURS FINDING THAT OUT!#
variable Ar equal 1
#############
#Atom Masses#
#############
mass ${Ar} 39.903
mass 1 39.903
###########################
#Pair Potentials - Tersoff#
###########################
pair_style lj/cubic
pair_coeff * * 0.0102701 3.42
velocity all create 10 2357 mom yes dist gaussian
neighbor 1 bin
timestep 0.1
fix lang all langevin/gjf 10 10 1 26488
thermo 200
run 5000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Langevin GJF methods: doi:10.1007/s10955-024-03345-1
@Article{gronbech_jensen_2024,
title = {On the Definition of Velocity in Discrete-Time, Stochastic Langevin Simulations},
volume = {191},
number = {10},
url = {https://doi.org/10.1007/s10955-024-03345-1},
doi = {10.1007/s10955-024-03345-1},
urldate = {2024-10-22},
journal = {J. Stat. Phys.},
author = {Gronbech-Jensen, Niels},
year = {2024},
pages = {137}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6.9407173
ghost atom cutoff = 6.9407173
binsize = 3.4703587, bins = 10 10 10
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cubic, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.427 | 6.427 | 6.427 Mbytes
Step Temp E_pair E_mol TotEng Press
0 10 -56.207652 0 -55.092137 33.341103
200 9.8046819 -55.12733 0 -54.033603 329.70683
400 10.174622 -55.092357 0 -53.957363 340.4935
600 9.6157634 -55.174205 0 -54.101552 316.68047
800 9.9617862 -55.097525 0 -53.986273 339.257
1000 10.373198 -55.116484 0 -53.959338 335.09796
1200 10.064779 -55.17366 0 -54.050919 318.66487
1400 10.562182 -55.067856 0 -53.889628 349.23452
1600 9.7696935 -55.081542 0 -53.991718 342.92593
1800 10.454466 -55.130637 0 -53.964426 330.88658
2000 10.253701 -55.154093 0 -54.010277 323.15259
2200 9.6688957 -55.143479 0 -54.064899 325.16815
2400 10.059787 -55.134941 0 -54.012756 329.83534
2600 9.9050905 -55.096231 0 -53.991303 338.94947
2800 9.663551 -55.130202 0 -54.052218 328.77571
3000 9.950484 -55.123447 0 -54.013455 332.00143
3200 9.7210637 -55.120005 0 -54.035606 331.39812
3400 9.6457139 -55.080953 0 -54.004959 341.95838
3600 10.42249 -55.102379 0 -53.939734 339.66808
3800 10.276893 -55.126271 0 -53.979868 332.40943
4000 10.135481 -55.091551 0 -53.960922 340.60675
4200 10.129209 -55.084189 0 -53.95426 343.39315
4400 10.006953 -55.120704 0 -54.004413 331.57121
4600 10.497483 -55.144898 0 -53.973888 327.22996
4800 9.9230954 -55.126028 0 -54.019091 330.70489
5000 9.3726166 -55.076514 0 -54.030985 342.43571
Loop time of 2.0887 on 4 procs for 5000 steps with 864 atoms
Performance: 20682.713 ns/day, 0.001 hours/ns, 2393.833 timesteps/s, 2.068 Matom-step/s
62.5% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.53905 | 0.54518 | 0.5484 | 0.5 | 26.10
Bond | 0.00062355 | 0.00066183 | 0.0007207 | 0.0 | 0.03
Neigh | 0.10715 | 0.10937 | 0.11212 | 0.5 | 5.24
Comm | 0.94637 | 0.95041 | 0.95905 | 0.5 | 45.50
Output | 0.0061059 | 0.0061286 | 0.0061661 | 0.0 | 0.29
Modify | 0.26086 | 0.26355 | 0.26979 | 0.7 | 12.62
Other | | 0.2134 | | | 10.22
Nlocal: 216 ave 216 max 216 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 884.75 ave 885 max 884 min
Histogram: 1 0 0 0 0 0 0 0 0 3
Neighs: 4536 ave 4737 max 4335 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 18144
Ave neighs/atom = 21
Ave special neighs/atom = 0
Neighbor list builds = 273
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -15,17 +15,16 @@
Contributing authors: Tim Linke & Niels Gronbech-Jensen (UC Davis)
------------------------------------------------------------------------- */
#include "fix_langevin.h"
#include "fix_langevin_gjf.h"
#include "atom.h"
#include "atom_vec_ellipsoid.h"
#include "citeme.h"
#include "comm.h"
#include "compute.h"
#include "error.h"
#include "force.h"
#include "group.h"
#include "input.h"
#include "math_extra.h"
#include "memory.h"
#include "modify.h"
#include "random_mars.h"
@ -42,21 +41,33 @@ using namespace FixConst;
enum { NOBIAS, BIAS };
enum { CONSTANT, EQUAL, ATOM };
static const char cite_langevin_gjf[] =
"Langevin GJF methods: doi:10.1007/s10955-024-03345-1\n\n"
"@Article{gronbech_jensen_2024,\n"
"title = {On the Definition of Velocity in Discrete-Time, Stochastic Langevin Simulations},\n"
"volume = {191},\n"
"number = {10},\n"
"url = {https://doi.org/10.1007/s10955-024-03345-1},\n"
"doi = {10.1007/s10955-024-03345-1},\n"
"urldate = {2024-10-22},\n"
"journal = {J. Stat. Phys.},\n"
"author = {Gronbech-Jensen, Niels},\n"
"year = {2024},\n"
"pages = {137}\n"
"}\n\n";
/* ---------------------------------------------------------------------- */
FixLangevinGJF::FixLangevinGJF(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg), gjfflag(0),
tstr(nullptr), flangevin(nullptr), tforce(nullptr), lv(nullptr), id_temp(nullptr), random(nullptr)
Fix(lmp, narg, arg), tstr(nullptr), tforce(nullptr), lv(nullptr), id_temp(nullptr), random(nullptr)
{
if (narg < 8) error->all(FLERR, "Illegal fix langevin/gjf command");
if (lmp->citeme) lmp->citeme->add(cite_langevin_gjf);
if (narg < 7) error->all(FLERR, "Illegal fix langevin/gjf command");
time_integrate = 1;
restart_peratom = 1;
// dynamic_group_allow = 1;
// scalar_flag = 1;
// global_freq = 1;
// extscalar = 1;
// ecouple_flag = 1;
global_freq = 1;
nevery = 1;
if (utils::strmatch(arg[3], "^v_")) {
@ -75,15 +86,17 @@ FixLangevinGJF::FixLangevinGJF(LAMMPS *lmp, int narg, char **arg) :
if (seed <= 0) error->all(FLERR, "Illegal fix langevin/gjf command");
// initialize Marsaglia RNG with processor-unique seed
random = new RanMars(lmp, seed + comm->me);
int GJmethods = 8 // number of currently implemented GJ methods
int GJmethods = 8; // number of currently implemented GJ methods
maxatom = 0;
// optional args
// per default, use half step and GJ-I
osflag = 0;
GJmethod = 0;
GJmethod = 1;
lv_allocated = 0;
int iarg = 7;
while (iarg < narg) {
@ -120,7 +133,7 @@ FixLangevinGJF::FixLangevinGJF(LAMMPS *lmp, int narg, char **arg) :
FixLangevinGJF::grow_arrays(atom->nmax);
atom->add_callback(Atom::GROW);
// initialize lv to zero
// initialize lv to onsite velocity
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
lv[i][0] = 0.0;
@ -181,14 +194,8 @@ void FixLangevinGJF::init()
error->all(FLERR, "Variable {} for fix langevin/gjf is invalid style", tstr);
}
if (temperature && temperature->tempbias)
tbiasflag = BIAS;
else
tbiasflag = NOBIAS;
if (utils::strmatch(update->integrate_style, "^respa")) {
nlevels_respa = (static_cast<Respa *>(update->integrate))->nlevels;
error->all(FLERR, "Fix langevin gjf and run style respa are not compatible");
error->all(FLERR, "Fix langevin/gjf and run style respa are not compatible");
}
// Complete set of thermostats is given in Gronbech-Jensen, Molecular Physics, 118 (2020)
@ -215,7 +222,7 @@ void FixLangevinGJF::init()
gjfc2 = 1; // TODO: correct this
break;
case 8: // provided in Gronbech-Jensen (2024)
gjfc2 = sqrt( (update->dt / t_period)*(update->dt / t_period) + 1.0 ) - update->dt / t_period;
gjfc2 = sqrt( (update->dt / t_period) * (update->dt / t_period) + 1.0 ) - update->dt / t_period;
break;
case 0:
gjfc2 = 0.0;
@ -239,7 +246,7 @@ void FixLangevinGJF::init()
void FixLangevinGJF::initial_integrate(int /* vflag */)
{
// This function provides the integration of the GJ formulation 24a-e
// This function provides the integration of the GJ formulation 24 a-e
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
@ -258,13 +265,13 @@ void FixLangevinGJF::initial_integrate(int /* vflag */)
double dtf = 0.5 * dt * ftm2v;
double dtfm;
double c1sq = sqrt(gjfc1);
double c3sq = sqrt(gjfc3);
double c1sqrt = sqrt(gjfc1);
double c3sqrt = sqrt(gjfc3);
double csq = sqrt(gjfc3 / gjfc1);
double m, beta;
// If user elected vhalf, v needs to be reassigned to onsite velocity for integration
if (!osflag) {
if (!osflag && lv_allocated) {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
// lv is Eq. 24f from previous time step
@ -275,8 +282,6 @@ void FixLangevinGJF::initial_integrate(int /* vflag */)
}
compute_target();
if (tbiasflag == BIAS) temperature->compute_scalar();
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
@ -284,10 +289,10 @@ void FixLangevinGJF::initial_integrate(int /* vflag */)
if (tstyle == ATOM) tsqrt = sqrt(tforce[i]);
if (rmass) {
m = rmass[i];
beta = tsqrt * sqrt(2.0*dt*rmass[i]*boltz/t_period/mvv2e) / ftm2v;
beta = tsqrt * sqrt(2.0*dt*m*boltz/t_period/mvv2e) / ftm2v;
} else {
m = mass[type[i]];
beta = tsqrt * sqrt(2.0*dt*atom->mass[i]*boltz/t_period/mvv2e) / ftm2v;
beta = tsqrt * sqrt(2.0*dt*m*boltz/t_period/mvv2e) / ftm2v;
}
fran[0] = beta*random->gaussian();
@ -304,24 +309,14 @@ void FixLangevinGJF::initial_integrate(int /* vflag */)
x[i][2] += 0.5 * csq * dt * v[i][2];
// Calculate Eq. 24c:
if (tbiasflag == BIAS)
temperature->remove_bias(i,v[i]);
lv[i][0] = c1sqrt*v[i][0] + ftm2v * (c3sqrt / (2.0 * m)) * fran[0];
lv[i][1] = c1sqrt*v[i][1] + ftm2v * (c3sqrt / (2.0 * m)) * fran[1];
lv[i][2] = c1sqrt*v[i][2] + ftm2v * (c3sqrt / (2.0 * m)) * fran[2];
if (tbiasflag == BIAS)
temperature->restore_bias(i,v[i]);
if (tbiasflag == BIAS)
temperature->restore_bias(i,lv[i]);
// Calculate Eq. 24d
if (tbiasflag == BIAS) temperature->remove_bias(i, v[i]);
v[i][0] = (gjfc2 / c1sqrt) * lv[i][0] + ftm2v * csq * (0.5 / m) * fran[0];
v[i][1] = (gjfc2 / c1sqrt) * lv[i][1] + ftm2v * csq * (0.5 / m) * fran[1];
v[i][2] = (gjfc2 / c1sqrt) * lv[i][2] + ftm2v * csq * (0.5 / m) * fran[2];
if (tbiasflag == BIAS) temperature->restore_bias(i, v[i]);
// Calculate Eq. 24e. Final integrator then calculates Eq. 24f after force update.
x[i][0] += 0.5 * csq * dt * v[i][0];
@ -337,9 +332,9 @@ void FixLangevinGJF::final_integrate()
double dt = update->dt;
double ftm2v = force->ftm2v;
double dtf = 0.5 * dt * ftm2v;
double csq = sqrt(gjfc3 / gjfc1);
// update v of atoms in group
double **v = atom->v;
double **f = atom->f;
double *rmass = atom->rmass;
@ -367,6 +362,8 @@ void FixLangevinGJF::final_integrate()
v[i][2] += csq * dtfm * f[i][2];
}
}
lv_allocated = 1;
}
/* ----------------------------------------------------------------------
@ -395,10 +392,10 @@ void FixLangevinGJF::compute_target()
error->one(FLERR, "Fix langevin/gjf variable returned negative temperature");
tsqrt = sqrt(t_target);
} else {
if (atom->nmax > maxatom2) {
maxatom2 = atom->nmax;
if (atom->nmax > maxatom) {
maxatom = atom->nmax;
memory->destroy(tforce);
memory->create(tforce,maxatom2,"langevin:tforce");
memory->create(tforce,maxatom,"langevin_gjf:tforce");
}
input->variable->compute_atom(tvar,igroup,tforce,1,0);
for (int i = 0; i < nlocal; i++)

View File

@ -13,12 +13,12 @@
#ifdef FIX_CLASS
// clang-format off
FixStyle(langevin,FixLangevin);
FixStyle(langevin/gjf,FixLangevinGJF);
// clang-format on
#else
#ifndef LMP_FIX_LANGEVIN_H
#define LMP_FIX_LANGEVIN_H
#ifndef LMP_FIX_LANGEVINGJF_H
#define LMP_FIX_LANGEVINGJF_H
#include "fix.h"
@ -30,7 +30,6 @@ class FixLangevinGJF : public Fix {
~FixLangevinGJF() override;
int setmask() override;
void init() override;
void setup(int) override;
void initial_integrate(int) override;
void final_integrate() override;
void end_of_step() override;
@ -45,10 +44,8 @@ class FixLangevinGJF : public Fix {
int unpack_exchange(int, double *) override;
protected:
int osflag, GJmethod;
double t_start, t_stop, t_period, t_target;
double *gfactor2;
double tsqrt;
int osflag, GJmethod, maxatom, lv_allocated;
double t_start, t_stop, t_period, t_target, tsqrt;
double gjfc1, gjfc2, gjfc3;
int tstyle, tvar;
char *tstr;
@ -59,7 +56,6 @@ class FixLangevinGJF : public Fix {
char *id_temp;
class Compute *temperature;
int nlevels_respa;
class RanMars *random;
int seed;