forked from lijiext/lammps
Merge pull request #2710 from msvbd/dpd_extended
Generalized DPD pair styles: dpd/ext and dpd/ext/tstat
This commit is contained in:
commit
6f5881e151
|
@ -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>`
|
||||
|
|
|
@ -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).
|
|
@ -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
|
||||
|
|
|
@ -2542,6 +2542,7 @@ ppn
|
|||
pppm
|
||||
prd
|
||||
Prakash
|
||||
Praprotnik
|
||||
pre
|
||||
Pre
|
||||
prec
|
||||
|
|
|
@ -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
|
@ -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
|
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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.
|
||||
|
||||
*/
|
|
@ -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]);
|
||||
}
|
|
@ -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.
|
||||
|
||||
*/
|
Loading…
Reference in New Issue