Merge pull request #2710 from msvbd/dpd_extended

Generalized DPD pair styles: dpd/ext and dpd/ext/tstat
This commit is contained in:
Axel Kohlmeyer 2021-04-30 13:26:16 -04:00 committed by GitHub
commit 6f5881e151
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 6984 additions and 0 deletions

View File

@ -87,6 +87,8 @@ OPT.
* :doc:`coul/wolf/cs <pair_cs>`
* :doc:`dpd (gio) <pair_dpd>`
* :doc:`dpd/fdt <pair_dpd_fdt>`
* :doc:`dpd/ext <pair_dpd_ext>`
* :doc:`dpd/ext/tstat <pair_dpd_ext>`
* :doc:`dpd/fdt/energy (k) <pair_dpd_fdt>`
* :doc:`dpd/tstat (go) <pair_dpd>`
* :doc:`dsmc <pair_dsmc>`

138
doc/src/pair_dpd_ext.rst Normal file
View File

@ -0,0 +1,138 @@
.. index:: pair_style dpd/ext
.. index:: pair_style dpd/ext/tstat
pair_style dpd/ext command
==========================
pair_style dpd/ext/tstat command
================================
Syntax
""""""
.. code-block:: LAMMPS
pair_style dpd/ext T cutoff seed
pair_style dpd/ext/tstat Tstart Tstop cutoff seed
* T = temperature (temperature units)
* Tstart,Tstop = desired temperature at start/end of run (temperature units)
* cutoff = global cutoff for DPD interactions (distance units)
* seed = random # seed (positive integer)
Examples
""""""""
.. code-block:: LAMMPS
pair_style dpd/ext 1.0 2.5 34387
pair_coeff 1 1 25.0 4.5 4.5 0.5 0.5 1.2
pair_coeff 1 2 40.0 4.5 4.5 0.5 0.5 1.2
pair_style dpd/ext/tstat 1.0 1.0 2.5 34387
pair_coeff 1 1 4.5 4.5 0.5 0.5 1.2
pair_coeff 1 2 4.5 4.5 0.5 0.5 1.2
Description
"""""""""""
The style *dpd/ext* computes an extended force field for dissipative particle dynamics (DPD) following the exposition in :ref:`(Groot) <Groot>`, :ref:`(Junghans) <Junghans>`.
Style *dpd/ext/tstat* invokes an extended DPD thermostat on pairwise interactions, equivalent to the non-conservative portion of the extended DPD force field. To use *dpd/ext/tstat* as a thermostat for another pair style, use the :doc:`pair_style hybrid/overlay <pair_hybrid>` command to compute both the desired pair interaction and the thermostat for each pair of particles.
For the style *dpd/ext*\ , the force on atom I due to atom J is given as a sum
of 3 terms
.. math::
\mathbf{f} = & f^C + f^D + f^R \qquad \qquad r < r_c \\
f^C = & A_{ij} w(r) \hat{\mathbf{r}}_{ij} \\
f^D = & - \gamma_{\parallel} w_{\parallel}^2(r) (\hat{\mathbf{r}}_{ij} \cdot \mathbf{v}_{ij}) \hat{\mathbf{r}}_{ij} - \gamma_{\perp} w_{\perp}^2 (r) ( \mathbf{I} - \hat{\mathbf{r}}_{ij} \hat{\mathbf{r}}_{ij}^{\rm T} ) \mathbf{v}_{ij} \\
f^R = & \sigma_{\parallel} w_{\parallel}(r) \frac{\alpha}{\sqrt{\Delta t}} \hat{\mathbf{r}}_{ij} + \sigma_{\perp} w_{\perp} (r) ( \mathbf{I} - \hat{\mathbf{r}}_{ij} \hat{\mathbf{r}}_{ij}^{\rm T} ) \frac{\mathbf{\xi}_{ij}}{\sqrt{\Delta t}}\\
w(r) = & 1 - r/r_c \\
where :math:`\mathbf{f}^C` is a conservative force, :math:`\mathbf{f}^D` is a dissipative force, and :math:`\mathbf{f}^R` is a random force. :math:`A_{ij}` is the maximum repulsion between the two atoms, :math:`\hat{\mathbf{r}}_{ij}` is a unit vector in the direction :math:`\mathbf{r}_i - \mathbf{r}_j`, :math:`\mathbf{v}_{ij} = \mathbf{v}_i - \mathbf{v}_j` is the vector difference in velocities of the two atoms, :math:`\alpha` and :math:`\mathbf{\xi}_{ij}` are Gaussian random numbers with zero mean and unit variance, :math:`\Delta t` is the timestep, :math:`w (r) = 1 - r / r_c` is a weight function for the conservative interactions that varies between 0 and 1, :math:`r_c` is the corresponding cutoff, :math:`w_{\alpha} ( r ) = ( 1 - r / \bar{r}_c )^{s_{\alpha}}`, :math:`\alpha \equiv ( \parallel, \perp )`, are weight functions with coefficients :math:`s_\alpha` that vary between 0 and 1, :math:`\bar{r}_c` is the corresponding cutoff, :math:`\mathbf{I}` is the unit matrix, :math:`\sigma_{\alpha} = \sqrt{2 k T \gamma_{\alpha}}`, where :math:`k` is the Boltzmann constant and :math:`T` is the temperature in the pair\_style command.
For the style *dpd/ext/tstat*\ , the force on atom I due to atom J is the same as the above equation, except that the conservative :math:`\mathbf{f}^C` term is dropped. Also, during the run, T is set each timestep to a ramped value from Tstart to Tstop.
For the style *dpd/ext*\ , the pairwise energy associated with style *dpd/ext* is only due to the conservative force term :math:`\mathbf{f}^C`, and is shifted to be zero at the cutoff distance :math:`r_c`. The pairwise virial is calculated using all three terms. There is no pairwise energy for style *dpd/ext/tstat*, but the last two terms of the formula contribute the virial.
For the style *dpd/ext/tstat*, the force on atom I due to atom J is the same as the above equation, except that the conservative :math:`\mathbf{f}^C` term is dropped. Also, during the run, T is set each timestep to a ramped value from Tstart to Tstop.
For the style *dpd/ext*\ , the pairwise energy associated with style *dpd/ext* is only due to the conservative force term :math:`\mathbf{f}^C`, and is shifted to be zero at the cutoff distance :math:`r_c`. The pairwise virial is calculated using all three terms. There is no pairwise energy for style *dpd/ext/tstat*, but the last two terms of the formula contribute the virial.
For the style *dpd/ext*, the following coefficients must be defined for each pair of atoms types via the :doc:`pair_coeff <pair_coeff>` command as in the examples above:
* A (force units)
* :math:`\gamma_{\perp}` (force/velocity units)
* :math:`\gamma_{\parallel}` (force/velocity units)
* :math:`s_{\perp}` (unitless)
* :math:`s_{\parallel}` (unitless)
* :math:`r_c` (distance units)
The last coefficient is optional. If not specified, the global DPD cutoff is used. Note that :math:`\sigma`'s are set equal to :math:`\sqrt{2 k T \gamma}`, where :math:`T` is the temperature set by the :doc:`pair_style <pair_style>` command so it does not need to be specified.
For the style *dpd/ext/tstat*, the coefficients defined for each pair of atoms types via the :doc:`pair_coeff <pair_coeff>` command is the same, except that A is not included.
.. note::
If you are modeling DPD polymer chains, you may want to use the :doc:`pair_style srp <pair_srp>` command in conjunction with these pair styles. It is a soft segmental repulsive potential (SRP) that can prevent DPD polymer chains from crossing each other.
.. note::
The virial calculation for pressure when using this pair style includes all the components of force listed above, including the random force.
----------
**Mixing, shift, table, tail correction, restart, rRESPA info**\ :
The style *dpd/ext* does not support mixing. Thus, coefficients for all I,J pairs must be specified explicitly.
The pair styles do not support the :doc:`pair_modify <pair_modify>` shift option for the energy of the pair interaction. Note that as discussed above, the energy due to the conservative :math:`\mathbf{f}^C` term is already shifted to be zero at the cutoff distance :math:`r_c`.
The :doc:`pair_modify <pair_modify>` table option is not relevant for the style *dpd/ext*.
The style *dpd/ext* does not support the :doc:`pair_modify <pair_modify>` tail option for adding long-range tail corrections to energy and pressure.
The pair styles can only be used via the pair keyword of the :doc:`run_style respa <run_style>` command. They do not support the *inner*\ , *middle*\ , and *outer*\ keywords.
The style *dpd/ext/tstat* can ramp its target temperature over multiple runs, using the start and stop keywords of the :doc:`run <run>` command. See the :doc:`run <run>` command for details of how to do this.
----------
Restrictions
""""""""""""
The default frequency for rebuilding neighbor lists is every 10 steps (see the :doc:`neigh_modify <neigh_modify>` command). This may be too infrequent for style *dpd/ext* simulations since particles move rapidly and can overlap by large amounts. If this setting yields a non-zero number of \say{dangerous} reneighborings (printed at the end of a simulation), you should experiment with forcing reneighboring more often and see if system energies/trajectories change.
The pair styles require to use the :doc:`comm_modify vel yes <comm_modify>` command so that velocities are stored by ghost atoms.
The pair styles will not restart exactly when using the :doc:`read_restart <read_restart>` command, though they should provide statistically similar results. This is because the forces they compute depend on atom velocities. See the :doc:`read_restart <read_restart>` command for more details.
Related commands
""""""""""""""""
:doc:`pair_style dpd <pair_dpd>`, :doc:`pair_coeff <pair_coeff>`, :doc:`fix nvt <fix_nh>`, :doc:`fix langevin <fix_langevin>`, :doc:`pair_style srp <pair_srp>`
**Default:** none
----------
.. _Groot:
**(Groot)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997).
.. _Junghans:
**(Junghans)** Junghans, Praprotnik and Kremer, Soft Matter 4, 156, 1119-1128 (2008).

View File

@ -150,6 +150,8 @@ accelerated styles exist.
* :doc:`coul/wolf <pair_coul>` - Coulomb via Wolf potential
* :doc:`coul/wolf/cs <pair_cs>` - Coulomb via Wolf potential with core/shell adjustments
* :doc:`dpd <pair_dpd>` - dissipative particle dynamics (DPD)
* :doc:`dpd/ext <pair_dpd_ext>` - generalized force field for DPD
* :doc:`dpd/ext/tstat <pair_dpd_ext>` - pair-wise DPD thermostatting with generalized force field
* :doc:`dpd/fdt <pair_dpd_fdt>` - DPD for constant temperature and pressure
* :doc:`dpd/fdt/energy <pair_dpd_fdt>` - DPD for constant energy and enthalpy
* :doc:`dpd/tstat <pair_dpd>` - pair-wise DPD thermostatting

View File

@ -2542,6 +2542,7 @@ ppn
pppm
prd
Prakash
Praprotnik
pre
Pre
prec

View File

@ -0,0 +1,10 @@
Examples for Extended Dissipative Particle Dynamics (DPD)
---------------------------------------------------------
This directory contains examples for extended DPD simulations
1) 'dpdext' - test case (DPD fluid) for 'dpdext' pair style (in.dpdext) and an initial
configuration (dpdext.data)
2) 'dpdext_tstat' - test case (coarse-grained SPC/E water) for 'dpdext/tstat' pair style
(in.cg_spce), an initial configuration (dpdext.data) and tabulated potential
(cg_spce_table.pot) obtained by bottom-up coarse-graining of the atomistic SPC/E water.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,44 @@
# DPD Fluid
variable T equal 1.0
variable rc equal 1.0
variable rcD equal 1.2
units lj
boundary p p p
atom_style atomic
dimension 3
newton on
comm_modify vel yes
### create box and configuration
variable L equal 5.0
lattice fcc 3.0
region simBox block 0 ${L} 0 ${L} 0 ${L}
create_box 2 simBox
#create_atoms 1 region simBox
create_atoms 1 random 100 132456 simBox
create_atoms 2 random 100 132456 simBox
mass 1 1.0
mass 2 2.0
###
pair_style dpd/ext ${T} ${rc} 3854262
pair_coeff 1 1 25.0 4.5 4.53 0.5 0.53 1.2 #${rcD}
pair_coeff 1 2 25.1 4.51 4.54 0.51 0.54 1.21 #${rcD}
pair_coeff 2 2 25.2 4.52 4.55 0.52 0.55 1.22 #${rcD}
timestep 0.01
run_style verlet
velocity all create ${T} 68768932
thermo_style custom step time temp press
thermo 500
fix 1 all nve
run 50000
write_data final.data pair ij

