Made requested changes to fix propel/self. Last thing to change would be to re-introduce the types keyword into this fix if that was deemed to be best.

This commit is contained in:
Sam Cameron
2020-12-21 10:58:27 +00:00
parent 129210c7a0
commit 5a3cb38705
7 changed files with 170 additions and 161 deletions

View File

@ -8,22 +8,19 @@ Syntax
.. parsed-literal:: .. parsed-literal::
fix ID group-ID propel/self magnitude keyword values fix ID group-ID propel/self mode magnitude keyword values
* ID, group-ID are documented in :doc:`fix <fix>` command * ID, group-ID are documented in :doc:`fix <fix>` command
* propel/self = style name of this fix command * propel/self = style name of this fix command
* mode = *dipole* or *velocity* or *quat*
* magnitude = magnitude of self-propulsion force * magnitude = magnitude of self-propulsion force
* one (and only one) keyword/value pair must be appended to args * zero or one keyword/value pairs may be appended
* keyword = *dipole* or *velocity* or *quat* * keyword = *qvector*
.. parsed-literal:: .. parsed-literal::
*dipole* value = none = apply force along dipole direction *qvector* value = direction of force in ellipsoid frame
*velocity* value = none = apply force along velocity direction *sx*, *sy*, *sz* = components of *qvector*
*quat* values = direction vector *sx* and *sy* and *sz*
*sx* = x component of force direction in ellipsoid frame
*sy* = y component of force direction in ellipsoid frame
*sz* = z component of force direction in ellipsoid frame
Examples Examples
@ -31,9 +28,9 @@ Examples
.. code-block:: LAMMPS .. code-block:: LAMMPS
fix propel/self all 40.0 dipole fix active all propel/self dipole 40.0
fix propel/self all 10.0 velocity fix active all propel/self velocity 10.0
fix propel/self all 15.7 quat 1.0 0.0 0.0 fix active all propel/self quat 15.7 qvector 1.0 0.0 0.0
Description Description
""""""""""" """""""""""
@ -50,7 +47,7 @@ is the magnitude of the force, and :math:`e_i` is the vector direction
of the force. The specification of :math:`e_i` is based on which of the of the force. The specification of :math:`e_i` is based on which of the
three keywords (*dipole* or *velocity* or *quat*) one selects. three keywords (*dipole* or *velocity* or *quat*) one selects.
For keyword *dipole*, :math:`e_i` is just equal to For mode *dipole*, :math:`e_i` is just equal to
the dipole vectors of the atoms in the group. Therefore, if the dipoles the dipole vectors of the atoms in the group. Therefore, if the dipoles
are not unit vectors, the :math:`e_i` will not be unit vectors. are not unit vectors, the :math:`e_i` will not be unit vectors.
@ -66,21 +63,31 @@ are not unit vectors, the :math:`e_i` will not be unit vectors.
all the dipole magnitudes to 1.0 unless you have a good reason not to all the dipole magnitudes to 1.0 unless you have a good reason not to
(see the :doc:`set <set>` command on how to do this). (see the :doc:`set <set>` command on how to do this).
For keyword *velocity*, :math:`e_i` points in the direction For mode *velocity*, :math:`e_i` points in the direction
of the current velocity (a unit-vector). This can be interpreted as a of the current velocity (a unit-vector). This can be interpreted as a
velocity-dependent friction, as proposed by e.g. :ref:`(Erdmann) <Erdmann1>`. velocity-dependent friction, as proposed by e.g. :ref:`(Erdmann) <Erdmann1>`.
For keyword *quat*, :math:`e_i` points in the direction of the unit For mode *quat*, :math:`e_i` points in the direction of a unit
vector defined by its arguments *sx*, *sy*, and *sz*, which are vector, oriented in the coordinate frame of the ellipsoidal particles,
themselves defined within the coordinate frame of the atom's which defaults to point along the x-direction. This default behaviour
can be changed by via the *quatvec* keyword.
The optional *quatvec* keyword specifies the direction of self-propulsion
via a unit vector (sx,sy,sz). The arguments *sx*, *sy*, and *sz*, are
defined within the coordinate frame of the atom's
ellipsoid. For instance, for an ellipsoid with long axis along ellipsoid. For instance, for an ellipsoid with long axis along
its x-direction, if one wanted the self-propulsion force to also its x-direction, if one wanted the self-propulsion force to also
be along this axis, set *sx* equal to 1 and *sy*, *sz* both equal be along this axis, set *sx* equal to 1 and *sy*, *sz* both equal
to zero. For *quat*, :math:`e_i` will always be a unit vector, to zero. This keyword may only be specified for mode *quat*.
so multiplying all three arguments *sx*, *sy*, and *sz* by a
positive scalar will not change the self-propulsion force .. note::
(multiplying by a negative scalar will change the sign of the
force). In using keyword *quatvec*, the three arguments *sx*,
*sy*, and *sz* will be automatically normalised to components
of a unit vector internally to avoid users having to explicitly
do so themselves. Therefore, in mode *quat*, the vectors :math:`e_i`
will always be of unit length.
Along with adding a force contribution, this fix can also Along with adding a force contribution, this fix can also
contribute to the virial (pressure) of the system, defined as contribute to the virial (pressure) of the system, defined as
@ -89,10 +96,10 @@ contribute to the virial (pressure) of the system, defined as
boundary conditions. See :ref:`(Winkler) <Winkler1>` for a boundary conditions. See :ref:`(Winkler) <Winkler1>` for a
discussion of this active pressure contribution. discussion of this active pressure contribution.
For keywords *dipole* and *quat*, this fix is by default For modes *dipole* and *quat*, this fix is by default
included in pressure computations. included in pressure computations.
For keyword *velocity*, this fix is by default not included For mode *velocity*, this fix is by default not included
in pressure computations. in pressure computations.

