Moving store/local to an internal fix
This commit is contained in:
@ -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
|
||||
|
||||
@ -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
|
||||
"""""""
|
||||
|
||||
@ -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
|
||||
"""""""
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
"""""""
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
217
examples/bpm/impact/log.27Oct2021.impact.rotational.g++.4
Normal file
217
examples/bpm/impact/log.27Oct2021.impact.rotational.g++.4
Normal 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
|
||||
219
examples/bpm/impact/log.27Oct2021.impact.spring.g++.4
Normal file
219
examples/bpm/impact/log.27Oct2021.impact.spring.g++.4
Normal 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
|
||||
@ -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
|
||||
@ -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
|
||||
1091
examples/bpm/pour/log.27Oct2021.pour.g++.1
Normal file
1091
examples/bpm/pour/log.27Oct2021.pour.g++.1
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -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));
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
@ -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));
|
||||
|
||||
id_fix_history = nullptr;
|
||||
id_fix_store_local = nullptr;
|
||||
fix_history = nullptr;
|
||||
modify->add_fix("NEIGH_HISTORY_TRACK_DUMMY all DUMMY");
|
||||
fix_dummy = (FixDummy *) modify->fix[modify->nfix - 1];
|
||||
|
||||
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");
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
|
||||
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user