View File

@ -0,0 +1,201 @@
LAMMPS (8 Apr 2021)
# DPD Fluid
variable T equal 1.0
variable rc equal 1.0
variable rcD equal 1.2
units lj
boundary p p p
atom_style atomic
dimension 3
newton on
comm_modify vel yes
### create box and configuration
variable L equal 5.0
lattice fcc 3.0
Lattice spacing in x,y,z = 1.1006424 1.1006424 1.1006424
region simBox block 0 ${L} 0 ${L} 0 ${L}
region simBox block 0 5 0 ${L} 0 ${L}
region simBox block 0 5 0 5 0 ${L}
region simBox block 0 5 0 5 0 5
create_box 2 simBox
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (5.5032121 5.5032121 5.5032121)
1 by 1 by 1 MPI processor grid
#create_atoms 1 region simBox
create_atoms 1 random 100 132456 simBox
Created 100 atoms
create_atoms CPU = 0.001 seconds
create_atoms 2 random 100 132456 simBox
Created 100 atoms
create_atoms CPU = 0.000 seconds
mass 1 1.0
mass 2 2.0
###
pair_style dpd/ext ${T} ${rc} 3854262
pair_style dpd/ext 1 ${rc} 3854262
pair_style dpd/ext 1 1 3854262
pair_coeff 1 1 25.0 4.5 4.53 0.5 0.53 1.2 #${rcD}
pair_coeff 1 2 25.1 4.51 4.54 0.51 0.54 1.21 #${rcD}
pair_coeff 2 2 25.2 4.52 4.55 0.52 0.55 1.22 #${rcD}
timestep 0.01
run_style verlet
velocity all create ${T} 68768932
velocity all create 1 68768932
thermo_style custom step time temp press
thermo 500
fix 1 all nve
run 50000
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 1.52
ghost atom cutoff = 1.52
binsize = 0.76, bins = 8 8 8
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair dpd/ext, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.087 | 3.087 | 3.087 Mbytes
Step Time Temp Press
0 0 1 8.8992215
500 5 0.93699892 8.1219621
1000 10 0.99211009 7.4709658
1500 15 0.91190984 8.828742
2000 20 0.90749036 9.1258378
2500 25 0.97960404 7.085574
3000 30 1.0314836 6.8400202
3500 35 1.0137019 7.2346862
4000 40 0.98189616 6.7265624
4500 45 1.0127497 6.6718402
5000 50 0.90659787 7.4911309
5500 55 1.0257891 6.8163777
6000 60 1.0596209 7.8511522
6500 65 0.95679865 8.4091947
7000 70 1.012617 7.4162991
7500 75 1.0990412 7.160905
8000 80 0.91085269 7.6861008
8500 85 1.1000209 6.4818934
9000 90 0.99982282 8.1312206
9500 95 1.1330979 7.7167159
10000 100 0.98147521 8.4394218
10500 105 1.0254021 7.23574
11000 110 0.94064194 7.9766833
11500 115 1.012364 8.4285752
12000 120 0.94787277 7.0819132
12500 125 1.13729 7.9636837
13000 130 1.1200519 7.1570016
13500 135 0.96797085 8.9794827
14000 140 1.0271217 7.4193307
14500 145 1.0154843 7.3495938
15000 150 1.0408558 7.3047404
15500 155 1.0801685 6.8072764
16000 160 0.9921089 7.3200563
16500 165 0.92952943 7.281934
17000 170 0.87149276 7.6508951
17500 175 0.92808338 6.4774803
18000 180 1.008898 7.1954708
18500 185 0.95962238 8.0257166
19000 190 0.99501354 8.5364854
19500 195 0.97420657 8.3140832
20000 200 0.99926953 7.7840117
20500 205 1.0503096 7.9214552
21000 210 0.97782558 7.4084605
21500 215 0.90363877 7.2867997
22000 220 1.0045369 7.7341956
22500 225 1.0319487 8.4140146
23000 230 1.006863 7.6023442
23500 235 0.90302749 8.0230562
24000 240 1.0768463 7.7315652
24500 245 1.0529241 7.9835388
25000 250 0.96057288 6.9591339
25500 255 0.98941425 7.4287206
26000 260 0.99120107 7.0440907
26500 265 0.94017831 7.9499345
27000 270 0.93766339 8.118634
27500 275 0.98309918 7.9865412
28000 280 1.0191736 8.3330592
28500 285 0.99546328 8.3419405
29000 290 0.95703084 7.313665
29500 295 1.0122694 8.1900103
30000 300 1.0758207 8.2876755
30500 305 1.0981472 6.4742286
31000 310 1.0356215 6.4857599
31500 315 0.95584989 8.4446078
32000 320 1.0591455 8.3936647
32500 325 0.92674627 7.0391747
33000 330 0.93486399 7.6892746
33500 335 1.0772579 7.1395468
34000 340 1.1029975 7.4249835
34500 345 0.9845352 6.3478805
35000 350 1.1004884 8.0179815
35500 355 0.97596833 8.1652441
36000 360 1.0026086 7.8100907
36500 365 1.0242946 7.4683685
37000 370 0.98485255 7.9021959
37500 375 1.078371 8.726722
38000 380 0.99139516 7.3585787
38500 385 1.0531594 8.5221732
39000 390 1.0290073 7.0905003
39500 395 1.0368491 8.0293456
40000 400 1.0520724 7.6372283
40500 405 0.94925657 8.9578914
41000 410 0.99919726 7.7207005
41500 415 1.0507736 6.9924906
42000 420 1.0442899 7.8115665
42500 425 1.0192672 8.5123404
43000 430 0.9784861 8.0556966
43500 435 0.99592222 8.0665153
44000 440 0.95621235 8.4132911
44500 445 0.93400296 7.3266133
45000 450 1.0389454 7.2458003
45500 455 1.1076673 6.5868539
46000 460 1.0826918 7.9286381
46500 465 0.93589963 8.5310745
47000 470 1.0352143 6.6366463
47500 475 1.0497186 8.5074329
48000 480 0.96107226 7.7505527
48500 485 1.1061337 8.2753596
49000 490 1.0337198 7.5777833
49500 495 0.94052507 7.3661443
50000 500 0.98527818 7.1746325
Loop time of 9.88248 on 1 procs for 50000 steps with 200 atoms
Performance: 4371371.882 tau/day, 5059.458 timesteps/s
99.9% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 8.7028 | 8.7028 | 8.7028 | 0.0 | 88.06
Neigh | 0.73687 | 0.73687 | 0.73687 | 0.0 | 7.46
Comm | 0.31881 | 0.31881 | 0.31881 | 0.0 | 3.23
Output | 0.0013947 | 0.0013947 | 0.0013947 | 0.0 | 0.01
Modify | 0.081394 | 0.081394 | 0.081394 | 0.0 | 0.82
Other | | 0.04118 | | | 0.42
Nlocal: 200.000 ave 200 max 200 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 547.000 ave 547 max 547 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 1651.00 ave 1651 max 1651 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1651
Ave neighs/atom = 8.2550000
Neighbor list builds = 5000
Dangerous builds = 5000
write_data final.data pair ij
System init for write_data ...
Total wall time: 0:00:10

View File