View File

@ -31,7 +31,7 @@ neigh_modify every 1 delay 1 check yes
pair_style none pair_style none
fix step all brownian ${gamma_t} ${D_t} ${seed} fix step all brownian ${gamma_t} ${D_t} ${seed}
fix vel all propel/self ${fp} velocity fix vel all propel/self velocity ${fp}
fix 2 all enforce2d fix 2 all enforce2d
fix_modify vel virial yes fix_modify vel virial yes

View File

@ -41,7 +41,7 @@ pair_modify shift yes
# overdamped brownian dynamics time-step # overdamped brownian dynamics time-step
fix step all brownian/sphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} dipole fix step all brownian/sphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} dipole
# self-propulsion force along the dipole direction # self-propulsion force along the dipole direction
fix activity all propel/self ${fp} dipole fix activity all propel/self dipole ${fp}
fix 2 all enforce2d fix 2 all enforce2d

View File

@ -30,7 +30,7 @@ pair_style none
# overdamped brownian dynamics time-step # overdamped brownian dynamics time-step
fix step all brownian/sphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} dipole fix step all brownian/sphere ${gamma_t} ${gamma_r} ${D_t} ${D_r} ${seed} dipole
# self-propulsion force along the dipole direction # self-propulsion force along the dipole direction
fix activity all propel/self ${fp} dipole fix activity all propel/self dipole ${fp}
compute press all pressure NULL virial compute press all pressure NULL virial

View File

