New example structure
This commit is contained in:
@ -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
46
examples/gjf/README
Normal 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
|
||||
--
|
||||
@ -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
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
152
examples/gjf/log.2Apr25.gjf.vfull.g++.1
Normal file
152
examples/gjf/log.2Apr25.gjf.vfull.g++.1
Normal 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
|
||||
152
examples/gjf/log.2Apr25.gjf.vfull.g++.4
Normal file
152
examples/gjf/log.2Apr25.gjf.vfull.g++.4
Normal 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
|
||||
152
examples/gjf/log.2Apr25.gjf.vhalf.g++.1
Normal file
152
examples/gjf/log.2Apr25.gjf.vhalf.g++.1
Normal 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
|
||||
152
examples/gjf/log.2Apr25.gjf.vhalf.g++.4
Normal file
152
examples/gjf/log.2Apr25.gjf.vhalf.g++.4
Normal 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
|
||||
@ -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++)
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user