@ -0,0 +1,201 @@
LAMMPS (8 Apr 2021)
# DPD Fluid
variable T equal 1.0
variable rc equal 1.0
variable rcD equal 1.2
units lj
boundary p p p
atom_style atomic
dimension 3
newton on
comm_modify vel yes
### create box and configuration
variable L equal 5.0
lattice fcc 3.0
Lattice spacing in x,y,z = 1.1006424 1.1006424 1.1006424
region simBox block 0 ${L} 0 ${L} 0 ${L}
region simBox block 0 5 0 ${L} 0 ${L}
region simBox block 0 5 0 5 0 ${L}
region simBox block 0 5 0 5 0 5
create_box 2 simBox
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (5.5032121 5.5032121 5.5032121)
1 by 2 by 2 MPI processor grid
#create_atoms 1 region simBox
create_atoms 1 random 100 132456 simBox
Created 100 atoms
create_atoms CPU = 0.001 seconds
create_atoms 2 random 100 132456 simBox
Created 100 atoms
create_atoms CPU = 0.000 seconds
mass 1 1.0
mass 2 2.0
###
pair_style dpd/ext ${T} ${rc} 3854262
pair_style dpd/ext 1 ${rc} 3854262
pair_style dpd/ext 1 1 3854262
pair_coeff 1 1 25.0 4.5 4.53 0.5 0.53 1.2 #${rcD}
pair_coeff 1 2 25.1 4.51 4.54 0.51 0.54 1.21 #${rcD}
pair_coeff 2 2 25.2 4.52 4.55 0.52 0.55 1.22 #${rcD}
timestep 0.01
run_style verlet
velocity all create ${T} 68768932
velocity all create 1 68768932
thermo_style custom step time temp press
thermo 500
fix 1 all nve
run 50000
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 1.52
ghost atom cutoff = 1.52
binsize = 0.76, bins = 8 8 8
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair dpd/ext, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.064 | 3.064 | 3.064 Mbytes
Step Time Temp Press
0 0 1 7.9021356
500 5 0.937908 7.0735774
1000 10 0.89467862 7.7074585
1500 15 1.0197239 8.6662041
2000 20 1.0306203 8.0831978
2500 25 0.94106312 7.4609953
3000 30 1.0217162 7.7000536
3500 35 0.9694633 6.9496101
4000 40 0.89886564 7.5844291
4500 45 0.9914389 6.5459858
5000 50 1.0503316 7.1639528
5500 55 0.95397384 7.2900451
6000 60 0.91097079 7.4484481
6500 65 1.0212125 8.6396803
7000 70 0.84788375 9.2247619
7500 75 1.0477577 7.9631111
8000 80 1.0473514 7.2904431
8500 85 1.0482936 7.9668363
9000 90 1.0239558 7.1715815
9500 95 1.0727305 8.2075133
10000 100 0.96755536 7.8062307
10500 105 1.0357222 8.2249507
11000 110 1.053488 6.8283393
11500 115 0.89283913 8.9044509
12000 120 1.0085932 8.1844316
12500 125 0.84259725 6.9608932
13000 130 1.0559908 7.5907714
13500 135 0.95175487 8.8486631
14000 140 0.954129 8.2199072
14500 145 1.0034836 8.6956618
15000 150 0.99411864 7.3723436
15500 155 1.0876662 8.5906664
16000 160 0.98613154 7.6599681
16500 165 1.0355659 6.7243908
17000 170 1.0838802 7.5905171
17500 175 0.95966717 7.3268842
18000 180 0.91267962 8.1126836
18500 185 0.9625394 8.0889468
19000 190 1.0209688 7.2104928
19500 195 0.93315956 8.3484128
20000 200 1.0430989 6.4154856
20500 205 1.037892 7.3727084
21000 210 1.0551654 8.3732908
21500 215 0.97922101 8.0403654
22000 220 1.0480356 9.2304431
22500 225 1.0009668 8.0807868
23000 230 1.0808549 7.9128664
23500 235 0.99282487 7.550466
24000 240 0.96893196 8.0123396
24500 245 0.96945612 6.9129899
25000 250 0.9373397 6.2942852
25500 255 0.98958822 7.8259805
26000 260 0.97971277 7.3263113
26500 265 0.91588062 8.284996
27000 270 1.0045677 7.490418
27500 275 0.92664827 7.2434156
28000 280 0.98527367 7.1695053
28500 285 0.97862372 8.2272887
29000 290 1.067876 8.3157621
29500 295 1.0688998 7.5106281
30000 300 1.117583 8.8135518
30500 305 1.035452 7.3572033
31000 310 1.03275 8.1486503
31500 315 0.96000074 7.6740792
32000 320 0.91763282 7.6603754
32500 325 0.99394287 8.8127132
33000 330 1.0021499 7.9881263
33500 335 0.97639399 8.2361021
34000 340 1.0309313 8.2918535
34500 345 1.0214124 7.3886765
35000 350 1.0029326 8.2745874
35500 355 1.0634485 6.4161924
36000 360 1.0242523 7.4099968
36500 365 1.0302234 8.0604043
37000 370 1.0143945 7.34914
37500 375 0.99553421 6.8818266
38000 380 1.0073546 7.6254332
38500 385 1.0068118 7.4673312
39000 390 0.95181135 6.1644033
39500 395 0.98964849 8.501371
40000 400 0.99441011 8.1515808
40500 405 1.0339683 7.6747037
41000 410 0.99467835 7.8743708
41500 415 1.0231331 7.3169584
42000 420 0.94617359 8.0079888
42500 425 1.0163237 7.7949198
43000 430 0.97039825 8.8842702
43500 435 1.0326956 7.6700965
44000 440 1.1106283 8.2900664
44500 445 0.96697428 7.0408563
45000 450 1.0137186 6.8316108
45500 455 1.0531692 8.0051631
46000 460 1.0382619 7.2937333
46500 465 0.90277459 7.9676952
47000 470 1.00751 8.7594948
47500 475 0.95565907 8.320444
48000 480 1.0396091 7.9262425
48500 485 1.0349892 8.333501
49000 490 0.9759139 7.4839858
49500 495 0.91538068 7.1780491
50000 500 1.0310634 7.1522794
Loop time of 8.5908 on 4 procs for 50000 steps with 200 atoms
Performance: 5028633.375 tau/day, 5820.178 timesteps/s
95.7% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 4.9505 | 5.054 | 5.1885 | 4.1 | 58.83
Neigh | 0.47025 | 0.47603 | 0.47954 | 0.5 | 5.54
Comm | 2.7876 | 2.9237 | 3.0336 | 5.5 | 34.03
Output | 0.0024114 | 0.0029766 | 0.0046443 | 1.8 | 0.03
Modify | 0.062911 | 0.064188 | 0.065603 | 0.4 | 0.75
Other | | 0.06992 | | | 0.81
Nlocal: 50.0000 ave 53 max 46 min
Histogram: 1 0 0 0 1 0 0 0 1 1
Nghost: 296.000 ave 301 max 290 min
Histogram: 1 0 0 0 0 1 1 0 0 1
Neighs: 410.750 ave 431 max 357 min
Histogram: 1 0 0 0 0 0 0 0 0 3
Total # of neighbors = 1643
Ave neighs/atom = 8.2150000
Neighbor list builds = 5000
Dangerous builds = 5000
write_data final.data pair ij
System init for write_data ...
Total wall time: 0:00:08

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,354 @@
VOTCA
N 351 R 2.0 9.0
1 2.000000E+00 2.190202E+01 7.229762E+01
2 2.020000E+00 2.048957E+01 6.887333E+01
3 2.040000E+00 1.915004E+01 6.500604E+01
4 2.060000E+00 1.789228E+01 6.069573E+01
5 2.080000E+00 1.672516E+01 5.594242E+01
6 2.100000E+00 1.565754E+01 5.074609E+01
7 2.120000E+00 1.467088E+01 4.787307E+01
8 2.140000E+00 1.374450E+01 4.471740E+01
9 2.160000E+00 1.288407E+01 4.127908E+01
10 2.180000E+00 1.209522E+01 3.755811E+01
11 2.200000E+00 1.138363E+01 3.355449E+01
12 2.220000E+00 1.072913E+01 3.188695E+01
13 2.240000E+00 1.010845E+01 3.017359E+01
14 2.260000E+00 9.522496E+00 2.841440E+01
15 2.280000E+00 8.972182E+00 2.660938E+01
16 2.300000E+00 8.458426E+00 2.475854E+01
17 2.320000E+00 8.014166E+00 2.006698E+01
18 2.340000E+00 7.639767E+00 1.777244E+01
19 2.360000E+00 7.287288E+00 1.787493E+01
20 2.380000E+00 6.908790E+00 2.037445E+01
21 2.400000E+00 6.456330E+00 2.527099E+01
22 2.420000E+00 5.858025E+00 3.384695E+01
23 2.440000E+00 5.130955E+00 3.814748E+01
24 2.460000E+00 4.360629E+00 3.817257E+01
25 2.480000E+00 3.632555E+00 3.392224E+01
26 2.500000E+00 3.032242E+00 2.539647E+01
27 2.520000E+00 2.547993E+00 2.297813E+01
28 2.540000E+00 2.115131E+00 2.025763E+01
29 2.560000E+00 1.739702E+00 1.723497E+01
30 2.580000E+00 1.427747E+00 1.391013E+01
31 2.600000E+00 1.185311E+00 1.028314E+01
32 2.620000E+00 9.860176E-01 9.578245E+00
33 2.640000E+00 8.048986E-01 8.465708E+00
34 2.660000E+00 6.501069E-01 6.945526E+00
35 2.680000E+00 5.297952E-01 5.017699E+00
36 2.700000E+00 4.521166E-01 2.682227E+00
37 2.720000E+00 3.986447E-01 2.615311E+00
38 2.740000E+00 3.494900E-01 2.250522E+00
39 2.760000E+00 3.106097E-01 1.587859E+00
40 2.780000E+00 2.879614E-01 6.273237E-01
41 2.800000E+00 2.875026E-01 -6.310851E-01
42 2.820000E+00 3.002733E-01 -6.543549E-01
43 2.840000E+00 3.140112E-01 -7.277911E-01
44 2.860000E+00 3.297194E-01 -8.513935E-01
45 2.880000E+00 3.484014E-01 -1.025162E+00
46 2.900000E+00 3.710604E-01 -1.249097E+00
47 2.920000E+00 3.974884E-01 -1.380483E+00
48 2.940000E+00 4.257507E-01 -1.432530E+00
49 2.960000E+00 4.542607E-01 -1.405240E+00
50 2.980000E+00 4.814314E-01 -1.298611E+00
51 3.000000E+00 5.056762E-01 -1.112645E+00
52 3.020000E+00 5.266502E-01 -9.832894E-01
53 3.040000E+00 5.449492E-01 -8.451544E-01
54 3.060000E+00 5.603978E-01 -6.982396E-01
55 3.080000E+00 5.728203E-01 -5.425450E-01
56 3.100000E+00 5.820411E-01 -3.780706E-01
57 3.120000E+00 5.882509E-01 -2.409307E-01
58 3.140000E+00 5.915991E-01 -9.190908E-02
59 3.160000E+00 5.918481E-01 6.899430E-02
60 3.180000E+00 5.887601E-01 2.417794E-01
61 3.200000E+00 5.820977E-01 4.264463E-01
62 3.220000E+00 5.733491E-01 4.528343E-01
63 3.240000E+00 5.638075E-01 5.057356E-01
64 3.260000E+00 5.529429E-01 5.851503E-01
65 3.280000E+00 5.402248E-01 6.910784E-01
66 3.300000E+00 5.251230E-01 8.235199E-01
67 3.320000E+00 5.086524E-01 8.236482E-01
68 3.340000E+00 4.921725E-01 8.244583E-01
69 3.360000E+00 4.756696E-01 8.259503E-01
70 3.380000E+00 4.591299E-01 8.281240E-01
71 3.400000E+00 4.425400E-01 8.309796E-01
72 3.420000E+00 4.259181E-01 8.311861E-01
73 3.440000E+00 4.092937E-01 8.312292E-01
74 3.460000E+00 3.926700E-01 8.311089E-01
75 3.480000E+00 3.760504E-01 8.308252E-01
76 3.500000E+00 3.594381E-01 8.303781E-01
77 3.520000E+00 3.428394E-01 8.295412E-01
78 3.540000E+00 3.262547E-01 8.289646E-01
79 3.560000E+00 3.096790E-01 8.286483E-01
80 3.580000E+00 2.931071E-01 8.285923E-01
81 3.600000E+00 2.765336E-01 8.287966E-01
82 3.620000E+00 2.599901E-01 8.254306E-01
83 3.640000E+00 2.435212E-01 8.213359E-01
84 3.660000E+00 2.271415E-01 8.165124E-01
85 3.680000E+00 2.108656E-01 8.109603E-01
86 3.700000E+00 1.947080E-01 8.046794E-01
87 3.720000E+00 1.790243E-01 7.653050E-01
88 3.740000E+00 1.640312E-01 7.356166E-01
89 3.760000E+00 1.495351E-01 7.156143E-01
90 3.780000E+00 1.353421E-01 7.052980E-01
91 3.800000E+00 1.212586E-01 7.046676E-01
92 3.820000E+00 1.072429E-01 6.965706E-01
93 3.840000E+00 9.340878E-02 6.865180E-01
94 3.860000E+00 7.979524E-02 6.745098E-01
95 3.880000E+00 6.644142E-02 6.605462E-01
96 3.900000E+00 5.338643E-02 6.446270E-01
97 3.920000E+00 4.067486E-02 6.268536E-01
98 3.940000E+00 2.829935E-02 6.110218E-01
99 3.960000E+00 1.622105E-02 5.971317E-01
100 3.980000E+00 4.401131E-03 5.851833E-01
101 4.000000E+00 -7.199230E-03 5.751764E-01
102 4.020000E+00 -1.856170E-02 5.611971E-01
103 4.040000E+00 -2.965216E-02 5.479743E-01
104 4.060000E+00 -4.048572E-02 5.355079E-01
105 4.080000E+00 -5.107752E-02 5.237981E-01
106 4.100000E+00 -6.144268E-02 5.128447E-01
107 4.120000E+00 -7.151117E-02 4.939504E-01
108 4.140000E+00 -8.119856E-02 4.747353E-01
109 4.160000E+00 -9.049845E-02 4.551994E-01
110 4.180000E+00 -9.940440E-02 4.353427E-01
111 4.200000E+00 -1.079100E-01 4.151651E-01
112 4.220000E+00 -1.159565E-01 3.900062E-01
113 4.240000E+00 -1.235312E-01 3.679865E-01
114 4.260000E+00 -1.306969E-01 3.491061E-01
115 4.280000E+00 -1.375164E-01 3.333651E-01
116 4.300000E+00 -1.440524E-01 3.207633E-01
117 4.320000E+00 -1.503014E-01 3.040292E-01
118 4.340000E+00 -1.562092E-01 2.866389E-01
119 4.360000E+00 -1.617626E-01 2.685925E-01
120 4.380000E+00 -1.669485E-01 2.498899E-01
121 4.400000E+00 -1.717538E-01 2.305311E-01
122 4.420000E+00 -1.760941E-01 2.036400E-01
123 4.440000E+00 -1.799054E-01 1.776469E-01
124 4.460000E+00 -1.832059E-01 1.525518E-01
125 4.480000E+00 -1.860135E-01 1.283546E-01
126 4.500000E+00 -1.883461E-01 1.050554E-01
127 4.520000E+00 -1.902569E-01 8.558005E-02
128 4.540000E+00 -1.917515E-01 6.344105E-02
129 4.560000E+00 -1.927768E-01 3.863842E-02
130 4.580000E+00 -1.932793E-01 1.117216E-02
131 4.600000E+00 -1.932059E-01 -1.895774E-02
132 4.620000E+00 -1.926829E-01 -3.331832E-02
133 4.640000E+00 -1.918741E-01 -4.753697E-02
134 4.660000E+00 -1.907824E-01 -6.161370E-02
135 4.680000E+00 -1.894105E-01 -7.554851E-02
136 4.700000E+00 -1.877614E-01 -8.934140E-02
137 4.720000E+00 -1.859159E-01 -9.580751E-02
138 4.740000E+00 -1.839049E-01 -1.058976E-01
139 4.760000E+00 -1.816559E-01 -1.196116E-01
140 4.780000E+00 -1.790963E-01 -1.369495E-01
141 4.800000E+00 -1.761537E-01 -1.579114E-01
142 4.820000E+00 -1.728280E-01 -1.744216E-01
143 4.840000E+00 -1.691864E-01 -1.895036E-01
144 4.860000E+00 -1.652574E-01 -2.031575E-01
145 4.880000E+00 -1.610696E-01 -2.153832E-01
146 4.900000E+00 -1.566516E-01 -2.261808E-01
147 4.920000E+00 -1.521084E-01 -2.290714E-01
148 4.940000E+00 -1.474515E-01 -2.375453E-01
149 4.960000E+00 -1.425693E-01 -2.516026E-01
150 4.980000E+00 -1.373502E-01 -2.712432E-01
151 5.000000E+00 -1.316824E-01 -2.964672E-01
152 5.020000E+00 -1.257009E-01 -3.016666E-01
153 5.040000E+00 -1.196162E-01 -3.067953E-01
154 5.060000E+00 -1.134296E-01 -3.118535E-01
155 5.080000E+00 -1.071425E-01 -3.168409E-01
156 5.100000E+00 -1.007564E-01 -3.217577E-01
157 5.120000E+00 -9.430843E-02 -3.230025E-01
158 5.140000E+00 -8.783782E-02 -3.240216E-01
159 5.160000E+00 -8.134907E-02 -3.248150E-01
160 5.180000E+00 -7.484672E-02 -3.253827E-01
161 5.200000E+00 -6.833527E-02 -3.257248E-01
162 5.220000E+00 -6.171989E-02 -3.350608E-01
163 5.240000E+00 -5.496291E-02 -3.398853E-01
164 5.260000E+00 -4.815456E-02 -3.401983E-01
165 5.280000E+00 -4.138506E-02 -3.359997E-01
166 5.300000E+00 -3.474465E-02 -3.272895E-01
167 5.320000E+00 -2.866480E-02 -2.819209E-01
168 5.340000E+00 -2.341879E-02 -2.439062E-01
169 5.360000E+00 -1.885953E-02 -2.132454E-01
170 5.380000E+00 -1.483994E-02 -1.899386E-01
171 5.400000E+00 -1.121296E-02 -1.739857E-01
172 5.420000E+00 -7.974056E-03 -1.497398E-01
173 5.440000E+00 -5.229953E-03 -1.245058E-01
174 5.460000E+00 -3.000413E-03 -9.828350E-02
175 5.480000E+00 -1.305201E-03 -7.107305E-02
176 5.500000E+00 -1.640790E-04 -4.287441E-02
177 5.520000E+00 6.371635E-04 -3.612657E-02
178 5.540000E+00 1.236053E-03 -2.263906E-02
179 5.560000E+00 1.497795E-03 -2.411882E-03
180 5.580000E+00 1.287597E-03 2.455496E-02
181 5.600000E+00 4.706651E-04 5.826147E-02
182 5.620000E+00 -7.026386E-04 5.910929E-02
183 5.640000E+00 -1.895322E-03 6.019943E-02
184 5.660000E+00 -3.112231E-03 6.153190E-02
185 5.680000E+00 -4.358213E-03 6.310668E-02
186 5.700000E+00 -5.638114E-03 6.492378E-02
187 5.720000E+00 -6.949688E-03 6.610584E-02
188 5.740000E+00 -8.277238E-03 6.652145E-02
189 5.760000E+00 -9.605436E-03 6.617062E-02
190 5.780000E+00 -1.091895E-02 6.505335E-02
191 5.800000E+00 -1.220246E-02 6.316963E-02
192 5.820000E+00 -1.341489E-02 5.820182E-02
193 5.840000E+00 -1.453566E-02 5.400257E-02
194 5.860000E+00 -1.558012E-02 5.057189E-02
195 5.880000E+00 -1.656366E-02 4.790978E-02
196 5.900000E+00 -1.750164E-02 4.601622E-02
197 5.920000E+00 -1.840088E-02 4.358369E-02
198 5.940000E+00 -1.923199E-02 3.920163E-02
199 5.960000E+00 -1.995595E-02 3.287003E-02
200 5.980000E+00 -2.053379E-02 2.458889E-02
201 6.000000E+00 -2.092651E-02 1.435822E-02
202 6.020000E+00 -2.120502E-02 1.352840E-02
203 6.040000E+00 -2.146907E-02 1.291186E-02
204 6.060000E+00 -2.172292E-02 1.250861E-02
205 6.080000E+00 -2.197084E-02 1.231865E-02
206 6.100000E+00 -2.221709E-02 1.234198E-02
207 6.120000E+00 -2.246474E-02 1.237271E-02
208 6.140000E+00 -2.270998E-02 1.210114E-02
209 6.160000E+00 -2.294677E-02 1.152726E-02
210 6.180000E+00 -2.316905E-02 1.065107E-02
211 6.200000E+00 -2.337079E-02 9.472569E-03
212 6.220000E+00 -2.332237E-02 -1.276224E-02
213 6.240000E+00 -2.292243E-02 -2.567822E-02
214 6.260000E+00 -2.235736E-02 -2.927535E-02
215 6.280000E+00 -2.181354E-02 -2.355364E-02
216 6.300000E+00 -2.147734E-02 -8.513096E-03
217 6.320000E+00 -2.141633E-02 1.466366E-03
218 6.340000E+00 -2.149820E-02 5.775798E-03
219 6.360000E+00 -2.160956E-02 4.415202E-03
220 6.380000E+00 -2.163701E-02 -2.615423E-03
221 6.400000E+00 -2.146714E-02 -1.531608E-02
222 6.420000E+00 -2.107402E-02 -2.337955E-02
223 6.440000E+00 -2.055660E-02 -2.774728E-02
224 6.460000E+00 -1.998877E-02 -2.841924E-02
225 6.480000E+00 -1.944446E-02 -2.539546E-02
226 6.500000E+00 -1.899759E-02 -1.867591E-02
227 6.520000E+00 -1.869042E-02 -1.259095E-02
228 6.540000E+00 -1.847196E-02 -9.804901E-03
229 6.560000E+00 -1.827623E-02 -1.031775E-02
230 6.580000E+00 -1.803726E-02 -1.412951E-02
231 6.600000E+00 -1.768906E-02 -2.124018E-02
232 6.620000E+00 -1.710949E-02 -3.551655E-02
233 6.640000E+00 -1.631641E-02 -4.259122E-02
234 6.660000E+00 -1.545385E-02 -4.246419E-02
235 6.680000E+00 -1.466585E-02 -3.513545E-02
236 6.700000E+00 -1.409644E-02 -2.060502E-02
237 6.720000E+00 -1.374966E-02 -1.461056E-02
238 6.740000E+00 -1.349054E-02 -1.183851E-02
239 6.760000E+00 -1.325464E-02 -1.228886E-02
240 6.780000E+00 -1.297750E-02 -1.596163E-02
241 6.800000E+00 -1.259469E-02 -2.285680E-02
242 6.820000E+00 -1.213049E-02 -2.349903E-02
243 6.840000E+00 -1.165728E-02 -2.375897E-02
244 6.860000E+00 -1.118268E-02 -2.363664E-02
245 6.880000E+00 -1.071436E-02 -2.313203E-02
246 6.900000E+00 -1.025995E-02 -2.224514E-02
247 6.920000E+00 -9.817276E-03 -2.203990E-02
248 6.940000E+00 -9.377653E-03 -2.193988E-02
249 6.960000E+00 -8.938979E-03 -2.194508E-02
250 6.980000E+00 -8.499148E-03 -2.205550E-02
251 7.000000E+00 -8.056057E-03 -2.227113E-02
252 7.020000E+00 -7.597830E-03 -2.345789E-02
253 7.040000E+00 -7.121492E-03 -2.408210E-02
254 7.060000E+00 -6.638296E-03 -2.414376E-02
255 7.080000E+00 -6.159492E-03 -2.364288E-02
256 7.100000E+00 -5.696331E-03 -2.257946E-02
257 7.120000E+00 -5.301441E-03 -1.729553E-02
258 7.140000E+00 -4.989070E-03 -1.432759E-02
259 7.160000E+00 -4.712898E-03 -1.367562E-02
260 7.180000E+00 -4.426605E-03 -1.533964E-02
261 7.200000E+00 -4.083872E-03 -1.931964E-02
262 7.220000E+00 -3.631995E-03 -2.538390E-02
263 7.240000E+00 -3.087883E-03 -2.854317E-02
264 7.260000E+00 -2.509635E-03 -2.879748E-02
265 7.280000E+00 -1.955351E-03 -2.614680E-02
266 7.300000E+00 -1.483130E-03 -2.059115E-02
267 7.320000E+00 -1.113389E-03 -1.639767E-02
268 7.340000E+00 -8.266321E-04 -1.229279E-02
269 7.360000E+00 -6.210869E-04 -8.276492E-03
270 7.380000E+00 -4.949818E-04 -4.348786E-03
271 7.400000E+00 -4.465449E-04 -5.096684E-04
272 7.420000E+00 -5.304321E-04 8.162452E-03
273 7.440000E+00 -7.436056E-04 1.241897E-02
274 7.460000E+00 -9.977534E-04 1.225988E-02
275 7.480000E+00 -1.204563E-03 7.685191E-03
276 7.500000E+00 -1.275724E-03 -1.305104E-03
277 7.520000E+00 -1.199415E-03 -5.916706E-03
278 7.540000E+00 -1.055417E-03 -8.074089E-03
279 7.560000E+00 -8.928131E-04 -7.777253E-03
280 7.580000E+00 -7.606883E-04 -5.026198E-03
281 7.600000E+00 -7.081267E-04 1.790768E-04
282 7.620000E+00 -7.213835E-04 1.157786E-03
283 7.640000E+00 -7.548855E-04 2.203601E-03
284 7.660000E+00 -8.099749E-04 3.316523E-03
285 7.680000E+00 -8.879938E-04 4.496550E-03
286 7.700000E+00 -9.902843E-04 5.743685E-03
287 7.720000E+00 -1.122403E-03 7.421734E-03
288 7.740000E+00 -1.285295E-03 8.820936E-03
289 7.760000E+00 -1.473382E-03 9.941291E-03
290 7.780000E+00 -1.681087E-03 1.078280E-02
291 7.800000E+00 -1.902835E-03 1.134546E-02
292 7.820000E+00 -2.225281E-03 2.008573E-02
293 7.840000E+00 -2.673724E-03 2.394500E-02
294 7.860000E+00 -3.150542E-03 2.292328E-02
295 7.880000E+00 -3.558115E-03 1.702056E-02
296 7.900000E+00 -3.798824E-03 6.236836E-03
297 7.920000E+00 -3.844315E-03 -1.142168E-03
298 7.940000E+00 -3.774961E-03 -5.247538E-03
299 7.960000E+00 -3.656237E-03 -6.079274E-03
300 7.980000E+00 -3.553615E-03 -3.637376E-03
301 8.000000E+00 -3.532566E-03 2.078155E-03
302 8.020000E+00 -3.611956E-03 5.494873E-03
303 8.040000E+00 -3.737724E-03 6.716053E-03
304 8.060000E+00 -3.865961E-03 5.741694E-03
305 8.080000E+00 -3.952755E-03 2.571796E-03
306 8.100000E+00 -3.954196E-03 -2.793640E-03
307 8.120000E+00 -3.873685E-03 -5.086591E-03
308 8.140000E+00 -3.757567E-03 -6.354313E-03
309 8.160000E+00 -3.626347E-03 -6.596805E-03
310 8.180000E+00 -3.500530E-03 -5.814068E-03
311 8.200000E+00 -3.400620E-03 -4.006101E-03
312 8.220000E+00 -3.334411E-03 -2.730570E-03
313 8.240000E+00 -3.286762E-03 -2.150229E-03
314 8.260000E+00 -3.243768E-03 -2.265076E-03
315 8.280000E+00 -3.191524E-03 -3.075114E-03
316 8.300000E+00 -3.116129E-03 -4.580340E-03
317 8.320000E+00 -2.964210E-03 -1.014102E-02
318 8.340000E+00 -2.729309E-03 -1.287854E-02
319 8.360000E+00 -2.467889E-03 -1.279292E-02
320 8.380000E+00 -2.236413E-03 -9.884157E-03
321 8.400000E+00 -2.091344E-03 -4.152240E-03
322 8.420000E+00 -2.034875E-03 -1.692189E-03
323 8.440000E+00 -2.015752E-03 -4.177491E-04
324 8.460000E+00 -2.010261E-03 -3.289192E-04
325 8.480000E+00 -1.994691E-03 -1.425700E-03
326 8.500000E+00 -1.945329E-03 -3.708091E-03
327 8.520000E+00 -1.867098E-03 -4.115259E-03
328 8.540000E+00 -1.780711E-03 -4.523663E-03
329 8.560000E+00 -1.686143E-03 -4.933304E-03
330 8.580000E+00 -1.583370E-03 -5.344181E-03
331 8.600000E+00 -1.472368E-03 -5.756296E-03
332 8.620000E+00 -1.328792E-03 -8.394009E-03
333 8.640000E+00 -1.144899E-03 -9.787974E-03
334 8.660000E+00 -9.455644E-04 -9.938189E-03
335 8.680000E+00 -7.556630E-04 -8.844656E-03
336 8.700000E+00 -6.000698E-04 -6.507373E-03
337 8.720000E+00 -5.364035E-04 -3.286769E-04
338 8.740000E+00 -5.681458E-04 3.033482E-03
339 8.760000E+00 -6.389659E-04 3.579102E-03
340 8.780000E+00 -6.925330E-04 1.308185E-03
341 8.800000E+00 -6.725164E-04 -3.779270E-03
342 8.820000E+00 -5.113768E-04 -1.169180E-02
343 8.840000E+00 -2.305599E-04 -1.574700E-02
344 8.860000E+00 9.278768E-05 -1.594487E-02
345 8.880000E+00 3.815195E-04 -1.228542E-02
346 8.900000E+00 5.584889E-04 -4.768636E-03
347 8.920000E+00 6.079481E-04 -2.335309E-04
348 8.940000E+00 5.700798E-04 3.964121E-03
349 8.960000E+00 4.516330E-04 7.824320E-03
350 8.980000E+00 2.593567E-04 1.134707E-02
351 9.000000E+00 0.000000E+00 1.453236E-02