@ -10,10 +10,10 @@ Lattice spacing in x,y,z = 1.5811388 1.5811388 1.5811388
region box block -16 16 -16 16 -0.2 0.2 region box block -16 16 -16 16 -0.2 0.2
create_box 1 box create_box 1 box
Created orthogonal box = (-25.298221 -25.298221 -0.31622777) to (25.298221 25.298221 0.31622777) Created orthogonal box = (-25.298221 -25.298221 -0.31622777) to (25.298221 25.298221 0.31622777)
2 by 2 by 1 MPI processor grid 1 by 1 by 1 MPI processor grid
create_atoms 1 box create_atoms 1 box
Created 1024 atoms Created 1024 atoms
create_atoms CPU = 0.001 seconds create_atoms CPU = 0.002 seconds
mass * 1.0 mass * 1.0
set type * dipole/random ${seed} 1.0 set type * dipole/random ${seed} 1.0
set type * dipole/random 1974019 1.0 set type * dipole/random 1974019 1.0
@ -41,8 +41,8 @@ fix step all brownian/sphere 1 1 1 ${D_r} ${seed} dipole
fix step all brownian/sphere 1 1 1 3 ${seed} dipole fix step all brownian/sphere 1 1 1 3 ${seed} dipole
fix step all brownian/sphere 1 1 1 3 1974019 dipole fix step all brownian/sphere 1 1 1 3 1974019 dipole
# self-propulsion force along the dipole direction # self-propulsion force along the dipole direction
fix activity all propel/self ${fp} dipole fix activity all propel/self dipole ${fp}
fix activity all propel/self 4 dipole fix activity all propel/self dipole 4
fix 2 all enforce2d fix 2 all enforce2d
@ -66,34 +66,34 @@ Neighbor list info ...
pair build: half/bin/newtoff pair build: half/bin/newtoff
stencil: half/bin/2d/newtoff stencil: half/bin/2d/newtoff
bin: standard bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.052 | 5.052 | 5.052 Mbytes Per MPI rank memory allocation (min/avg/max) = 5.066 | 5.066 | 5.066 Mbytes
Step Temp E_pair c_press Step Temp E_pair c_press
0 1 0 -0.53979198 0 1 0 -0.53979198
50000 1.0371295e+10 0 -0.542818 50000 1.0902879e+10 0 -0.53710405
Loop time of 2.25396 on 4 procs for 50000 steps with 1024 atoms Loop time of 6.3887 on 1 procs for 50000 steps with 1024 atoms
Performance: 0.192 tau/day, 22183.200 timesteps/s Performance: 0.068 tau/day, 7826.319 timesteps/s
99.8% CPU use with 4 MPI tasks x 1 OpenMP threads 100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 0.1034 | 0.10382 | 0.10438 | 0.1 | 4.61 Pair | 0.34323 | 0.34323 | 0.34323 | 0.0 | 5.37
Neigh | 0 | 0 | 0 | 0.0 | 0.00 Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.26698 | 0.26833 | 0.26924 | 0.2 | 11.90 Comm | 0.070232 | 0.070232 | 0.070232 | 0.0 | 1.10
Output | 2.2284e-05 | 2.4926e-05 | 3.2332e-05 | 0.0 | 0.00 Output | 2.5077e-05 | 2.5077e-05 | 2.5077e-05 | 0.0 | 0.00
Modify | 1.7222 | 1.7237 | 1.727 | 0.1 | 76.48 Modify | 5.8232 | 5.8232 | 5.8232 | 0.0 | 91.15
Other | | 0.1581 | | | 7.01 Other | | 0.152 | | | 2.38
Nlocal: 256.000 ave 256 max 256 min Nlocal: 1024.00 ave 1024 max 1024 min
Histogram: 4 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 105.000 ave 105 max 105 min Nghost: 201.000 ave 201 max 201 min
Histogram: 4 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 544.000 ave 544 max 544 min Neighs: 2112.00 ave 2112 max 2112 min
Histogram: 4 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 2176 Total # of neighbors = 2112
Ave neighs/atom = 2.1250000 Ave neighs/atom = 2.0625000
Neighbor list builds = 0 Neighbor list builds = 0
Dangerous builds = 0 Dangerous builds = 0
reset_timestep 0 reset_timestep 0
@ -111,53 +111,53 @@ thermo 10000
# main run # main run
run 200000 run 200000
Per MPI rank memory allocation (min/avg/max) = 5.427 | 5.427 | 5.427 Mbytes Per MPI rank memory allocation (min/avg/max) = 5.441 | 5.441 | 5.441 Mbytes
Step Temp E_pair c_msd[1] c_msd[2] c_msd[3] c_msd[4] c_press Step Temp E_pair c_msd[1] c_msd[2] c_msd[3] c_msd[4] c_press
0 1.0371295e+10 0 0 0 0 0 -0.542818 0 1.0902879e+10 0 0 0 0 0 -0.53710405
10000 107356.09 0.079828495 0.19584264 0.19679822 0 0.39264086 0.00078740793 10000 103498.6 0.087662767 0.18719065 0.2007338 0 0.38792445 0.16080254
20000 101692.44 0.11317533 0.40847364 0.42097802 0 0.82945167 0.74111888 20000 104785.56 0.12719481 0.4197551 0.40722743 0 0.82698253 0.5007164
30000 105763.55 0.10261852 0.68303669 0.66125751 0 1.3442942 0.71112533 30000 103183.73 0.1126518 0.67800477 0.67921667 0 1.3572214 0.36634317
40000 105127.29 0.12371743 0.97990144 0.94005552 0 1.919957 1.0574552 40000 102912.87 0.092584777 0.96234448 0.97188884 0 1.9342333 0.46170129
50000 101579.58 0.12771813 1.3059069 1.2364468 0 2.5423537 1.059263 50000 103516.68 0.12761757 1.2381642 1.3203398 0 2.558504 0.85712805
60000 104914.36 0.12055843 1.6215593 1.525488 0 3.1470473 0.79873537 60000 104999.77 0.14482924 1.5437166 1.6177103 0 3.1614269 1.1403162
70000 106629.18 0.1278745 1.9639958 1.8682794 0 3.8322752 0.91950208 70000 103925.7 0.11302021 1.886 1.9262949 0 3.8122949 1.1056086
80000 103286.54 0.13927689 2.3201565 2.2373383 0 4.5574948 1.1875034 80000 105000.14 0.14502228 2.205833 2.2668945 0 4.4727275 1.0757792
90000 106451.61 0.093479681 2.6287902 2.5753347 0 5.2041249 1.0861163 90000 105980.8 0.12089413 2.515801 2.647111 0 5.162912 1.1160525
100000 102199.72 0.13269425 2.9127976 2.9369237 0 5.8497214 1.4841998 100000 106557.86 0.10934038 2.7977098 2.8965145 0 5.6942242 0.56901933
110000 105229.73 0.10594209 3.1798718 3.3495317 0 6.5294035 1.5444784 110000 104241.46 0.12719985 3.1612652 3.2283956 0 6.3896608 0.95100999
120000 106262.36 0.11902575 3.6267452 3.7188125 0 7.3455578 1.3366518 120000 101910.56 0.12002691 3.5844099 3.5366227 0 7.1210326 1.2526653
130000 109388.12 0.10562576 3.929973 4.0226942 0 7.9526672 1.324534 130000 104435.28 0.10695039 3.8328815 3.8286503 0 7.6615318 1.6198184
140000 107697.35 0.13028752 4.231893 4.3780995 0 8.6099925 1.7406167 140000 104864.99 0.11226471 4.1822059 4.285915 0 8.4681209 1.5190757
150000 103928.72 0.12278994 4.5826286 4.7578662 0 9.3404948 1.3024003 150000 103209.43 0.11229036 4.430069 4.5491143 0 8.9791833 1.1568204
160000 103370.23 0.11391216 4.8767011 5.1181189 0 9.99482 1.4325241 160000 106692.61 0.11151476 4.7593714 5.0322819 0 9.7916533 1.2337266
170000 103821.53 0.11163256 5.153318 5.3785963 0 10.531914 1.4569115 170000 105232.19 0.12039818 5.0665907 5.3612901 0 10.427881 1.3881139
180000 106824.99 0.13225083 5.4080929 5.7399804 0 11.148073 1.334984 180000 107126.86 0.10793969 5.4129878 5.6391008 0 11.052089 1.6691607
190000 101794.6 0.10632938 5.7384925 6.080955 0 11.819448 0.81285422 190000 103814.36 0.096916503 5.7355093 5.9557837 0 11.691293 1.3863335
200000 102128.67 0.13703498 6.0414673 6.4511058 0 12.492573 0.42904128 200000 103976.84 0.10928015 6.1871603 6.3393786 0 12.526539 1.1687077
Loop time of 9.60419 on 4 procs for 200000 steps with 1024 atoms Loop time of 27.4513 on 1 procs for 200000 steps with 1024 atoms
Performance: 17992.140 tau/day, 20824.236 timesteps/s Performance: 6294.793 tau/day, 7285.640 timesteps/s
100.0% CPU use with 4 MPI tasks x 1 OpenMP threads 100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 0.71756 | 0.75121 | 0.79008 | 3.0 | 7.82 Pair | 3.2525 | 3.2525 | 3.2525 | 0.0 | 11.85
Neigh | 0.018158 | 0.018773 | 0.019357 | 0.3 | 0.20 Neigh | 0.054678 | 0.054678 | 0.054678 | 0.0 | 0.20
Comm | 1.0469 | 1.0597 | 1.0738 | 1.2 | 11.03 Comm | 0.26582 | 0.26582 | 0.26582 | 0.0 | 0.97
Output | 0.00051435 | 0.00057078 | 0.00070838 | 0.0 | 0.01 Output | 0.0006103 | 0.0006103 | 0.0006103 | 0.0 | 0.00
Modify | 6.8012 | 6.9883 | 7.1513 | 4.9 | 72.76 Modify | 23.265 | 23.265 | 23.265 | 0.0 | 84.75
Other | | 0.7857 | | | 8.18 Other | | 0.6131 | | | 2.23
Nlocal: 256.000 ave 265 max 240 min Nlocal: 1024.00 ave 1024 max 1024 min
Histogram: 1 0 0 0 0 0 1 0 0 2 Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 88.5000 ave 91 max 87 min Nghost: 166.000 ave 166 max 166 min
Histogram: 1 0 2 0 0 0 0 0 0 1 Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 678.500 ave 713 max 597 min Neighs: 2634.00 ave 2634 max 2634 min
Histogram: 1 0 0 0 0 0 0 0 1 2 Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 2714 Total # of neighbors = 2634
Ave neighs/atom = 2.6503906 Ave neighs/atom = 2.5722656
Neighbor list builds = 241 Neighbor list builds = 238
Dangerous builds = 0 Dangerous builds = 0
Total wall time: 0:00:11 Total wall time: 0:00:33

