Adding examples and misc bug fixes
This commit is contained in:
@ -50,17 +50,17 @@ has a magnitude of
|
||||
|
||||
.. math::
|
||||
|
||||
F_r = K_r (r - r_0)
|
||||
f_r = k_r (r - r_0)
|
||||
|
||||
where :math:`K_r` is a stiffness and :math:`r` is the current distance and
|
||||
where :math:`k_r` is a stiffness and :math:`r` is the current distance and
|
||||
:math:`r_0` is the initial distance between the two particles.
|
||||
|
||||
A tangential force is applied perpendicular to the normal direction
|
||||
which is proportional to the tangential shear displacement with a stiffness
|
||||
of :math:`K_s`. This tangential force also induces a torque.
|
||||
of :math:`k_s`. This tangential force also induces a torque.
|
||||
In addition, bending and twisting torques are also applied to particles
|
||||
which are proportional to angular bending and twisting displacements with
|
||||
stiffnesses of :math`K_b` and :math:`K_t', respectively.
|
||||
stiffnesses of :math`k_b` and :math:`k_t', respectively.
|
||||
Details on the calculations of shear displacements and angular displacements
|
||||
can be found in :ref:`(Wang) <Wang2009>` and :ref:`(Wang and Mora) <WangMora2009b>`.
|
||||
|
||||
@ -68,13 +68,13 @@ Bonds will break under sufficient stress. A breaking criteria is calculated
|
||||
|
||||
.. math::
|
||||
|
||||
B = \alpha(r, r_0) \frac{F_r}{F_{r,c}} + \frac{F_s}{F_{s,c}} +
|
||||
\frac{\tau_b}{\tau_{b,c}} + \frac{\tau_t}{\tau_{t,c}}
|
||||
B = \alpha(r, r_0) \frac{f_r}{f_{r,c}} + \frac{|f_s|}{f_{s,c}} +
|
||||
\frac{|\tau_b|}{\tau_{b,c}} + \frac{|\tau_t|}{\tau_{t,c}}
|
||||
|
||||
where :math:`F_s` is the magnitude of the shear force and
|
||||
:math:`\tau_b` and :math:`\tau_t` are the magnitudes of the bending and
|
||||
twisting forces, respectively. The corresponding variables :math:`F_{r,c}`
|
||||
:math:`F_{s,c}`, :math:`\tau_{b,c}`, and :math:`\tau_{t,c}` are critical
|
||||
where :math:`|f_s|` is the magnitude of the shear force and
|
||||
:math:`|\tau_b|` and :math:`|\tau_t|` are the magnitudes of the bending and
|
||||
twisting forces, respectively. The corresponding variables :math:`f_{r,c}`
|
||||
:math:`f_{s,c}`, :math:`\tau_{b,c}`, and :math:`\tau_{t,c}` are critical
|
||||
limits to each force or torque. The term :math:`\alpha` is simply one in
|
||||
extension and zero in compression such that the normal force component
|
||||
does not contribute to the breaking criteria in compression.
|
||||
@ -85,7 +85,7 @@ torques are no longer computed.
|
||||
After computing the base magnitudes of the forces and torques, they are
|
||||
all multiplied by an extra factor :math:`w` to smoothly interpolate
|
||||
forces and torques to zero as the bond breaks. This term is calculated
|
||||
as :math:`w = (1.0 - B)^2`.
|
||||
as :math:`w = (1.0 - B^4)`.
|
||||
|
||||
Finally, additional damping forces and torques are applied to the two
|
||||
particles. A force is applied proportional to the difference in the
|
||||
@ -110,12 +110,12 @@ The following coefficients must be defined for each bond type via the
|
||||
the data file or restart files read by the :doc:`read_data <read_data>`
|
||||
or :doc:`read_restart <read_restart>` commands:
|
||||
|
||||
* :math:`K_r` (force/distance units)
|
||||
* :math:`K_s` (force/distance units)
|
||||
* :math:`K_t` (force units)
|
||||
* :math:`K_b` (force units)
|
||||
* :math:`F_{r,c}` (force units)
|
||||
* :math:`F_{s,c}` (force units)
|
||||
* :math:`k_r` (force/distance units)
|
||||
* :math:`k_s` (force/distance units)
|
||||
* :math:`k_t` (force units)
|
||||
* :math:`k_b` (force units)
|
||||
* :math:`f_{r,c}` (force units)
|
||||
* :math:`f_{s,c}` (force units)
|
||||
* :math:`\tau_{b,c}` (force*distance units)
|
||||
* :math:`\tau_{t,c}` (force*distance units)
|
||||
* :math:`\gamma_n` (force/velocity units)
|
||||
|
||||
52
examples/bpm/impact/impact_bpm.lmp
Normal file
52
examples/bpm/impact/impact_bpm.lmp
Normal file
@ -0,0 +1,52 @@
|
||||
units lj
|
||||
dimension 3
|
||||
boundary m m m
|
||||
atom_style sphere/bpm
|
||||
special_bonds lj 0.0 1.0 1.0 coul 0.0 1.0 1.0
|
||||
newton on off
|
||||
comm_modify vel yes cutoff 2.6
|
||||
lattice fcc 1.0
|
||||
region box block -5 15 -20 20 -20 20
|
||||
create_box 1 box bond/types 2 extra/bond/per/atom 20 extra/special/per/atom 50
|
||||
|
||||
region disk cylinder x 0.0 0.0 20.0 -0.5 0.5
|
||||
create_atoms 1 region disk
|
||||
group plate region disk
|
||||
|
||||
region ball sphere 8.0 0.0 0.0 6.0
|
||||
create_atoms 1 region ball
|
||||
group projectile region ball
|
||||
|
||||
displace_atoms all random 0.1 0.1 0.1 134598738
|
||||
|
||||
neighbor 1.0 bin
|
||||
pair_style gran/hooke/history 1.0 NULL 0.5 NULL 0.1 1
|
||||
bond_style bpm/rotational store/local 2 time id1 id2
|
||||
pair_coeff 1 1
|
||||
bond_coeff 1 1.0 0.2 0.02 0.02 0.05 0.01 0.005 0.005 0.1 0.02 0.002 0.002
|
||||
bond_coeff 2 1.0 0.2 0.02 0.02 0.20 0.04 0.020 0.020 0.1 0.02 0.002 0.002
|
||||
|
||||
fix 1 all nve/sphere/bpm
|
||||
fix 2 all store/local 100 3
|
||||
fix 3 all update/special/bonds
|
||||
|
||||
create_bonds many plate plate 1 0.0 1.5
|
||||
create_bonds many projectile projectile 2 0.0 1.5
|
||||
change_box all boundary s s s
|
||||
|
||||
neighbor 0.3 bin
|
||||
special_bonds lj 0.0 1.0 1.0 coul 1.0 1.0 1.0
|
||||
|
||||
velocity projectile set -0.05 0.0 0.0
|
||||
compute nbond all nbond/atom
|
||||
compute tbond all reduce sum c_nbond
|
||||
|
||||
timestep 0.05
|
||||
thermo_style custom step ke pe pxx pyy pzz c_tbond
|
||||
thermo 100
|
||||
#dump 1 all custom 100 atomDump id radius x y z c_nbond
|
||||
|
||||
dump 2 all local 100 brokenDump f_2[1] f_2[2] f_2[3]
|
||||
dump_modify 2 header no
|
||||
|
||||
run 6000
|
||||
202
examples/bpm/impact/log.30Jul2021.pour.g++1.4
Normal file
202
examples/bpm/impact/log.30Jul2021.pour.g++1.4
Normal file
@ -0,0 +1,202 @@
|
||||
LAMMPS (30 Jul 2021)
|
||||
units lj
|
||||
dimension 3
|
||||
boundary m m m
|
||||
atom_style sphere/bpm
|
||||
special_bonds lj 0.0 1.0 1.0 coul 0.0 1.0 1.0
|
||||
newton on off
|
||||
comm_modify vel yes cutoff 2.6
|
||||
lattice fcc 1.0
|
||||
Lattice spacing in x,y,z = 1.5874011 1.5874011 1.5874011
|
||||
region box block -5 15 -20 20 -20 20
|
||||
create_box 1 box bond/types 2 extra/bond/per/atom 20 extra/special/per/atom 50
|
||||
Created orthogonal box = (-7.9370053 -31.748021 -31.748021) to (23.811016 31.748021 31.748021)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
|
||||
region disk cylinder x 0.0 0.0 20.0 -0.5 0.5
|
||||
create_atoms 1 region disk
|
||||
Created 7527 atoms
|
||||
using lattice units in orthogonal box = (-7.9370053 -31.748021 -31.748021) to (23.811016 31.748021 31.748021)
|
||||
create_atoms CPU = 0.002 seconds
|
||||
group plate region disk
|
||||
7527 atoms in group plate
|
||||
|
||||
region ball sphere 8.0 0.0 0.0 6.0
|
||||
create_atoms 1 region ball
|
||||
Created 3589 atoms
|
||||
using lattice units in orthogonal box = (-7.9370053 -31.748021 -31.748021) to (23.811016 31.748021 31.748021)
|
||||
create_atoms CPU = 0.001 seconds
|
||||
group projectile region ball
|
||||
3589 atoms in group projectile
|
||||
|
||||
displace_atoms all random 0.1 0.1 0.1 134598738
|
||||
Displacing atoms ...
|
||||
|
||||
neighbor 1.0 bin
|
||||
pair_style gran/hooke/history 1.0 NULL 0.5 NULL 0.1 1
|
||||
bond_style bpm/rotational store/local 2 time id1 id2
|
||||
pair_coeff 1 1
|
||||
bond_coeff 1 1.0 0.2 0.02 0.02 0.05 0.01 0.005 0.005 0.1 0.02 0.002 0.002
|
||||
bond_coeff 2 1.0 0.2 0.02 0.02 0.20 0.04 0.020 0.020 0.1 0.02 0.002 0.002
|
||||
|
||||
fix 1 all nve/sphere/bpm
|
||||
fix 2 all store/local 100 3
|
||||
fix 3 all update/special/bonds
|
||||
|
||||
create_bonds many plate plate 1 0.0 1.5
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 2
|
||||
ghost atom cutoff = 2.6
|
||||
binsize = 1, bins = 32 64 64
|
||||
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||
(1) command create_bonds, occasional
|
||||
attributes: full, newton on
|
||||
pair build: full/bin
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
(2) pair gran/hooke/history, perpetual
|
||||
attributes: half, newton on, size, history
|
||||
pair build: half/size/bin/newton
|
||||
stencil: half/bin/3d
|
||||
bin: standard
|
||||
Added 38551 bonds, new total = 38551
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 1 1
|
||||
special bond factors coul: 0 1 1
|
||||
15 = max # of 1-2 neighbors
|
||||
101 = max # of special neighbors
|
||||
special bonds CPU = 0.001 seconds
|
||||
create_bonds many projectile projectile 2 0.0 1.5
|
||||
Added 21869 bonds, new total = 60420
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 1 1
|
||||
special bond factors coul: 0 1 1
|
||||
16 = max # of 1-2 neighbors
|
||||
101 = max # of special neighbors
|
||||
special bonds CPU = 0.002 seconds
|
||||
change_box all boundary s s s
|
||||
Changing box ...
|
||||
|
||||
neighbor 0.3 bin
|
||||
special_bonds lj 0.0 1.0 1.0 coul 1.0 1.0 1.0
|
||||
|
||||
velocity projectile set -0.05 0.0 0.0
|
||||
compute nbond all nbond/atom
|
||||
compute tbond all reduce sum c_nbond
|
||||
|
||||
timestep 0.05
|
||||
thermo_style custom step ke pe pxx pyy pzz c_tbond
|
||||
thermo 100
|
||||
dump 1 all custom 100 atomDump id radius x y z c_nbond
|
||||
|
||||
dump 2 all local 100 brokenDump f_2[1] f_2[2] f_2[3]
|
||||
dump_modify 2 header no
|
||||
|
||||
run 6000
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 1.3
|
||||
ghost atom cutoff = 2.6
|
||||
binsize = 0.65, bins = 36 97 97
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair gran/hooke/history, perpetual
|
||||
attributes: half, newton on, size, history
|
||||
pair build: half/size/bin/newton
|
||||
stencil: half/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 34.27 | 34.28 | 34.28 Mbytes
|
||||
Step KinEng PotEng Pxx Pyy Pzz c_tbond
|
||||
0 0.00053248439 -5.4354084 0.00012848545 -1.0639387e-19 1.5819554e-19 10.870817
|
||||
100 0.00053248439 -5.4354084 0.00013017373 1.1334839e-12 1.784281e-12 10.870817
|
||||
200 0.00053248439 -5.4354084 0.00013279102 1.6787387e-12 5.4953548e-13 10.870817
|
||||
300 0.00053248439 -5.4354084 0.00013459514 3.0577302e-12 -1.2088316e-12 10.870817
|
||||
400 0.00053248439 -5.4354084 0.00013739515 9.7326931e-13 1.1562543e-12 10.870817
|
||||
500 0.0005311195 -5.4353511 0.00013532545 -1.8468866e-06 -1.6585907e-06 10.870817
|
||||
600 0.00051833989 -5.4288362 7.1725873e-05 -1.6444182e-05 -1.9715516e-05 10.860022
|
||||
700 0.00050552886 -5.3985398 -2.3212715e-05 -1.3937832e-05 -1.9091149e-05 10.805955
|
||||
800 0.00050518224 -5.3616112 8.2515921e-05 2.6973287e-05 2.0513255e-05 10.735516
|
||||
900 0.00050396335 -5.3458995 0.00019263348 -3.7564641e-05 -4.5902247e-05 10.699172
|
||||
1000 0.00049399705 -5.3356803 8.3780211e-05 -3.900811e-05 -3.7974569e-05 10.677852
|
||||
1100 0.00047949984 -5.3177445 -3.3039707e-05 7.3302691e-05 9.1425255e-05 10.645196
|
||||
1200 0.0004778277 -5.2918722 2.5525662e-05 -7.3957522e-06 -1.0428816e-06 10.596168
|
||||
1300 0.00047175855 -5.2622229 0.00016622071 -7.5895427e-05 -7.3668463e-05 10.536884
|
||||
1400 0.00047346655 -5.2357068 0.00013088251 3.8629925e-05 4.7370005e-05 10.484257
|
||||
1500 0.00047030222 -5.2110028 2.0138342e-05 0.00014344934 0.00014572537 10.43289
|
||||
1600 0.00047120889 -5.1944302 8.0308725e-05 9.7652665e-05 9.2786939e-05 10.397265
|
||||
1700 0.00046169345 -5.1800484 0.00015698427 -1.2415417e-05 -2.2822524e-05 10.370457
|
||||
1800 0.00045838981 -5.1581008 6.4666951e-05 -2.044593e-05 -3.1699628e-05 10.327726
|
||||
1900 0.00045723383 -5.1435986 7.4830972e-06 2.8528283e-05 9.5685497e-06 10.29615
|
||||
2000 0.00045822947 -5.1339093 8.8355461e-05 2.4391936e-05 2.6856807e-06 10.276268
|
||||
2100 0.00045635704 -5.123239 0.00014447351 -1.885824e-05 -2.5038419e-05 10.252789
|
||||
2200 0.0004531016 -5.1193556 4.9062089e-05 -4.1290134e-05 -2.8125502e-05 10.245682
|
||||
2300 0.00044750986 -5.1059583 -1.3106261e-05 -6.3125644e-05 -3.3287217e-05 10.221303
|
||||
2400 0.00044828631 -5.08466 9.1580692e-05 -3.8583903e-05 -5.1373805e-05 10.177942
|
||||
2500 0.00044674619 -5.0736124 0.00011856396 4.6266072e-06 -1.5907979e-05 10.153203
|
||||
2600 0.00044727275 -5.0614096 5.295308e-05 6.0578952e-05 5.7167864e-05 10.128553
|
||||
2700 0.00044110051 -5.0507956 1.8440804e-05 5.4883922e-05 6.3982178e-05 10.106153
|
||||
2800 0.00043633042 -5.0426937 8.1816485e-05 -1.5431256e-06 -1.855006e-05 10.08996
|
||||
2900 0.00043176823 -5.0356307 0.00012046457 4.4651701e-05 2.7620283e-06 10.075387
|
||||
3000 0.00043218951 -5.027846 3.2574549e-05 7.4433525e-05 4.6834269e-05 10.059554
|
||||
3100 0.00043256828 -5.0161104 3.3101063e-05 4.6551359e-05 5.6531167e-05 10.036164
|
||||
3200 0.0004332929 -5.0068366 8.9512897e-05 -5.7060048e-06 -2.5891142e-06 10.018172
|
||||
3300 0.00043157298 -5.0008275 8.4139723e-05 -3.6940688e-05 -5.1910847e-05 10.005218
|
||||
3400 0.000431398 -4.9965161 2.5625084e-05 1.1433716e-05 6.4926012e-06 9.9965815
|
||||
3500 0.00043011473 -4.9928073 2.7095736e-05 -7.7339585e-06 7.844574e-06 9.9891148
|
||||
3600 0.00042888594 -4.9847529 7.7453653e-05 -4.6984476e-05 -3.5038838e-05 9.9747211
|
||||
3700 0.00042753057 -4.9765311 6.8775078e-05 -3.1077337e-05 -3.3804378e-05 9.9585282
|
||||
3800 0.00042500059 -4.9705379 1.4686991e-05 -2.1799517e-05 -1.2214392e-05 9.9471033
|
||||
3900 0.00042443518 -4.9635965 2.9590319e-05 -7.5174838e-06 9.4138716e-06 9.9336092
|
||||
4000 0.00042354431 -4.9575067 7.497612e-05 -2.241558e-05 -1.7795282e-05 9.9216445
|
||||
4100 0.00042603308 -4.937097 4.8886365e-05 -1.065802e-05 -2.4723829e-05 9.8824217
|
||||
4200 0.00042476916 -4.926145 1.9200413e-05 1.0927038e-05 3.1855248e-06 9.8600216
|
||||
4300 0.00042485728 -4.918146 3.0086129e-05 -8.6292641e-06 2.1921266e-06 9.8440986
|
||||
4400 0.00042494366 -4.9099091 6.2777705e-05 -5.4921818e-06 -7.6169646e-06 9.8263764
|
||||
4500 0.0004275409 -4.8995178 4.7617152e-05 2.1335231e-06 1.1579137e-06 9.8055056
|
||||
4600 0.00042662895 -4.8820208 1.084188e-05 -1.5696264e-06 1.1310734e-05 9.7706909
|
||||
4700 0.00042734689 -4.8725198 3.7425941e-05 -4.439827e-06 1.13299e-05 9.7511695
|
||||
4800 0.00042900821 -4.8540514 5.4751797e-05 -1.1417464e-05 -8.8084486e-06 9.7147355
|
||||
4900 0.00043023872 -4.8363433 3.3053643e-05 3.2468406e-06 -6.4727375e-06 9.6776718
|
||||
5000 0.00043199875 -4.8198092 1.8345516e-05 8.4946117e-06 5.6309681e-06 9.6456459
|
||||
5100 0.00044223594 -4.7778052 3.0243074e-05 -5.0316681e-06 -3.9518237e-06 9.5634221
|
||||
5200 0.00044479909 -4.7640293 4.8598154e-05 -6.7947105e-06 -1.5950295e-05 9.5343649
|
||||
5300 0.0004454718 -4.755521 2.7021591e-05 4.8540854e-06 -5.1116404e-06 9.5168226
|
||||
5400 0.00044509902 -4.7442744 1.5098441e-05 9.1872595e-06 1.0269456e-05 9.4952321
|
||||
5500 0.00044706883 -4.7308865 3.2631779e-05 1.097946e-06 5.8901266e-06 9.4690536
|
||||
5600 0.00045084112 -4.7115078 3.7164777e-05 -2.2594948e-06 -5.1676349e-06 9.4311803
|
||||
5700 0.00045327828 -4.6989042 2.2566508e-05 2.2741586e-06 8.6663706e-07 9.404552
|
||||
5800 0.00046103079 -4.6780119 1.4582664e-05 1.2169813e-06 8.2506998e-06 9.3626304
|
||||
5900 0.00046315911 -4.6539134 2.7960455e-05 -5.7750919e-06 1.1483488e-08 9.313692
|
||||
6000 0.00046381574 -4.6376345 3.2506838e-05 -1.1407228e-07 -5.8332064e-06 9.2804066
|
||||
Loop time of 26.8573 on 4 procs for 6000 steps with 11116 atoms
|
||||
|
||||
Performance: 965099.761 tau/day, 223.403 timesteps/s
|
||||
98.4% CPU use with 4 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.24862 | 0.26655 | 0.28715 | 3.1 | 0.99
|
||||
Bond | 18.756 | 20.055 | 21.432 | 25.3 | 74.67
|
||||
Neigh | 0.68191 | 0.68601 | 0.69029 | 0.4 | 2.55
|
||||
Comm | 1.6547 | 3.1706 | 4.5875 | 69.7 | 11.81
|
||||
Output | 0.3381 | 0.33879 | 0.34058 | 0.2 | 1.26
|
||||
Modify | 2.0658 | 2.1974 | 2.3512 | 7.6 | 8.18
|
||||
Other | | 0.1428 | | | 0.53
|
||||
|
||||
Nlocal: 2779.00 ave 3444 max 2189 min
|
||||
Histogram: 1 0 1 0 0 0 1 0 0 1
|
||||
Nghost: 1160.25 ave 1335 max 985 min
|
||||
Histogram: 1 0 1 0 0 0 0 1 0 1
|
||||
Neighs: 10709.5 ave 13715 max 8243 min
|
||||
Histogram: 2 0 0 0 0 0 0 1 0 1
|
||||
|
||||
Total # of neighbors = 42838
|
||||
Ave neighs/atom = 3.8537244
|
||||
Ave special neighs/atom = 9.2786974
|
||||
Neighbor list builds = 402
|
||||
Dangerous builds = 0
|
||||
|
||||
Total wall time: 0:00:26
|
||||
1090
examples/bpm/pour/log.30Jul2021.pour.g++.1
Normal file
1090
examples/bpm/pour/log.30Jul2021.pour.g++.1
Normal file
File diff suppressed because it is too large
Load Diff
36
examples/bpm/pour/pour_bpm.lmp
Normal file
36
examples/bpm/pour/pour_bpm.lmp
Normal file
@ -0,0 +1,36 @@
|
||||
units lj
|
||||
dimension 3
|
||||
boundary m m m
|
||||
atom_style sphere/bpm
|
||||
special_bonds lj 0.0 1.0 1.0 coul 1.0 1.0 1.0
|
||||
newton on off
|
||||
comm_modify vel yes cutoff 3.3
|
||||
region box block -15 15 -15 15 0 60.0
|
||||
create_box 1 box bond/types 1 extra/bond/per/atom 15 extra/special/per/atom 50
|
||||
|
||||
molecule my_mol "rect.mol"
|
||||
region wall_cyl cylinder z 0.0 0.0 10.0 EDGE EDGE side in
|
||||
region dropzone cylinder z 0.0 0.0 10.0 40.0 50.0 side in
|
||||
|
||||
pair_style gran/hertz/history 1.0 NULL 0.5 NULL 0.1 1
|
||||
bond_style bpm/rotational
|
||||
pair_coeff 1 1
|
||||
bond_coeff 1 1.0 0.2 0.01 0.01 2.0 0.4 0.02 0.02 0.2 0.04 0.002 0.002
|
||||
|
||||
compute nbond all nbond/atom
|
||||
compute tbond all reduce sum c_nbond
|
||||
compute_modify thermo_temp dynamic/dof yes
|
||||
|
||||
fix 1 all wall/gran hertz/history 1.0 NULL 0.5 NULL 0.1 1 zplane 0.0 NULL
|
||||
fix 2 all wall/gran/region hertz/history 1.0 NULL 0.5 NULL 0.1 1 region wall_cyl
|
||||
fix 3 all gravity 1e-4 vector 0 0 -1
|
||||
fix 4 all deposit 40 0 1500 712511343 mol my_mol region dropzone near 2.0 vz -0.05 -0.05
|
||||
fix 5 all nve/sphere/bpm
|
||||
fix 6 all update/special/bonds
|
||||
|
||||
timestep 0.05
|
||||
thermo_style custom step ke pe pxx pyy pzz c_tbond
|
||||
thermo 100
|
||||
#dump 1 all custom 500 atomDump id radius x y z c_nbond mol
|
||||
|
||||
run 100000
|
||||
568
examples/bpm/pour/rect.mol
Normal file
568
examples/bpm/pour/rect.mol
Normal file
@ -0,0 +1,568 @@
|
||||
#Made with create_mol.py
|
||||
|
||||
63 atoms
|
||||
297 bonds
|
||||
|
||||
Coords
|
||||
#ID x y z
|
||||
1 0.0 0.0 0.0
|
||||
2 0.7348518971806154 0.7348518971806154 0.0
|
||||
3 0.7348518971806154 0.0 0.7348518971806154
|
||||
4 0.0 0.7348518971806154 0.7348518971806154
|
||||
5 1.4697037943612308 0.0 0.0
|
||||
6 1.4697037943612308 0.7348518971806154 0.7348518971806154
|
||||
7 0.0 1.4697037943612308 0.0
|
||||
8 0.7348518971806154 1.4697037943612308 0.7348518971806154
|
||||
9 1.4697037943612308 1.4697037943612308 0.0
|
||||
10 0.0 0.0 1.4697037943612308
|
||||
11 0.7348518971806154 0.7348518971806154 1.4697037943612308
|
||||
12 0.7348518971806154 0.0 2.204555691541846
|
||||
13 0.0 0.7348518971806154 2.204555691541846
|
||||
14 1.4697037943612308 0.0 1.4697037943612308
|
||||
15 1.4697037943612308 0.7348518971806154 2.204555691541846
|
||||
16 0.0 1.4697037943612308 1.4697037943612308
|
||||
17 0.7348518971806154 1.4697037943612308 2.204555691541846
|
||||
18 1.4697037943612308 1.4697037943612308 1.4697037943612308
|
||||
19 0.0 0.0 2.9394075887224616
|
||||
20 0.7348518971806154 0.7348518971806154 2.9394075887224616
|
||||
21 0.7348518971806154 0.0 3.674259485903077
|
||||
22 0.0 0.7348518971806154 3.674259485903077
|
||||
23 1.4697037943612308 0.0 2.9394075887224616
|
||||
24 1.4697037943612308 0.7348518971806154 3.674259485903077
|
||||
25 0.0 1.4697037943612308 2.9394075887224616
|
||||
26 0.7348518971806154 1.4697037943612308 3.674259485903077
|
||||
27 1.4697037943612308 1.4697037943612308 2.9394075887224616
|
||||
28 0.0 0.0 4.409111383083692
|
||||
29 0.7348518971806154 0.7348518971806154 4.409111383083692
|
||||
30 0.7348518971806154 0.0 5.143963280264308
|
||||
31 0.0 0.7348518971806154 5.143963280264308
|
||||
32 1.4697037943612308 0.0 4.409111383083692
|
||||
33 1.4697037943612308 0.7348518971806154 5.143963280264308
|
||||
34 0.0 1.4697037943612308 4.409111383083692
|
||||
35 0.7348518971806154 1.4697037943612308 5.143963280264308
|
||||
36 1.4697037943612308 1.4697037943612308 4.409111383083692
|
||||
37 0.0 0.0 5.878815177444923
|
||||
38 0.7348518971806154 0.7348518971806154 5.878815177444923
|
||||
39 0.7348518971806154 0.0 6.613667074625538
|
||||
40 0.0 0.7348518971806154 6.613667074625538
|
||||
41 1.4697037943612308 0.0 5.878815177444923
|
||||
42 1.4697037943612308 0.7348518971806154 6.613667074625538
|
||||
43 0.0 1.4697037943612308 5.878815177444923
|
||||
44 0.7348518971806154 1.4697037943612308 6.613667074625538
|
||||
45 1.4697037943612308 1.4697037943612308 5.878815177444923
|
||||
46 0.0 0.0 7.348518971806154
|
||||
47 0.7348518971806154 0.7348518971806154 7.348518971806154
|
||||
48 0.7348518971806154 0.0 8.08337086898677
|
||||
49 0.0 0.7348518971806154 8.08337086898677
|
||||
50 1.4697037943612308 0.0 7.348518971806154
|
||||
51 1.4697037943612308 0.7348518971806154 8.08337086898677
|
||||
52 0.0 1.4697037943612308 7.348518971806154
|
||||
53 0.7348518971806154 1.4697037943612308 8.08337086898677
|
||||
54 1.4697037943612308 1.4697037943612308 7.348518971806154
|
||||
55 0.0 0.0 8.818222766167384
|
||||
56 0.7348518971806154 0.7348518971806154 8.818222766167384
|
||||
57 0.7348518971806154 0.0 9.553074663348
|
||||
58 0.0 0.7348518971806154 9.553074663348
|
||||
59 1.4697037943612308 0.0 8.818222766167384
|
||||
60 1.4697037943612308 0.7348518971806154 9.553074663348
|
||||
61 0.0 1.4697037943612308 8.818222766167384
|
||||
62 0.7348518971806154 1.4697037943612308 9.553074663348
|
||||
63 1.4697037943612308 1.4697037943612308 8.818222766167384
|
||||
|
||||
Types
|
||||
#ID type
|
||||
1 1
|
||||
2 1
|
||||
3 1
|
||||
4 1
|
||||
5 1
|
||||
6 1
|
||||
7 1
|
||||
8 1
|
||||
9 1
|
||||
10 1
|
||||
11 1
|
||||
12 1
|
||||
13 1
|
||||
14 1
|
||||
15 1
|
||||
16 1
|
||||
17 1
|
||||
18 1
|
||||
19 1
|
||||
20 1
|
||||
21 1
|
||||
22 1
|
||||
23 1
|
||||
24 1
|
||||
25 1
|
||||
26 1
|
||||
27 1
|
||||
28 1
|
||||
29 1
|
||||
30 1
|
||||
31 1
|
||||
32 1
|
||||
33 1
|
||||
34 1
|
||||
35 1
|
||||
36 1
|
||||
37 1
|
||||
38 1
|
||||
39 1
|
||||
40 1
|
||||
41 1
|
||||
42 1
|
||||
43 1
|
||||
44 1
|
||||
45 1
|
||||
46 1
|
||||
47 1
|
||||
48 1
|
||||
49 1
|
||||
50 1
|
||||
51 1
|
||||
52 1
|
||||
53 1
|
||||
54 1
|
||||
55 1
|
||||
56 1
|
||||
57 1
|
||||
58 1
|
||||
59 1
|
||||
60 1
|
||||
61 1
|
||||
62 1
|
||||
63 1
|
||||
|
||||
Diameters
|
||||
#ID diameter
|
||||
1 1
|
||||
2 1
|
||||
3 1
|
||||
4 1
|
||||
5 1
|
||||
6 1
|
||||
7 1
|
||||
8 1
|
||||
9 1
|
||||
10 1
|
||||
11 1
|
||||
12 1
|
||||
13 1
|
||||
14 1
|
||||
15 1
|
||||
16 1
|
||||
17 1
|
||||
18 1
|
||||
19 1
|
||||
20 1
|
||||
21 1
|
||||
22 1
|
||||
23 1
|
||||
24 1
|
||||
25 1
|
||||
26 1
|
||||
27 1
|
||||
28 1
|
||||
29 1
|
||||
30 1
|
||||
31 1
|
||||
32 1
|
||||
33 1
|
||||
34 1
|
||||
35 1
|
||||
36 1
|
||||
37 1
|
||||
38 1
|
||||
39 1
|
||||
40 1
|
||||
41 1
|
||||
42 1
|
||||
43 1
|
||||
44 1
|
||||
45 1
|
||||
46 1
|
||||
47 1
|
||||
48 1
|
||||
49 1
|
||||
50 1
|
||||
51 1
|
||||
52 1
|
||||
53 1
|
||||
54 1
|
||||
55 1
|
||||
56 1
|
||||
57 1
|
||||
58 1
|
||||
59 1
|
||||
60 1
|
||||
61 1
|
||||
62 1
|
||||
63 1
|
||||
|
||||
Masses
|
||||
#ID mass
|
||||
1 1
|
||||
2 1
|
||||
3 1
|
||||
4 1
|
||||
5 1
|
||||
6 1
|
||||
7 1
|
||||
8 1
|
||||
9 1
|
||||
10 1
|
||||
11 1
|
||||
12 1
|
||||
13 1
|
||||
14 1
|
||||
15 1
|
||||
16 1
|
||||
17 1
|
||||
18 1
|
||||
19 1
|
||||
20 1
|
||||
21 1
|
||||
22 1
|
||||
23 1
|
||||
24 1
|
||||
25 1
|
||||
26 1
|
||||
27 1
|
||||
28 1
|
||||
29 1
|
||||
30 1
|
||||
31 1
|
||||
32 1
|
||||
33 1
|
||||
34 1
|
||||
35 1
|
||||
36 1
|
||||
37 1
|
||||
38 1
|
||||
39 1
|
||||
40 1
|
||||
41 1
|
||||
42 1
|
||||
43 1
|
||||
44 1
|
||||
45 1
|
||||
46 1
|
||||
47 1
|
||||
48 1
|
||||
49 1
|
||||
50 1
|
||||
51 1
|
||||
52 1
|
||||
53 1
|
||||
54 1
|
||||
55 1
|
||||
56 1
|
||||
57 1
|
||||
58 1
|
||||
59 1
|
||||
60 1
|
||||
61 1
|
||||
62 1
|
||||
63 1
|
||||
|
||||
Bonds
|
||||
#ID type atom1 atom2
|
||||
1 1 1 2
|
||||
2 1 1 3
|
||||
3 1 1 4
|
||||
4 1 1 5
|
||||
5 1 1 7
|
||||
6 1 1 10
|
||||
7 1 2 3
|
||||
8 1 2 4
|
||||
9 1 2 5
|
||||
10 1 2 6
|
||||
11 1 2 7
|
||||
12 1 2 8
|
||||
13 1 2 9
|
||||
14 1 2 11
|
||||
15 1 3 4
|
||||
16 1 3 5
|
||||
17 1 3 6
|
||||
18 1 3 8
|
||||
19 1 3 10
|
||||
20 1 3 11
|
||||
21 1 3 12
|
||||
22 1 3 14
|
||||
23 1 4 6
|
||||
24 1 4 7
|
||||
25 1 4 8
|
||||
26 1 4 10
|
||||
27 1 4 11
|
||||
28 1 4 13
|
||||
29 1 4 16
|
||||
30 1 5 6
|
||||
31 1 5 9
|
||||
32 1 5 14
|
||||
33 1 6 8
|
||||
34 1 6 9
|
||||
35 1 6 11
|
||||
36 1 6 14
|
||||
37 1 6 18
|
||||
38 1 7 8
|
||||
39 1 7 9
|
||||
40 1 7 16
|
||||
41 1 8 9
|
||||
42 1 8 11
|
||||
43 1 8 16
|
||||
44 1 8 17
|
||||
45 1 8 18
|
||||
46 1 9 18
|
||||
47 1 10 11
|
||||
48 1 10 12
|
||||
49 1 10 13
|
||||
50 1 10 14
|
||||
51 1 10 16
|
||||
52 1 10 19
|
||||
53 1 11 12
|
||||
54 1 11 13
|
||||
55 1 11 14
|
||||
56 1 11 15
|
||||
57 1 11 16
|
||||
58 1 11 17
|
||||
59 1 11 18
|
||||
60 1 12 13
|
||||
61 1 12 14
|
||||
62 1 12 15
|
||||
63 1 12 17
|
||||
64 1 12 19
|
||||
65 1 12 20
|
||||
66 1 12 21
|
||||
67 1 12 23
|
||||
68 1 13 15
|
||||
69 1 13 16
|
||||
70 1 13 17
|
||||
71 1 13 19
|
||||
72 1 13 20
|
||||
73 1 13 22
|
||||
74 1 13 25
|
||||
75 1 14 15
|
||||
76 1 14 18
|
||||
77 1 14 23
|
||||
78 1 15 17
|
||||
79 1 15 18
|
||||
80 1 15 20
|
||||
81 1 15 23
|
||||
82 1 15 27
|
||||
83 1 16 17
|
||||
84 1 16 18
|
||||
85 1 16 25
|
||||
86 1 17 18
|
||||
87 1 17 20
|
||||
88 1 17 25
|
||||
89 1 17 27
|
||||
90 1 18 27
|
||||
91 1 19 20
|
||||
92 1 19 21
|
||||
93 1 19 22
|
||||
94 1 19 23
|
||||
95 1 19 25
|
||||
96 1 19 28
|
||||
97 1 20 21
|
||||
98 1 20 22
|
||||
99 1 20 23
|
||||
100 1 20 24
|
||||
101 1 20 25
|
||||
102 1 20 26
|
||||
103 1 20 27
|
||||
104 1 20 29
|
||||
105 1 21 22
|
||||
106 1 21 23
|
||||
107 1 21 24
|
||||
108 1 21 26
|
||||
109 1 21 28
|
||||
110 1 21 29
|
||||
111 1 21 30
|
||||
112 1 21 32
|
||||
113 1 22 24
|
||||
114 1 22 25
|
||||
115 1 22 26
|
||||
116 1 22 28
|
||||
117 1 22 29
|
||||
118 1 22 34
|
||||
119 1 23 24
|
||||
120 1 23 27
|
||||
121 1 23 32
|
||||
122 1 24 26
|
||||
123 1 24 27
|
||||
124 1 24 29
|
||||
125 1 24 32
|
||||
126 1 24 36
|
||||
127 1 25 26
|
||||
128 1 25 27
|
||||
129 1 25 34
|
||||
130 1 26 27
|
||||
131 1 26 29
|
||||
132 1 26 34
|
||||
133 1 26 35
|
||||
134 1 26 36
|
||||
135 1 27 36
|
||||
136 1 28 29
|
||||
137 1 28 30
|
||||
138 1 28 31
|
||||
139 1 28 32
|
||||
140 1 28 34
|
||||
141 1 28 37
|
||||
142 1 29 30
|
||||
143 1 29 31
|
||||
144 1 29 32
|
||||
145 1 29 33
|
||||
146 1 29 34
|
||||
147 1 29 35
|
||||
148 1 29 36
|
||||
149 1 29 38
|
||||
150 1 30 31
|
||||
151 1 30 32
|
||||
152 1 30 33
|
||||
153 1 30 35
|
||||
154 1 30 37
|
||||
155 1 30 38
|
||||
156 1 30 41
|
||||
157 1 31 33
|
||||
158 1 31 34
|
||||
159 1 31 35
|
||||
160 1 31 37
|
||||
161 1 31 38
|
||||
162 1 31 40
|
||||
163 1 31 43
|
||||
164 1 32 33
|
||||
165 1 32 36
|
||||
166 1 32 41
|
||||
167 1 33 35
|
||||
168 1 33 36
|
||||
169 1 33 38
|
||||
170 1 33 41
|
||||
171 1 33 42
|
||||
172 1 33 45
|
||||
173 1 34 35
|
||||
174 1 34 36
|
||||
175 1 34 43
|
||||
176 1 35 36
|
||||
177 1 35 38
|
||||
178 1 35 43
|
||||
179 1 35 45
|
||||
180 1 36 45
|
||||
181 1 37 38
|
||||
182 1 37 39
|
||||
183 1 37 40
|
||||
184 1 37 41
|
||||
185 1 37 43
|
||||
186 1 37 46
|
||||
187 1 38 39
|
||||
188 1 38 40
|
||||
189 1 38 41
|
||||
190 1 38 42
|
||||
191 1 38 43
|
||||
192 1 38 44
|
||||
193 1 38 45
|
||||
194 1 38 47
|
||||
195 1 39 40
|
||||
196 1 39 41
|
||||
197 1 39 42
|
||||
198 1 39 44
|
||||
199 1 39 46
|
||||
200 1 39 47
|
||||
201 1 39 50
|
||||
202 1 40 42
|
||||
203 1 40 43
|
||||
204 1 40 44
|
||||
205 1 40 46
|
||||
206 1 40 47
|
||||
207 1 40 52
|
||||
208 1 41 42
|
||||
209 1 41 45
|
||||
210 1 41 50
|
||||
211 1 42 44
|
||||
212 1 42 45
|
||||
213 1 42 47
|
||||
214 1 42 50
|
||||
215 1 42 51
|
||||
216 1 42 54
|
||||
217 1 43 44
|
||||
218 1 43 45
|
||||
219 1 43 52
|
||||
220 1 44 45
|
||||
221 1 44 47
|
||||
222 1 44 52
|
||||
223 1 44 53
|
||||
224 1 44 54
|
||||
225 1 45 54
|
||||
226 1 46 47
|
||||
227 1 46 48
|
||||
228 1 46 49
|
||||
229 1 46 50
|
||||
230 1 46 52
|
||||
231 1 46 55
|
||||
232 1 47 48
|
||||
233 1 47 49
|
||||
234 1 47 50
|
||||
235 1 47 51
|
||||
236 1 47 52
|
||||
237 1 47 53
|
||||
238 1 47 54
|
||||
239 1 47 56
|
||||
240 1 48 49
|
||||
241 1 48 50
|
||||
242 1 48 51
|
||||
243 1 48 53
|
||||
244 1 48 55
|
||||
245 1 48 56
|
||||
246 1 48 57
|
||||
247 1 48 59
|
||||
248 1 49 51
|
||||
249 1 49 52
|
||||
250 1 49 53
|
||||
251 1 49 55
|
||||
252 1 49 56
|
||||
253 1 49 58
|
||||
254 1 49 61
|
||||
255 1 50 51
|
||||
256 1 50 54
|
||||
257 1 50 59
|
||||
258 1 51 53
|
||||
259 1 51 54
|
||||
260 1 51 56
|
||||
261 1 51 59
|
||||
262 1 51 63
|
||||
263 1 52 53
|
||||
264 1 52 54
|
||||
265 1 52 61
|
||||
266 1 53 54
|
||||
267 1 53 56
|
||||
268 1 53 61
|
||||
269 1 53 62
|
||||
270 1 53 63
|
||||
271 1 54 63
|
||||
272 1 55 56
|
||||
273 1 55 57
|
||||
274 1 55 58
|
||||
275 1 55 59
|
||||
276 1 55 61
|
||||
277 1 56 57
|
||||
278 1 56 58
|
||||
279 1 56 59
|
||||
280 1 56 60
|
||||
281 1 56 61
|
||||
282 1 56 62
|
||||
283 1 56 63
|
||||
284 1 57 58
|
||||
285 1 57 59
|
||||
286 1 57 60
|
||||
287 1 57 62
|
||||
288 1 58 60
|
||||
289 1 58 61
|
||||
290 1 58 62
|
||||
291 1 59 60
|
||||
292 1 59 63
|
||||
293 1 60 62
|
||||
294 1 60 63
|
||||
295 1 61 62
|
||||
296 1 61 63
|
||||
297 1 62 63
|
||||
@ -36,11 +36,6 @@
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace MathExtra;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#include "update.h"
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
BondBPMRotational::BondBPMRotational(LAMMPS *lmp) : BondBPM(lmp)
|
||||
@ -199,10 +194,10 @@ void BondBPMRotational::compute(int eflag, int vflag)
|
||||
int i1,i2,itmp,m,n,type,itype,jtype;
|
||||
double evdwl,fpair,rsq,ebond;
|
||||
double q1[4], q2[4], r[3], r0[3];
|
||||
double r0_mag, r_mag, r_mag_inv, Fr_mag, Fs_mag;
|
||||
double r0_mag, r_mag, r_mag_inv, Fr, Fs_mag;
|
||||
double Tt_mag, Tb_mag;
|
||||
double force1on2[3], torque1on2[3], torque2on1[3];
|
||||
double breaking, smooth, smooth_sq;
|
||||
double breaking, smooth;
|
||||
double rhat[3], wn1[3], wn2[3], wxn1[3], wxn2[3], vroll[3];
|
||||
double w1dotr, w2dotr, v1dotr, v2dotr;
|
||||
double vn1[3], vn2[3], vt1[3], vt2[3], tmp[3], s1[3], s2[3], tdamp[3];
|
||||
@ -212,7 +207,8 @@ void BondBPMRotational::compute(int eflag, int vflag)
|
||||
double q21[4], qp21[4], Tbp[3], Ttp[3];
|
||||
double Tsp[3], Fsp[3], Tt[3], Tb[3], Ts[3], F_rot[3], T_rot[3];
|
||||
double mq[4], mqinv[4], Ttmp[3], Ftmp[3], qtmp[4];
|
||||
double r0_dot_rb, gamma, c, psi, theta, sin_phi, cos_phi, temp, mag_in_plane, mag_out_plane;
|
||||
double r0_dot_rb, gamma, c, psi, theta, sin_phi, cos_phi, temp;
|
||||
double mag_in_plane, mag_out_plane;
|
||||
|
||||
ev_init(eflag,vflag);
|
||||
|
||||
@ -291,9 +287,9 @@ void BondBPMRotational::compute(int eflag, int vflag)
|
||||
// Calculate normal forces, rb = bond vector in particle 1's frame
|
||||
MathExtra::qconjugate(q2, q2inv);
|
||||
MathExtra::quatrotvec(q2inv, r, rb);
|
||||
Fr_mag = Kr[type]*(r_mag - r0_mag);
|
||||
Fr = Kr[type]*(r_mag - r0_mag);
|
||||
|
||||
MathExtra::scale3(Fr_mag*r_mag_inv, rb, F_rot);
|
||||
MathExtra::scale3(Fr*r_mag_inv, rb, F_rot);
|
||||
|
||||
// Calculate forces due to tangential displacements (no rotation)
|
||||
r0_dot_rb = dot3(r0, rb);
|
||||
@ -435,10 +431,8 @@ void BondBPMRotational::compute(int eflag, int vflag)
|
||||
// Check if bond breaks
|
||||
// ------------------------------------------------------//
|
||||
|
||||
if (r_mag < r0_mag)
|
||||
breaking = Fs_mag/Fcs[type] + Tb_mag/Tcb[type] + Tt_mag/Tct[type];
|
||||
else
|
||||
breaking = Fr_mag/Fcr[type] + Fs_mag/Fcs[type] + Tb_mag/Tcb[type] + Tt_mag/Tct[type];
|
||||
breaking = Fs_mag/Fcs[type] + Tb_mag/Tcb[type] + Tt_mag/Tct[type];
|
||||
if (Fr > 0.0) breaking += Fr/Fcr[type];
|
||||
|
||||
if (breaking >= 1.0) {
|
||||
bondlist[n][2] = 0;
|
||||
@ -446,11 +440,11 @@ void BondBPMRotational::compute(int eflag, int vflag)
|
||||
continue;
|
||||
}
|
||||
|
||||
smooth = 1.0 - breaking;
|
||||
smooth_sq = smooth*smooth;
|
||||
smooth = breaking*breaking;
|
||||
smooth = 1.0 - smooth*smooth;
|
||||
|
||||
// Not actual energy, just a handy metric
|
||||
if (eflag) ebond = -smooth_sq;
|
||||
if (eflag) ebond = -smooth;
|
||||
|
||||
// ------------------------------------------------------//
|
||||
// Calculate damping using formulation in
|
||||
@ -524,26 +518,26 @@ void BondBPMRotational::compute(int eflag, int vflag)
|
||||
// ------------------------------------------------------//
|
||||
|
||||
if (newton_bond || i1 < nlocal) {
|
||||
f[i1][0] -= force1on2[0]*smooth_sq;
|
||||
f[i1][1] -= force1on2[1]*smooth_sq;
|
||||
f[i1][2] -= force1on2[2]*smooth_sq;
|
||||
f[i1][0] -= force1on2[0]*smooth;
|
||||
f[i1][1] -= force1on2[1]*smooth;
|
||||
f[i1][2] -= force1on2[2]*smooth;
|
||||
|
||||
torque[i1][0] += torque2on1[0]*smooth_sq;
|
||||
torque[i1][1] += torque2on1[1]*smooth_sq;
|
||||
torque[i1][2] += torque2on1[2]*smooth_sq;
|
||||
torque[i1][0] += torque2on1[0]*smooth;
|
||||
torque[i1][1] += torque2on1[1]*smooth;
|
||||
torque[i1][2] += torque2on1[2]*smooth;
|
||||
}
|
||||
|
||||
if (newton_bond || i2 < nlocal) {
|
||||
f[i2][0] += force1on2[0]*smooth_sq;
|
||||
f[i2][1] += force1on2[1]*smooth_sq;
|
||||
f[i2][2] += force1on2[2]*smooth_sq;
|
||||
f[i2][0] += force1on2[0]*smooth;
|
||||
f[i2][1] += force1on2[1]*smooth;
|
||||
f[i2][2] += force1on2[2]*smooth;
|
||||
|
||||
torque[i2][0] += torque1on2[0]*smooth_sq;
|
||||
torque[i2][1] += torque1on2[1]*smooth_sq;
|
||||
torque[i2][2] += torque1on2[2]*smooth_sq;
|
||||
torque[i2][0] += torque1on2[0]*smooth;
|
||||
torque[i2][1] += torque1on2[1]*smooth;
|
||||
torque[i2][2] += torque1on2[2]*smooth;
|
||||
}
|
||||
|
||||
if (evflag) ev_tally(i1,i2,nlocal,newton_bond,ebond,Fr_mag,r[0],r[1],r[2]);
|
||||
if (evflag) ev_tally(i1,i2,nlocal,newton_bond,ebond,Fr*smooth,r[0],r[1],r[2]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -89,6 +89,7 @@ void PairGranHertzHistory::compute(int eflag, int vflag)
|
||||
int *mask = atom->mask;
|
||||
int nlocal = atom->nlocal;
|
||||
int newton_pair = force->newton_pair;
|
||||
double *special_lj = force->special_lj;
|
||||
|
||||
inum = list->inum;
|
||||
ilist = list->ilist;
|
||||
|
||||
@ -82,6 +82,7 @@ void PairGranHooke::compute(int eflag, int vflag)
|
||||
int *mask = atom->mask;
|
||||
int nlocal = atom->nlocal;
|
||||
int newton_pair = force->newton_pair;
|
||||
double *special_lj = force->special_lj;
|
||||
|
||||
inum = list->inum;
|
||||
ilist = list->ilist;
|
||||
|
||||
@ -151,6 +151,7 @@ void PairGranHookeHistory::compute(int eflag, int vflag)
|
||||
int *mask = atom->mask;
|
||||
int nlocal = atom->nlocal;
|
||||
int newton_pair = force->newton_pair;
|
||||
double *special_lj = force->special_lj;
|
||||
|
||||
inum = list->inum;
|
||||
ilist = list->ilist;
|
||||
|
||||
@ -222,6 +222,7 @@ void PairGranular::compute(int eflag, int vflag)
|
||||
double *rmass = atom->rmass;
|
||||
int *mask = atom->mask;
|
||||
int nlocal = atom->nlocal;
|
||||
double *special_lj = force->special_lj;
|
||||
|
||||
inum = list->inum;
|
||||
ilist = list->ilist;
|
||||
|
||||
@ -53,7 +53,7 @@ PACKAGE = \
|
||||
awpmd \
|
||||
bocs \
|
||||
body \
|
||||
bpm \
|
||||
bpm \
|
||||
brownian \
|
||||
cg-dna \
|
||||
cg-sdk \
|
||||
@ -148,8 +148,8 @@ PACKMOST = \
|
||||
asphere \
|
||||
bocs \
|
||||
body \
|
||||
bpm
|
||||
brownian \
|
||||
bpm \
|
||||
brownian \
|
||||
cg-dna \
|
||||
cg-sdk \
|
||||
class2 \
|
||||
|
||||
@ -628,12 +628,14 @@ void FixNeighHistory::post_neighbor()
|
||||
|
||||
if (use_bit_flag) {
|
||||
rflag = histmask(j) | pair->beyond_contact;
|
||||
j &= NEIGHMASK;
|
||||
j &= HISTMASK;
|
||||
jlist[jj] = j;
|
||||
} else {
|
||||
rflag = 1;
|
||||
j &= NEIGHMASK;
|
||||
}
|
||||
|
||||
// Remove special bond bits
|
||||
j &= NEIGHMASK;
|
||||
|
||||
// rflag = 1 if r < radsum in npair_size() method or if pair interactions extend further
|
||||
// preserve neigh history info if tag[j] is in old-neigh partner list
|
||||
|
||||
@ -553,7 +553,7 @@ void FixPropertyAtom::copy_arrays(int i, int j, int /*delflag*/)
|
||||
else if (styles[nv] == IVEC) {
|
||||
atom->ivector[index[nv]][j] = atom->ivector[index[nv]][i];
|
||||
atom->ivector[index[nv]][i] = 0;
|
||||
} else if (styles[nv] == DVEC)
|
||||
} else if (styles[nv] == DVEC) {
|
||||
atom->dvector[index[nv]][j] = atom->dvector[index[nv]][i];
|
||||
atom->dvector[index[nv]][i] = 0.0;
|
||||
} else if (styles[nv] == IARRAY) {
|
||||
|
||||
@ -62,6 +62,7 @@ namespace LAMMPS_NS {
|
||||
#define SBBITS 30
|
||||
#define HISTBITS 29
|
||||
#define NEIGHMASK 0x1FFFFFFF
|
||||
#define HISTMASK 0xDFFFFFFF
|
||||
|
||||
// default to 32-bit smallint and other ints, 64-bit bigint
|
||||
|
||||
|
||||
Reference in New Issue
Block a user