View File

@ -0,0 +1,31 @@
# Coarse-Grained SPC/E Water
variable T equal 300.0
variable rc equal 9.0
variable rcD equal 10.0
units real
boundary p p p
atom_style atomic
dimension 3
newton on
comm_modify vel yes
read_data cg_spce.data
pair_style hybrid/overlay table linear 1000 dpd/ext/tstat ${T} ${T} ${rc} 385262
pair_coeff 1 1 table cg_spce_table.pot VOTCA ${rc}
pair_coeff 1 1 dpd/ext/tstat 20.0 10.0 0.5 0.5 ${rcD}
timestep 1.0
run_style verlet
velocity all create ${T} 68768932
thermo_style custom step time temp press
thermo 10
fix 1 all nve
run 2000

View File

@ -0,0 +1,293 @@
LAMMPS (8 Apr 2021)
# Coarse-Grained SPC/E Water
variable T equal 300.0
variable rc equal 9.0
variable rcD equal 10.0
units real
boundary p p p
atom_style atomic
dimension 3
newton on
comm_modify vel yes
read_data cg_spce.data
Reading data file ...
orthogonal box = (0.0000000 0.0000000 0.0000000) to (40.310000 40.310000 40.310000)
1 by 1 by 1 MPI processor grid
reading atoms ...
2180 atoms
read_data CPU = 0.020 seconds
pair_style hybrid/overlay table linear 1000 dpd/ext/tstat ${T} ${T} ${rc} 385262
pair_style hybrid/overlay table linear 1000 dpd/ext/tstat 300 ${T} ${rc} 385262
pair_style hybrid/overlay table linear 1000 dpd/ext/tstat 300 300 ${rc} 385262
pair_style hybrid/overlay table linear 1000 dpd/ext/tstat 300 300 9 385262
pair_coeff 1 1 table cg_spce_table.pot VOTCA ${rc}
pair_coeff 1 1 table cg_spce_table.pot VOTCA 9
WARNING: 16 of 351 force values in table VOTCA are inconsistent with -dE/dr.
Should only be flagged at inflection points (../pair_table.cpp:461)
pair_coeff 1 1 dpd/ext/tstat 20.0 10.0 0.5 0.5 ${rcD}
pair_coeff 1 1 dpd/ext/tstat 20.0 10.0 0.5 0.5 10
timestep 1.0
run_style verlet
velocity all create ${T} 68768932
velocity all create 300 68768932
thermo_style custom step time temp press
thermo 10
fix 1 all nve
run 2000
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 7 7 7
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair table, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
(2) pair dpd/ext/tstat, perpetual, copy from (1)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 5.380 | 5.380 | 5.380 Mbytes
Step Time Temp Press
0 0 300 7368.7186
10 10 298.34842 6443.6033
20 20 303.36187 9303.0158
30 30 301.59356 7533.7912
40 40 300.97217 5623.9089
50 50 300.31652 9105.8093
60 60 296.92173 9213.304
70 70 294.36593 12701.327
80 80 295.30077 6098.4732
90 90 296.35396 8051.719
100 100 293.72532 5555.983
110 110 290.95711 9001.8346
120 120 290.91972 10264.241
130 130 294.14911 11450.959
140 140 299.11994 7244.1639
150 150 301.20082 7675.7516
160 160 300.71883 9718.1901
170 170 295.47176 8931.1414
180 180 290.45284 7381.7674
190 190 291.66922 11028.436
200 200 294.0543 11897.269
210 210 299.17955 8939.2171
220 220 298.45193 8047.038
230 230 300.48548 10033.64
240 240 299.24752 6310.7247
250 250 304.51487 8710.5626
260 260 303.6513 5230.8162
270 270 300.76074 12164.773
280 280 302.60275 11145.98
290 290 297.22957 9521.4384
300 300 297.1365 7446.9006
310 310 292.18323 8021.8344
320 320 295.03958 9130.8594
330 330 293.9622 4647.512
340 340 290.77751 8001.486
350 350 292.34687 11887.668
360 360 295.95968 9262.148
370 370 293.50476 4181.549
380 380 288.69498 7632.071
390 390 289.63957 5130.0205
400 400 295.02212 5643.5024
410 410 296.3944 7267.235
420 420 299.22019 7149.9305
430 430 298.36689 8384.595
440 440 295.33149 10515.75
450 450 294.76959 11569.389
460 460 300.141 7272.4453
470 470 299.14431 7792.5419
480 480 302.3697 5837.8675
490 490 301.94692 6999.1059
500 500 300.25929 4885.3948
510 510 302.50013 8231.0438
520 520 300.76412 8445.0349
530 530 298.5016 9110.432
540 540 301.14513 9348.6421
550 550 297.36425 10753.314
560 560 296.50046 10476.823
570 570 300.57267 9889.7968
580 580 300.4868 8377.423
590 590 296.65103 6859.32
600 600 298.50013 7080.5995
610 610 300.28274 9502.5438
620 620 298.45508 8819.7846
630 630 300.24859 6291.4944
640 640 299.38719 7430.2366
650 650 297.91915 9435.3218
660 660 300.61208 6287.9931
670 670 303.59291 8357.7639
680 680 301.85511 1697.3038
690 690 298.96873 5210.2286
700 700 298.09035 7510.4359
710 710 303.11692 10129.526
720 720 302.65473 10488.388
730 730 300.15444 7118.5953
740 740 300.19245 10582.032
750 750 296.73618 6538.0363
760 760 299.72857 7588.9487
770 770 299.00347 6633.9983
780 780 301.38129 8053.5347
790 790 298.54819 8711.4965
800 800 305.54197 9717.9727
810 810 302.96497 7582.0444
820 820 306.81537 9433.6446
830 830 309.16373 10088.582
840 840 313.53881 9509.8624
850 850 310.82992 5366.015
860 860 306.49798 8499.9157
870 870 308.93421 5690.3242
880 880 302.56668 5526.3636
890 890 306.72501 7380.8469
900 900 308.87199 10388.13
910 910 312.7367 6613.0734
920 920 308.34508 5903.4291
930 930 306.39924 8615.6622
940 940 310.37544 6849.4694
950 950 310.13051 6188.7605
960 960 308.68049 7637.532
970 970 302.85465 6448.7926
980 980 307.40719 8763.0959
990 990 304.02815 8373.6518
1000 1000 300.69539 5682.6678
1010 1010 299.16385 6012.246
1020 1020 305.118 7913.4144
1030 1030 304.20382 10580.788
1040 1040 302.91134 7698.4548
1050 1050 298.08593 8952.6724
1060 1060 302.56196 10602.997
1070 1070 305.98211 12174.358
1080 1080 305.70253 12288.219
1090 1090 303.22805 7922.7166
1100 1100 301.54879 5031.3836
1110 1110 302.57611 8547.4189
1120 1120 302.00845 12966.595
1130 1130 296.10912 4514.1707
1140 1140 295.11601 6543.7239
1150 1150 287.29188 6453.3386
1160 1160 284.83881 7168.9427
1170 1170 289.77871 7895.7434
1180 1180 293.48011 7680.6885
1190 1190 295.69035 8609.6593
1200 1200 296.0653 7343.68
1210 1210 302.72922 6973.6048
1220 1220 304.11805 7322.7664
1230 1230 300.24647 6418.2612
1240 1240 293.24074 9039.1214
1250 1250 300.56214 7877.4055
1260 1260 308.03086 5644.2135
1270 1270 311.12289 6875.5126
1280 1280 307.83182 7204.9894
1290 1290 309.58491 9993.2255
1300 1300 305.36536 8626.859
1310 1310 304.35084 3471.1205
1320 1320 304.40125 2149.2701
1330 1330 295.74547 6252.9592
1340 1340 293.16034 3407.4408
1350 1350 298.6302 10139.977
1360 1360 300.46627 7312.9011
1370 1370 298.00367 2780.8886
1380 1380 300.97807 9403.3451
1390 1390 294.32612 12005.453
1400 1400 296.13403 5569.4907
1410 1410 297.86152 9558.6064
1420 1420 303.01992 8678.345
1430 1430 298.53849 5544.6316
1440 1440 293.60633 12879.765
1450 1450 296.28813 9312.4229
1460 1460 292.64466 8344.5877
1470 1470 295.28975 7689.9396
1480 1480 300.10761 7436.7346
1490 1490 291.6152 8909.6757
1500 1500 286.644 9756.5014
1510 1510 294.52064 10383.164
1520 1520 297.49618 4972.89
1530 1530 295.63379 6192.5729
1540 1540 295.04528 4987.7191
1550 1550 290.41403 7013.6076
1560 1560 295.62326 7222.5009
1570 1570 299.90584 4282.5688
1580 1580 299.04532 7885.433
1590 1590 300.03907 5508.0652
1600 1600 298.05683 9262.3744
1610 1610 297.50015 9544.6913
1620 1620 303.21217 6393.6756
1630 1630 304.44383 9674.6583
1640 1640 302.68977 9065.4408
1650 1650 303.62415 6851.1575
1660 1660 306.11103 8592.0481
1670 1670 300.84566 8483.551
1680 1680 303.92882 10113.096
1690 1690 305.02534 7389.9402
1700 1700 303.52902 5541.9256
1710 1710 299.27905 9547.7344
1720 1720 294.14366 7269.2402
1730 1730 299.49977 8086.0601
1740 1740 298.66942 7026.6067
1750 1750 296.94428 9595.2435
1760 1760 297.36921 6268.7436
1770 1770 299.88423 10598.189
1780 1780 293.76868 7405.7641
1790 1790 297.19444 10837.102
1800 1800 296.46054 8345.699
1810 1810 299.06801 5256.5992
1820 1820 294.17725 5510.7529
1830 1830 286.78527 6310.8881
1840 1840 284.89686 8249.1144
1850 1850 293.79389 4578.9263
1860 1860 298.31279 8752.305
1870 1870 295.31087 8401.2736
1880 1880 298.13297 4354.8694
1890 1890 298.90786 11454.088
1900 1900 299.1416 9121.4138
1910 1910 296.43134 12157.884
1920 1920 292.05445 8613.1522
1930 1930 300.3421 7898.3626
1940 1940 304.55746 6311.259
1950 1950 304.03899 8789.3537
1960 1960 305.08259 7243.5622
1970 1970 304.0858 8712.4796
1980 1980 299.14574 5166.3501
1990 1990 300.07254 10019.769
2000 2000 301.78176 8789.7968
Loop time of 91.2059 on 1 procs for 2000 steps with 2180 atoms
Performance: 1.895 ns/day, 12.667 hours/ns, 21.928 timesteps/s
99.8% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 90.668 | 90.668 | 90.668 | 0.0 | 99.41
Neigh | 0.23231 | 0.23231 | 0.23231 | 0.0 | 0.25
Comm | 0.20819 | 0.20819 | 0.20819 | 0.0 | 0.23
Output | 0.0049558 | 0.0049558 | 0.0049558 | 0.0 | 0.01
Modify | 0.052906 | 0.052906 | 0.052906 | 0.0 | 0.06
Other | | 0.03904 | | | 0.04
Nlocal: 2180.00 ave 2180 max 2180 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 6693.00 ave 6693 max 6693 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 261496.0 ave 261496 max 261496 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 261496
Ave neighs/atom = 119.95229
Neighbor list builds = 25
Dangerous builds = 0
Total wall time: 0:01:31

