Merge branch 'develop' into collected-small-fixes
This commit is contained in:
@ -23,6 +23,7 @@ OPT.
|
||||
*
|
||||
* :doc:`bpm/rotational <bond_bpm_rotational>`
|
||||
* :doc:`bpm/spring <bond_bpm_spring>`
|
||||
* :doc:`bpm/spring/plastic <bond_bpm_spring_plastic>`
|
||||
* :doc:`class2 (ko) <bond_class2>`
|
||||
* :doc:`fene (iko) <bond_fene>`
|
||||
* :doc:`fene/expand (o) <bond_fene_expand>`
|
||||
|
||||
@ -54,7 +54,7 @@ Lowercase directories
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| body | body particles, 2d system |
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| bpm | BPM simulations of pouring elastic grains and plate impact |
|
||||
| bpm | simulations of solid elastic/plastic deformation and fracture |
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| cmap | CMAP 5-body contributions to CHARMM force field |
|
||||
+-------------+------------------------------------------------------------------+
|
||||
|
||||
@ -42,12 +42,14 @@ such as those created by pouring grains using :doc:`fix pour
|
||||
|
||||
----------
|
||||
|
||||
Currently, there are two types of bonds included in the BPM package. The
|
||||
Currently, there are three types of bonds included in the BPM package. The
|
||||
first bond style, :doc:`bond bpm/spring <bond_bpm_spring>`, only applies
|
||||
pairwise, central body forces. Point particles must have :doc:`bond atom
|
||||
style <atom_style>` and may be thought of as nodes in a spring
|
||||
network. An optional multibody term can be used to adjust the network's
|
||||
Poisson's ratio. Alternatively, the second bond style, :doc:`bond bpm/rotational
|
||||
Poisson's ratio. The :doc:`bpm/spring/plastic <bond_bpm_spring_plastic>`
|
||||
bond style is similar except it adds a plastic yield strain.
|
||||
Alternatively, the third bond style, :doc:`bond bpm/rotational
|
||||
<bond_bpm_rotational>`, resolves tangential forces and torques arising
|
||||
with the shearing, bending, and twisting of the bond due to rotation or
|
||||
displacement of particles. Particles are similar to those used in the
|
||||
|
||||
@ -10,7 +10,7 @@ Syntax
|
||||
|
||||
bond_style bpm/spring keyword value attribute1 attribute2 ...
|
||||
|
||||
* optional keyword = *overlay/pair* or *store/local* or *smooth* or *break* or *volume/factor*
|
||||
* optional keyword = *overlay/pair* or *store/local* or *smooth* or *normalize* or *break* or *volume/factor*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -141,7 +141,8 @@ calculated using bond lengths squared and the cube root in the above equation
|
||||
is accordingly replaced with a square root. This approximation assumes bonds
|
||||
are evenly distributed on a spherical surface and neglects constant prefactors
|
||||
which are irrelevant since only the ratio of volumes matters. This term may be
|
||||
used to adjust the Poisson's ratio.
|
||||
used to adjust the Poisson's ratio. See the simulation in the
|
||||
examples/bpm/poissons_ratio directory for a demonstration of this effect.
|
||||
|
||||
If a bond is broken (or created), :math:`V_{0,i}` is updated by subtracting
|
||||
(or adding) that bond's contribution.
|
||||
@ -214,11 +215,11 @@ for an overview of LAMMPS output options.
|
||||
The vector or array will be floating point values that correspond to
|
||||
the specified attribute.
|
||||
|
||||
The single() function of this bond style returns 0.0 for the energy
|
||||
of a bonded interaction, since energy is not conserved in these
|
||||
dissipative potentials. The single() function also calculates an
|
||||
extra bond quantity, the initial distance :math:`r_0`. This
|
||||
extra quantity can be accessed by the
|
||||
The potential energy and the single() function of this bond style return
|
||||
:math:`k (r - r_0)^2 / 2` as a proxy of the energy of a bonded interaction,
|
||||
ignoring any volumetric/smoothing factors or dissipative forces. The single()
|
||||
function also calculates an extra bond quantity, the initial distance
|
||||
:math:`r_0`. This extra quantity can be accessed by the
|
||||
:doc:`compute bond/local <compute_bond_local>` command as *b1*\ .
|
||||
|
||||
Restrictions
|
||||
|
||||
183
doc/src/bond_bpm_spring_plastic.rst
Normal file
183
doc/src/bond_bpm_spring_plastic.rst
Normal file
@ -0,0 +1,183 @@
|
||||
.. index:: bond_style bpm/spring/plastic
|
||||
|
||||
bond_style bpm/spring/plastic command
|
||||
=====================================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
bond_style bpm/spring/plastic keyword value attribute1 attribute2 ...
|
||||
|
||||
* optional keyword = *overlay/pair* or *store/local* or *smooth* or *normalize* or *break*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*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 two atoms in the bond
|
||||
*time* = the timestep the bond broke
|
||||
*x, y, z* = the center of mass position of the two atoms when the bond broke (distance units)
|
||||
*x/ref, y/ref, z/ref* = the initial center of mass position of the two atoms (distance units)
|
||||
|
||||
*overlay/pair* value = *yes* or *no*
|
||||
bonded particles will still interact with pair forces
|
||||
|
||||
*smooth* value = *yes* or *no*
|
||||
smooths bond forces near the breaking point
|
||||
|
||||
*normalize* value = *yes* or *no*
|
||||
normalizes bond forces by the reference length
|
||||
|
||||
*break* value = *yes* or *no*
|
||||
indicates whether bonds break during a run
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
bond_style bpm/spring/plastic
|
||||
bond_coeff 1 1.0 0.05 0.1 0.02
|
||||
|
||||
bond_style bpm/spring/plastic 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
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
The *bpm/spring/plastic* bond style computes forces based on
|
||||
deviations from the initial reference state of the two atoms and the
|
||||
strain history. The reference length of the bond :math:`r_0` is stored
|
||||
by each bond when it is first computed in the setup of a run. Initially,
|
||||
the equilibrium length of each bond :math:`r_\mathrm{eq}` is set equal
|
||||
to :math:`r_0` but can evolve. data is then preserved across run commands
|
||||
and is written to :doc:`binary restart files <restart>` such that restarting
|
||||
the system will not modify either of these quantities.
|
||||
|
||||
This bond style only applies central-body forces which conserve the
|
||||
translational and rotational degrees of freedom of a bonded set of
|
||||
particles. The force has a magnitude of
|
||||
|
||||
.. math::
|
||||
|
||||
F = -k (r_\mathrm{eq} - r) w
|
||||
|
||||
where :math:`k` is a stiffness, :math:`r` is the current distance between
|
||||
the two particles, and :math:`w` is an optional smoothing factor discussed
|
||||
below. If the bond stretches beyond a strain of :math:`\epsilon_p` in compression
|
||||
or extension, it will plastically activate and :math:`r_\mathrm{eq}` will evolve
|
||||
to ensure :math:`|(r-r_\mathrm{eq})/r_\mathrm{eq}|` never exceeds :math:`\epsilon_p`.
|
||||
Therefore, if a bond is continually loaded in either tension or compression, the
|
||||
force will initially grow elastically before plateauing. See
|
||||
:ref:`(Clemmer) <plastic-Clemmer>` for more details on these mechanics.
|
||||
|
||||
Bonds will break at a strain of :math:`\epsilon_c`. This is done by setting
|
||||
the bond type to 0 such that forces are no longer computed.
|
||||
|
||||
An additional damping force is applied to the bonded
|
||||
particles. This forces is proportional to the difference in the
|
||||
normal velocity of particles:
|
||||
|
||||
.. math::
|
||||
|
||||
F_D = - \gamma w (\hat{r} \bullet \vec{v})
|
||||
|
||||
where :math:`\gamma` is the damping strength, :math:`\hat{r}` is the
|
||||
radial normal vector, and :math:`\vec{v}` is the velocity difference
|
||||
between the two particles.
|
||||
|
||||
The smoothing factor :math:`w` is constructed such that forces smoothly
|
||||
go to zero, avoiding discontinuities, as bonds approach the critical
|
||||
breaking strain
|
||||
|
||||
.. math::
|
||||
|
||||
w = 1.0 - \left( \frac{r - r_0}{r_0 \epsilon_c} \right)^8 .
|
||||
|
||||
The following coefficients must be defined for each bond type via the
|
||||
:doc:`bond_coeff <bond_coeff>` command as in the example above, or in
|
||||
the data file or restart files read by the :doc:`read_data
|
||||
<read_data>` or :doc:`read_restart <read_restart>` commands:
|
||||
|
||||
* :math:`k` (force/distance units)
|
||||
* :math:`\epsilon_c` (unit less)
|
||||
* :math:`\gamma` (force/velocity units)
|
||||
* :math:`\epsilon_p (unit less)
|
||||
|
||||
See the :doc:`bpm/spring doc page <bond_bpm_spring>` for information on
|
||||
the *smooth*, *normalize*, *break*, *overlay/pair*, and *store/local*
|
||||
keywords.
|
||||
|
||||
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
|
||||
|
||||
delete_bonds all stats
|
||||
delete_bonds all bond 0 remove
|
||||
|
||||
----------
|
||||
|
||||
Restart and other info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
This bond style writes the reference state and plastic history of each
|
||||
bond to :doc:`binary restart files <restart>`. Loading a restart
|
||||
file will properly restore bonds. However, the reference state is NOT
|
||||
written to data files. Therefore reading a data file will not
|
||||
restore bonds and will cause their reference states to be redefined.
|
||||
|
||||
The potential energy and the single() function of this bond style returns zero.
|
||||
The single() function also calculates two extra bond quantities, the initial
|
||||
distance :math:`r_0` and the current equilbrium length :math:`r_eq`. These extra
|
||||
quantities can be accessed by the :doc:`compute bond/local <compute_bond_local>`
|
||||
command as *b1* and *b2*, respectively.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This bond style is part of the BPM package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
By default if pair interactions between bonded atoms are to be disabled,
|
||||
this bond style requires setting
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
special_bonds lj 0 1 1 coul 1 1 1
|
||||
|
||||
and :doc:`newton <newton>` must be set to bond off. If the *overlay/pair*
|
||||
keyword is set to *yes*, this bond style alternatively requires setting
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
special_bonds lj/coul 1 1 1
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`bond_coeff <bond_coeff>`, :doc:`bond bpm/spring <bond_bpm_spring>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
The option defaults are *overlay/pair* = *no*, *smooth* = *yes*, *normalize* = *no*, and *break* = *yes*
|
||||
|
||||
----------
|
||||
|
||||
.. _plastic-Clemmer:
|
||||
|
||||
**(Clemmer)** Clemmer and Lechman, Powder Technology (2025).
|
||||
|
||||
@ -10,7 +10,7 @@ Syntax
|
||||
|
||||
bond_style style args
|
||||
|
||||
* style = *none* or *zero* or *hybrid* or *bpm/rotational* or *bpm/spring* or *class2* or *fene* or *fene/expand* or *fene/nm* or *gaussian* or *gromos* or *harmonic* or *harmonic/restrain* *harmonic/shift* or *harmonic/shift/cut* or *lepton* or *morse* or *nonlinear* or *oxdna/fene* or *oxdena2/fene* or *oxrna2/fene* or *quartic* or *special* or *table*
|
||||
* style = *none* or *zero* or *hybrid* or *bpm/rotational* or *bpm/spring* or *bpm/spring/plastic* or *class2* or *fene* or *fene/expand* or *fene/nm* or *gaussian* or *gromos* or *harmonic* or *harmonic/restrain* *harmonic/shift* or *harmonic/shift/cut* or *lepton* or *morse* or *nonlinear* or *oxdna/fene* or *oxdena2/fene* or *oxrna2/fene* or *quartic* or *special* or *table*
|
||||
|
||||
* args = none for any style except *hybrid*
|
||||
|
||||
@ -86,6 +86,7 @@ accelerated styles exist.
|
||||
|
||||
* :doc:`bpm/rotational <bond_bpm_rotational>` - breakable bond with forces and torques based on deviation from reference state
|
||||
* :doc:`bpm/spring <bond_bpm_spring>` - breakable bond with forces based on deviation from reference length
|
||||
* :doc:`bpm/spring/plastic <bond_bpm_spring_plastic>` - a similar breakable bond with plastic yield
|
||||
* :doc:`class2 <bond_class2>` - COMPASS (class 2) bond
|
||||
* :doc:`fene <bond_fene>` - FENE (finite-extensible non-linear elastic) bond
|
||||
* :doc:`fene/expand <bond_fene_expand>` - FENE bonds with variable size particles
|
||||
|
||||
@ -117,6 +117,10 @@ This pair style can only be used via the *pair* keyword of the
|
||||
:doc:`run_style respa <run_style>` command. It does not support the
|
||||
*inner*, *middle*, *outer* keywords.
|
||||
|
||||
The potential energy and the single() function of this pair style returns
|
||||
:math:`k (r - r_c)^2 / 2 + k_a (r - r_c)^4 / 4` for a proxy
|
||||
of the energy of a pair interaction, ignoring any smoothing or dissipative forces.
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
|
||||
103
examples/bpm/plasticity/in.bpm.plasticity
Normal file
103
examples/bpm/plasticity/in.bpm.plasticity
Normal file
@ -0,0 +1,103 @@
|
||||
# Load then unload four cantilevers with different plastic yield strains
|
||||
# model from DOI: 10.1016/j.powtec.2024.120563
|
||||
|
||||
units lj
|
||||
dimension 3
|
||||
boundary p s s
|
||||
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.41
|
||||
region box block 0 20 -1 41 -5 5 units box
|
||||
create_box 4 box bond/types 4 extra/bond/per/atom 20 extra/special/per/atom 50
|
||||
mass * 1.0
|
||||
|
||||
# Create initial disordered geometry somewhat near jamming
|
||||
|
||||
region cantilever block 3.0 12.0 0 40 -2.5 2.5 units box
|
||||
region cantileverw block 2.0 13.0 -1 41 -3.5 3.5 units box
|
||||
create_atoms 1 region cantilever
|
||||
|
||||
velocity all create 0.1 345910
|
||||
|
||||
pair_style bpm/spring
|
||||
pair_coeff * * 1.0 1.0 1.0
|
||||
|
||||
fix 1 all nve
|
||||
fix wtemp all wall/region cantileverw harmonic 1.0 1.0 1.0
|
||||
|
||||
thermo_style custom step ke pe pxx pyy pzz
|
||||
thermo 100
|
||||
|
||||
timestep 0.1
|
||||
run 20000
|
||||
unfix wtemp
|
||||
|
||||
# Replicate cylinder and add bonds
|
||||
|
||||
replicate 4 1 1
|
||||
|
||||
region r1 block 0.0 20.0 EDGE EDGE EDGE EDGE side in units box
|
||||
region r2 block 20.0 40.0 EDGE EDGE EDGE EDGE side in units box
|
||||
region r3 block 40.0 60.0 EDGE EDGE EDGE EDGE side in units box
|
||||
region r4 block 60.0 80.0 EDGE EDGE EDGE EDGE side in units box
|
||||
|
||||
group c1 region r1
|
||||
group c2 region r2
|
||||
group c3 region r3
|
||||
group c4 region r4
|
||||
|
||||
set group c2 type 2
|
||||
set group c3 type 3
|
||||
set group c4 type 4
|
||||
|
||||
velocity all set 0.0 0.0 0.0
|
||||
neighbor 1.0 bin
|
||||
|
||||
create_bonds many c1 c1 1 0.0 1.5
|
||||
create_bonds many c2 c2 2 0.0 1.5
|
||||
create_bonds many c3 c3 3 0.0 1.5
|
||||
create_bonds many c4 c4 4 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/plastic break no smooth no
|
||||
bond_coeff 1 1.0 0 1.0 1.0
|
||||
bond_coeff 2 1.0 0 1.0 0.022
|
||||
bond_coeff 3 1.0 0 1.0 0.0185
|
||||
bond_coeff 4 1.0 0 1.0 0.017
|
||||
|
||||
# apply load
|
||||
|
||||
region anchor block EDGE EDGE EDGE 2.0 EDGE EDGE units box
|
||||
region load block EDGE EDGE 38.0 EDGE EDGE EDGE units box
|
||||
group anchor region anchor
|
||||
group load region load
|
||||
|
||||
variable fload equal ramp(0.0,-0.0005)
|
||||
fix 2 anchor setforce 0.0 0.0 0.0
|
||||
fix 3 load addforce 0.0 0.0 v_fload
|
||||
fix 4 all viscous 0.0016
|
||||
|
||||
compute zmin1 c1 reduce min z
|
||||
compute zmin2 c2 reduce min z
|
||||
compute zmin3 c3 reduce min z
|
||||
compute zmin4 c4 reduce min z
|
||||
|
||||
thermo_style custom step ke c_zmin1 c_zmin2 c_zmin3 c_zmin4
|
||||
#dump 1 all custom 1000 atomDump id type x y z
|
||||
|
||||
run 30000
|
||||
|
||||
# hold load
|
||||
|
||||
unfix 3
|
||||
fix 3 load addforce 0.0 0.0 -0.0005
|
||||
run 50000
|
||||
|
||||
# remove load
|
||||
|
||||
unfix 3
|
||||
run 60000
|
||||
2024
examples/bpm/plasticity/log.19Nov2024.bpm.plasticity.g++.1
Normal file
2024
examples/bpm/plasticity/log.19Nov2024.bpm.plasticity.g++.1
Normal file
File diff suppressed because it is too large
Load Diff
90
examples/bpm/poissons_ratio/in.bpm.poissons_ratio
Normal file
90
examples/bpm/poissons_ratio/in.bpm.poissons_ratio
Normal file
@ -0,0 +1,90 @@
|
||||
# Squish four pillars with different Poisson's ratios
|
||||
# going from nearly incompressible to auxetic
|
||||
# from left to right, nu ~ 0.5, 0.25, 0, <0
|
||||
# calibration from DOI: 10.1039/d3sm01373a
|
||||
|
||||
units lj
|
||||
dimension 3
|
||||
boundary p p s
|
||||
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.41
|
||||
region box block 0 20 -10 10 -1 21 units box
|
||||
create_box 4 box bond/types 4 extra/bond/per/atom 20 extra/special/per/atom 50
|
||||
mass * 1.0
|
||||
|
||||
# Create initial disordered geometry somewhat near jamming
|
||||
|
||||
region pillar cylinder z 10.0 0.0 7.0 0.0 20.0 units box
|
||||
region pillarw cylinder z 10.0 0.0 8.0 -1.0 21.0 units box
|
||||
create_atoms 1 region pillar
|
||||
|
||||
velocity all create 0.1 345910
|
||||
|
||||
pair_style bpm/spring
|
||||
pair_coeff * * 1.0 1.0 1.0
|
||||
|
||||
fix 1 all nve
|
||||
fix wtemp all wall/region pillarw harmonic 1.0 1.0 1.0
|
||||
|
||||
thermo_style custom step ke pe pxx pyy pzz
|
||||
thermo 100
|
||||
|
||||
timestep 0.1
|
||||
run 20000
|
||||
unfix wtemp
|
||||
|
||||
# Replicate cylinder and add bonds
|
||||
|
||||
replicate 4 1 1
|
||||
|
||||
region r1 block 0.0 20.0 EDGE EDGE EDGE EDGE side in units box
|
||||
region r2 block 20.0 40.0 EDGE EDGE EDGE EDGE side in units box
|
||||
region r3 block 40.0 60.0 EDGE EDGE EDGE EDGE side in units box
|
||||
region r4 block 60.0 80.0 EDGE EDGE EDGE EDGE side in units box
|
||||
|
||||
group p1 region r1
|
||||
group p2 region r2
|
||||
group p3 region r3
|
||||
group p4 region r4
|
||||
|
||||
set group p2 type 2
|
||||
set group p3 type 3
|
||||
set group p4 type 4
|
||||
|
||||
velocity all set 0.0 0.0 0.0
|
||||
neighbor 1.0 bin
|
||||
|
||||
create_bonds many p1 p1 1 0.0 1.5
|
||||
create_bonds many p2 p2 2 0.0 1.5
|
||||
create_bonds many p3 p3 3 0.0 1.5
|
||||
create_bonds many p4 p4 4 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 break no smooth no volume/factor yes
|
||||
bond_coeff 1 1.0 0 1.0 -0.8
|
||||
bond_coeff 2 1.0 0 1.0 0.0
|
||||
bond_coeff 3 1.0 0 1.0 2.0
|
||||
bond_coeff 4 1.0 0 1.0 10.0
|
||||
|
||||
# squish
|
||||
|
||||
region b block EDGE EDGE EDGE EDGE -1.0 2.0 units box
|
||||
region t block EDGE EDGE EDGE EDGE 18.0 21.0 units box
|
||||
group bot region b
|
||||
group top region t
|
||||
|
||||
velocity top set 0.0 0.0 -0.0025
|
||||
fix 2 bot setforce 0.0 0.0 0.0
|
||||
fix 3 top setforce 0.0 0.0 0.0
|
||||
|
||||
compute zmax all reduce max z
|
||||
|
||||
thermo_style custom step ke pe pxx pyy pzz c_zmax
|
||||
#dump 1 all custom 100 atomDump id type x y z
|
||||
|
||||
run 10000
|
||||
@ -0,0 +1,635 @@
|
||||
LAMMPS (19 Nov 2024 - Development - patch_19Nov2024-1028-g800a5f6310-modified)
|
||||
# Squish three pillars with different Poisson's ratios
|
||||
# from left to right, nu ~ 0.5, nu = 0.25 nu ~ 0, nu << 0
|
||||
|
||||
units lj
|
||||
dimension 3
|
||||
boundary p p s
|
||||
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.41
|
||||
Lattice spacing in x,y,z = 1.4156209 1.4156209 1.4156209
|
||||
region box block 0 20 -10 10 -1 21 units box
|
||||
create_box 4 box bond/types 4 extra/bond/per/atom 20 extra/special/per/atom 50
|
||||
Created orthogonal box = (0 -10 -1) to (20 10 21)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
mass * 1.0
|
||||
|
||||
# Create roughly jammed initial disordered geometry
|
||||
|
||||
region pillar cylinder z 10.0 0.0 7.0 0.0 20.0 units box
|
||||
region pillarw cylinder z 10.0 0.0 8.0 -1.0 21.0 units box
|
||||
create_atoms 1 region pillar
|
||||
Created 4348 atoms
|
||||
using lattice units in orthogonal box = (0 -10 -1.0022) to (20 10 21.0022)
|
||||
create_atoms CPU = 0.001 seconds
|
||||
|
||||
velocity all create 0.1 345910
|
||||
|
||||
pair_style bpm/spring
|
||||
pair_coeff * * 1.0 1.0 1.0
|
||||
|
||||
fix 1 all nve
|
||||
fix wtemp all wall/region pillarw harmonic 1.0 1.0 1.0
|
||||
|
||||
thermo_style custom step ke pe pxx pyy pzz
|
||||
thermo 100
|
||||
|
||||
timestep 0.1
|
||||
run 20000
|
||||
Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 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 = 31 31 34
|
||||
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) = 9.863 | 9.863 | 9.863 Mbytes
|
||||
Step KinEng PotEng Pxx Pyy Pzz
|
||||
0 0.1499655 0 0.055275974 0.054026613 0.05516469
|
||||
100 0.0045460156 0.0041409796 0.020750379 0.02025897 0.02055488
|
||||
200 0.0013178069 0.0013493823 0.011925094 0.011431479 0.012133526
|
||||
300 0.00061239509 0.00063111128 0.0078970462 0.0079941921 0.0081233289
|
||||
400 0.00035752073 0.00035219764 0.0058819816 0.0058434966 0.0059449021
|
||||
500 0.00024124423 0.00021786035 0.0046674184 0.0045620932 0.0045613656
|
||||
600 0.00016811016 0.0001529395 0.0037258758 0.0038555361 0.0038576669
|
||||
700 0.00012945096 0.00010987332 0.0031369246 0.0032615013 0.0032031682
|
||||
800 0.00010709448 8.0430402e-05 0.0026895825 0.0027732167 0.0027501992
|
||||
900 8.7153735e-05 6.3865397e-05 0.0024057711 0.0024050424 0.0024818746
|
||||
1000 7.3842889e-05 5.1564094e-05 0.0021520507 0.0021316601 0.0022291678
|
||||
1100 6.3710979e-05 4.3417308e-05 0.0019865788 0.0019506967 0.0020247423
|
||||
1200 5.6443217e-05 3.5839723e-05 0.0018116278 0.0017780415 0.0018009974
|
||||
1300 5.2117104e-05 2.9304564e-05 0.0016091295 0.001640217 0.0016494854
|
||||
1400 4.7722691e-05 2.4720323e-05 0.0014728954 0.0014850638 0.0015059012
|
||||
1500 4.3462545e-05 2.1647487e-05 0.0013643988 0.001374924 0.0013860842
|
||||
1600 4.0536322e-05 1.8288037e-05 0.0012573942 0.0012444583 0.0012755521
|
||||
1700 3.775762e-05 1.6253386e-05 0.0011940081 0.0011936534 0.0011875306
|
||||
1800 3.5608024e-05 1.4169135e-05 0.0011046597 0.0011124609 0.0011233068
|
||||
1900 3.3550883e-05 1.2504042e-05 0.0010287232 0.0010521058 0.0010397415
|
||||
2000 3.1777303e-05 1.1341947e-05 0.00099021486 0.000998969 0.0009824298
|
||||
2100 3.0397425e-05 1.0197816e-05 0.00093175155 0.0009356076 0.00093587614
|
||||
2200 2.9415297e-05 9.1442693e-06 0.00087450395 0.00088005632 0.00090292439
|
||||
2300 2.8707506e-05 8.0867687e-06 0.00083155793 0.00084280783 0.00081915094
|
||||
2400 2.8087223e-05 7.1902632e-06 0.0007805398 0.00077693415 0.00079586919
|
||||
2500 2.7412036e-05 6.5329159e-06 0.00074113675 0.00075460667 0.00075182142
|
||||
2600 2.679767e-05 5.9994917e-06 0.00071331838 0.00071107795 0.00071851862
|
||||
2700 2.635836e-05 5.4669016e-06 0.00067864938 0.00067012596 0.00068378851
|
||||
2800 2.5965243e-05 4.949289e-06 0.00064702706 0.00064070457 0.00065886675
|
||||
2900 2.559065e-05 4.5456845e-06 0.0006226747 0.00061715852 0.00061944402
|
||||
3000 2.5250954e-05 4.1940249e-06 0.00059390621 0.00060635122 0.00059577814
|
||||
3100 2.4986177e-05 3.8098655e-06 0.00057100922 0.00056783357 0.00056395219
|
||||
3200 2.4747099e-05 3.5558624e-06 0.00054231559 0.00054795569 0.00055365101
|
||||
3300 2.4583172e-05 3.2301482e-06 0.00052359125 0.00052829803 0.00051398925
|
||||
3400 2.4465352e-05 2.9399683e-06 0.000501977 0.00050484541 0.00050034857
|
||||
3500 2.4292908e-05 2.7427543e-06 0.00048102359 0.00048510374 0.00047731201
|
||||
3600 2.4101584e-05 2.5764805e-06 0.00045636206 0.00047866627 0.00046659816
|
||||
3700 2.3996774e-05 2.3958219e-06 0.00045065226 0.00045184729 0.0004429641
|
||||
3800 2.3876498e-05 2.2130338e-06 0.00043775075 0.00043861927 0.00042506898
|
||||
3900 2.3795887e-05 2.0489788e-06 0.00041988245 0.00041826647 0.00040894442
|
||||
4000 2.3728265e-05 1.8872709e-06 0.0004011638 0.00040340239 0.00039261217
|
||||
4100 2.361572e-05 1.8065046e-06 0.00038335165 0.00039918443 0.00037720392
|
||||
4200 2.3535095e-05 1.6942677e-06 0.00037114826 0.00038329691 0.0003685779
|
||||
4300 2.3470549e-05 1.5919892e-06 0.00036932669 0.00036792338 0.00034946519
|
||||
4400 2.3435028e-05 1.4707935e-06 0.00035224849 0.00035387592 0.00033687303
|
||||
4500 2.3379331e-05 1.3699313e-06 0.00033731606 0.00034141019 0.00032655896
|
||||
4600 2.3319696e-05 1.3018783e-06 0.0003294574 0.00032975202 0.00031755058
|
||||
4700 2.3261329e-05 1.2276139e-06 0.00031109085 0.00032618425 0.00030828008
|
||||
4800 2.3223647e-05 1.140323e-06 0.00030403794 0.00030819264 0.00029880154
|
||||
4900 2.3159354e-05 1.1062118e-06 0.00029932089 0.00031023756 0.0002883218
|
||||
5000 2.3107215e-05 1.0481984e-06 0.00028703077 0.00029791419 0.00028428891
|
||||
5100 2.3059227e-05 9.9631603e-07 0.00028386337 0.00029449929 0.00027691149
|
||||
5200 2.2992218e-05 9.7498165e-07 0.00028122064 0.00029160621 0.00026605841
|
||||
5300 2.2965927e-05 9.089863e-07 0.00026898334 0.00027744029 0.00025999853
|
||||
5400 2.2917228e-05 8.6905288e-07 0.00026737748 0.00026872859 0.00025247197
|
||||
5500 2.2888721e-05 8.1654344e-07 0.00025981052 0.00025927594 0.00024538697
|
||||
5600 2.2858634e-05 7.7918083e-07 0.00024981244 0.00025588577 0.00023814373
|
||||
5700 2.281493e-05 7.5493879e-07 0.00024608832 0.0002484983 0.00024049134
|
||||
5800 2.2768424e-05 7.3151987e-07 0.00024270273 0.00024299121 0.00022677616
|
||||
5900 2.2732815e-05 7.074362e-07 0.00023856426 0.00024317059 0.00022163128
|
||||
6000 2.2709157e-05 6.6558163e-07 0.00023134432 0.00023530205 0.00022005083
|
||||
6100 2.2662747e-05 6.5786116e-07 0.0002266164 0.00023346154 0.0002204147
|
||||
6200 2.2633078e-05 6.2893457e-07 0.00022245338 0.00022992048 0.00021358332
|
||||
6300 2.2609503e-05 5.9395689e-07 0.00021957435 0.00022236534 0.00020603821
|
||||
6400 2.2569287e-05 5.8419818e-07 0.00021444329 0.00022008074 0.00020680001
|
||||
6500 2.2558171e-05 5.5154822e-07 0.00020972278 0.00021475404 0.0001968296
|
||||
6600 2.2537593e-05 5.2835018e-07 0.00020614625 0.00021023961 0.00019204871
|
||||
6700 2.2502584e-05 5.1813436e-07 0.00020503279 0.00020643962 0.00019037754
|
||||
6800 2.2478356e-05 4.9790083e-07 0.00020102604 0.00020156032 0.00018515076
|
||||
6900 2.2455758e-05 4.8193847e-07 0.00019951327 0.00019687965 0.00017945937
|
||||
7000 2.2451788e-05 4.5334026e-07 0.00019179079 0.00019105513 0.00018131892
|
||||
7100 2.242032e-05 4.4768512e-07 0.00018785677 0.00019138466 0.00017575316
|
||||
7200 2.2399735e-05 4.3736624e-07 0.00018626883 0.00019360748 0.00017301675
|
||||
7300 2.2389231e-05 4.15585e-07 0.00018246126 0.00018633267 0.00016724368
|
||||
7400 2.2380183e-05 3.9716485e-07 0.00017807282 0.00017911936 0.00016526154
|
||||
7500 2.2360502e-05 3.8572453e-07 0.00017941834 0.00017481595 0.00016562917
|
||||
7600 2.2352618e-05 3.6544203e-07 0.0001738664 0.00017168235 0.00015859374
|
||||
7700 2.2334806e-05 3.607199e-07 0.00017225216 0.00017080992 0.00015661869
|
||||
7800 2.2324987e-05 3.4379759e-07 0.00016927498 0.00016663572 0.00015055472
|
||||
7900 2.2312673e-05 3.3388048e-07 0.00016641481 0.00016711678 0.00014572442
|
||||
8000 2.2301157e-05 3.2411769e-07 0.00016240031 0.00016423398 0.00014745631
|
||||
8100 2.2289999e-05 3.1300113e-07 0.00015980907 0.00016023173 0.00014648402
|
||||
8200 2.2290743e-05 2.9256755e-07 0.00015325928 0.00015691336 0.00013999402
|
||||
8300 2.2281125e-05 2.8428888e-07 0.00015228905 0.00015083585 0.00013859409
|
||||
8400 2.2276417e-05 2.7196488e-07 0.00014803522 0.00014827108 0.00013276633
|
||||
8500 2.2270336e-05 2.6090967e-07 0.00014433988 0.00014599154 0.00013300747
|
||||
8600 2.2263872e-05 2.4958292e-07 0.00013831677 0.00014270235 0.00012905707
|
||||
8700 2.2248712e-05 2.4963205e-07 0.00013872459 0.0001439154 0.00012481041
|
||||
8800 2.2250741e-05 2.3462546e-07 0.00013718378 0.00013836506 0.00012339897
|
||||
8900 2.224156e-05 2.2671444e-07 0.00013600425 0.00013296456 0.00011974963
|
||||
9000 2.223534e-05 2.2123093e-07 0.00013416263 0.00013296441 0.00011589796
|
||||
9100 2.2228222e-05 2.1383104e-07 0.00013107675 0.00012912031 0.0001145627
|
||||
9200 2.2227286e-05 2.0166229e-07 0.00012779654 0.00012790731 0.00011151855
|
||||
9300 2.2220754e-05 1.9643141e-07 0.00012495065 0.0001246298 0.00010931293
|
||||
9400 2.221898e-05 1.8787396e-07 0.00012142128 0.0001220759 0.00010842013
|
||||
9500 2.2213967e-05 1.8124491e-07 0.00011804877 0.00012238176 0.00010366211
|
||||
9600 2.2207421e-05 1.7767413e-07 0.00011648229 0.00012054702 0.00010322444
|
||||
9700 2.2204058e-05 1.7056842e-07 0.00011554095 0.00011498299 9.977342e-05
|
||||
9800 2.2199188e-05 1.6522097e-07 0.0001128848 0.00011236078 9.9036502e-05
|
||||
9900 2.2197504e-05 1.5746927e-07 0.00010946504 0.00010989886 9.6727132e-05
|
||||
10000 2.2192316e-05 1.5304623e-07 0.00010594185 0.00010914699 9.528986e-05
|
||||
10100 2.2184947e-05 1.5244045e-07 0.00010752432 0.00010893017 9.4551907e-05
|
||||
10200 2.2178334e-05 1.4903759e-07 0.00010714254 0.00010631136 9.3781244e-05
|
||||
10300 2.2176545e-05 1.4377101e-07 0.00010349821 0.00010615276 9.0627052e-05
|
||||
10400 2.2170858e-05 1.4070094e-07 0.00010356274 0.00010425909 8.9700967e-05
|
||||
10500 2.216613e-05 1.3820877e-07 0.00010184809 0.00010281562 8.9244415e-05
|
||||
10600 2.2164055e-05 1.3216024e-07 0.00010308437 9.8578026e-05 8.5149176e-05
|
||||
10700 2.2159491e-05 1.2984075e-07 9.8219521e-05 9.9602891e-05 8.4157228e-05
|
||||
10800 2.2154477e-05 1.2630119e-07 9.6387929e-05 9.8518691e-05 8.4474815e-05
|
||||
10900 2.2154048e-05 1.2065173e-07 9.7781796e-05 9.576565e-05 8.154014e-05
|
||||
11000 2.2149114e-05 1.1781869e-07 9.2783199e-05 9.5117475e-05 8.0363701e-05
|
||||
11100 2.2141212e-05 1.1917239e-07 9.5852588e-05 9.4366973e-05 8.1109475e-05
|
||||
11200 2.2137916e-05 1.1552597e-07 9.3462537e-05 9.3233749e-05 8.1109707e-05
|
||||
11300 2.213658e-05 1.1008603e-07 9.0556648e-05 9.0476596e-05 7.9879738e-05
|
||||
11400 2.2132896e-05 1.0849193e-07 9.0387656e-05 8.8771879e-05 7.7878167e-05
|
||||
11500 2.2131699e-05 1.0493084e-07 8.8911234e-05 8.9360083e-05 7.6820653e-05
|
||||
11600 2.212882e-05 1.0226714e-07 8.7730933e-05 8.9073361e-05 7.4566523e-05
|
||||
11700 2.2124982e-05 9.9910102e-08 8.477437e-05 8.7806303e-05 7.4307427e-05
|
||||
11800 2.2122352e-05 9.7448554e-08 8.7713138e-05 8.4813396e-05 7.2459814e-05
|
||||
11900 2.2115306e-05 9.9205622e-08 8.6813079e-05 8.772968e-05 7.320007e-05
|
||||
12000 2.211193e-05 9.6005824e-08 8.5655613e-05 8.5316917e-05 7.2326687e-05
|
||||
12100 2.2111397e-05 9.2687716e-08 8.307622e-05 8.4586949e-05 7.1199156e-05
|
||||
12200 2.2109506e-05 9.0349635e-08 8.3196249e-05 8.0047918e-05 7.1459883e-05
|
||||
12300 2.210352e-05 9.1828777e-08 8.3023487e-05 8.298801e-05 7.0680887e-05
|
||||
12400 2.2102016e-05 8.8266841e-08 8.1237167e-05 8.0897688e-05 6.8984427e-05
|
||||
12500 2.2100818e-05 8.4451868e-08 8.1241577e-05 7.9056657e-05 6.717288e-05
|
||||
12600 2.2099153e-05 8.2172667e-08 8.1099692e-05 7.7228294e-05 6.5679604e-05
|
||||
12700 2.2096311e-05 8.1609526e-08 7.8279774e-05 7.7218651e-05 6.5855028e-05
|
||||
12800 2.2092745e-05 8.0724331e-08 7.7558727e-05 7.7608398e-05 6.3769835e-05
|
||||
12900 2.2092691e-05 7.7030815e-08 7.6375935e-05 7.5224855e-05 6.3459282e-05
|
||||
13000 2.2090024e-05 7.6060223e-08 7.7017264e-05 7.4786591e-05 6.3026033e-05
|
||||
13100 2.2087518e-05 7.4543793e-08 7.6332555e-05 7.3188101e-05 6.1356128e-05
|
||||
13200 2.2084857e-05 7.418719e-08 7.6669987e-05 7.404012e-05 6.2432396e-05
|
||||
13300 2.2082212e-05 7.2196183e-08 7.4038422e-05 7.4260224e-05 6.1635001e-05
|
||||
13400 2.2080736e-05 7.0711865e-08 7.2995841e-05 7.2774089e-05 5.8837968e-05
|
||||
13500 2.2078436e-05 7.0246025e-08 7.2080944e-05 7.1699053e-05 6.0562467e-05
|
||||
13600 2.2076176e-05 6.8496408e-08 7.3283243e-05 7.0444762e-05 5.8434239e-05
|
||||
13700 2.207464e-05 6.6747696e-08 7.0510931e-05 7.0209957e-05 5.8512753e-05
|
||||
13800 2.2073094e-05 6.4951584e-08 7.221483e-05 6.8194771e-05 5.8326554e-05
|
||||
13900 2.2069993e-05 6.4329747e-08 7.108122e-05 6.7692383e-05 5.6975473e-05
|
||||
14000 2.2068384e-05 6.3826074e-08 7.0821331e-05 6.6802334e-05 5.68441e-05
|
||||
14100 2.2066879e-05 6.1895531e-08 6.9341143e-05 6.788505e-05 5.5082465e-05
|
||||
14200 2.2065117e-05 6.1337212e-08 6.9233584e-05 6.8817889e-05 5.5574272e-05
|
||||
14300 2.2064837e-05 5.8643765e-08 6.5620482e-05 6.5164345e-05 5.5025535e-05
|
||||
14400 2.2063445e-05 5.7670706e-08 6.5693047e-05 6.5227069e-05 5.3546255e-05
|
||||
14500 2.2062593e-05 5.538514e-08 6.696964e-05 6.4489522e-05 5.186144e-05
|
||||
14600 2.2059889e-05 5.6128076e-08 6.6606975e-05 6.3318574e-05 5.3065953e-05
|
||||
14700 2.2058311e-05 5.4197187e-08 6.5636138e-05 6.2862183e-05 5.1216722e-05
|
||||
14800 2.2056992e-05 5.3753302e-08 6.4166876e-05 6.2347682e-05 5.1644619e-05
|
||||
14900 2.2055144e-05 5.3731475e-08 6.2886449e-05 6.2665027e-05 5.1085737e-05
|
||||
15000 2.2055534e-05 5.1421678e-08 6.3216438e-05 6.2497955e-05 4.9420052e-05
|
||||
15100 2.2053654e-05 5.02402e-08 6.185253e-05 6.1020856e-05 4.8961501e-05
|
||||
15200 2.2052236e-05 4.9076779e-08 6.1894516e-05 5.8658526e-05 4.9270802e-05
|
||||
15300 2.2050986e-05 4.8464692e-08 6.1632248e-05 5.939126e-05 4.7954422e-05
|
||||
15400 2.2050221e-05 4.7362506e-08 5.9932389e-05 5.8619584e-05 4.8571134e-05
|
||||
15500 2.2049702e-05 4.5776499e-08 5.9343369e-05 5.6908271e-05 4.5799128e-05
|
||||
15600 2.2046842e-05 4.6074337e-08 6.0035433e-05 5.8667997e-05 4.6172612e-05
|
||||
15700 2.2046262e-05 4.542862e-08 5.8703316e-05 5.7704418e-05 4.6189812e-05
|
||||
15800 2.204616e-05 4.3329814e-08 5.6689179e-05 5.6845301e-05 4.5918735e-05
|
||||
15900 2.2044466e-05 4.3332045e-08 5.806419e-05 5.6030356e-05 4.5166944e-05
|
||||
16000 2.2043425e-05 4.2921122e-08 5.6716404e-05 5.5927539e-05 4.5500189e-05
|
||||
16100 2.2041966e-05 4.1774604e-08 5.6210966e-05 5.4580522e-05 4.4615956e-05
|
||||
16200 2.2041126e-05 4.1198995e-08 5.6314084e-05 5.5538584e-05 4.3793702e-05
|
||||
16300 2.2040394e-05 4.0405671e-08 5.6049147e-05 5.5461464e-05 4.1884999e-05
|
||||
16400 2.2040538e-05 3.8384306e-08 5.4398726e-05 5.3601303e-05 4.2580325e-05
|
||||
16500 2.2039103e-05 3.8153339e-08 5.46254e-05 5.3390447e-05 4.2089044e-05
|
||||
16600 2.2036976e-05 3.8358477e-08 5.2955748e-05 5.3742853e-05 4.1975739e-05
|
||||
16700 2.20354e-05 3.8227046e-08 5.3241934e-05 5.2684751e-05 4.1815545e-05
|
||||
16800 2.2034486e-05 3.7612842e-08 5.3915367e-05 5.3101063e-05 3.9996576e-05
|
||||
16900 2.2033757e-05 3.6901749e-08 5.324896e-05 5.2020981e-05 4.0209668e-05
|
||||
17000 2.2032483e-05 3.631797e-08 5.2504044e-05 5.1532024e-05 4.1841265e-05
|
||||
17100 2.2031907e-05 3.5761725e-08 5.2177113e-05 5.1853522e-05 4.0475234e-05
|
||||
17200 2.2030622e-05 3.5615934e-08 5.2153967e-05 5.1680185e-05 4.0255138e-05
|
||||
17300 2.2028906e-05 3.5769817e-08 5.3276095e-05 5.1713123e-05 3.9429947e-05
|
||||
17400 2.2027982e-05 3.5279634e-08 5.1720769e-05 5.1071287e-05 3.946136e-05
|
||||
17500 2.2027385e-05 3.4532852e-08 5.0897208e-05 5.0132128e-05 3.9770047e-05
|
||||
17600 2.2025743e-05 3.4705869e-08 5.1921573e-05 4.9849618e-05 3.9250188e-05
|
||||
17700 2.202442e-05 3.4664237e-08 5.1037538e-05 5.1309699e-05 3.8699028e-05
|
||||
17800 2.2024041e-05 3.3230639e-08 5.0676543e-05 4.9676967e-05 3.6992319e-05
|
||||
17900 2.2024009e-05 3.2185399e-08 4.9624741e-05 4.8805054e-05 3.8163917e-05
|
||||
18000 2.2023291e-05 3.1901464e-08 4.9090832e-05 4.9184392e-05 3.7458065e-05
|
||||
18100 2.202221e-05 3.1698456e-08 4.9178905e-05 4.8243736e-05 3.7166662e-05
|
||||
18200 2.2021437e-05 3.1022506e-08 4.8457604e-05 4.8875433e-05 3.5824097e-05
|
||||
18300 2.2020792e-05 3.0064688e-08 4.909522e-05 4.7180933e-05 3.5355876e-05
|
||||
18400 2.2021113e-05 2.9279611e-08 4.7111226e-05 4.7747191e-05 3.4625046e-05
|
||||
18500 2.2019843e-05 2.9077485e-08 4.7131195e-05 4.633375e-05 3.5061152e-05
|
||||
18600 2.201863e-05 2.9334156e-08 4.7778742e-05 4.7369011e-05 3.4559728e-05
|
||||
18700 2.2018219e-05 2.862088e-08 4.7260131e-05 4.5881586e-05 3.4305681e-05
|
||||
18800 2.2018393e-05 2.7165913e-08 4.6456933e-05 4.5912824e-05 3.3022256e-05
|
||||
18900 2.201532e-05 2.8873682e-08 4.7138874e-05 4.6487853e-05 3.5130117e-05
|
||||
19000 2.2014497e-05 2.8430782e-08 4.7563112e-05 4.6760097e-05 3.3226263e-05
|
||||
19100 2.2014081e-05 2.8050044e-08 4.6431839e-05 4.6219284e-05 3.4248177e-05
|
||||
19200 2.2013576e-05 2.7201031e-08 4.5709989e-05 4.5916792e-05 3.3897641e-05
|
||||
19300 2.2012609e-05 2.7374842e-08 4.561715e-05 4.5693439e-05 3.4284473e-05
|
||||
19400 2.2010667e-05 2.8105102e-08 4.6663945e-05 4.6539017e-05 3.3608877e-05
|
||||
19500 2.2010486e-05 2.6897595e-08 4.5576796e-05 4.6292499e-05 3.2656892e-05
|
||||
19600 2.2010302e-05 2.6248669e-08 4.4996903e-05 4.3675939e-05 3.4540503e-05
|
||||
19700 2.2009254e-05 2.6450724e-08 4.4868007e-05 4.5628545e-05 3.3413034e-05
|
||||
19800 2.2007283e-05 2.721852e-08 4.5939302e-05 4.5327011e-05 3.3411556e-05
|
||||
19900 2.2007538e-05 2.6295204e-08 4.5722301e-05 4.441743e-05 3.4023953e-05
|
||||
20000 2.2006515e-05 2.6089093e-08 4.4621124e-05 4.5449725e-05 3.2126359e-05
|
||||
Loop time of 7.03939 on 1 procs for 20000 steps with 4348 atoms
|
||||
|
||||
Performance: 24547586.015 tau/day, 2841.156 timesteps/s, 12.353 Matom-step/s
|
||||
99.8% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 4.55 | 4.55 | 4.55 | 0.0 | 64.64
|
||||
Bond | 0.00067765 | 0.00067765 | 0.00067765 | 0.0 | 0.01
|
||||
Neigh | 0.3745 | 0.3745 | 0.3745 | 0.0 | 5.32
|
||||
Comm | 0.013687 | 0.013687 | 0.013687 | 0.0 | 0.19
|
||||
Output | 0.006889 | 0.006889 | 0.006889 | 0.0 | 0.10
|
||||
Modify | 1.9222 | 1.9222 | 1.9222 | 0.0 | 27.31
|
||||
Other | | 0.1715 | | | 2.44
|
||||
|
||||
Nlocal: 4348 ave 4348 max 4348 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 0 ave 0 max 0 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 23350 ave 23350 max 23350 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 23350
|
||||
Ave neighs/atom = 5.3702852
|
||||
Ave special neighs/atom = 0
|
||||
Neighbor list builds = 222
|
||||
Dangerous builds = 0
|
||||
unfix wtemp
|
||||
|
||||
# Replicate cylinder and add bonds
|
||||
|
||||
replicate 4 1 1
|
||||
Replication is creating a 4x1x1 = 4 times larger system...
|
||||
orthogonal box = (0 -10 -0.0025658844) to (80 10 20.002511)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
17392 atoms
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 1 1
|
||||
special bond factors coul: 0 1 1
|
||||
0 = max # of 1-2 neighbors
|
||||
101 = max # of special neighbors
|
||||
special bonds CPU = 0.001 seconds
|
||||
replicate CPU = 0.003 seconds
|
||||
|
||||
region r1 block 0.0 20.0 EDGE EDGE EDGE EDGE side in units box
|
||||
region r2 block 20.0 40.0 EDGE EDGE EDGE EDGE side in units box
|
||||
region r3 block 40.0 60.0 EDGE EDGE EDGE EDGE side in units box
|
||||
region r4 block 60.0 80.0 EDGE EDGE EDGE EDGE side in units box
|
||||
|
||||
group p1 region r1
|
||||
4348 atoms in group p1
|
||||
group p2 region r2
|
||||
4348 atoms in group p2
|
||||
group p3 region r3
|
||||
4348 atoms in group p3
|
||||
group p4 region r4
|
||||
4348 atoms in group p4
|
||||
|
||||
set group p2 type 2
|
||||
Setting atom values ...
|
||||
4348 settings made for type
|
||||
set group p3 type 3
|
||||
Setting atom values ...
|
||||
4348 settings made for type
|
||||
set group p4 type 4
|
||||
Setting atom values ...
|
||||
4348 settings made for type
|
||||
|
||||
velocity all set 0.0 0.0 0.0
|
||||
neighbor 1.0 bin
|
||||
|
||||
create_bonds many p1 p1 1 0.0 1.5
|
||||
Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 2
|
||||
ghost atom cutoff = 2.6
|
||||
binsize = 1, bins = 80 20 21
|
||||
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 29229 bonds, new total = 29229
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 1 1
|
||||
special bond factors coul: 0 1 1
|
||||
19 = max # of 1-2 neighbors
|
||||
101 = max # of special neighbors
|
||||
special bonds CPU = 0.002 seconds
|
||||
create_bonds many p2 p2 2 0.0 1.5
|
||||
Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule
|
||||
WARNING: Bonds are defined but no bond style is set (../force.cpp:197)
|
||||
WARNING: Likewise 1-2 special neighbor interactions != 1.0 (../force.cpp:199)
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 2
|
||||
ghost atom cutoff = 2.6
|
||||
binsize = 1, bins = 80 20 21
|
||||
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 29229 bonds, new total = 58458
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 1 1
|
||||
special bond factors coul: 0 1 1
|
||||
19 = max # of 1-2 neighbors
|
||||
101 = max # of special neighbors
|
||||
special bonds CPU = 0.003 seconds
|
||||
create_bonds many p3 p3 3 0.0 1.5
|
||||
Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule
|
||||
WARNING: Bonds are defined but no bond style is set (../force.cpp:197)
|
||||
WARNING: Likewise 1-2 special neighbor interactions != 1.0 (../force.cpp:199)
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 2
|
||||
ghost atom cutoff = 2.6
|
||||
binsize = 1, bins = 80 20 21
|
||||
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 29229 bonds, new total = 87687
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 1 1
|
||||
special bond factors coul: 0 1 1
|
||||
19 = max # of 1-2 neighbors
|
||||
101 = max # of special neighbors
|
||||
special bonds CPU = 0.004 seconds
|
||||
create_bonds many p4 p4 4 0.0 1.5
|
||||
Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule
|
||||
WARNING: Bonds are defined but no bond style is set (../force.cpp:197)
|
||||
WARNING: Likewise 1-2 special neighbor interactions != 1.0 (../force.cpp:199)
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 2
|
||||
ghost atom cutoff = 2.6
|
||||
binsize = 1, bins = 80 20 21
|
||||
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 29229 bonds, new total = 116916
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 1 1
|
||||
special bond factors coul: 0 1 1
|
||||
19 = 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
|
||||
|
||||
bond_style bpm/spring break no smooth no volume/factor yes
|
||||
bond_coeff 1 1.0 0 1.0 -0.8
|
||||
bond_coeff 2 1.0 0 1.0 0.0
|
||||
bond_coeff 3 1.0 0 1.0 2.0
|
||||
bond_coeff 4 1.0 0 1.0 10.0
|
||||
|
||||
# squish
|
||||
|
||||
region b block EDGE EDGE EDGE EDGE -1.0 2.0 units box
|
||||
region t block EDGE EDGE EDGE EDGE 18.0 21.0 units box
|
||||
group bot region b
|
||||
2040 atoms in group bot
|
||||
group top region t
|
||||
2036 atoms in group top
|
||||
|
||||
velocity top set 0.0 0.0 -0.0025
|
||||
fix 2 bot setforce 0.0 0.0 0.0
|
||||
fix 3 top setforce 0.0 0.0 0.0
|
||||
|
||||
compute zmax all reduce max z
|
||||
|
||||
thermo_style custom step ke pe pxx pyy pzz c_zmax
|
||||
dump 1 all custom 100 atomDump id type x y z
|
||||
|
||||
run 10000
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Your simulation uses code contributions which should be cited:
|
||||
|
||||
- BPM bond style: doi:10.1039/D3SM01373A
|
||||
|
||||
@Article{Clemmer2024,
|
||||
author = {Clemmer, Joel T. and Monti, Joseph M. and Lechman, Jeremy B.},
|
||||
title = {A soft departure from jamming: the compaction of deformable
|
||||
granular matter under high pressures},
|
||||
journal = {Soft Matter},
|
||||
year = 2024,
|
||||
volume = 20,
|
||||
number = 8,
|
||||
pages = {1702--1718}
|
||||
}
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 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 = 124 31 31
|
||||
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) = 33.55 | 33.55 | 33.55 Mbytes
|
||||
Step KinEng PotEng Pxx Pyy Pzz c_zmax
|
||||
20000 7.3311514e-07 0 5.5082149e-05 5.6035691e-05 0.00016879881 20.000342
|
||||
20100 3.1226194e-06 4.1766539e-06 -0.00013996263 -0.00014393529 0.0029331928 19.964952
|
||||
20200 2.5567295e-06 1.4988852e-05 -0.00027674096 -0.00027610139 0.0056641847 19.929561
|
||||
20300 2.5665365e-06 3.3513395e-05 -0.00042198157 -0.0004191815 0.0083802213 19.894171
|
||||
20400 2.4143831e-06 5.9638373e-05 -0.00055373017 -0.00055236369 0.011083701 19.85878
|
||||
20500 2.2440232e-06 9.3155125e-05 -0.00070411826 -0.00070166982 0.013871936 19.82339
|
||||
20600 2.3036882e-06 0.00013415012 -0.00084108079 -0.00084004876 0.016564858 19.787999
|
||||
20700 2.4894579e-06 0.00018252868 -0.00098164122 -0.00097848101 0.019243173 19.752609
|
||||
20800 2.3533488e-06 0.0002383092 -0.0011196916 -0.0011163409 0.021906836 19.717218
|
||||
20900 2.3312562e-06 0.000301439 -0.0012662271 -0.0012625903 0.024743687 19.681828
|
||||
21000 2.3806649e-06 0.00037188609 -0.0014035798 -0.0013992731 0.02739958 19.646437
|
||||
21100 2.3212779e-06 0.00044964779 -0.0015396059 -0.0015348733 0.030041098 19.611047
|
||||
21200 2.3908442e-06 0.00053469194 -0.001674797 -0.0016694993 0.03266844 19.575656
|
||||
21300 2.3622478e-06 0.00062699617 -0.001822934 -0.0018167895 0.035552232 19.540266
|
||||
21400 2.349964e-06 0.00072653051 -0.0019569691 -0.0019503123 0.038170924 19.504875
|
||||
21500 2.3567592e-06 0.00083327134 -0.0020899915 -0.0020827032 0.040775314 19.469484
|
||||
21600 2.3616263e-06 0.00094719631 -0.0022220661 -0.0022140075 0.043365368 19.434094
|
||||
21700 2.353721e-06 0.0010682808 -0.0023711759 -0.0023623886 0.046296241 19.398703
|
||||
21800 2.3646799e-06 0.0011965 -0.0025021157 -0.0024925265 0.048877326 19.363313
|
||||
21900 2.3550746e-06 0.0013318277 -0.0026319662 -0.0026215842 0.051443901 19.327922
|
||||
22000 2.3552825e-06 0.0014742397 -0.0027607166 -0.0027495396 0.053995979 19.292532
|
||||
22100 2.3588762e-06 0.0016237112 -0.0028884164 -0.0028763855 0.05653356 19.257141
|
||||
22200 2.3566445e-06 0.0017802179 -0.0030385388 -0.0030255211 0.05951687 19.221751
|
||||
22300 2.3569128e-06 0.0019437341 -0.0031650443 -0.0031511287 0.062044959 19.18636
|
||||
22400 2.3573615e-06 0.0021142342 -0.0032904648 -0.0032756057 0.064558413 19.15097
|
||||
22500 2.3556792e-06 0.0022916926 -0.003414791 -0.0033989599 0.067057238 19.115579
|
||||
22600 2.3559622e-06 0.0024760839 -0.0035658051 -0.0035488398 0.070087637 19.080189
|
||||
22700 2.3565188e-06 0.0026673826 -0.0036888874 -0.0036708796 0.072576558 19.044798
|
||||
22800 2.3554654e-06 0.0028655631 -0.0038108556 -0.0037917743 0.075050709 19.009408
|
||||
22900 2.3556755e-06 0.0030705996 -0.0039317038 -0.0039115206 0.07751008 18.974017
|
||||
23000 2.3553906e-06 0.0032824663 -0.0040835075 -0.0040620186 0.080587643 18.938627
|
||||
23100 2.3549893e-06 0.0035011372 -0.0042030492 -0.0041803845 0.08303667 18.903236
|
||||
23200 2.3549869e-06 0.0037265864 -0.0043214571 -0.004297582 0.085470779 18.867846
|
||||
23300 2.3548674e-06 0.0039587875 -0.0044387217 -0.004413608 0.087889956 18.832455
|
||||
23400 2.3544804e-06 0.0041977141 -0.0045911895 -0.0045645946 0.091014737 18.797065
|
||||
23500 2.3543814e-06 0.0044433399 -0.0047070844 -0.0046791718 0.093423108 18.761674
|
||||
23600 2.3541461e-06 0.0046956382 -0.0048218198 -0.0047925569 0.09581641 18.726284
|
||||
23700 2.3539051e-06 0.0049545823 -0.0049353928 -0.0049047458 0.098194634 18.690893
|
||||
23800 2.3537612e-06 0.0052201456 -0.0050478006 -0.0050157354 0.10055777 18.655502
|
||||
23900 2.3535618e-06 0.0054923012 -0.0052005398 -0.0051667526 0.10373359 18.620112
|
||||
24000 2.353333e-06 0.005771022 -0.0053114912 -0.0052762067 0.10608529 18.584721
|
||||
24100 2.3531619e-06 0.006056281 -0.0054212598 -0.0053844406 0.10842176 18.549331
|
||||
24200 2.3529697e-06 0.0063480511 -0.0055298409 -0.0054914515 0.11074298 18.51394
|
||||
24300 2.352776e-06 0.0066463046 -0.0056829436 -0.0056426256 0.11396569 18.47855
|
||||
24400 2.3526011e-06 0.0069510143 -0.0057899993 -0.0057480274 0.11627496 18.443159
|
||||
24500 2.3524078e-06 0.0072621525 -0.0058958481 -0.0058521853 0.11856882 18.407769
|
||||
24600 2.3522128e-06 0.0075796913 -0.0060004865 -0.0059550957 0.12084728 18.372378
|
||||
24700 2.3520292e-06 0.0079036029 -0.0061538145 -0.0061062726 0.12411681 18.336988
|
||||
24800 2.3518453e-06 0.0082338593 -0.0062568585 -0.0062074978 0.12638278 18.301597
|
||||
24900 2.3516643e-06 0.0085704324 -0.0063586718 -0.0063074546 0.12863317 18.266207
|
||||
25000 2.3514892e-06 0.0089132938 -0.0064592514 -0.0064061393 0.13086797 18.230816
|
||||
25100 2.3513106e-06 0.0092624151 -0.0066126575 -0.0065571568 0.13418421 18.195426
|
||||
25200 2.3511362e-06 0.0096177679 -0.0067115701 -0.0066540785 0.13640596 18.160035
|
||||
25300 2.3509678e-06 0.0099793234 -0.0068092292 -0.0067497066 0.13861195 18.124645
|
||||
25400 2.3508006e-06 0.010347053 -0.0069056318 -0.0068440373 0.14080217 18.089254
|
||||
25500 2.3506356e-06 0.010720927 -0.0070007749 -0.0069370671 0.14297661 18.053864
|
||||
25600 2.3504737e-06 0.011100917 -0.0071536223 -0.0070872122 0.14634153 18.018473
|
||||
25700 2.3503117e-06 0.011486993 -0.007247006 -0.0071783805 0.14850216 17.983083
|
||||
25800 2.3501529e-06 0.011879126 -0.0073391102 -0.0072682259 0.15064682 17.947692
|
||||
25900 2.3499998e-06 0.012277287 -0.0074299315 -0.0073567446 0.1527755 17.912302
|
||||
26000 2.3498505e-06 0.012681445 -0.0075824884 -0.0075063219 0.15618632 17.876911
|
||||
26100 2.3497046e-06 0.013091571 -0.0076714736 -0.0075928957 0.15830056 17.84152
|
||||
26200 2.3495632e-06 0.013507634 -0.0077591555 -0.0076781204 0.16039862 17.80613
|
||||
26300 2.349426e-06 0.013929604 -0.0078455309 -0.0077619923 0.1624805 17.770739
|
||||
26400 2.3492932e-06 0.014357451 -0.0079976262 -0.0079108096 0.16593692 17.735349
|
||||
26500 2.349166e-06 0.014791144 -0.008082087 -0.0079926504 0.16800369 17.699958
|
||||
26600 2.3490444e-06 0.015230653 -0.0081652207 -0.0080731154 0.17005406 17.664568
|
||||
26700 2.3489277e-06 0.015675946 -0.008247024 -0.0081522008 0.17208804 17.629177
|
||||
26800 2.3488161e-06 0.016126992 -0.0083984781 -0.008300055 0.17558967 17.593787
|
||||
26900 2.3487105e-06 0.016583761 -0.0084782861 -0.0083770201 0.17760782 17.558396
|
||||
27000 2.3486117e-06 0.017046219 -0.0085567431 -0.008452582 0.17960935 17.523006
|
||||
27100 2.3485201e-06 0.017514336 -0.0086338458 -0.0085267367 0.18159424 17.487615
|
||||
27200 2.3484365e-06 0.017988079 -0.0087095911 -0.0085994803 0.18356247 17.452225
|
||||
27300 2.3483611e-06 0.018467417 -0.008859495 -0.0087453549 0.18710893 17.416834
|
||||
27400 2.3482941e-06 0.018952317 -0.0089331441 -0.0088158653 0.18906038 17.381444
|
||||
27500 2.3482362e-06 0.019442747 -0.0090054148 -0.0088849402 0.19099494 17.346053
|
||||
27600 2.3481885e-06 0.019938673 -0.009076304 -0.0089525756 0.19291257 17.310663
|
||||
27700 2.3481517e-06 0.020440063 -0.0092251203 -0.0090969772 0.19650266 17.275272
|
||||
27800 2.3481263e-06 0.020946883 -0.0092938279 -0.0091622823 0.1984027 17.239882
|
||||
27900 2.3481132e-06 0.0214591 -0.0093611327 -0.0092261226 0.20028558 17.204491
|
||||
28000 2.3481132e-06 0.02197668 -0.0094270316 -0.0092884939 0.20215126 17.169101
|
||||
28100 2.3481274e-06 0.02249959 -0.0095745512 -0.0094311779 0.20578425 17.13371
|
||||
28200 2.348157e-06 0.023027794 -0.0096381809 -0.0094911175 0.20763145 17.09832
|
||||
28300 2.3482036e-06 0.023561259 -0.0097003831 -0.0095495617 0.20946119 17.062929
|
||||
28400 2.3482687e-06 0.024099949 -0.0097611548 -0.0096065059 0.21127344 17.027538
|
||||
28500 2.3480319e-06 0.024643805 -0.0099071195 -0.0097471709 0.21494867 16.992148
|
||||
28600 2.3475123e-06 0.025192783 -0.0099654368 -0.0098014823 0.21674185 16.956757
|
||||
28700 2.3465283e-06 0.02574682 -0.010022297 -0.0098542782 0.21851751 16.921367
|
||||
28800 2.3462245e-06 0.026305935 -0.010077643 -0.0099055665 0.2202753 16.885976
|
||||
28900 2.3465001e-06 0.026870106 -0.010131548 -0.0099553377 0.22201519 16.850586
|
||||
29000 2.3468383e-06 0.027439281 -0.010274668 -0.010092595 0.22572932 16.815195
|
||||
29100 2.3470511e-06 0.028013406 -0.010326047 -0.010139547 0.22744875 16.779805
|
||||
29200 2.3477211e-06 0.02859243 -0.010375939 -0.01018496 0.22915025 16.744414
|
||||
29300 2.348195e-06 0.029176333 -0.010424252 -0.010228763 0.23083364 16.709024
|
||||
29400 2.3486217e-06 0.02976508 -0.010565133 -0.010363233 0.2345875 16.673633
|
||||
29500 2.3494547e-06 0.030358578 -0.010610824 -0.010404093 0.2362499 16.638243
|
||||
29600 2.350246e-06 0.030956806 -0.010654741 -0.010443743 0.23789521 16.602852
|
||||
29700 2.350645e-06 0.031559783 -0.010697062 -0.01048188 0.23952237 16.567462
|
||||
29800 2.3513205e-06 0.032167468 -0.010835186 -0.010613742 0.24331694 16.532071
|
||||
29900 2.3500682e-06 0.03277985 -0.010874694 -0.010649336 0.2449217 16.496681
|
||||
30000 2.348814e-06 0.033396866 -0.010912585 -0.010683036 0.24650812 16.46129
|
||||
Loop time of 96.3898 on 1 procs for 10000 steps with 17392 atoms
|
||||
|
||||
Performance: 896360.661 tau/day, 103.745 timesteps/s, 1.804 Matom-step/s
|
||||
99.8% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 2.4048 | 2.4048 | 2.4048 | 0.0 | 2.49
|
||||
Bond | 89.472 | 89.472 | 89.472 | 0.0 | 92.82
|
||||
Neigh | 0.25526 | 0.25526 | 0.25526 | 0.0 | 0.26
|
||||
Comm | 0.0489 | 0.0489 | 0.0489 | 0.0 | 0.05
|
||||
Output | 1.6355 | 1.6355 | 1.6355 | 0.0 | 1.70
|
||||
Modify | 1.8578 | 1.8578 | 1.8578 | 0.0 | 1.93
|
||||
Other | | 0.7153 | | | 0.74
|
||||
|
||||
Nlocal: 17392 ave 17392 max 17392 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 77 ave 77 max 77 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 102662 ave 102662 max 102662 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 102662
|
||||
Ave neighs/atom = 5.9028289
|
||||
Ave special neighs/atom = 13.444802
|
||||
Neighbor list builds = 23
|
||||
Dangerous builds = 0
|
||||
10000
|
||||
ERROR: Unknown command: 10000 (../input.cpp:314)
|
||||
Last input line: 10000
|
||||
2
src/.gitignore
vendored
2
src/.gitignore
vendored
@ -374,6 +374,8 @@
|
||||
/bond_bpm_rotational.h
|
||||
/bond_bpm_spring.cpp
|
||||
/bond_bpm_spring.h
|
||||
/bond_bpm_spring_plastic.cpp
|
||||
/bond_bpm_spring_plastic.h
|
||||
/compute_nbond_atom.cpp
|
||||
/compute_nbond_atom.h
|
||||
/fix_nve_bpm_sphere.cpp
|
||||
|
||||
@ -11,6 +11,10 @@
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Joel Clemmer (SNL)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "atom_vec_bpm_sphere.h"
|
||||
|
||||
#include "atom.h"
|
||||
|
||||
@ -11,6 +11,10 @@
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Joel Clemmer (SNL)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "bond_bpm.h"
|
||||
|
||||
#include "atom.h"
|
||||
|
||||
@ -11,6 +11,10 @@
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Joel Clemmer (SNL)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "bond_bpm_rotational.h"
|
||||
|
||||
#include "atom.h"
|
||||
@ -154,7 +158,7 @@ void BondBPMRotational::store_data()
|
||||
type = bond_type[i][m];
|
||||
|
||||
//Skip if bond was turned off
|
||||
if (type < 0) continue;
|
||||
if (type <= 0) continue;
|
||||
|
||||
// map to find index n for tag
|
||||
j = atom->map(atom->bond_atom[i][m]);
|
||||
@ -775,7 +779,6 @@ void BondBPMRotational::read_restart_settings(FILE *fp)
|
||||
|
||||
double BondBPMRotational::single(int type, double rsq, int i, int j, double &fforce)
|
||||
{
|
||||
// Not yet enabled
|
||||
if (type <= 0) return 0.0;
|
||||
|
||||
int flipped = 0;
|
||||
|
||||
@ -11,6 +11,10 @@
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Joel Clemmer (SNL)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "bond_bpm_spring.h"
|
||||
|
||||
#include "atom.h"
|
||||
@ -124,7 +128,7 @@ void BondBPMSpring::store_data()
|
||||
type = bond_type[i][m];
|
||||
|
||||
//Skip if bond was turned off
|
||||
if (type < 0) continue;
|
||||
if (type <= 0) continue;
|
||||
|
||||
// map to find index n
|
||||
j = atom->map(atom->bond_atom[i][m]);
|
||||
@ -197,7 +201,7 @@ void BondBPMSpring::compute(int eflag, int vflag)
|
||||
|
||||
int i1, i2, itmp, n, type;
|
||||
double delx, dely, delz, delvx, delvy, delvz;
|
||||
double e, rsq, r, r0, rinv, smooth, fbond, dot;
|
||||
double e, rsq, r, r0, rinv, smooth, fbond, ebond, dot;
|
||||
double vol_sum, vol0_sum, vol_temp;
|
||||
|
||||
ev_init(eflag, vflag);
|
||||
@ -264,7 +268,9 @@ void BondBPMSpring::compute(int eflag, int vflag)
|
||||
if (normalize_flag)
|
||||
fbond = -k[type] * e;
|
||||
else
|
||||
fbond = k[type] * (r0 - r);
|
||||
fbond = -k[type] * (r - r0);
|
||||
|
||||
if (eflag) ebond = -0.5 * fbond * (r - r0);
|
||||
|
||||
if (volume_flag) {
|
||||
vol_sum = vol[i1] + vol[i2];
|
||||
@ -300,7 +306,7 @@ void BondBPMSpring::compute(int eflag, int vflag)
|
||||
f[i2][2] -= delz * fbond;
|
||||
}
|
||||
|
||||
if (evflag) ev_tally(i1, i2, nlocal, newton_bond, 0.0, fbond, delx, dely, delz);
|
||||
if (evflag) ev_tally(i1, i2, nlocal, newton_bond, ebond, fbond, delx, dely, delz);
|
||||
}
|
||||
|
||||
// Update vol0 to account for any broken bonds
|
||||
@ -574,7 +580,9 @@ double BondBPMSpring::single(int type, double rsq, int i, int j, double &fforce)
|
||||
if (normalize_flag)
|
||||
fforce = -k[type] * e;
|
||||
else
|
||||
fforce = k[type] * (r0 - r);
|
||||
fforce = -k[type] * (r - r0);
|
||||
|
||||
double ebond = -0.5 * fforce * (r - r0);
|
||||
|
||||
if (volume_flag) {
|
||||
double invdim = 1.0 / domain->dimension;
|
||||
@ -610,7 +618,7 @@ double BondBPMSpring::single(int type, double rsq, int i, int j, double &fforce)
|
||||
|
||||
svector[0] = r0;
|
||||
|
||||
return 0.0;
|
||||
return ebond;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
477
src/BPM/bond_bpm_spring_plastic.cpp
Normal file
477
src/BPM/bond_bpm_spring_plastic.cpp
Normal file
@ -0,0 +1,477 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/, Sandia National Laboratories
|
||||
LAMMPS development team: developers@lammps.org
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Joel Clemmer (SNL)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "bond_bpm_spring_plastic.h"
|
||||
|
||||
#include "atom.h"
|
||||
#include "citeme.h"
|
||||
#include "comm.h"
|
||||
#include "domain.h"
|
||||
#include "error.h"
|
||||
#include "fix_bond_history.h"
|
||||
#include "force.h"
|
||||
#include "memory.h"
|
||||
#include "neighbor.h"
|
||||
|
||||
#include <cmath>
|
||||
#include <cstring>
|
||||
|
||||
static constexpr double EPSILON = 1e-10;
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
static const char cite_bpm_plastic[] =
|
||||
"BPM/spring/plastic bond style: doi:10.1016/j.powtec.2024.120563\n\n"
|
||||
"@Article{Clemmer2025,\n"
|
||||
" author = {Clemmer, Joel T. and Lechman, Jeremy B.},\n"
|
||||
" title = {Onset and impact of plastic deformation in granular compaction},\n"
|
||||
" journal = {Powder Technology},\n"
|
||||
" year = 2025,\n"
|
||||
" volume = 452,\n"
|
||||
" number = 28,\n"
|
||||
" pages = {120563}\n"
|
||||
"}\n\n";
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
BondBPMSpringPlastic::BondBPMSpringPlastic(LAMMPS *_lmp) :
|
||||
BondBPM(_lmp), k(nullptr), eplastic(nullptr), ecrit(nullptr), gamma(nullptr)
|
||||
{
|
||||
partial_flag = 1;
|
||||
smooth_flag = 1;
|
||||
normalize_flag = 0;
|
||||
writedata = 0;
|
||||
|
||||
nhistory = 2;
|
||||
update_flag = 1;
|
||||
id_fix_bond_history = utils::strdup("HISTORY_BPM_SPRING_PLASTIC");
|
||||
|
||||
single_extra = 2;
|
||||
svector = new double[2];
|
||||
|
||||
if (lmp->citeme) lmp->citeme->add(cite_bpm_plastic);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
BondBPMSpringPlastic::~BondBPMSpringPlastic()
|
||||
{
|
||||
delete[] svector;
|
||||
|
||||
if (allocated) {
|
||||
memory->destroy(setflag);
|
||||
memory->destroy(k);
|
||||
memory->destroy(ecrit);
|
||||
memory->destroy(gamma);
|
||||
memory->destroy(eplastic);
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Store data for a single bond - if bond added after LAMMPS init (e.g. pour)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
double BondBPMSpringPlastic::store_bond(int n, int i, int j)
|
||||
{
|
||||
double delx, dely, delz, r;
|
||||
double **x = atom->x;
|
||||
double **bondstore = fix_bond_history->bondstore;
|
||||
tagint *tag = atom->tag;
|
||||
|
||||
delx = x[i][0] - x[j][0];
|
||||
dely = x[i][1] - x[j][1];
|
||||
delz = x[i][2] - x[j][2];
|
||||
|
||||
r = sqrt(delx * delx + dely * dely + delz * delz);
|
||||
bondstore[n][0] = r;
|
||||
|
||||
if (i < atom->nlocal) {
|
||||
for (int m = 0; m < atom->num_bond[i]; m++) {
|
||||
if (atom->bond_atom[i][m] == tag[j]) {
|
||||
fix_bond_history->update_atom_value(i, m, 0, r);
|
||||
fix_bond_history->update_atom_value(i, m, 1, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (j < atom->nlocal) {
|
||||
for (int m = 0; m < atom->num_bond[j]; m++) {
|
||||
if (atom->bond_atom[j][m] == tag[i]) {
|
||||
fix_bond_history->update_atom_value(j, m, 0, r);
|
||||
fix_bond_history->update_atom_value(j, m, 1, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Store data for all bonds called once
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void BondBPMSpringPlastic::store_data()
|
||||
{
|
||||
int i, j, m, type;
|
||||
double delx, dely, delz, r;
|
||||
double **x = atom->x;
|
||||
int **bond_type = atom->bond_type;
|
||||
|
||||
for (i = 0; i < atom->nlocal; i++) {
|
||||
for (m = 0; m < atom->num_bond[i]; m++) {
|
||||
type = bond_type[i][m];
|
||||
|
||||
//Skip if bond was turned off
|
||||
if (type <= 0) continue;
|
||||
|
||||
// map to find index n
|
||||
j = atom->map(atom->bond_atom[i][m]);
|
||||
if (j == -1) error->one(FLERR, "Atom missing in BPM bond");
|
||||
|
||||
delx = x[i][0] - x[j][0];
|
||||
dely = x[i][1] - x[j][1];
|
||||
delz = x[i][2] - x[j][2];
|
||||
|
||||
// Get closest image in case bonded with ghost
|
||||
domain->minimum_image(delx, dely, delz);
|
||||
r = sqrt(delx * delx + dely * dely + delz * delz);
|
||||
|
||||
fix_bond_history->update_atom_value(i, m, 0, r);
|
||||
fix_bond_history->update_atom_value(i, m, 1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
fix_bond_history->post_neighbor();
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void BondBPMSpringPlastic::compute(int eflag, int vflag)
|
||||
{
|
||||
if (!fix_bond_history->stored_flag) {
|
||||
fix_bond_history->stored_flag = true;
|
||||
store_data();
|
||||
}
|
||||
|
||||
if (hybrid_flag) fix_bond_history->compress_history();
|
||||
|
||||
int i1, i2, itmp, n, type;
|
||||
double delx, dely, delz, delvx, delvy, delvz;
|
||||
double e, ep, rsq, r, r0, rinv, smooth, fbond, dot;
|
||||
|
||||
ev_init(eflag, vflag);
|
||||
|
||||
double **x = atom->x;
|
||||
double **v = atom->v;
|
||||
double **f = atom->f;
|
||||
tagint *tag = atom->tag;
|
||||
int **bondlist = neighbor->bondlist;
|
||||
int nbondlist = neighbor->nbondlist;
|
||||
int nlocal = atom->nlocal;
|
||||
int newton_bond = force->newton_bond;
|
||||
|
||||
double **bondstore = fix_bond_history->bondstore;
|
||||
|
||||
for (n = 0; n < nbondlist; n++) {
|
||||
|
||||
// skip bond if already broken
|
||||
if (bondlist[n][2] <= 0) continue;
|
||||
|
||||
i1 = bondlist[n][0];
|
||||
i2 = bondlist[n][1];
|
||||
type = bondlist[n][2];
|
||||
r0 = bondstore[n][0];
|
||||
ep = bondstore[n][1];
|
||||
|
||||
// Ensure pair is always ordered to ensure numerical operations
|
||||
// are identical to minimize the possibility that a bond straddling
|
||||
// an mpi grid (newton off) doesn't break on one proc but not the other
|
||||
if (tag[i2] < tag[i1]) {
|
||||
itmp = i1;
|
||||
i1 = i2;
|
||||
i2 = itmp;
|
||||
}
|
||||
|
||||
// If bond hasn't been set - should be initialized to zero
|
||||
if (r0 < EPSILON || std::isnan(r0)) r0 = store_bond(n, i1, i2);
|
||||
|
||||
delx = x[i1][0] - x[i2][0];
|
||||
dely = x[i1][1] - x[i2][1];
|
||||
delz = x[i1][2] - x[i2][2];
|
||||
|
||||
rsq = delx * delx + dely * dely + delz * delz;
|
||||
r = sqrt(rsq);
|
||||
e = (r - r0) / r0;
|
||||
|
||||
if ((fabs(e) > ecrit[type]) && break_flag) {
|
||||
bondlist[n][2] = 0;
|
||||
process_broken(i1, i2);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (e > (ep + eplastic[type])) {
|
||||
ep = e - eplastic[type];
|
||||
bondstore[n][1] = ep;
|
||||
}
|
||||
|
||||
if (e < (ep - eplastic[type])) {
|
||||
ep = e + eplastic[type];
|
||||
bondstore[n][1] = ep;
|
||||
}
|
||||
|
||||
rinv = 1.0 / r;
|
||||
if (normalize_flag)
|
||||
fbond = -k[type] * (e - ep);
|
||||
else
|
||||
fbond = -k[type] * (r - (1.0 + ep) * r0);
|
||||
|
||||
delvx = v[i1][0] - v[i2][0];
|
||||
delvy = v[i1][1] - v[i2][1];
|
||||
delvz = v[i1][2] - v[i2][2];
|
||||
dot = delx * delvx + dely * delvy + delz * delvz;
|
||||
fbond -= gamma[type] * dot * rinv;
|
||||
fbond *= rinv;
|
||||
|
||||
if (smooth_flag) {
|
||||
smooth = (r - r0) / (r0 * ecrit[type]);
|
||||
smooth *= smooth;
|
||||
smooth *= smooth;
|
||||
smooth *= smooth;
|
||||
smooth = 1 - smooth;
|
||||
fbond *= smooth;
|
||||
}
|
||||
|
||||
if (newton_bond || i1 < nlocal) {
|
||||
f[i1][0] += delx * fbond;
|
||||
f[i1][1] += dely * fbond;
|
||||
f[i1][2] += delz * fbond;
|
||||
}
|
||||
|
||||
if (newton_bond || i2 < nlocal) {
|
||||
f[i2][0] -= delx * fbond;
|
||||
f[i2][1] -= dely * fbond;
|
||||
f[i2][2] -= delz * fbond;
|
||||
}
|
||||
|
||||
if (evflag) ev_tally(i1, i2, nlocal, newton_bond, 0.0, fbond, delx, dely, delz);
|
||||
}
|
||||
|
||||
if (hybrid_flag) fix_bond_history->uncompress_history();
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void BondBPMSpringPlastic::allocate()
|
||||
{
|
||||
allocated = 1;
|
||||
const int np1 = atom->nbondtypes + 1;
|
||||
|
||||
memory->create(k, np1, "bond:k");
|
||||
memory->create(ecrit, np1, "bond:ecrit");
|
||||
memory->create(gamma, np1, "bond:gamma");
|
||||
memory->create(eplastic, np1, "bond:eplastic");
|
||||
|
||||
memory->create(setflag, np1, "bond:setflag");
|
||||
for (int i = 1; i < np1; i++) setflag[i] = 0;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
set coeffs for one or more types
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void BondBPMSpringPlastic::coeff(int narg, char **arg)
|
||||
{
|
||||
if (narg != 5)
|
||||
error->all(FLERR, "Incorrect args for bond coefficients");
|
||||
if (!allocated) allocate();
|
||||
|
||||
int ilo, ihi;
|
||||
utils::bounds(FLERR, arg[0], 1, atom->nbondtypes, ilo, ihi, error);
|
||||
|
||||
double k_one = utils::numeric(FLERR, arg[1], false, lmp);
|
||||
double ecrit_one = utils::numeric(FLERR, arg[2], false, lmp);
|
||||
double gamma_one = utils::numeric(FLERR, arg[3], false, lmp);
|
||||
double eplastic_one = utils::numeric(FLERR, arg[4], false, lmp);
|
||||
|
||||
int count = 0;
|
||||
for (int i = ilo; i <= ihi; i++) {
|
||||
k[i] = k_one;
|
||||
ecrit[i] = ecrit_one;
|
||||
gamma[i] = gamma_one;
|
||||
eplastic[i] = eplastic_one;
|
||||
setflag[i] = 1;
|
||||
count++;
|
||||
|
||||
if (1.0 + ecrit[i] > max_stretch) max_stretch = 1.0 + ecrit[i];
|
||||
}
|
||||
|
||||
if (count == 0) error->all(FLERR, "Incorrect args for bond coefficients");
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
check for correct settings and create fix
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void BondBPMSpringPlastic::init_style()
|
||||
{
|
||||
BondBPM::init_style();
|
||||
|
||||
if (comm->ghost_velocity == 0)
|
||||
error->all(FLERR, "Bond bpm/spring requires ghost atoms store velocity");
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void BondBPMSpringPlastic::settings(int narg, char **arg)
|
||||
{
|
||||
BondBPM::settings(narg, arg);
|
||||
|
||||
int iarg;
|
||||
for (std::size_t i = 0; i < leftover_iarg.size(); i++) {
|
||||
iarg = leftover_iarg[i];
|
||||
if (strcmp(arg[iarg], "smooth") == 0) {
|
||||
if (iarg + 1 > narg) error->all(FLERR, "Illegal bond bpm command, missing option for smooth");
|
||||
smooth_flag = utils::logical(FLERR, arg[iarg + 1], false, lmp);
|
||||
i += 1;
|
||||
} else if (strcmp(arg[iarg], "normalize") == 0) {
|
||||
if (iarg + 1 > narg)
|
||||
error->all(FLERR, "Illegal bond bpm command, missing option for normalize");
|
||||
normalize_flag = utils::logical(FLERR, arg[iarg + 1], false, lmp);
|
||||
i += 1;
|
||||
} else {
|
||||
error->all(FLERR, "Illegal bond bpm command, invalid argument {}", arg[iarg]);
|
||||
}
|
||||
}
|
||||
|
||||
if (smooth_flag && !break_flag)
|
||||
error->all(FLERR, "Illegal bond bpm command, must turn off smoothing with break no option");
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
proc 0 writes out coeffs to restart file
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void BondBPMSpringPlastic::write_restart(FILE *fp)
|
||||
{
|
||||
BondBPM::write_restart(fp);
|
||||
write_restart_settings(fp);
|
||||
|
||||
fwrite(&k[1], sizeof(double), atom->nbondtypes, fp);
|
||||
fwrite(&ecrit[1], sizeof(double), atom->nbondtypes, fp);
|
||||
fwrite(&gamma[1], sizeof(double), atom->nbondtypes, fp);
|
||||
fwrite(&eplastic[1], sizeof(double), atom->nbondtypes, fp);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
proc 0 reads coeffs from restart file, bcasts them
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void BondBPMSpringPlastic::read_restart(FILE *fp)
|
||||
{
|
||||
BondBPM::read_restart(fp);
|
||||
read_restart_settings(fp);
|
||||
allocate();
|
||||
|
||||
if (comm->me == 0) {
|
||||
utils::sfread(FLERR, &k[1], sizeof(double), atom->nbondtypes, fp, nullptr, error);
|
||||
utils::sfread(FLERR, &ecrit[1], sizeof(double), atom->nbondtypes, fp, nullptr, error);
|
||||
utils::sfread(FLERR, &gamma[1], sizeof(double), atom->nbondtypes, fp, nullptr, error);
|
||||
utils::sfread(FLERR, &eplastic[1], sizeof(double), atom->nbondtypes, fp, nullptr, error);
|
||||
}
|
||||
MPI_Bcast(&k[1], atom->nbondtypes, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&ecrit[1], atom->nbondtypes, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&gamma[1], atom->nbondtypes, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&eplastic[1], atom->nbondtypes, MPI_DOUBLE, 0, world);
|
||||
|
||||
for (int i = 1; i <= atom->nbondtypes; i++) setflag[i] = 1;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
proc 0 writes to restart file
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void BondBPMSpringPlastic::write_restart_settings(FILE *fp)
|
||||
{
|
||||
fwrite(&smooth_flag, sizeof(int), 1, fp);
|
||||
fwrite(&normalize_flag, sizeof(int), 1, fp);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
proc 0 reads from restart file, bcasts
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void BondBPMSpringPlastic::read_restart_settings(FILE *fp)
|
||||
{
|
||||
if (comm->me == 0) {
|
||||
utils::sfread(FLERR, &smooth_flag, sizeof(int), 1, fp, nullptr, error);
|
||||
utils::sfread(FLERR, &normalize_flag, sizeof(int), 1, fp, nullptr, error);
|
||||
}
|
||||
MPI_Bcast(&smooth_flag, 1, MPI_INT, 0, world);
|
||||
MPI_Bcast(&normalize_flag, 1, MPI_INT, 0, world);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
double BondBPMSpringPlastic::single(int type, double rsq, int i, int j, double &fforce)
|
||||
{
|
||||
if (type <= 0) return 0.0;
|
||||
|
||||
double r0, ep;
|
||||
for (int n = 0; n < atom->num_bond[i]; n++) {
|
||||
if (atom->bond_atom[i][n] == atom->tag[j]) {
|
||||
r0 = fix_bond_history->get_atom_value(i, n, 0);
|
||||
ep = fix_bond_history->get_atom_value(i, n, 1);
|
||||
}
|
||||
}
|
||||
|
||||
double r = sqrt(rsq);
|
||||
double rinv = 1.0 / r;
|
||||
double e = (r - r0) / r0;
|
||||
|
||||
if (normalize_flag)
|
||||
fforce = -k[type] * (e - ep);
|
||||
else
|
||||
fforce = -k[type] * (r - (1.0 + ep) * r0);
|
||||
|
||||
double **x = atom->x;
|
||||
double **v = atom->v;
|
||||
double delx = x[i][0] - x[j][0];
|
||||
double dely = x[i][1] - x[j][1];
|
||||
double delz = x[i][2] - x[j][2];
|
||||
double delvx = v[i][0] - v[j][0];
|
||||
double delvy = v[i][1] - v[j][1];
|
||||
double delvz = v[i][2] - v[j][2];
|
||||
double dot = delx * delvx + dely * delvy + delz * delvz;
|
||||
fforce -= gamma[type] * dot * rinv;
|
||||
fforce *= rinv;
|
||||
|
||||
if (smooth_flag) {
|
||||
double smooth = (r - r0) / (r0 * ecrit[type]);
|
||||
smooth *= smooth;
|
||||
smooth *= smooth;
|
||||
smooth *= smooth;
|
||||
smooth = 1 - smooth;
|
||||
fforce *= smooth;
|
||||
}
|
||||
|
||||
// set single_extra quantities
|
||||
|
||||
svector[0] = r0;
|
||||
svector[0] = (1.0 + ep) * r0;
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
53
src/BPM/bond_bpm_spring_plastic.h
Normal file
53
src/BPM/bond_bpm_spring_plastic.h
Normal file
@ -0,0 +1,53 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/, Sandia National Laboratories
|
||||
LAMMPS development team: developers@lammps.org
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#ifdef BOND_CLASS
|
||||
// clang-format off
|
||||
BondStyle(bpm/spring/plastic,BondBPMSpringPlastic);
|
||||
// clang-format on
|
||||
#else
|
||||
|
||||
#ifndef LMP_BOND_BPM_SPRING_PLASTIC_H
|
||||
#define LMP_BOND_BPM_SPRING_PLASTIC_H
|
||||
|
||||
#include "bond_bpm.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
class BondBPMSpringPlastic : public BondBPM {
|
||||
public:
|
||||
BondBPMSpringPlastic(class LAMMPS *);
|
||||
~BondBPMSpringPlastic() override;
|
||||
void compute(int, int) override;
|
||||
void coeff(int, char **) override;
|
||||
void init_style() override;
|
||||
void settings(int, char **) override;
|
||||
void write_restart(FILE *) override;
|
||||
void read_restart(FILE *) override;
|
||||
void write_restart_settings(FILE *) override;
|
||||
void read_restart_settings(FILE *) override;
|
||||
double single(int, double, int, int, double &) override;
|
||||
|
||||
protected:
|
||||
double *k, *eplastic, *ecrit, *gamma;
|
||||
int smooth_flag, normalize_flag;
|
||||
|
||||
void allocate();
|
||||
void store_data();
|
||||
double store_bond(int, int, int);
|
||||
};
|
||||
|
||||
} // namespace LAMMPS_NS
|
||||
|
||||
#endif
|
||||
#endif
|
||||
@ -11,6 +11,10 @@
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Joel Clemmer (SNL)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "compute_nbond_atom.h"
|
||||
|
||||
#include "atom.h"
|
||||
|
||||
@ -11,6 +11,10 @@
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Joel Clemmer (SNL)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "fix_nve_bpm_sphere.h"
|
||||
|
||||
#include "atom.h"
|
||||
|
||||
@ -11,6 +11,10 @@
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Joel Clemmer (SNL)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "fix_update_special_bonds.h"
|
||||
|
||||
#include "atom.h"
|
||||
|
||||
@ -11,6 +11,10 @@
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Joel Clemmer (SNL)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "pair_bpm_spring.h"
|
||||
|
||||
#include "atom.h"
|
||||
@ -54,7 +58,7 @@ void PairBPMSpring::compute(int eflag, int vflag)
|
||||
{
|
||||
int i, j, ii, jj, inum, jnum, itype, jtype;
|
||||
double xtmp, ytmp, ztmp, delx, dely, delz, dr, evdwl, fpair;
|
||||
double r, rsq, rinv, factor_lj;
|
||||
double r, rsq, rinv, fa, factor_lj;
|
||||
int *ilist, *jlist, *numneigh, **firstneigh;
|
||||
double vxtmp, vytmp, vztmp, delvx, delvy, delvz, dot, smooth;
|
||||
|
||||
@ -112,8 +116,12 @@ void PairBPMSpring::compute(int eflag, int vflag)
|
||||
dr = r - cut[itype][jtype];
|
||||
|
||||
fpair = -k[itype][jtype] * dr;
|
||||
if (anharmonic_flag)
|
||||
fpair += -ka[itype][jtype] * dr * dr * dr;
|
||||
if (eflag) evdwl = -0.5 * fpair * dr;
|
||||
if (anharmonic_flag) {
|
||||
fa = -ka[itype][jtype] * dr * dr * dr;
|
||||
fpair += fa;
|
||||
if (eflag) evdwl += -0.25 * fa * dr;
|
||||
}
|
||||
|
||||
smooth = rsq / cutsq[itype][jtype];
|
||||
smooth *= smooth;
|
||||
@ -126,7 +134,7 @@ void PairBPMSpring::compute(int eflag, int vflag)
|
||||
fpair -= gamma[itype][jtype] * dot * smooth * rinv;
|
||||
|
||||
fpair *= factor_lj * rinv;
|
||||
if (eflag) evdwl = 0.0;
|
||||
if (eflag) evdwl *= factor_lj;
|
||||
|
||||
f[i][0] += delx * fpair;
|
||||
f[i][1] += dely * fpair;
|
||||
@ -378,8 +386,13 @@ double PairBPMSpring::single(int i, int j, int itype, int jtype, double rsq, dou
|
||||
|
||||
dr = r - cut[itype][jtype];
|
||||
fpair = -k[itype][jtype] * dr;
|
||||
if (anharmonic_flag)
|
||||
fpair += -ka[itype][jtype] * dr * dr * dr;
|
||||
double energy = -0.5 * fpair * dr;
|
||||
|
||||
if (anharmonic_flag) {
|
||||
double fa = -ka[itype][jtype] * dr * dr * dr;
|
||||
fpair += fa;
|
||||
energy += -0.25 * fa * dr;
|
||||
}
|
||||
|
||||
smooth = rsq / cutsq[itype][jtype];
|
||||
smooth *= smooth;
|
||||
@ -394,7 +407,8 @@ double PairBPMSpring::single(int i, int j, int itype, int jtype, double rsq, dou
|
||||
fpair -= gamma[itype][jtype] * dot * rinv * smooth;
|
||||
|
||||
fpair *= factor_lj;
|
||||
energy *= factor_lj;
|
||||
fforce = fpair;
|
||||
|
||||
return 0.0;
|
||||
return energy;
|
||||
}
|
||||
|
||||
@ -11,6 +11,10 @@
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Joel Clemmer (SNL)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "fix_bond_history.h"
|
||||
|
||||
#include "atom.h"
|
||||
|
||||
Reference in New Issue
Block a user