View File

@ -10,10 +10,10 @@ Lattice spacing in x,y,z = 1.3572088 1.3572088 1.3572088
region box block -8 8 -8 8 -8 8 region box block -8 8 -8 8 -8 8
create_box 1 box create_box 1 box
Created orthogonal box = (-10.857670 -10.857670 -10.857670) to (10.857670 10.857670 10.857670) Created orthogonal box = (-10.857670 -10.857670 -10.857670) to (10.857670 10.857670 10.857670)
2 by 1 by 2 MPI processor grid 1 by 1 by 1 MPI processor grid
create_atoms 1 box create_atoms 1 box
Created 4096 atoms Created 4096 atoms
create_atoms CPU = 0.002 seconds create_atoms CPU = 0.003 seconds
mass * 1.0 mass * 1.0
set type * dipole/random ${seed} 1.0 set type * dipole/random ${seed} 1.0
set type * dipole/random 1974019 1.0 set type * dipole/random 1974019 1.0
@ -31,8 +31,8 @@ fix step all brownian/sphere 1 1 1 ${D_r} ${seed} dipole
fix step all brownian/sphere 1 1 1 3 ${seed} dipole fix step all brownian/sphere 1 1 1 3 ${seed} dipole
fix step all brownian/sphere 1 1 1 3 1974019 dipole fix step all brownian/sphere 1 1 1 3 1974019 dipole
# self-propulsion force along the dipole direction # self-propulsion force along the dipole direction
fix activity all propel/self ${fp} dipole fix activity all propel/self dipole ${fp}
fix activity all propel/self 4 dipole fix activity all propel/self dipole 4
compute press all pressure NULL virial compute press all pressure NULL virial
@ -45,31 +45,31 @@ thermo 50001
run 50000 run 50000
WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (src/atom.cpp:2118) WARNING: No pairwise cutoff or binsize set. Atom sorting therefore disabled. (src/atom.cpp:2118)
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:167) WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:167)
Per MPI rank memory allocation (min/avg/max) = 4.319 | 4.319 | 4.319 Mbytes Per MPI rank memory allocation (min/avg/max) = 4.362 | 4.362 | 4.362 Mbytes
Step Temp E_pair c_press Step Temp E_pair c_press
0 1 0 0.068021726 0 1 0 0.068021726
50000 1.046425e+10 0 0.067505633 50000 1.0486812e+10 0 0.068203091
Loop time of 7.83903 on 4 procs for 50000 steps with 4096 atoms Loop time of 25.3706 on 1 procs for 50000 steps with 4096 atoms
Performance: 0.055 tau/day, 6378.340 timesteps/s Performance: 0.017 tau/day, 1970.786 timesteps/s
97.9% CPU use with 4 MPI tasks x 1 OpenMP threads 100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00 Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00 Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.50238 | 0.51891 | 0.53617 | 1.7 | 6.62 Comm | 0.31005 | 0.31005 | 0.31005 | 0.0 | 1.22
Output | 2.6343e-05 | 3.6075e-05 | 4.6997e-05 | 0.0 | 0.00 Output | 3.2633e-05 | 3.2633e-05 | 3.2633e-05 | 0.0 | 0.00
Modify | 6.9536 | 6.9732 | 7.0105 | 0.8 | 88.95 Modify | 24.471 | 24.471 | 24.471 | 0.0 | 96.45
Other | | 0.3469 | | | 4.43 Other | | 0.5897 | | | 2.32
Nlocal: 1024.00 ave 1024 max 1024 min Nlocal: 4096.00 ave 4096 max 4096 min
Histogram: 4 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 353.000 ave 353 max 353 min Nghost: 817.000 ave 817 max 817 min
Histogram: 4 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0.00000 ave 0 max 0 min Neighs: 0.00000 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0 Total # of neighbors = 0
Ave neighs/atom = 0.0000000 Ave neighs/atom = 0.0000000
@ -96,46 +96,46 @@ thermo 10000
# main run # main run
run 120000 run 120000
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:167) WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:167)
Per MPI rank memory allocation (min/avg/max) = 4.694 | 4.694 | 4.694 Mbytes Per MPI rank memory allocation (min/avg/max) = 4.737 | 4.737 | 4.737 Mbytes
Step Temp E_pair c_msd[1] c_msd[2] c_msd[3] c_msd[4] c_press Step Temp E_pair c_msd[1] c_msd[2] c_msd[3] c_msd[4] c_press
0 1.046425e+10 0 0 0 0 0 0.067505633 0 1.0486812e+10 0 0 0 0 0 0.068203091
10000 106340.56 0 0.2469318 0.23662295 0.2441413 0.72769605 0.19939966 10000 104209.87 0 0.25428952 0.2512451 0.23617807 0.74171269 0.1910208
20000 104620.27 0 0.55429324 0.5231436 0.54976641 1.6272032 0.26601423 20000 104433.46 0 0.55611319 0.57499464 0.54362634 1.6747342 0.27977792
30000 106130.45 0 0.87562668 0.84813496 0.89321299 2.6169746 0.30836996 30000 104615.53 0 0.88377871 0.8933002 0.88683731 2.6639162 0.31709969
40000 105773.31 0 1.2262635 1.1899278 1.2626926 3.6788838 0.35392219 40000 105930.5 0 1.2301515 1.262995 1.2479624 3.7411089 0.26149988
50000 103804.88 0 1.5851624 1.5645815 1.6434185 4.7931624 0.33326997 50000 105556.39 0 1.5798848 1.6402779 1.6392277 4.8593905 0.34401188
60000 105746.45 0 1.9928016 1.9347072 1.9837329 5.9112417 0.2550878 60000 104644.58 0 1.9782384 1.9902061 2.0327974 6.0012419 0.26709167
70000 104500.3 0 2.3269429 2.2774077 2.3368821 6.9412326 0.25218225 70000 104314.31 0 2.3681872 2.3695505 2.4241916 7.1619294 0.24191407
80000 105381.46 0 2.7114959 2.6937299 2.7171132 8.122339 0.36940892 80000 105700 0 2.7109374 2.7434271 2.8309194 8.2852839 0.28355159
90000 104542.79 0 3.0828648 3.084417 3.0783207 9.2456025 0.36106481 90000 103411.61 0 3.1023448 3.0881218 3.1599155 9.350382 0.3070844
100000 104246.75 0 3.4635513 3.5105066 3.4545226 10.42858 0.3712313 100000 105432.12 0 3.4853878 3.4372177 3.5153198 10.437925 0.28141015
110000 103099.55 0 3.8471061 3.9389997 3.8220676 11.608173 0.38466185 110000 105723.04 0 3.8405786 3.7967805 3.8738332 11.511192 0.33248553
120000 103098.45 0 4.2014598 4.3456831 4.1888659 12.736009 0.36710217 120000 104734.31 0 4.2454301 4.1714561 4.2234474 12.640334 0.3603781
Loop time of 22.8893 on 4 procs for 120000 steps with 4096 atoms Loop time of 63.7803 on 1 procs for 120000 steps with 4096 atoms
Performance: 4529.619 tau/day, 5242.615 timesteps/s Performance: 1625.581 tau/day, 1881.459 timesteps/s
100.0% CPU use with 4 MPI tasks x 1 OpenMP threads 100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown: MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total Section | min time | avg time | max time |%varavg| %total
--------------------------------------------------------------- ---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00 Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0.0049489 | 0.0050479 | 0.0050978 | 0.1 | 0.02 Neigh | 0.013032 | 0.013032 | 0.013032 | 0.0 | 0.02
Comm | 0.082752 | 0.084491 | 0.085332 | 0.4 | 0.37 Comm | 0.093045 | 0.093045 | 0.093045 | 0.0 | 0.15
Output | 0.00054352 | 0.0006034 | 0.00064793 | 0.0 | 0.00 Output | 0.00069845 | 0.00069845 | 0.00069845 | 0.0 | 0.00
Modify | 21.069 | 21.521 | 21.964 | 7.0 | 94.02 Modify | 62.279 | 62.279 | 62.279 | 0.0 | 97.65
Other | | 1.278 | | | 5.58 Other | | 1.394 | | | 2.19
Nlocal: 1024.00 ave 1050 max 1010 min Nlocal: 4096.00 ave 4096 max 4096 min
Histogram: 2 0 0 1 0 0 0 0 0 1 Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0.00000 ave 0 max 0 min Nghost: 0.00000 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0.00000 ave 0 max 0 min Neighs: 0.00000 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0 Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0 Total # of neighbors = 0
Ave neighs/atom = 0.0000000 Ave neighs/atom = 0.0000000
Neighbor list builds = 2169 Neighbor list builds = 2174
Dangerous builds = 0 Dangerous builds = 0
# if you want to check that rotational diffusion is behaving as expected, # if you want to check that rotational diffusion is behaving as expected,
@ -147,4 +147,4 @@ Dangerous builds = 0
#dump_modify 1 first yes sort id #dump_modify 1 first yes sort id
#run 120000 #run 120000
Total wall time: 0:00:30 Total wall time: 0:01:29