View File

@ -0,0 +1,293 @@
LAMMPS (8 Apr 2021)
# Coarse-Grained SPC/E Water
variable T equal 300.0
variable rc equal 9.0
variable rcD equal 10.0
units real
boundary p p p
atom_style atomic
dimension 3
newton on
comm_modify vel yes
read_data cg_spce.data
Reading data file ...
orthogonal box = (0.0000000 0.0000000 0.0000000) to (40.310000 40.310000 40.310000)
1 by 2 by 2 MPI processor grid
reading atoms ...
2180 atoms
read_data CPU = 0.005 seconds
pair_style hybrid/overlay table linear 1000 dpd/ext/tstat ${T} ${T} ${rc} 385262
pair_style hybrid/overlay table linear 1000 dpd/ext/tstat 300 ${T} ${rc} 385262
pair_style hybrid/overlay table linear 1000 dpd/ext/tstat 300 300 ${rc} 385262
pair_style hybrid/overlay table linear 1000 dpd/ext/tstat 300 300 9 385262
pair_coeff 1 1 table cg_spce_table.pot VOTCA ${rc}
pair_coeff 1 1 table cg_spce_table.pot VOTCA 9
WARNING: 16 of 351 force values in table VOTCA are inconsistent with -dE/dr.
Should only be flagged at inflection points (../pair_table.cpp:461)
pair_coeff 1 1 dpd/ext/tstat 20.0 10.0 0.5 0.5 ${rcD}
pair_coeff 1 1 dpd/ext/tstat 20.0 10.0 0.5 0.5 10
timestep 1.0
run_style verlet
velocity all create ${T} 68768932
velocity all create 300 68768932
thermo_style custom step time temp press
thermo 10
fix 1 all nve
run 2000
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 7 7 7
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair table, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
(2) pair dpd/ext/tstat, perpetual, copy from (1)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 3.695 | 3.696 | 3.697 Mbytes
Step Time Temp Press
0 0 300 5965.5396
10 10 303.16391 8779.1574
20 20 306.9014 8268.573
30 30 305.84291 9976.0547
40 40 301.20527 8832.3902
50 50 305.72012 8041.0146
60 60 305.1676 7118.8042
70 70 305.01132 9423.9307
80 80 308.10236 10781.423
90 90 309.18703 3637.9961
100 100 305.11814 7726.7672
110 110 298.37346 8575.1602
120 120 304.79786 8910.8048
130 130 309.05401 6351.4839
140 140 304.28367 4805.137
150 150 300.28903 7412.6411
160 160 299.39358 10183.593
170 170 296.80729 5437.1054
180 180 295.2755 8317.0414
190 190 303.25949 8338.3453
200 200 303.24607 9636.5224
210 210 298.56684 10288.264
220 220 293.42999 9001.0482
230 230 293.12497 9083.5194
240 240 291.92847 9659.3388
250 250 299.2202 6328.759
260 260 297.45209 10405.677
270 270 292.12257 7273.9369
280 280 289.81113 8957.8747
290 290 299.06683 6695.3776
300 300 300.75468 6298.5705
310 310 296.26524 7432.4815
320 320 294.21403 9941.7038
330 330 293.01776 4750.2993
340 340 295.22553 4968.3595
350 350 293.95589 9224.5496
360 360 297.94278 8792.0395
370 370 298.99075 5453.7814
380 380 302.1188 6229.2283
390 390 298.48943 8517.5273
400 400 295.3701 11328.394
410 410 287.74238 4058.0382
420 420 288.83732 5706.6773
430 430 298.8242 6178.7142
440 440 304.42682 10138.321
450 450 300.28695 9731.3417
460 460 300.34539 9249.4691
470 470 303.32231 11638.718
480 480 301.46777 4186.402
490 490 292.56069 9184.8386
500 500 297.26162 11766.733
510 510 295.34018 6436.33
520 520 300.16314 9325.3669
530 530 305.00513 5947.6408
540 540 300.88805 5222.7384
550 550 301.56707 6669.1808
560 560 304.89854 10730.053
570 570 299.50424 7956.1042
580 580 301.23382 10192.246
590 590 298.81222 6017.2125
600 600 300.57891 4575.433
610 610 301.95936 6309.7515
620 620 301.09393 5993.6489
630 630 300.47565 4388.7137
640 640 299.31886 9535.6093
650 650 295.06025 7954.5811
660 660 298.72666 8630.7466
670 670 302.53833 5636.1305
680 680 306.32833 12539.149
690 690 296.1951 11345.293
700 700 297.00325 6352.1448
710 710 298.51181 6922.4379
720 720 293.80125 4849.4922
730 730 296.52677 11141.583
740 740 294.15306 3527.8677
750 750 294.74737 8454.0815
760 760 292.53913 8187.9032
770 770 294.37078 7487.5703
780 780 297.50085 9198.7697
790 790 298.37773 8969.0024
800 800 293.29879 6506.6479
810 810 296.58266 8805.7872
820 820 290.85616 5248.8123
830 830 292.29488 5123.8203
840 840 292.77623 8263.5675
850 850 297.88225 6777.7444
860 860 300.01913 10439.087
870 870 295.79578 7318.1322
880 880 301.5994 8242.4774
890 890 306.63208 8090.6106
900 900 303.53759 6831.2666
910 910 300.70481 3811.0498
920 920 299.96274 8351.1573
930 930 299.67435 7046.0534
940 940 310.81742 6887.6925
950 950 305.09984 4811.088
960 960 301.33039 4184.851
970 970 301.19205 6417.6542
980 980 299.6491 7738.2233
990 990 297.33655 9264.0874
1000 1000 302.33418 7166.2751
1010 1010 300.08402 9121.0882
1020 1020 302.82225 6405.7109
1030 1030 304.01683 6944.0839
1040 1040 305.82618 6160.3838
1050 1050 308.12518 4356.0931
1060 1060 307.64811 6954.7245
1070 1070 313.70509 5558.9804
1080 1080 316.09239 7250.6147
1090 1090 310.2845 5441.3722
1100 1100 300.18899 4417.8774
1110 1110 304.02471 5609.1668
1120 1120 303.46016 10355.031
1130 1130 305.68165 6400.913
1140 1140 308.78348 7235.1894
1150 1150 299.30025 9246.4856
1160 1160 302.70799 9866.9536
1170 1170 302.0977 8643.5532
1180 1180 307.15407 8866.4664
1190 1190 305.78146 7562.4911
1200 1200 302.54605 7974.9973
1210 1210 306.14264 9554.2381
1220 1220 308.89843 6219.5361
1230 1230 305.71844 7633.9105
1240 1240 306.51911 7705.4795
1250 1250 304.78473 8590.5595
1260 1260 300.82969 9281.5964
1270 1270 305.9271 4951.1323
1280 1280 310.32728 9446.3989
1290 1290 318.27879 9102.5544
1300 1300 310.45777 5931.5457
1310 1310 304.81268 1214.4291
1320 1320 307.08811 10315.961
1330 1330 306.86917 8584.9658
1340 1340 307.26912 7254.864
1350 1350 310.02754 8508.6256
1360 1360 306.12763 4912.6641
1370 1370 301.67924 6715.8196
1380 1380 298.37239 6149.8821
1390 1390 299.62894 8181.4761
1400 1400 301.60395 6714.4244
1410 1410 297.65752 7035.6575
1420 1420 297.02817 7510.2637
1430 1430 303.59177 10361.937
1440 1440 300.10771 8473.2311
1450 1450 291.21837 6097.9954
1460 1460 291.58663 7729.0841
1470 1470 292.52447 6555.8661
1480 1480 294.48264 6960.0201
1490 1490 298.34869 8044.2321
1500 1500 296.8193 11731.289
1510 1510 296.52073 5452.8935
1520 1520 294.54819 9591.7969
1530 1530 297.36394 5148.5383
1540 1540 289.08137 6057.0981
1550 1550 288.27007 8965.1965
1560 1560 294.84398 8316.9487
1570 1570 299.79573 8760.7322
1580 1580 295.66745 5045.5322
1590 1590 298.14356 7161.1834
1600 1600 297.10402 6529.9938
1610 1610 299.69137 7741.6027
1620 1620 304.93043 11222.109
1630 1630 302.01322 10893.107
1640 1640 295.47422 8400.3124
1650 1650 301.93122 7190.2609
1660 1660 305.02639 6140.5552
1670 1670 302.86047 8651.5366
1680 1680 304.82151 9909.407
1690 1690 300.48426 8428.8845
1700 1700 293.06643 5333.8144
1710 1710 295.43687 9103.4353
1720 1720 298.77208 8162.1053
1730 1730 300.08189 9603.4371
1740 1740 303.16004 10693.291
1750 1750 303.54199 9151.023
1760 1760 300.99281 4641.2985
1770 1770 297.36657 3888.5753
1780 1780 298.32969 7286.2299
1790 1790 297.34183 8975.8956
1800 1800 295.83042 6366.7607
1810 1810 295.92044 9308.4953
1820 1820 298.10087 7117.2369
1830 1830 296.13936 4849.3739
1840 1840 296.5869 8321.4011
1850 1850 296.74513 9530.6806
1860 1860 298.57398 8788.0603
1870 1870 299.12825 6015.4777
1880 1880 301.91639 11706.441
1890 1890 309.85968 10909.493
1900 1900 302.64998 8779.8967
1910 1910 301.62919 9176.3902
1920 1920 300.66238 5369.8681
1930 1930 297.64499 8185.09
1940 1940 296.47852 10188.803
1950 1950 297.802 6679.4466
1960 1960 299.78754 7316.8198
1970 1970 300.09083 6008.9414
1980 1980 297.94119 5615.6403
1990 1990 298.37687 9727.308
2000 2000 296.08394 6400.2746
Loop time of 41.5171 on 4 procs for 2000 steps with 2180 atoms
Performance: 4.162 ns/day, 5.766 hours/ns, 48.173 timesteps/s
99.5% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 38.667 | 38.954 | 39.453 | 4.8 | 93.83
Neigh | 0.10947 | 0.11039 | 0.11153 | 0.3 | 0.27
Comm | 1.8661 | 2.3644 | 2.652 | 19.6 | 5.70
Output | 0.0082644 | 0.0094232 | 0.01281 | 2.0 | 0.02
Modify | 0.024678 | 0.025206 | 0.025888 | 0.3 | 0.06
Other | | 0.05335 | | | 0.13
Nlocal: 545.000 ave 559 max 531 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Nghost: 3619.00 ave 3655 max 3594 min
Histogram: 1 1 0 0 1 0 0 0 0 1
Neighs: 65415.5 ave 66835 max 64310 min
Histogram: 1 0 0 2 0 0 0 0 0 1
Total # of neighbors = 261662
Ave neighs/atom = 120.02844
Neighbor list builds = 26
Dangerous builds = 0
Total wall time: 0:00:41

