Moving store/local to an internal fix

This commit is contained in:
Joel Thomas Clemmer
2021-12-10 10:33:52 -07:00
parent 455cb09cf4
commit 439853c4a8
19 changed files with 1759 additions and 1731 deletions

View File

@ -97,10 +97,10 @@ This also requires a unique integrator :doc:`fix nve/sphere/bpm
to :doc:`fix nve/asphere <fix_nve_asphere>`.
To monitor the fracture of bonds in the system, all BPM bond styles
can be associated with an instance of :doc:`fix store/local
<fix_store_local>` to record all instances of bond breakage for
output. Additionally, one can use :doc:`compute nbond/atom
<compute_nbond_atom>` to tally the current number of bonds per atom.
have the ability to record instances of bond breakage to output using
the :doc:`dump local <dump_local>` command. Additionally, one can use
:doc:`compute nbond/atom <compute_nbond_atom>` to tally the current
number of bonds per atom.
In addition to bond styles, a new pair style :doc:`pair bpm/spring
<pair_bpm_spring>` was added to accompany the bpm/spring bond

View File

@ -14,12 +14,15 @@ Syntax
.. parsed-literal::
*store/local* values = ID of associated fix store/local followed by one or more attributes
*store/local* values = fix_ID N attributes ...
* fix_ID = ID of associated internal fix to store data
* N = prepare data for output every this many timesteps
* attributes = zero or more of the below attributes may be appended
*id1, id2* = IDs of 2 atoms in the bond
*time* = the timestep the bond broke
*x, y, z* = the center of mass position of the 2 atoms when the bond broke (distance units)
*x/ref, y/ref, z/ref* = the initial center of mass position of the 2 atoms (distance units)
*id1, id2* = IDs of 2 atoms in the bond
*time* = the timestep the bond broke
*x, y, z* = the center of mass position of the 2 atoms when the bond broke (distance units)
*x/ref, y/ref, z/ref* = the initial center of mass position of the 2 atoms (distance units)
*overlay/pair* value = none
bonded particles will still interact with pair forces
@ -32,7 +35,7 @@ Examples
bond_style bpm/rotational
bond_coeff 1 1.0 0.2 0.02 0.02 0.20 0.04 0.04 0.04 0.1 0.02 0.002 0.002
bond_style bpm/rotational myfix time id1 id2
bond_style bpm/rotational myfix 1000 time id1 id2
fix myfix all store/local 1000 3
dump 1 all local 1000 dump.broken f_myfix[1] f_myfix[2] f_myfix[3]
dump_modify 1 write_header no
@ -132,15 +135,33 @@ the *overlay/pair* keyword. These settings require specific
restrictions. Further details can be found in the `:doc: how to
<Howto_BPM>` page on BPMs.
This bond style tracks broken bonds and can record them using an
instance of :doc:`fix store/local <fix_store_local>` if the
*store/local* keyword is used followed by the ID of the fix and then a
series of bond attributes.
If the *store/local* keyword is used, this fix will track bonds that
break during the simulation. Whenever a bond breaks, data is processed
and transferred to an internal fix labeled *fix_ID*. This allows the
local data to be accessed by other LAMMPS commands.
Note that when bonds are dumped to a file via the :doc:`dump local <dump>`
command, bonds with type 0 (broken bonds) are not included. The
:doc:`delete_bonds <delete_bonds>` command can also be used to query the
status of broken bonds or permanently delete them, e.g.:
Following any optional keyword/value arguments, a list of one or more
attributes is specified. These include the IDs of the two atoms in
the bond. The other attributes for the two atoms include the timestep
during which the bond broke and the current/initial center of mass
position of the two atoms.
This bond style tracks broken bonds and records the requested attributes.
Data is continuously accumulated over intervals of *N*
timesteps. At the end of each interval, all of the saved accumulated
data is deleted to make room for new data. Individual datum may
therefore persist anywhere between *1* to *N* timesteps depending on
when they are saved. This data can be accessed using the *fix_ID* and a
:doc:`dump local <dump_local>` command. To ensure all data is output,
the dump frequency should correspond to the same interval of *N*
timesteps. A dump frequency of an integer multiple of *N* can be used
to regularly output a sample of the accumulated data.
Note that when unbroken bonds are dumped to a file via the
:doc:`dump local <dump>` command, bonds with type 0 (broken bonds)
are not included.
The :doc:`delete_bonds <delete_bonds>` command can also be used to
query the status of broken bonds or permanently delete them, e.g.:
.. code-block:: LAMMPS
@ -162,6 +183,22 @@ of a pairwise interaction, since energy is not conserved in these
dissipative potentials. It also returns only the normal component of
the pairwise interaction force.
The accumulated data is not written to restart files and should be
output before a restart file is written to avoid missing data.
The internal fix calculates a local vector or local array depending on the
number of input values. The length of the vector or number of rows in
the array is the number of recorded, lost interactions. If a single
input is specified, a local vector is produced. If two or more inputs
are specified, a local array is produced where the number of columns =
the number of inputs. The vector or array can be accessed by any
command that uses local values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS
output options.
The vector or array will be floating point values that correspond to
the specified attribute.
Restrictions
""""""""""""
@ -189,8 +226,7 @@ The *bpm/rotational* style requires :doc:`atom style sphere/bpm <atom_style>`.
Related commands
""""""""""""""""
:doc:`bond_coeff <bond_coeff>`, :doc:`fix store/local <fix_store_local>`,
:doc:`fix nve/sphere/bpm <fix_nve_sphere_bpm>`
:doc:`bond_coeff <bond_coeff>`, :doc:`fix nve/sphere/bpm <fix_nve_sphere_bpm>`
Default
"""""""

View File

@ -14,12 +14,15 @@ Syntax
.. parsed-literal::
*store/local* values = ID of associated fix store/local followed by one or more attributes
*store/local* values = fix_ID N attributes ...
* fix_ID = ID of associated internal fix to store data
* N = prepare data for output every this many timesteps
* attributes = zero or more of the below attributes may be appended
*id1, id2* = IDs of 2 atoms in the bond
*time* = the timestep the bond broke
*x, y, z* = the center of mass position of the 2 atoms when the bond broke (distance units)
*x/ref, y/ref, z/ref* = the initial center of mass position of the 2 atoms (distance units)
*id1, id2* = IDs of 2 atoms in the bond
*time* = the timestep the bond broke
*x, y, z* = the center of mass position of the 2 atoms when the bond broke (distance units)
*x/ref, y/ref, z/ref* = the initial center of mass position of the 2 atoms (distance units)
*overlay/pair* value = none
bonded particles will still interact with pair forces
@ -32,8 +35,7 @@ Examples
bond_style bpm/spring
bond_coeff 1 1.0 0.05 0.1
bond_style bpm/spring myfix time id1 id2
fix myfix all store/local 1000 3
bond_style bpm/spring myfix 1000 time id1 id2
dump 1 all local 1000 dump.broken f_myfix[1] f_myfix[2] f_myfix[3]
dump_modify 1 write_header no
@ -96,13 +98,31 @@ the *overlay/pair* keyword. These settings require specific
restrictions. Further details can be found in the `:doc: how to
<Howto_BPM>` page on BPMs.
This bond style tracks broken bonds and can record them using an
instance of :doc:`fix store/local <fix_store_local>` if the
*store/local* keyword is used followed by the ID of the fix and then a
series of bond attributes.
If the *store/local* keyword is used, this fix will track bonds that
break during the simulation. Whenever a bond breaks, data is processed
and transferred to an internal fix labeled *fix_ID*. This allows the
local data to be accessed by other LAMMPS commands.
Note that when bonds are dumped to a file via the :doc:`dump local
<dump>` command, bonds with type 0 (broken bonds) are not included.
Following any optional keyword/value arguments, a list of one or more
attributes is specified. These include the IDs of the two atoms in
the bond. The other attributes for the two atoms include the timestep
during which the bond broke and the current/initial center of mass
position of the two atoms.
This bond style tracks broken bonds and records the requested attributes.
Data is continuously accumulated over intervals of *N*
timesteps. At the end of each interval, all of the saved accumulated
data is deleted to make room for new data. Individual datum may
therefore persist anywhere between *1* to *N* timesteps depending on
when they are saved. This data can be accessed using the *fix_ID* and a
:doc:`dump local <dump_local>` command. To ensure all data is output,
the dump frequency should correspond to the same interval of *N*
timesteps. A dump frequency of an integer multiple of *N* can be used
to regularly output a sample of the accumulated data.
Note that when unbroken bonds are dumped to a file via the
:doc:`dump local <dump>` command, bonds with type 0 (broken bonds)
are not included.
The :doc:`delete_bonds <delete_bonds>` command can also be used to
query the status of broken bonds or permanently delete them, e.g.:
@ -124,6 +144,22 @@ The single() function of these pair styles returns 0.0 for the energy
of a pairwise interaction, since energy is not conserved in these
dissipative potentials.
The accumulated data is not written to restart files and should be
output before a restart file is written to avoid missing data.
The internal fix calculates a local vector or local array depending on the
number of input values. The length of the vector or number of rows in
the array is the number of recorded, lost interactions. If a single
input is specified, a local vector is produced. If two or more inputs
are specified, a local array is produced where the number of columns =
the number of inputs. The vector or array can be accessed by any
command that uses local values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS
output options.
The vector or array will be floating point values that correspond to
the specified attribute.
Restrictions
""""""""""""
@ -149,8 +185,7 @@ setting
Related commands
""""""""""""""""
:doc:`bond_coeff <bond_coeff>`, :doc:`fix store/local <fix_store_local>`,
:doc:`pair bpm/spring <pair_bpm_spring>`
:doc:`bond_coeff <bond_coeff>`, :doc:`pair bpm/spring <pair_bpm_spring>`
Default
"""""""

View File

@ -1,97 +0,0 @@
.. index:: fix store/local
fix store/local command
========================
Syntax
""""""
.. parsed-literal::
fix ID group-ID store/local N nvalues
* ID, group-ID are documented in :doc:`fix <fix>` command
* store/local = style name of this fix command
* N = prepare data for output every this many timesteps
* nvalues = number of values stored by this fix
Examples
""""""""
.. code-block:: LAMMPS
bond_style bpm/simple store/local 1 id1 id2
fix 1 all store/local 1000 2
dump 1 all local 1000 dump.local f_1[1] f_1[2]
dump_modify 1 write_header no
pair_style hybrid/overlay tracker 1 x y z lj/cut 2.5
fix 1 all store/local 1000 3
dump 1 all local 1000 dump.local f_1[1] f_1[2] f_1[3]
Description
"""""""""""
This fix provides the ability to store local data generated by another
LAMMPS command, including some pair and bond styles, so it can be
output. One examples, shown above, is the
:doc:`bpm/simple bondstyle <bond_bpm_simple>` which allows bonds to
break and passes information on the broken bonds to this fix. A
:doc:`dump local <dump_local>` command can then output the list of
broken bonds
This fix continuously accumulates local data over intervals of *N*
timesteps. At the end of each interval, all of the saved accumulated
data is deleted to make room for new data. Individual datum may
therefore persist anywhere between *1* to *N* timesteps depending on
when they are saved. This data can be accessed by a
:doc:`dump local <dump_local>` command. To ensure all data is output,
the dump frequency should correspond to the same interval of *N*
timesteps. A dump frequency of an integer multiple of *N* can be used
to regularly output a sample of the accumulated data.
----------
Restart, fix_modify, run start/stop, minimize info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Accumulated local data is written to :doc:`binary restart files
<restart>`. None of the :doc:`fix_modify <fix_modify>` options are
relevant to this fix. No parameter of this fix can be used with the
*start/stop* keywords of the :doc:`run <run>` command.
Output info
"""""""""""
This compute calculates a local vector or local array depending on the
number of input values. The length of the vector or number of rows in
the array is the number of recorded, lost interactions. If a single
input is specified, a local vector is produced. If two or more inputs
are specified, a local array is produced where the number of columns =
the number of inputs. The vector or array can be accessed by any
command that uses local values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS
output options.
The vector or array will be floating point values that correspond to
the specified attribute.
Restrictions
""""""""""""
This fix must be used in conjunction with another LAMMPS command which
generates local data and passes it to this fix. See the related
commands below for examples of such commands.
Related commands
""""""""""""""""
:doc:`pair tracker <pair_tracker>`
:doc:`bond bpm/rotational <bond_bpm_rotational>`
:doc:`dump local <dump>`
Default
"""""""
none

View File

@ -8,9 +8,10 @@ Syntax
.. code-block:: LAMMPS
pair_style tracker fix_ID keyword values attribute1 attribute2 ...
pair_style tracker fix_ID N keyword values attribute1 attribute2 ...
* fix_ID = ID of associated fix store/local
* fix_ID = ID of associated internal fix to store data
* N = prepare data for output every this many timesteps
* zero or more keywords may be appended
* keyword = *finite* or *time/min* or *type/include*
@ -45,13 +46,12 @@ Examples
.. code-block:: LAMMPS
pair_style hybrid/overlay tracker myfix id1 id2 type/include 1 * type/include 2 3,4 lj/cut 2.5
pair_style hybrid/overlay tracker myfix 1000 id1 id2 type/include 1 * type/include 2 3,4 lj/cut 2.5
pair_coeff 1 1 tracker 2.0
pair_style hybrid/overlay tracker myfix finite x y z time/min 100 granular
pair_style hybrid/overlay tracker myfix 1000 finite x y z time/min 100 granular
pair_coeff * * tracker
fix myfix all store/local 1000 3
dump 1 all local 1000 dump.local f_myfix[1] f_myfix[2] f_myfix[3]
dump_modify 1 write_header no
@ -59,18 +59,14 @@ Description
"""""""""""
Style *tracker* monitors information about pairwise interactions. It
does not calculate any forces on atoms. :doc:`Pair hybrid/overlay
does not calculate any forces on atoms. :doc:`Pair hybrid/overlay
<pair_hybrid>` can be used to combine this pair style with any other
pair style, as shown in the examples above. Style *tracker* must also
be used in conjunction with the :doc:`fix store/local
<fix_store_local>` command which stores the pairise information so it
can be accessed as local data by other LAMMPS commands, e.g. by the
:doc:`dump local <dump>` command for output.
pair style, as shown in the examples above.
At each timestep, if two neighboring atoms move beyond the interaction
cutoff, pairwise data is processed and transferred to the associated
instance of :doc:`fix store/local <fix_store_local>`. Additional
cutoff, pairwise data is processed and transferred to an internal fix
labeled *fix_ID*. This allows the local data to be accessed by other
LAMMPS commands. Additional
filters can be applied using the *time/min* or *type/include* keywords
described below. Note that this is the interaction cutoff defined by
this pair style, not the short-range cutoff defined by the pair style
@ -78,13 +74,23 @@ that is calculating forces on atoms.
Following any optional keyword/value arguments, a list of one or more
attributes is specified. These include the IDs of the two atoms in
the pair. The other attributes for the pair of atoms are for the
the pair. The other attributes for the pair of atoms are the
duration of time they were "interacting" or at the point in time they
started or stopped interacting. In this context, "interacting" means
the time window during which the two atoms were closer than the
interaction cutoff distance. The attributes for time/* refer to
timesteps.
Data is continuously accumulated by the internal fix over intervals of *N*
timesteps. At the end of each interval, all of the saved accumulated
data is deleted to make room for new data. Individual datum may
therefore persist anywhere between *1* to *N* timesteps depending on
when they are saved. This data can be accessed using the *fix_ID* and a
:doc:`dump local <dump_local>` command. To ensure all data is output,
the dump frequency should correspond to the same interval of *N*
timesteps. A dump frequency of an integer multiple of *N* can be used
to regularly output a sample of the accumulated data.
----------
The following optional keywords may be used.
@ -147,6 +153,22 @@ specified in an input script that reads a restart file.
The :doc:`pair_modify <pair_modify>` shift, table, and tail options
are not relevant for this pair style.
The accumulated data is not written to restart files and should be
output before a restart file is written to avoid missing data.
The internal fix calculates a local vector or local array depending on the
number of input values. The length of the vector or number of rows in
the array is the number of recorded, lost interactions. If a single
input is specified, a local vector is produced. If two or more inputs
are specified, a local array is produced where the number of columns =
the number of inputs. The vector or array can be accessed by any
command that uses local values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS
output options.
The vector or array will be floating point values that correspond to
the specified attribute.
----------
Restrictions
@ -165,8 +187,6 @@ that extend beyond the contact (e.g. JKR and DMT).
Related commands
""""""""""""""""
:doc:`fix store_local <fix_store_local>`
Default
"""""""

View File

@ -24,7 +24,6 @@ pair_style gran/hooke/history 1.0 NULL 0.5 NULL 0.1 1
pair_coeff 1 1
fix 1 all nve/sphere/bpm
fix 2 all store/local 100 3
create_bonds many plate plate 1 0.0 1.5
create_bonds many projectile projectile 2 0.0 1.5
@ -32,7 +31,7 @@ create_bonds many projectile projectile 2 0.0 1.5
neighbor 0.3 bin
special_bonds lj 0.0 1.0 1.0 coul 1.0 1.0 1.0
bond_style bpm/rotational store/local 2 time id1 id2
bond_style bpm/rotational store/local brkbond 100 time id1 id2
bond_coeff 1 1.0 0.2 0.02 0.02 0.05 0.01 0.01 0.01 0.1 0.02 0.002 0.002
bond_coeff 2 1.0 0.2 0.02 0.02 0.20 0.04 0.04 0.04 0.1 0.02 0.002 0.002
@ -46,7 +45,7 @@ thermo 100
thermo_modify lost ignore lost/bond ignore
#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 2 all local 100 brokenDump f_brkbond[1] f_brkbond[2] f_brkbond[3]
dump_modify 2 header no
run 7500

View File

@ -26,7 +26,6 @@ pair_style bpm/spring
pair_coeff 1 1 1.0 1.0 1.0
fix 1 all nve
fix 2 all store/local 100 3
create_bonds many plate plate 1 0.0 1.5
create_bonds many projectile projectile 2 0.0 1.5
@ -34,7 +33,7 @@ create_bonds many projectile projectile 2 0.0 1.5
neighbor 0.3 bin
special_bonds lj 0.0 1.0 1.0 coul 1.0 1.0 1.0
bond_style bpm/spring store/local 2 time id1 id2
bond_style bpm/spring store/local brkbond 100 time id1 id2
bond_coeff 1 1.0 0.04 1.0
bond_coeff 2 1.0 0.20 1.0
@ -48,7 +47,7 @@ thermo 100
thermo_modify lost ignore lost/bond ignore
#dump 1 all custom 100 atomDump id x y z c_nbond
dump 2 all local 100 brokenDump f_2[1] f_2[2] f_2[3]
dump 2 all local 100 brokenDump f_brkbond[1] f_brkbond[2] f_brkbond[3]
dump_modify 2 header no
run 7500

View File

@ -0,0 +1,217 @@
LAMMPS (27 Oct 2021)
units lj
dimension 3
boundary f f f
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 -25 15 -22 22 -22 22
create_box 1 box bond/types 2 extra/bond/per/atom 20 extra/special/per/atom 50
Created orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823)
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 7529 atoms
using lattice units in orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823)
create_atoms CPU = 0.006 seconds
group plate region disk
7529 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 = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823)
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
pair_coeff 1 1
fix 1 all nve/sphere/bpm
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 = 64 70 70
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 38559 bonds, new total = 38559
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.002 seconds
create_bonds many projectile projectile 2 0.0 1.5
WARNING: Bonds are defined but no bond style is set (../force.cpp:191)
WARNING: Likewise 1-2 special neighbor interactions != 1.0 (../force.cpp:193)
Added 21869 bonds, new total = 60428
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
neighbor 0.3 bin
special_bonds lj 0.0 1.0 1.0 coul 1.0 1.0 1.0
bond_style bpm/rotational store/local brkbond 100 time id1 id2
bond_coeff 1 1.0 0.2 0.02 0.02 0.05 0.01 0.01 0.01 0.1 0.02 0.002 0.002
bond_coeff 2 1.0 0.2 0.02 0.02 0.20 0.04 0.04 0.04 0.1 0.02 0.002 0.002
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
thermo_modify lost ignore lost/bond ignore
#dump 1 all custom 100 atomDump id radius x y z c_nbond
dump 2 all local 100 brokenDump f_brkbond[1] f_brkbond[2] f_brkbond[3]
dump_modify 2 header no
run 7500
WARNING: No fixes with time integration, atoms won't move (../verlet.cpp:60)
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 = 98 108 108
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) = 33.34 | 33.34 | 33.35 Mbytes
Step KinEng PotEng Pxx Pyy Pzz c_tbond
0 0.00053238861 0 3.8217307e-05 0 0 10.8703
100 0.00053238861 0 3.8217307e-05 2.0196245e-19 2.0291801e-19 10.8703
200 0.00053238861 0 3.8217307e-05 3.0246341e-19 2.9178664e-19 10.8703
300 0.00053238861 0 3.8217307e-05 3.3428362e-19 3.2669661e-19 10.8703
400 0.00053238861 0 3.8217307e-05 3.5002919e-19 3.3516777e-19 10.8703
500 0.00053102278 0 3.8469829e-05 7.3311547e-08 1.4473347e-07 10.8703
600 0.00051549609 0 4.0342929e-05 3.87734e-07 4.9640786e-07 10.868322
700 0.00050121532 0 3.8778736e-05 4.6411496e-07 4.3149467e-07 10.850333
800 0.00049869661 0 3.6779398e-05 4.748259e-07 3.5191586e-07 10.803202
900 0.00049580923 0 3.5608764e-05 9.3667316e-07 5.0139078e-07 10.737363
1000 0.00049478796 0 3.5573518e-05 7.9599489e-07 6.7732416e-07 10.683396
1100 0.00048712204 0 3.5843955e-05 1.1345563e-06 1.4066243e-06 10.662169
1200 0.00048265244 0 3.5288538e-05 1.7434542e-06 1.6555952e-06 10.642921
1300 0.00047982046 0 3.4929699e-05 1.5116612e-06 1.1824842e-06 10.62925
1400 0.00048024672 0 3.4696478e-05 1.0219046e-06 9.6017582e-07 10.619716
1500 0.0004721757 0 3.4671814e-05 1.7623303e-06 1.6904391e-06 10.608023
1600 0.00045691175 0 3.3618706e-05 2.0127313e-06 2.2294075e-06 10.599208
1700 0.00044846472 0 3.2628068e-05 2.1732651e-06 2.6125725e-06 10.586796
1800 0.00044916668 0 3.2074126e-05 1.713271e-06 2.2306226e-06 10.562691
1900 0.00044434475 0 3.1841489e-05 1.4069412e-06 1.6739368e-06 10.540025
2000 0.00044011236 0 3.1535369e-05 1.8850064e-06 1.966093e-06 10.508365
2100 0.00043343658 0 3.1327313e-05 1.7877497e-06 1.9031224e-06 10.466271
2200 0.00043076716 0 3.1141775e-05 2.260934e-06 1.7405179e-06 10.428135
2300 0.0004252247 0 3.065038e-05 1.8685672e-06 1.6444209e-06 10.398993
2400 0.00042502327 0 3.0356508e-05 1.8748934e-06 1.3329686e-06 10.380644
2500 0.00042142831 0 3.0164965e-05 2.1119049e-06 1.7118338e-06 10.366433
2600 0.00042131885 0 3.0065244e-05 1.6092748e-06 1.5373156e-06 10.35456
2700 0.00042303607 0 3.0011813e-05 1.7496254e-06 1.77836e-06 10.327937
2800 0.00042148119 0 2.9849777e-05 1.5035087e-06 1.5374543e-06 10.314085
2900 0.00042092112 0 2.9766439e-05 1.2512363e-06 1.417453e-06 10.302572
3000 0.00042298628 0 2.985456e-05 1.030367e-06 1.2706193e-06 10.297536
3100 0.00042098731 0 2.9773119e-05 1.1020439e-06 1.3236711e-06 10.293938
3200 0.00042190155 0 2.975807e-05 1.0825659e-06 1.207615e-06 10.2907
3300 0.00041840008 0 2.9573071e-05 1.0027126e-06 1.0591685e-06 10.286562
3400 0.00041726315 0 2.9629012e-05 1.3206781e-06 1.0694496e-06 10.280986
3500 0.00041553548 0 2.9393577e-05 1.4604125e-06 1.2547784e-06 10.27361
3600 0.00041551693 0 2.9122892e-05 1.0944373e-06 9.6499513e-07 10.271632
3700 0.00041351569 0 2.8943889e-05 9.6203862e-07 8.3123719e-07 10.270192
3800 0.00041419735 0 2.9031969e-05 1.1893061e-06 7.9832166e-07 10.267494
3900 0.0004142108 0 2.8912904e-05 1.0049279e-06 9.0628823e-07 10.255442
4000 0.00041253668 0 2.8794779e-05 8.3301821e-07 8.2348634e-07 10.250045
4100 0.00041245029 0 2.8626953e-05 1.0440229e-06 9.7296445e-07 10.239971
4200 0.00041239868 0 2.8576872e-05 8.5677759e-07 9.4929241e-07 10.235114
4300 0.0004105539 0 2.845078e-05 7.9007545e-07 9.4314698e-07 10.227559
4400 0.00041038071 0 2.8447842e-05 8.3506095e-07 9.403948e-07 10.220363
4500 0.0004094738 0 2.8385536e-05 7.4474323e-07 8.9167115e-07 10.214247
4600 0.00040931891 0 2.8293128e-05 6.9842277e-07 8.7986292e-07 10.211189
4700 0.00040935826 0 2.832743e-05 7.7312621e-07 8.6571149e-07 10.208491
4800 0.00040894424 0 2.8290022e-05 7.560957e-07 7.8478084e-07 10.202195
4900 0.00040771373 0 2.8211024e-05 8.8835691e-07 7.6981867e-07 10.196816
5000 0.0004075835 0 2.8242057e-05 7.9265659e-07 8.5594679e-07 10.18854
5100 0.00040629886 0 2.8147996e-05 8.29922e-07 8.2991198e-07 10.186938
5200 0.00040615587 0 2.8075206e-05 7.9676977e-07 8.3313535e-07 10.183699
5300 0.00040623905 0 2.8061445e-05 8.5454501e-07 8.3464967e-07 10.18154
5400 0.00040639649 0 2.8095492e-05 9.219289e-07 8.8970884e-07 10.180281
5500 0.00040632069 0 2.8146737e-05 9.5125536e-07 9.2967258e-07 10.179741
5600 0.00040615846 0 2.8095814e-05 9.4628277e-07 9.4475909e-07 10.179201
5700 0.00040661759 0 2.8056252e-05 9.1418005e-07 9.3869835e-07 10.177942
5800 0.00040636342 0 2.7980285e-05 8.7191961e-07 9.4296893e-07 10.177042
5900 0.00040517906 0 2.7876934e-05 8.3277579e-07 9.2807515e-07 10.178694
6000 0.00040392762 0 2.7828073e-05 8.3950266e-07 9.4521092e-07 10.180166
6100 0.00040367162 0 2.7800472e-05 8.720166e-07 1.0332147e-06 10.179806
6200 0.00040335119 0 2.7762148e-05 8.5284463e-07 9.3150721e-07 10.179086
6300 0.00040340642 0 2.7769051e-05 8.3428098e-07 8.7041896e-07 10.178546
6400 0.0004030719 0 2.7741943e-05 7.952126e-07 8.3664709e-07 10.179282
6500 0.00040347682 0 2.7744595e-05 7.8058438e-07 8.4639064e-07 10.178382
6600 0.00040257759 0 2.7667961e-05 7.8150592e-07 8.5501519e-07 10.179298
6700 0.00040217981 0 2.7649415e-05 8.1293625e-07 9.4727792e-07 10.178938
6800 0.00040191405 0 2.7693195e-05 8.0894279e-07 1.1604089e-06 10.178938
6900 0.00040208358 0 2.7773245e-05 7.9264674e-07 1.1927033e-06 10.178758
7000 0.00040239724 0 2.782978e-05 8.330894e-07 1.2084905e-06 10.178758
7100 0.00040269303 0 2.7728862e-05 8.1375466e-07 1.0779344e-06 10.178758
7200 0.00040227155 0 2.7654709e-05 8.3101678e-07 9.7757461e-07 10.17969
7300 0.00040115701 0 2.7604211e-05 8.07161e-07 9.4401828e-07 10.181376
7400 0.00039998681 0 2.7528309e-05 7.8970732e-07 9.3464728e-07 10.182703
7500 0.00039916281 0 2.7432547e-05 7.9446882e-07 8.9887681e-07 10.182949
Loop time of 34.6948 on 4 procs for 7500 steps with 11096 atoms
Performance: 933857.672 tau/day, 216.171 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.32481 | 0.33445 | 0.34816 | 1.6 | 0.96
Bond | 26.728 | 28.076 | 29.753 | 23.9 | 80.92
Neigh | 0.68094 | 0.72261 | 0.7747 | 4.8 | 2.08
Comm | 1.5266 | 3.3654 | 4.8309 | 75.3 | 9.70
Output | 0.018332 | 0.018804 | 0.019756 | 0.4 | 0.05
Modify | 1.9305 | 2.0147 | 2.1302 | 6.0 | 5.81
Other | | 0.1631 | | | 0.47
Nlocal: 2774.00 ave 2898 max 2701 min
Histogram: 1 1 0 1 0 0 0 0 0 1
Nghost: 1165.25 ave 1208 max 1142 min
Histogram: 2 0 0 1 0 0 0 0 0 1
Neighs: 11425.0 ave 12539 max 10556 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Total # of neighbors = 45700
Ave neighs/atom = 4.1186013
Ave special neighs/atom = 10.184841
Neighbor list builds = 451
Dangerous builds = 0
Total wall time: 0:00:35

View File

@ -0,0 +1,219 @@
LAMMPS (27 Oct 2021)
units lj
dimension 3
boundary f f f
atom_style bond
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 -25 15 -22 22 -22 22
create_box 1 box bond/types 2 extra/bond/per/atom 20 extra/special/per/atom 50
Created orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823)
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 7529 atoms
using lattice units in orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823)
create_atoms CPU = 0.002 seconds
group plate region disk
7529 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 = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823)
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 ...
mass 1 1.0
neighbor 1.0 bin
pair_style bpm/spring
pair_coeff 1 1 1.0 1.0 1.0
fix 1 all nve
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 = 64 70 70
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 bpm/spring, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Added 38559 bonds, new total = 38559
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.002 seconds
create_bonds many projectile projectile 2 0.0 1.5
WARNING: Bonds are defined but no bond style is set (../force.cpp:191)
WARNING: Likewise 1-2 special neighbor interactions != 1.0 (../force.cpp:193)
Added 21869 bonds, new total = 60428
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
neighbor 0.3 bin
special_bonds lj 0.0 1.0 1.0 coul 1.0 1.0 1.0
bond_style bpm/spring store/local brkbond 100 time id1 id2
bond_coeff 1 1.0 0.04 1.0
bond_coeff 2 1.0 0.20 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.1
thermo_style custom step ke pe pxx pyy pzz c_tbond
thermo 100
thermo_modify lost ignore lost/bond ignore
#dump 1 all custom 100 atomDump id x y z c_nbond
dump 2 all local 100 brokenDump f_brkbond[1] f_brkbond[2] f_brkbond[3]
dump_modify 2 header no
run 7500
WARNING: No fixes with time integration, atoms won't move (../verlet.cpp:60)
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 = 98 108 108
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair bpm/spring, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 17.74 | 17.74 | 17.74 Mbytes
Step KinEng PotEng Pxx Pyy Pzz c_tbond
0 0.0010167873 0 7.298968e-05 0 0 10.8703
100 0.0010167873 0 7.298968e-05 -8.7429897e-20 -8.8470837e-20 10.8703
200 0.0010167873 0 7.298968e-05 -7.2809565e-20 -8.0915788e-20 10.8703
300 0.0009951439 0 9.9273671e-05 8.1569216e-06 8.0922512e-06 10.868142
400 0.00095142792 0 0.00012669557 -1.3413721e-05 -1.4800745e-05 10.849793
500 0.00092272662 0 8.1708784e-05 -9.7488701e-06 -1.3603634e-05 10.819752
600 0.00088967612 0 6.2587266e-05 -5.1954127e-06 -6.781587e-06 10.797985
700 0.00086070919 0 8.8529902e-05 -9.9431205e-06 -7.9905211e-06 10.776579
800 0.00083543943 0 7.5920357e-05 3.6381024e-07 3.7747551e-06 10.759309
900 0.00081190799 0 6.3678219e-05 5.4158243e-06 1.2751247e-05 10.744199
1000 0.00078828988 0 7.3079869e-05 -6.6410613e-06 -1.198683e-06 10.728368
1100 0.00075664718 0 6.2976995e-05 -4.7863299e-06 -3.9814556e-06 10.711819
1200 0.00072472205 0 4.9680233e-05 9.3093553e-06 4.4426393e-06 10.69401
1300 0.00070176532 0 5.4048176e-05 1.3051954e-05 7.5448558e-06 10.671164
1400 0.00068599319 0 5.4062404e-05 9.9930199e-06 1.0353154e-05 10.650117
1500 0.0006786164 0 4.5038593e-05 8.067571e-06 9.8825461e-06 10.636266
1600 0.00067466823 0 4.6733251e-05 9.8595584e-06 1.1551081e-05 10.621335
1700 0.00066847126 0 5.1472453e-05 2.1569974e-07 6.0070599e-06 10.6127
1800 0.00065711827 0 5.0355189e-05 -8.030203e-06 -3.1395588e-06 10.599568
1900 0.00063882539 0 4.7146888e-05 -2.0596242e-05 -1.6494542e-05 10.581939
2000 0.00061717894 0 4.6698781e-05 -2.5473048e-05 -2.7703615e-05 10.567188
2100 0.00059261327 0 3.7701055e-05 -2.4637803e-05 -3.3919162e-05 10.552617
2200 0.00056527158 0 3.2239421e-05 -1.8786685e-05 -2.4202734e-05 10.538406
2300 0.00054054919 0 2.7410334e-05 -6.701111e-06 -7.4354974e-06 10.520777
2400 0.00051820065 0 2.2997206e-05 1.5623767e-05 1.8687824e-05 10.501889
2500 0.00049647925 0 1.746693e-05 2.8814144e-05 3.5569425e-05 10.487498
2600 0.00047837258 0 1.4127067e-05 3.4245611e-05 4.0208577e-05 10.472387
2700 0.00046626924 0 1.3714876e-05 3.7922196e-05 4.1550346e-05 10.456377
2800 0.0004560167 0 1.5260976e-05 3.5632577e-05 3.7885738e-05 10.440007
2900 0.00045331059 0 1.5194832e-05 3.1036124e-05 2.8633755e-05 10.427955
3000 0.00045227799 0 1.4877378e-05 1.9327028e-05 2.1189487e-05 10.414283
3100 0.00044866178 0 2.0424612e-05 -2.7242288e-06 7.7121438e-06 10.40349
3200 0.00044336453 0 2.3276121e-05 -1.979069e-05 -4.2311089e-06 10.395575
3300 0.00043526526 0 2.3338132e-05 -2.834945e-05 -1.7302033e-05 10.389998
3400 0.00042817758 0 2.4374527e-05 -2.9870076e-05 -3.0623264e-05 10.382803
3500 0.00042182658 0 2.6120627e-05 -2.9449521e-05 -3.787776e-05 10.378126
3600 0.00041794291 0 2.4736957e-05 -2.4098172e-05 -3.0529166e-05 10.373628
3700 0.0004156005 0 2.7543305e-05 -1.2431749e-05 -1.8626096e-05 10.37075
3800 0.0004141461 0 2.4630482e-05 -6.345489e-06 -1.7375803e-05 10.368771
3900 0.00041328832 0 2.2220142e-05 4.1471034e-07 -1.3339476e-05 10.366972
4000 0.00041121725 0 2.3491321e-05 1.1284551e-05 -5.8651834e-06 10.364634
4100 0.00040761876 0 2.6688248e-05 1.9721625e-05 3.7536871e-06 10.362655
4200 0.00040301362 0 2.7601916e-05 1.9212118e-05 9.7175996e-06 10.359417
4300 0.00040001545 0 2.7243769e-05 1.6889359e-05 1.1857147e-05 10.3551
4400 0.00039654521 0 2.561083e-05 1.3863551e-05 1.0593597e-05 10.351142
4500 0.00039435924 0 2.4366458e-05 1.2545563e-05 1.1323962e-05 10.348804
4600 0.00039250006 0 2.3719127e-05 1.1015167e-05 8.5964046e-06 10.348444
4700 0.00039145496 0 2.2943915e-05 8.7824224e-06 5.0397129e-06 10.346825
4800 0.00039105331 0 2.4005757e-05 7.5899773e-06 9.033741e-07 10.344846
4900 0.0003898798 0 2.3819433e-05 4.9673894e-06 -2.3466459e-06 10.343587
5000 0.00038747508 0 2.3605028e-05 -1.1717437e-06 -6.1096657e-06 10.343047
5100 0.00038549022 0 2.3453798e-05 -9.9256693e-06 -9.3584148e-06 10.341788
5200 0.00038283936 0 2.5243567e-05 -1.5877598e-05 -9.9474447e-06 10.340169
5300 0.00038140888 0 2.5522223e-05 -1.9331435e-05 -1.1067039e-05 10.33873
5400 0.00037916674 0 2.5181488e-05 -2.1581255e-05 -1.1252641e-05 10.336931
5500 0.00037782932 0 2.691805e-05 -1.5768241e-05 -5.6704695e-06 10.334952
5600 0.00037628832 0 2.5851445e-05 -1.4239811e-05 -1.9122536e-06 10.333153
5700 0.00037451913 0 2.4758416e-05 -1.3252284e-05 -1.9222041e-06 10.331714
5800 0.00037328662 0 2.2507032e-05 -9.6704092e-06 -7.5470215e-06 10.330095
5900 0.00037253111 0 2.3303086e-05 -4.2828034e-06 -7.888056e-06 10.328476
6000 0.00037171133 0 2.4042456e-05 -4.7684985e-06 -6.5164336e-06 10.327397
6100 0.00036986726 0 2.4938695e-05 -4.8738316e-06 -4.5380007e-06 10.327037
6200 0.0003675822 0 2.3322229e-05 -4.6333093e-06 -5.7086464e-06 10.327037
6300 0.00036552389 0 2.1435354e-05 -4.8971566e-06 -3.5935426e-06 10.327037
6400 0.00036488091 0 2.0813994e-05 -3.8333319e-06 -3.6595059e-06 10.327037
6500 0.00036447973 0 2.2241876e-05 8.7797361e-08 -4.141203e-06 10.327037
6600 0.00036383343 0 2.269485e-05 4.9364593e-06 1.3062133e-06 10.326677
6700 0.00036305076 0 2.1838759e-05 6.4587048e-06 4.7758772e-06 10.326318
6800 0.00036226601 0 2.2916622e-05 6.044926e-06 5.0291597e-06 10.325598
6900 0.00036175279 0 2.2691667e-05 6.9998847e-06 5.8988637e-06 10.324699
7000 0.00036143633 0 2.1725813e-05 8.1268152e-06 5.0390503e-06 10.324519
7100 0.0003610248 0 2.1799675e-05 8.65795e-06 3.1360368e-06 10.323439
7200 0.00036086259 0 2.2198029e-05 5.1764734e-06 5.4798783e-07 10.32308
7300 0.00036099757 0 2.4160496e-05 1.0310325e-06 -5.115075e-07 10.32254
7400 0.00036129334 0 2.5325018e-05 -9.4918158e-07 -1.7064957e-06 10.32218
7500 0.00036136655 0 2.3513198e-05 -3.8618451e-06 -4.4344772e-06 10.321281
Loop time of 5.76963 on 4 procs for 7500 steps with 11118 atoms
Performance: 11231223.476 tau/day, 1299.910 timesteps/s
96.3% 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.29183 | 0.31143 | 0.32961 | 2.4 | 5.40
Bond | 2.76 | 2.9181 | 3.0698 | 7.2 | 50.58
Neigh | 0.6247 | 0.6775 | 0.71319 | 4.5 | 11.74
Comm | 0.76389 | 0.98813 | 1.2487 | 19.2 | 17.13
Output | 0.1312 | 0.13162 | 0.13257 | 0.2 | 2.28
Modify | 0.60526 | 0.63574 | 0.66339 | 2.6 | 11.02
Other | | 0.1071 | | | 1.86
Nlocal: 2779.50 ave 2862 max 2686 min
Histogram: 1 0 0 0 0 1 1 0 0 1
Nghost: 1183.25 ave 1220 max 1134 min
Histogram: 1 0 0 0 1 0 0 0 1 1
Neighs: 11828.8 ave 12387 max 11053 min
Histogram: 1 0 0 0 1 0 0 0 1 1
Total # of neighbors = 47315
Ave neighs/atom = 4.2557115
Ave special neighs/atom = 10.321461
Neighbor list builds = 421
Dangerous builds = 11
Total wall time: 0:00:05

View File

@ -1,215 +0,0 @@
LAMMPS (30 Jul 2021)
units lj
dimension 3
boundary f f f
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 -25 15 -22 22 -22 22
create_box 1 box bond/types 2 extra/bond/per/atom 20 extra/special/per/atom 50
Created orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823)
1 by 1 by 1 MPI processor grid
region disk cylinder x 0.0 0.0 20.0 -0.5 0.5
create_atoms 1 region disk
Created 7529 atoms
using lattice units in orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823)
create_atoms CPU = 0.004 seconds
group plate region disk
7529 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 = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823)
create_atoms CPU = 0.002 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.01 0.01 0.1 0.02 0.002 0.002
bond_coeff 2 1.0 0.2 0.02 0.02 0.20 0.04 0.04 0.04 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 = 64 70 70
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 38559 bonds, new total = 38559
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.007 seconds
create_bonds many projectile projectile 2 0.0 1.5
Added 21869 bonds, new total = 60428
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.010 seconds
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
thermo_modify lost ignore lost/bond ignore
#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 7500
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 = 98 108 108
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) = 39.18 | 39.18 | 39.18 Mbytes
Step KinEng PotEng Pxx Pyy Pzz c_tbond
0 0.00053238861 0 3.8217307e-05 0 0 10.8703
100 0.00053238861 0 3.8217307e-05 3.7024766e-13 -2.6107956e-13 10.8703
200 0.00053238861 0 3.8217307e-05 -4.6764996e-13 5.7734804e-13 10.8703
300 0.00053238861 0 3.8217308e-05 -6.6404932e-13 -1.4463201e-13 10.8703
400 0.00053238861 0 3.8217307e-05 -1.5842255e-13 3.2646699e-14 10.8703
500 0.00053102307 0 3.6857657e-05 -5.0613842e-07 -4.5464639e-07 10.8703
600 0.00051549565 0 1.5836226e-05 -6.6250357e-06 -7.1458399e-06 10.868322
700 0.00050120381 0 -1.9467767e-05 -7.7209878e-06 -1.121158e-05 10.850333
800 0.00049861454 0 1.5365076e-05 5.214591e-06 2.7950985e-06 10.803742
900 0.00049582022 0 5.7445368e-05 -2.1846154e-05 -2.3927093e-05 10.738082
1000 0.00049342915 0 4.9596969e-05 -8.1907786e-06 -1.3269952e-05 10.688433
1100 0.00048639213 0 1.0822487e-05 3.9352339e-05 4.0409565e-05 10.667026
1200 0.000483091 0 3.8492853e-06 2.2015581e-05 3.1490077e-05 10.646159
1300 0.00047987023 0 5.8429983e-05 -7.8096854e-06 3.9318833e-06 10.631229
1400 0.00048104927 0 4.6603937e-05 -1.2320299e-05 -1.010841e-05 10.619536
1500 0.00047270384 0 -1.622772e-06 1.5996657e-05 1.5652658e-05 10.606944
1600 0.00045720595 0 1.64434e-06 1.0627449e-05 7.2901589e-06 10.597949
1700 0.00044826095 0 3.3113848e-05 -3.1886382e-05 -4.1076437e-05 10.584458
1800 0.00044859158 0 3.8589858e-05 -3.217135e-05 -4.4394932e-05 10.554236
1900 0.00044410417 0 1.6071124e-06 3.469787e-06 -1.172431e-05 10.528153
2000 0.00043690537 0 1.8298385e-05 3.2800463e-05 2.3766026e-05 10.49955
2100 0.00043113053 0 5.5169319e-05 1.0337577e-05 6.8334001e-06 10.449541
2200 0.00042795839 0 3.3555532e-05 -7.8682107e-06 1.4501739e-06 10.40277
2300 0.0004240013 0 8.8868452e-06 1.8196289e-06 2.755748e-05 10.362115
2400 0.00042426888 0 2.3953861e-05 1.7614888e-05 4.2827512e-05 10.340529
2500 0.00041903776 0 5.1969184e-05 2.5725967e-05 4.2229194e-05 10.324879
2600 0.00042070944 0 4.0633614e-05 2.6089786e-05 3.2212886e-05 10.313006
2700 0.00041907255 0 1.0826647e-05 2.7725133e-05 3.3535626e-05 10.301673
2800 0.00041823551 0 2.7757924e-05 1.462054e-05 1.629062e-05 10.288001
2900 0.00041833009 0 5.016926e-05 2.1116657e-06 -9.0474367e-06 10.276129
3000 0.0004200714 0 2.9312093e-05 8.0995894e-06 -1.427634e-05 10.266954
3100 0.00041930877 0 8.2905585e-06 2.5106255e-06 -6.0475079e-06 10.259039
3200 0.00042002824 0 2.7415565e-05 -2.5467008e-05 -1.1758229e-05 10.249146
3300 0.00041772304 0 4.7010143e-05 -3.2166248e-05 -2.3740064e-05 10.245728
3400 0.00041567147 0 2.265559e-05 -1.4994351e-05 -1.4387458e-05 10.244828
3500 0.00041264993 0 9.4675076e-06 -1.2940542e-05 -2.6164909e-06 10.243929
3600 0.00041296772 0 3.2135436e-05 -2.3723233e-05 -1.1358132e-05 10.243029
3700 0.00041218299 0 4.3546104e-05 -1.6744403e-05 -2.1466737e-05 10.240871
3800 0.00041196427 0 2.4626877e-05 8.2428335e-06 -9.6621514e-06 10.236913
3900 0.00041061174 0 1.5527454e-05 1.4796165e-05 8.5041818e-06 10.229718
4000 0.00041008163 0 3.6758236e-05 -4.1693239e-06 -2.3638032e-07 10.221083
4100 0.00040807476 0 4.2903311e-05 -8.7361319e-06 -9.2843568e-06 10.211909
4200 0.00040749974 0 2.1764542e-05 -1.5964475e-07 1.1116464e-06 10.205972
4300 0.00040585168 0 1.6398189e-05 -6.2081757e-07 1.4245018e-05 10.203454
4400 0.00040614156 0 3.8921994e-05 -1.0816449e-05 8.8070462e-06 10.198237
4500 0.00040550623 0 4.1195875e-05 -4.4468565e-06 -4.5109048e-06 10.19356
4600 0.00040471568 0 1.9924175e-05 8.0584659e-06 2.8014197e-06 10.186904
4700 0.00040443998 0 2.0848233e-05 7.2219213e-06 8.5736771e-06 10.182947
4800 0.00040411017 0 3.8995426e-05 -3.5139599e-06 -1.7346701e-06 10.17773
4900 0.00040369283 0 3.8616558e-05 -3.8837458e-07 -6.5227651e-06 10.174492
5000 0.00040347603 0 1.957792e-05 5.3591428e-06 5.0851337e-06 10.171074
5100 0.00040318 0 2.0628515e-05 -6.133528e-06 8.9227218e-06 10.166217
5200 0.00040396442 0 3.9097282e-05 -1.3317561e-05 -2.4599499e-06 10.158842
5300 0.00040420662 0 3.5316538e-05 -1.4346009e-06 -5.7802302e-06 10.154704
5400 0.00040419432 0 1.9706975e-05 6.6651292e-06 3.0821293e-06 10.148768
5500 0.00040500025 0 2.2492943e-05 -8.2260426e-06 4.6721228e-06 10.14463
5600 0.00040447185 0 3.8628198e-05 -8.844675e-06 -6.7043678e-07 10.143191
5700 0.00040435949 0 3.5236357e-05 5.3512632e-06 -2.9663861e-07 10.141752
5800 0.00040356839 0 1.8078404e-05 7.7468465e-06 4.1618489e-06 10.141045
5900 0.00040255066 0 2.5803838e-05 9.5521231e-07 3.4211797e-06 10.14251
6000 0.00040255799 0 3.8202776e-05 -3.5222942e-06 -7.4050996e-06 10.14233
6100 0.00040280742 0 3.0004475e-05 2.0612828e-06 -7.0155478e-06 10.14197
6200 0.00040180209 0 1.8453425e-05 2.5937959e-06 6.019204e-06 10.142703
6300 0.00040159364 0 2.6608078e-05 -3.4326767e-06 6.5089502e-06 10.142163
6400 0.00039963271 0 3.7746341e-05 -1.3954533e-06 -6.6816781e-06 10.143076
6500 0.0003995975 0 2.7758521e-05 6.370558e-06 -8.535581e-06 10.143076
6600 0.00039973428 0 1.8062746e-05 6.3493548e-06 1.2970441e-06 10.143076
6700 0.00039987367 0 2.7872598e-05 2.9794629e-07 3.1449123e-06 10.143988
6800 0.00039942046 0 3.6871697e-05 4.4181241e-07 -3.7266658e-06 10.146188
6900 0.00039937936 0 2.73304e-05 6.4090146e-06 1.1834424e-06 10.147835
7000 0.00039934517 0 2.0161434e-05 5.3875016e-06 1.141564e-05 10.147835
7100 0.00039884824 0 3.0603701e-05 7.327098e-07 5.1369462e-06 10.148402
7200 0.00039774709 0 3.5965545e-05 3.6906864e-06 -5.6506465e-06 10.148969
7300 0.00039642146 0 2.4883695e-05 7.2866197e-06 -8.2009411e-07 10.151379
7400 0.00039605388 0 2.0790699e-05 2.6616664e-06 1.1522615e-05 10.152321
7500 0.00039471805 0 3.0911798e-05 -4.6441697e-06 5.9470361e-06 10.154748
Loop time of 114.934 on 1 procs for 7500 steps with 11089 atoms
Performance: 281901.613 tau/day, 65.255 timesteps/s
99.7% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.2383 | 1.2383 | 1.2383 | 0.0 | 1.08
Bond | 101.4 | 101.4 | 101.4 | 0.0 | 88.22
Neigh | 2.7723 | 2.7723 | 2.7723 | 0.0 | 2.41
Comm | 0.075342 | 0.075342 | 0.075342 | 0.0 | 0.07
Output | 0.06732 | 0.06732 | 0.06732 | 0.0 | 0.06
Modify | 9.1154 | 9.1154 | 9.1154 | 0.0 | 7.93
Other | | 0.2695 | | | 0.23
Nlocal: 11089.0 ave 11089 max 11089 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0.00000 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 45554.0 ave 45554 max 45554 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 45554
Ave neighs/atom = 4.1080350
Ave special neighs/atom = 10.156101
Neighbor list builds = 467
Dangerous builds = 0
Total wall time: 0:01:55

View File

@ -1,218 +0,0 @@
LAMMPS (30 Jul 2021)
units lj
dimension 3
boundary f f f
atom_style bond
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 -25 15 -22 22 -22 22
create_box 1 box bond/types 2 extra/bond/per/atom 20 extra/special/per/atom 50
Created orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823)
1 by 1 by 1 MPI processor grid
region disk cylinder x 0.0 0.0 20.0 -0.5 0.5
create_atoms 1 region disk
Created 7529 atoms
using lattice units in orthogonal box = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823)
create_atoms CPU = 0.002 seconds
group plate region disk
7529 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 = (-39.685026 -34.922823 -34.922823) to (23.811016 34.922823 34.922823)
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 ...
mass 1 1.0
neighbor 1.0 bin
pair_style bpm/spring
bond_style bpm/spring store/local 2 time id1 id2
pair_coeff 1 1 1.0 1.0 1.0
bond_coeff 1 1.0 0.04 1.0
bond_coeff 2 1.0 0.20 1.0
fix 1 all nve
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 = 64 70 70
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 bpm/spring, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Added 38559 bonds, new total = 38559
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.004 seconds
create_bonds many projectile projectile 2 0.0 1.5
WARNING: Communication cutoff 2.6 is shorter than a bond length based estimate of 2.799982026012842. This may lead to errors. (../comm.cpp:734)
Added 21869 bonds, new total = 60428
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.005 seconds
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.1
thermo_style custom step ke pe pxx pyy pzz c_tbond
thermo 100
thermo_modify lost ignore lost/bond ignore
dump 1 all custom 100 atomDump id 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 7500
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 = 98 108 108
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair bpm/spring, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 24.30 | 24.30 | 24.30 Mbytes
Step KinEng PotEng Pxx Pyy Pzz c_tbond
0 0.0010167873 0 7.298968e-05 0 0 10.8703
100 0.0010167873 0 7.298968e-05 -8.7429897e-20 -8.8470837e-20 10.8703
200 0.0010167873 0 7.298968e-05 -7.2809565e-20 -8.0915788e-20 10.8703
300 0.00099636578 -7.0816681e-06 9.8353035e-05 8.4642384e-06 8.0469072e-06 10.867242
400 0.00095644407 -4.9965293e-06 0.00012441378 -1.2397227e-05 -1.4980269e-05 10.839719
500 0.00092977183 -3.86131e-06 7.8605818e-05 -2.7329699e-06 -7.396399e-06 10.799424
600 0.00089787559 -2.9680488e-06 6.335469e-05 2.1448463e-06 4.5296678e-07 10.768663
700 0.00087244204 -2.6549464e-06 8.7340708e-05 -4.5516627e-06 -1.8690112e-06 10.74186
800 0.00084695959 -3.8045185e-06 8.0745955e-05 -4.5691607e-06 -1.6326641e-06 10.715237
900 0.00082108378 -3.7632176e-06 6.6501438e-05 -4.9020688e-06 3.5594859e-06 10.691131
1000 0.00079998853 -4.8468066e-06 6.5750228e-05 -8.3521669e-06 5.2266599e-06 10.66127
1100 0.00077368031 -2.5220164e-06 5.8210276e-05 2.6426591e-06 4.938121e-06 10.643461
1200 0.00074855587 -2.9570391e-06 5.2368186e-05 1.6897526e-06 2.4286268e-06 10.622054
1300 0.00072611594 -3.7109651e-06 5.8006188e-05 -2.6857728e-06 -5.6178729e-06 10.595611
1400 0.00070923315 -4.2629754e-06 5.3503366e-05 4.7475371e-06 -7.7268696e-06 10.569347
1500 0.00069740085 -3.0765543e-06 4.6753588e-05 1.2633383e-05 2.5315165e-06 10.540925
1600 0.00068657492 -3.0455076e-06 5.1582206e-05 1.4017258e-05 8.8044278e-06 10.519338
1700 0.00067656011 -3.4280513e-06 5.0396015e-05 8.4547122e-06 8.0820402e-06 10.50045
1800 0.00066870293 -3.4484153e-06 4.815639e-05 7.5212913e-07 1.1483891e-06 10.488217
1900 0.00065786507 -4.2634733e-06 4.9330522e-05 -1.108344e-05 -7.4259153e-06 10.474726
2000 0.00064106212 -4.7031033e-06 4.552393e-05 -1.7535521e-05 -1.6263295e-05 10.453139
2100 0.00062134889 -3.5304279e-06 3.809727e-05 -2.2412517e-05 -2.2946813e-05 10.433891
2200 0.00059830887 -3.2395481e-06 3.5740566e-05 -1.796758e-05 -1.8599386e-05 10.417881
2300 0.00057522207 -2.9905465e-06 3.4002427e-05 -6.7236311e-06 -1.4718938e-05 10.401511
2400 0.00055324818 -4.519622e-06 2.8286989e-05 5.379357e-06 -2.3963109e-06 10.383342
2500 0.00053140276 -4.5450401e-06 2.6655404e-05 1.4698667e-05 1.5782329e-05 10.362835
2600 0.00051144636 -4.1683588e-06 2.4944253e-05 2.5072313e-05 2.3558987e-05 10.33837
2700 0.00049421672 -5.8949891e-06 2.0313469e-05 2.4375973e-05 2.3609392e-05 10.320921
2800 0.00047936442 -5.7929485e-06 1.8523402e-05 1.6894086e-05 2.34875e-05 10.29016
2900 0.00046579117 -6.7340102e-06 1.8239135e-05 1.9583159e-05 1.821014e-05 10.266954
3000 0.00045439794 -5.5845157e-06 1.7413232e-05 2.0937177e-05 1.0934407e-05 10.246447
3100 0.00044541881 -5.1519292e-06 1.6153079e-05 1.4874654e-05 4.1969429e-06 10.233495
3200 0.00043791644 -5.0105552e-06 2.0005341e-05 4.7318756e-06 1.4446699e-08 10.223961
3300 0.00043012829 -4.8924048e-06 2.275482e-05 -6.5889472e-07 2.8411666e-06 10.212448
3400 0.00042478693 -4.7736643e-06 1.8655218e-05 -1.0408543e-05 -2.5097213e-06 10.203814
3500 0.00041885602 -4.1938783e-06 1.6924096e-05 -1.6723773e-05 -1.0907364e-05 10.197158
3600 0.00041470126 -4.4256374e-06 2.1660002e-05 -1.2589975e-05 -8.9195821e-06 10.191042
3700 0.00041103162 -4.0558298e-06 2.1463315e-05 -1.1052983e-05 -1.1288374e-05 10.186185
3800 0.0004064031 -4.085737e-06 2.1186979e-05 -7.6827664e-06 -8.4420523e-06 10.182407
3900 0.00040439659 -3.8043843e-06 2.2246535e-05 -9.8091295e-06 -6.337729e-06 10.179169
4000 0.00040248064 -5.207414e-06 2.4991678e-05 -8.9269116e-06 -1.3269351e-06 10.175931
4100 0.00039984629 -3.9470913e-06 2.0638508e-05 -1.0311727e-05 -7.0570926e-07 10.171973
4200 0.00039748539 -4.1530392e-06 2.2201704e-05 -1.9419136e-06 3.9363863e-06 10.169995
4300 0.00039699527 -4.4361889e-06 2.4637559e-05 3.0466639e-06 2.6075192e-06 10.167836
4400 0.00039577202 -4.5243252e-06 2.3254304e-05 9.3960261e-06 7.0976687e-06 10.165138
4500 0.00039438637 -4.4623531e-06 2.5479152e-05 1.3111125e-05 9.1080155e-06 10.163699
4600 0.00039279153 -4.3667553e-06 2.4372973e-05 1.6089732e-05 8.9825485e-06 10.162439
4700 0.00039304328 -4.0850029e-06 2.3031657e-05 1.4377571e-05 1.0046115e-05 10.161
4800 0.0003930794 -4.2247499e-06 2.3528523e-05 8.7677526e-06 1.1123548e-05 10.16082
4900 0.00039357048 -4.0441827e-06 2.2238523e-05 7.0463814e-06 1.0318253e-05 10.160281
5000 0.00039305174 -4.0989874e-06 2.3082845e-05 4.7559622e-06 9.1784689e-06 10.159561
5100 0.00039281446 -3.9654637e-06 2.4406601e-05 6.6792841e-07 3.9479578e-06 10.158662
5200 0.00039266969 -3.7000839e-06 2.3342952e-05 -4.0814362e-07 -1.7091512e-07 10.157762
5300 0.00039179548 -3.6041015e-06 2.2308731e-05 -2.3038721e-06 -7.7478695e-06 10.156863
5400 0.00039126557 -3.3816417e-06 2.5032837e-05 -4.2112558e-06 -1.0544895e-05 10.155244
5500 0.00039013707 -3.2015334e-06 2.4333377e-05 -9.4600548e-06 -8.164991e-06 10.153985
5600 0.00038863118 -3.2457645e-06 2.5234836e-05 -1.3025121e-05 -4.212353e-06 10.152545
5700 0.00038755505 -3.1192824e-06 2.4611567e-05 -1.7034285e-05 -7.4484904e-06 10.150926
5800 0.00038682794 -3.159343e-06 2.4790374e-05 -2.1244353e-05 -9.5959604e-06 10.150027
5900 0.00038514658 -3.1365816e-06 2.4775049e-05 -2.013337e-05 -8.7609997e-06 10.147688
6000 0.00038273205 -3.5768746e-06 2.4513287e-05 -1.7197146e-05 -7.7627989e-06 10.14553
6100 0.00038118307 -3.2886293e-06 2.4104512e-05 -1.1683647e-05 -9.0156319e-06 10.144091
6200 0.00037877747 -3.5457022e-06 2.546258e-05 -5.3008572e-06 -1.0680602e-05 10.142292
6300 0.00037631131 -3.7852195e-06 2.4823247e-05 -5.9313668e-06 -8.837521e-06 10.141033
6400 0.00037412558 -4.1058533e-06 2.434972e-05 -5.8192486e-06 -1.9415666e-06 10.139773
6500 0.00037259808 -4.0091084e-06 2.4652474e-05 -4.5769183e-06 -2.9449568e-06 10.137974
6600 0.00037090733 -4.1292855e-06 2.4417194e-05 -4.1646449e-06 8.6273141e-07 10.134916
6700 0.00036992828 -4.0221056e-06 2.3588901e-05 -6.8333754e-06 -2.5804065e-07 10.133477
6800 0.00036883832 -4.0617393e-06 2.4407327e-05 -4.6933138e-06 5.9097433e-07 10.131319
6900 0.00036806181 -3.98881e-06 2.5070794e-05 -1.8839397e-06 1.8686666e-06 10.129879
7000 0.00036759453 -3.8395938e-06 2.499485e-05 5.8078766e-06 5.491628e-06 10.12844
7100 0.00036661989 -3.807276e-06 2.3841577e-05 9.8514185e-06 2.8498309e-06 10.125922
7200 0.0003643494 -3.8754489e-06 2.4003718e-05 6.4101669e-06 -1.0308979e-06 10.124483
7300 0.00036261161 -3.8682002e-06 2.345457e-05 6.5773508e-06 1.0241788e-06 10.123583
7400 0.00036215882 -3.8404085e-06 2.2989219e-05 1.3012853e-05 5.3465279e-06 10.122324
7500 0.00036219767 -3.7430511e-06 2.6189702e-05 1.3646428e-05 7.8525122e-06 10.121065
Loop time of 17.1159 on 1 procs for 7500 steps with 11118 atoms
Performance: 3785956.989 tau/day, 438.189 timesteps/s
97.1% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.1678 | 1.1678 | 1.1678 | 0.0 | 6.82
Bond | 7.299 | 7.299 | 7.299 | 0.0 | 42.64
Neigh | 3.105 | 3.105 | 3.105 | 0.0 | 18.14
Comm | 0.049905 | 0.049905 | 0.049905 | 0.0 | 0.29
Output | 1.4391 | 1.4391 | 1.4391 | 0.0 | 8.41
Modify | 3.8866 | 3.8866 | 3.8866 | 0.0 | 22.71
Other | | 0.1685 | | | 0.98
Nlocal: 11118.0 ave 11118 max 11118 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0.00000 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 47063.0 ave 47063 max 47063 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 47063
Ave neighs/atom = 4.2330455
Ave special neighs/atom = 10.121065
Neighbor list builds = 464
Dangerous builds = 1
Total wall time: 0:00:17

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -34,7 +34,10 @@ using namespace LAMMPS_NS;
BondBPM::BondBPM(LAMMPS *lmp) : Bond(lmp)
{
id_fix_dummy = nullptr;
id_fix_dummy2 = nullptr;
id_fix_store_local = nullptr;
id_fix_bond_history = nullptr;
id_fix_prop_atom = nullptr;
id_fix_update = nullptr;
fix_store_local = nullptr;
@ -49,11 +52,15 @@ BondBPM::BondBPM(LAMMPS *lmp) : Bond(lmp)
r0_max_estimate = 0.0;
max_stretch = 1.0;
// create dummy fix as placeholder for FixUpdateSpecialBonds
// create dummy fix as placeholder for FixUpdateSpecialBonds & BondHistory
// this is so final order of Modify:fix will conform to input script
// BondHistory technically only needs this if updateflag = 1
id_fix_dummy = utils::strdup("BPM_DUMMY" + std::to_string(instance_me));
id_fix_dummy = utils::strdup("BPM_DUMMY_" + std::to_string(instance_me));
modify->add_fix(fmt::format("{} all DUMMY ", id_fix_dummy));
id_fix_dummy2 = utils::strdup("BPM_DUMMY2_" + std::to_string(instance_me));
modify->add_fix(fmt::format("{} all DUMMY ", id_fix_dummy2));
}
/* ---------------------------------------------------------------------- */
@ -63,12 +70,16 @@ BondBPM::~BondBPM()
delete [] pack_choice;
if (id_fix_dummy) modify->delete_fix(id_fix_dummy);
if (id_fix_dummy2) modify->delete_fix(id_fix_dummy2);
if (id_fix_update) modify->delete_fix(id_fix_update);
if (id_fix_bond_history) modify->delete_fix(id_fix_bond_history);
if (id_fix_store_local) modify->delete_fix(id_fix_store_local);
if (id_fix_prop_atom) modify->delete_fix(id_fix_prop_atom);
delete [] id_fix_dummy;
delete [] id_fix_dummy2;
delete [] id_fix_update;
delete [] id_fix_bond_history;
delete [] id_fix_store_local;
delete [] id_fix_prop_atom;
@ -83,7 +94,7 @@ void BondBPM::init_style()
if (id_fix_store_local) {
ifix = modify->find_fix(id_fix_store_local);
if (ifix < 0) error->all(FLERR, "Cannot find fix store/local");
if (strcmp(modify->fix[ifix]->style, "store/local") != 0)
if (strcmp(modify->fix[ifix]->style, "STORE_LOCAL") != 0)
error->all(FLERR, "Incorrect fix style matched, not store/local");
fix_store_local = (FixStoreLocal *) modify->fix[ifix];
fix_store_local->nvalues = nvalues;
@ -115,7 +126,7 @@ void BondBPM::init_style()
error->all(FLERR,"Without overlay/pair, BPM bond sytles requires special Coulomb weights = 1,1,1");
if (id_fix_dummy) {
id_fix_update = utils::strdup("BPM_update_special_bonds" + std::to_string(instance_me));
id_fix_update = utils::strdup("BPM_UPDATE_SPECIAL_BONDS_" + std::to_string(instance_me));
fix_update_special_bonds = (FixUpdateSpecialBonds *) modify->replace_fix(id_fix_dummy,
fmt::format("{} all UPDATE_SPECIAL_BONDS", id_fix_update),1);
delete [] id_fix_dummy;
@ -148,14 +159,14 @@ void BondBPM::settings(int narg, char **arg)
{
leftover_args.clear();
int local_freq;
int iarg = 0;
while (iarg < narg) {
if (strcmp(arg[iarg], "store/local") == 0) {
nvalues = 0;
local_freq = utils::inumeric(FLERR, arg[iarg+1], false, lmp);
id_fix_store_local = utils::strdup(arg[iarg+1]);
store_local_freq = utils::inumeric(FLERR, arg[iarg+2], false, lmp);
pack_choice = new FnPtrPack[narg - iarg - 1];
iarg += 2;
iarg += 3;
while (iarg < narg) {
if (strcmp(arg[iarg], "id1") == 0) {
pack_choice[nvalues++] = &BondBPM::pack_id1;
@ -181,7 +192,7 @@ void BondBPM::settings(int narg, char **arg)
} else {
break;
}
iarg ++;
iarg ++;
}
} else if (strcmp(arg[iarg], "overlay/pair") == 0) {
overlay_flag = 1;
@ -192,24 +203,31 @@ void BondBPM::settings(int narg, char **arg)
}
}
if (nvalues != 0 && !id_fix_store_local) {
//Todo, assign ID and create fix id_fix_store_local = utils::strdup(arg[iarg+1]);
if (id_fix_store_local) {
if (nvalues == 0) error->all(FLERR,
"Bond style bpm/rotational must include at least one value to output");
memory->create(output_data, nvalues, "bond/bpm:output_data");
// Use store property to save reference positions as it can transfer to ghost atoms
int ifix = modify->find_fix(id_fix_store_local);
if (ifix < 0) {
modify->add_fix(fmt::format("{} all STORE_LOCAL {} {}",
id_fix_store_local, store_local_freq, nvalues));
ifix = modify->find_fix(id_fix_store_local);
}
fix_store_local = (FixStoreLocal *) modify->fix[ifix];
// Use property/atom to save reference positions as it can transfer to ghost atoms
// This won't work for instances where bonds are added (e.g. fix pour) but in those cases
// a reference state isn't well defined
if (prop_atom_flag == 1) {
id_fix_prop_atom = utils::strdup("BPM_property_atom" + std::to_string(instance_me));
int ifix = modify->find_fix(id_fix_prop_atom);
char *x_ref_id = utils::strdup("BPM_X_REF" + std::to_string(instance_me));
char *y_ref_id = utils::strdup("BPM_Y_REF" + std::to_string(instance_me));
char *z_ref_id = utils::strdup("BPM_Z_REF" + std::to_string(instance_me));
ifix = modify->find_fix(id_fix_prop_atom);
if (ifix < 0) {
modify->add_fix(fmt::format("{} all property/atom {} {} {} ghost yes",
id_fix_prop_atom, x_ref_id, y_ref_id, z_ref_id));

View File

@ -37,10 +37,12 @@ class BondBPM : public Bond {
protected:
double r0_max_estimate;
double max_stretch;
int store_local_freq;
std::vector<int> leftover_args;
char *id_fix_dummy, *id_fix_update;
char *id_fix_dummy, *id_fix_dummy2;
char *id_fix_update, *id_fix_bond_history;
char *id_fix_store_local, *id_fix_prop_atom;
class FixStoreLocal *fix_store_local;
class FixBondHistory *fix_bond_history;

View File

@ -44,8 +44,6 @@ BondBPMRotational::BondBPMRotational(LAMMPS *lmp) : BondBPM(lmp)
BondBPMRotational::~BondBPMRotational()
{
if (fix_bond_history) modify->delete_fix("BOND_HISTORY_BPM_ROTATIONAL");
if (allocated) {
memory->destroy(setflag);
memory->destroy(Kr);
@ -641,9 +639,13 @@ void BondBPMRotational::init_style()
if(domain->dimension == 2)
error->warning(FLERR, "Bond style bpm/rotational not intended for 2d use");
if (!fix_bond_history)
fix_bond_history = (FixBondHistory *) modify->add_fix(
"HISTORY_BPM_ROTATIONAL" + std::to_string(instance_me) + " all BOND_HISTORY 0 4");
if (!id_fix_bond_history) {
id_fix_bond_history = utils::strdup("HISTORY_BPM_ROTATIONAL" + std::to_string(instance_me));
fix_bond_history = (FixBondHistory *) modify->replace_fix(id_fix_dummy2,
fmt::format("{} all BOND_HISTORY 0 4", id_fix_bond_history),1);
delete [] id_fix_dummy2;
id_fix_dummy2 = nullptr;
}
}
/* ---------------------------------------------------------------------- */

View File

@ -39,8 +39,6 @@ BondBPMSpring::BondBPMSpring(LAMMPS *lmp) : BondBPM(lmp)
BondBPMSpring::~BondBPMSpring()
{
if (fix_bond_history) modify->delete_fix("BOND_HISTORY_BPM_SPRING");
if (allocated) {
memory->destroy(setflag);
memory->destroy(k);
@ -277,9 +275,13 @@ void BondBPMSpring::init_style()
if (comm->ghost_velocity == 0)
error->all(FLERR,"Bond bpm/spring requires ghost atoms store velocity");
if (!fix_bond_history)
fix_bond_history = (FixBondHistory *) modify->add_fix(
"HISTORY_BPM_SPRING_" + std::to_string(instance_me) + " all BOND_HISTORY 0 1");
if (!id_fix_bond_history) {
id_fix_bond_history = utils::strdup("HISTORY_BPM_ROTATIONAL" + std::to_string(instance_me));
fix_bond_history = (FixBondHistory *) modify->replace_fix(id_fix_dummy2,
fmt::format("{} all BOND_HISTORY 0 1", id_fix_bond_history),1);
delete [] id_fix_dummy2;
id_fix_dummy2 = nullptr;
}
}
/* ---------------------------------------------------------------------- */

View File

@ -52,11 +52,12 @@ PairTracker::PairTracker(LAMMPS *lmp) :
// create dummy fix as placeholder for FixNeighHistory
// this is so final order of Modify:fix will conform to input script
id_fix_dummy = utils::strdup("TRACKER_DUMMY_" + std::to_string(instance_me));
modify->add_fix(fmt::format("{} all DUMMY ", id_fix_dummy));
fix_history = nullptr;
modify->add_fix("NEIGH_HISTORY_TRACK_DUMMY all DUMMY");
fix_dummy = (FixDummy *) modify->fix[modify->nfix - 1];
id_fix_history = nullptr;
id_fix_store_local = nullptr;
fix_history = nullptr;
fix_store_local = nullptr;
output_data = nullptr;
@ -68,10 +69,9 @@ PairTracker::PairTracker(LAMMPS *lmp) :
PairTracker::~PairTracker()
{
if (!fix_history)
modify->delete_fix("NEIGH_HISTORY_TRACK_DUMMY");
else
modify->delete_fix("NEIGH_HISTORY_TRACK");
if (id_fix_dummy) modify->delete_fix(id_fix_dummy);
if (fix_history) modify->delete_fix(id_fix_history);
if (id_fix_store_local) modify->delete_fix(id_fix_store_local);
if (allocated) {
memory->destroy(setflag);
@ -86,7 +86,10 @@ PairTracker::~PairTracker()
delete[] pack_choice;
delete[] id_fix_dummy;
delete[] id_fix_history;
delete[] id_fix_store_local;
memory->destroy(output_data);
memory->destroy(type_filter);
}
@ -229,15 +232,16 @@ void PairTracker::allocate()
void PairTracker::settings(int narg, char **arg)
{
if (narg < 1) error->all(FLERR, "Illegal pair_style command");
if (narg < 2) error->all(FLERR, "Illegal pair_style command");
id_fix_store_local = utils::strdup(arg[0]);
store_local_freq = utils::inumeric(FLERR, arg[1], false, lmp);
// If optional arguments included, this will be oversized
pack_choice = new FnPtrPack[narg - 1];
nvalues = 0;
int iarg = 1;
int iarg = 2;
while (iarg < narg) {
if (strcmp(arg[iarg], "finite") == 0) {
finitecutflag = 1;
@ -306,6 +310,14 @@ void PairTracker::settings(int narg, char **arg)
if (nvalues == 0) error->all(FLERR, "Must request at least one value to output");
memory->create(output_data, nvalues, "pair/tracker:output_data");
int ifix = modify->find_fix(id_fix_store_local);
if (ifix < 0) {
modify->add_fix(fmt::format("{} all STORE_LOCAL {} {}",
id_fix_store_local, store_local_freq, nvalues));
ifix = modify->find_fix(id_fix_store_local);
}
fix_store_local = (FixStoreLocal *) modify->fix[ifix];
}
/* ----------------------------------------------------------------------
@ -343,7 +355,7 @@ void PairTracker::coeff(int narg, char **arg)
void PairTracker::init_style()
{
int i;
int i, ifix;
// error and warning checks
if (!atom->radius_flag && finitecutflag)
@ -363,17 +375,22 @@ void PairTracker::init_style()
// it replaces FixDummy, created in the constructor
// this is so its order in the fix list is preserved
if (fix_history == nullptr) {
modify->replace_fix("NEIGH_HISTORY_TRACK_DUMMY",
fmt::format("NEIGH_HISTORY_TRACK all NEIGH_HISTORY {}", size_history), 1);
int ifix = modify->find_fix("NEIGH_HISTORY_TRACK");
fix_history = (FixNeighHistory *) modify->fix[ifix];
if (id_fix_dummy) {
id_fix_history = utils::strdup("TRACKER_NEIGH_HIST_" + std::to_string(instance_me));
fix_history = (FixNeighHistory *) modify->replace_fix(id_fix_dummy,
fmt::format("{} all NEIGH_HISTORY {}", id_fix_history, size_history), 1);
fix_history->pair = this;
fix_history->use_bit_flag = 0;
delete [] id_fix_dummy;
id_fix_dummy = nullptr;
} else {
ifix = modify->find_fix(id_fix_history);
if (ifix < 0) error->all(FLERR, "Could not find pair fix neigh history ID");
fix_history = (FixNeighHistory *) modify->fix[ifix];
}
if (finitecutflag) {
if (force->pair->beyond_contact)
error->all(FLERR,
"Pair tracker incompatible with granular pairstyles that extend beyond contact");
@ -425,18 +442,6 @@ void PairTracker::init_style()
MPI_Allreduce(&onerad_dynamic[1], &maxrad_dynamic[1], atom->ntypes, MPI_DOUBLE, MPI_MAX, world);
MPI_Allreduce(&onerad_frozen[1], &maxrad_frozen[1], atom->ntypes, MPI_DOUBLE, MPI_MAX, world);
}
int ifix = modify->find_fix("NEIGH_HISTORY_TRACK");
if (ifix < 0) error->all(FLERR, "Could not find pair fix neigh history ID");
fix_history = (FixNeighHistory *) modify->fix[ifix];
ifix = modify->find_fix(id_fix_store_local);
if (ifix < 0) error->all(FLERR, "Cannot find fix store/local");
if (strcmp(modify->fix[ifix]->style, "store/local") != 0)
error->all(FLERR, "Incorrect fix style matched, not store/local");
fix_store_local = (FixStoreLocal *) modify->fix[ifix];
if (fix_store_local->nvalues != nvalues)
error->all(FLERR, "Inconsistent number of output variables in fix store/local");
}
/* ----------------------------------------------------------------------

View File

@ -51,7 +51,10 @@ class PairTracker : public Pair {
double *onerad_dynamic, *onerad_frozen;
double *maxrad_dynamic, *maxrad_frozen;
int freeze_group_bit;
int store_local_freq;
char *id_fix_dummy;
char *id_fix_history;
char *id_fix_store_local;
class FixDummy *fix_dummy;
class FixNeighHistory *fix_history;