View File

@ -16,8 +16,7 @@
Thanks to Liesbeth Janssen @ Eindhoven University for useful discussions! Thanks to Liesbeth Janssen @ Eindhoven University for useful discussions!
Current maintainer: Sam Cameron @ University of Bristol Current maintainer: Sam Cameron @ University of Bristol
----------------------------------------------------------------------- */ ----------------------------------------------------------------------- */
#include <math.h> #include <math.h>
@ -49,44 +48,47 @@ FixPropelSelf::FixPropelSelf(LAMMPS *lmp, int narg, char **arg) :
virial_flag = 1; virial_flag = 1;
if (narg < 5) if (narg != 5 && narg != 9)
error->all(FLERR,"Illegal fix propel/self command"); error->all(FLERR,"Illegal fix propel/self command");
magnitude = utils::numeric(FLERR,arg[3],false,lmp);
if (strcmp(arg[4],"velocity") == 0) { if (strcmp(arg[3],"velocity") == 0) {
mode = VELOCITY; mode = VELOCITY;
thermo_virial = 0; thermo_virial = 0;
if (narg != 5) { } else if (strcmp(arg[3],"dipole") == 0) {
error->all(FLERR,"Illegal fix propel/self command");
}
} else if (strcmp(arg[4],"dipole") == 0) {
mode = DIPOLE; mode = DIPOLE;
thermo_virial = 1; thermo_virial = 1;
if (narg != 5) { } else if (strcmp(arg[3],"quat") == 0) {
error->all(FLERR,"Illegal fix propel/self command");
}
} else if (strcmp(arg[4],"quat") == 0) {
mode = QUAT; mode = QUAT;
thermo_virial = 1; thermo_virial = 1;
if (narg != 8) {
error->all(FLERR,"Illegal fix propel/self command");
} else {
sx = utils::numeric(FLERR,arg[5],false,lmp);
sy = utils::numeric(FLERR,arg[6],false,lmp);
sz = utils::numeric(FLERR,arg[7],false,lmp);
double qnorm = sqrt(sx*sx + sy*sy + sz*sz);
sx = sx/qnorm;
sy = sy/qnorm;
sz = sz/qnorm;
}
} else { } else {
error->all(FLERR,"Illegal fix propel/self command"); error->all(FLERR,"Illegal fix propel/self command");
} }
magnitude = utils::numeric(FLERR,arg[4],false,lmp);
// check for keyword
if (narg == 9) {
if (mode != QUAT) {
error->all(FLERR,"Illegal fix propel/self command");
}
if (strcmp(arg[5],"qvector") == 0) {
sx = utils::numeric(FLERR,arg[6],false,lmp);
sy = utils::numeric(FLERR,arg[7],false,lmp);
sz = utils::numeric(FLERR,arg[8],false,lmp);
double snorm = sqrt(sx*sx + sy*sy + sz*sz);
sx = sx/snorm;
sy = sy/snorm;
sz = sz/snorm;
} else {
error->all(FLERR,"Illegal fix propel/self command");
}
} else {
sx = 1.0;
sy = 0.0;
sz = 0.0;
}
} }