View File

@ -90,6 +90,8 @@ pair_style coul/slater/long, Evangelos Voyiatzis, evoyiatzis at gmail.com, 26 Fe
pair_style dipole/sf, Mario Orsi, orsimario at gmail.com, 8 Aug 11
pair_style e3b, Steven Strong (U Chicago), stevene.strong at gmail dot com, 16 Apr 19
pair_style drip, Mingjian Wen, University of Minnesota, wenxx151 at umn.edu, 17 Apr 19
pair_style dpd/ext, Martin Svoboda, Karel Sindelka, Martin Lisal, ICPF and UJEP, svobod.martin at gmail dot com, 23 Apr 21
pair_style dpd/ext/tstat, Martin Svoboda, Karel Sindelka, Martin Lisal, ICPF and UJEP , svobod.martin at gmail dot com, 23 Apr 21
pair_style edip, Luca Ferraro, luca.ferraro at caspur.it, 15 Sep 11
pair_style extep, Jaap Kroes (Radboud U), jaapkroes at gmail dot com, 28 Nov 17
pair_style gauss/cut, Axel Kohlmeyer, akohlmey at gmail.com, 1 Dec 11

View File

@ -0,0 +1,496 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Kurt Smith (U Pittsburgh)
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Martin Svoboda (ICPF, UJEP), Martin Lísal (ICPF, UJEP)
------------------------------------------------------------------------- */
#include "pair_dpd_ext.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "memory.h"
#include "neigh_list.h"
#include "neighbor.h"
#include "random_mars.h"
#include "update.h"
#include <cmath>
using namespace LAMMPS_NS;
#define EPSILON 1.0e-10
/* ---------------------------------------------------------------------- */
PairDPDExt::PairDPDExt(LAMMPS *lmp) : Pair(lmp)
{
writedata = 1;
random = nullptr;
}
/* ---------------------------------------------------------------------- */
PairDPDExt::~PairDPDExt()
{
if (allocated) {
memory->destroy(setflag);
memory->destroy(cutsq);
memory->destroy(cut);
memory->destroy(a0);
memory->destroy(gamma);
memory->destroy(gammaT);
memory->destroy(sigma);
memory->destroy(sigmaT);
memory->destroy(ws);
memory->destroy(wsT);
}
if (random) delete random;
}
/* ---------------------------------------------------------------------- */
void PairDPDExt::compute(int eflag, int vflag)
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpairx,fpairy,fpairz,fpair;
double vxtmp,vytmp,vztmp,delvx,delvy,delvz;
double rsq,r,rinv,dot,wd,wdPar,wdPerp,randnum,randnumx,randnumy,randnumz,factor_dpd;
double P[3][3];
int *ilist,*jlist,*numneigh,**firstneigh;
evdwl = 0.0;
ev_init(eflag,vflag);
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double dtinvsqrt = 1.0/sqrt(update->dt);
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
vxtmp = v[i][0];
vytmp = v[i][1];
vztmp = v[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_dpd = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cutsq[itype][jtype]) {
r = sqrt(rsq);
if (r < EPSILON) continue; // r can be 0.0 in DPD systems
rinv = 1.0/r;
delvx = vxtmp - v[j][0];
delvy = vytmp - v[j][1];
delvz = vztmp - v[j][2];
dot = delx*delvx + dely*delvy + delz*delvz;
P[0][0] = 1.0 - delx*delx*rinv*rinv;
P[0][1] = - delx*dely*rinv*rinv;
P[0][2] = - delx*delz*rinv*rinv;
P[1][0] = P[0][1];
P[1][1] = 1.0 - dely*dely*rinv*rinv;
P[1][2] = - dely*delz*rinv*rinv;
P[2][0] = P[0][2];
P[2][1] = P[1][2];
P[2][2] = 1.0 - delz*delz*rinv*rinv;
wd = 1.0 - r/cut[itype][jtype];
wdPar = pow(wd,ws[itype][jtype]);
wdPerp = pow(wd,wsT[itype][jtype]);
randnum = random->gaussian();
randnumx = random->gaussian();
randnumy = random->gaussian();
randnumz = random->gaussian();
// conservative force
fpair = a0[itype][jtype]*wd;
// drag force - parallel
fpair -= gamma[itype][jtype]*wdPar*wdPar*dot*rinv;
// random force - parallel
fpair += sigma[itype][jtype]*wdPar*randnum*dtinvsqrt;
fpairx = fpair*rinv*delx;
fpairy = fpair*rinv*dely;
fpairz = fpair*rinv*delz;
// drag force - perpendicular
fpairx -= gammaT[itype][jtype]*wdPerp*wdPerp*
(P[0][0]*delvx + P[0][1]*delvy + P[0][2]*delvz);
fpairy -= gammaT[itype][jtype]*wdPerp*wdPerp*
(P[1][0]*delvx + P[1][1]*delvy + P[1][2]*delvz);
fpairz -= gammaT[itype][jtype]*wdPerp*wdPerp*
(P[2][0]*delvx + P[2][1]*delvy + P[2][2]*delvz);
// random force - perpendicular
fpairx += sigmaT[itype][jtype]*wdPerp*
(P[0][0]*randnumx + P[0][1]*randnumy + P[0][2]*randnumz)*dtinvsqrt;
fpairy += sigmaT[itype][jtype]*wdPerp*
(P[1][0]*randnumx + P[1][1]*randnumy + P[1][2]*randnumz)*dtinvsqrt;
fpairz += sigmaT[itype][jtype]*wdPerp*
(P[2][0]*randnumx + P[2][1]*randnumy + P[2][2]*randnumz)*dtinvsqrt;
fpairx *= factor_dpd;
fpairy *= factor_dpd;
fpairz *= factor_dpd;
f[i][0] += fpairx;
f[i][1] += fpairy;
f[i][2] += fpairz;
if (newton_pair || j < nlocal) {
f[j][0] -= fpairx;
f[j][1] -= fpairy;
f[j][2] -= fpairz;
}
if (eflag) {
// unshifted eng of conservative term:
// evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]);
// eng shifted to 0.0 at cutoff
evdwl = 0.5*a0[itype][jtype]*cut[itype][jtype] * wd*wd;
evdwl *= factor_dpd;
}
if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,
evdwl,0.0,
fpairx, fpairy, fpairz,
delx,dely,delz);
}
}
}
if (vflag_fdotr) virial_fdotr_compute();
}
/* ----------------------------------------------------------------------
allocate all arrays
------------------------------------------------------------------------- */
void PairDPDExt::allocate()
{
int i,j;
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"pair:setflag");
for (i = 1; i <= n; i++)
for (j = i; j <= n; j++)
setflag[i][j] = 0;
memory->create(cutsq,n+1,n+1,"pair:cutsq");
memory->create(cut,n+1,n+1,"pair:cut");
memory->create(a0,n+1,n+1,"pair:a0");
memory->create(gamma,n+1,n+1,"pair:gamma");
memory->create(gammaT,n+1,n+1,"pair:gammaT");
memory->create(sigma,n+1,n+1,"pair:sigma");
memory->create(sigmaT,n+1,n+1,"pair:sigmaT");
memory->create(ws,n+1,n+1,"pair:ws");
memory->create(wsT,n+1,n+1,"pair:wsT");
for (i = 0; i <= atom->ntypes; i++)
{
for (j = 0; j <= atom->ntypes; j++)
{
sigma[i][j] = gamma[i][j] =sigmaT[i][j] = gammaT[i][j] = 0.0;
ws[i][j] = wsT[i][j] = 1.0;
}
}
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
void PairDPDExt::settings(int narg, char **arg)
{
if (narg != 3) error->all(FLERR,"Illegal pair_style command");
temperature = utils::numeric(FLERR,arg[0],false,lmp);
cut_global = utils::numeric(FLERR,arg[1],false,lmp);
seed = utils::inumeric(FLERR,arg[2],false,lmp);
// initialize Marsaglia RNG with processor-unique seed
if (seed <= 0) error->all(FLERR,"Illegal pair_style command");
delete random;
random = new RanMars(lmp,seed + comm->me);
// reset cutoffs that have been explicitly set
if (allocated) {
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++)
if (setflag[i][j]) {
cut[i][j] = cut_global;
cutsq[i][j] = cut_global*cut_global;
}
}
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairDPDExt::coeff(int narg, char **arg)
{
if (narg < 7 || narg > 8)
error->all(FLERR,"Incorrect args for pair coefficients");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error);
utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error);
double a0_one = utils::numeric(FLERR,arg[2],false,lmp);
double gamma_one = utils::numeric(FLERR,arg[3],false,lmp);
double gammaT_one = utils::numeric(FLERR,arg[4],false,lmp);
double ws_one = utils::numeric(FLERR,arg[5],false,lmp);
double wsT_one = utils::numeric(FLERR,arg[6],false,lmp);
double cut_one = cut_global;
if (narg == 8) cut_one = utils::numeric(FLERR,arg[7],false,lmp);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
a0[i][j] = a0_one;
gamma[i][j] = gamma_one;
gammaT[i][j] = gammaT_one;
ws[i][j] = ws_one;
wsT[i][j] = wsT_one;
cut[i][j] = cut_one;
cutsq[i][j] = cut_one*cut_one;
setflag[i][j] = 1;
count++;
}
}
if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
init specific to this pair style
------------------------------------------------------------------------- */
void PairDPDExt::init_style()
{
if (comm->ghost_velocity == 0)
error->all(FLERR,"Pair dpd requires ghost atoms store velocity");
// if newton off, forces between atoms ij will be double computed
// using different random numbers
if (force->newton_pair == 0 && comm->me == 0) error->warning(FLERR,
"Pair dpd needs newton pair on for momentum conservation");
neighbor->request(this,instance_me);
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairDPDExt::init_one(int i, int j)
{
if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set");
sigma[i][j] = sqrt(2.0*force->boltz*temperature*gamma[i][j]);
sigmaT[i][j] = sqrt(2.0*force->boltz*temperature*gammaT[i][j]);
cut[j][i] = cut[i][j];
cutsq[j][i] = cutsq[i][j];
a0[j][i] = a0[i][j];
gamma[j][i] = gamma[i][j];
gammaT[j][i] = gammaT[i][j];
sigma[j][i] = sigma[i][j];
sigmaT[j][i] = sigmaT[i][j];
ws[j][i] = ws[i][j];
wsT[j][i] = wsT[i][j];
return cut[i][j];
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairDPDExt::write_restart(FILE *fp)
{
write_restart_settings(fp);
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
fwrite(&setflag[i][j],sizeof(int),1,fp);
if (setflag[i][j]) {
fwrite(&a0[i][j],sizeof(double),1,fp);
fwrite(&gamma[i][j],sizeof(double),1,fp);
fwrite(&gammaT[i][j],sizeof(double),1,fp);
fwrite(&ws[i][j],sizeof(double),1,fp);
fwrite(&wsT[i][j],sizeof(double),1,fp);
fwrite(&cut[i][j],sizeof(double),1,fp);
}
}
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairDPDExt::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
if (me == 0) utils::sfread(FLERR,&setflag[i][j],sizeof(int),1,fp,nullptr,error);
MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
if (setflag[i][j]) {
if (me == 0) {
utils::sfread(FLERR,&a0[i][j],sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&gamma[i][j],sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&gammaT[i][j],sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&ws[i][j],sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&wsT[i][j],sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&cut[i][j],sizeof(double),1,fp,nullptr,error);
}
MPI_Bcast(&a0[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&gamma[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&gammaT[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&ws[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&wsT[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world);
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairDPDExt::write_restart_settings(FILE *fp)
{
fwrite(&temperature,sizeof(double),1,fp);
fwrite(&cut_global,sizeof(double),1,fp);
fwrite(&seed,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairDPDExt::read_restart_settings(FILE *fp)
{
if (comm->me == 0) {
utils::sfread(FLERR,&temperature,sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&cut_global,sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&seed,sizeof(int),1,fp,nullptr,error);
utils::sfread(FLERR,&mix_flag,sizeof(int),1,fp,nullptr,error);
}
MPI_Bcast(&temperature,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&seed,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
// initialize Marsaglia RNG with processor-unique seed
// same seed that pair_style command initially specified
if (random) delete random;
random = new RanMars(lmp,seed + comm->me);
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void PairDPDExt::write_data(FILE *fp)
{
for (int i = 1; i <= atom->ntypes; i++)
fprintf(fp,"%d %g %g %g %g %g\n",i,
a0[i][i],gamma[i][i],gammaT[i][i],ws[i][i],wsT[i][i]);
}
/* ----------------------------------------------------------------------
proc 0 writes all pairs to data file
------------------------------------------------------------------------- */
void PairDPDExt::write_data_all(FILE *fp)
{
for (int i = 1; i <= atom->ntypes; i++)
for (int j = i; j <= atom->ntypes; j++)
fprintf(fp,"%d %d %g %g %g %g %g %g\n",i,j,
a0[i][j],gamma[i][j],gammaT[i][j],ws[i][j],wsT[i][j],cut[i][j]);
}
/* ---------------------------------------------------------------------- */
double PairDPDExt::single(int i, int j, int itype, int jtype, double rsq,
double factor_coul, double factor_dpd, double &fforce)
{
double r,rinv,wd,phi;
r = sqrt(rsq);
if (r < EPSILON) {
fforce = 0.0;
return 0.0;
}
rinv = 1.0/r;
wd = 1.0 - r/cut[itype][jtype];
fforce = a0[itype][jtype]*wd * factor_dpd*rinv;
phi = 0.5*a0[itype][jtype]*cut[itype][jtype] * wd*wd;
return factor_dpd*phi;
}

View File

@ -0,0 +1,86 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef PAIR_CLASS
PairStyle(dpd/ext,PairDPDExt)
#else
#ifndef LMP_PAIR_DPD_EXT_H
#define LMP_PAIR_DPD_EXT_H
#include "pair.h"
namespace LAMMPS_NS {
class PairDPDExt : public Pair {
public:
PairDPDExt(class LAMMPS *);
virtual ~PairDPDExt();
virtual void compute(int, int);
virtual void settings(int, char **);
virtual void coeff(int, char **);
void init_style();
double init_one(int, int);
virtual void write_restart(FILE *);
virtual void read_restart(FILE *);
virtual void write_restart_settings(FILE *);
virtual void read_restart_settings(FILE *);
virtual void write_data(FILE *);
virtual void write_data_all(FILE *);
double single(int, int, int, int, double, double, double, double &);
protected:
double cut_global,temperature;
int seed;
double **cut;
double **a0,**gamma,**gammaII,**gammaT;
double **sigma,**sigmaT;
double **ws,**wsT;
class RanMars *random;
void allocate();
};
}
#endif
#endif
/* ERROR/WARNING messages:
E: Illegal ... command
Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line.
E: Incorrect args for pair coefficients
Self-explanatory. Check the input script or data file.
E: Pair dpd requires ghost atoms store velocity
Use the comm_modify vel yes command to enable this.
W: Pair dpd needs newton pair on for momentum conservation
Self-explanatory.
E: All pair coeffs are not set
All pair coefficients must be set in the data file or by the
pair_coeff command before running a simulation.
*/

View File

@ -0,0 +1,376 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Martin Svoboda (ICPF, UJEP), Martin Lísal (ICPF, UJEP)
------------------------------------------------------------------------- */
#include "pair_dpd_ext_tstat.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "neigh_list.h"
#include "random_mars.h"
#include "update.h"
#include <cmath>
using namespace LAMMPS_NS;
#define EPSILON 1.0e-10
/* ---------------------------------------------------------------------- */
PairDPDExtTstat::PairDPDExtTstat(LAMMPS *lmp) : PairDPDExt(lmp)
{
single_enable = 0;
writedata = 1;
}
/* ---------------------------------------------------------------------- */
void PairDPDExtTstat::compute(int eflag, int vflag)
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,fpairx,fpairy,fpairz,fpair;
double vxtmp,vytmp,vztmp,delvx,delvy,delvz;
double rsq,r,rinv,dot,wd,wdPar,wdPerp,randnum,randnumx,randnumy,randnumz,factor_dpd;
double P[3][3];
int *ilist,*jlist,*numneigh,**firstneigh;
ev_init(eflag,vflag);
// adjust sigma if target T is changing
if (t_start != t_stop) {
double delta = update->ntimestep - update->beginstep;
if (delta != 0.0) delta /= update->endstep - update->beginstep;
temperature = t_start + delta * (t_stop-t_start);
double boltz = force->boltz;
for (i = 1; i <= atom->ntypes; i++) {
for (j = i; j <= atom->ntypes; j++) {
sigma[i][j] = sigma[j][i] = sqrt(2.0*boltz*temperature*gamma[i][j]);
sigmaT[i][j] = sigmaT[j][i] = sqrt(2.0*boltz*temperature*gammaT[i][j]);
}
}
}
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
double dtinvsqrt = 1.0/sqrt(update->dt);
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
vxtmp = v[i][0];
vytmp = v[i][1];
vztmp = v[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_dpd = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cutsq[itype][jtype]) {
r = sqrt(rsq);
if (r < EPSILON) continue; // r can be 0.0 in DPD systems
rinv = 1.0/r;
delvx = vxtmp - v[j][0];
delvy = vytmp - v[j][1];
delvz = vztmp - v[j][2];
dot = delx*delvx + dely*delvy + delz*delvz;
P[0][0] = 1.0 - delx*delx*rinv*rinv;
P[0][1] = - delx*dely*rinv*rinv;
P[0][2] = - delx*delz*rinv*rinv;
P[1][0] = P[0][1];
P[1][1] = 1.0 - dely*dely*rinv*rinv;
P[1][2] = - dely*delz*rinv*rinv;
P[2][0] = P[0][2];
P[2][1] = P[1][2];
P[2][2] = 1.0 - delz*delz*rinv*rinv;
wd = 1.0 - r/cut[itype][jtype];
wdPar = pow(wd,ws[itype][jtype]);
wdPerp = pow(wd,wsT[itype][jtype]);
randnum = random->gaussian();
randnumx = random->gaussian();
randnumy = random->gaussian();
randnumz = random->gaussian();
// drag force - parallel
fpair = -gamma[itype][jtype]*wdPar*wdPar*dot*rinv;
// random force - parallel
fpair += sigma[itype][jtype]*wdPar*randnum*dtinvsqrt;
fpairx = fpair*rinv*delx;
fpairy = fpair*rinv*dely;
fpairz = fpair*rinv*delz;
// drag force - perpendicular
fpairx -= gammaT[itype][jtype]*wdPerp*wdPerp*
(P[0][0]*delvx + P[0][1]*delvy + P[0][2]*delvz);
fpairy -= gammaT[itype][jtype]*wdPerp*wdPerp*
(P[1][0]*delvx + P[1][1]*delvy + P[1][2]*delvz);
fpairz -= gammaT[itype][jtype]*wdPerp*wdPerp*
(P[2][0]*delvx + P[2][1]*delvy + P[2][2]*delvz);
// random force - perpendicular
fpairx += sigmaT[itype][jtype]*wdPerp*
(P[0][0]*randnumx + P[0][1]*randnumy + P[0][2]*randnumz)*dtinvsqrt;
fpairy += sigmaT[itype][jtype]*wdPerp*
(P[1][0]*randnumx + P[1][1]*randnumy + P[1][2]*randnumz)*dtinvsqrt;
fpairz += sigmaT[itype][jtype]*wdPerp*
(P[2][0]*randnumx + P[2][1]*randnumy + P[2][2]*randnumz)*dtinvsqrt;
fpairx *= factor_dpd;
fpairy *= factor_dpd;
fpairz *= factor_dpd;
f[i][0] += fpairx;
f[i][1] += fpairy;
f[i][2] += fpairz;
if (newton_pair || j < nlocal) {
f[j][0] -= fpairx;
f[j][1] -= fpairy;
f[j][2] -= fpairz;
}
if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,
0.0,0.0,
fpairx, fpairy, fpairz,
delx,dely,delz);
}
}
}
if (vflag_fdotr) virial_fdotr_compute();
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
void PairDPDExtTstat::settings(int narg, char **arg)
{
if (narg != 4) error->all(FLERR,"Illegal pair_style command");
t_start = utils::numeric(FLERR,arg[0],false,lmp);
t_stop = utils::numeric(FLERR,arg[1],false,lmp);
cut_global = utils::numeric(FLERR,arg[2],false,lmp);
seed = utils::inumeric(FLERR,arg[3],false,lmp);
temperature = t_start;
// initialize Marsaglia RNG with processor-unique seed
if (seed <= 0) error->all(FLERR,"Illegal pair_style command");
delete random;
random = new RanMars(lmp,seed + comm->me);
// reset cutoffs that have been explicitly set
if (allocated) {
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++)
if (setflag[i][j]) cut[i][j] = cut_global;
}
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairDPDExtTstat::coeff(int narg, char **arg)
{
if (narg < 6 || narg > 7)
error->all(FLERR,"Incorrect args for pair coefficients");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error);
utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error);
double a0_one = 0.0;
double gamma_one = utils::numeric(FLERR,arg[2],false,lmp);
double gammaT_one = utils::numeric(FLERR,arg[3],false,lmp);
double ws_one = utils::numeric(FLERR,arg[4],false,lmp);
double wsT_one = utils::numeric(FLERR,arg[5],false,lmp);
double cut_one = cut_global;
if (narg == 7) cut_one = utils::numeric(FLERR,arg[6],false,lmp);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
a0[i][j] = a0_one;
gamma[i][j] = gamma_one;
gammaT[i][j] = gammaT_one;
ws[i][j] = ws_one;
wsT[i][j] = wsT_one;
cut[i][j] = cut_one;
setflag[i][j] = 1;
count++;
}
}
if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairDPDExtTstat::write_restart(FILE *fp)
{
write_restart_settings(fp);
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
fwrite(&setflag[i][j],sizeof(int),1,fp);
if (setflag[i][j]) {
fwrite(&gamma[i][j],sizeof(double),1,fp);
fwrite(&gammaT[i][j],sizeof(double),1,fp);
fwrite(&ws[i][j],sizeof(double),1,fp);
fwrite(&wsT[i][j],sizeof(double),1,fp);
fwrite(&cut[i][j],sizeof(double),1,fp);
}
}
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairDPDExtTstat::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
if (me == 0) utils::sfread(FLERR,&setflag[i][j],sizeof(int),1,fp,nullptr,error);
MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
if (setflag[i][j]) {
if (me == 0) {
utils::sfread(FLERR,&gamma[i][j],sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&gammaT[i][j],sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&ws[i][j],sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&wsT[i][j],sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&cut[i][j],sizeof(double),1,fp,nullptr,error);
}
MPI_Bcast(&gamma[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&gammaT[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&ws[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&wsT[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world);
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairDPDExtTstat::write_restart_settings(FILE *fp)
{
fwrite(&t_start,sizeof(double),1,fp);
fwrite(&t_stop,sizeof(double),1,fp);
fwrite(&cut_global,sizeof(double),1,fp);
fwrite(&seed,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairDPDExtTstat::read_restart_settings(FILE *fp)
{
if (comm->me == 0) {
utils::sfread(FLERR,&t_start,sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&t_stop,sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&cut_global,sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&seed,sizeof(int),1,fp,nullptr,error);
utils::sfread(FLERR,&mix_flag,sizeof(int),1,fp,nullptr,error);
}
MPI_Bcast(&t_start,1,MPI_DOUBLE,0,world);
MPI_Bcast(&t_stop,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&seed,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
temperature = t_start;
// initialize Marsaglia RNG with processor-unique seed
// same seed that pair_style command initially specified
if (random) delete random;
random = new RanMars(lmp,seed + comm->me);
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void PairDPDExtTstat::write_data(FILE *fp)
{
for (int i = 1; i <= atom->ntypes; i++)
fprintf(fp,"%d %g %g %g %g\n",i,gamma[i][i],gammaT[i][i],ws[i][i],wsT[i][i]);
}
/* ----------------------------------------------------------------------
proc 0 writes all pairs to data file
------------------------------------------------------------------------- */
void PairDPDExtTstat::write_data_all(FILE *fp)
{
for (int i = 1; i <= atom->ntypes; i++)
for (int j = i; j <= atom->ntypes; j++)
fprintf(fp,"%d %d %g %g %g %g %g\n",i,j,
gamma[i][j],gammaT[i][j],ws[i][j],wsT[i][j],cut[i][j]);
}

View File

@ -0,0 +1,62 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef PAIR_CLASS
PairStyle(dpd/ext/tstat,PairDPDExtTstat)
#else
#ifndef LMP_PAIR_DPD_EXT_TSTAT_H
#define LMP_PAIR_DPD_EXT_TSTAT_H
#include "pair_dpd_ext.h"
namespace LAMMPS_NS {
class PairDPDExtTstat : public PairDPDExt {
public:
PairDPDExtTstat(class LAMMPS *);
~PairDPDExtTstat() {}
void compute(int, int);
void settings(int, char **);
void coeff(int, char **);
void write_restart(FILE *);
void read_restart(FILE *);
void write_restart_settings(FILE *);
void read_restart_settings(FILE *);
void write_data(FILE *);
void write_data_all(FILE *);
protected:
double t_start,t_stop;
};
}
#endif
#endif
/* ERROR/WARNING messages:
E: Illegal ... command
Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line.
E: Incorrect args for pair coefficients
Self-explanatory. Check the input script or data file.
*/