Compare commits

...

199 Commits

Author SHA1 Message Date
1cc2d0739e Compilation errors 2025-07-11 15:10:21 -06:00
f378416131 Simplifying corrections, consolidating force calculations, and reducing errors due to ambiguous surface side when external 2025-07-10 16:32:13 -06:00
5737eddfbf Fixing compilation errors pair surf granular 2025-07-01 11:09:25 -06:00
30cf2a9197 Replicating contact processing for pair local surf 2025-06-12 10:23:52 -06:00
6bfec2a52b Deterministic external corrections 2025-06-06 15:17:33 -06:00
24b449a455 Simplifying internal tri corner corrections 2025-06-04 21:52:29 -06:00
4b5f2aca49 Unifying accumulation of global/local contacted surfs 2025-06-04 11:12:37 -06:00
a9b3923b26 Moving exposed variables to parent class 2025-05-23 22:33:13 -06:00
872b29e5cf Consolidating repeated functions 2025-05-23 17:13:29 -06:00
5db41ec62b MCalculating external smoothing at a per-composite level 2025-05-23 15:38:12 -06:00
ab1ceec3bf Renaming flat_surfs -> composite_surfs 2025-05-23 14:34:32 -06:00
e8d29d0575 Adding history to fix surf/global 2025-05-21 22:14:47 -06:00
2f04f04f8b Simplifying definition of exposed points 2025-05-15 22:02:54 -06:00
27c38788fb Removing 2D and 3D contact inconsistencies 2025-05-15 12:36:27 -06:00
49d45fd46c Setting exposed variables for 2d points 2025-05-15 10:18:05 -06:00
0de52e6950 Commenting out private history variable access, simplifying some distance-to-surface calculations 2025-05-14 15:13:40 -06:00
175696cc9e Updating history variables 2025-05-14 12:50:35 -06:00
ac143f6c40 Default adjustments for edge cases 2025-05-09 17:07:28 -06:00
aa70a3affc fixing array size 2025-05-09 14:03:13 -06:00
a86784ff20 Normalizing variables 2025-05-09 08:47:14 -06:00
0022a6de9d Clarifying external definitions, improved smoothing near convex and external edges 2025-05-08 16:37:59 -06:00
2a85dfd45b More thorough checking of surface sides, improving internal corrections, misc updates 2025-05-07 16:01:36 -06:00
20c0769c5d Grouping methods for clarity, improved geom logic 2025-05-02 16:07:38 -06:00
333136edda Initial smoothing for non-flat connections 2025-05-02 11:09:32 -06:00
1f617ad2d0 Extrapolating concave rules to corners 2025-05-01 10:07:57 -06:00
5bc6bc9b87 Cleaning up smoothing for exposed corners 2025-04-29 16:37:59 -06:00
80f70627b0 Adding force corrections on exposed corners 2025-03-07 13:54:17 -07:00
28043145b9 Adding debug info for normal calculation, porting 2D changes to 3D 2025-02-18 21:59:57 -07:00
adb58182a6 Drafting smoothing near nodes for 3D 2025-02-18 12:49:03 -07:00
19e7d47566 Fixing 2D bug, more cleanup, start on 3D refactor 2025-02-14 15:57:58 -07:00
82eeba6504 More 2D logic simplication 2025-02-11 15:02:32 -07:00
0fdf10dbf1 Adding exposed edge array, more simplification of 2d logic 2025-02-10 20:47:59 -07:00
ee26d6c857 Clarifying contact smoothing logic 2025-02-04 10:56:11 -07:00
9d0f0c51b6 Adding exposed pt attribute to surfs 2025-02-04 09:27:17 -07:00
7ba480a0e3 Adding corner loop, other misc updates 2025-02-01 21:25:41 -07:00
ef3645c194 Adding flat status for corner-connected tris 2025-01-23 09:02:12 -07:00
b2a24fd013 Fixing missed corners 2025-01-22 16:15:35 -07:00
6ddb823ed3 removing 3d seg faults, simplifying shared pts 2025-01-22 13:41:25 -07:00
418a7a1b1d Sketching 3D contact method 2025-01-21 16:46:22 -07:00
667a426075 reducing code duplication 2025-01-21 16:18:37 -07:00
bdd013a6b8 remove temperature keyword from FSL 2025-01-17 16:17:51 -07:00
b31c93bc9d added check methods to FSL 2025-01-17 16:13:34 -07:00
9f90dc8a23 added local stats methods 2025-01-16 16:15:11 -07:00
776b4abeff add stats methods to FSL 2025-01-15 17:07:57 -07:00
62ce5757ae Merge branch 'develop' into granular-triangles 2025-01-15 15:19:25 -07:00
ff40a235dd chased a valgrind issue to ground 2025-01-15 15:18:13 -07:00
a7f1ea0e15 one-line bug 2025-01-14 13:18:48 -07:00
3a983696e1 more code movement into new parent class 2025-01-14 13:09:28 -07:00
fd84afebc4 add 2 files to gitignore 2025-01-14 07:31:23 -07:00
151e8a9b21 create fix surface parent class 2025-01-13 22:20:47 -07:00
7d788b9754 doc tweaks 2025-01-13 17:25:14 -07:00
ed75527069 sync command syntax for FSG and FSL 2025-01-13 17:08:56 -07:00
9b4ed82c05 Merge branch 'granular-triangles' of github.com:lammps/lammps into granular-triangles 2025-01-13 13:23:18 -07:00
11aec5561b Possible approach for multi-type flat surfs 2025-01-13 10:15:30 -07:00
a7ded8f9dd Removing discontinuity between two sets of convex flats 2025-01-10 17:07:16 -07:00
fffd70b8b6 Cleaning up contact logic 2025-01-10 13:30:10 -07:00
00036f65e0 Simplifying brackets 2025-01-09 16:06:24 -07:00
a92ef0750d allow multiple inputs for FSL 2024-12-18 20:51:30 -07:00
c80d95b607 sync with upstream 2024-12-17 16:32:23 -07:00
86cf903276 debugging for parallel fix surface/local 2024-12-17 16:30:21 -07:00
5869be7b1a whitespace 2024-12-17 15:50:25 -07:00
a914d7fecf Uncommenting velocity correction 2024-12-17 15:42:48 -07:00
63e3d2f3f8 Merge branch 'granular-triangles' of github.com:lammps/lammps into granular-triangles 2024-12-17 13:52:10 -07:00
f7b6cb120d Updating multitype model 2024-12-16 17:44:22 -07:00
352dee0d27 Cleaning up model processing 2024-12-16 17:03:24 -07:00
cf11722c7d one more modified input test script 2024-12-16 16:44:25 -07:00
6ff458759f debugging of serial fix surface/local 2024-12-16 16:30:23 -07:00
5a7abccd28 Merge branch 'granular-triangles' of github.com:lammps/lammps into granular-triangles 2024-12-13 16:37:02 -07:00
9f58ef5cc8 finish first pass of fix surface/local refactor 2024-12-13 16:36:52 -07:00
244b3cdae9 Removing obsolete connection variables 2024-12-13 14:31:51 -07:00
2a63d04aff Improving contact detection 2024-12-13 14:31:51 -07:00
4167b0a00d more refactoring on fix surface/local 2024-12-12 13:25:13 -07:00
94109e606e more work on fix surface/local 2024-12-12 09:00:19 -07:00
b9aa11b547 final connectivity for both global and local 2024-12-11 15:04:58 -07:00
bc1c2378b2 more refactoring of fix surf/local for 3d 2024-12-11 12:23:22 -07:00
af5315e173 merge with upstream 2024-12-10 15:07:09 -07:00
6ec3883b1e more refactoring of fix surface/local 2024-12-10 15:03:36 -07:00
a4429ed0ed Revising force calculation for flat surfs 2024-12-10 13:50:33 -07:00
5fba482c82 Merge branch 'granular-triangles' of github.com:lammps/lammps into granular-triangles 2024-12-10 08:23:16 -07:00
0f2e097886 continued refactoring of fix surface/local 2024-12-10 08:23:04 -07:00
9a634612f4 initial refactoring of fix surface/local 2024-12-07 20:27:30 -07:00
c6a1805c38 fix input arg typo 2024-12-06 16:33:20 -07:00
3a8d5d194e Enable smooth sliding on flat surfs 2024-12-06 16:12:35 -07:00
6221a61aeb one more doc change 2024-12-06 07:53:20 -07:00
6112cc46e1 adjust doc pages for added FSG capabilities 2024-12-06 07:52:02 -07:00
19376ede6b Iterator typo in check molecule 2024-12-05 20:22:12 -07:00
7af138a224 Fixing overlap calculation 2024-12-05 15:00:55 -07:00
8593aef74c Initial set of bug fixes in force calculation 2024-12-04 15:56:02 -07:00
0e8f0be587 fix conflict with upstream 2024-12-04 14:01:34 -07:00
f90aead385 enable VARIABLE-style motion 2024-12-04 13:59:43 -07:00
8356f093cd Fixing arg parsing error 2024-12-04 13:39:29 -07:00
e91cb95ca5 added more stats output for fix_modify options 2024-12-04 11:25:10 -07:00
d55743e5ad add molID warning and stats on 2d/3d surfs 2024-12-04 08:13:59 -07:00
b32e3c3d94 fix conflict 2024-12-03 16:59:15 -07:00
6a8bfc4236 only include corner-only connections in 3d connectivity 2024-12-03 16:57:49 -07:00
bfb5e31bef Clarifying comments 2024-12-03 16:11:10 -07:00
5c64405338 Averaging contact geometry for force calculation 2024-12-03 15:56:31 -07:00
07a8b3d22d Handling history across multiple surfs 2024-12-03 15:39:29 -07:00
1b8601fbd4 Moving force calculation in place 2024-12-03 15:14:25 -07:00
2e81dc228e Adding force calculation back in 2024-12-03 14:06:03 -07:00
5e12b52b54 whitespace 2024-12-03 13:43:46 -07:00
856eda6c57 Switching to map 2024-12-03 13:39:23 -07:00
2a8ae96eb4 Finished drafting 2d contact processing 2024-12-03 13:27:34 -07:00
daa963faa6 accurate memory usage and add TRANSROT movement option 2024-12-02 15:46:16 -07:00
9b646a5ab4 add error checks on zero-size and duplicate surfs 2024-12-02 14:09:23 -07:00
e78586bb7d tweak of NOTEs 2024-11-28 11:38:35 -07:00
785b7424ac debugging on example inputs w/out particles 2024-11-28 11:33:19 -07:00
f74b4dbe92 added I/O options to refine.py tool 2024-11-27 13:17:18 -07:00
d6db102581 add todo list to refine.py 2024-11-26 19:08:35 -07:00
573c34932c Merge branch 'granular-triangles' of github.com:lammps/lammps into granular-triangles 2024-11-26 19:07:22 -07:00
3d27bc2262 debugging of 3d refinement 2024-11-26 19:07:14 -07:00
f50e2a0323 first version of refine.py tool script 2024-11-26 16:53:20 -07:00
f4af405347 consolidate NOTEs 2024-11-23 10:41:53 -07:00
287125f198 memory cleanup 2024-11-22 14:27:26 -07:00
df4b41cbff more refactoring of fix surface/global 2024-11-22 11:52:09 -07:00
d724324189 refactoring of motion options 2024-11-21 14:18:11 -07:00
5977d5e169 Merge branch 'granular-triangles' of github.com:lammps/lammps into granular-triangles 2024-11-18 12:49:16 -07:00
6bad252cc4 remove surf-group logic from FSG 2024-11-18 12:48:56 -07:00
1fae0ed6bd Iterating through connections 2024-11-17 21:02:01 -07:00
ee10b8f51e merge with upstream first 2024-11-15 19:48:16 -07:00
c8b05e50bd setup 3d connectivity for tri edges and corner points 2024-11-15 19:46:30 -07:00
a64a5f2b4e Missing grans in gitignore 2024-11-15 17:51:43 -07:00
e6789c8336 updating git ignore, deleting extra files 2024-11-15 17:45:22 -07:00
c5cfa0ea95 Sketching 2d loop through connected contacts 2024-11-15 17:41:03 -07:00
6e4a02e898 Adding force structures 2024-11-15 17:09:19 -07:00
ed77f400bd whitespace 2024-11-13 01:14:16 -05:00
62f2bb0643 creating list of contacts 2024-11-12 21:47:57 -07:00
acb80365fa add comment 2024-11-12 21:36:39 -07:00
c65e3a95fa add calculations for connect2d data struct 2024-11-12 21:22:39 -07:00
1e65ec4049 flesh out 2d connect data struct fields 2024-11-12 15:12:51 -07:00
966b74e4f1 Rearrange pair surf granular compute 2024-11-11 12:00:58 -07:00
174159cc22 more cosmetic 2024-11-11 11:57:02 -07:00
32d6c14df0 cosmetic 2024-11-11 11:49:09 -07:00
814b6cd83c Merge branch 'granular-triangles' of github.com:lammps/lammps into granular-triangles 2024-11-11 11:43:16 -07:00
798b264f1c tweaks 2024-11-11 11:43:12 -07:00
18f19f0ef0 Moving granular model code out of overlap calculation 2024-11-11 11:17:29 -07:00
c817b3fe07 change GranSurfExtra class to SurfExtra 2024-11-11 10:04:21 -07:00
dbe9d3d07b change pair_surf_granular.cpp to use new GranSurfExtra class 2024-11-11 09:42:18 -07:00
85d3abbacf create auxiliary GranSurfExtra class 2024-11-11 09:08:02 -07:00
a64770d3b4 comment out code for global surf groups for now 2024-11-07 16:16:07 -07:00
2563f636e8 Merge branch 'granular-triangles' of github.com:lammps/lammps into granular-triangles 2024-11-07 15:30:46 -07:00
9770267e1d Merge branch 'develop' into granular-triangles 2024-11-07 15:29:43 -07:00
4ebba64003 initial adding of options to global surfs 2024-09-18 17:01:06 -06:00
52e1f5addd initial global move changes 2024-08-24 16:31:47 -06:00
6f8b352459 doc page additions 2024-08-14 17:02:23 -06:00
7db2cd5979 Removing aunintended file 2024-07-24 12:19:08 -06:00
8b860515ab Flipping set group in gransurf examples 2024-07-24 12:15:59 -06:00
ad0ed5acf0 Fixing index->tag in pair methods 2024-07-22 12:24:51 -06:00
1cd3f859e7 Adding onesided flag to history 2024-07-22 12:24:51 -06:00
afe393706c repair death test 2024-07-20 23:32:19 -04:00
382b738092 remove error docs from headers to comply with coding standards 2024-07-20 03:20:37 -04:00
ef3fbf08b7 whitespace 2024-07-20 03:20:13 -04:00
953f7110f6 fix typos 2024-07-19 12:24:10 -06:00
dd3875d9b2 doc page for fix surface/global 2024-07-19 11:50:39 -06:00
697a3a67b3 more doc pages 2024-07-18 17:05:21 -06:00
38fe7d8d2b more doc pages 2024-07-18 13:35:38 -06:00
cab9219587 first doc page additions 2024-07-17 10:09:05 -06:00
6f63b7ce1c change molecule file format to use enhanced Molecule class 2024-07-17 08:17:56 -06:00
2aa9077403 merge with current master 2024-07-17 08:12:16 -06:00
83fda0a19d Updating geom methods in pair surf/granular 2024-07-16 14:40:57 -06:00
b4c9bace70 Merge branch 'granular-triangles' of github.com:lammps/lammps into granular-triangles 2024-07-16 13:35:35 -06:00
fd336b3925 3d local connectivity with Rvous method, debugging 2024-07-16 13:35:24 -06:00
c18c911ea7 Adding surf/granular pairstyle 2024-07-16 12:09:44 -06:00
c781d11146 rework connectivity2d_local method for rvous comm 2024-07-16 07:33:18 -06:00
6644a75519 tweak for connection reference 2024-07-13 14:29:15 -06:00
0305b08e82 ensure initialization of cindex and cleanup of vector data from TCP 2024-07-13 14:17:38 -06:00
cdcffeb3f5 debugging of local surfs and STL reader, added examples 2024-07-12 15:49:38 -06:00
64bf2f838b add support for STL files to fix surface/global 2024-07-12 08:29:33 -06:00
197db837e1 small changes 2024-07-11 20:19:31 -06:00
10a08a7d07 finish merge with GHub version 2024-07-11 19:38:00 -06:00
cb1c6a07ed merge with GH repo 2024-07-11 19:29:47 -06:00
196ddd391d add STL file support, reworking local connectivity 2024-07-11 17:06:42 -06:00
b889df7535 Adding temperature variable 2024-07-11 11:53:43 -06:00
53b3bd69c0 Typo 2024-07-10 16:25:31 -06:00
6fe6a0b8f2 Converting surface global to use GranularModel 2024-07-10 16:24:38 -06:00
0812e77d27 clean whitespace 2024-07-10 16:13:24 -06:00
04490971e4 fix issues with neighbor lists and tri angmom 2024-07-10 16:09:13 -06:00
d6364f99b1 add STLReader class and 2 STL files in examples/gransurf 2024-07-09 07:46:08 -06:00
dc86c3b3a1 add REQ_ONESIDED flag to neighbor requests 2024-07-09 01:31:09 -06:00
e03f0ac54e not using line normal 2024-07-05 11:07:40 -06:00
88a1720ece debugging 2024-07-05 11:01:47 -06:00
0604b8911c simply global indexing into surf connectivity 2024-07-05 10:29:03 -06:00
1e238362a7 change NULL to nullptr 2024-07-05 10:05:58 -06:00
b3ae1ecee6 merge with upstream changes 2024-07-05 10:01:10 -06:00
33d9454216 examples files for fix surface/local 2024-07-05 09:55:07 -06:00
dbded994f8 debugging 2024-07-04 21:14:04 -06:00
83fd64b362 changes to allowed global surf topology 2024-07-04 16:57:35 -06:00
5d4481c82d cache 2nd version 2024-07-03 12:57:46 -06:00
b603fc663b update expected error message in death test for molecule files 2024-07-03 10:42:07 -04:00
289e2622c2 whitespace 2024-07-03 10:40:10 -04:00
bc8381ff78 Merge branch 'develop' into granular-triangles 2024-07-03 10:34:21 -04:00
7d5d8d4f49 adding more files 2024-07-02 16:41:41 -06:00
a26038e1ad remove some debugging comments 2024-07-02 07:18:25 -06:00
9cc0b7d793 tweak commnets 2024-07-01 14:43:06 -06:00
489e80151a adjust comments in source files 2024-07-01 14:41:31 -06:00
8ec5d83540 fix issue with maps in fix pour and fix deposit 2024-07-01 09:30:44 -06:00
aa75fe2584 debugging and add global examples 2024-07-01 08:14:04 -06:00
44b861bf92 tweak screen output 2024-06-29 16:29:31 -06:00
f0cd399836 add fix surface/global files 2024-06-29 15:15:06 -06:00
104 changed files with 27767 additions and 112 deletions

View File

@ -234,6 +234,8 @@ OPT.
* :doc:`srd <fix_srd>`
* :doc:`store/force <fix_store_force>`
* :doc:`store/state <fix_store_state>`
* :doc:`surface/global <fix_surface_global>`
* :doc:`surface/local <fix_surface_local>`
* :doc:`tdpd/source <fix_dpd_source>`
* :doc:`temp/berendsen (k) <fix_temp_berendsen>`
* :doc:`temp/csld <fix_temp_csvr>`

View File

@ -23,7 +23,6 @@ General howto
Howto_library
Howto_couple
Howto_mdi
Howto_broken_bonds
Settings howto
==============
@ -49,6 +48,7 @@ Analysis howto
:maxdepth: 1
Howto_output
Howto_structured_data
Howto_chunk
Howto_grid
Howto_temperature
@ -56,7 +56,6 @@ Analysis howto
Howto_kappa
Howto_viscosity
Howto_diffusion
Howto_structured_data
Force fields howto
==================
@ -65,6 +64,7 @@ Force fields howto
:name: force_howto
:maxdepth: 1
Howto_broken_bonds
Howto_bioFF
Howto_amoeba
Howto_tip3p
@ -81,6 +81,7 @@ Packages howto
Howto_spherical
Howto_granular
Howto_granular_surfaces
Howto_body
Howto_bpm
Howto_polarizable

View File

@ -1,10 +1,28 @@
Granular models
===============
Granular system are composed of spherical particles with a diameter,
Granular systems are composed of spherical particles with a diameter,
as opposed to point particles. This means they have an angular
velocity and torque can be imparted to them to cause them to rotate.
The various atom, pair, fix, and compute styles listed below are
useful for creaeting granular models.
You can also define granular surfaces which are a collection of line
segments (2d systems) or triangles (3d systems), which act as
boundaries interacting with the particles. Particle/surface
interactions can be specified with similar options as the pair styles
listed below.
This Howto doc page and two fixes explain how to define and use
granular surfaces:
* :doc:`Howto granular surfaces <Howto_granular_surfaces>`
* :doc:`fix surface/global <fix_surface_global>`
* :doc:`fix surface/local <fix_surface_local>`
----------
To run a simulation of a granular model, you will want to use
the following commands:
@ -16,12 +34,15 @@ This compute
* :doc:`compute erotate/sphere <compute_erotate_sphere>`
calculates rotational kinetic energy which can be :doc:`output with thermodynamic info <Howto_output>`.
The compute
calculates rotational kinetic energy which can be :doc:`output with
thermodynamic info <Howto_output>`.
This compute
* :doc:`compute fabric <compute_fabric>`
calculates various versions of the fabric tensor for granular and non-granular pair styles.
calculates various versions of the fabric tensor for granular and
non-granular pair styles.
Use one of these 4 pair potentials, which compute forces and torques
between interacting pairs of particles:
@ -31,8 +52,13 @@ between interacting pairs of particles:
* :doc:`pair_style gran/hertzian <pair_gran>`
* :doc:`pair_style granular <pair_granular>`
To add your own custom granular contact model to the :doc:`pair_style
granular <pair_granular>` command, see the :doc:`Modifying granular
sub-models <Modify_gran_sub_mod>` doc page.
These commands implement fix options specific to granular systems:
* :doc:`fix freeze <fix_freeze>`
* :doc:`fix freeze <fix_freeze>`
* :doc:`fix pour <fix_pour>`
* :doc:`fix viscous <fix_viscous>`
@ -69,6 +95,3 @@ computations between frozen atoms by using this command:
will be the same as in 3d. If you wish to model granular particles in
2d as 2d discs, see the note on this topic on the :doc:`Howto 2d <Howto_2d>`
doc page, where 2d simulations are discussed.
To add custom granular contact models, see the
:doc:`modifying granular sub-models page <Modify_gran_sub_mod>`.

View File

@ -0,0 +1,289 @@
Granular surfaces
=================
As explained on the :doc:`Howto granular <Howto_granular>` doc page,
granular systems are composed of spherical particles with a diameter,
as opposed to point particles. This means they have an angular
velocity and torque can be imparted to them to cause them to rotate.
The :doc:`Howto granular <Howto_granular>` doc page lists various
atom, pair, fix, and compute styles useful for creaeting granular
models.
This page explains how you can also define granular surfaces which are
a collection of triangles (3d systems) or line segments (2d systems),
which act as boundaries interacting with the particles. Different
kinds of particle/surface interactions can be specified with similar
options as the pair styles listed on the :doc:`Howto granular
<Howto_granular>` doc page.
----------
Global versus local surfaces
""""""""""""""""""""""""""""
A key point to understand is that LAMMPS supports two forms of
granular surfaces. You cannot use both in the same simulation.
The first is *global* which means that each processor stores a copy of
all the triangles/lines. This is suitable when a modest number of
triangles/lines is needed. They can be large triangles/lines, any of
which span a significant fraction of the simulation box size in one or
more dimensions.
The second is *local* which means that the collection of
triangles/lines is distributed across processers in the same manner
that particles are distributed. Each processor is assigned to
sub-domain of the simulation box and owns whichever triangles/lines
have their center point in the processor's sub-domain. Similar to
particles, each processor may also own ghost copies of triangles/lines
whose finite size overlaps with the processor's sub-domain. The
number of triangles/lines can now be very large. For effective
distribution and minimal communication all the triangles/lines should
be small, no more than a few particle diameters in size. If even one
larger triangle or line is defined then the neighbor list cutoff and
communication cutoff will be set correspondingly larger, which can
slow down the simulation.
One of these two commands must be specified to use *global* or *local*
surfaces in your granular simulation:
* :doc:`fix surface/global <fix_surface_global>`
* :doc:`fix surface/local <fix_surface_local>`
The :doc:`fix surface/global <fix_surface_global>` command reads in
the global surfaces in one of two ways. The first option is from a
molecule file(s) previously defined by the :doc:`molecule <molecule>`
command. The file should define triangles or lines with header
keywords and a Triangles or Lines section. The second option is from
a text or binary STL (strereolithogray) file which defines a set of
triangles. It can only be used with 3d simulations.
The :doc:`fix surface/local <fix_surface_local>` command defines local
surface in one of three ways. The first two options are the same
molecule and STL files explained in the previous paragraph. In this
case, the list of triangles/lines is distributed across processors
based on the center point of each triangle/line. The third option is
to include them in a LAMMPS data file which has been previously read
in via the :doc:`read_data <read_data>` command. If the file has a
Triangles or Lines section, then triangles/lines will be read in and
distributed along with any particles the data file includes.
----------
Surface attributes
""""""""""""""""""
For both global and local surfaces, each triangle/line is assigned a
*type* and a *molecule ID*. This is done when surfaces are read-in
from a molecule, STL, or data file. Since STL files do not define
types or molecule IDs, the :doc:`fix surface/global
<fix_surface_global>` and :doc:`fix surface/local <fix_surface_local>`
commands specify the type that will be assigned to the read-in
triangles. The molecule ID for each triangle is set to 1. The
:doc:`fix surface/global <fix_surface_global>` command also allows use
of the :doc:`fix_modify type/region <fix_modify>` command to assign
types based on a geometric region. Since local surfaces are
effectively particles, the :doc:`set <set>` command can be used to
alter the *type* or *molecule ID* of any triangle or line.
For both global and local surfaces, types are used to define the style
of granular interactions for individual triangles/lines. Different
styles can be used within a single object consisting of connected
triangles/lines. See the Surface Connectivity section below.
Molecule IDs are not currently used by granular surface interactions,
though they may be in the future. They are intended to be assigned
uniquely to each inter-connected set of triangles/lines, as if each
object were a "molecule". However, this is not required, and LAMMPS
does not check that this is the case. LAMMPS will issue a warning if
a set of inter-connected triangles/lines do not all have the same
molecule ID, in case this was not intentional.
For local surfaces, the molecule ID can be used to define groups and
thus assign different motions to different surface objects. See the
Surface Motion section below. Various other LAMMPS commands operate
on groups or molecules and can thus be used to gather statistics about
or output information about individual surface objects.
----------
Atom styles for granular surfaces
"""""""""""""""""""""""""""""""""
For all three ways of defining *local* surfaces, the triangles/lines
are stored internally in LAMMPS as triangle-style or line-style
particles. This means you must use a hybrid atom style which includes
one of these two sub-styles (for 3d or 2d):
* :doc:`atom_style tri <atom_style>` for 3d simulations
* :doc:`atom_style line <atom_style>` for 2d simulations
Typically, the atom_style hybrid command will also define a
:doc:`atom_style sphere <atom_style>` sub-style for the granular
particles which interact with the surfaces.
Note that for molecule or STL file input, the :doc:`fix surface/local
<fix_surface_local>` command reads the file(s) and uses the values for
each surface to creat a single new triangle or line particle. For
data file input, the triangle/line particles are created when the data
file is read.
For granular simluations with *global* surfaces, a hybrid atom style
which defines triangle-style or line-style particles should NOT be
used. The triangles/lines are stored by the :doc:`fix surface/global
<fix_surface_global>` command and not as triangle-style or line-style
particles.
----------
Rules for surface topology
""""""""""""""""""""""""""
For both *global* and *local* surfaces, granular particles interact
with both sides of each triangle or line segment.
No check is made to see if two triangles or line segments intersect
each other; this is allowed if it makes sense for the geometry of the
collection of surfaces.
As an example, consider a 2d simulation which mixes a container of
granular particles. *Global* line segments are used to define both
the box-shaped container and the mixer in the center. The 4 mixer
blades are in the shape of a large X and are made to rotate using the
:doc:`fix_modify <fix_modify>` command (see below).
The 2 blades could be defined by 2 line segments which cross each
other at their centers. Or the 2 blades could be defined by 4 line
segments, all of which have a common endpoint at the center of the
mixer. Or the 2 blades could be defined by 4 non-touching line
segments, all of which have a distinct endpoint near the center of the
mixer, but displaced from it by a distance less than the radius of a
granular particle. In any of these cases, when a particle gets very
close to the center of the mixer it will interact with both nearby
line segments as expected.
See the next section on connectivity for how two triangles or line
segemnts are treated if they share a common edge (triangle) or point
(triange or line).
----------
Surface connectivity
""""""""""""""""""""
If multiple triangles/lines are used to define a contiguous surface
which is flat or gently curved or has sharp edges or corners, LAMMPS
will detect when two or more line segments (2d) share the same
endpoint. Or when two or more triangles (3d) share the same edge or
same corner point.
This connectivity is stored internally and is used when appropriate to
calculate accurate forces on particles which simultaneously overlap
with 2 or more connected triangles or line segments.
Consider the simulation model of the previous section for a 2d mixer
now defined by *local* line segments. The flat surface of each mixer
blade (and container box faces) is defined by multiple small line
segments. It is imporant that these line segments be "connected" so
that when a particle contacts two adjacent line segments at the same
time, the resulting force on the particle is the same as it would be
if it were contacting the middle of a single long line segment.
Here is how to ensure that LAMMPS detects the appropriate connections.
For either *global* or *local* surfaces, if the triangles/lines are
defined in a molecule or STL file, then 3 corner points (triangle) or
2 end points (line) will be listed for each triangle/line in the file.
LAMMPS will only make a connection between 2 triangles or lines if a
shared point is EXACTLY the same in both. This is a single point in
both for a corner point or end point connection. It is two points in
both triangles for an edge connection.
For *local* surfaces, if the triangles/lines are defined in a data
file, then 3 corner points (triangle) or 2 end points (line) will be
listed for each triangle/line in the file. However in this case,
LAMMPS will allow for an INEXACT match of a shared point to make a
connection between 2 triangles or lines. Again, this is a single
point in both for a corner point or end point connection. It is two
points in both triangles for an edge connection.
An INEXACT match means that the two points can be EPSILON apart.
EPSILON is defined as a tiny fraction (1.0e-4) of the size of
the smallest triangle or line in the system.
The reason INEXACT matches are allowed is that data files can be
created in a variety of manners, including by LAMMPS itself as a
simulation runs via the :doc:`write_data <write_data>` command.
Interally, triangle-style and line-style particles do not store their
corner points directly. Instead, the center point of the
triangle/line is stored, along with an orientation of the
triangle/line and a displacement vector from the center point for each
corner point. This means that when new corner points values are
written to a data file for two different triangles/line, they may
differ by epsilon due to round-offs in finite-precision arithmetic.
Note that due to how connectivity is defined, two triangles/lines will
not be connected if their corner points are separted by even small
distances (greater than EPSILON). Likewise they will not be connected
if the corner point of one triangle/line is very close to (or even on)
the surface of another triangle or middle of another line segment. In
general these kinds of granular surfaces could be problematic and
should be avoided, but LAMMPS does not check for these conditions.
NOTE: maybe add a picture of T-shaped surf with 2 line segments (not
3). Explain why it could be bad?
Note that if a triangle or line segment has a free edge or free
corner/end point (not connected to any other triangle/line), granular
particles will still interact with the triangle/line if the nearest
contact point to the spherical particle center is on the free edge or
is the free corner/end point.
----------
Surface motion
""""""""""""""
By default, surface triangles/lines are motionless during a
simulation, whether they are *global* or *local*. Triangles/lines
impart forces and torques to granular particles, but the inverse
forces/torques on the triangles/lines do not cause them to move.
However, triangles/lines can be made to move in a prescribed manner.
E.g. the rotation of 2d mixer blades in the example described above.
These two commands can be used for that purpose:
* :doc:`fix_modify move <fix_modify>` for *global* surfaces
* :doc:`fix move <fix_move>` for *local* surfaces
For *global* surfaces, the :doc:`fix_modify move <fix_modify>` command
can move a specified subest of the triangles/lines in various ways
(translation, rotation, etc). Which triangles move is specified based
on the *type* of each triangle. Types are specified when surfaces are
defined by the :doc:`fix surface/global <fix_surface_global>` command.
They can also be defined by the :doc:`fix_modify typre/region
<fix_modify>` command.
For *local* surfaces, the :doc:`fix move <fix_move>` command can move
a specified subset of the triangles/lines in various ways
(translation, rotation, etc). Which triangles move is specified based
on the group-ID argument to the :doc:`fix move <fix_move>` command.
Groups can be defined by the :doc:`group <group>` command.
Note that for an object defined by two or more connected
triangles/lines, it is an error to assign a motion and not include all
the connected triangles/lines, since this would break the connections.
LAMMPS does NOT check that this requirement is met.
----------
Example scripts
"""""""""""""""
The examples/gransurf directory has example input scripts which use
both *global* and *local* surfaces. Both 2d and 3d models are included.
Each script produces a series of snapshot images using the :doc:`dump
image <dump_image>` command. The snapshots visualize both the
particles and granular surfaces. The snaphost can be animated to view
a movie of the simulation.

View File

@ -61,6 +61,7 @@ gives those details.
* :ref:`FEP <PKG-FEP>`
* :ref:`GPU <PKG-GPU>`
* :ref:`GRANULAR <PKG-GRANULAR>`
* :ref:`GRANSURF <PKG-GRANSURF>`
* :ref:`H5MD <PKG-H5MD>`
* :ref:`INTEL <PKG-INTEL>`
* :ref:`INTERLAYER <PKG-INTERLAYER>`
@ -1099,6 +1100,31 @@ potentials.
----------
.. _PKG-GRANSURF:
GRANSURF package
----------------
**Contents:**
Granular surfaces consisting of triangles (3d) or line segments (2d).
These interact with finite-size granular particles as static or moving
boundary conditions and support the same kind of interaction models as
granular pair styles do for particle/particle interactions. The
collection of triangles or lines can be "global" with each processor
storing all of them. Or it can be "local" where the triangles/lines
are distributed across processors.
**Supporting info:**
* src/GRANSURF: filenames -> commands
* :doc:`Howto granular surfaces <Howto_granular_surfaces>`
* :doc:`fix surface/global <fix_surface_global>`
* :doc:`fix surface_local <fix_surface_local>`
* examples/gransurf
----------
.. _PKG-H5MD:
H5MD package

View File

@ -203,6 +203,11 @@ whether an extra library is needed to build and use the package:
- :doc:`Howto granular <Howto_granular>`
- pour
- no
* - :ref:`GRANSURF <PKG-GRANSURF>`
- granular surfaces
- :doc:`Howto granular surfaces <Howto_granular_surfaces>`
- pour
- no
* - :ref:`H5MD <PKG-H5MD>`
- dump output via HDF5
- :doc:`dump h5md <dump_h5md>`

View File

@ -413,6 +413,8 @@ accelerated styles exist.
* :doc:`srd <fix_srd>` - stochastic rotation dynamics (SRD)
* :doc:`store/force <fix_store_force>` - store force on each atom
* :doc:`store/state <fix_store_state>` - store attributes for each atom
* :doc:`surface/global <fix_surface_global>` - global granular surface model, each proc has copy
* :doc:`surface/local <fix_surface_local>` - local granular surface model, distributed across procs
* :doc:`tdpd/source <fix_dpd_source>` - add external concentration source
* :doc:`temp/berendsen <fix_temp_berendsen>` - temperature control by Berendsen thermostat
* :doc:`temp/csld <fix_temp_csvr>` - canonical sampling thermostat with Langevin dynamics

View File

@ -43,10 +43,12 @@ Examples
Description
"""""""""""
Modify one or more parameters of a previously defined fix. Only
specific fix styles support specific parameters. See the doc pages
for individual fix commands for info on which ones support which
fix_modify parameters.
Modify one or more parameters of a previously defined fix. Specific
fix styles support specific parameters. See the doc pages of an
individual fix command for info on which fix_modify keywords it
supports. This doc page only describes fix_modify keywords which are
supported by multiple fixes. Additional keywords, specific to a
single fix, are only described on that fix's doc page.
The *temp* keyword is used to determine how a fix computes
temperature. The specified compute ID must have been previously
@ -171,7 +173,6 @@ will have no effect on the motion of the rigid bodies if they are
specified in the input script after the fix rigid command. LAMMPS
will give a warning if that is the case.
The *colname* keyword can be used to change the default header keywords
in output files of fix styles that support it: currently only :doc:`fix
ave/time <fix_ave_time>` is supported. The setting for *ID string*
@ -184,7 +185,6 @@ replaces the string for that specific keyword. The *colname* keyword can
be used multiple times. If multiple *colname* settings refer to the same
keyword, the last setting has precedence.
Restrictions
""""""""""""
none

View File

@ -31,13 +31,13 @@ Description
Perform plain time integration to update position and velocity for
atoms in the group each timestep. This creates a system trajectory
consistent with the microcanonical ensemble (NVE) provided there
are (full) periodic boundary conditions and no other "manipulations"
of the system (e.g. fixes that modify forces or velocities).
consistent with the microcanonical ensemble (NVE) provided there are
(full) periodic boundary conditions and no other "manipulations" of
the system (e.g. fixes that modify forces or velocities).
This fix invokes the velocity form of the
Stoermer-Verlet time integration algorithm (velocity-Verlet). Other
time integration options can be invoked using the :doc:`run_style <run_style>` command.
This fix invokes the velocity form of the Stoermer-Verlet time
integration algorithm (velocity-Verlet). Other time integration
options can be invoked using the :doc:`run_style <run_style>` command.
----------
@ -48,15 +48,18 @@ time integration options can be invoked using the :doc:`run_style <run_style>` c
Restart, fix_modify, output, run start/stop, minimize info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options
are relevant to this fix. No global or per-atom quantities are stored
by this fix for access by various :doc:`output commands <Howto_output>`.
No information about this fix is written to :doc:`binary restart files
<restart>`. None of the :doc:`fix_modify <fix_modify>` options are
relevant to this fix. No global or per-atom quantities are stored by
this fix for access by various :doc:`output commands <Howto_output>`.
No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
the :doc:`run <run>` command. This fix is not invoked during
:doc:`energy minimization <minimize>`.
Restrictions
""""""""""""
none
none
Related commands
""""""""""""""""

View File

@ -0,0 +1,372 @@
.. index:: fix surface/global
fix surface/global command
===============
Syntax
""""""
.. code-block:: LAMMPS
fix ID group-ID surface/global input args input args ... model args model args ... keyword value ...
* ID, group-ID are documented in :doc:`fix <fix>` command
* surface/global = style name of this fix command
* input = one or more input keywords can be specified
.. parsed-literal::
*input* args = source source-args
*source* = *mol* or *stl*
*mol* arg = template-ID
template-ID = ID of molecule template specified in a separate :doc:`molecule <molecule>` command, which defines a set of triangles or lines
*stl* args = stype stlfile
stype = numeric type assigned to all triangles in STL file
stlfile = STL filename which defines a set of triangles
* model = one or more model keywords can be specified
.. parsed-literal::
*model* args = ptype stype fstyle fstyle-args
ptype = numeric particle type (see asterisk form below)
stype = numeric surface type (see asterisk form below)
*fstyle* = *hooke* or *hooke/history* or *hertz/history* or *granular*
*hooke* or *hooke/history* or *hertz/history* args = Kn Kt gamma_n gamma_t xmu dampflag (limit_damping)
Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)
Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)
gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)
gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)
xmu = static yield criterion (unitless value between 0.0 and 1.0e4)
dampflag = 0 or 1 if tangential damping force is excluded or included
limit_damping = optional argument to prevent attractive interactions
*granular* args = same syntax for args as *pair_coeff* command of :doc:`pair_style granular <pair_granular>`
* zero or more keyword/value pairs may be appended
* keyword = *smax* or *flat* or *temperature*
.. parsed-literal::
*smax* value = smaxtype
smaxtype = maximum surface type allowed
*flat* value = maxangle
maxangle = maximum angle (degrees) between a pair of connected triangles/lines for a flat connection
*temperature* value = Tsurf
Tsurf = surface temperature (degrees Kelvin), required if model with heat is used
Examples
""""""""
.. code-block:: LAMMPS
molecule lines surf.line
fix 1 all surface/global input mol linesurf model 1 1 hooke 4000.0 NULL 100.0 NULL 0.5 1
fix 1 all surface/global input stl 1 object.stl model * 1 hooke/history 4000.0 NULL 100.0 NULL 0.5 1
Description
"""""""""""
Enable granular surfaces to be used as boundary conditions on
particles in a granular simulation. Granular surfaces are defined as
a set of triangles (3d) or a set of line segments (2d).
The :doc:`Howto granular surfaces <Howto_granular_surfaces>` doc page
gives an overview of granular surfaces of two types, *global* and
*local*, with guidelines for how to use them.
This command is used for models with *global* surfaces. The :doc:`fix
surface/local <fix_surface_local>` command is used for models with
*local* surfaces. As explained on the :doc:`Howto granular surfaces
<Howto_granular_surfaces>` doc page, *global* surfaces are most
appropriate when there is a modest number of them. Each surface
(triangle/line) can be of any size, even as large as a dimension of
the simulation box. A copy of the list of *global* surfaces is stored
by each processor.
*Global* triangles or line segments are not stored as particles and
distributed across processors. Rather, they are stored by this fix
and each processor stores a copy of all of them. This fix also
computes forces between the global surfaces and all the particles.
*Global* surfaces can be defined in 2 ways, which correspond to the 2
options listed above for the *source* argument of the *input* keyword:
* via a molecule file(s), read by the :doc:`molecule <molecule>` command
* via an STL file(s), read by this command
If triangles or lines were previously read in by the :doc:`molecule
<molecule>` command, the *source* argument of the *input* keyword is
*mol* and its *template-ID* argument is the molecule template ID used
with the :doc:`molecule <molecule>` command. Note that a
doc:`molecule <molecule>` command can read and assign serveral
molecule files to the same template-ID. Each molecule file must
define triangles or lines, not atoms. For multiple molecule files,
the set of triangles or lines defined used by this input option will
be the union of the triangles and lines from all the molecule files.
Note that each line/triangle in a molecule file is assigned a type and
molecule ID.
An STL (stereolithography) file defines a set of triangles. For use
with this command, the *source* argument of the *input* keyword is
*stl*. The *stype* argument is the numeric type assigned to all the
triangles from the file. Note that STL files do not contain types or
other flags for each triangle. The *stlfile* argument is the name of
the STL file. It can be in text or binary format; this command
auto-detects the format. Note that STL files cannot be used for 2d
simulations since they only define triangles. Each triangle from an
STL file is assigned a molecule ID = 1.
This `Wikepedia page
<https://en.wikipedia.org/wiki/STL_(file_format)>`_ describes the
format of both text and binary STL files. Binary STL files can be
converted to ASCII for editing with the stl_bin2txt tool in the
lammps/tools directory. Examples of text-based STL files are included
in the examples/gransurf directory.
Note that this command allows for multiple uses of the *input*
keyword, each with a *source* argument as either *mol* or *stl*. The
surfaces used by this command are the union of the triangles and lines
from all the input keywords.
Once surfaces are defined, this command calculates their connectivity.
Two triangles are "connected" if they have a single corner point in
common or an edge in common (2 corner points). Two line segments are
"connected" if the they have an end point in common. More technical
details on connectivity and its significance for granular surface
simulations is given on :doc:`Howto granular surfaces
<Howto_granular_surfaces>` doc page. In brief, a pair of connected
surfaces interact with a particle which contacts both of them
simultaneously according to a set of rules which are designed to
generate physically sensible forces on the particle.
Note that there is no requirement that all the surfaces be connected
to one another. The surfaces can represent the surface of one or more
independent objects. Particles in the specified group-ID interact
with the surface when they are close enough to overlap (touch) one or
more individual triangles or lines. Both sides of a triangle or line
interact with particles. Thus a surface can be infinitely thin,
e.g. the blade of a mixer. See the :doc:`Howto granular surfaces
<Howto_granular_surfaces>` doc page for restrictions on the geometry
of a collection of triangles or lines.
The nature of individual surface/particle interactions are determined
by the *model* keyword. Each use of the model keyword is applied to
one or more particle types interacting with one or more surface types.
The *ptype* argument is the particle type, *stype* is the surface
type.
Either *ptype* and *stype* can be specified as a single numeric value.
Or a wildcard asterisk can be used to specify multiple particle or
surface types. This takes the form "\*" or "\*n" or "n\*" or "m\*n".
If :math:`N` is the number of particle or surface types, then an
asterisk with no numeric values means all types from 1 to :math:`N`.
A leading asterisk means all types from 1 to n (inclusive). A
trailing asterisk means all types from n to :math:`N` (inclusive). A
middle asterisk means all types from m to n (inclusive).
The model keywords must specify an interactions for each particle type
interacting with each surface type, otherwise an error is flagged.
If use of the model keywords specifies an individual particle/surface
type pair more than once, then the final specification is used.
The number of particle types is the number of atom types in the
system. The number of surface types is determined by the maximum
surface type in any of files read by the *input* keyword(s) or by the
optional *smaxtype* keyword. The latter can be useful if the
:doc:`fix_modify type/region <fix_modify>` command (described below)
is used to assign new types to surfaces after they are read in. As
for particles, there is no requirement that triangles/lines exist for
every surface type.
The *fstyle* argument (for force style) can be any of the styles
defined by the :doc:`pair_style gran/\* <pair_gran>` or the more
general :doc:`pair_style granular <pair_granular>` commands.
Currently the options are *hooke*, *hooke/history*, or *hertz/history*
for the former, and *granular* with all the possible options of the
associated *pair_coeff* command for the latter. The equation for the
force between a triangle/line and a particle touching it is the same
as the corresponding equation on the :doc:`pair_style gran/\*
<pair_gran>` and :doc:`pair_style granular <pair_granular>` doc pages,
in the limit of one of the two particles going to infinite radius and
mass (flat surface). Specifically, delta = radius - r = overlap of
particle with triangle/line, m_eff = mass of particle, and the
effective radius of contact = RiRj/Ri+Rj is set to the radius of the
particle.
The parameters *Kn*, *Kt*, *gamma_n*, *gamma_t*, *xmu*, *dampflag*,
and the optional keyword *limit_damping* have the same meaning and
units as those specified with the :doc:`pair_style gran/\*
<pair_gran>` commands. This means a NULL can be used for either *Kt*
or *gamma_t* as described on that page. If a NULL is used for *Kt*,
then a default value is used where *Kt* = 2/7 *Kn*\ . If a NULL is
used for *gamma_t*, then a default value is used where *gamma_t* = 1/2
*gamma_n*.
Note that the fix surface/global command can be used multiple times
though it is not typically necessary to do so. Note that if it is
used multiple times, the surfaces defined by the different commands
will NOT be "connected" to each other in the manner described above or
on the :doc:`Howto granular surfaces <Howto_granular_surfaces>` doc
page.
----------
These are the optional keywords and values.
The *smax* keyword sets the maximum value *smaxtype* of a surface type
which can be used. By default, this is the maximum type of any
surface defined by the *input* keyword(s). If the :doc:`fix_modify
type/region <fix_modify>` command (described below) will be used later
to change a surface type to a larger value than the default, then the
*smax* keyword can allow this.
The *flat* keyword sets a *maxangle* threshold for the angle (in
degrees) between two connected surfaces (triangles or line segments)
which will be treated as "flat" by the particle/surface interaction
models. A flat connection means a single force will be applied to the
particle even if it is contact with both surfaces simultaneously. See
the :doc:`Howto granular surfaces <Howto_granular_surfaces>` doc page
for more details. The default for *maxangle* is one degree.
The *temperature* keyword is required if any of the granular models
used includes a heat model which depends on the surface temperature.
Otherwise it is ignored. Its *Tsurf* value is the temperature of the
surface in degrees Kelvin.
Restart, fix_modify, output, run start/stop, minimize info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
No information about this fix is written to :doc:`binary restart files
<restart>`.
This fix defines two new keywords for the doc:`fix_modify
<fix_modify>` command, *move* and *type/region*. Because they are
specific to this command, they are only described here, not on the
doc:`fix_modify <fix_modify>` doc page. Both keywords can be used
multiple times. In the description that follows, a surface means a
triangle (3d) or line segment (2d).
The *move* keyword can be used to make all or a subset of the surfaces
move in a prescribed manner, similar to the :doc:`fix move <fix_move>`
command. The *type/region* keyword can be used to change the types of
surfaces which are within a geometric region. Their syntax is as follows:
.. code-block:: LAMMPS
fix_modify fix-ID keyword values ...
* fix-ID = ID of the fix to modify
* keyword (specific to this fix) = *move* or *type/region*
.. parsed-literal::
*move* values = stype mstyle args
stype = numeric surface type(s) (see comma-separated, asterisk form below)
mstyle = *none* or *linear* or *wiggle* or *rotate* or *transrot* or *variable*
*none* args = none
*linear* args = Vx Vy Vz
*wiggle* args = Ax Ay Az period
*rotate* args = Px Py Pz Rx Ry Rz period
*transrot* args = Vx Vy Vz Px Py Pz Rx Ry Rz period
*variable* args = v_dx v_dy v_dz v_vx v_vy v_vz
*type/region* values = stype region-ID
stype = numeric surface type
region-ID = ID of a region previously defined by the :doc:`region <region>` command
The *stype* argument can specify one or more surface types. It must
specify all the surface types within a connecte object(s). If an
object is composed of surfaces of 2 or more types, it is an error to
use the *move* keyword and not specify all those types, since this
would break the connections. Note that LAMMPS does NOT check that
this requirement is met. It is likewise an error to use the *move*
keyword multiple times to induce motion which overlaps surfaces in
ways that violate the surface geometry restrictions explained on the
:doc:`Howto granular surfaces <Howto_granular_surfaces>` doc page.
Again, LAMMPS does NOT check that this requirement is met.
The general format of *stype* is st,st,...,st where one or more *st*
sub-arguments are separated by commas. A single *st* sub-argument is
either a single numeric value or contains a wildcard asterisk. The
asterisk is used in place of or in conjunction with numeric arguments
to specify multiple type values. This takes the form "\*" or "\*n" or
"n\*" or "m\*n". If :math:`N` is the number of atom types, then an
asterisk with no numeric values means all types from 1 to :math:`N`.
A leading asterisk means all types from 1 to n (inclusive). A
trailing asterisk means all types from n to :math:`N` (inclusive). A
middle asterisk means all types from m to n (inclusive).
The *mstyle* argument is one of the listed styles above. The *none*
style turns off motion which was previously enabled, e.g. stops the
rotation of an object. Again, the list of surface types must include
all the surfaces in a connected object. The other *move* styles and
their effects on motion are the same as those defined by the :doc:`fix
move <fix_move>` command. Their arguments are also the same as those
documented by the :doc:`fix move <fix_move>` command.
The move *variable* style for this command is more limited than for
the :doc:`fix move <fix_move>` command. Only an equal-style variable
can be used, as defined by the :doc:`variable <variable>`. Atom-style
variables cannot be used. Also, if both the displacement and velocity
variables for a particular x,y,z component are specified as NULL, then
no change is made to those position or velococity components of an
individual triangle/line, which is different than the explanation
given by the :doc:`fix move <fix_move>` command for individual
particles.
Note that for *local* surfaces the same motion operations can be
performed using the :doc:`fix move <fix_move>` command with a group-ID
defined by the :doc:`group <group>` which includes the appropriate
particle types for triangle and line-segment particles.
The *type/region* keyword can be used to re-assign surface types to
surfaces after they have been initialized by the *input* keyword.
This is most useful for STL triangles since STL files do not allow for
assignment of types to individual triangles.
The *stype* argument is a single numeric value, which must be between
1 and maxtype inclusive. Maxtype is either the maximum type of all
surfaces read in by the *input* keyword or the setting of the optional
*smax* keyword. The *region-ID* is the ID of a geometric region
defined by the :doc:`region <region>` command. Note that regions can
be the inside or outside of a geometric object, such as a sphere or
block. The geometric center point of a triangle or line segment is
used to determine where a surface is in the region or not. If it is,
its type is reset to *stype*.
Examples for both keywords are as follows:
.. code-block:: LAMMPS
fix_modify 1 move 2 rotate 0 0 0 0 0 1 25
fix_modify 1 move 1,3*5,8* rotate 0 0 0 0 0 1 25
fix_modify 1 type/region 3 myBlock
No global or per-atom quantities are stored by this fix for access by
various :doc:`output commands <Howto_output>`. No parameter of this
fix can be used with the *start/stop* keywords of the :doc:`run <run>`
command. This fix is not invoked during :doc:`energy minimization
<minimize>`.
Restrictions
""""""""""""
Molecule IDs are not currently used by granular surface interactions,
though they may be in the future. They are intended to be assigned
uniquely to each inter-connected set of triangles/lines, as if each
object were a "molecule". However, this is not required, and LAMMPS
does not check that this is the case. LAMMPS will issue a warning if
a set of inter-connected triangles/lines do not all have the same
molecule ID, in case this was not intentional.
Related commands
""""""""""""""""
:doc:`fix surface/local <fix_surface_local>`
Default
"""""""
The keyword defaults are smax = max type of all surfaces defined by
the input keyword(s), flat = one degree, temperaure = none.

View File

@ -0,0 +1,220 @@
.. index:: fix surface/local
fix surface/local command
===============
Syntax
""""""
.. code-block:: LAMMPS
fix ID group-ID surface/local input args input args ... keyword value ...
* ID, group-ID are documented in :doc:`fix <fix>` command
* surface/local = style name of this fix command
* input = zero or more input keywords can be specified
.. parsed-literal::
*input* args = source source-args
*source* = *mol* or *stl*
*mol* arg = template-ID
template-ID = ID of molecule template specified in a
separate :doc:`molecule <molecule>` command, which defines a set of triangles or lines
*stl* args = stype stlfile
stype = numeric type assigned to all triangles in STL file
stlfile = STL filename which defines a set of triangles
* zero or more keyword/value pairs may be appended
* keyword = *flat*
.. parsed-literal::
*flat* value = maxangle
maxangle = maximum angle (degrees) between a pair of connected triangles/lines for a flat connection
Examples
""""""""
.. code-block:: LAMMPS
read_data data.tris
fix 1 all surface/local NULL
molecule tris surf.tri
fix 1 all surface/local tris
fix 1 all surface/local surf.tri.stl
Description
"""""""""""
Enable granular surfaces to be used as boundary conditions on
particles in a granular simulation. Granular surfaces are defined as
a set of triangles (for 3d models) or a set of line segments (for 2d
models).
The :doc:`Howto granular surfaces <Howto_granular_surfaces>` doc page
gives an overview of granular surfaces of two types, *global* and
*local*, and gives guidelines for how they should be defined.
This command is used for models with *local* surfaces. The :doc:`fix
surface/global <fix_surface_global>` command is used for models with
*global* surfaces. As explained on the :doc:`Howto granular surfaces
<Howto_granular_surfaces>` doc page, *local* surfaces are most
appropriate when there is a large number of them. They should
typically use surfaces (triangles/lines) whose size is no more than a
few times larger than the spherical particles used in a granular
model. There can be as many surfaces as needed to describe one or
more physical surfaces at high resolution.
*Local* triangles or line segments are stored as triangle or line
particles and are distributed across processors in the same manner as
other particles, based on which processor's sub-domain the center of
the triangle or line segment is inside of.
*Local* triangles/lines can be defined in 3 ways. The latter two
correspond to the 2 options listed above for the *source* argument of
the *input* keyword:
* via a data file, read by the :doc:`read_data <read_data>` command
* via a molecule file(s), read by the :doc:`molecule <molecule>` command
* via an STL file(s), read by this commmand
If triangles/lines were previously read in by the :doc:`read_data
<read_data>` command, then distributed triangles or lines already
exist. As explained on the :doc:`Howto granular surfaces
<Howto_granular_surfaces>` doc page, these are "particles" as defined
by the :doc:`atom_style tri or line <atom_style>` command, typically
as a sub-style of the :doc:`atom_style hybrid <atom_style>` command.
Use of the *input* keyword adds new triangle/line particles to the
system.
If triangles or lines were previously read in by the :doc:`molecule
<molecule>` command, the *source* keyword of the *input* keyword is
*mol* and tts *template-ID* argument is the molecule template ID used
with the :doc:`molecule <molecule>` command. Note that a
doc:`molecule <molecule>` command can read and assign serveral
molecule files to the same template-ID. Each molecule file must
define triangles or lines, not atoms. For multiple molecule files,
the set of triangle or line particles defined by this input option
will be the union of the triangles and lines from all the molecule
files. Note that each line/triangle in a molecule file is assigned a
type and molecule ID.
An STL (stereolithography) file defines a set of triangles. For use
with this command, the *source* argument of the *input* keyword is
*stl*. The *stype* argument is the numeric type assigned to all the
triangles from the file. Note that STL files do not contain types or
other flags for each triangle. The *stlfile* argument is the name of
the STL file. It can be in text or binary format; this command
auto-detects the format. One triangle particle is created for each
triangle in the STL file(s). Note that STL files cannot be used for
2d simulations since they only define triangles. Each triangle
partilce from an STL file is assigned a molecule ID = 1.
This `Wikepedia page
<https://en.wikipedia.org/wiki/STL_(file_format)>`_ describes the
format of both text and binary STL files. Binary STL files can be
converted to ASCII for editing with the stl_bin2txt tool in the
lammps/tools directory. Examples of text STL files are included in
the examples/gransurf directory.
Note that this command allows for pre-defined triangle/line particles
read in by the :doc:`read_data <read_data>` command as well as ultiple
uses of the *input* keyword, each with a *source* argument as either
*mol* or *stl*. The number of triangle/line particles created by this
command will be the union of those already read by the :doc:`read_data
<read_data>` command and those specified by the *input* keywords.
Once all the distributed triangle/line particles are defined, this
command calculates their connectivity. Two triangles are "connected"
if they have a single corner point in common or an edge in common (2
corner points). Two line segments are "connected" if the they have an
end point in common. More technical details on connectivity and its
significance for granular surface simulations is given on :doc:`Howto
granular surfaces <Howto_granular_surfaces>` doc page. In brief, a
pair of connected surfaces interact with a particle which contacts
both of them simultaneously according to a set of rules which are
designed to generate physically sensible forces on the particle.
Note that there is no requirement that all the surfaces be connected
to one another. The surfaces can represent the surface of one or more
independent objects. Particles interact with the surface when they
are close enough to overlap (touch) one or more individual triangles
or lines. Both sides of a triangle or line interact with particles.
Thus a surface can be infinitely thin, e.g. the blade of a mixer. See
the :doc:`Howto granular surfaces <Howto_granular_surfaces>` doc page
for restrictions on the geometry of a collection of triangles or
lines.
The nature of individual surface/particle interactions are determined
by the :doc:`pair_coeff <pair_coeff>` command which specifies
interaction parameeters for each pair of particle types. It is thus
important to specify different types for granular particles and
granular surfaces (triangle/line particles). Typically a granular
simulation with local surfaces uses the :doc:`pair_style hybrid
<pair_hybrid>` command so that multiple sub-styles can be defined by
the :doc:`pair_coeff <pair_coeff>` command, one or more for
particle/particle interactions, and one or more for particle/surface
interactions. Similar to the :doc:`fix surface/global
<fix_surface_global>` command this allows multiple particle/surface
granular interaction models to be used, based on the surface particle
types.
----------
These are the optional keywords and values.
The *flat* keyword sets a *maxangle* threshold for the angle (in
degrees) between two connected surfaces (triangles or line segments)
which will be treated as "flat" by the particle/surface interaction
models. A flat connection means a single force will be applied to the
particle even if it is contact with both surfaces simultaneously. See
the :doc:`Howto granular surfaces <Howto_granular_surfaces>` doc page
for more details. The default for *maxangle* is one degree.
The *temperature* keyword is required if any of the granular models
defined by the :doc:`pair_coeff <pair_coeff>` command includes a heat
model which depends on the surface temperature. Otherwise it is
ignored. Its *Tsurf* value is the temperature of the surface in
degrees Kelvin.
Note that the *temperature* keyword used by the :doc:`fix
surface/global <fix_surface_global>` command is not used by this
command. This is because the particle/surf interactions are computed
by pair styles and that is where the temperature is applicable.
Note that the *smax* keyword used by the :doc:`fix surface/global
<fix_surface_global>` command is not used by this command. This is
because local triangles and lines are already particles and their type
is limited by the maximum number of particle types.
Restart, fix_modify, output, run start/stop, minimize info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
No information about this fix is written to :doc:`binary restart files
<restart>`. None of the :doc:`fix_modify <fix_modify>` options are
relevant to this fix. No global or per-atom quantities are stored by
this fix for access by various :doc:`output commands <Howto_output>`.
No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command. This fix is not invoked during
:doc:`energy minimization <minimize>`.
Restrictions
""""""""""""
none
Related commands
""""""""""""""""
:doc:`fix surface/global <fix_surface_global>`
Default
"""""""
none

View File

@ -112,7 +112,9 @@ to a group.
The *region* style puts all atoms in the region volume into the group.
Note that this is a static one-time assignment. The atoms remain
assigned (or not assigned) to the group even in they later move out of
the region volume.
the region volume. For extended triangle or line-segment particle,
the center point of the triangle or line-segment is used to determine
whether the particle is in the region or not.
The *type*, *id*, and *molecule* styles put all atoms with the
specified atom types, atom IDs, or molecule IDs into the group. These

View File

@ -64,6 +64,16 @@ templates include:
* :doc:`create_atoms <create_atoms>`
* :doc:`atom_style template <atom_style>`
It can also be used to define a collection of line segments (2d) or
triangles (3d) which define an object's surface or a boundary
condition for granular particles to interact with, via these commands:
* :doc:`fix surface/global <fix_surface_global>`
* :doc:`fix surface/local <fix_surface_local>`
See the :doc:`Howto granular surfaces <Howto_granular_surfaces>` doc
page for more details on these kinds of models.
The ID of a molecule template can only contain alphanumeric characters
and underscores.
@ -95,6 +105,11 @@ use that attribute (e.g. no bonds).
labels will determine the actual types directly depending on the
current :doc:`labelmap <labelmap>` settings.
.. note::
For molecule files defining line segments or triangles, only the
*toff* keyword is relevant; the other offset keywords are ignored.
The *scale* keyword scales the size of the molecule. This can be
useful for modeling polydisperse granular rigid bodies. The scale
factor is applied to each of these properties in the molecule file, if
@ -105,21 +120,26 @@ mass of the molecule (header keyword = mass), the center-of-mass of
the molecule (header keyword = com), and the moments of inertia of the
molecule (header keyword = inertia).
.. note::
For molecule files defining line segments or triangles, the *scale*
keyword is ignored.
.. note::
The molecule command can be used to define molecules with bonds,
angles, dihedrals, impropers, or special bond lists of neighbors
within a molecular topology, so that you can later add the molecules
to your simulation, via one or more of the commands listed above.
Since this topology-related information requires that suitable storage
is reserved when LAMMPS creates the simulation box (e.g. when using
the :doc:`create_box <create_box>` command or the
:doc:`read_data <read_data>` command) suitable space has to be reserved
so you do not overflow those pre-allocated data structures when adding
molecules later. Both the :doc:`create_box <create_box>` command and
the :doc:`read_data <read_data>` command have "extra" options which
ensure space is allocated for storing topology info for molecules that
are added later.
within a molecular topology, so that you can later add the
molecules to your simulation, via one or more of the commands
listed above. Since this topology-related information requires
that suitable storage is reserved when LAMMPS creates the
simulation box (e.g. when using the :doc:`create_box <create_box>`
command or the :doc:`read_data <read_data>` command) suitable space
has to be reserved so you do not overflow those pre-allocated data
structures when adding molecules later. Both the :doc:`create_box
<create_box>` command and the :doc:`read_data <read_data>` command
have "extra" options which ensure space is allocated for storing
topology info for molecules that are added later.
----------
@ -166,18 +186,18 @@ commands. Here is a simple example for a TIP3P water molecule:
1 1 2 1 3
A molecule file has a header and a body. The header appears first. The
first line of the header and thus of the molecule file is *always*
A molecule file has a header and a body. The header appears first.
The first line of the header and thus of the molecule file is *always*
skipped; it typically contains a description of the file or a comment
from the software that created the file.
Then lines are read one line at a time. Lines can have a trailing
comment starting with '#' that is ignored. There *must* be at least one
blank between any valid content and the comment. If the line is blank
(i.e. contains only white-space after comments are deleted), it is
skipped. If the line contains a header keyword, the corresponding
value(s) is/are read from the line. A line that is *not* blank and does
*not* contains a header keyword begins the body of the file.
comment starting with '#' that is ignored. There *must* be at least
one blank between any valid content and the comment. If the line is
blank (i.e. contains only white-space after comments are deleted), it
is skipped. If the line contains a header keyword, the corresponding
value(s) is/are read from the line. A line that is *not* blank and
does *not* contains a header keyword begins the body of the file.
The body of the file contains zero or more sections. The first line
of a section has only a keyword. The next line is skipped. The
@ -192,7 +212,8 @@ line. The keyword should appear at the end of the line. All these
settings have default values, as explained below. A line need only
appear if the value(s) are different than the default, except when
defining a *body* particle, which requires setting the number of
*atoms* to 1, and setting the *inertia* in a specific section (see below).
*atoms* to 1, and setting the *inertia* in a specific section (see
below).
.. list-table::
:header-rows: 1
@ -242,6 +263,18 @@ defining a *body* particle, which requires setting the number of
- inertia
- 6 components of inertia tensor of molecule
- computed
* - Nlines
- lines
- # of lines Nlines in molecule
- 0
* - Ntris
- triangles
- # of triangle Ntris in molecule
- 0
A molecule file can contain only either the *atoms*, *lines*, or
*triangles* keyword. All the other keywords can only be used for
a molecule file containing the *atoms* keyword.
For *mass*, *com*, and *inertia*, the default is for LAMMPS to calculate
this quantity itself if needed, assuming the molecules consist of a set
@ -266,6 +299,11 @@ These are the allowed section keywords for the body of the file.
* *Special Bond Counts, Special Bonds* = special neighbor info
* *Shake Flags, Shake Atoms, Shake Bond Types* = SHAKE info
* *Body Integers, Body Doubles* = body-property sections
* *Lines, Triangles* = corner points of lines or triangles
Similar to the corresponding keywords, a molecule file can only
contain either a Coords, Lines, or Triangles section. All of the
other sections can only be used in molecule files for atoms.
For the Types, Bonds, Angles, Dihedrals, and Impropers sections, each
atom/bond/angle/etc type can be specified either as a number (numeric
@ -669,6 +707,68 @@ the file format.
----------
*Lines* section:
* one line per line segment
* line syntax: ID molecule-ID type x1 y1 x2 y2
* molecule-ID = molecule-ID of the line segment
* type = type of the line segment
* x1,y1,x2,y2 = coords of two endpoints of line segment
Each line segment is assigned a molecule-ID and type, similar to an
atom type. This allows a collection of lines to represent multiple 2d
bodies, e.g. a collection of squares. Line-segments in each could
have a different molecule-ID, or the left-facing edges could have a
unique atom type.
The coords of two different line segments which are connected by a
common point should list the exact same coordinates for the common
point. This allows a command like :doc:`fix surface/local
<fix_surface_local>` to infer connectivity of the two line segments.
The ordering of the two points defines the direction of an outward
normal for the line segment. This is defined by a right-hand rule.
The outward normal N = (0,0,1) x (p2-p1), where p1 and p2 are the 2
points. In other words, a unit z-direction vector is crossed into the
vector from p1 to p2 to determine the normal.
It depends on how the line segments are used by other commands in
LAMMPS whether the normal direction matters or not.
----------
*Triangles* section:
* one line per triangle
* line syntax: ID molecule-ID type x1 y1 z1 x2 y2 z2 x3 y3 z3
* molecule-ID = molecule-ID assigned triangle
* type = type assigned to triangle
* x1,y1,z1,x2,y2,z2,x3,y3,z3 = coords of three corner points of triangle
Each triangle is assigned a molecule-ID and type, similar to an atom
type. This allows a collection of triangles to represent multiple 3d
objects, e.g. a curved surface on the left and right of the simulation
box. Triangles in each could have a different molecule-ID, or the the
triangles in the upper half could have a different type than those in
the lower half.
The coords of two different triangles which share a common edge (2
points) or corner point (single point) should list the exact same
coordinates for the common points. This allows a command like
:doc:`fix surface/local <fix_surface_local>` to infer connectivity of
the two triangles.
The ordering of the three points defines the direction of the outward
normal for the triangle. This is defined by a right-hand rule. The
outward normal N = (p2-p1) x (p3-p1), where p1, p2, p3 are the 3
point. In other words, the edge from p1 to p2 is crossed into the
edge from p1 to p3 to determine the normal.
It depends on how the triangles are used by other commands in LAMMPS
whether the normal direction matters or not.
----------
Restrictions
""""""""""""

View File

@ -0,0 +1,32 @@
LAMMPS data file for line box
9 atoms
9 lines
2 atom types
-15 15 xlo xhi
-15 15 ylo yhi
-0.5 0.5 zlo zhi
Atoms
1 1 2 1 1 8.5 5 0
2 1 2 1 1 5 8.5 0
3 1 2 1 1 -5 8.5 0
4 1 2 1 1 -8.5 5 0
5 1 2 1 1 -8.5 -5 0
6 1 2 1 1 -5 -10 0
7 1 2 1 1 5 -10 0
8 1 2 1 1 10 -5 0
9 1 2 1 1 0 -6.95 0
Lines
1 7 0 10 10
2 10 10 0 7
3 0 7 -10 10
4 -10 10 -7 0
5 -7 0 -10 -10
6 -10 -10 0 -10
7 0 -10 10 -10
8 10 -10 10 0
9 0 -9.9 0 -4

View File

@ -0,0 +1,22 @@
LAMMPS data file for tri box
4 atoms
4 triangles
2 atom types
-7.0 7.0 xlo xhi
-7.0 7.0 ylo yhi
0.0 9.0 zlo zhi
Atoms
1 1 2 1 1 0 -4 0
2 1 2 1 1 4 0 0
3 1 2 1 1 0 4 0
4 1 2 1 1 -4 0 0
Triangles
1 -6 -6 0 6 -6 0 0 0 0
2 6 -6 0 6 6 0 0 0 0
3 6 6 0 -6 6 0 0 0 0
4 -6 -6 0 0 0 0 -6 6 0

View File

@ -0,0 +1,62 @@
LAMMPS data file generated from box24.stl
24 atoms
24 triangles
2 atom types
-9.0 9.0 xlo xhi
-9.0 9.0 ylo yhi
-9.0 9.0 zlo zhi
Atoms
1 1 2 1 1 4.0 0.0 -6.0
2 1 2 1 1 4.0 0.0 6.0
3 1 2 1 1 0.0 -4.0 6.0
4 1 2 1 1 -4.0 0.0 6.0
5 1 2 1 1 0.0 -4.0 -6.0
6 1 2 1 1 -4.0 0.0 -6.0
7 1 2 1 1 0.0 4.0 6.0
8 1 2 1 1 0.0 4.0 -6.0
9 1 2 1 1 4.0 6.0 0.0
10 1 2 1 1 0.0 6.0 4.0
11 1 2 1 1 4.0 -6.0 0.0
12 1 2 1 1 0.0 -6.0 4.0
13 1 2 1 1 0.0 6.0 -4.0
14 1 2 1 1 -4.0 6.0 0.0
15 1 2 1 1 0.0 -6.0 -4.0
16 1 2 1 1 -4.0 -6.0 0.0
17 1 2 1 1 6.0 4.0 0.0
18 1 2 1 1 6.0 0.0 -4.0
19 1 2 1 1 -6.0 4.0 0.0
20 1 2 1 1 -6.0 0.0 -4.0
21 1 2 1 1 6.0 0.0 4.0
22 1 2 1 1 6.0 -4.0 0.0
23 1 2 1 1 -6.0 0.0 4.0
24 1 2 1 1 -6.0 -4.0 0.0
Triangles
1 0.0 0.0 -6.0 6.0 6.0 -6.0 6.0 -6.0 -6.0
2 0.0 0.0 6.0 6.0 -6.0 6.0 6.0 6.0 6.0
3 0.0 0.0 6.0 -6.0 -6.0 6.0 6.0 -6.0 6.0
4 -6.0 6.0 6.0 -6.0 -6.0 6.0 0.0 0.0 6.0
5 -6.0 -6.0 -6.0 0.0 0.0 -6.0 6.0 -6.0 -6.0
6 0.0 0.0 -6.0 -6.0 -6.0 -6.0 -6.0 6.0 -6.0
7 0.0 0.0 6.0 6.0 6.0 6.0 -6.0 6.0 6.0
8 6.0 6.0 -6.0 0.0 0.0 -6.0 -6.0 6.0 -6.0
9 6.0 6.0 -6.0 0.0 6.0 0.0 6.0 6.0 6.0
10 0.0 6.0 0.0 -6.0 6.0 6.0 6.0 6.0 6.0
11 6.0 -6.0 6.0 0.0 -6.0 0.0 6.0 -6.0 -6.0
12 0.0 -6.0 0.0 6.0 -6.0 6.0 -6.0 -6.0 6.0
13 0.0 6.0 0.0 6.0 6.0 -6.0 -6.0 6.0 -6.0
14 -6.0 6.0 6.0 0.0 6.0 0.0 -6.0 6.0 -6.0
15 0.0 -6.0 0.0 -6.0 -6.0 -6.0 6.0 -6.0 -6.0
16 0.0 -6.0 0.0 -6.0 -6.0 6.0 -6.0 -6.0 -6.0
17 6.0 6.0 6.0 6.0 0.0 0.0 6.0 6.0 -6.0
18 6.0 0.0 0.0 6.0 -6.0 -6.0 6.0 6.0 -6.0
19 -6.0 6.0 -6.0 -6.0 0.0 0.0 -6.0 6.0 6.0
20 -6.0 0.0 0.0 -6.0 6.0 -6.0 -6.0 -6.0 -6.0
21 6.0 0.0 0.0 6.0 6.0 6.0 6.0 -6.0 6.0
22 6.0 -6.0 -6.0 6.0 0.0 0.0 6.0 -6.0 6.0
23 -6.0 0.0 0.0 -6.0 -6.0 6.0 -6.0 6.0 6.0
24 -6.0 0.0 0.0 -6.0 -6.0 -6.0 -6.0 -6.0 6.0

View File

@ -0,0 +1,59 @@
# pouring spheres into box made of line segments
units lj
atom_style line
atom_modify map array
boundary f f p
dimension 2
comm_modify vel yes
read_data data.line
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 &
line/gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 line/gran/hooke
pair_coeff 2 2 none
group sphere type 1
group line type 2
fix fsl all surface/local
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 90
# rotate the box
fix 1 line move rotate 0 0 0 0 0 1 25
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 -1 0
#fix 4 sphere viscous 0.2
region slab block -3 3 -2 2 -0.5 0.5 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 &
diam one 1.0 region slab
fix 10 all enforce2d
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type &
zoom 1.6 adiam 1.0 line type 0.5
dump_modify 2 pad 5
run 10000

View File

@ -0,0 +1,59 @@
# pouring spheres into box made of line segments
units lj
atom_style sphere
#atom_modify map array
boundary f f p
dimension 2
comm_modify vel yes
region box block -15 15 -15 15 -0.5 0.5 units box
create_box 2 box
pair_style gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 90
molecule lines surf.line
fix 20 all surface/global input mol lines &
model * * hooke 4000.0 NULL 100.0 NULL 0.5 1
#fix 20 all surface/global lines hooke/history &
# 4000.0 NULL 100.0 NULL 0.5 1
# rotate the box
fix_modify 20 move * rotate 0 0 0 0 0 1 25
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 -1 0
#fix 4 all viscous 0.2
region slab block -3 3 -2 2 -0.5 0.5 units box
#fix ins all pour 100 1 4767548 vol 0.4 10 &
# diam one 1.0 region slab
fix 10 all enforce2d
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type &
zoom 1.6 adiam 1.0 fix 20 type 0.5 0.0
dump_modify 2 pad 5
run 10000

View File

@ -0,0 +1,61 @@
# pouring spheres into box made of line segments
units lj
atom_style line
atom_modify map array
boundary f f p
dimension 2
comm_modify vel yes
region box block -15 15 -15 15 -0.5 0.5 units box
create_box 2 box
molecule lines surf.line
fix 20 all surface/local input mol lines
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 &
line/gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 line/gran/hooke
pair_coeff 2 2 none
group sphere type 1
group line type 2
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 90
# rotate the box
fix 1 line move rotate 0 0 0 0 0 1 25
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 -1 0
#fix 4 sphere viscous 0.2
region slab block -3 3 -2 2 -0.5 0.5 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 &
diam one 1.0 region slab
fix 10 all enforce2d
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type &
zoom 1.6 adiam 1.0 line type 0.5
dump_modify 2 pad 5
run 10000

View File

@ -0,0 +1,64 @@
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
read_data data.tri
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 &
tri/gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
group tri type 2
fix fsl all surface/local
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 7 9 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 &
diam one 1.0 region slab ignore
fix wall sphere wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 &
zcylinder 7.0
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type &
zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
unfix 1
set group tri angmom 0.0 0.0 0.0
velocity tri set 0.0 0.0 0.0
run 5000

View File

@ -0,0 +1,62 @@
# pouring spheres into box made of triangles
units lj
atom_style sphere
#atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -7 7 -7 7 0 9 units box
create_box 2 box # simply for dump_modify to color lines = green
pair_style gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
molecule tris surf.tri
fix 20 all surface/global input mol tris &
model * * hooke 4000.0 NULL 100.0 NULL 0.5 1
#fix 20 all surface/global tris hooke/history &
# 4000.0 NULL 100.0 NULL 0.5 1
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 0 -1
#fix 4 all viscous 0.2
region slab block -2 2 -2 2 7 9 units box
#fix ins all pour 100 1 4767548 vol 0.4 10 &
# diam one 1.0 region slab ignore
fix wall all wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 &
zcylinder 7.0
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type &
zoom 1.4 adiam 1.0 fix 20 type 2 0.5
dump_modify 2 pad 5
run 5000
fix_modify 20 move * rotate 0 0 0 0 0 1 25
run 5000
fix_modify 20 move * none
run 5000

View File

@ -0,0 +1,60 @@
# pouring spheres into box made of triangles
units lj
atom_style sphere
#atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -7 7 -7 7 0 9 units box
create_box 2 box # simply for dump_modify to color lines = green
pair_style gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 20 all surface/global input stl 2 surf.tri.stl &
model * * hooke 4000.0 NULL 100.0 NULL 0.5 1
#fix 20 all surface/global surf.tri.stl hooke/history &
# 4000.0 NULL 100.0 NULL 0.5 1
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 0 -1
#fix 4 all viscous 0.2
region slab block -2 2 -2 2 7 9 units box
#fix ins all pour 100 1 4767548 vol 0.4 10 &
# diam one 1.0 region slab ignore
fix wall all wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 &
zcylinder 7.0
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type &
zoom 1.4 adiam 1.0 fix 20 type 2 0.5
dump_modify 2 pad 5
run 5000
fix_modify 20 move * rotate 0 0 0 0 0 1 25
run 5000
fix_modify 20 move * none
run 5000

View File

@ -0,0 +1,66 @@
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -7 7 -7 7 0 9 units box
create_box 2 box
molecule tris surf.tri
fix 20 all surface/local input mol tris
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 &
tri/gran/hooke 4000.0 NULL 100.0 50.0 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
group tri type 2
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 7 9 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 &
diam one 1.0 region slab ignore
fix wall sphere wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 &
zcylinder 7.0
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type &
zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
unfix 1
set group tri angmom 0.0 0.0 0.0
velocity tri set 0.0 0.0 0.0
run 5000

View File

@ -0,0 +1,65 @@
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -7 7 -7 7 0 9 units box
create_box 2 box
fix 20 all surface/local input stl 2 surf.tri.stl
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 &
tri/gran/hooke 4000.0 NULL 100.0 50.0 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
group tri type 2
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 7 9 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 &
diam one 1.0 region slab ignore
fix wall sphere wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 &
zcylinder 7.0
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type &
zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
unfix 1
set group tri angmom 0.0 0.0 0.0
velocity tri set 0.0 0.0 0.0
run 5000

View File

@ -0,0 +1,70 @@
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
read_data data.tribox
pair_style hybrid gran/hooke 4000.0 NULL 100.0 NULL 0.5 1 &
tri/gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff 1 1 gran/hooke
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
group tri type 2
fix fsl all surface/local
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 &
diam one 1.0 region slab ignore
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type &
zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
unfix 1
set type 1 angmom 0.0 0.0 0.0
velocity tri set 0.0 0.0 0.0
run 5000
fix 1 tri move rotate 0 0 0 1 1 1 25
run 5000
unfix 1
set type 1 angmom 0.0 0.0 0.0
velocity tri set 0.0 0.0 0.0
run 5000

View File

@ -0,0 +1,65 @@
# pouring spheres into box made of triangles
units lj
atom_style sphere
#atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -10 10 -10 10 -10 10 units box
create_box 2 box # simply for dump_modify to color lines = green
pair_style gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
molecule tris surf.tribox
fix 20 all surface/global input mol tris &
model * * hooke 4000.0 NULL 100.0 NULL 0.5 1
#fix 20 all surface/global tris hooke/history &
# 4000.0 NULL 100.0 NULL 0.5 1
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 0 -1
#fix 4 all viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
#fix ins all pour 100 1 4767548 vol 0.4 10 &
# diam one 1.0 region slab ignore
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type &
zoom 1.4 adiam 1.0 fix 20 type 2 0.5
dump_modify 2 pad 5
run 5000
fix_modify 20 move * rotate 0 0 0 0 0 1 25
run 5000
fix_modify 20 move * none
run 5000
fix_modify 20 move * rotate 0 0 0 1 1 1 25
run 5000
fix_modify 20 move * none
run 5000

View File

@ -0,0 +1,63 @@
# pouring spheres into box made of triangles
units lj
atom_style sphere
#atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -10 10 -10 10 -10 10 units box
create_box 2 box # simply for dump_modify to color lines = green
pair_style gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 20 all surface/global input stl 2 surf.tri.stl &
model * * hooke 4000.0 NULL 100.0 NULL 0.5 1
#fix 20 all surface/global surf.tribox.stl hooke/history &
# 4000.0 NULL 100.0 NULL 0.5 1
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 0 -1
#fix 4 all viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
#fix ins all pour 100 1 4767548 vol 0.4 10 &
# diam one 1.0 region slab ignore
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type &
zoom 1.4 adiam 1.0 fix 20 type 2 0.5
dump_modify 2 pad 5
run 5000
fix_modify 20 move * rotate 0 0 0 0 0 1 25
run 5000
fix_modify 20 move * none
run 5000
fix_modify 20 move * rotate 0 0 0 1 1 1 25
run 5000
fix_modify 20 move * none
run 5000

View File

@ -0,0 +1,72 @@
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -10 10 -10 10 -10 10 units box
create_box 2 box
molecule tris surf.tribox
fix 20 all surface/local input mol tris
pair_style hybrid gran/hooke 4000.0 NULL 100.0 NULL 0.5 1 &
tri/gran/hooke 4000.0 NULL 100.0 50.0 0.5 1
pair_coeff 1 1 gran/hooke
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
group tri type 2
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 &
diam one 1.0 region slab ignore
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type &
zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
unfix 1
set group tri angmom 0.0 0.0 0.0
velocity tri set 0.0 0.0 0.0
run 5000
fix 1 tri move rotate 0 0 0 1 1 1 25
run 5000
unfix 1
set group tri angmom 0.0 0.0 0.0
velocity tri set 0.0 0.0 0.0
run 5000

View File

@ -0,0 +1,71 @@
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -10 10 -10 10 -10 10 units box
create_box 2 box
fix 20 all surface/local input stl 2 surf.tribox.stl
pair_style hybrid gran/hooke 4000.0 NULL 100.0 NULL 0.5 1 &
tri/gran/hooke 4000.0 NULL 100.0 50.0 0.5 1
pair_coeff 1 1 gran/hooke
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
group tri type 2
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 &
diam one 1.0 region slab ignore
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type &
zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
unfix 1
set group tri angmom 0.0 0.0 0.0
velocity tri set 0.0 0.0 0.0
run 5000
fix 1 tri move rotate 0 0 0 1 1 1 25
run 5000
unfix 1
set group tri angmom 0.0 0.0 0.0
velocity tri set 0.0 0.0 0.0
run 5000

View File

@ -0,0 +1,246 @@
LAMMPS (27 Jun 2024)
# pouring spheres into box made of line segments
units lj
atom_style line
atom_modify map array
boundary f f p
dimension 2
comm_modify vel yes
read_data data.line
Reading data file ...
orthogonal box = (-15 -15 -0.5) to (15 15 0.5)
1 by 1 by 1 MPI processor grid
reading atoms ...
9 atoms
9 lines
read_data CPU = 0.001 seconds
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 line/gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 line/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group line type 2
9 atoms in group line
fix fsl all surface/local NULL
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 90
# rotate the box
fix 1 line move rotate 0 0 0 0 0 1 25
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 -1 0
#fix 4 sphere viscous 0.2
region slab block -3 3 -2 2 -0.5 0.5 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab
Particle insertion: 12 every 566 steps, 100 by step 4529
fix 10 all enforce2d
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.6 adiam 1.0 line type 0.5
dump_modify 2 pad 5
run 10000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 1 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 = 6.0201533
ghost atom cutoff = 6.0201533
binsize = 3.0100766, bins = 10 10 1
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke/history, perpetual, skip trim from (3)
attributes: half, newton on, size, history, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair line/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size, history
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 12.08 | 12.08 | 12.08 Mbytes
Step Atoms Temp c_1 c_2 Press
0 9 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 16 19.603933 1.0483784 0.66213376 0.32673222
200 16 19.831299 1.6167923 1.0211319 0.33052165
300 16 20.119751 2.3379224 1.4765825 0.33532918
400 16 20.469289 3.2117688 2.0284855 0.34115482
500 16 20.879914 4.2383315 2.676841 0.34799857
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 27 12.449543 2.1129055 1.3869354 0.35243867
700 27 12.770891 2.6043792 1.7214254 0.38349742
800 27 12.943117 2.8677827 1.9147069 0.37516936
900 27 13.109917 3.1228891 2.1263001 0.38019376
1000 27 12.990208 2.9398046 2.0739419 0.42599315
1100 27 12.719767 2.5261889 1.8187978 0.45457071
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 35 9.8597994 1.8985781 1.2816098 0.38022839
1300 35 9.7545391 1.7554241 1.2048448 0.37276257
1400 35 9.7769878 1.7859543 1.2306073 0.37760148
1500 35 9.9443391 2.013552 1.3984072 0.38116488
1600 35 10.108938 2.2374064 1.548047 0.38622523
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1700 45 8.2127721 2.1026641 1.4164548 0.41493848
1800 45 8.3070246 2.221153 1.4818344 0.48996397
1900 45 8.3176349 2.2344917 1.4850053 0.47813979
2000 45 8.2600241 2.1620667 1.4483974 0.43264606
2100 45 8.1701045 2.0490249 1.3718091 0.42642557
2200 45 8.1506342 2.0245479 1.3453729 0.41836911
2300 57 6.4845955 1.6035877 1.0816884 0.47342846
2400 57 6.4586802 1.5727098 1.0558623 0.46664067
2500 57 6.4961252 1.6173252 1.0834364 0.44274885
2600 57 6.6039251 1.7457676 1.176221 0.41973624
2700 57 6.5554483 1.688008 1.1497303 0.44701076
2800 57 6.5567541 1.6895638 1.1752899 0.43024349
2900 69 5.8154825 1.8251539 1.249261 0.48033376
3000 69 6.0391782 2.0829727 1.4327472 0.47214476
3100 69 6.1705005 2.2343272 1.5419433 0.48474059
3200 69 6.132184 2.1901659 1.4819192 0.55938449
3300 69 5.8754263 1.8942417 1.2793954 0.49963347
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
3400 76 5.2906822 1.6520066 1.1205016 0.45528549
3500 76 5.3445576 1.7132287 1.1601016 0.47797559
3600 76 5.4367165 1.8179547 1.2411665 0.48683301
3700 76 5.4872464 1.875375 1.273533 0.498041
3800 76 5.4740601 1.8603906 1.266449 0.48678074
3900 76 5.1850894 1.5320148 1.0615263 0.54254269
4000 88 4.6518362 1.4992438 1.0244353 0.4970414
4100 88 4.7393433 1.596848 1.1075633 0.5183373
4200 88 4.5210383 1.3533539 0.95365012 0.45549812
4300 88 4.7560439 1.6154755 1.0954535 0.50256618
4400 88 4.9238859 1.8026839 1.219188 0.55797132
4500 88 4.9156862 1.7935381 1.225359 0.55455375
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
4600 96 4.553808 1.6842213 1.1456065 0.49939928
4700 96 4.6015699 1.7369816 1.1986257 0.4988626
4800 96 4.6404333 1.7799121 1.2251247 0.55167427
4900 96 4.7241213 1.872358 1.2735481 0.71833717
5000 96 4.7796445 1.9336918 1.3156784 0.66606358
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
5100 104 4.5227739 1.894436 1.2925792 0.68747814
5200 104 4.5828 1.9602093 1.3495676 0.72748168
5300 104 4.2544924 1.600468 1.1051773 0.60419007
5400 104 4.3514327 1.7066898 1.1556029 0.64443629
5500 104 4.3561805 1.7118922 1.1567283 0.64063026
5600 104 4.4135092 1.7747098 1.2134595 0.64422908
5700 109 4.1731736 1.6457981 1.1165517 0.62979315
5800 109 4.2360976 1.7144426 1.1586539 0.59262337
5900 109 4.3212416 1.8073269 1.2143855 0.63775197
6000 109 4.4240471 1.9194784 1.2958061 0.60804743
6100 109 4.5373715 2.043105 1.3752433 0.63992905
6200 109 4.4471074 1.9446351 1.3287311 0.69275635
6300 109 4.4126755 1.9070729 1.3022258 0.62040671
6400 109 4.5165479 2.0203883 1.3863072 0.63682236
6500 109 4.2755226 1.7574517 1.2024768 0.61086932
6600 109 4.1690976 1.6413517 1.1235094 0.5863121
6700 109 4.0973952 1.5631308 1.0585691 0.64655034
6800 109 4.106546 1.5731135 1.0593334 0.59742247
6900 109 4.09205 1.5572998 1.0468541 0.54449389
7000 109 4.1494965 1.6199687 1.0886876 0.58703636
7100 109 4.220005 1.696887 1.1346313 0.58309534
7200 109 4.2559993 1.7361535 1.1633567 0.59963725
7300 109 4.3570648 1.8464068 1.2394663 0.59299795
7400 109 4.5559427 2.0633645 1.3860772 0.5985101
7500 109 4.7538736 2.2792891 1.5322837 0.60614702
7600 109 4.9145244 2.4545446 1.6536668 0.63147745
7700 109 5.0299608 2.5804752 1.757645 0.69057802
7800 109 5.3520062 2.9317973 2.000564 0.66812054
7900 109 5.4070924 2.9918914 2.0567247 0.7668346
8000 109 4.9680652 2.5129527 1.7229154 0.65816251
8100 108 4.8654372 2.3758475 1.6345121 0.6217302
8200 108 4.9502871 2.4684897 1.6821321 0.67733955
8300 106 5.1164153 2.5984884 1.7604625 0.65703214
8400 104 5.1073874 2.5350232 1.7227477 0.61775984
8500 103 5.1173391 2.518278 1.7205254 0.63856204
8600 101 4.9892171 2.3203624 1.5725655 0.66092676
8700 101 4.9544942 2.2822054 1.5445523 0.63575204
8800 98 4.7811294 2.0000094 1.360531 0.59490375
8900 98 4.5866354 1.7856239 1.2179755 0.5479866
9000 97 4.5098376 1.668686 1.1480979 0.51766609
9100 96 4.4900228 1.6137609 1.1001152 0.58261959
9200 96 4.5323564 1.6605248 1.1250204 0.52446222
9300 96 4.6268095 1.7648625 1.1909651 0.51122536
9400 94 4.6951589 1.7723935 1.2009448 0.51084023
9500 94 4.7977809 1.8860106 1.2743862 0.55202711
9600 92 4.9195403 1.9501151 1.3186129 0.52289861
9700 92 5.0437791 2.0879899 1.4123366 0.69726187
9800 92 4.9557322 1.9902793 1.3693209 0.63183721
9900 92 5.0579303 2.1036943 1.4503547 0.5525547
10000 92 4.9127294 1.9425566 1.3361772 0.54682786
Loop time of 0.370625 on 1 procs for 10000 steps with 92 atoms
Performance: 11655971.193 tau/day, 26981.415 timesteps/s, 2.482 Matom-step/s
88.3% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.031333 | 0.031333 | 0.031333 | 0.0 | 8.45
Neigh | 0.02915 | 0.02915 | 0.02915 | 0.0 | 7.87
Comm | 0.0011333 | 0.0011333 | 0.0011333 | 0.0 | 0.31
Output | 0.29072 | 0.29072 | 0.29072 | 0.0 | 78.44
Modify | 0.015871 | 0.015871 | 0.015871 | 0.0 | 4.28
Other | | 0.002418 | | | 0.65
Nlocal: 92 ave 92 max 92 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 1464
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,248 @@
LAMMPS (27 Jun 2024)
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551)
# pouring spheres into box made of line segments
units lj
atom_style line
atom_modify map array
boundary f f p
dimension 2
comm_modify vel yes
read_data data.line
Reading data file ...
orthogonal box = (-15 -15 -0.5) to (15 15 0.5)
2 by 2 by 1 MPI processor grid
reading atoms ...
9 atoms
9 lines
read_data CPU = 0.001 seconds
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 line/gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 line/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group line type 2
9 atoms in group line
fix fsl all surface/local NULL
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 90
# rotate the box
fix 1 line move rotate 0 0 0 0 0 1 25
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 -1 0
#fix 4 sphere viscous 0.2
region slab block -3 3 -2 2 -0.5 0.5 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab
Particle insertion: 12 every 566 steps, 100 by step 4529
fix 10 all enforce2d
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.6 adiam 1.0 line type 0.5
dump_modify 2 pad 5
run 10000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 1 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 = 6.0201533
ghost atom cutoff = 6.0201533
binsize = 3.0100766, bins = 10 10 1
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke/history, perpetual, skip trim from (3)
attributes: half, newton on, size, history, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair line/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size, history
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 12.09 | 12.09 | 12.09 Mbytes
Step Atoms Temp c_1 c_2 Press
0 9 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 16 19.603933 1.0483784 0.66213376 0.32673222
200 16 19.831299 1.6167923 1.0211319 0.33052165
300 16 20.119751 2.3379224 1.4765825 0.33532918
400 16 20.469289 3.2117688 2.0284855 0.34115482
500 16 20.879914 4.2383315 2.676841 0.34799857
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 27 12.449543 2.1129055 1.3869354 0.35243867
700 27 12.770891 2.6043792 1.7214254 0.38349742
800 27 12.943117 2.8677827 1.9147069 0.37516936
900 27 13.108843 3.121247 2.1253115 0.38032946
1000 27 12.984928 2.9317288 2.0698845 0.41762763
1100 27 12.721952 2.5295302 1.8183899 0.45463442
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 35 9.8620936 1.9016982 1.2818983 0.38031565
1300 35 9.7562992 1.7578179 1.2054393 0.37155987
1400 35 9.7634141 1.7674941 1.2257167 0.40489503
1500 35 9.9265493 1.9893579 1.3730689 0.44243147
1600 35 10.124257 2.2582409 1.5638344 0.3881931
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1700 45 8.17872 2.0598558 1.4054749 0.40405845
1800 45 8.3495746 2.2746444 1.5611373 0.4161154
1900 45 8.3549118 2.281354 1.5264615 0.58558494
2000 45 8.466023 2.4210367 1.6128843 0.43527142
2100 45 8.3019659 2.2147934 1.4788849 0.40709585
2200 45 8.3935397 2.3299148 1.5526831 0.42713391
2300 57 6.6026997 1.7443076 1.1713462 0.44233027
2400 57 6.5994805 1.7404719 1.1751702 0.43246067
2500 57 6.5640783 1.6982905 1.1368997 0.46168872
2600 57 6.6039644 1.7458144 1.1747368 0.43261873
2700 57 6.4602492 1.5745793 1.0736669 0.44103997
2800 57 6.5736746 1.7097244 1.1669705 0.42453827
2900 69 5.8037651 1.8116491 1.2327379 0.45474569
3000 69 6.0851724 2.135983 1.4490384 0.4768338
3100 69 6.2646568 2.3428464 1.5760684 0.59595364
3200 69 6.1537104 2.2149759 1.4941616 0.5329903
3300 69 6.1499191 2.2106063 1.487616 0.49067642
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
3400 79 5.285068 1.8038634 1.2153135 0.54139582
3500 79 5.2666274 1.7830175 1.1995458 0.55459427
3600 79 5.3876859 1.9198663 1.293578 0.49850619
3700 79 5.1383103 1.6379635 1.1293018 0.47695008
3800 79 5.2440711 1.7575191 1.2055687 0.48710695
3900 79 5.2012402 1.7091016 1.1822768 0.47985425
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
4000 86 4.7629755 1.5405815 1.0729745 0.50168305
4100 86 4.8116324 1.5950004 1.1107717 0.483217
4200 86 4.698988 1.4690165 1.0162879 0.67403453
4300 86 4.8348111 1.6209239 1.105696 0.48548859
4400 86 4.9124435 1.7077496 1.1582583 0.51373609
4500 86 4.9206356 1.7169118 1.1667418 0.48432388
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
4600 92 4.831251 1.8521355 1.2581902 0.50814475
4700 92 4.9541337 1.9885054 1.3496439 0.5518164
4800 92 5.0387054 2.0823594 1.425245 0.56425459
4900 92 4.8856072 1.9124576 1.3459733 0.5410045
5000 92 4.8601367 1.8841916 1.3063393 0.57580057
5100 104 4.3795169 1.7374629 1.2066873 0.58493857
5200 104 4.380644 1.7386979 1.2509659 0.50835208
5300 104 4.4901754 1.8587164 1.3020409 0.55360586
5400 104 4.4454236 1.8096798 1.2487279 0.90957267
5500 104 4.3141875 1.6658786 1.138758 0.53403954
5600 104 4.2764169 1.6244916 1.1094266 0.65043467
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
5700 108 4.2683501 1.7239258 1.1727672 0.67160605
5800 108 4.4204385 1.8899816 1.2769697 0.67686418
5900 108 4.4764852 1.9511754 1.3107129 0.64264496
6000 108 4.5530001 2.0347172 1.3710873 0.87709467
6100 108 4.5436906 2.0245527 1.3721167 0.66133934
6200 108 4.4256297 1.8956495 1.28211 0.61859323
6300 109 4.4477168 1.9452998 1.3215253 0.65196709
6400 109 4.5512937 2.0582928 1.4082655 0.63769354
6500 109 4.1366008 1.6059006 1.0940711 0.73216085
6600 109 4.0674318 1.5304435 1.0397138 0.54093108
6700 109 4.1348468 1.6039871 1.0852573 0.56630918
6800 109 4.1430428 1.6129282 1.0943172 0.69178634
6900 109 4.0543146 1.5161338 1.0197644 0.63108285
7000 109 4.0838002 1.5482999 1.0407391 0.5748685
7100 109 4.1521096 1.6228193 1.0928425 0.56509731
7200 109 4.2124442 1.6886388 1.1348358 0.57024309
7300 109 4.3441285 1.8322944 1.2309535 0.55057491
7400 109 4.4552392 1.9535062 1.3185298 0.57664423
7500 109 4.6386117 2.1535488 1.4543864 0.59727363
7600 109 4.8049773 2.3350386 1.5852377 0.61684981
7700 109 5.0774428 2.6322737 1.7974351 0.6717935
7800 109 5.137687 2.6979946 1.8459588 0.71615719
7900 109 5.2761666 2.8490633 1.9573222 0.66913482
8000 108 5.2408428 2.7857291 1.9179915 0.70758627
8100 107 4.9219903 2.4119819 1.6414735 0.67384853
8200 105 4.88649 2.3202761 1.5738581 0.58235547
8300 105 5.1910655 2.6537061 1.7940904 0.64215432
8400 103 5.2358927 2.6483047 1.8075842 0.65624924
8500 101 5.1028866 2.445274 1.6730309 0.91849673
8600 100 4.8817968 2.1725461 1.4906124 0.59208611
8700 97 4.7804409 1.9672828 1.3520376 0.5666713
8800 97 4.6872197 1.8644179 1.2830232 0.62172034
8900 97 4.5268118 1.6874162 1.159267 0.55290924
9000 95 4.5196336 1.6126686 1.1077501 0.58828852
9100 95 4.4232371 1.5060654 1.0318533 0.49357574
9200 94 4.5096768 1.5670383 1.0651294 0.52806219
9300 94 4.5673055 1.6308414 1.1051788 0.60308191
9400 94 4.7375978 1.8193794 1.235354 0.52984284
9500 94 4.8870798 1.9848774 1.3398669 0.54526912
9600 94 5.1128471 2.2348339 1.504691 0.58238093
9700 94 5.0933367 2.2132331 1.499447 0.64046557
9800 94 4.9158399 2.0167189 1.377884 0.61716162
9900 93 4.905138 1.9699273 1.3392297 0.56563086
10000 93 4.7728825 1.8233309 1.2460043 0.62103726
Loop time of 0.670914 on 4 procs for 10000 steps with 93 atoms
Performance: 6438981.671 tau/day, 14905.050 timesteps/s, 1.386 Matom-step/s
92.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.0060352 | 0.012089 | 0.021126 | 5.2 | 1.80
Neigh | 0.0047076 | 0.0094254 | 0.015055 | 3.9 | 1.40
Comm | 0.063432 | 0.075753 | 0.083566 | 3.0 | 11.29
Output | 0.27651 | 0.39883 | 0.54452 | 16.3 | 59.45
Modify | 0.015515 | 0.016152 | 0.01725 | 0.5 | 2.41
Other | | 0.1587 | | | 23.65
Nlocal: 23.25 ave 49 max 7 min
Histogram: 1 0 1 1 0 0 0 0 0 1
Nghost: 23.25 ave 32 max 14 min
Histogram: 1 0 0 1 0 0 1 0 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 1467
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,219 @@
LAMMPS (27 Jun 2024)
# pouring spheres into box made of line segments
units lj
atom_style sphere
#atom_modify map array
boundary f f p
dimension 2
comm_modify vel yes
region box block -15 15 -15 15 -0.5 0.5 units box
create_box 2 box
Created orthogonal box = (-15 -15 -0.5) to (15 15 0.5)
1 by 1 by 1 MPI processor grid
pair_style gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 90
molecule lines surf.line
Read molecule template lines:
LAMMPS molecule file for line box
1 molecules
0 fragments
0 atoms with max type 0
0 bonds with max type 0
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
9 lines with 11 points
fix 20 all surface/global lines hooke 4000.0 NULL 100.0 NULL 0.5 1
#fix 20 all surface/global lines hooke/history # 4000.0 NULL 100.0 NULL 0.5 1
# rotate the box
fix_modify 20 move rotate 0 0 0 0 0 1 25
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 -1 0
#fix 4 all viscous 0.2
region slab block -3 3 -2 2 -0.5 0.5 units box
fix ins all pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab
Particle insertion: 12 every 566 steps, 100 by step 4529
fix 10 all enforce2d
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.6 adiam 1.0 fix 20 type 0.5 0.0
dump_modify 2 pad 5
run 10000
Generated 0 of 1 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 = 1.3
binsize = 0.65, bins = 47 47 2
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/atomonly/newton
stencil: half/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.757 | 5.757 | 5.757 Mbytes
Step Atoms Temp c_1 c_2 Press
0 0 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 7 1.0483784 1.0483784 0.66213376 0.0069891897
200 7 1.6167923 1.6167923 1.0211319 0.010778615
300 7 2.3379224 2.3379224 1.4765825 0.015586149
400 7 3.2117688 3.2117688 2.0284855 0.021411792
500 7 4.2383315 4.2383315 2.676841 0.028255543
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 18 2.1129055 2.1129055 1.3869354 0.039910437
700 18 2.6043792 2.6043792 1.7214254 0.063754392
800 18 2.8677827 2.8677827 1.9147069 0.054169228
900 18 3.1228891 3.1228891 2.1263001 0.059201028
1000 18 2.9398046 2.9398046 2.0739419 0.086537278
1100 18 2.5261889 2.5261889 1.8187978 0.12454808
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 26 1.8985781 1.8985781 1.2816098 0.058565477
1300 26 1.7554241 1.7554241 1.2048448 0.050988843
1400 26 1.7859543 1.7859543 1.2306073 0.054608317
1500 26 2.013552 2.013552 1.3984072 0.058664544
1600 26 2.2374064 2.2374064 1.548047 0.063825039
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1700 36 2.1026641 2.1026641 1.4164548 0.090879302
1800 36 2.221153 2.221153 1.4818344 0.14617071
1900 36 2.2344917 2.2344917 1.4850053 0.14491866
2000 36 2.162057 2.162057 1.4483877 0.10962255
2100 36 2.0490205 2.0490205 1.371803 0.10269632
2200 36 2.0245485 2.0245485 1.3453701 0.089476431
2300 48 1.6035919 1.6035919 1.0816887 0.1462717
2400 48 1.5727178 1.5727178 1.0558651 0.13036507
2500 48 1.6133884 1.6133884 1.0809644 0.11153652
2600 48 1.7297828 1.7297828 1.1672461 0.11279238
2700 48 1.6146016 1.6146016 1.1097429 0.11088332
2800 48 1.6951748 1.6951748 1.166744 0.096514604
2900 60 1.8416564 1.8416564 1.2540668 0.14915168
3000 60 2.1003861 2.1003861 1.4392908 0.14801032
3100 60 2.2828232 2.2828232 1.556736 0.15616608
3200 60 2.1222828 2.1222828 1.4349318 0.20907466
3300 60 1.9967087 1.9967087 1.3527156 0.33475251
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
3400 67 1.7019207 1.7019207 1.1573194 0.21087521
3500 67 1.7833499 1.7833499 1.2070513 0.1780625
3600 67 1.7577191 1.7577191 1.1996856 0.28041006
3700 67 1.7607556 1.7607556 1.2011069 0.15554549
3800 67 1.8033884 1.8033884 1.2321274 0.17400045
3900 67 1.6362949 1.6362949 1.1260761 0.17584879
4000 79 1.6044993 1.6044993 1.095751 0.15524341
4100 79 1.6440518 1.6440518 1.1367568 0.18985067
4200 79 1.4972418 1.4972418 1.0384732 0.18741202
4300 79 1.6170109 1.6170109 1.1016272 0.15651659
4400 79 1.8928159 1.8928159 1.2782002 0.18144602
4500 79 1.9936679 1.9936679 1.3475771 0.20164039
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
4600 90 1.8140729 1.8140729 1.24197 0.31384373
4700 90 2.0254763 2.0254763 1.384261 0.23627572
4800 90 1.9114718 1.9114718 1.2955738 0.24021925
4900 90 1.9776905 1.9776905 1.3575896 0.31285969
5000 90 1.970076 1.970076 1.3376466 0.25423539
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
5100 97 1.7820291 1.7820291 1.2227938 0.36718321
5200 97 1.7597485 1.7597485 1.2119527 0.27764658
5300 97 1.8501223 1.8501223 1.2722665 0.2360191
5400 97 1.6078405 1.6078405 1.0908201 0.32910986
5500 97 1.6928997 1.6928997 1.1522543 0.25113312
5600 97 1.7992766 1.7992766 1.2196839 0.34494996
5700 100 1.7649055 1.7649055 1.1911619 0.36582075
5800 100 1.9223565 1.9223565 1.2879921 0.28447504
5900 100 1.9444004 1.9444004 1.3064959 0.3754893
6000 100 1.9270809 1.9270809 1.3050329 0.37763816
6100 100 2.0085556 2.0085556 1.3508579 0.28069022
6200 100 1.8722285 1.8722285 1.270563 0.39005335
6300 100 1.8274778 1.8274778 1.2443066 0.28375094
6400 100 1.8520157 1.8520157 1.2633763 0.27216291
6500 100 1.787681 1.787681 1.2218869 0.25732165
6600 100 1.7226268 1.7226268 1.1638035 0.27501256
6700 100 1.5680255 1.5680255 1.0574623 0.20532645
6800 100 1.5457817 1.5457817 1.0457377 0.20982707
6900 100 1.5847886 1.5847886 1.0652338 0.26944126
7000 100 1.6088044 1.6088044 1.0792231 0.2316201
7100 100 1.7081624 1.7081624 1.1436866 0.33210417
7200 100 1.8245918 1.8245918 1.2219392 0.2337092
7300 100 1.9177685 1.9177685 1.2897955 0.30095141
7400 100 2.0540287 2.0540287 1.3801642 0.25456251
7500 100 2.2039085 2.2039085 1.4820949 0.28834324
7600 100 2.259514 2.259514 1.5282738 0.28491233
7700 100 2.5155549 2.5155549 1.7074936 0.3152297
7800 100 2.6870643 2.6870643 1.8312269 0.35440174
7900 100 2.4727714 2.4727714 1.703333 0.36829004
8000 100 2.6276081 2.6276081 1.7884458 0.32525675
8100 99 2.5924836 2.5924836 1.7709533 0.37086875
8200 99 2.7395551 2.7395551 1.8614194 0.38872251
8300 96 2.6217174 2.6217174 1.7750969 0.29386994
8400 94 2.3453973 2.3453973 1.5915715 0.25246126
8500 92 2.2746092 2.2746092 1.5522863 0.31979019
8600 91 2.0971668 2.0971668 1.4441167 0.23164239
8700 90 1.9520436 1.9520436 1.3407037 0.2267317
8800 88 1.6031029 1.6031029 1.1075422 0.22893706
8900 88 1.3714136 1.3714136 0.95329267 0.1449532
9000 88 1.3999833 1.3999833 0.96786566 0.17754279
9100 88 1.5308757 1.5308757 1.0447361 0.1886558
9200 88 1.5573847 1.5573847 1.0593305 0.16600982
9300 86 1.5666806 1.5666806 1.065567 0.18426275
9400 86 1.7748404 1.7748404 1.1960622 0.19566408
9500 86 1.8680619 1.8680619 1.2596475 0.2541481
9600 86 2.0507836 2.0507836 1.3819586 0.27903247
9700 86 2.1304474 2.1304474 1.4467793 0.36641932
9800 85 2.0665993 2.0665993 1.4185404 0.21957531
9900 85 2.2152558 2.2152558 1.5009933 0.2464896
10000 85 2.2236372 2.2236372 1.5032593 0.2873953
Loop time of 0.330199 on 1 procs for 10000 steps with 85 atoms
Performance: 13083014.205 tau/day, 30284.755 timesteps/s, 2.574 Matom-step/s
91.3% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.014535 | 0.014535 | 0.014535 | 0.0 | 4.40
Neigh | 0.0077843 | 0.0077843 | 0.0077843 | 0.0 | 2.36
Comm | 0.0007947 | 0.0007947 | 0.0007947 | 0.0 | 0.24
Output | 0.27492 | 0.27492 | 0.27492 | 0.0 | 83.26
Modify | 0.029972 | 0.029972 | 0.029972 | 0.0 | 9.08
Other | | 0.002194 | | | 0.66
Nlocal: 85 ave 85 max 85 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: 125 ave 125 max 125 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 125
Ave neighs/atom = 1.4705882
Neighbor list builds = 1465
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,220 @@
LAMMPS (27 Jun 2024)
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551)
# pouring spheres into box made of line segments
units lj
atom_style sphere
#atom_modify map array
boundary f f p
dimension 2
comm_modify vel yes
region box block -15 15 -15 15 -0.5 0.5 units box
create_box 2 box
Created orthogonal box = (-15 -15 -0.5) to (15 15 0.5)
2 by 2 by 1 MPI processor grid
pair_style gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 90
molecule lines surf.line
Read molecule template lines:
LAMMPS molecule file for line box
1 molecules
0 fragments
0 atoms with max type 0
0 bonds with max type 0
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
9 lines with 11 points
fix 20 all surface/global lines hooke 4000.0 NULL 100.0 NULL 0.5 1
#fix 20 all surface/global lines hooke/history # 4000.0 NULL 100.0 NULL 0.5 1
# rotate the box
fix_modify 20 move rotate 0 0 0 0 0 1 25
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 -1 0
#fix 4 all viscous 0.2
region slab block -3 3 -2 2 -0.5 0.5 units box
fix ins all pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab
Particle insertion: 12 every 566 steps, 100 by step 4529
fix 10 all enforce2d
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.6 adiam 1.0 fix 20 type 0.5 0.0
dump_modify 2 pad 5
run 10000
Generated 0 of 1 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 = 1.3
binsize = 0.65, bins = 47 47 2
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/atomonly/newton
stencil: half/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.765 | 5.765 | 5.765 Mbytes
Step Atoms Temp c_1 c_2 Press
0 0 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 7 1.0483784 1.0483784 0.66213376 0.0069891897
200 7 1.6167923 1.6167923 1.0211319 0.010778615
300 7 2.3379224 2.3379224 1.4765825 0.015586149
400 7 3.2117688 3.2117688 2.0284855 0.021411792
500 7 4.2383315 4.2383315 2.676841 0.028255543
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 18 2.1129055 2.1129055 1.3869354 0.039910437
700 18 2.6043792 2.6043792 1.7214254 0.063754392
800 18 2.8677827 2.8677827 1.9147069 0.054169228
900 18 3.1228891 3.1228891 2.1263001 0.059201028
1000 18 2.9398046 2.9398046 2.0739419 0.086537278
1100 18 2.5261889 2.5261889 1.8187978 0.12454808
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 26 1.8985781 1.8985781 1.2816098 0.058565477
1300 26 1.7554241 1.7554241 1.2048448 0.050988843
1400 26 1.7859543 1.7859543 1.2306073 0.054608317
1500 26 2.013552 2.013552 1.3984072 0.058664544
1600 26 2.2374064 2.2374064 1.548047 0.063825039
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1700 36 2.1026641 2.1026641 1.4164548 0.090879302
1800 36 2.221153 2.221153 1.4818344 0.14617071
1900 36 2.2344917 2.2344917 1.4850053 0.14491866
2000 36 2.162057 2.162057 1.4483877 0.10962255
2100 36 2.0490205 2.0490205 1.371803 0.10269632
2200 36 2.0245485 2.0245485 1.3453701 0.089476431
2300 48 1.6035919 1.6035919 1.0816887 0.1462717
2400 48 1.5727178 1.5727178 1.0558651 0.13036507
2500 48 1.6133884 1.6133884 1.0809644 0.11153652
2600 48 1.7297828 1.7297828 1.1672461 0.11279238
2700 48 1.6146016 1.6146016 1.1097429 0.11088332
2800 48 1.6951748 1.6951748 1.166744 0.096514605
2900 60 1.8416564 1.8416564 1.2540668 0.14915169
3000 60 2.100386 2.100386 1.4392907 0.1480102
3100 60 2.2828225 2.2828225 1.5567356 0.15616606
3200 60 2.1222644 2.1222644 1.4349199 0.20907562
3300 60 1.9966845 1.9966845 1.3527006 0.33472885
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
3400 67 1.7019235 1.7019235 1.1573204 0.2108847
3500 67 1.7833138 1.7833138 1.2070182 0.17801747
3600 67 1.7569994 1.7569994 1.1991783 0.28231225
3700 67 1.7571831 1.7571831 1.1993044 0.14987615
3800 67 1.8019878 1.8019878 1.2311475 0.16225609
3900 67 1.6358579 1.6358579 1.126536 0.17569967
4000 79 1.6034602 1.6034602 1.0941546 0.16756481
4100 79 1.6366467 1.6366467 1.1340817 0.16064361
4200 79 1.4730958 1.4730958 1.0141142 0.16287858
4300 79 1.5906033 1.5906033 1.0817142 0.1625915
4400 79 1.8936552 1.8936552 1.2861135 0.17579343
4500 79 2.0727626 2.0727626 1.402595 0.19190637
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
4600 90 1.8869572 1.8869572 1.2792715 0.34462947
4700 90 2.0639296 2.0639296 1.3938374 0.34201338
4800 90 1.9341543 1.9341543 1.3359686 0.21954974
4900 90 1.9328058 1.9328058 1.318194 0.22883244
5000 90 1.8713075 1.8713075 1.2779328 0.4301643
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
5100 97 1.8889201 1.8889201 1.2901598 0.4621263
5200 97 1.8182665 1.8182665 1.2499619 0.35152238
5300 97 1.8955183 1.8955183 1.3251783 0.26911868
5400 97 1.698589 1.698589 1.1591879 0.30370185
5500 97 1.7599832 1.7599832 1.1979596 0.32792377
5600 97 1.7770974 1.7770974 1.211641 0.31929074
5700 100 1.7803057 1.7803057 1.2040432 0.35291347
5800 100 1.926965 1.926965 1.3003468 0.27956044
5900 100 2.0526934 2.0526934 1.3834338 0.31887573
6000 100 2.1044137 2.1044137 1.4099441 0.29869407
6100 100 2.0230041 2.0230041 1.3669222 0.28123514
6200 100 2.0312769 2.0312769 1.3817115 0.30601616
6300 100 2.0551063 2.0551063 1.393468 0.29181867
6400 100 1.8164349 1.8164349 1.2965294 0.25696247
6500 100 1.6499854 1.6499854 1.1522945 0.26606593
6600 100 1.5859571 1.5859571 1.079181 0.23976532
6700 100 1.5818463 1.5818463 1.0729409 0.22487518
6800 100 1.5370121 1.5370121 1.037886 0.20497101
6900 100 1.5636721 1.5636721 1.0493528 0.24001323
7000 100 1.625322 1.625322 1.0927408 0.21871244
7100 100 1.6516426 1.6516426 1.1089036 0.24426204
7200 100 1.8158528 1.8158528 1.2225264 0.24120862
7300 100 2.0003553 2.0003553 1.3472959 0.2565553
7400 100 2.2073583 2.2073583 1.4799781 0.27501492
7500 100 2.4331081 2.4331081 1.6366984 0.2964906
7600 100 2.4714321 2.4714321 1.6795351 0.41204677
7700 100 2.722459 2.722459 1.859155 0.34849871
7800 100 2.971029 2.971029 2.0560731 0.3575871
7900 100 2.5988892 2.5988892 1.8002454 0.39841917
8000 100 2.7119251 2.7119251 1.8535416 0.3339011
8100 98 2.6035719 2.6035719 1.787137 0.30161331
8200 95 2.4913394 2.4913394 1.709658 0.29609108
8300 94 2.5446704 2.5446704 1.7329605 0.38074
8400 93 2.7108353 2.7108353 1.8449224 0.29338784
8500 89 2.4397796 2.4397796 1.66773 0.30167351
8600 89 2.3096796 2.3096796 1.5987688 0.34829767
8700 86 1.9343795 1.9343795 1.3483427 0.26186082
8800 85 1.7530569 1.7530569 1.2210598 0.20667183
8900 85 1.7846979 1.7846979 1.228582 0.2354851
9000 85 1.5864774 1.5864774 1.0853295 0.23148728
9100 83 1.4761406 1.4761406 1.0104611 0.14783417
9200 82 1.4764644 1.4764644 1.0104747 0.16107786
9300 82 1.5656948 1.5656948 1.0633005 0.25375701
9400 82 1.6651149 1.6651149 1.1242623 0.17702309
9500 82 1.8295914 1.8295914 1.2294728 0.20502222
9600 82 1.9868742 1.9868742 1.3460986 0.20899366
9700 81 1.9123665 1.9123665 1.2957378 0.18989899
9800 81 1.9032788 1.9032788 1.2877863 0.32372042
9900 81 1.9686313 1.9686313 1.3389864 0.24692959
10000 81 2.0160999 2.0160999 1.3612427 0.22858996
Loop time of 0.59471 on 4 procs for 10000 steps with 81 atoms
Performance: 7264049.619 tau/day, 16814.930 timesteps/s, 1.362 Matom-step/s
94.5% 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.00098431 | 0.0046234 | 0.0099857 | 5.0 | 0.78
Neigh | 0.0012879 | 0.0026652 | 0.0043266 | 2.2 | 0.45
Comm | 0.029312 | 0.033471 | 0.038201 | 1.8 | 5.63
Output | 0.31437 | 0.39643 | 0.52119 | 13.5 | 66.66
Modify | 0.012135 | 0.017152 | 0.023684 | 3.4 | 2.88
Other | | 0.1404 | | | 23.60
Nlocal: 20.25 ave 44 max 5 min
Histogram: 1 0 1 1 0 0 0 0 0 1
Nghost: 3.5 ave 7 max 0 min
Histogram: 1 1 0 0 0 0 0 0 1 1
Neighs: 26.75 ave 68 max 1 min
Histogram: 1 1 0 1 0 0 0 0 0 1
Total # of neighbors = 107
Ave neighs/atom = 1.3209877
Neighbor list builds = 1469
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,233 @@
LAMMPS (27 Jun 2024)
# pouring spheres into box made of line segments
units lj
atom_style line
atom_modify map array
boundary f f p
dimension 2
comm_modify vel yes
region box block -15 15 -15 15 -0.5 0.5 units box
create_box 2 box
Created orthogonal box = (-15 -15 -0.5) to (15 15 0.5)
1 by 1 by 1 MPI processor grid
molecule lines surf.line
Read molecule template lines:
LAMMPS molecule file for line box
1 molecules
0 fragments
0 atoms with max type 0
0 bonds with max type 0
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
9 lines
fix 20 all surface/local lines
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 line/gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 line/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group line type 2
9 atoms in group line
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 90
# rotate the box
fix 1 line move rotate 0 0 0 0 0 1 25
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 -1 0
#fix 4 sphere viscous 0.2
region slab block -3 3 -2 2 -0.5 0.5 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab
Particle insertion: 12 every 566 steps, 100 by step 4529
fix 10 all enforce2d
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.6 adiam 1.0 line type 0.5
dump_modify 2 pad 5
run 10000
Generated 0 of 1 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 = 6.0201533
ghost atom cutoff = 6.0201533
binsize = 3.0100766, bins = 10 10 1
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke/history, perpetual, skip trim from (3)
attributes: half, newton on, size, history, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair line/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size, history
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 12.08 | 12.08 | 12.08 Mbytes
Step Atoms Temp c_1 c_2 Press
0 9 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 16 19.603933 1.0483784 0.66213376 0.32673222
200 16 19.831299 1.6167923 1.0211319 0.33052165
300 16 20.119751 2.3379224 1.4765825 0.33532918
400 16 20.469289 3.2117688 2.0284855 0.34115482
500 16 20.879914 4.2383315 2.676841 0.34799857
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 27 12.449543 2.1129055 1.3869354 0.35243867
700 27 12.770891 2.6043792 1.7214254 0.38349742
800 27 12.943117 2.8677827 1.9147069 0.37516936
900 27 13.109917 3.1228891 2.1263001 0.38019376
1000 27 12.990208 2.9398046 2.0739419 0.42599315
1100 27 12.719767 2.5261889 1.8187978 0.45457071
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 35 9.8597994 1.8985781 1.2816098 0.38022839
1300 35 9.7545391 1.7554241 1.2048448 0.37276257
1400 35 9.7769878 1.7859543 1.2306073 0.37760148
1500 35 9.9443391 2.013552 1.3984072 0.38116488
1600 35 10.108938 2.2374064 1.548047 0.38622523
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1700 45 8.2127721 2.1026641 1.4164548 0.41493848
1800 45 8.3070246 2.221153 1.4818344 0.48996397
1900 45 8.3176349 2.2344917 1.4850053 0.47813979
2000 45 8.2600165 2.162057 1.4483877 0.43264535
2100 45 8.170101 2.0490205 1.371803 0.4264254
2200 45 8.1506346 2.0245485 1.3453701 0.41836913
2300 57 6.484599 1.6035919 1.0816888 0.47342867
2400 57 6.4586868 1.5727177 1.0558651 0.46664108
2500 57 6.4928211 1.6133884 1.0809644 0.44246689
2600 57 6.5905095 1.7297831 1.1672463 0.44469826
2700 57 6.4938379 1.6145999 1.1097418 0.44349717
2800 57 6.561462 1.6951733 1.1667434 0.42184931
2900 69 5.8294334 1.8412329 1.2537935 0.47920761
3000 69 6.0530502 2.0989608 1.4383292 0.47115384
3100 69 6.2128755 2.2831662 1.5569471 0.48035619
3200 69 6.0796177 2.1295809 1.4395228 0.59719942
3300 69 5.9598587 1.9915536 1.3476382 0.70904872
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
3400 76 5.3278321 1.6942225 1.1512533 0.55750722
3500 76 5.3580089 1.7285142 1.1733033 0.48015375
3600 76 5.3912511 1.7662894 1.2244098 0.53667674
3700 76 5.3915755 1.7666581 1.2023862 0.50933582
3800 76 5.5024499 1.8926518 1.2816818 0.49183973
3900 76 5.2931801 1.6548451 1.1449579 0.54259885
4000 88 4.7587858 1.6185338 1.1148203 0.50111437
4100 88 4.6686812 1.5180325 1.0739014 0.53207092
4200 88 4.704383 1.5578537 1.0828675 0.48968011
4300 88 4.8151499 1.6814015 1.1458567 0.54476462
4400 88 4.9536407 1.835872 1.2370382 0.50443506
4500 88 5.1049527 2.004643 1.3561346 0.63246898
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
4600 97 4.6429295 1.815546 1.2258897 0.76318653
4700 97 4.7557974 1.94009 1.3308417 0.58800825
4800 97 4.7588482 1.9434563 1.3238059 0.54808039
4900 97 4.7816962 1.9686679 1.3555958 0.57086836
5000 97 4.7081833 1.8875502 1.2938704 0.53341015
5100 109 4.2946936 1.7783655 1.2235441 0.74414659
5200 109 4.4514423 1.9493641 1.3382034 0.5816121
5300 109 4.3031748 1.7876177 1.2509563 0.64288295
5400 109 4.1392053 1.6087418 1.1007772 0.56520057
5500 109 4.1921177 1.6664644 1.1482381 0.64655034
5600 109 4.1978214 1.6726867 1.1442267 0.62708256
5700 109 4.2167733 1.6933615 1.149386 0.58370357
5800 109 4.4043993 1.8980444 1.2841934 0.59795187
5900 109 4.4714853 1.9712292 1.3223473 0.70540432
6000 109 4.4233763 1.9187466 1.2856953 0.74824095
6100 109 4.5032352 2.0058654 1.3516717 0.69570797
6200 109 4.4767193 1.9769389 1.3333093 0.68696926
6300 109 4.3959917 1.8888725 1.2907122 0.63303162
6400 109 4.3835668 1.875318 1.3074197 0.63844057
6500 109 4.2555571 1.7356711 1.2015655 0.66131926
6600 109 4.0671476 1.5301335 1.038876 0.583031
6700 109 4.0619437 1.5244565 1.0254465 0.57917715
6800 109 4.0744984 1.5381525 1.0362496 0.57031315
6900 109 4.0970582 1.5627632 1.0516772 0.56180234
7000 109 4.1712104 1.6436565 1.104496 0.57061264
7100 109 4.2194438 1.6962748 1.1401819 0.55033817
7200 109 4.2854688 1.7683021 1.1878994 0.64255961
7300 109 4.4439681 1.9412104 1.3032284 0.57856127
7400 109 4.6570939 2.1737112 1.4593098 0.62381538
7500 109 4.8364799 2.369405 1.5988389 0.63335535
7600 109 4.9865193 2.5330844 1.7216312 0.63560865
7700 109 5.0603314 2.6136067 1.7991217 0.67457582
7800 109 5.2825153 2.8559892 1.9752674 0.69847738
7900 109 4.9404332 2.4828087 1.6955058 0.86486934
8000 109 4.9666953 2.5114582 1.7172461 0.68914422
8100 108 4.9305596 2.4469505 1.6692969 0.65720524
8200 107 5.0171731 2.5159961 1.7141712 0.64962298
8300 106 5.1706019 2.6577549 1.7991671 0.6533149
8400 104 5.1183939 2.5470834 1.7426175 0.71014805
8500 104 5.0286833 2.4487835 1.6635557 0.70734083
8600 102 4.8364284 2.1816363 1.4906665 0.72649249
8700 101 4.7693385 2.0787376 1.419965 0.73442515
8800 101 4.6195384 1.9141221 1.3207731 0.63177233
8900 99 4.4786741 1.6982172 1.1718512 0.50697976
9000 98 4.4490307 1.633946 1.1374461 0.57834948
9100 98 4.3269215 1.4993484 1.0212072 0.61915381
9200 98 4.4129354 1.5941592 1.0769509 0.51649969
9300 97 4.3960432 1.5431198 1.0434136 0.51272277
9400 96 4.47939 1.6020154 1.077862 0.53500446
9500 96 4.6658982 1.8080419 1.2161966 0.5668484
9600 96 4.7814753 1.9357142 1.3019606 0.56842177
9700 96 4.8817258 2.0464561 1.3793406 0.5434597
9800 96 4.8897807 2.055354 1.4031051 0.57800149
9900 96 4.7789147 1.9328857 1.3227732 0.64989251
10000 96 4.8776914 2.0419995 1.3827425 0.61157291
Loop time of 0.360523 on 1 procs for 10000 steps with 96 atoms
Performance: 11982585.509 tau/day, 27737.466 timesteps/s, 2.663 Matom-step/s
94.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 | 0.030975 | 0.030975 | 0.030975 | 0.0 | 8.59
Neigh | 0.028971 | 0.028971 | 0.028971 | 0.0 | 8.04
Comm | 0.0010264 | 0.0010264 | 0.0010264 | 0.0 | 0.28
Output | 0.28234 | 0.28234 | 0.28234 | 0.0 | 78.31
Modify | 0.014786 | 0.014786 | 0.014786 | 0.0 | 4.10
Other | | 0.002423 | | | 0.67
Nlocal: 96 ave 96 max 96 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 1470
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,234 @@
LAMMPS (27 Jun 2024)
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551)
# pouring spheres into box made of line segments
units lj
atom_style line
atom_modify map array
boundary f f p
dimension 2
comm_modify vel yes
region box block -15 15 -15 15 -0.5 0.5 units box
create_box 2 box
Created orthogonal box = (-15 -15 -0.5) to (15 15 0.5)
2 by 2 by 1 MPI processor grid
molecule lines surf.line
Read molecule template lines:
LAMMPS molecule file for line box
1 molecules
0 fragments
0 atoms with max type 0
0 bonds with max type 0
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
9 lines
fix 20 all surface/local lines
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 line/gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 line/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group line type 2
9 atoms in group line
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 90
# rotate the box
fix 1 line move rotate 0 0 0 0 0 1 25
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 -1 0
#fix 4 sphere viscous 0.2
region slab block -3 3 -2 2 -0.5 0.5 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab
Particle insertion: 12 every 566 steps, 100 by step 4529
fix 10 all enforce2d
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.6 adiam 1.0 line type 0.5
dump_modify 2 pad 5
run 10000
Generated 0 of 1 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 = 6.0201533
ghost atom cutoff = 6.0201533
binsize = 3.0100766, bins = 10 10 1
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke/history, perpetual, skip trim from (3)
attributes: half, newton on, size, history, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair line/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size, history
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 12.09 | 12.09 | 12.09 Mbytes
Step Atoms Temp c_1 c_2 Press
0 9 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 16 19.603933 1.0483784 0.66213376 0.32673222
200 16 19.831299 1.6167923 1.0211319 0.33052165
300 16 20.119751 2.3379224 1.4765825 0.33532918
400 16 20.469289 3.2117688 2.0284855 0.34115482
500 16 20.879914 4.2383315 2.676841 0.34799857
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 27 12.449543 2.1129055 1.3869354 0.35243867
700 27 12.770891 2.6043792 1.7214254 0.38349742
800 27 12.943117 2.8677827 1.9147069 0.37516936
900 27 13.109917 3.1228891 2.1263001 0.38019376
1000 27 12.990208 2.9398046 2.0739419 0.42599315
1100 27 12.719767 2.5261889 1.8187978 0.45457071
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 35 9.8597994 1.8985781 1.2816098 0.38022839
1300 35 9.7545391 1.7554241 1.2048448 0.37276257
1400 35 9.7769878 1.7859543 1.2306073 0.37760148
1500 35 9.9443391 2.013552 1.3984072 0.38116488
1600 35 10.108938 2.2374064 1.548047 0.38622523
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1700 45 8.2127721 2.1026641 1.4164548 0.41493848
1800 45 8.3070246 2.221153 1.4818344 0.48996397
1900 45 8.3176349 2.2344917 1.4850053 0.47813979
2000 45 8.2600165 2.162057 1.4483877 0.43264535
2100 45 8.170101 2.0490205 1.371803 0.4264254
2200 45 8.1506346 2.0245485 1.3453701 0.41836913
2300 57 6.484599 1.6035919 1.0816888 0.47342867
2400 57 6.4586868 1.5727177 1.0558651 0.46664108
2500 57 6.4928211 1.6133884 1.0809644 0.44246689
2600 57 6.5905095 1.7297831 1.1672463 0.44469826
2700 57 6.4938379 1.6145999 1.1097418 0.44349717
2800 57 6.561462 1.6951733 1.1667434 0.42184931
2900 69 5.8294333 1.8412328 1.2537935 0.47920762
3000 69 6.0530502 2.0989608 1.4383292 0.4711539
3100 69 6.2128757 2.2831664 1.5569472 0.48035613
3200 69 6.0796163 2.1295793 1.4395217 0.59719777
3300 69 5.9598651 1.991561 1.3476432 0.70904083
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
3400 76 5.3280254 1.6944421 1.1509347 0.55607697
3500 76 5.3586022 1.7291884 1.1738073 0.48154419
3600 76 5.3960594 1.7717535 1.2255034 0.50328012
3700 76 5.392702 1.7679382 1.2006691 0.55300787
3800 76 5.487271 1.875403 1.2701996 0.49070261
3900 76 5.2631187 1.6206845 1.124056 0.53950667
4000 88 4.7552309 1.6145687 1.1102653 0.50396334
4100 88 4.7298672 1.5862785 1.1187972 0.48548654
4200 88 4.7568479 1.6163722 1.1239114 0.49520917
4300 88 4.899206 1.7751563 1.1996402 0.50485077
4400 88 5.0855627 1.9830157 1.3306174 0.50684884
4500 88 5.0860568 1.9835668 1.340137 0.51799838
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
4600 97 4.7446937 1.9278375 1.3060898 0.55304468
4700 97 4.8400782 2.0330894 1.3706834 0.59426453
4800 97 4.6948697 1.8728594 1.2880301 0.65277707
4900 97 4.6757748 1.8517891 1.2744619 0.55960057
5000 97 4.6818196 1.8584593 1.2833187 0.56672558
5100 109 4.2656545 1.7466864 1.2022774 0.72060325
5200 109 4.4089285 1.9029854 1.303466 0.57487441
5300 109 4.266038 1.7471048 1.2161309 0.76509931
5400 109 4.0820492 1.5463898 1.0585873 0.59400707
5500 109 4.2225625 1.699677 1.1633136 0.564166
5600 109 4.2048922 1.6804004 1.1606267 0.55761391
5700 109 4.25302 1.7329034 1.1803705 0.75579106
5800 109 4.4166147 1.9113703 1.2934093 0.57750174
5900 109 4.4963066 1.9983069 1.3522373 0.67654161
6000 109 4.4487785 1.946458 1.3129991 0.65356753
6100 109 4.3667261 1.8569464 1.2612208 0.63848496
6200 109 4.4547267 1.9529471 1.3265293 0.63719023
6300 109 4.3364884 1.8239598 1.2342374 0.65725781
6400 109 4.3720247 1.8627267 1.2799281 0.59527799
6500 109 4.2700467 1.7514779 1.2071184 0.79488752
6600 109 4.1796078 1.6528174 1.1268666 0.54811483
6700 109 4.1026903 1.5689073 1.0529781 0.55134253
6800 109 4.0874552 1.5522872 1.0382647 0.55769258
6900 109 4.0479731 1.5092158 1.0099323 0.53959573
7000 109 4.0787277 1.5427663 1.0326475 0.55627473
7100 109 4.1441 1.6140816 1.0811479 0.54441352
7200 109 4.2104421 1.6864547 1.1296727 0.54213924
7300 109 4.3919246 1.8844357 1.2652852 0.56502223
7400 109 4.6135985 2.1262617 1.4292047 0.58413382
7500 109 4.7432973 2.2677513 1.5329818 0.60724149
7600 109 4.9384456 2.4806404 1.6880915 0.62523312
7700 109 5.090558 2.6465812 1.8111403 0.6585716
7800 109 5.3259416 2.9033632 2.0035146 0.6785935
7900 109 5.2072113 2.7738393 1.895143 0.76755979
8000 109 5.083771 2.6391772 1.8002856 0.66934075
8100 108 4.937056 2.4540435 1.6848433 0.68706675
8200 107 5.080298 2.584978 1.7670522 0.65360458
8300 104 5.043418 2.464929 1.6753853 0.65112973
8400 104 4.9112894 2.3201497 1.6035174 0.63202536
8500 103 4.9725325 2.3594579 1.6178748 0.65226513
8600 102 4.9240568 2.2778371 1.5557893 0.64939044
8700 101 4.9182616 2.2423894 1.5252109 0.59242907
8800 98 4.7809771 1.9998415 1.3609365 0.62824865
8900 97 4.6171003 1.7870448 1.2279757 0.59541262
9000 97 4.578037 1.7439405 1.2014952 0.53042665
9100 96 4.3863917 1.4992847 1.0287029 0.53128022
9200 95 4.4878465 1.5775158 1.0718141 0.50926528
9300 95 4.4698544 1.5576187 1.0520012 0.55570417
9400 94 4.5745795 1.6388948 1.1062354 0.52958404
9500 94 4.682009 1.7578347 1.1869533 0.58337186
9600 94 4.8288332 1.92039 1.2962606 0.54697385
9700 94 4.9380546 2.0413137 1.3804181 0.56679619
9800 94 4.9163917 2.0173297 1.3698459 0.58780334
9900 94 4.9246764 2.0265021 1.3927278 0.65819328
10000 94 4.7358922 1.817491 1.2533343 0.65922393
Loop time of 0.626598 on 4 procs for 10000 steps with 94 atoms
Performance: 6894371.511 tau/day, 15959.193 timesteps/s, 1.500 Matom-step/s
92.6% 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.0041891 | 0.011756 | 0.021395 | 6.0 | 1.88
Neigh | 0.0039448 | 0.0094415 | 0.015903 | 4.5 | 1.51
Comm | 0.063898 | 0.077286 | 0.086409 | 3.3 | 12.33
Output | 0.27418 | 0.36951 | 0.498 | 14.4 | 58.97
Modify | 0.015224 | 0.016492 | 0.018408 | 0.9 | 2.63
Other | | 0.1421 | | | 22.68
Nlocal: 23.5 ave 45 max 5 min
Histogram: 1 0 0 1 0 1 0 0 0 1
Nghost: 24.75 ave 32 max 18 min
Histogram: 1 0 1 0 0 0 0 1 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 1474
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,357 @@
LAMMPS (27 Jun 2024)
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
read_data data.tri
Reading data file ...
orthogonal box = (-7 -7 0) to (7 7 9)
1 by 1 by 1 MPI processor grid
reading atoms ...
4 atoms
4 triangles
read_data CPU = 0.001 seconds
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 tri/gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group tri type 2
4 atoms in group tri
fix fsl all surface/local NULL
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 7 9 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 24 every 400 steps, 100 by step 1601
fix wall sphere wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 zcylinder 7.0
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 1 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 = 7.1245553
ghost atom cutoff = 7.1245553
binsize = 3.5622777, bins = 4 4 3
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke/history, perpetual, skip trim from (3)
attributes: half, newton on, size, history, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair tri/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size, history
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 13.33 | 13.33 | 13.33 Mbytes
Step Atoms Temp c_1 c_2 Press
0 4 0 0 0 0
100 28 0.36763289 0.43156905 0.21119336 0.005627034
200 28 0.62433559 0.73291569 0.35866087 0.009556157
300 28 0.95860848 1.125323 0.55068998 0.014672579
400 28 1.3704516 1.608791 0.78728068 0.020976299
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
500 48 0.95075919 1.0392019 0.51601709 0.025332019
600 48 0.84031896 0.91848817 0.4623667 0.022636752
700 48 0.85874279 0.93862584 0.4826348 0.046371063
800 48 0.73132774 0.79935822 0.43136382 0.022138279
900 72 0.65995369 0.69935391 0.36547311 0.050914097
1000 72 0.62313984 0.66034222 0.35115498 0.033703652
1100 72 0.61206069 0.64860162 0.3482546 0.026726748
1200 72 0.55722289 0.59048993 0.31886384 0.043718461
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1300 92 0.46095761 0.48215107 0.26148102 0.03655992
1400 92 0.47463128 0.49645341 0.26932173 0.026649699
1500 92 0.43876093 0.45893385 0.25112926 0.039053185
1600 92 0.39781564 0.41610602 0.2336458 0.038915755
1700 104 0.3314644 0.3448569 0.19379636 0.056687783
1800 104 0.28818581 0.29982968 0.17211551 0.024813484
1900 104 0.25183364 0.26200874 0.15328845 0.02192128
2000 104 0.23713983 0.24672124 0.14327078 0.042148673
2100 104 0.23506188 0.24455933 0.14029326 0.017721951
2200 104 0.15864009 0.16504979 0.10412746 0.029964397
2300 104 0.10670987 0.11102138 0.07871108 0.0071805097
2400 104 0.076639282 0.079735819 0.060947043 0.015389321
2500 103 0.055400086 0.057661314 0.044473443 0.015445498
2600 103 0.035893374 0.03735841 0.028760404 0.01067378
2700 102 0.03158966 0.032892327 0.023822829 0.0082275369
2800 102 0.024365874 0.025370652 0.019216631 0.011973307
2900 101 0.014440858 0.01504256 0.012197533 0.0072741624
3000 101 0.013021269 0.013563822 0.011242148 0.010498718
3100 101 0.010273872 0.010701951 0.0091143287 0.0072871705
3200 101 0.0070740359 0.0073687874 0.0067970148 0.0064989269
3300 101 0.0073212732 0.0076263262 0.0065171125 0.0098946739
3400 101 0.0047267512 0.0049236991 0.0044264772 0.007575603
3500 101 0.003264981 0.0034010219 0.0032263675 0.0064756429
3600 101 0.0019366725 0.0020173672 0.0020455688 0.0067365178
3700 101 0.0018126432 0.00188817 0.0019196352 0.0063300027
3800 101 0.0019330301 0.002013573 0.0019421727 0.0066930211
3900 101 0.0017022743 0.0017732024 0.0017692091 0.0063161884
4000 101 0.0011235173 0.0011703305 0.0011857636 0.0062516843
4100 101 0.0010738339 0.0011185769 0.0011489616 0.0061908407
4200 101 0.0010663665 0.0011107985 0.0011562642 0.0061205723
4300 101 0.0010325958 0.0010756206 0.001137752 0.0063715073
4400 101 0.00088714248 0.00092410675 0.0010581337 0.0071315304
4500 101 0.00072957163 0.00075997045 0.00089148584 0.0061822402
4600 101 0.00072916208 0.00075954383 0.00093229962 0.0073336189
4700 101 0.00049478944 0.00051540567 0.00062291356 0.0066293137
4800 101 0.00049162494 0.00051210931 0.00063696192 0.0062116978
4900 101 0.00041908773 0.00043654972 0.00059061447 0.0064909785
5000 101 0.00040336839 0.0004201754 0.00059603372 0.0062594394
Loop time of 0.331047 on 1 procs for 5000 steps with 101 atoms
Performance: 6524755.135 tau/day, 15103.600 timesteps/s, 1.525 Matom-step/s
68.0% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.02908 | 0.02908 | 0.02908 | 0.0 | 8.78
Neigh | 0.0094722 | 0.0094722 | 0.0094722 | 0.0 | 2.86
Comm | 0.00045139 | 0.00045139 | 0.00045139 | 0.0 | 0.14
Output | 0.27825 | 0.27825 | 0.27825 | 0.0 | 84.05
Modify | 0.012533 | 0.012533 | 0.012533 | 0.0 | 3.79
Other | | 0.001257 | | | 0.38
Nlocal: 101 ave 101 max 101 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 316
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 14.46 | 14.46 | 14.46 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 101 0.00040336839 0.0004201754 0.00059603372 0.0062799915
5100 101 0.50875292 0.024627213 0.027979777 0.043304086
5200 100 0.53008058 0.041756815 0.048966009 0.047686735
5300 98 0.54573932 0.047587469 0.050589616 0.054698345
5400 96 0.56298631 0.054644174 0.054027217 0.045493245
5500 95 0.57287609 0.059325259 0.055248236 0.043563479
5600 93 0.58423645 0.059530387 0.056366577 0.040145791
5700 91 0.59865852 0.062420779 0.056809158 0.037116377
5800 89 0.61220228 0.063841923 0.057610838 0.035162186
5900 87 0.62685381 0.06583351 0.056892184 0.034659058
6000 86 0.6383021 0.070920972 0.058088505 0.03486336
6100 84 0.65594494 0.075093047 0.058543375 0.034741127
6200 84 0.65759722 0.076828979 0.05964225 0.036265031
6300 83 0.66157421 0.073564176 0.055874563 0.040959156
6400 82 0.67106739 0.075914013 0.057132328 0.038400386
6500 81 0.68057943 0.07809572 0.058494303 0.034600654
6600 79 0.69621408 0.07829214 0.057976675 0.035058869
6700 78 0.70377647 0.077804224 0.058088397 0.038570546
6800 77 0.71354031 0.07941644 0.058766697 0.034276567
6900 76 0.72197425 0.079394214 0.058784258 0.034803257
7000 75 0.73118782 0.079954558 0.059615263 0.034182143
7100 75 0.72981832 0.078506803 0.05933558 0.034746017
7200 72 0.75541855 0.076472198 0.058788685 0.033595767
7300 72 0.75545654 0.076512465 0.060371489 0.033716345
7400 69 0.78563876 0.076755562 0.059327807 0.033982311
7500 68 0.79478883 0.075234477 0.059390055 0.033278783
7600 67 0.80394304 0.07337357 0.059151161 0.033764065
7700 67 0.80590143 0.075458302 0.061414582 0.033219177
7800 65 0.82842488 0.075135213 0.059275109 0.03345934
7900 65 0.82992882 0.076739415 0.061358441 0.033045562
8000 62 0.86439786 0.073985787 0.059248708 0.033855494
8100 62 0.86231796 0.071759931 0.059259629 0.032472112
8200 61 0.8768865 0.073251975 0.060469603 0.032336147
8300 59 0.90112575 0.069522479 0.057069294 0.032903788
8400 59 0.90437569 0.073013162 0.060177807 0.032348013
8500 57 0.93513558 0.074163712 0.059868166 0.032129973
8600 56 0.94945182 0.072720987 0.058615804 0.032069723
8700 56 0.94894667 0.07217622 0.0599554 0.031951699
8800 54 0.97951321 0.069451442 0.057486662 0.031861026
8900 53 0.99694312 0.06937422 0.058169881 0.031923553
9000 53 0.9968891 0.069315702 0.057560401 0.031752405
9100 52 1.0151319 0.069375485 0.058181024 0.031774505
9200 52 1.0168478 0.07123737 0.060030802 0.031503493
9300 49 1.0746945 0.069869448 0.058516763 0.031349844
9400 49 1.075198 0.070418696 0.060725237 0.031449699
9500 47 1.1172104 0.068585698 0.059246205 0.031836843
9600 46 1.1392904 0.067243632 0.059489817 0.031042279
9700 45 1.1649854 0.068707001 0.060999207 0.031015205
9800 43 1.2167339 0.068203742 0.061864334 0.030892294
9900 43 1.2179414 0.069538363 0.06395 0.030734812
10000 41 1.2744025 0.068472776 0.060561254 0.030541866
Loop time of 0.232249 on 1 procs for 5000 steps with 41 atoms
Performance: 9300376.988 tau/day, 21528.650 timesteps/s, 882.675 katom-step/s
91.4% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.023171 | 0.023171 | 0.023171 | 0.0 | 9.98
Neigh | 0.0045423 | 0.0045423 | 0.0045423 | 0.0 | 1.96
Comm | 0.00042716 | 0.00042716 | 0.00042716 | 0.0 | 0.18
Output | 0.19148 | 0.19148 | 0.19148 | 0.0 | 82.45
Modify | 0.011612 | 0.011612 | 0.011612 | 0.0 | 5.00
Other | | 0.001015 | | | 0.44
Nlocal: 41 ave 41 max 41 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 177
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
37 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 13.59 | 13.59 | 13.59 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 41 0.061625498 0.068472776 0.060561254 0.00305615
10100 41 0.025254975 0.028061083 0.02437217 0.0026271027
10200 41 0.024393819 0.027104244 0.024633818 0.0023572228
10300 41 0.018015247 0.020016941 0.020621857 0.0025463576
10400 41 0.016921985 0.018802206 0.019360302 0.002082466
10500 41 0.017216494 0.019129438 0.020155469 0.0035436475
10600 41 0.017117386 0.019019318 0.020924624 0.0023704974
10700 40 0.021267544 0.02369812 0.024093057 0.0021665516
10800 39 0.015508579 0.017333117 0.021041382 0.0035660594
10900 39 0.016186792 0.018091121 0.021210051 0.0049345099
11000 39 0.015586494 0.017420199 0.021501559 0.0066808766
11100 39 0.015237777 0.017030457 0.021978242 0.0086073747
11200 39 0.015017416 0.01678417 0.022681353 0.010166477
11300 38 0.014479106 0.016234149 0.02222806 0.0031557802
11400 37 0.012297958 0.013835203 0.019989987 0.0035252488
11500 37 0.011651281 0.013107691 0.018961461 0.0048320998
11600 37 0.012189837 0.013713567 0.018403018 0.0031834233
11700 37 0.013518866 0.015208724 0.019515786 0.0030171621
11800 37 0.014068788 0.015827387 0.019973791 0.0027304961
11900 36 0.014538719 0.016414683 0.02028204 0.0026138589
12000 36 0.012354838 0.013949011 0.019563627 0.0026647531
12100 36 0.011956063 0.013498781 0.019967097 0.0025670349
12200 36 0.012105695 0.013667721 0.020808445 0.0025063398
12300 36 0.011549787 0.013040082 0.020878749 0.0024496418
12400 36 0.010916934 0.012325571 0.019643795 0.004250323
12500 36 0.01099958 0.01241888 0.018388921 0.0030752436
12600 35 0.01033081 0.011708251 0.0179885 0.0035106808
12700 33 0.010252951 0.011717658 0.018411045 0.0017976941
12800 33 0.010678308 0.012203781 0.018558424 0.0017002514
12900 33 0.012180086 0.013920098 0.019432831 0.0016688176
13000 33 0.012765778 0.014589461 0.01998997 0.0016190035
13100 32 0.01043512 0.011981064 0.019750714 0.0029022131
13200 32 0.010106579 0.01160385 0.020095193 0.0019861957
13300 32 0.0094852076 0.010890424 0.018092232 0.0014489801
13400 32 0.011412523 0.013103268 0.01899248 0.0015058469
13500 32 0.011112517 0.012758816 0.018541066 0.0014848955
13600 32 0.010360586 0.011895488 0.018432274 0.0016690155
13700 31 0.010168751 0.011733175 0.01927511 0.0016244377
13800 31 0.010530591 0.012150682 0.018986129 0.0017266198
13900 31 0.011341167 0.013085962 0.020244225 0.0031594327
14000 31 0.011494293 0.013262645 0.020691111 0.0019101224
14100 30 0.010977116 0.012733454 0.021066603 0.0020312424
14200 30 0.011736458 0.013614291 0.021384554 0.0022223346
14300 30 0.013796587 0.016004041 0.023690516 0.0024110671
14400 30 0.011576033 0.013428198 0.02268796 0.0026057617
14500 30 0.011909707 0.01381526 0.022250886 0.0028914407
14600 30 0.011101515 0.012877757 0.022754479 0.0031889992
14700 30 0.011283031 0.013088316 0.019956387 0.0060874479
14800 30 0.010284956 0.011930549 0.016686898 0.0039975609
14900 29 0.0098722494 0.011517624 0.016896924 0.0042842018
15000 29 0.010186166 0.01188386 0.017283688 0.0023888604
Loop time of 0.178922 on 1 procs for 5000 steps with 29 atoms
Performance: 12072269.029 tau/day, 27945.067 timesteps/s, 810.407 katom-step/s
93.4% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.010314 | 0.010314 | 0.010314 | 0.0 | 5.76
Neigh | 0.00091559 | 0.00091559 | 0.00091559 | 0.0 | 0.51
Comm | 0.00033777 | 0.00033777 | 0.00033777 | 0.0 | 0.19
Output | 0.16153 | 0.16153 | 0.16153 | 0.0 | 90.28
Modify | 0.005108 | 0.005108 | 0.005108 | 0.0 | 2.85
Other | | 0.0007212 | | | 0.40
Nlocal: 29 ave 29 max 29 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 85
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,358 @@
LAMMPS (27 Jun 2024)
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551)
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
read_data data.tri
Reading data file ...
orthogonal box = (-7 -7 0) to (7 7 9)
2 by 2 by 1 MPI processor grid
reading atoms ...
4 atoms
4 triangles
read_data CPU = 0.001 seconds
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 tri/gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group tri type 2
4 atoms in group tri
fix fsl all surface/local NULL
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 7 9 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 24 every 400 steps, 100 by step 1601
fix wall sphere wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 zcylinder 7.0
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 1 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 = 7.1245553
ghost atom cutoff = 7.1245553
binsize = 3.5622777, bins = 4 4 3
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke/history, perpetual, skip trim from (3)
attributes: half, newton on, size, history, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair tri/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size, history
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 13.22 | 13.31 | 13.35 Mbytes
Step Atoms Temp c_1 c_2 Press
0 4 0 0 0 0
100 28 0.36763289 0.43156905 0.21119336 0.005627034
200 28 0.62433559 0.73291569 0.35866087 0.009556157
300 28 0.95860848 1.125323 0.55068998 0.014672579
400 28 1.3704516 1.608791 0.78728068 0.020976299
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
500 48 0.95089817 1.0393538 0.51608705 0.025335722
600 48 0.83949391 0.91758637 0.46172806 0.022515854
700 48 0.86005308 0.94005801 0.48253125 0.046343793
800 48 0.72552803 0.79301901 0.42419502 0.025365668
900 72 0.67712128 0.71754643 0.37612664 0.028045273
1000 72 0.6037807 0.63982731 0.33903623 0.041568668
1100 72 0.59554924 0.63110442 0.33510774 0.025787354
1200 72 0.59369488 0.62913935 0.33709563 0.037109269
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1300 92 0.42565485 0.44522519 0.24749442 0.052168093
1400 92 0.4636093 0.48492467 0.26417441 0.025118983
1500 92 0.50428332 0.52746876 0.28211978 0.04086654
1600 92 0.4041216 0.42270191 0.24000159 0.026740854
1700 104 0.36993966 0.38488672 0.21498681 0.023950469
1800 104 0.29176495 0.30355343 0.17303905 0.036349423
1900 104 0.26818726 0.27902311 0.15811563 0.024948564
2000 104 0.22279005 0.23179167 0.13346813 0.017280723
2100 104 0.23896556 0.24862073 0.13823816 0.03009918
2200 104 0.20579383 0.21410874 0.12418163 0.039450328
2300 102 0.10971799 0.11424244 0.074956004 0.014807641
2400 102 0.045535097 0.047412833 0.037654864 0.0091413578
2500 102 0.041051596 0.042744445 0.033622408 0.007698999
2600 101 0.034630799 0.036073749 0.027794815 0.0085144929
2700 101 0.025424625 0.026483984 0.020798186 0.006898332
2800 101 0.024152242 0.025158586 0.019868593 0.0095314436
2900 101 0.019076346 0.019871194 0.015184613 0.0068694951
3000 101 0.01182021 0.012312718 0.010833281 0.0078407026
3100 101 0.012007088 0.012507383 0.010192679 0.0072865968
3200 101 0.0065271825 0.0067991484 0.006055543 0.0072082329
3300 101 0.0058659423 0.0061103565 0.005503418 0.0083020848
3400 101 0.0050225565 0.0052318297 0.0045274567 0.0086905727
3500 101 0.0047226341 0.0049194105 0.0041284178 0.0072114544
3600 101 0.0036076755 0.0037579954 0.0035078554 0.0081392066
3700 101 0.0026516472 0.0027621325 0.002544652 0.0076094455
3800 101 0.0021356055 0.0022245891 0.0020628496 0.0068722982
3900 101 0.0014543486 0.0015149465 0.0015027038 0.007022525
4000 101 0.0013476069 0.0014037572 0.0014390136 0.0071511001
4100 101 0.0010740847 0.0011188382 0.0011534394 0.0078442138
4200 101 0.00076777395 0.00079976453 0.00088763722 0.0074201133
4300 101 0.00064877768 0.00067581008 0.00079214623 0.0069999369
4400 101 0.00056602566 0.00058961006 0.00072970843 0.007172149
4500 101 0.00053185285 0.00055401339 0.00069002888 0.0069006923
4600 101 0.00050396242 0.00052496086 0.00064231206 0.0072831983
4700 101 0.0004939245 0.00051450468 0.00060406261 0.0070274519
4800 101 0.0005067638 0.00052787896 0.0006169584 0.0070252715
4900 101 0.00052450136 0.00054635559 0.00063954044 0.0072613866
5000 101 0.00050238069 0.00052331322 0.00063381206 0.0069923836
Loop time of 0.392406 on 4 procs for 5000 steps with 101 atoms
Performance: 5504500.640 tau/day, 12741.900 timesteps/s, 1.287 Matom-step/s
92.0% 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.0088673 | 0.0099705 | 0.011728 | 1.1 | 2.54
Neigh | 0.0031608 | 0.0036162 | 0.0040394 | 0.6 | 0.92
Comm | 0.054781 | 0.057437 | 0.058874 | 0.7 | 14.64
Output | 0.16517 | 0.21896 | 0.30823 | 12.1 | 55.80
Modify | 0.0072728 | 0.012748 | 0.017229 | 3.4 | 3.25
Other | | 0.08968 | | | 22.85
Nlocal: 25.25 ave 28 max 22 min
Histogram: 1 0 0 1 0 0 0 0 1 1
Nghost: 75.75 ave 79 max 73 min
Histogram: 1 1 0 0 0 0 1 0 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 318
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 14.59 | 14.59 | 14.59 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 101 0.00050238069 0.00052331322 0.00063381206 0.0070211922
5100 101 0.51237625 0.028401515 0.030266651 0.047542004
5200 100 0.53673032 0.04868655 0.049607418 0.055178994
5300 98 0.55292145 0.055078502 0.054320412 0.065743408
5400 96 0.56573073 0.057509231 0.056214468 0.04620782
5500 96 0.56811314 0.059996355 0.057130583 0.041366241
5600 92 0.58870851 0.058176956 0.055483365 0.040151041
5700 91 0.59838575 0.062135324 0.056268619 0.037139977
5800 89 0.61367863 0.065388569 0.057599642 0.035611958
5900 88 0.62085434 0.066304196 0.057559466 0.034950213
6000 87 0.62587378 0.064805675 0.056790087 0.036237838
6100 85 0.63938829 0.064969208 0.056078027 0.03552132
6200 83 0.65494135 0.066591169 0.056101931 0.034630474
6300 81 0.66937986 0.066306701 0.054800504 0.034254483
6400 81 0.67013145 0.067097853 0.055854961 0.034280111
6500 80 0.6790132 0.068412844 0.056881014 0.034168381
6600 79 0.68653549 0.06809039 0.056811154 0.033908702
6700 77 0.70162795 0.066842288 0.0557967 0.033646478
6800 75 0.71971093 0.067821847 0.056078774 0.033676107
6900 74 0.72884997 0.068043023 0.055750401 0.034214913
7000 73 0.741055 0.071248239 0.056787992 0.03344658
7100 72 0.74990496 0.070629438 0.056007771 0.034272951
7200 72 0.75147603 0.072294312 0.056870005 0.038376687
7300 72 0.75152274 0.072343811 0.056800621 0.036036623
7400 71 0.75947474 0.07048716 0.055972299 0.033629299
7500 71 0.75927782 0.070278301 0.056900836 0.035271538
7600 70 0.76561822 0.066408884 0.05617217 0.034045712
7700 69 0.77597683 0.06648976 0.056700483 0.033062367
7800 68 0.78867052 0.0687277 0.057387071 0.033095475
7900 67 0.80092333 0.070159036 0.05640023 0.033074777
8000 67 0.80387029 0.073296119 0.058852783 0.033191582
8100 65 0.82162062 0.06787734 0.055167603 0.033911489
8200 65 0.82293648 0.069280915 0.056928499 0.033131095
8300 65 0.82622622 0.072789973 0.059906755 0.033023193
8400 64 0.83807443 0.072671352 0.059696501 0.032696187
8500 61 0.87561225 0.071886699 0.058404764 0.032601058
8600 60 0.89224473 0.075115625 0.060760389 0.032549248
8700 59 0.90437315 0.07301043 0.059680393 0.032331418
8800 58 0.91714907 0.071064475 0.058706043 0.032560687
8900 57 0.92841364 0.066924696 0.055655891 0.031963982
9000 57 0.92657837 0.06494825 0.054846157 0.033987254
9100 56 0.9393931 0.06187335 0.053192019 0.031830438
9200 56 0.93662367 0.058886707 0.052423801 0.031638974
9300 54 0.96949771 0.058618351 0.052230775 0.031585169
9400 53 0.98617614 0.057709997 0.0521297 0.031462885
9500 51 1.0212882 0.055507166 0.050820997 0.032864583
9600 51 1.0207295 0.054899953 0.051106966 0.031197632
9700 50 1.038825 0.053141062 0.049809936 0.031128803
9800 49 1.0578379 0.051480469 0.049706571 0.030966982
9900 48 1.0765858 0.048568721 0.048413084 0.03077346
10000 47 1.0969026 0.046343845 0.048238812 0.03067878
Loop time of 0.339694 on 4 procs for 5000 steps with 47 atoms
Performance: 6358664.007 tau/day, 14719.130 timesteps/s, 691.799 katom-step/s
91.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.0082697 | 0.0094229 | 0.010636 | 0.9 | 2.77
Neigh | 0.0019222 | 0.0021332 | 0.0024003 | 0.4 | 0.63
Comm | 0.046669 | 0.047767 | 0.048681 | 0.4 | 14.06
Output | 0.15506 | 0.20052 | 0.26834 | 10.0 | 59.03
Modify | 0.005961 | 0.0062645 | 0.0066545 | 0.3 | 1.84
Other | | 0.07358 | | | 21.66
Nlocal: 11.75 ave 16 max 4 min
Histogram: 1 0 0 0 0 0 0 1 1 1
Nghost: 35.25 ave 43 max 31 min
Histogram: 1 1 1 0 0 0 0 0 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 202
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
43 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 13.72 | 13.72 | 13.72 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 47 0.042313945 0.046343845 0.048238812 0.0031829588
10100 47 0.015301196 0.016758453 0.01709909 0.0049007033
10200 47 0.013907369 0.015231881 0.017012208 0.0058822354
10300 47 0.013076355 0.014321722 0.016878308 0.0063771178
10400 47 0.013069713 0.014314447 0.017129868 0.0060544053
10500 47 0.013549117 0.014839509 0.017316811 0.005038037
10600 47 0.013439802 0.014719784 0.016885021 0.0042156468
10700 47 0.011220771 0.012289416 0.015233623 0.0036441984
10800 47 0.0099814505 0.010932065 0.014522881 0.0034799639
10900 47 0.0096058179 0.010520658 0.014440913 0.0032337466
11000 47 0.0083387227 0.0091328868 0.013671791 0.003109424
11100 47 0.0093896494 0.010283902 0.013648072 0.0026934542
11200 46 0.0080569563 0.0088430008 0.013494558 0.0033227229
11300 46 0.0079433758 0.0087183393 0.013255582 0.0025017595
11400 46 0.0082131053 0.0090143839 0.013432928 0.0025609831
11500 46 0.0086708201 0.0095167538 0.0140237 0.0048787265
11600 46 0.0068122941 0.0074769082 0.011927673 0.0064488339
11700 46 0.0075227623 0.0082566903 0.012110115 0.0042416942
11800 45 0.0072330348 0.0079563383 0.012267136 0.0034048479
11900 44 0.0072351925 0.0079772635 0.012364777 0.0025564778
12000 44 0.0069667862 0.0076813283 0.012063595 0.0026245318
12100 44 0.0070363862 0.0077580669 0.01235331 0.0040962445
12200 44 0.0070332478 0.0077546066 0.012391507 0.0040855196
12300 43 0.006888974 0.0076141292 0.01250944 0.0032413632
12400 43 0.0069726667 0.0077066316 0.012649713 0.0053382533
12500 43 0.0084380379 0.0093262524 0.013612524 0.0040338939
12600 41 0.0068380013 0.0075977792 0.012812732 0.0032899814
12700 41 0.0073912915 0.0082125461 0.013194281 0.0046187658
12800 41 0.0081089876 0.0090099862 0.014216855 0.0035891381
12900 40 0.0079216998 0.0088270369 0.014373218 0.0037144356
13000 40 0.0066515495 0.0074117266 0.014238377 0.003842598
13100 39 0.0065633538 0.007335513 0.014863135 0.0038943632
13200 39 0.0066950581 0.0074827119 0.015448367 0.004147601
13300 38 0.0067769957 0.0075984497 0.016038254 0.004422378
13400 38 0.0075957494 0.0085164463 0.017271275 0.004346174
13500 38 0.0079577895 0.0089223701 0.018006278 0.0045246956
13600 37 0.0057787234 0.0065010639 0.017799567 0.0047590682
13700 37 0.0060842787 0.0068448136 0.017273992 0.0049302253
13800 36 0.0054766062 0.0061832651 0.017043555 0.0052192413
13900 36 0.0054552953 0.0061592043 0.01759785 0.0055798708
14000 36 0.0054767411 0.0061834173 0.01795293 0.0072478689
14100 36 0.0057198764 0.0064579249 0.019177836 0.0065582726
14200 36 0.0063731636 0.0071955072 0.020493009 0.007028962
14300 36 0.0082497676 0.0093142538 0.022414624 0.0076449222
14400 36 0.0054945561 0.006203531 0.021312077 0.0095624124
14500 36 0.00573652 0.0064767161 0.021201397 0.011575878
14600 36 0.0064174036 0.0072454556 0.022562059 0.01404045
14700 35 0.0064045224 0.0072584588 0.023705187 0.011526214
14800 35 0.0064474362 0.0073070944 0.024537942 0.013286468
14900 35 0.007220356 0.0081830702 0.025671819 0.015672233
15000 34 0.0063783086 0.0072580753 0.019282966 0.0091892427
Loop time of 0.288741 on 4 procs for 5000 steps with 34 atoms
Performance: 7480745.885 tau/day, 17316.541 timesteps/s, 588.762 katom-step/s
94.8% 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.0024909 | 0.0048816 | 0.0063741 | 2.2 | 1.69
Neigh | 0.00027783 | 0.00047397 | 0.00057846 | 0.0 | 0.16
Comm | 0.029395 | 0.031811 | 0.033792 | 0.9 | 11.02
Output | 0.14606 | 0.18368 | 0.24324 | 9.1 | 63.61
Modify | 0.0016781 | 0.0030068 | 0.0034538 | 1.4 | 1.04
Other | | 0.06489 | | | 22.47
Nlocal: 8.5 ave 13 max 4 min
Histogram: 1 0 1 0 0 0 0 1 0 1
Nghost: 25.5 ave 30 max 21 min
Histogram: 1 0 1 0 0 0 0 1 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 75
Dangerous builds = 0
Total wall time: 0:00:01

View File

@ -0,0 +1,326 @@
LAMMPS (27 Jun 2024)
# pouring spheres into box made of triangles
units lj
atom_style sphere
#atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -7 7 -7 7 0 9 units box
create_box 2 box # simply for dump_modify to color lines = green
Created orthogonal box = (-7 -7 0) to (7 7 9)
1 by 1 by 1 MPI processor grid
pair_style gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
molecule tris surf.tri
Read molecule template tris:
LAMMPS data file for tri plane
1 molecules
0 fragments
0 atoms with max type 0
0 bonds with max type 0
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
4 triangles with 5 points
fix 20 all surface/global tris hooke 4000.0 NULL 100.0 NULL 0.5 1
#fix 20 all surface/global tris hooke/history # 4000.0 NULL 100.0 NULL 0.5 1
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 0 -1
#fix 4 all viscous 0.2
region slab block -2 2 -2 2 7 9 units box
fix ins all pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 24 every 400 steps, 100 by step 1601
fix wall all wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 zcylinder 7.0
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 fix 20 type 2 0.5
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 1.3
binsize = 0.65, bins = 22 22 14
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/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.802 | 5.802 | 5.802 Mbytes
Step Atoms Temp c_1 c_2 Press
0 0 0 0 0 0
100 24 0.43156905 0.43156905 0.21119336 0.005627034
200 24 0.73291569 0.73291569 0.35866087 0.009556157
300 24 1.125323 1.125323 0.55068998 0.014672579
400 24 1.608791 1.608791 0.78728068 0.020976299
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
500 44 1.0393538 1.0393538 0.51608705 0.025335722
600 44 0.91758637 0.91758637 0.46172806 0.022367468
700 44 0.94006427 0.94006427 0.48254195 0.035377091
800 44 0.79393033 0.79393033 0.42561821 0.019944664
900 68 0.72089876 0.72089876 0.37868178 0.027381075
1000 68 0.63399342 0.63399342 0.33666552 0.052128303
1100 68 0.63724402 0.63724402 0.3383098 0.024876228
1200 68 0.61528554 0.61528554 0.33134629 0.030248652
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1300 88 0.45289831 0.45289831 0.24603739 0.032314185
1400 88 0.51028258 0.51028258 0.27462447 0.027721293
1500 88 0.52728648 0.52728648 0.28580371 0.030249652
1600 88 0.46373765 0.46373765 0.25474076 0.023383063
1700 100 0.32521568 0.32521568 0.18562847 0.044525946
1800 100 0.30850324 0.30850324 0.17882757 0.031769348
1900 100 0.25365045 0.25365045 0.15147723 0.020592523
2000 100 0.21618068 0.21618068 0.12797228 0.016906763
2100 100 0.24765667 0.24765667 0.13878326 0.014412505
2200 100 0.23385635 0.23385635 0.13254109 0.028043795
2300 99 0.11484142 0.11484142 0.071915879 0.013339994
2400 99 0.053909031 0.053909031 0.042287371 0.0035097518
2500 99 0.042127087 0.042127087 0.032805292 0.0034968993
2600 98 0.036200554 0.036200554 0.027643964 0.0031738712
2700 98 0.030498126 0.030498126 0.02276547 0.0062463557
2800 98 0.025833054 0.025833054 0.019565401 0.0016975051
2900 98 0.020275355 0.020275355 0.015121787 0.0039809964
3000 97 0.011459209 0.011459209 0.0095066644 0.00078861732
3100 97 0.011129563 0.011129563 0.0090167087 0.0011316298
3200 97 0.008702876 0.008702876 0.006583492 0.0019280113
3300 97 0.0049159683 0.0049159683 0.0043967355 0.0005341051
3400 97 0.003181781 0.003181781 0.0029259249 0.0004882333
3500 97 0.0026088972 0.0026088972 0.002409282 0.0014155092
3600 96 0.0022479435 0.0022479435 0.0021341332 0.00038317544
3700 96 0.0020120096 0.0020120096 0.0019144129 0.00030490152
3800 96 0.0016420292 0.0016420292 0.0016430538 0.00060824148
3900 96 0.0015381905 0.0015381905 0.0016050403 0.00025407021
4000 96 0.0013553693 0.0013553693 0.0014834876 0.001040242
4100 96 0.0013261679 0.0013261679 0.0015039405 0.00015428329
4200 96 0.0013369471 0.0013369471 0.0015527737 0.00015511402
4300 96 0.001244062 0.001244062 0.0014317602 0.00023157907
4400 96 0.00093908982 0.00093908982 0.0010831596 0.00085817995
4500 96 0.00088407737 0.00088407737 0.0010577616 0.00028165751
4600 96 0.0007048497 0.0007048497 0.00089917743 0.00018721659
4700 96 0.00070321437 0.00070321437 0.00093327157 0.00027581655
4800 96 0.00069636212 0.00069636212 0.00095998895 0.00026832587
4900 96 0.00066716522 0.00066716522 0.00098882541 0.00024920816
5000 96 0.00063786253 0.00063786253 0.00084144507 0.0006959824
Loop time of 0.268261 on 1 procs for 5000 steps with 96 atoms
Performance: 8051852.379 tau/day, 18638.547 timesteps/s, 1.789 Matom-step/s
97.4% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0036514 | 0.0036514 | 0.0036514 | 0.0 | 1.36
Neigh | 0.0038871 | 0.0038871 | 0.0038871 | 0.0 | 1.45
Comm | 0.00039419 | 0.00039419 | 0.00039419 | 0.0 | 0.15
Output | 0.22313 | 0.22313 | 0.22313 | 0.0 | 83.18
Modify | 0.035998 | 0.035998 | 0.035998 | 0.0 | 13.42
Other | | 0.001202 | | | 0.45
Nlocal: 96 ave 96 max 96 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: 148 ave 148 max 148 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 148
Ave neighs/atom = 1.5416667
Neighbor list builds = 319
Dangerous builds = 0
fix_modify 20 move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 10.62 | 10.62 | 10.62 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 96 0.00063786253 0.00063786253 0.00084144507 0.00068409102
5100 96 0.028313992 0.028313992 0.02867394 0.0064318866
5200 94 0.039240682 0.039240682 0.046630048 0.0021250045
5300 94 0.045894493 0.045894493 0.051041657 0.004288554
5400 90 0.046049624 0.046049624 0.052748479 0.0023413632
5500 89 0.044619749 0.044619749 0.051759567 0.0025268066
5600 87 0.046502592 0.046502592 0.052805904 0.0022671331
5700 86 0.047502773 0.047502773 0.052890192 0.0025018431
5800 83 0.049317538 0.049317538 0.052470227 0.0024522166
5900 81 0.051463883 0.051463883 0.053324316 0.0024303621
6000 79 0.052996121 0.052996121 0.054122681 0.0024352971
6100 78 0.048074683 0.048074683 0.051044879 0.0020985852
6200 75 0.04840275 0.04840275 0.049998948 0.0020567512
6300 74 0.048896993 0.048896993 0.05012768 0.0020235986
6400 72 0.048661741 0.048661741 0.047914934 0.0027397448
6500 72 0.049815101 0.049815101 0.04823434 0.0022998212
6600 72 0.050578127 0.050578127 0.047972859 0.0023500543
6700 71 0.053700957 0.053700957 0.049203548 0.0021231176
6800 70 0.054955705 0.054955705 0.048252513 0.0022219662
6900 69 0.055089911 0.055089911 0.048327243 0.0021431702
7000 68 0.054713581 0.054713581 0.047461258 0.0027194558
7100 68 0.055154516 0.055154516 0.048042367 0.0020996652
7200 68 0.052688949 0.052688949 0.047223673 0.0031629618
7300 66 0.053031698 0.053031698 0.046492962 0.0020164648
7400 66 0.053814798 0.053814798 0.048105161 0.0019830573
7500 64 0.050060478 0.050060478 0.046862322 0.0017880464
7600 63 0.051383282 0.051383282 0.047500425 0.0018639548
7700 61 0.047761405 0.047761405 0.045091014 0.001632776
7800 60 0.047463305 0.047463305 0.045176189 0.001591933
7900 60 0.048347642 0.048347642 0.046537806 0.0016308357
8000 58 0.04714196 0.04714196 0.045527272 0.0015641403
8100 58 0.046968881 0.046968881 0.04598277 0.0024094931
8200 57 0.046997734 0.046997734 0.045676536 0.0014922033
8300 57 0.045562254 0.045562254 0.045872476 0.0014466327
8400 55 0.044408194 0.044408194 0.045223172 0.0013596468
8500 55 0.043334554 0.043334554 0.045957536 0.0013267805
8600 52 0.0407858 0.0407858 0.043378073 0.0011793941
8700 52 0.039828276 0.039828276 0.043948609 0.0014514912
8800 50 0.038530301 0.038530301 0.043112182 0.0010705032
8900 50 0.038936121 0.038936121 0.044360368 0.0010817763
9000 49 0.038340922 0.038340922 0.043586145 0.0010435081
9100 48 0.037704467 0.037704467 0.043398687 0.0010047485
9200 48 0.039439971 0.039439971 0.045446967 0.0010509895
9300 48 0.040146494 0.040146494 0.047222767 0.0010698143
9400 46 0.036196314 0.036196314 0.04514472 0.00092352701
9500 44 0.035428166 0.035428166 0.043156558 0.00086370075
9600 44 0.036236057 0.036236057 0.045015316 0.00088339425
9700 43 0.033612512 0.033612512 0.042808614 0.0008003869
9800 42 0.034119077 0.034119077 0.043448026 0.0007931345
9900 41 0.033534569 0.033534569 0.04281968 0.00076053851
10000 40 0.032867612 0.032867612 0.041673148 0.00072678237
Loop time of 0.246836 on 1 procs for 5000 steps with 40 atoms
Performance: 8750744.841 tau/day, 20256.354 timesteps/s, 810.254 katom-step/s
90.2% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0022158 | 0.0022158 | 0.0022158 | 0.0 | 0.90
Neigh | 0.0032745 | 0.0032745 | 0.0032745 | 0.0 | 1.33
Comm | 0.0003966 | 0.0003966 | 0.0003966 | 0.0 | 0.16
Output | 0.20971 | 0.20971 | 0.20971 | 0.0 | 84.96
Modify | 0.030201 | 0.030201 | 0.030201 | 0.0 | 12.24
Other | | 0.001038 | | | 0.42
Nlocal: 40 ave 40 max 40 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: 18 ave 18 max 18 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18
Ave neighs/atom = 0.45
Neighbor list builds = 333
Dangerous builds = 0
fix_modify 20 move none
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 10.62 | 10.62 | 10.62 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 40 0.032867612 0.032867612 0.041673148 0.00072685327
10100 40 0.0076052221 0.0076052221 0.0076988542 0.00016814267
10200 40 0.0032668297 0.0032668297 0.0038743591 0.00054487661
10300 40 0.003316664 0.003316664 0.0040375473 7.3327605e-05
10400 40 0.0030064853 0.0030064853 0.0039975834 6.6469913e-05
10500 40 0.0030342866 0.0030342866 0.004203116 6.7084568e-05
10600 40 0.0030020199 0.0030020199 0.0043687727 6.6371188e-05
10700 40 0.0027999261 0.0027999261 0.003947504 0.00010754343
10800 40 0.0027031744 0.0027031744 0.0038359994 6.3984417e-05
10900 40 0.0027373574 0.0027373574 0.0039800535 7.0481083e-05
11000 39 0.0029362062 0.0029362062 0.002978473 6.9069963e-05
11100 39 0.0037840086 0.0037840086 0.0036639284 8.1514925e-05
11200 39 0.0045558771 0.0045558771 0.0041248127 9.8142478e-05
11300 39 0.0017981927 0.0017981927 0.0025146205 0.00031779839
11400 39 0.0016431107 0.0016431107 0.0024756094 4.4978596e-05
11500 39 0.0017504997 0.0017504997 0.0026753481 4.7200446e-05
11600 39 0.0020008726 0.0020008726 0.0029721732 5.2678933e-05
11700 39 0.0014870059 0.0014870059 0.0026506345 4.152681e-05
11800 39 0.0016074438 0.0016074438 0.002888528 -3.0912602e-05
11900 39 0.0017722588 0.0017722588 0.0031282687 4.1702851e-05
12000 39 0.0027430864 0.0027430864 0.0039301824 6.8654618e-05
12100 39 0.0031883241 0.0031883241 0.0041806787 7.8260758e-05
12200 38 0.0013269284 0.0013269284 0.0032322246 3.6635105e-05
12300 38 0.0016569097 0.0016569097 0.0036433609 0.00041718571
12400 38 0.00094008147 0.00094008147 0.0033452514 3.7496272e-05
12500 37 0.00095698445 0.00095698445 0.0023073129 3.715434e-05
12600 37 0.00098175769 0.00098175769 0.0025359749 3.7459507e-05
12700 37 0.0010099586 0.0010099586 0.0027775856 3.7772603e-05
12800 37 0.0010435337 0.0010435337 0.0030319623 3.811889e-05
12900 37 0.0011032701 0.0011032701 0.0032983521 2.3599435e-05
13000 37 0.0012957624 0.0012957624 0.003683326 4.2333566e-05
13100 37 0.0010512853 0.0010512853 0.0037476793 3.6717097e-05
13200 37 0.0010868252 0.0010868252 0.0040740128 0.00018164133
13300 37 0.0011180293 0.0011180293 0.0044202397 3.643358e-05
13400 37 0.0011178538 0.0011178538 0.0047516047 3.5746318e-05
13500 37 0.0007777481 0.0007777481 0.0037726389 5.3444345e-05
13600 36 0.0007999147 0.0007999147 0.003070242 3.248155e-05
13700 36 0.0008389068 0.0008389068 0.003346172 2.9660005e-05
13800 36 0.00086583182 0.00086583182 0.0036410575 3.0212331e-05
13900 36 0.00058473604 0.00058473604 0.0024273755 5.7952251e-05
14000 36 0.00055727478 0.00055727478 0.0019113805 0.00011095694
14100 35 0.00044295291 0.00044295291 0.00066952242 0.00050643096
14200 35 0.00041514525 0.00041514525 0.00045222556 9.4438091e-05
14300 35 0.00042269774 0.00042269774 0.00047195914 4.5343892e-05
14400 35 0.00042495865 0.00042495865 0.00049753292 4.5106479e-05
14500 35 0.00040895208 0.00040895208 0.00051927404 4.6530808e-05
14600 35 0.00039129621 0.00039129621 0.00054194363 0.00019698404
14700 35 0.00039266334 0.00039266334 0.00058307961 4.7472072e-05
14800 35 0.00040570773 0.00040570773 0.00065710296 4.7982077e-05
14900 35 0.00040991932 0.00040991932 0.0007334058 4.8236973e-05
15000 35 0.00041469341 0.00041469341 0.00081836212 4.8450505e-05
Loop time of 0.213298 on 1 procs for 5000 steps with 35 atoms
Performance: 10126681.077 tau/day, 23441.391 timesteps/s, 820.449 katom-step/s
88.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 | 0.0012286 | 0.0012286 | 0.0012286 | 0.0 | 0.58
Neigh | 0.00025877 | 0.00025877 | 0.00025877 | 0.0 | 0.12
Comm | 0.00026642 | 0.00026642 | 0.00026642 | 0.0 | 0.12
Output | 0.19361 | 0.19361 | 0.19361 | 0.0 | 90.77
Modify | 0.017202 | 0.017202 | 0.017202 | 0.0 | 8.06
Other | | 0.0007333 | | | 0.34
Nlocal: 35 ave 35 max 35 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: 26 ave 26 max 26 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 26
Ave neighs/atom = 0.74285714
Neighbor list builds = 37
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,327 @@
LAMMPS (27 Jun 2024)
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551)
# pouring spheres into box made of triangles
units lj
atom_style sphere
#atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -7 7 -7 7 0 9 units box
create_box 2 box # simply for dump_modify to color lines = green
Created orthogonal box = (-7 -7 0) to (7 7 9)
2 by 2 by 1 MPI processor grid
pair_style gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
molecule tris surf.tri
Read molecule template tris:
LAMMPS data file for tri plane
1 molecules
0 fragments
0 atoms with max type 0
0 bonds with max type 0
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
4 triangles with 5 points
fix 20 all surface/global tris hooke 4000.0 NULL 100.0 NULL 0.5 1
#fix 20 all surface/global tris hooke/history # 4000.0 NULL 100.0 NULL 0.5 1
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 0 -1
#fix 4 all viscous 0.2
region slab block -2 2 -2 2 7 9 units box
fix ins all pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 24 every 400 steps, 100 by step 1601
fix wall all wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 zcylinder 7.0
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 fix 20 type 2 0.5
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 1.3
binsize = 0.65, bins = 22 22 14
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/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.785 | 5.785 | 5.785 Mbytes
Step Atoms Temp c_1 c_2 Press
0 0 0 0 0 0
100 24 0.43156905 0.43156905 0.21119336 0.005627034
200 24 0.73291569 0.73291569 0.35866087 0.009556157
300 24 1.125323 1.125323 0.55068998 0.014672579
400 24 1.608791 1.608791 0.78728068 0.020976299
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
500 44 1.0393538 1.0393538 0.51608705 0.025335722
600 44 0.91758637 0.91758637 0.46172806 0.022367468
700 44 0.94006427 0.94006427 0.48254195 0.035377091
800 44 0.79393033 0.79393033 0.42561821 0.019944664
900 68 0.72089876 0.72089876 0.37868178 0.027381075
1000 68 0.63399342 0.63399342 0.33666552 0.052128303
1100 68 0.63724402 0.63724402 0.3383098 0.024876228
1200 68 0.61528554 0.61528554 0.33134629 0.030248652
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1300 88 0.45289831 0.45289831 0.24603739 0.032314185
1400 88 0.51028258 0.51028258 0.27462447 0.027721293
1500 88 0.52728648 0.52728648 0.28580371 0.030249652
1600 88 0.46373765 0.46373765 0.25474076 0.023383063
1700 100 0.32521568 0.32521568 0.18562847 0.044525945
1800 100 0.30850324 0.30850324 0.17882757 0.031769348
1900 100 0.25365045 0.25365045 0.15147723 0.020592523
2000 100 0.21618068 0.21618068 0.12797228 0.016906764
2100 100 0.24765668 0.24765668 0.13878326 0.014412505
2200 100 0.23385636 0.23385636 0.13254109 0.028043759
2300 99 0.11484144 0.11484144 0.07191588 0.013339992
2400 99 0.053908946 0.053908946 0.042287303 0.0035096828
2500 99 0.042127084 0.042127084 0.032805289 0.0034968494
2600 98 0.03620012 0.03620012 0.027643861 0.0031757884
2700 98 0.030497382 0.030497382 0.02276464 0.0062433907
2800 98 0.025840421 0.025840421 0.019571636 0.0017100476
2900 98 0.020282706 0.020282706 0.01512433 0.0039918866
3000 97 0.011469683 0.011469683 0.0095129501 0.00083264863
3100 97 0.011061428 0.011061428 0.0089852941 0.0011413524
3200 97 0.0085729018 0.0085729018 0.0065027781 0.0015793608
3300 97 0.0048844117 0.0048844117 0.0043831348 0.00054654825
3400 97 0.0031718513 0.0031718513 0.002919676 0.00041030186
3500 97 0.0026149541 0.0026149541 0.0024273609 0.00064176505
3600 96 0.0022374762 0.0022374762 0.0021346878 0.0009000487
3700 96 0.002015425 0.002015425 0.0019283015 0.00010102156
3800 96 0.0016640247 0.0016640247 0.0016542081 0.00058063795
3900 96 0.0014953491 0.0014953491 0.0015554014 0.00043366101
4000 96 0.0014314643 0.0014314643 0.001549993 0.00016144849
4100 96 0.0012797618 0.0012797618 0.001462077 0.0001478758
4200 96 0.001301217 0.001301217 0.0015150334 0.00032745678
4300 96 0.0011719389 0.0011719389 0.0013301205 0.00025779628
4400 96 0.00092491728 0.00092491728 0.0010319633 0.00030044217
4500 96 0.00087292243 0.00087292243 0.001019192 0.00025577747
4600 96 0.00075144495 0.00075144495 0.00091990059 0.00018817234
4700 96 0.00074883306 0.00074883306 0.00093930259 0.0005619372
4800 96 0.00065460832 0.00065460832 0.00089919023 0.00024621022
4900 96 0.0006499224 0.0006499224 0.00092528447 0.00026790153
5000 96 0.00061981936 0.00061981936 0.00078233948 0.00061552671
Loop time of 0.363222 on 4 procs for 5000 steps with 96 atoms
Performance: 5946774.227 tau/day, 13765.681 timesteps/s, 1.322 Matom-step/s
95.8% 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.0013004 | 0.0013955 | 0.0015524 | 0.3 | 0.38
Neigh | 0.0014703 | 0.0016933 | 0.0019742 | 0.5 | 0.47
Comm | 0.019443 | 0.020106 | 0.020622 | 0.3 | 5.54
Output | 0.23038 | 0.26505 | 0.3205 | 7.3 | 72.97
Modify | 0.012416 | 0.01734 | 0.02093 | 2.5 | 4.77
Other | | 0.05763 | | | 15.87
Nlocal: 24 ave 25 max 22 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Nghost: 9.25 ave 12 max 8 min
Histogram: 2 0 1 0 0 0 0 0 0 1
Neighs: 36.25 ave 40 max 34 min
Histogram: 2 0 0 0 0 1 0 0 0 1
Total # of neighbors = 145
Ave neighs/atom = 1.5104167
Neighbor list builds = 319
Dangerous builds = 0
fix_modify 20 move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 10.6 | 10.6 | 10.6 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 96 0.00061981936 0.00061981936 0.00078233948 0.00061520755
5100 96 0.028314129 0.028314129 0.028887614 0.0015596074
5200 93 0.038280284 0.038280284 0.045433502 0.003972808
5300 92 0.044602602 0.044602602 0.050026258 0.0066549492
5400 88 0.043591861 0.043591861 0.050587055 0.0021499387
5500 88 0.043643437 0.043643437 0.051930078 0.0045848219
5600 86 0.044398335 0.044398335 0.050588091 0.0021861193
5700 86 0.048834817 0.048834817 0.052122986 0.0024353201
5800 82 0.048657023 0.048657023 0.050882437 0.0022637024
5900 79 0.047422209 0.047422209 0.050391753 0.0020519953
6000 78 0.047430795 0.047430795 0.050706223 0.0020757537
6100 76 0.047766342 0.047766342 0.050881831 0.0020365653
6200 74 0.048553742 0.048553742 0.049322747 0.0040124193
6300 73 0.050329565 0.050329565 0.050219503 0.0021932369
6400 71 0.049899479 0.049899479 0.047423384 0.0019659021
6500 71 0.051053882 0.051053882 0.048643589 0.0020292656
6600 71 0.051795185 0.051795185 0.04927532 0.0023715227
6700 69 0.052264693 0.052264693 0.048643292 0.0020434717
6800 69 0.052349883 0.052349883 0.049265236 0.0020181077
6900 68 0.051428051 0.051428051 0.048628957 0.0019545319
7000 67 0.050476407 0.050476407 0.048064128 0.0018923271
7100 67 0.050313513 0.050313513 0.048219142 0.001884633
7200 67 0.050521342 0.050521342 0.047963518 0.0021063865
7300 66 0.049017518 0.049017518 0.047288558 0.0018972353
7400 65 0.048690842 0.048690842 0.048162015 0.0017669135
7500 64 0.048934259 0.048934259 0.047906689 0.0019361894
7600 62 0.048293135 0.048293135 0.047386457 0.0023701331
7700 61 0.050821617 0.050821617 0.048266806 0.0018564185
7800 60 0.052493396 0.052493396 0.049727548 0.0017921461
7900 59 0.053162734 0.053162734 0.050327775 0.0017510558
8000 57 0.051249525 0.051249525 0.048540418 0.0028770132
8100 57 0.05261519 0.05261519 0.049923888 0.0016707326
8200 55 0.051727022 0.051727022 0.047928098 0.0014557055
8300 55 0.050489803 0.050489803 0.048163815 0.0033275674
8400 54 0.049599363 0.049599363 0.047431898 0.0015088762
8500 54 0.052050538 0.052050538 0.048908289 0.0015666966
8600 52 0.050340482 0.050340482 0.046440415 0.0014555948
8700 52 0.052028316 0.052028316 0.048176195 0.0015106353
8800 50 0.0499901 0.0499901 0.045788044 0.0025087962
8900 50 0.051750338 0.051750338 0.047753896 0.0014377545
9000 50 0.051966831 0.051966831 0.048823952 0.0014437681
9100 49 0.051660945 0.051660945 0.048110255 0.0014336784
9200 49 0.051126513 0.051126513 0.048962201 0.0014162724
9300 48 0.049057888 0.049057888 0.0492291 0.0013197818
9400 48 0.045030047 0.045030047 0.047529619 0.0013481748
9500 48 0.045513589 0.045513589 0.048536638 0.0012236674
9600 48 0.043665627 0.043665627 0.048296609 0.0011806622
9700 48 0.044106239 0.044106239 0.049540196 0.0011963288
9800 46 0.042160287 0.042160287 0.048481885 0.0011107764
9900 46 0.041772009 0.041772009 0.049483596 0.0011344326
10000 44 0.040236277 0.040236277 0.045816406 0.00099962018
Loop time of 0.306426 on 4 procs for 5000 steps with 44 atoms
Performance: 7049016.148 tau/day, 16317.167 timesteps/s, 717.955 katom-step/s
94.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.00093851 | 0.00097842 | 0.0010014 | 0.0 | 0.32
Neigh | 0.0011773 | 0.0012138 | 0.0012749 | 0.1 | 0.40
Comm | 0.012859 | 0.013509 | 0.01418 | 0.5 | 4.41
Output | 0.19691 | 0.22604 | 0.2754 | 6.8 | 73.77
Modify | 0.0097789 | 0.010556 | 0.011241 | 0.5 | 3.44
Other | | 0.05412 | | | 17.66
Nlocal: 11 ave 20 max 4 min
Histogram: 1 0 0 2 0 0 0 0 0 1
Nghost: 4 ave 6 max 2 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Neighs: 9.75 ave 23 max 2 min
Histogram: 1 1 1 0 0 0 0 0 0 1
Total # of neighbors = 39
Ave neighs/atom = 0.88636364
Neighbor list builds = 333
Dangerous builds = 0
fix_modify 20 move none
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 10.6 | 10.6 | 10.6 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 44 0.040236277 0.040236277 0.045816406 0.00099979881
10100 44 0.010977052 0.010977052 0.010149182 0.00026758119
10200 44 0.004605352 0.004605352 0.0053045614 0.00011226198
10300 44 0.0053942032 0.0053942032 0.0056431085 0.00013149135
10400 44 0.0036859511 0.0036859511 0.0041662707 9.2662763e-05
10500 44 0.0039184347 0.0039184347 0.0043067155 0.00049979829
10600 44 0.0044427233 0.0044427233 0.0045879783 0.00011077625
10700 44 0.0029607594 0.0029607594 0.0034776101 0.0006068726
10800 44 0.0026942916 0.0026942916 0.0034401136 6.706354e-05
10900 44 0.0026203469 0.0026203469 0.0034492724 6.9607138e-05
11000 44 0.0019864947 0.0019864947 0.0031427116 8.3134017e-06
11100 44 0.0019240976 0.0019240976 0.0032808084 2.0347364e-05
11200 44 0.0018635948 0.0018635948 0.0034030363 5.7875998e-05
11300 44 0.0017686207 0.0017686207 0.0029556669 9.3363224e-05
11400 44 0.0014303652 0.0014303652 0.002751691 5.9528496e-05
11500 44 0.001399414 0.001399414 0.0027540021 5.8871141e-05
11600 44 0.0011285459 0.0011285459 0.0017454672 0.00063103388
11700 44 0.0010672518 0.0010672518 0.0014970714 0.00012978783
11800 44 0.0010754046 0.0010754046 0.0015525936 0.00011139988
11900 44 0.00093155287 0.00093155287 0.0011682302 0.00012515367
12000 44 0.00084853622 0.00084853622 0.0010681768 0.00010639935
12100 44 0.00069411148 0.00069411148 0.00077780972 7.3742549e-05
12200 44 0.0006859885 0.0006859885 0.0007696296 9.3309816e-05
12300 44 0.00064103944 0.00064103944 0.00072985388 0.0001474211
12400 44 0.00063849822 0.00063849822 0.00072417306 9.4166534e-05
12500 44 0.0006361049 0.0006361049 0.00068646857 9.5282342e-05
12600 44 0.00063622199 0.00063622199 0.00068538208 9.5058162e-05
12700 44 0.00062165913 0.00062165913 0.00066876644 9.412044e-05
12800 44 0.00058480739 0.00058480739 0.00063172101 0.00018653887
12900 44 0.00054058957 0.00054058957 0.00059549487 9.384774e-05
13000 44 0.00051904254 0.00051904254 0.00057073513 9.4434337e-05
13100 44 0.00053410816 0.00053410816 0.00057766113 9.61856e-05
13200 44 0.00050156547 0.00050156547 0.00055212122 9.7382505e-05
13300 44 0.00049740896 0.00049740896 0.00054826803 9.7690479e-05
13400 44 0.00049775099 0.00049775099 0.00054791017 9.7482658e-05
13500 44 0.00049205909 0.00049205909 0.00054071132 0.00010353798
13600 44 0.00049240333 0.00049240333 0.00054031425 9.7448102e-05
13700 44 0.00049274845 0.00049274845 0.00053984708 9.7497469e-05
13800 43 0.00050763917 0.00050763917 0.00055870605 8.5113661e-05
13900 43 0.00047304434 0.00047304434 0.00054545171 7.7477263e-05
14000 43 0.00047307851 0.00047307851 0.00056349029 0.00016615605
14100 43 0.00048268391 0.00048268391 0.00059292333 8.4939642e-05
14200 43 0.00049712412 0.00049712412 0.00064043909 8.522618e-05
14300 43 0.00051010248 0.00051010248 0.00069557642 8.5161341e-05
14400 43 0.0005010299 0.0005010299 0.00074528156 8.5292218e-05
14500 43 0.00050900735 0.00050900735 0.00081321917 8.5452422e-05
14600 43 0.00051293789 0.00051293789 0.00088464504 8.5523903e-05
14700 43 0.00050022161 0.00050022161 0.00094898195 8.520624e-05
14800 43 0.00049641051 0.00049641051 0.0010219267 8.5106195e-05
14900 43 0.00048906772 0.00048906772 0.0010926634 8.4926556e-05
15000 43 0.00048008443 0.00048008443 0.0011603655 8.470585e-05
Loop time of 0.301772 on 4 procs for 5000 steps with 43 atoms
Performance: 7157719.630 tau/day, 16568.795 timesteps/s, 712.458 katom-step/s
95.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.00035986 | 0.00077488 | 0.0011039 | 0.0 | 0.26
Neigh | 0.00012595 | 0.00015205 | 0.00018739 | 0.0 | 0.05
Comm | 0.0082732 | 0.0097396 | 0.011683 | 1.3 | 3.23
Output | 0.19202 | 0.2262 | 0.27636 | 7.0 | 74.96
Modify | 0.0029097 | 0.0064286 | 0.01144 | 3.9 | 2.13
Other | | 0.05847 | | | 19.38
Nlocal: 10.75 ave 20 max 5 min
Histogram: 1 0 2 0 0 0 0 0 0 1
Nghost: 4 ave 7 max 2 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Neighs: 10 ave 22 max 2 min
Histogram: 1 0 1 1 0 0 0 0 0 1
Total # of neighbors = 40
Ave neighs/atom = 0.93023256
Neighbor list builds = 32
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,315 @@
LAMMPS (27 Jun 2024)
# pouring spheres into box made of triangles
units lj
atom_style sphere
#atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -7 7 -7 7 0 9 units box
create_box 2 box # simply for dump_modify to color lines = green
Created orthogonal box = (-7 -7 0) to (7 7 9)
1 by 1 by 1 MPI processor grid
pair_style gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 20 all surface/global surf.tri.stl hooke 4000.0 NULL 100.0 NULL 0.5 1
Reading STL object STL version of surf.tri from text file surf.tri.stl
#fix 20 all surface/global surf.tri.stl hooke/history # 4000.0 NULL 100.0 NULL 0.5 1
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 0 -1
#fix 4 all viscous 0.2
region slab block -2 2 -2 2 7 9 units box
fix ins all pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 24 every 400 steps, 100 by step 1601
fix wall all wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 zcylinder 7.0
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 fix 20 type 2 0.5
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 1.3
binsize = 0.65, bins = 22 22 14
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/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.802 | 5.802 | 5.802 Mbytes
Step Atoms Temp c_1 c_2 Press
0 0 0 0 0 0
100 24 0.43156905 0.43156905 0.21119336 0.005627034
200 24 0.73291569 0.73291569 0.35866087 0.009556157
300 24 1.125323 1.125323 0.55068998 0.014672579
400 24 1.608791 1.608791 0.78728068 0.020976299
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
500 44 1.0393538 1.0393538 0.51608705 0.025335722
600 44 0.91758637 0.91758637 0.46172806 0.022367468
700 44 0.94006427 0.94006427 0.48254195 0.035377091
800 44 0.79393033 0.79393033 0.42561821 0.019944664
900 68 0.72089876 0.72089876 0.37868178 0.027381075
1000 68 0.63399342 0.63399342 0.33666552 0.052128303
1100 68 0.63724402 0.63724402 0.3383098 0.024876228
1200 68 0.61528554 0.61528554 0.33134629 0.030248652
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1300 88 0.45289831 0.45289831 0.24603739 0.032314185
1400 88 0.51028258 0.51028258 0.27462447 0.027721293
1500 88 0.52728648 0.52728648 0.28580371 0.030249652
1600 88 0.46373765 0.46373765 0.25474076 0.023383063
1700 100 0.32521568 0.32521568 0.18562847 0.044525946
1800 100 0.30850324 0.30850324 0.17882757 0.031769348
1900 100 0.25365045 0.25365045 0.15147723 0.020592523
2000 100 0.21618068 0.21618068 0.12797228 0.016906763
2100 100 0.24765667 0.24765667 0.13878326 0.014412505
2200 100 0.23385635 0.23385635 0.13254109 0.028043795
2300 99 0.11484142 0.11484142 0.071915879 0.013339994
2400 99 0.053909031 0.053909031 0.042287371 0.0035097518
2500 99 0.042127087 0.042127087 0.032805292 0.0034968993
2600 98 0.036200554 0.036200554 0.027643964 0.0031738712
2700 98 0.030498126 0.030498126 0.02276547 0.0062463557
2800 98 0.025833054 0.025833054 0.019565401 0.0016975051
2900 98 0.020275355 0.020275355 0.015121787 0.0039809964
3000 97 0.011459209 0.011459209 0.0095066644 0.00078861732
3100 97 0.011129563 0.011129563 0.0090167087 0.0011316298
3200 97 0.008702876 0.008702876 0.006583492 0.0019280113
3300 97 0.0049159683 0.0049159683 0.0043967355 0.0005341051
3400 97 0.003181781 0.003181781 0.0029259249 0.0004882333
3500 97 0.0026088972 0.0026088972 0.002409282 0.0014155092
3600 96 0.0022479435 0.0022479435 0.0021341332 0.00038317544
3700 96 0.0020120096 0.0020120096 0.0019144129 0.00030490152
3800 96 0.0016420292 0.0016420292 0.0016430538 0.00060824148
3900 96 0.0015381905 0.0015381905 0.0016050403 0.00025407021
4000 96 0.0013553693 0.0013553693 0.0014834876 0.001040242
4100 96 0.0013261679 0.0013261679 0.0015039405 0.00015428329
4200 96 0.0013369471 0.0013369471 0.0015527737 0.00015511402
4300 96 0.001244062 0.001244062 0.0014317602 0.00023157907
4400 96 0.00093908982 0.00093908982 0.0010831596 0.00085817995
4500 96 0.00088407737 0.00088407737 0.0010577616 0.00028165751
4600 96 0.0007048497 0.0007048497 0.00089917743 0.00018721659
4700 96 0.00070321437 0.00070321437 0.00093327157 0.00027581655
4800 96 0.00069636212 0.00069636212 0.00095998895 0.00026832587
4900 96 0.00066716522 0.00066716522 0.00098882541 0.00024920816
5000 96 0.00063786253 0.00063786253 0.00084144507 0.0006959824
Loop time of 12.6651 on 1 procs for 5000 steps with 96 atoms
Performance: 170547.688 tau/day, 394.786 timesteps/s, 37.899 katom-step/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 | 0.13399 | 0.13399 | 0.13399 | 0.0 | 1.06
Neigh | 0.067145 | 0.067145 | 0.067145 | 0.0 | 0.53
Comm | 0.025541 | 0.025541 | 0.025541 | 0.0 | 0.20
Output | 10.654 | 10.654 | 10.654 | 0.0 | 84.12
Modify | 1.7142 | 1.7142 | 1.7142 | 0.0 | 13.53
Other | | 0.06978 | | | 0.55
Nlocal: 96 ave 96 max 96 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: 148 ave 148 max 148 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 148
Ave neighs/atom = 1.5416667
Neighbor list builds = 319
Dangerous builds = 0
fix_modify 20 move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 10.62 | 10.62 | 10.62 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 96 0.00063786253 0.00063786253 0.00084144507 0.00068409102
5100 96 0.028313992 0.028313992 0.02867394 0.0064318866
5200 94 0.039240682 0.039240682 0.046630048 0.0021250045
5300 94 0.045894493 0.045894493 0.051041657 0.004288554
5400 90 0.046049624 0.046049624 0.052748479 0.0023413632
5500 89 0.044619749 0.044619749 0.051759567 0.0025268066
5600 87 0.046502592 0.046502592 0.052805904 0.0022671331
5700 86 0.047502773 0.047502773 0.052890192 0.0025018431
5800 83 0.049317538 0.049317538 0.052470227 0.0024522166
5900 81 0.051463883 0.051463883 0.053324316 0.0024303621
6000 79 0.052996121 0.052996121 0.054122681 0.0024352971
6100 78 0.048074683 0.048074683 0.051044879 0.0020985852
6200 75 0.04840275 0.04840275 0.049998948 0.0020567512
6300 74 0.048896993 0.048896993 0.05012768 0.0020235986
6400 72 0.048661741 0.048661741 0.047914934 0.0027397448
6500 72 0.049815101 0.049815101 0.04823434 0.0022998212
6600 72 0.050578127 0.050578127 0.047972859 0.0023500543
6700 71 0.053700957 0.053700957 0.049203548 0.0021231176
6800 70 0.054955705 0.054955705 0.048252513 0.0022219662
6900 69 0.055089911 0.055089911 0.048327243 0.0021431702
7000 68 0.054713581 0.054713581 0.047461258 0.0027194558
7100 68 0.055154516 0.055154516 0.048042367 0.0020996652
7200 68 0.052688949 0.052688949 0.047223673 0.0031629618
7300 66 0.053031698 0.053031698 0.046492962 0.0020164648
7400 66 0.053814798 0.053814798 0.048105161 0.0019830573
7500 64 0.050060478 0.050060478 0.046862322 0.0017880464
7600 63 0.051383282 0.051383282 0.047500425 0.0018639548
7700 61 0.047761405 0.047761405 0.045091014 0.001632776
7800 60 0.047463305 0.047463305 0.045176189 0.001591933
7900 60 0.048347642 0.048347642 0.046537806 0.0016308357
8000 58 0.04714196 0.04714196 0.045527272 0.0015641403
8100 58 0.046968881 0.046968881 0.04598277 0.0024094931
8200 57 0.046997734 0.046997734 0.045676536 0.0014922033
8300 57 0.045562254 0.045562254 0.045872476 0.0014466327
8400 55 0.044408194 0.044408194 0.045223172 0.0013596468
8500 55 0.043334554 0.043334554 0.045957536 0.0013267805
8600 52 0.0407858 0.0407858 0.043378073 0.0011793941
8700 52 0.039828276 0.039828276 0.043948609 0.0014514912
8800 50 0.038530301 0.038530301 0.043112182 0.0010705032
8900 50 0.038936121 0.038936121 0.044360368 0.0010817763
9000 49 0.038340922 0.038340922 0.043586145 0.0010435081
9100 48 0.037704467 0.037704467 0.043398687 0.0010047485
9200 48 0.039439971 0.039439971 0.045446967 0.0010509895
9300 48 0.040146494 0.040146494 0.047222767 0.0010698143
9400 46 0.036196314 0.036196314 0.04514472 0.00092352701
9500 44 0.035428166 0.035428166 0.043156558 0.00086370075
9600 44 0.036236057 0.036236057 0.045015316 0.00088339425
9700 43 0.033612512 0.033612512 0.042808614 0.0008003869
9800 42 0.034119077 0.034119077 0.043448026 0.0007931345
9900 41 0.033534569 0.033534569 0.04281968 0.00076053851
10000 40 0.032867612 0.032867612 0.041673148 0.00072678237
Loop time of 11.4047 on 1 procs for 5000 steps with 40 atoms
Performance: 189395.206 tau/day, 438.415 timesteps/s, 17.537 katom-step/s
99.6% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0808 | 0.0808 | 0.0808 | 0.0 | 0.71
Neigh | 0.059506 | 0.059506 | 0.059506 | 0.0 | 0.52
Comm | 0.016313 | 0.016313 | 0.016313 | 0.0 | 0.14
Output | 9.7783 | 9.7783 | 9.7783 | 0.0 | 85.74
Modify | 1.4124 | 1.4124 | 1.4124 | 0.0 | 12.38
Other | | 0.05743 | | | 0.50
Nlocal: 40 ave 40 max 40 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: 18 ave 18 max 18 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18
Ave neighs/atom = 0.45
Neighbor list builds = 333
Dangerous builds = 0
fix_modify 20 move none
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 10.62 | 10.62 | 10.62 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 40 0.032867612 0.032867612 0.041673148 0.00072685327
10100 40 0.0076052221 0.0076052221 0.0076988542 0.00016814267
10200 40 0.0032668297 0.0032668297 0.0038743591 0.00054487661
10300 40 0.003316664 0.003316664 0.0040375473 7.3327605e-05
10400 40 0.0030064853 0.0030064853 0.0039975834 6.6469913e-05
10500 40 0.0030342866 0.0030342866 0.004203116 6.7084568e-05
10600 40 0.0030020199 0.0030020199 0.0043687727 6.6371188e-05
10700 40 0.0027999261 0.0027999261 0.003947504 0.00010754343
10800 40 0.0027031744 0.0027031744 0.0038359994 6.3984417e-05
10900 40 0.0027373574 0.0027373574 0.0039800535 7.0481083e-05
11000 39 0.0029362062 0.0029362062 0.002978473 6.9069963e-05
11100 39 0.0037840086 0.0037840086 0.0036639284 8.1514925e-05
11200 39 0.0045558771 0.0045558771 0.0041248127 9.8142478e-05
11300 39 0.0017981927 0.0017981927 0.0025146205 0.00031779839
11400 39 0.0016431107 0.0016431107 0.0024756094 4.4978596e-05
11500 39 0.0017504997 0.0017504997 0.0026753481 4.7200446e-05
11600 39 0.0020008726 0.0020008726 0.0029721732 5.2678933e-05
11700 39 0.0014870059 0.0014870059 0.0026506345 4.152681e-05
11800 39 0.0016074438 0.0016074438 0.002888528 -3.0912602e-05
11900 39 0.0017722588 0.0017722588 0.0031282687 4.1702851e-05
12000 39 0.0027430864 0.0027430864 0.0039301824 6.8654618e-05
12100 39 0.0031883241 0.0031883241 0.0041806787 7.8260758e-05
12200 38 0.0013269284 0.0013269284 0.0032322246 3.6635105e-05
12300 38 0.0016569097 0.0016569097 0.0036433609 0.00041718571
12400 38 0.00094008147 0.00094008147 0.0033452514 3.7496272e-05
12500 37 0.00095698445 0.00095698445 0.0023073129 3.715434e-05
12600 37 0.00098175769 0.00098175769 0.0025359749 3.7459507e-05
12700 37 0.0010099586 0.0010099586 0.0027775856 3.7772603e-05
12800 37 0.0010435337 0.0010435337 0.0030319623 3.811889e-05
12900 37 0.0011032701 0.0011032701 0.0032983521 2.3599435e-05
13000 37 0.0012957624 0.0012957624 0.003683326 4.2333566e-05
13100 37 0.0010512853 0.0010512853 0.0037476793 3.6717097e-05
13200 37 0.0010868252 0.0010868252 0.0040740128 0.00018164133
13300 37 0.0011180293 0.0011180293 0.0044202397 3.643358e-05
13400 37 0.0011178538 0.0011178538 0.0047516047 3.5746318e-05
13500 37 0.0007777481 0.0007777481 0.0037726389 5.3444345e-05
13600 36 0.0007999147 0.0007999147 0.003070242 3.248155e-05
13700 36 0.0008389068 0.0008389068 0.003346172 2.9660005e-05
13800 36 0.00086583182 0.00086583182 0.0036410575 3.0212331e-05
13900 36 0.00058473604 0.00058473604 0.0024273755 5.7952251e-05
14000 36 0.00055727478 0.00055727478 0.0019113805 0.00011095694
14100 35 0.00044295291 0.00044295291 0.00066952242 0.00050643096
14200 35 0.00041514525 0.00041514525 0.00045222556 9.4438091e-05
14300 35 0.00042269774 0.00042269774 0.00047195914 4.5343892e-05
14400 35 0.00042495865 0.00042495865 0.00049753292 4.5106479e-05
14500 35 0.00040895208 0.00040895208 0.00051927404 4.6530808e-05
14600 35 0.00039129621 0.00039129621 0.00054194363 0.00019698404
14700 35 0.00039266334 0.00039266334 0.00058307961 4.7472072e-05
14800 35 0.00040570773 0.00040570773 0.00065710296 4.7982077e-05
14900 35 0.00040991932 0.00040991932 0.0007334058 4.8236973e-05
15000 35 0.00041469341 0.00041469341 0.00081836212 4.8450505e-05
Loop time of 9.86119 on 1 procs for 5000 steps with 35 atoms
Performance: 219040.411 tau/day, 507.038 timesteps/s, 17.746 katom-step/s
99.6% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.046258 | 0.046258 | 0.046258 | 0.0 | 0.47
Neigh | 0.0050304 | 0.0050304 | 0.0050304 | 0.0 | 0.05
Comm | 0.012996 | 0.012996 | 0.012996 | 0.0 | 0.13
Output | 8.9213 | 8.9213 | 8.9213 | 0.0 | 90.47
Modify | 0.82839 | 0.82839 | 0.82839 | 0.0 | 8.40
Other | | 0.04723 | | | 0.48
Nlocal: 35 ave 35 max 35 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: 26 ave 26 max 26 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 26
Ave neighs/atom = 0.74285714
Neighbor list builds = 37
Dangerous builds = 0
Total wall time: 0:00:35

View File

@ -0,0 +1,316 @@
LAMMPS (27 Jun 2024)
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551)
# pouring spheres into box made of triangles
units lj
atom_style sphere
#atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -7 7 -7 7 0 9 units box
create_box 2 box # simply for dump_modify to color lines = green
Created orthogonal box = (-7 -7 0) to (7 7 9)
2 by 2 by 1 MPI processor grid
pair_style gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 20 all surface/global surf.tri.stl hooke 4000.0 NULL 100.0 NULL 0.5 1
Reading STL object STL version of surf.tri from text file surf.tri.stl
#fix 20 all surface/global surf.tri.stl hooke/history # 4000.0 NULL 100.0 NULL 0.5 1
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 0 -1
#fix 4 all viscous 0.2
region slab block -2 2 -2 2 7 9 units box
fix ins all pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 24 every 400 steps, 100 by step 1601
fix wall all wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 zcylinder 7.0
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 fix 20 type 2 0.5
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 1.3
binsize = 0.65, bins = 22 22 14
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/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.786 | 5.786 | 5.786 Mbytes
Step Atoms Temp c_1 c_2 Press
0 0 0 0 0 0
100 24 0.43156905 0.43156905 0.21119336 0.005627034
200 24 0.73291569 0.73291569 0.35866087 0.009556157
300 24 1.125323 1.125323 0.55068998 0.014672579
400 24 1.608791 1.608791 0.78728068 0.020976299
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
500 44 1.0393538 1.0393538 0.51608705 0.025335722
600 44 0.91758637 0.91758637 0.46172806 0.022367468
700 44 0.94006427 0.94006427 0.48254195 0.035377091
800 44 0.79393033 0.79393033 0.42561821 0.019944664
900 68 0.72089876 0.72089876 0.37868178 0.027381075
1000 68 0.63399342 0.63399342 0.33666552 0.052128303
1100 68 0.63724402 0.63724402 0.3383098 0.024876228
1200 68 0.61528554 0.61528554 0.33134629 0.030248652
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1300 88 0.45289831 0.45289831 0.24603739 0.032314185
1400 88 0.51028258 0.51028258 0.27462447 0.027721293
1500 88 0.52728648 0.52728648 0.28580371 0.030249652
1600 88 0.46373765 0.46373765 0.25474076 0.023383063
1700 100 0.32521568 0.32521568 0.18562847 0.044525945
1800 100 0.30850324 0.30850324 0.17882757 0.031769348
1900 100 0.25365045 0.25365045 0.15147723 0.020592523
2000 100 0.21618068 0.21618068 0.12797228 0.016906764
2100 100 0.24765668 0.24765668 0.13878326 0.014412505
2200 100 0.23385636 0.23385636 0.13254109 0.028043759
2300 99 0.11484144 0.11484144 0.07191588 0.013339992
2400 99 0.053908946 0.053908946 0.042287303 0.0035096828
2500 99 0.042127084 0.042127084 0.032805289 0.0034968494
2600 98 0.03620012 0.03620012 0.027643861 0.0031757884
2700 98 0.030497382 0.030497382 0.02276464 0.0062433907
2800 98 0.025840421 0.025840421 0.019571636 0.0017100476
2900 98 0.020282706 0.020282706 0.01512433 0.0039918866
3000 97 0.011469683 0.011469683 0.0095129501 0.00083264863
3100 97 0.011061428 0.011061428 0.0089852941 0.0011413524
3200 97 0.0085729018 0.0085729018 0.0065027781 0.0015793608
3300 97 0.0048844117 0.0048844117 0.0043831348 0.00054654825
3400 97 0.0031718513 0.0031718513 0.002919676 0.00041030186
3500 97 0.0026149541 0.0026149541 0.0024273609 0.00064176505
3600 96 0.0022374762 0.0022374762 0.0021346878 0.0009000487
3700 96 0.002015425 0.002015425 0.0019283015 0.00010102156
3800 96 0.0016640247 0.0016640247 0.0016542081 0.00058063795
3900 96 0.0014953491 0.0014953491 0.0015554014 0.00043366101
4000 96 0.0014314643 0.0014314643 0.001549993 0.00016144849
4100 96 0.0012797618 0.0012797618 0.001462077 0.0001478758
4200 96 0.001301217 0.001301217 0.0015150334 0.00032745678
4300 96 0.0011719389 0.0011719389 0.0013301205 0.00025779628
4400 96 0.00092491728 0.00092491728 0.0010319633 0.00030044217
4500 96 0.00087292243 0.00087292243 0.001019192 0.00025577747
4600 96 0.00075144495 0.00075144495 0.00091990059 0.00018817234
4700 96 0.00074883306 0.00074883306 0.00093930259 0.0005619372
4800 96 0.00065460832 0.00065460832 0.00089919023 0.00024621022
4900 96 0.0006499224 0.0006499224 0.00092528447 0.00026790153
5000 96 0.00061981936 0.00061981936 0.00078233948 0.00061552671
Loop time of 15.3967 on 4 procs for 5000 steps with 96 atoms
Performance: 140290.241 tau/day, 324.746 timesteps/s, 31.176 katom-step/s
99.7% 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.065219 | 0.068376 | 0.070577 | 0.8 | 0.44
Neigh | 0.036209 | 0.037389 | 0.038344 | 0.4 | 0.24
Comm | 0.94586 | 0.95361 | 0.96234 | 0.6 | 6.19
Output | 11.31 | 11.99 | 13.148 | 21.9 | 77.87
Modify | 0.7825 | 0.88835 | 0.95807 | 7.7 | 5.77
Other | | 1.459 | | | 9.48
Nlocal: 24 ave 25 max 22 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Nghost: 9.25 ave 12 max 8 min
Histogram: 2 0 1 0 0 0 0 0 0 1
Neighs: 36.25 ave 40 max 34 min
Histogram: 2 0 0 0 0 1 0 0 0 1
Total # of neighbors = 145
Ave neighs/atom = 1.5104167
Neighbor list builds = 319
Dangerous builds = 0
fix_modify 20 move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 10.6 | 10.6 | 10.6 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 96 0.00061981936 0.00061981936 0.00078233948 0.00061520755
5100 96 0.028314129 0.028314129 0.028887614 0.0015596074
5200 93 0.038280284 0.038280284 0.045433502 0.003972808
5300 92 0.044602602 0.044602602 0.050026258 0.0066549492
5400 88 0.043591861 0.043591861 0.050587055 0.0021499387
5500 88 0.043643437 0.043643437 0.051930078 0.0045848219
5600 86 0.044398335 0.044398335 0.050588091 0.0021861193
5700 86 0.048834817 0.048834817 0.052122986 0.0024353201
5800 82 0.048657023 0.048657023 0.050882437 0.0022637024
5900 79 0.047422209 0.047422209 0.050391753 0.0020519953
6000 78 0.047430795 0.047430795 0.050706223 0.0020757537
6100 76 0.047766342 0.047766342 0.050881831 0.0020365653
6200 74 0.048553742 0.048553742 0.049322747 0.0040124193
6300 73 0.050329565 0.050329565 0.050219503 0.0021932369
6400 71 0.049899479 0.049899479 0.047423384 0.0019659021
6500 71 0.051053882 0.051053882 0.048643589 0.0020292656
6600 71 0.051795185 0.051795185 0.04927532 0.0023715227
6700 69 0.052264693 0.052264693 0.048643292 0.0020434717
6800 69 0.052349883 0.052349883 0.049265236 0.0020181077
6900 68 0.051428051 0.051428051 0.048628957 0.0019545319
7000 67 0.050476407 0.050476407 0.048064128 0.0018923271
7100 67 0.050313513 0.050313513 0.048219142 0.001884633
7200 67 0.050521342 0.050521342 0.047963518 0.0021063865
7300 66 0.049017518 0.049017518 0.047288558 0.0018972353
7400 65 0.048690842 0.048690842 0.048162015 0.0017669135
7500 64 0.048934259 0.048934259 0.047906689 0.0019361894
7600 62 0.048293135 0.048293135 0.047386457 0.0023701331
7700 61 0.050821617 0.050821617 0.048266806 0.0018564185
7800 60 0.052493396 0.052493396 0.049727548 0.0017921461
7900 59 0.053162734 0.053162734 0.050327775 0.0017510558
8000 57 0.051249525 0.051249525 0.048540418 0.0028770132
8100 57 0.05261519 0.05261519 0.049923888 0.0016707326
8200 55 0.051727022 0.051727022 0.047928098 0.0014557055
8300 55 0.050489803 0.050489803 0.048163815 0.0033275674
8400 54 0.049599363 0.049599363 0.047431898 0.0015088762
8500 54 0.052050538 0.052050538 0.048908289 0.0015666966
8600 52 0.050340482 0.050340482 0.046440415 0.0014555948
8700 52 0.052028316 0.052028316 0.048176195 0.0015106353
8800 50 0.0499901 0.0499901 0.045788044 0.0025087962
8900 50 0.051750338 0.051750338 0.047753896 0.0014377545
9000 50 0.051966831 0.051966831 0.048823952 0.0014437681
9100 49 0.051660945 0.051660945 0.048110255 0.0014336784
9200 49 0.051126513 0.051126513 0.048962201 0.0014162724
9300 48 0.049057888 0.049057888 0.0492291 0.0013197818
9400 48 0.045030047 0.045030047 0.047529619 0.0013481748
9500 48 0.045513589 0.045513589 0.048536638 0.0012236674
9600 48 0.043665627 0.043665627 0.048296609 0.0011806622
9700 48 0.044106239 0.044106239 0.049540196 0.0011963288
9800 46 0.042160287 0.042160287 0.048481885 0.0011107764
9900 46 0.041772009 0.041772009 0.049483596 0.0011344326
10000 44 0.040236277 0.040236277 0.045816406 0.00099962018
Loop time of 14.3219 on 4 procs for 5000 steps with 44 atoms
Performance: 150817.741 tau/day, 349.115 timesteps/s, 15.361 katom-step/s
99.8% 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.045346 | 0.049249 | 0.05101 | 1.0 | 0.34
Neigh | 0.027653 | 0.028827 | 0.029969 | 0.5 | 0.20
Comm | 0.68027 | 0.70592 | 0.72986 | 2.2 | 4.93
Output | 10.707 | 11.401 | 12.544 | 22.1 | 79.61
Modify | 0.60999 | 0.65113 | 0.70846 | 4.7 | 4.55
Other | | 1.485 | | | 10.37
Nlocal: 11 ave 20 max 4 min
Histogram: 1 0 0 2 0 0 0 0 0 1
Nghost: 4 ave 6 max 2 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Neighs: 9.75 ave 23 max 2 min
Histogram: 1 1 1 0 0 0 0 0 0 1
Total # of neighbors = 39
Ave neighs/atom = 0.88636364
Neighbor list builds = 333
Dangerous builds = 0
fix_modify 20 move none
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 10.6 | 10.6 | 10.6 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 44 0.040236277 0.040236277 0.045816406 0.00099979881
10100 44 0.010977052 0.010977052 0.010149182 0.00026758119
10200 44 0.004605352 0.004605352 0.0053045614 0.00011226198
10300 44 0.0053942032 0.0053942032 0.0056431085 0.00013149135
10400 44 0.0036859511 0.0036859511 0.0041662707 9.2662763e-05
10500 44 0.0039184347 0.0039184347 0.0043067155 0.00049979829
10600 44 0.0044427233 0.0044427233 0.0045879783 0.00011077625
10700 44 0.0029607594 0.0029607594 0.0034776101 0.0006068726
10800 44 0.0026942916 0.0026942916 0.0034401136 6.706354e-05
10900 44 0.0026203469 0.0026203469 0.0034492724 6.9607138e-05
11000 44 0.0019864947 0.0019864947 0.0031427116 8.3134017e-06
11100 44 0.0019240976 0.0019240976 0.0032808084 2.0347364e-05
11200 44 0.0018635948 0.0018635948 0.0034030363 5.7875998e-05
11300 44 0.0017686207 0.0017686207 0.0029556669 9.3363224e-05
11400 44 0.0014303652 0.0014303652 0.002751691 5.9528496e-05
11500 44 0.001399414 0.001399414 0.0027540021 5.8871141e-05
11600 44 0.0011285459 0.0011285459 0.0017454672 0.00063103388
11700 44 0.0010672518 0.0010672518 0.0014970714 0.00012978783
11800 44 0.0010754046 0.0010754046 0.0015525936 0.00011139988
11900 44 0.00093155287 0.00093155287 0.0011682302 0.00012515367
12000 44 0.00084853622 0.00084853622 0.0010681768 0.00010639935
12100 44 0.00069411148 0.00069411148 0.00077780972 7.3742549e-05
12200 44 0.0006859885 0.0006859885 0.0007696296 9.3309816e-05
12300 44 0.00064103944 0.00064103944 0.00072985388 0.0001474211
12400 44 0.00063849822 0.00063849822 0.00072417306 9.4166534e-05
12500 44 0.0006361049 0.0006361049 0.00068646857 9.5282342e-05
12600 44 0.00063622199 0.00063622199 0.00068538208 9.5058162e-05
12700 44 0.00062165913 0.00062165913 0.00066876644 9.412044e-05
12800 44 0.00058480739 0.00058480739 0.00063172101 0.00018653887
12900 44 0.00054058957 0.00054058957 0.00059549487 9.384774e-05
13000 44 0.00051904254 0.00051904254 0.00057073513 9.4434337e-05
13100 44 0.00053410816 0.00053410816 0.00057766113 9.61856e-05
13200 44 0.00050156547 0.00050156547 0.00055212122 9.7382505e-05
13300 44 0.00049740896 0.00049740896 0.00054826803 9.7690479e-05
13400 44 0.00049775099 0.00049775099 0.00054791017 9.7482658e-05
13500 44 0.00049205909 0.00049205909 0.00054071132 0.00010353798
13600 44 0.00049240333 0.00049240333 0.00054031425 9.7448102e-05
13700 44 0.00049274845 0.00049274845 0.00053984708 9.7497469e-05
13800 43 0.00050763917 0.00050763917 0.00055870605 8.5113661e-05
13900 43 0.00047304434 0.00047304434 0.00054545171 7.7477263e-05
14000 43 0.00047307851 0.00047307851 0.00056349029 0.00016615605
14100 43 0.00048268391 0.00048268391 0.00059292333 8.4939642e-05
14200 43 0.00049712412 0.00049712412 0.00064043909 8.522618e-05
14300 43 0.00051010248 0.00051010248 0.00069557642 8.5161341e-05
14400 43 0.0005010299 0.0005010299 0.00074528156 8.5292218e-05
14500 43 0.00050900735 0.00050900735 0.00081321917 8.5452422e-05
14600 43 0.00051293789 0.00051293789 0.00088464504 8.5523903e-05
14700 43 0.00050022161 0.00050022161 0.00094898195 8.520624e-05
14800 43 0.00049641051 0.00049641051 0.0010219267 8.5106195e-05
14900 43 0.00048906772 0.00048906772 0.0010926634 8.4926556e-05
15000 43 0.00048008443 0.00048008443 0.0011603655 8.470585e-05
Loop time of 14.5369 on 4 procs for 5000 steps with 43 atoms
Performance: 148587.184 tau/day, 343.952 timesteps/s, 14.790 katom-step/s
99.7% 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.020082 | 0.038623 | 0.055378 | 6.7 | 0.27
Neigh | 0.00203 | 0.0025526 | 0.0032587 | 0.9 | 0.02
Comm | 0.46528 | 0.54133 | 0.62211 | 7.5 | 3.72
Output | 10.574 | 11.671 | 12.961 | 26.2 | 80.28
Modify | 0.20883 | 0.41514 | 0.69875 | 27.7 | 2.86
Other | | 1.869 | | | 12.85
Nlocal: 10.75 ave 20 max 5 min
Histogram: 1 0 2 0 0 0 0 0 0 1
Nghost: 4 ave 7 max 2 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Neighs: 10 ave 22 max 2 min
Histogram: 1 0 1 1 0 0 0 0 0 1
Total # of neighbors = 40
Ave neighs/atom = 0.93023256
Neighbor list builds = 32
Dangerous builds = 0
Total wall time: 0:00:46

View File

@ -0,0 +1,345 @@
LAMMPS (27 Jun 2024)
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -7 7 -7 7 0 9 units box
create_box 2 box
Created orthogonal box = (-7 -7 0) to (7 7 9)
1 by 1 by 1 MPI processor grid
molecule tris surf.tri
Read molecule template tris:
LAMMPS data file for tri plane
1 molecules
0 fragments
0 atoms with max type 0
0 bonds with max type 0
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
4 triangles
fix 20 all surface/local tris
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 tri/gran/hooke 4000.0 NULL 100.0 50.0 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group tri type 2
4 atoms in group tri
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 7 9 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 24 every 400 steps, 100 by step 1601
fix wall sphere wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 zcylinder 7.0
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 7.1245553
ghost atom cutoff = 7.1245553
binsize = 3.5622777, bins = 4 4 3
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke/history, perpetual, skip trim from (3)
attributes: half, newton on, size, history, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair tri/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size, history
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 13.33 | 13.33 | 13.33 Mbytes
Step Atoms Temp c_1 c_2 Press
0 4 0 0 0 0
100 28 0.36763289 0.43156905 0.21119336 0.005627034
200 28 0.62433559 0.73291569 0.35866087 0.009556157
300 28 0.95860848 1.125323 0.55068998 0.014672579
400 28 1.3704516 1.608791 0.78728068 0.020976299
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
500 48 0.95089817 1.0393538 0.51608705 0.025335722
600 48 0.83949391 0.91758637 0.46172806 0.022515854
700 48 0.8600588 0.94006427 0.48254195 0.046349308
800 48 0.72636179 0.79393033 0.42561821 0.02213745
900 72 0.68028474 0.72089876 0.37868178 0.028124504
1000 72 0.59827548 0.63399342 0.33666552 0.057932603
1100 72 0.60134295 0.63724402 0.3383098 0.025565346
1200 72 0.58062156 0.61528554 0.33134629 0.031222266
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1300 92 0.43299069 0.45289831 0.24603739 0.033378543
1400 92 0.48785257 0.51028258 0.27462447 0.029606478
1500 92 0.50410905 0.52728648 0.28580371 0.031570548
1600 92 0.44335358 0.46373765 0.25474076 0.025856762
1700 104 0.31258594 0.32521568 0.18562847 0.056917788
1800 104 0.29652255 0.30850326 0.17882758 0.036853847
1900 104 0.2438002 0.25365071 0.15147734 0.027067985
2000 104 0.20778515 0.21618051 0.12797216 0.024491014
2100 104 0.23803938 0.24765713 0.13878356 0.018557519
2200 104 0.22477903 0.23386101 0.13254455 0.034204374
2300 103 0.11028018 0.11478141 0.071880248 0.023107934
2400 103 0.051939416 0.054059392 0.04238437 0.010076125
2500 103 0.04046389 0.042115477 0.03276739 0.0092675482
2600 102 0.034504146 0.035926998 0.027152703 0.012043982
2700 102 0.029660748 0.030883871 0.023043461 0.0098675596
2800 102 0.023675472 0.02465178 0.018814934 0.0079223517
2900 102 0.01955555 0.020361964 0.015095009 0.010178019
3000 101 0.010976926 0.011434298 0.0094599476 0.0062989926
3100 101 0.010404873 0.01083841 0.0088413578 0.006904568
3200 101 0.0084790802 0.0088323752 0.0067474787 0.0078181584
3300 101 0.0049651339 0.0051720145 0.0045655092 0.0077852556
3400 101 0.0028770081 0.0029968834 0.0028180577 0.0065531061
3500 101 0.0026603851 0.0027712345 0.0026301508 0.0066265532
3600 100 0.0022879435 0.002384278 0.0022868891 0.005946377
3700 100 0.0020797371 0.002167305 0.0021366338 0.0060275426
3800 100 0.0018223254 0.0018990549 0.0018542925 0.0058665012
3900 100 0.0016056933 0.0016733014 0.0017380009 0.0065755667
4000 100 0.0012764017 0.001330145 0.0014831053 0.0057002441
4100 100 0.0011732772 0.0012226783 0.0014520833 0.0058997102
4200 100 0.0011509224 0.0011993823 0.0014499925 0.005891705
4300 100 0.00093450709 0.00097385475 0.0011305405 0.0060755638
4400 100 0.00073710728 0.00076814338 0.00093491029 0.005994252
4500 100 0.00066950467 0.00069769434 0.00081329183 0.0060209889
4600 100 0.00067057619 0.00069881097 0.00081870364 0.0066002598
4700 100 0.00061522957 0.00064113397 0.0007867969 0.0061000762
4800 100 0.00057127674 0.0005953305 0.00078435449 0.006075934
4900 100 0.00048538112 0.00050581822 0.00067082262 0.0061360807
5000 100 0.00049531306 0.00051616835 0.00070658811 0.0061425578
Loop time of 0.232999 on 1 procs for 5000 steps with 100 atoms
Performance: 9270416.385 tau/day, 21459.297 timesteps/s, 2.146 Matom-step/s
96.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 | 0.025378 | 0.025378 | 0.025378 | 0.0 | 10.89
Neigh | 0.0083862 | 0.0083862 | 0.0083862 | 0.0 | 3.60
Comm | 0.00040258 | 0.00040258 | 0.00040258 | 0.0 | 0.17
Output | 0.18672 | 0.18672 | 0.18672 | 0.0 | 80.14
Modify | 0.011026 | 0.011026 | 0.011026 | 0.0 | 4.73
Other | | 0.001084 | | | 0.47
Nlocal: 100 ave 100 max 100 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 320
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 14.46 | 14.46 | 14.46 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 100 0.00049531306 0.00051616835 0.00070658811 0.0061401156
5100 100 0.51797813 0.029144789 0.028561434 0.061796302
5200 99 0.53766867 0.044472871 0.048736594 0.052595853
5300 98 0.54821886 0.050173651 0.052878851 0.060444985
5400 95 0.56483365 0.050925371 0.053737351 0.057837587
5500 95 0.56809688 0.054333638 0.055612067 0.043728998
5600 92 0.58741732 0.056826396 0.056374971 0.039138605
5700 92 0.59268005 0.062331088 0.059265481 0.035680319
5800 88 0.62103092 0.066489286 0.060222709 0.035282967
5900 88 0.62345455 0.069029715 0.0628021 0.035017077
6000 85 0.64509294 0.070959095 0.06202824 0.035049999
6100 84 0.65441054 0.07348095 0.062757785 0.035609875
6200 81 0.67575597 0.07301839 0.059946946 0.034382094
6300 80 0.68384452 0.073501833 0.059856228 0.03514656
6400 78 0.7013697 0.075265575 0.059538181 0.034094416
6500 78 0.70386686 0.077899568 0.06122273 0.034195388
6600 77 0.7136876 0.079571915 0.062523938 0.034262144
6700 75 0.73326389 0.082149266 0.061775684 0.036880856
6800 74 0.74125199 0.081163997 0.060577178 0.034065559
6900 73 0.74794382 0.078542284 0.058822059 0.034265565
7000 72 0.75869051 0.0799395 0.060173988 0.03372964
7100 71 0.76478565 0.076119935 0.058622864 0.033529799
7200 70 0.77534407 0.076733249 0.059389913 0.033359627
7300 69 0.78737597 0.078601354 0.060601057 0.03387736
7400 68 0.79334599 0.073700033 0.058720823 0.033449993
7500 65 0.82643666 0.07301444 0.057725758 0.033058102
7600 64 0.83647393 0.070962335 0.057196688 0.034325146
7700 64 0.83136046 0.065502199 0.054505995 0.033284476
7800 63 0.84413416 0.065952385 0.055713645 0.032527019
7900 63 0.84474799 0.066608547 0.057188344 0.032380197
8000 63 0.84601678 0.067964843 0.059162055 0.035623321
8100 62 0.85442995 0.063318376 0.056917075 0.033794671
8200 60 0.87886485 0.060762667 0.053902381 0.031778389
8300 60 0.88023598 0.062233516 0.05567968 0.032190408
8400 58 0.91091634 0.064361351 0.056842653 0.031999455
8500 58 0.91076207 0.064195441 0.056598399 0.031981767
8600 57 0.92732215 0.065749251 0.058085176 0.031964139
8700 56 0.94060812 0.063183664 0.057132444 0.031795486
8800 54 0.97102642 0.060271847 0.054931651 0.031534156
8900 53 0.98835079 0.06006587 0.054799498 0.031664682
9000 52 1.0052014 0.058599798 0.0548155 0.031347041
9100 51 1.0232141 0.057600571 0.054358272 0.031293028
9200 51 1.0234203 0.057824665 0.055491376 0.031272133
9300 50 1.0422387 0.056858101 0.055336743 0.031184651
9400 49 1.0607968 0.054708372 0.054237694 0.031018741
9500 49 1.0598447 0.053669652 0.05412067 0.030987958
9600 47 1.0997672 0.049481209 0.049207618 0.030830628
9700 47 1.1009351 0.050760379 0.05160771 0.030681632
9800 46 1.1225281 0.048846024 0.052582727 0.030659518
9900 46 1.1235541 0.049972117 0.054322137 0.030823675
10000 43 1.1964897 0.045828636 0.049253726 0.03048984
Loop time of 0.211297 on 1 procs for 5000 steps with 43 atoms
Performance: 10222583.456 tau/day, 23663.388 timesteps/s, 1.018 Matom-step/s
96.4% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.021317 | 0.021317 | 0.021317 | 0.0 | 10.09
Neigh | 0.0047466 | 0.0047466 | 0.0047466 | 0.0 | 2.25
Comm | 0.00037942 | 0.00037942 | 0.00037942 | 0.0 | 0.18
Output | 0.1732 | 0.1732 | 0.1732 | 0.0 | 81.97
Modify | 0.010709 | 0.010709 | 0.010709 | 0.0 | 5.07
Other | | 0.0009465 | | | 0.45
Nlocal: 43 ave 43 max 43 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 208
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
39 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 13.58 | 13.58 | 13.58 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 43 0.041464004 0.045828636 0.049253726 0.002992911
10100 43 0.01536718 0.016984778 0.018346335 0.0026107883
10200 43 0.013276935 0.014674507 0.018130285 0.0032805934
10300 43 0.012643213 0.013974077 0.019027228 0.0020933246
10400 43 0.012779466 0.014124673 0.019370488 0.0026402198
10500 43 0.012399341 0.013704535 0.019539407 0.0022259887
10600 43 0.012201003 0.013485319 0.018098349 0.0024634333
10700 43 0.012655256 0.013987388 0.019496323 0.002221395
10800 43 0.012579162 0.013903285 0.019865363 0.0032621089
10900 43 0.012810408 0.014158872 0.020704867 0.0024564532
11000 43 0.013492114 0.014912337 0.020426966 0.0021076994
11100 43 0.012081727 0.013353488 0.019941305 0.0027605259
11200 43 0.011157364 0.012331823 0.019789593 0.0022805894
11300 43 0.011311656 0.012502357 0.020672585 0.0045512862
11400 43 0.010835381 0.011975948 0.019984802 0.002500184
11500 43 0.010883617 0.012029261 0.020161482 0.0024288947
11600 43 0.010601773 0.011717749 0.02043478 0.002518671
11700 43 0.010652376 0.011773679 0.020877142 0.0047191948
11800 43 0.010586149 0.01170048 0.021045412 0.0029958449
11900 42 0.010310675 0.011425342 0.020890641 0.0041299678
12000 42 0.0096193697 0.010659302 0.01734171 0.0055638559
12100 42 0.0090012199 0.0099743248 0.015925878 0.0062568296
12200 42 0.0092694202 0.01027152 0.016223404 0.0031650129
12300 41 0.009275497 0.010306108 0.016491126 0.0051047425
12400 40 0.010347045 0.011529564 0.01780755 0.0020187837
12500 40 0.010872959 0.012115582 0.018095787 0.0017574207
12600 39 0.0094147621 0.010522381 0.018210318 0.0017051826
12700 39 0.0086581705 0.0096767788 0.018566587 0.0018394808
12800 39 0.0082190204 0.009185964 0.018898421 0.003442822
12900 39 0.0078768039 0.0088034867 0.019645193 0.0024525382
13000 39 0.0066934943 0.0074809642 0.016840831 0.0042565543
13100 38 0.0063530854 0.0071231563 0.015836167 0.0033482203
13200 38 0.0067586397 0.0075778688 0.016370483 0.0027718974
13300 37 0.0062831006 0.0070684882 0.016770756 0.0028166814
13400 36 0.005492839 0.0062015924 0.01655756 0.0041562248
13500 36 0.0052681628 0.0059479258 0.011983298 0.0035740396
13600 36 0.0053786817 0.0060727051 0.011670978 0.004098456
13700 36 0.0055059193 0.0062163605 0.01170773 0.0023640523
13800 35 0.0055296574 0.0062669451 0.0119576 0.0031972222
13900 34 0.0052354859 0.0059576219 0.012092776 0.0016695231
14000 33 0.0050682191 0.0057922504 0.01250025 0.0015032079
14100 33 0.0051315263 0.0058646015 0.01289725 0.0014073536
14200 33 0.005254278 0.0060048892 0.012894635 0.0014096146
14300 33 0.0057832225 0.0066093971 0.013867573 0.001419376
14400 33 0.0058060441 0.006635479 0.014475826 0.0025855623
14500 33 0.0058141643 0.0066447593 0.015171174 0.0024244841
14600 32 0.0055995745 0.0064291411 0.016022968 0.0014230432
14700 32 0.0055988198 0.0064282746 0.016907696 0.0015101902
14800 32 0.0057678876 0.0066223895 0.017482798 0.0016956915
14900 32 0.0057096482 0.006555522 0.018478553 0.0019276435
15000 32 0.0057085079 0.0065542128 0.017574244 0.0021196367
Loop time of 0.172151 on 1 procs for 5000 steps with 32 atoms
Performance: 12547152.387 tau/day, 29044.334 timesteps/s, 929.419 katom-step/s
90.6% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.010881 | 0.010881 | 0.010881 | 0.0 | 6.32
Neigh | 0.00081386 | 0.00081386 | 0.00081386 | 0.0 | 0.47
Comm | 0.00028458 | 0.00028458 | 0.00028458 | 0.0 | 0.17
Output | 0.15425 | 0.15425 | 0.15425 | 0.0 | 89.60
Modify | 0.0052213 | 0.0052213 | 0.0052213 | 0.0 | 3.03
Other | | 0.0006992 | | | 0.41
Nlocal: 32 ave 32 max 32 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 73
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,346 @@
LAMMPS (27 Jun 2024)
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551)
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -7 7 -7 7 0 9 units box
create_box 2 box
Created orthogonal box = (-7 -7 0) to (7 7 9)
2 by 2 by 1 MPI processor grid
molecule tris surf.tri
Read molecule template tris:
LAMMPS data file for tri plane
1 molecules
0 fragments
0 atoms with max type 0
0 bonds with max type 0
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
4 triangles
fix 20 all surface/local tris
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 tri/gran/hooke 4000.0 NULL 100.0 50.0 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group tri type 2
4 atoms in group tri
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 7 9 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 24 every 400 steps, 100 by step 1601
fix wall sphere wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 zcylinder 7.0
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 7.1245553
ghost atom cutoff = 7.1245553
binsize = 3.5622777, bins = 4 4 3
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke/history, perpetual, skip trim from (3)
attributes: half, newton on, size, history, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair tri/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size, history
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 12.47 | 12.69 | 13.35 Mbytes
Step Atoms Temp c_1 c_2 Press
0 4 0 0 0 0
100 28 0.36763289 0.43156905 0.21119336 0.005627034
200 28 0.62433559 0.73291569 0.35866087 0.009556157
300 28 0.95860848 1.125323 0.55068998 0.014672579
400 28 1.3704516 1.608791 0.78728068 0.020976299
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
500 48 0.95089817 1.0393538 0.51608705 0.025335722
600 48 0.83949391 0.91758637 0.46172806 0.022515854
700 48 0.8600588 0.94006427 0.48254195 0.046349308
800 48 0.72636179 0.79393033 0.42561821 0.02213745
900 72 0.68028474 0.72089876 0.37868178 0.028124504
1000 72 0.59827548 0.63399342 0.33666552 0.057932603
1100 72 0.60134295 0.63724402 0.3383098 0.025565346
1200 72 0.58062156 0.61528554 0.33134629 0.031222266
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1300 92 0.43299069 0.45289831 0.24603739 0.033378543
1400 92 0.48785257 0.51028258 0.27462447 0.029606478
1500 92 0.50410905 0.52728648 0.28580371 0.031570548
1600 92 0.44335358 0.46373765 0.25474076 0.025856762
1700 104 0.31258594 0.32521568 0.18562847 0.056917788
1800 104 0.29652255 0.30850326 0.17882758 0.036853847
1900 104 0.2438002 0.25365071 0.15147734 0.027067985
2000 104 0.20778515 0.21618051 0.12797216 0.024491012
2100 104 0.23803938 0.24765713 0.13878356 0.018557518
2200 104 0.22477903 0.23386101 0.13254455 0.034204387
2300 103 0.11028018 0.11478141 0.071880246 0.023108123
2400 103 0.051939196 0.054059163 0.042383035 0.0100614
2500 103 0.040442247 0.042092951 0.032749381 0.01046781
2600 102 0.034504426 0.035927289 0.027149368 0.012010718
2700 102 0.029679791 0.0309037 0.023036586 0.010355503
2800 102 0.023702803 0.024680238 0.018826345 0.007910395
2900 102 0.019561868 0.020368542 0.015101556 0.010178779
3000 101 0.010990893 0.011448847 0.0094754992 0.0063202976
3100 101 0.010529472 0.0109682 0.0089009784 0.007388411
3200 101 0.0084987177 0.0088528309 0.0067377904 0.0075443377
3300 101 0.004926689 0.0051319677 0.0045207553 0.0078470774
3400 101 0.0028833468 0.0030034862 0.0028132775 0.007922942
3500 101 0.0026928316 0.0028050329 0.0026351323 0.0069014836
3600 100 0.0022956296 0.0023922877 0.0022701552 0.0059851937
3700 100 0.0021025959 0.0021911262 0.0021280497 0.0060105187
3800 100 0.0018494532 0.0019273249 0.0018855471 0.0061456458
3900 100 0.0016137385 0.0016816854 0.0017223036 0.0066454899
4000 100 0.0013124128 0.0013676723 0.0014840612 0.0062470481
4100 100 0.0012105075 0.0012614763 0.0014645791 0.0057688838
4200 100 0.0011433138 0.0011914533 0.0014435934 0.0059579374
4300 100 0.00098204031 0.0010233894 0.0012522874 0.0059816181
4400 100 0.00076296239 0.00079508712 0.0009721438 0.0060246257
4500 100 0.00066335366 0.00069128434 0.00091049427 0.006214887
4600 100 0.00062039452 0.0006465164 0.00082139977 0.0060745906
4700 100 0.00062069669 0.00064683129 0.00083492397 0.0064522652
4800 100 0.00050639953 0.00052772161 0.00074517777 0.0062114309
4900 100 0.00048181752 0.00050210458 0.00072773699 0.0061746147
5000 100 0.00045281738 0.00047188337 0.00072834743 0.0067103321
Loop time of 0.313085 on 4 procs for 5000 steps with 100 atoms
Performance: 6899081.431 tau/day, 15970.096 timesteps/s, 1.597 Matom-step/s
91.8% 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.0085396 | 0.008862 | 0.0089969 | 0.2 | 2.83
Neigh | 0.0031142 | 0.0032591 | 0.0034769 | 0.3 | 1.04
Comm | 0.050942 | 0.051859 | 0.053093 | 0.3 | 16.56
Output | 0.1382 | 0.17924 | 0.23814 | 9.2 | 57.25
Modify | 0.0066482 | 0.011589 | 0.015218 | 3.2 | 3.70
Other | | 0.05827 | | | 18.61
Nlocal: 25 ave 27 max 23 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Nghost: 75 ave 77 max 73 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 319
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 14.59 | 14.59 | 14.59 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 100 0.00045281738 0.00047188337 0.00072834743 0.0066020848
5100 100 0.51860744 0.029800601 0.029304106 0.051905706
5200 98 0.53862917 0.040171507 0.047791716 0.050757979
5300 96 0.55112647 0.042263021 0.050195999 0.04601151
5400 93 0.56728592 0.04180938 0.050815028 0.037450075
5500 93 0.56916149 0.043770195 0.053081459 0.03605744
5600 91 0.58284551 0.045872284 0.05148537 0.033849288
5700 90 0.59267876 0.049850941 0.05375731 0.035005112
5800 86 0.61680698 0.04836437 0.052582503 0.033850751
5900 85 0.62574796 0.050646859 0.054238313 0.034443643
6000 82 0.64727841 0.050889245 0.052494508 0.033866734
6100 80 0.66364069 0.052220462 0.052387252 0.033487505
6200 78 0.67959846 0.052301399 0.050336285 0.033168524
6300 78 0.6815537 0.054363773 0.051168788 0.033400067
6400 76 0.69757373 0.053619014 0.048730817 0.033079249
6500 76 0.69960717 0.055767015 0.050448147 0.034190142
6600 75 0.71046572 0.05804834 0.050353278 0.033120738
6700 73 0.73004213 0.059587557 0.050356776 0.033203715
6800 72 0.73955244 0.059658858 0.049165521 0.033090601
6900 72 0.73984252 0.05996626 0.04893239 0.03538438
7000 72 0.73855905 0.05860616 0.048218057 0.032977368
7100 71 0.74996747 0.060403683 0.049738231 0.032942299
7200 71 0.74958163 0.059994462 0.04984795 0.034576756
7300 71 0.74958014 0.059992886 0.050595934 0.033560699
7400 69 0.77040618 0.060570951 0.05074398 0.032817955
7500 68 0.78190055 0.061527899 0.051576944 0.032829232
7600 67 0.79252938 0.061223545 0.051664985 0.033139179
7700 67 0.79257577 0.061272925 0.052020235 0.032808213
7800 67 0.79235064 0.06103327 0.052983733 0.032695163
7900 65 0.81235659 0.057995702 0.051797211 0.032371751
8000 65 0.81047528 0.05598897 0.051741533 0.032279411
8100 63 0.83302221 0.054074089 0.049909885 0.03200106
8200 62 0.84514204 0.053378682 0.050396436 0.032363269
8300 61 0.85723702 0.052198956 0.049950193 0.031878528
8400 60 0.86997524 0.051226536 0.050780002 0.031636653
8500 60 0.86954615 0.050766237 0.051169838 0.036559517
8600 58 0.89936909 0.051942618 0.050191748 0.037496085
8700 58 0.89897047 0.05151391 0.051173535 0.034671574
8800 56 0.93013263 0.051886568 0.052056826 0.031441238
8900 55 0.94599772 0.051455942 0.052973742 0.034207698
9000 53 0.97967117 0.050662944 0.052877672 0.035867184
9100 51 1.0142291 0.047834254 0.050461469 0.032649796
9200 50 1.033876 0.047752147 0.050703363 0.030822387
9300 49 1.0547579 0.04812047 0.050590947 0.030893945
9400 49 1.0558051 0.049262873 0.052436796 0.030873639
9500 48 1.0767984 0.048801088 0.051653283 0.030786358
9600 46 1.1213506 0.047553612 0.049643046 0.030642108
9700 46 1.1227493 0.049088768 0.051778335 0.030603423
9800 45 1.1452146 0.046959031 0.051250902 0.032613968
9900 45 1.1460384 0.047865295 0.05426893 0.036176412
10000 44 1.1711564 0.047401187 0.054529055 0.033327294
Loop time of 0.308457 on 4 procs for 5000 steps with 44 atoms
Performance: 7002603.045 tau/day, 16209.729 timesteps/s, 713.228 katom-step/s
92.2% 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.0076273 | 0.0083433 | 0.0095898 | 0.8 | 2.70
Neigh | 0.0016764 | 0.0017433 | 0.0018123 | 0.1 | 0.57
Comm | 0.041654 | 0.043513 | 0.044442 | 0.5 | 14.11
Output | 0.13868 | 0.18445 | 0.24355 | 9.3 | 59.80
Modify | 0.0052129 | 0.0055373 | 0.0062783 | 0.6 | 1.80
Other | | 0.06487 | | | 21.03
Nlocal: 11 ave 14 max 9 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Nghost: 33 ave 35 max 30 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 181
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
40 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 13.71 | 13.71 | 13.72 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 44 0.042991774 0.047401187 0.054529055 0.005835563
10100 44 0.017515048 0.019311463 0.022242125 0.0054597963
10200 44 0.016651387 0.018359221 0.021768919 0.007426361
10300 43 0.016651808 0.01840463 0.019841598 0.0053906984
10400 43 0.014274557 0.015777142 0.019217385 0.0055709619
10500 43 0.013716602 0.015160455 0.019335926 0.005533805
10600 43 0.012929871 0.01429091 0.019961256 0.0055113819
10700 43 0.013249241 0.014643898 0.020488568 0.0057553732
10800 43 0.010645141 0.011765682 0.020018164 0.0070545501
10900 43 0.010177915 0.011249275 0.019638619 0.0090787871
11000 43 0.010174433 0.011245426 0.019566189 0.0093512809
11100 43 0.011130765 0.012302425 0.020051358 0.0093282449
11200 42 0.011178858 0.012387383 0.020957174 0.0087638823
11300 42 0.011335071 0.012560484 0.019605652 0.0085884944
11400 42 0.00892055 0.0098849338 0.017254178 0.0115493
11500 42 0.0087305707 0.0096744162 0.016920618 0.0072562207
11600 42 0.0085763835 0.0095035601 0.016735424 0.0073524491
11700 42 0.0091445266 0.010133124 0.016871267 0.0053996766
11800 41 0.0079999518 0.0088888353 0.016813209 0.0052166459
11900 41 0.0079421236 0.0088245818 0.01747319 0.0051109817
12000 41 0.0075832184 0.0084257982 0.016889505 0.0064088798
12100 40 0.0080007752 0.0089151496 0.017619052 0.005204876
12200 40 0.0084961277 0.0094671138 0.0182733 0.007442812
12300 40 0.0098721644 0.011000412 0.019497465 0.0058554546
12400 39 0.0073872276 0.0082563132 0.017957824 0.0074206067
12500 39 0.0074959064 0.0083777777 0.018236089 0.0083410154
12600 39 0.0079646034 0.0089016156 0.018386853 0.010366406
12700 38 0.007907691 0.008866199 0.013301549 0.002231989
12800 37 0.0076214799 0.0085741649 0.013938502 0.0020598491
12900 36 0.00691836 0.0078110516 0.013261785 0.0019344109
13000 36 0.0063774393 0.0072003347 0.011546252 0.0021781987
13100 35 0.0065688938 0.0074447463 0.011179758 0.0018476982
13200 35 0.006608481 0.0074896118 0.011296542 0.0028753707
13300 35 0.0070429905 0.007982056 0.011580455 0.0017137712
13400 35 0.0069974233 0.007930413 0.011637164 0.0017013866
13500 35 0.0070448152 0.0079841239 0.012227322 0.0016768457
13600 35 0.0070302138 0.0079675757 0.012851645 0.0016524347
13700 35 0.0070610122 0.0080024805 0.013351059 0.0016599408
13800 35 0.0068527095 0.0077664041 0.013322016 0.0021396807
13900 35 0.0068663277 0.0077818381 0.013705023 0.0016560774
14000 33 0.0062802433 0.0071774209 0.013989711 0.0022456467
14100 33 0.0061284367 0.0070039277 0.014073612 0.0018742857
14200 33 0.0057433035 0.0065637755 0.014047397 0.0020392999
14300 33 0.0063090214 0.0072103102 0.014753175 0.0021809345
14400 33 0.0063433397 0.0072495311 0.015426943 0.002500832
14500 32 0.0061158095 0.0070218553 0.015950673 0.0027020781
14600 32 0.0062066544 0.0071261588 0.016604099 0.0030376405
14700 32 0.0065514445 0.0075220288 0.017446154 0.0034215744
14800 32 0.0064362118 0.0073897247 0.018112867 0.0060394662
14900 32 0.0062716467 0.0072007796 0.018677808 0.0042404649
15000 32 0.0062889642 0.0072206626 0.019444241 0.0047535052
Loop time of 0.260637 on 4 procs for 5000 steps with 32 atoms
Performance: 8287379.423 tau/day, 19183.749 timesteps/s, 613.880 katom-step/s
90.9% 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.0026733 | 0.0039641 | 0.0061372 | 2.1 | 1.52
Neigh | 0.00031681 | 0.00038237 | 0.00048999 | 0.0 | 0.15
Comm | 0.026111 | 0.028098 | 0.029126 | 0.7 | 10.78
Output | 0.12793 | 0.16614 | 0.22099 | 8.9 | 63.74
Modify | 0.0021853 | 0.0026076 | 0.0032592 | 0.8 | 1.00
Other | | 0.05944 | | | 22.81
Nlocal: 8 ave 13 max 6 min
Histogram: 2 1 0 0 0 0 0 0 0 1
Nghost: 24 ave 26 max 19 min
Histogram: 1 0 0 0 0 0 0 0 1 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 72
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,338 @@
LAMMPS (27 Jun 2024)
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -7 7 -7 7 0 9 units box
create_box 2 box
Created orthogonal box = (-7 -7 0) to (7 7 9)
1 by 1 by 1 MPI processor grid
fix 20 all surface/local surf.tri.stl
Reading STL object STL version of surf.tri from text file surf.tri.stl
set type 1 type 2
Setting atom values ...
4 settings made for type
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 tri/gran/hooke 4000.0 NULL 100.0 50.0 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group tri type 2
4 atoms in group tri
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 7 9 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 24 every 400 steps, 100 by step 1601
fix wall sphere wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 zcylinder 7.0
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 7.1245553
ghost atom cutoff = 7.1245553
binsize = 3.5622777, bins = 4 4 3
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke/history, perpetual, skip trim from (3)
attributes: half, newton on, size, history, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair tri/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size, history
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 13.33 | 13.33 | 13.33 Mbytes
Step Atoms Temp c_1 c_2 Press
0 4 0 0 0 0
100 28 0.36763289 0.43156905 0.21119336 0.005627034
200 28 0.62433559 0.73291569 0.35866087 0.009556157
300 28 0.95860848 1.125323 0.55068998 0.014672579
400 28 1.3704516 1.608791 0.78728068 0.020976299
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
500 48 0.95089817 1.0393538 0.51608705 0.025335722
600 48 0.83949391 0.91758637 0.46172806 0.022515854
700 48 0.8600588 0.94006427 0.48254195 0.046349308
800 48 0.72636179 0.79393033 0.42561821 0.02213745
900 72 0.68028474 0.72089876 0.37868178 0.028124504
1000 72 0.59827548 0.63399342 0.33666552 0.057932603
1100 72 0.60134295 0.63724402 0.3383098 0.025565346
1200 72 0.58062156 0.61528554 0.33134629 0.031222266
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1300 92 0.43299069 0.45289831 0.24603739 0.033378543
1400 92 0.48785257 0.51028258 0.27462447 0.029606478
1500 92 0.50410905 0.52728648 0.28580371 0.031570548
1600 92 0.44335358 0.46373765 0.25474076 0.025856762
1700 104 0.31258594 0.32521568 0.18562847 0.056917788
1800 104 0.29652255 0.30850326 0.17882758 0.036853847
1900 104 0.2438002 0.25365071 0.15147734 0.027067985
2000 104 0.20778515 0.21618051 0.12797216 0.024491014
2100 104 0.23803938 0.24765713 0.13878356 0.018557519
2200 104 0.22477903 0.23386101 0.13254455 0.034204374
2300 103 0.11028018 0.11478141 0.071880248 0.023107934
2400 103 0.051939416 0.054059392 0.04238437 0.010076125
2500 103 0.04046389 0.042115477 0.03276739 0.0092675482
2600 102 0.034504146 0.035926998 0.027152703 0.012043982
2700 102 0.029660748 0.030883871 0.023043461 0.0098675596
2800 102 0.023675472 0.02465178 0.018814934 0.0079223517
2900 102 0.01955555 0.020361964 0.015095009 0.010178019
3000 101 0.010976926 0.011434298 0.0094599476 0.0062989926
3100 101 0.010404873 0.01083841 0.0088413578 0.006904568
3200 101 0.0084790802 0.0088323752 0.0067474787 0.0078181584
3300 101 0.0049651339 0.0051720145 0.0045655092 0.0077852556
3400 101 0.0028770081 0.0029968834 0.0028180577 0.0065531061
3500 101 0.0026603851 0.0027712345 0.0026301508 0.0066265532
3600 100 0.0022879435 0.002384278 0.0022868891 0.005946377
3700 100 0.0020797371 0.002167305 0.0021366338 0.0060275426
3800 100 0.0018223254 0.0018990549 0.0018542925 0.0058665012
3900 100 0.0016056933 0.0016733014 0.0017380009 0.0065755667
4000 100 0.0012764017 0.001330145 0.0014831053 0.0057002441
4100 100 0.0011732772 0.0012226783 0.0014520833 0.0058997102
4200 100 0.0011509224 0.0011993823 0.0014499925 0.005891705
4300 100 0.00093450709 0.00097385475 0.0011305405 0.0060755638
4400 100 0.00073710728 0.00076814338 0.00093491029 0.005994252
4500 100 0.00066950467 0.00069769434 0.00081329183 0.0060209889
4600 100 0.00067057619 0.00069881097 0.00081870364 0.0066002598
4700 100 0.00061522957 0.00064113397 0.0007867969 0.0061000762
4800 100 0.00057127674 0.0005953305 0.00078435449 0.006075934
4900 100 0.00048538112 0.00050581822 0.00067082262 0.0061360807
5000 100 0.00049531306 0.00051616835 0.00070658811 0.0061425578
Loop time of 0.239342 on 1 procs for 5000 steps with 100 atoms
Performance: 9024730.054 tau/day, 20890.579 timesteps/s, 2.089 Matom-step/s
88.6% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.026886 | 0.026886 | 0.026886 | 0.0 | 11.23
Neigh | 0.0086276 | 0.0086276 | 0.0086276 | 0.0 | 3.60
Comm | 0.00041811 | 0.00041811 | 0.00041811 | 0.0 | 0.17
Output | 0.19004 | 0.19004 | 0.19004 | 0.0 | 79.40
Modify | 0.012242 | 0.012242 | 0.012242 | 0.0 | 5.11
Other | | 0.001133 | | | 0.47
Nlocal: 100 ave 100 max 100 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 320
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 14.46 | 14.46 | 14.46 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 100 0.00049531306 0.00051616835 0.00070658811 0.0061401156
5100 100 0.51797813 0.029144789 0.028561434 0.061796302
5200 99 0.53766867 0.044472871 0.048736594 0.052595853
5300 98 0.54821886 0.050173651 0.052878851 0.060444985
5400 95 0.56483365 0.050925371 0.053737351 0.057837587
5500 95 0.56809688 0.054333638 0.055612067 0.043728998
5600 92 0.58741732 0.056826396 0.056374971 0.039138605
5700 92 0.59268005 0.062331088 0.059265481 0.035680319
5800 88 0.62103092 0.066489286 0.060222709 0.035282967
5900 88 0.62345455 0.069029715 0.0628021 0.035017077
6000 85 0.64509294 0.070959095 0.06202824 0.035049999
6100 84 0.65441054 0.07348095 0.062757785 0.035609875
6200 81 0.67575597 0.07301839 0.059946946 0.034382094
6300 80 0.68384452 0.073501833 0.059856228 0.03514656
6400 78 0.7013697 0.075265575 0.059538181 0.034094416
6500 78 0.70386686 0.077899568 0.06122273 0.034195388
6600 77 0.7136876 0.079571915 0.062523938 0.034262144
6700 75 0.73326389 0.082149266 0.061775684 0.036880856
6800 74 0.74125199 0.081163997 0.060577178 0.034065559
6900 73 0.74794382 0.078542284 0.058822059 0.034265565
7000 72 0.75869051 0.0799395 0.060173988 0.03372964
7100 71 0.76478565 0.076119935 0.058622864 0.033529799
7200 70 0.77534407 0.076733249 0.059389913 0.033359627
7300 69 0.78737597 0.078601354 0.060601057 0.03387736
7400 68 0.79334599 0.073700033 0.058720823 0.033449993
7500 65 0.82643666 0.07301444 0.057725758 0.033058102
7600 64 0.83647393 0.070962335 0.057196688 0.034325146
7700 64 0.83136046 0.065502199 0.054505995 0.033284476
7800 63 0.84413416 0.065952385 0.055713645 0.032527019
7900 63 0.84474799 0.066608547 0.057188344 0.032380197
8000 63 0.84601678 0.067964843 0.059162055 0.035623321
8100 62 0.85442995 0.063318376 0.056917075 0.033794671
8200 60 0.87886485 0.060762667 0.053902381 0.031778389
8300 60 0.88023598 0.062233516 0.05567968 0.032190408
8400 58 0.91091634 0.064361351 0.056842653 0.031999455
8500 58 0.91076207 0.064195441 0.056598399 0.031981767
8600 57 0.92732215 0.065749251 0.058085176 0.031964139
8700 56 0.94060812 0.063183664 0.057132444 0.031795486
8800 54 0.97102642 0.060271847 0.054931651 0.031534156
8900 53 0.98835079 0.06006587 0.054799498 0.031664682
9000 52 1.0052014 0.058599798 0.0548155 0.031347041
9100 51 1.0232141 0.057600571 0.054358272 0.031293028
9200 51 1.0234203 0.057824665 0.055491376 0.031272133
9300 50 1.0422387 0.056858101 0.055336743 0.031184651
9400 49 1.0607968 0.054708372 0.054237694 0.031018741
9500 49 1.0598447 0.053669652 0.05412067 0.030987958
9600 47 1.0997672 0.049481209 0.049207618 0.030830628
9700 47 1.1009351 0.050760379 0.05160771 0.030681632
9800 46 1.1225281 0.048846024 0.052582727 0.030659518
9900 46 1.1235541 0.049972117 0.054322137 0.030823675
10000 43 1.1964897 0.045828636 0.049253726 0.03048984
Loop time of 0.22501 on 1 procs for 5000 steps with 43 atoms
Performance: 9599559.914 tau/day, 22221.204 timesteps/s, 955.512 katom-step/s
89.5% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.023112 | 0.023112 | 0.023112 | 0.0 | 10.27
Neigh | 0.0050165 | 0.0050165 | 0.0050165 | 0.0 | 2.23
Comm | 0.00039113 | 0.00039113 | 0.00039113 | 0.0 | 0.17
Output | 0.18353 | 0.18353 | 0.18353 | 0.0 | 81.56
Modify | 0.011974 | 0.011974 | 0.011974 | 0.0 | 5.32
Other | | 0.0009874 | | | 0.44
Nlocal: 43 ave 43 max 43 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 208
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
39 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 13.58 | 13.58 | 13.58 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 43 0.041464004 0.045828636 0.049253726 0.002992911
10100 43 0.01536718 0.016984778 0.018346335 0.0026107883
10200 43 0.013276935 0.014674507 0.018130285 0.0032805934
10300 43 0.012643213 0.013974077 0.019027228 0.0020933246
10400 43 0.012779466 0.014124673 0.019370488 0.0026402198
10500 43 0.012399341 0.013704535 0.019539407 0.0022259887
10600 43 0.012201003 0.013485319 0.018098349 0.0024634333
10700 43 0.012655256 0.013987388 0.019496323 0.002221395
10800 43 0.012579162 0.013903285 0.019865363 0.0032621089
10900 43 0.012810408 0.014158872 0.020704867 0.0024564532
11000 43 0.013492114 0.014912337 0.020426966 0.0021076994
11100 43 0.012081727 0.013353488 0.019941305 0.0027605259
11200 43 0.011157364 0.012331823 0.019789593 0.0022805894
11300 43 0.011311656 0.012502357 0.020672585 0.0045512862
11400 43 0.010835381 0.011975948 0.019984802 0.002500184
11500 43 0.010883617 0.012029261 0.020161482 0.0024288947
11600 43 0.010601773 0.011717749 0.02043478 0.002518671
11700 43 0.010652376 0.011773679 0.020877142 0.0047191948
11800 43 0.010586149 0.01170048 0.021045412 0.0029958449
11900 42 0.010310675 0.011425342 0.020890641 0.0041299678
12000 42 0.0096193697 0.010659302 0.01734171 0.0055638559
12100 42 0.0090012199 0.0099743248 0.015925878 0.0062568296
12200 42 0.0092694202 0.01027152 0.016223404 0.0031650129
12300 41 0.009275497 0.010306108 0.016491126 0.0051047425
12400 40 0.010347045 0.011529564 0.01780755 0.0020187837
12500 40 0.010872959 0.012115582 0.018095787 0.0017574207
12600 39 0.0094147621 0.010522381 0.018210318 0.0017051826
12700 39 0.0086581705 0.0096767788 0.018566587 0.0018394808
12800 39 0.0082190204 0.009185964 0.018898421 0.003442822
12900 39 0.0078768039 0.0088034867 0.019645193 0.0024525382
13000 39 0.0066934943 0.0074809642 0.016840831 0.0042565543
13100 38 0.0063530854 0.0071231563 0.015836167 0.0033482203
13200 38 0.0067586397 0.0075778688 0.016370483 0.0027718974
13300 37 0.0062831006 0.0070684882 0.016770756 0.0028166814
13400 36 0.005492839 0.0062015924 0.01655756 0.0041562248
13500 36 0.0052681628 0.0059479258 0.011983298 0.0035740396
13600 36 0.0053786817 0.0060727051 0.011670978 0.004098456
13700 36 0.0055059193 0.0062163605 0.01170773 0.0023640523
13800 35 0.0055296574 0.0062669451 0.0119576 0.0031972222
13900 34 0.0052354859 0.0059576219 0.012092776 0.0016695231
14000 33 0.0050682191 0.0057922504 0.01250025 0.0015032079
14100 33 0.0051315263 0.0058646015 0.01289725 0.0014073536
14200 33 0.005254278 0.0060048892 0.012894635 0.0014096146
14300 33 0.0057832225 0.0066093971 0.013867573 0.001419376
14400 33 0.0058060441 0.006635479 0.014475826 0.0025855623
14500 33 0.0058141643 0.0066447593 0.015171174 0.0024244841
14600 32 0.0055995745 0.0064291411 0.016022968 0.0014230432
14700 32 0.0055988198 0.0064282746 0.016907696 0.0015101902
14800 32 0.0057678876 0.0066223895 0.017482798 0.0016956915
14900 32 0.0057096482 0.006555522 0.018478553 0.0019276435
15000 32 0.0057085079 0.0065542128 0.017574244 0.0021196367
Loop time of 0.17974 on 1 procs for 5000 steps with 32 atoms
Performance: 12017358.941 tau/day, 27817.961 timesteps/s, 890.175 katom-step/s
86.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 | 0.011735 | 0.011735 | 0.011735 | 0.0 | 6.53
Neigh | 0.00083073 | 0.00083073 | 0.00083073 | 0.0 | 0.46
Comm | 0.00027647 | 0.00027647 | 0.00027647 | 0.0 | 0.15
Output | 0.1603 | 0.1603 | 0.1603 | 0.0 | 89.19
Modify | 0.0058558 | 0.0058558 | 0.0058558 | 0.0 | 3.26
Other | | 0.0007393 | | | 0.41
Nlocal: 32 ave 32 max 32 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 73
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,339 @@
LAMMPS (27 Jun 2024)
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551)
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -7 7 -7 7 0 9 units box
create_box 2 box
Created orthogonal box = (-7 -7 0) to (7 7 9)
2 by 2 by 1 MPI processor grid
fix 20 all surface/local surf.tri.stl
Reading STL object STL version of surf.tri from text file surf.tri.stl
set type 1 type 2
Setting atom values ...
4 settings made for type
pair_style hybrid gran/hooke/history 4000.0 NULL 100.0 NULL 0.5 1 tri/gran/hooke 4000.0 NULL 100.0 50.0 0.5 1
pair_coeff 1 1 gran/hooke/history
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group tri type 2
4 atoms in group tri
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 7 9 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 24 every 400 steps, 100 by step 1601
fix wall sphere wall/gran hooke/history 4000.0 NULL 100.0 NULL 0.5 1 zcylinder 7.0
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 7.1245553
ghost atom cutoff = 7.1245553
binsize = 3.5622777, bins = 4 4 3
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke/history, perpetual, skip trim from (3)
attributes: half, newton on, size, history, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair tri/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size, history
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 12.47 | 12.69 | 13.35 Mbytes
Step Atoms Temp c_1 c_2 Press
0 4 0 0 0 0
100 28 0.36763289 0.43156905 0.21119336 0.005627034
200 28 0.62433559 0.73291569 0.35866087 0.009556157
300 28 0.95860848 1.125323 0.55068998 0.014672579
400 28 1.3704516 1.608791 0.78728068 0.020976299
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
500 48 0.95089817 1.0393538 0.51608705 0.025335722
600 48 0.83949391 0.91758637 0.46172806 0.022515854
700 48 0.8600588 0.94006427 0.48254195 0.046349308
800 48 0.72636179 0.79393033 0.42561821 0.02213745
900 72 0.68028474 0.72089876 0.37868178 0.028124504
1000 72 0.59827548 0.63399342 0.33666552 0.057932603
1100 72 0.60134295 0.63724402 0.3383098 0.025565346
1200 72 0.58062156 0.61528554 0.33134629 0.031222266
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1300 92 0.43299069 0.45289831 0.24603739 0.033378543
1400 92 0.48785257 0.51028258 0.27462447 0.029606478
1500 92 0.50410905 0.52728648 0.28580371 0.031570548
1600 92 0.44335358 0.46373765 0.25474076 0.025856762
1700 104 0.31258594 0.32521568 0.18562847 0.056917788
1800 104 0.29652255 0.30850326 0.17882758 0.036853847
1900 104 0.2438002 0.25365071 0.15147734 0.027067985
2000 104 0.20778515 0.21618051 0.12797216 0.024491012
2100 104 0.23803938 0.24765713 0.13878356 0.018557518
2200 104 0.22477903 0.23386101 0.13254455 0.034204387
2300 103 0.11028018 0.11478141 0.071880246 0.023108123
2400 103 0.051939196 0.054059163 0.042383035 0.0100614
2500 103 0.040442247 0.042092951 0.032749381 0.01046781
2600 102 0.034504426 0.035927289 0.027149368 0.012010718
2700 102 0.029679791 0.0309037 0.023036586 0.010355503
2800 102 0.023702803 0.024680238 0.018826345 0.007910395
2900 102 0.019561868 0.020368542 0.015101556 0.010178779
3000 101 0.010990893 0.011448847 0.0094754992 0.0063202976
3100 101 0.010529472 0.0109682 0.0089009784 0.007388411
3200 101 0.0084987177 0.0088528309 0.0067377904 0.0075443377
3300 101 0.004926689 0.0051319677 0.0045207553 0.0078470774
3400 101 0.0028833468 0.0030034862 0.0028132775 0.007922942
3500 101 0.0026928316 0.0028050329 0.0026351323 0.0069014836
3600 100 0.0022956296 0.0023922877 0.0022701552 0.0059851937
3700 100 0.0021025959 0.0021911262 0.0021280497 0.0060105187
3800 100 0.0018494532 0.0019273249 0.0018855471 0.0061456458
3900 100 0.0016137385 0.0016816854 0.0017223036 0.0066454899
4000 100 0.0013124128 0.0013676723 0.0014840612 0.0062470481
4100 100 0.0012105075 0.0012614763 0.0014645791 0.0057688838
4200 100 0.0011433138 0.0011914533 0.0014435934 0.0059579374
4300 100 0.00098204031 0.0010233894 0.0012522874 0.0059816181
4400 100 0.00076296239 0.00079508712 0.0009721438 0.0060246257
4500 100 0.00066335366 0.00069128434 0.00091049427 0.006214887
4600 100 0.00062039452 0.0006465164 0.00082139977 0.0060745906
4700 100 0.00062069669 0.00064683129 0.00083492397 0.0064522652
4800 100 0.00050639953 0.00052772161 0.00074517777 0.0062114309
4900 100 0.00048181752 0.00050210458 0.00072773699 0.0061746147
5000 100 0.00045281738 0.00047188337 0.00072834743 0.0067103321
Loop time of 0.32014 on 4 procs for 5000 steps with 100 atoms
Performance: 6747055.869 tau/day, 15618.185 timesteps/s, 1.562 Matom-step/s
93.0% 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.0086319 | 0.0091611 | 0.0095994 | 0.4 | 2.86
Neigh | 0.003158 | 0.0033497 | 0.0035467 | 0.3 | 1.05
Comm | 0.052557 | 0.053497 | 0.054748 | 0.3 | 16.71
Output | 0.14638 | 0.18444 | 0.24257 | 8.9 | 57.61
Modify | 0.0073375 | 0.011745 | 0.014473 | 2.7 | 3.67
Other | | 0.05795 | | | 18.10
Nlocal: 25 ave 27 max 23 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Nghost: 75 ave 77 max 73 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 319
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 14.59 | 14.59 | 14.59 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 100 0.00045281738 0.00047188337 0.00072834743 0.0066020848
5100 100 0.51860744 0.029800601 0.029304106 0.051905706
5200 98 0.53862917 0.040171507 0.047791716 0.050757979
5300 96 0.55112647 0.042263021 0.050195999 0.04601151
5400 93 0.56728592 0.04180938 0.050815028 0.037450075
5500 93 0.56916149 0.043770195 0.053081459 0.03605744
5600 91 0.58284551 0.045872284 0.05148537 0.033849288
5700 90 0.59267876 0.049850941 0.05375731 0.035005112
5800 86 0.61680698 0.04836437 0.052582503 0.033850751
5900 85 0.62574796 0.050646859 0.054238313 0.034443643
6000 82 0.64727841 0.050889245 0.052494508 0.033866734
6100 80 0.66364069 0.052220462 0.052387252 0.033487505
6200 78 0.67959846 0.052301399 0.050336285 0.033168524
6300 78 0.6815537 0.054363773 0.051168788 0.033400067
6400 76 0.69757373 0.053619014 0.048730817 0.033079249
6500 76 0.69960717 0.055767015 0.050448147 0.034190142
6600 75 0.71046572 0.05804834 0.050353278 0.033120738
6700 73 0.73004213 0.059587557 0.050356776 0.033203715
6800 72 0.73955244 0.059658858 0.049165521 0.033090601
6900 72 0.73984252 0.05996626 0.04893239 0.03538438
7000 72 0.73855905 0.05860616 0.048218057 0.032977368
7100 71 0.74996747 0.060403683 0.049738231 0.032942299
7200 71 0.74958163 0.059994462 0.04984795 0.034576756
7300 71 0.74958014 0.059992886 0.050595934 0.033560699
7400 69 0.77040618 0.060570951 0.05074398 0.032817955
7500 68 0.78190055 0.061527899 0.051576944 0.032829232
7600 67 0.79252938 0.061223545 0.051664985 0.033139179
7700 67 0.79257577 0.061272925 0.052020235 0.032808213
7800 67 0.79235064 0.06103327 0.052983733 0.032695163
7900 65 0.81235659 0.057995702 0.051797211 0.032371751
8000 65 0.81047528 0.05598897 0.051741533 0.032279411
8100 63 0.83302221 0.054074089 0.049909885 0.03200106
8200 62 0.84514204 0.053378682 0.050396436 0.032363269
8300 61 0.85723702 0.052198956 0.049950193 0.031878528
8400 60 0.86997524 0.051226536 0.050780002 0.031636653
8500 60 0.86954615 0.050766237 0.051169838 0.036559517
8600 58 0.89936909 0.051942618 0.050191748 0.037496085
8700 58 0.89897047 0.05151391 0.051173535 0.034671574
8800 56 0.93013263 0.051886568 0.052056826 0.031441238
8900 55 0.94599772 0.051455942 0.052973742 0.034207698
9000 53 0.97967117 0.050662944 0.052877672 0.035867184
9100 51 1.0142291 0.047834254 0.050461469 0.032649796
9200 50 1.033876 0.047752147 0.050703363 0.030822387
9300 49 1.0547579 0.04812047 0.050590947 0.030893945
9400 49 1.0558051 0.049262873 0.052436796 0.030873639
9500 48 1.0767984 0.048801088 0.051653283 0.030786358
9600 46 1.1213506 0.047553612 0.049643046 0.030642108
9700 46 1.1227493 0.049088768 0.051778335 0.030603423
9800 45 1.1452146 0.046959031 0.051250902 0.032613968
9900 45 1.1460384 0.047865295 0.05426893 0.036176412
10000 44 1.1711564 0.047401187 0.054529055 0.033327294
Loop time of 0.28856 on 4 procs for 5000 steps with 44 atoms
Performance: 7485434.832 tau/day, 17327.395 timesteps/s, 762.405 katom-step/s
91.0% 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.0077008 | 0.0081727 | 0.0083688 | 0.3 | 2.83
Neigh | 0.0016509 | 0.0017298 | 0.0017932 | 0.1 | 0.60
Comm | 0.040346 | 0.041058 | 0.041497 | 0.2 | 14.23
Output | 0.13753 | 0.1727 | 0.22758 | 8.6 | 59.85
Modify | 0.0052102 | 0.0053564 | 0.0055804 | 0.2 | 1.86
Other | | 0.05955 | | | 20.64
Nlocal: 11 ave 14 max 9 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Nghost: 33 ave 35 max 30 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 181
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
40 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 13.71 | 13.71 | 13.72 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 44 0.042991774 0.047401187 0.054529055 0.005835563
10100 44 0.017515048 0.019311463 0.022242125 0.0054597963
10200 44 0.016651387 0.018359221 0.021768919 0.007426361
10300 43 0.016651808 0.01840463 0.019841598 0.0053906984
10400 43 0.014274557 0.015777142 0.019217385 0.0055709619
10500 43 0.013716602 0.015160455 0.019335926 0.005533805
10600 43 0.012929871 0.01429091 0.019961256 0.0055113819
10700 43 0.013249241 0.014643898 0.020488568 0.0057553732
10800 43 0.010645141 0.011765682 0.020018164 0.0070545501
10900 43 0.010177915 0.011249275 0.019638619 0.0090787871
11000 43 0.010174433 0.011245426 0.019566189 0.0093512809
11100 43 0.011130765 0.012302425 0.020051358 0.0093282449
11200 42 0.011178858 0.012387383 0.020957174 0.0087638823
11300 42 0.011335071 0.012560484 0.019605652 0.0085884944
11400 42 0.00892055 0.0098849338 0.017254178 0.0115493
11500 42 0.0087305707 0.0096744162 0.016920618 0.0072562207
11600 42 0.0085763835 0.0095035601 0.016735424 0.0073524491
11700 42 0.0091445266 0.010133124 0.016871267 0.0053996766
11800 41 0.0079999518 0.0088888353 0.016813209 0.0052166459
11900 41 0.0079421236 0.0088245818 0.01747319 0.0051109817
12000 41 0.0075832184 0.0084257982 0.016889505 0.0064088798
12100 40 0.0080007752 0.0089151496 0.017619052 0.005204876
12200 40 0.0084961277 0.0094671138 0.0182733 0.007442812
12300 40 0.0098721644 0.011000412 0.019497465 0.0058554546
12400 39 0.0073872276 0.0082563132 0.017957824 0.0074206067
12500 39 0.0074959064 0.0083777777 0.018236089 0.0083410154
12600 39 0.0079646034 0.0089016156 0.018386853 0.010366406
12700 38 0.007907691 0.008866199 0.013301549 0.002231989
12800 37 0.0076214799 0.0085741649 0.013938502 0.0020598491
12900 36 0.00691836 0.0078110516 0.013261785 0.0019344109
13000 36 0.0063774393 0.0072003347 0.011546252 0.0021781987
13100 35 0.0065688938 0.0074447463 0.011179758 0.0018476982
13200 35 0.006608481 0.0074896118 0.011296542 0.0028753707
13300 35 0.0070429905 0.007982056 0.011580455 0.0017137712
13400 35 0.0069974233 0.007930413 0.011637164 0.0017013866
13500 35 0.0070448152 0.0079841239 0.012227322 0.0016768457
13600 35 0.0070302138 0.0079675757 0.012851645 0.0016524347
13700 35 0.0070610122 0.0080024805 0.013351059 0.0016599408
13800 35 0.0068527095 0.0077664041 0.013322016 0.0021396807
13900 35 0.0068663277 0.0077818381 0.013705023 0.0016560774
14000 33 0.0062802433 0.0071774209 0.013989711 0.0022456467
14100 33 0.0061284367 0.0070039277 0.014073612 0.0018742857
14200 33 0.0057433035 0.0065637755 0.014047397 0.0020392999
14300 33 0.0063090214 0.0072103102 0.014753175 0.0021809345
14400 33 0.0063433397 0.0072495311 0.015426943 0.002500832
14500 32 0.0061158095 0.0070218553 0.015950673 0.0027020781
14600 32 0.0062066544 0.0071261588 0.016604099 0.0030376405
14700 32 0.0065514445 0.0075220288 0.017446154 0.0034215744
14800 32 0.0064362118 0.0073897247 0.018112867 0.0060394662
14900 32 0.0062716467 0.0072007796 0.018677808 0.0042404649
15000 32 0.0062889642 0.0072206626 0.019444241 0.0047535052
Loop time of 0.255191 on 4 procs for 5000 steps with 32 atoms
Performance: 8464239.384 tau/day, 19593.147 timesteps/s, 626.981 katom-step/s
93.7% 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.0027149 | 0.0039748 | 0.0060577 | 2.0 | 1.56
Neigh | 0.00031285 | 0.00037907 | 0.00047986 | 0.0 | 0.15
Comm | 0.026002 | 0.02773 | 0.02888 | 0.7 | 10.87
Output | 0.12772 | 0.16234 | 0.21585 | 8.7 | 63.62
Modify | 0.0022056 | 0.0026604 | 0.0032387 | 0.7 | 1.04
Other | | 0.05811 | | | 22.77
Nlocal: 8 ave 13 max 6 min
Histogram: 2 1 0 0 0 0 0 0 0 1
Nghost: 24 ave 26 max 19 min
Histogram: 1 0 0 0 0 0 0 0 1 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 72
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,527 @@
LAMMPS (27 Jun 2024)
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
read_data data.tribox
Reading data file ...
orthogonal box = (-9 -9 -9) to (9 9 9)
1 by 1 by 1 MPI processor grid
reading atoms ...
24 atoms
24 triangles
read_data CPU = 0.001 seconds
pair_style hybrid gran/hooke 4000.0 NULL 100.0 NULL 0.5 1 tri/gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff 1 1 gran/hooke
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group tri type 2
24 atoms in group tri
fix fsl all surface/local NULL
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 48 every 566 steps, 100 by step 1133
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 1 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 = 7.1245553
ghost atom cutoff = 7.1245553
binsize = 3.5622777, bins = 6 6 6
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke, perpetual, skip trim from (3)
attributes: half, newton on, size, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair tri/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 7.31 | 7.31 | 7.31 Mbytes
Step Atoms Temp c_1 c_2 Press
0 24 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 54 0.43980579 0.803783 0.39507978 0.0039968633
200 54 0.65485258 1.1967995 0.5882574 0.0059511637
300 54 0.70130448 1.2816944 0.63007607 0.0063733089
400 54 0.45082726 0.82392569 0.41204308 0.0042712044
500 54 0.42703582 0.78044477 0.38975619 0.0078751113
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 88 0.36378363 0.50236787 0.26121204 0.005580258
700 88 0.40897553 0.56477573 0.29461507 0.0062103139
800 88 0.45442734 0.62754252 0.32702702 0.01172199
900 88 0.38769052 0.53538215 0.29109526 0.011453827
1000 88 0.37409476 0.51660706 0.2871167 0.0081282082
1100 88 0.35735415 0.49348906 0.27107416 0.0085794315
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 123 0.33910268 0.42214823 0.22820948 0.014523415
1300 123 0.34253102 0.42641617 0.23083606 0.012592038
1400 123 0.26380089 0.32840519 0.18540471 0.019217679
1500 123 0.26287435 0.32725175 0.18382847 0.009073899
1600 123 0.22125116 0.27543512 0.15863519 0.011459114
1700 124 0.17994881 0.22357276 0.1323084 0.0048041133
1800 124 0.10484006 0.13025583 0.085106685 0.0044535742
1900 124 0.070460717 0.087542103 0.059477957 0.0027460127
2000 124 0.069140804 0.085902211 0.057177221 0.0028764389
2100 124 0.044395978 0.055158639 0.037361834 0.0047974667
2200 124 0.043165403 0.053629743 0.03447346 0.0026358928
2300 124 0.022301073 0.027707394 0.020102237 0.0014883335
2400 124 0.013514412 0.016790633 0.013186206 0.002325602
2500 124 0.010269497 0.012759072 0.010167755 0.0018750155
2600 124 0.007156998 0.0088920278 0.0079248938 0.0019606606
2700 124 0.0053272592 0.0066187159 0.0060381396 0.0015899189
2800 124 0.0049732574 0.0061788955 0.0055201323 0.0015575098
2900 124 0.0034389569 0.0042726435 0.0040970394 0.0023173363
3000 124 0.0027613458 0.003430763 0.0032325603 0.0018824388
3100 124 0.0024990042 0.0031048234 0.0028215135 0.0026234259
3200 124 0.0017976528 0.0022334474 0.0021940732 0.0016842693
3300 124 0.0010884141 0.001352272 0.0014613478 0.0015441795
3400 124 0.0010405091 0.0012927537 0.0013956745 0.001571443
3500 124 0.0010765766 0.0013375648 0.0013287703 0.0015522494
3600 124 0.00081891021 0.0010174339 0.0011208035 0.0016000812
3700 124 0.00090145807 0.0011199934 0.0011567831 0.0015733122
3800 124 0.00140364 0.0017439164 0.0013153706 0.0017988685
3900 124 0.00049247822 0.00061186688 0.00071870865 0.0015665202
4000 124 0.00045666898 0.00056737661 0.00066940396 0.0015712098
4100 124 0.00042619616 0.00052951644 0.00063332787 0.0015759583
4200 124 0.00036113651 0.00044868475 0.00056665527 0.001576302
4300 124 0.00035226447 0.00043766192 0.00055789831 0.0016105156
4400 124 0.00031038324 0.00038562766 0.00052368731 0.0017233961
4500 124 0.00028932551 0.00035946503 0.00048434265 0.0015563793
4600 124 0.00027970544 0.00034751282 0.00047166992 0.0015933351
4700 124 0.00023781605 0.00029546842 0.0004057567 0.0016542167
4800 124 0.00022258987 0.00027655106 0.00035988265 0.0016019168
4900 124 0.00019863185 0.00024678503 0.000326351 0.0016355539
5000 124 0.00019419048 0.00024126696 0.00031309062 0.0016596206
Loop time of 0.391027 on 1 procs for 5000 steps with 124 atoms
Performance: 5523915.822 tau/day, 12786.842 timesteps/s, 1.586 Matom-step/s
93.2% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.053101 | 0.053101 | 0.053101 | 0.0 | 13.58
Neigh | 0.014276 | 0.014276 | 0.014276 | 0.0 | 3.65
Comm | 0.00043726 | 0.00043726 | 0.00043726 | 0.0 | 0.11
Output | 0.31734 | 0.31734 | 0.31734 | 0.0 | 81.16
Modify | 0.0045131 | 0.0045131 | 0.0045131 | 0.0 | 1.15
Other | | 0.001358 | | | 0.35
Nlocal: 124 ave 124 max 124 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 271
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 8.438 | 8.438 | 8.438 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 124 0.00019419048 0.00024126696 0.00031309062 0.0015836208
5100 124 5.241725 0.14230443 0.084309766 0.11222949
5200 124 5.2642517 0.17029222 0.09711751 0.11218019
5300 124 5.2777919 0.18711487 0.1031694 0.11250066
5400 124 5.2848791 0.19592009 0.10535436 0.11248274
5500 124 5.2950507 0.20855763 0.10994851 0.11343591
5600 124 5.3041095 0.21981245 0.11454068 0.1133945
5700 124 5.3104632 0.2277064 0.1180875 0.11432799
5800 124 5.3215398 0.24146836 0.12466168 0.11484551
5900 124 5.3283998 0.24999131 0.1287391 0.11546725
6000 124 5.3321636 0.25466756 0.13051832 0.11515099
6100 124 5.3345557 0.25763958 0.13171407 0.1154897
6200 124 5.3367433 0.26035754 0.13279725 0.11544669
6300 124 5.3395019 0.26378486 0.13420445 0.11516374
6400 124 5.3439366 0.26929459 0.13696206 0.11652747
6500 124 5.35113 0.27823186 0.14087131 0.11539692
6600 124 5.3551686 0.28324957 0.14315746 0.11583188
6700 124 5.3588826 0.28786385 0.14529906 0.11709354
6800 124 5.3635971 0.29372131 0.14771532 0.11643632
6900 124 5.3683547 0.2996322 0.15048478 0.1161893
7000 124 5.3707971 0.30266678 0.15196892 0.11646592
7100 124 5.3726385 0.30495451 0.15306469 0.11625217
7200 124 5.3744003 0.30714351 0.1541348 0.11686937
7300 124 5.3753054 0.30826801 0.15467201 0.11652641
7400 124 5.3757946 0.30887573 0.15508365 0.11719168
7500 124 5.3758028 0.30888597 0.15505055 0.12000677
7600 124 5.3786577 0.31243298 0.15672307 0.11722909
7700 124 5.3783037 0.31199314 0.15642477 0.11632325
7800 124 5.3796187 0.31362692 0.1572947 0.11713976
7900 124 5.3803155 0.31449269 0.15764005 0.11729058
8000 124 5.3825354 0.31725075 0.15884646 0.11762989
8100 124 5.3825657 0.31728832 0.1588842 0.11758412
8200 124 5.3832535 0.31814284 0.15927407 0.11730022
8300 124 5.3835483 0.31850913 0.15938562 0.1178199
8400 124 5.3845014 0.31969331 0.16005175 0.11728308
8500 124 5.3847484 0.32000021 0.16013165 0.11754726
8600 124 5.3863469 0.32198622 0.16098001 0.11783688
8700 124 5.3860321 0.32159511 0.16070948 0.11787101
8800 124 5.3865227 0.32220457 0.16101193 0.11742856
8900 124 5.386608 0.32231066 0.16107457 0.11751927
9000 124 5.3866344 0.32234342 0.16111142 0.11733366
9100 124 5.3870414 0.32284907 0.16138634 0.11732917
9200 124 5.3872929 0.32316151 0.16152699 0.11720705
9300 124 5.3871547 0.32298987 0.16146033 0.11742964
9400 124 5.3870097 0.32280972 0.16135009 0.11718262
9500 124 5.3871151 0.3229406 0.16142031 0.11740809
9600 124 5.3880467 0.3240981 0.16192517 0.11747626
9700 124 5.3882634 0.32436734 0.16207328 0.11748896
9800 124 5.3885751 0.32475452 0.162293 0.1175098
9900 124 5.388935 0.32520177 0.16248897 0.11781973
10000 124 5.3891679 0.32549112 0.16263293 0.11743863
Loop time of 0.415747 on 1 procs for 5000 steps with 124 atoms
Performance: 5195465.111 tau/day, 12026.540 timesteps/s, 1.491 Matom-step/s
98.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 | 0.075657 | 0.075657 | 0.075657 | 0.0 | 18.20
Neigh | 0.020388 | 0.020388 | 0.020388 | 0.0 | 4.90
Comm | 0.00050329 | 0.00050329 | 0.00050329 | 0.0 | 0.12
Output | 0.30865 | 0.30865 | 0.30865 | 0.0 | 74.24
Modify | 0.0089953 | 0.0089953 | 0.0089953 | 0.0 | 2.16
Other | | 0.001558 | | | 0.37
Nlocal: 124 ave 124 max 124 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 315
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
100 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.563 | 7.563 | 7.563 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 124 0.26198066 0.32549112 0.16263293 0.0055911461
10100 124 0.074481727 0.092537903 0.05769404 0.0057995742
10200 124 0.055374095 0.068798118 0.050803609 0.0039966145
10300 124 0.046890231 0.058257559 0.045562379 0.0045743145
10400 124 0.038619299 0.047981553 0.039858993 0.0037329536
10500 124 0.03109186 0.038629281 0.033475837 0.005404066
10600 124 0.026610842 0.033061955 0.03074617 0.0049940987
10700 124 0.023393335 0.029064446 0.027629225 0.0044956047
10800 124 0.020188452 0.025082623 0.024277568 0.0027508375
10900 124 0.017401987 0.021620651 0.022968471 0.0030526263
11000 124 0.017010388 0.021134118 0.02312837 0.0029423416
11100 124 0.015586659 0.019365243 0.022124516 0.0048751832
11200 124 0.015018747 0.018659656 0.021425944 0.0050256257
11300 124 0.013616167 0.016917056 0.020531515 0.0025382988
11400 124 0.012960825 0.016102844 0.020233716 0.0028514371
11500 124 0.012535764 0.015574737 0.019749488 0.004004479
11600 124 0.012468691 0.015491404 0.020056281 0.0029836259
11700 124 0.010340151 0.012846854 0.016889426 0.002611651
11800 124 0.0094736661 0.011770312 0.016202659 0.0028183754
11900 124 0.0097558259 0.012120875 0.017186585 0.003204093
12000 124 0.0096163767 0.01194762 0.018177114 0.0030658747
12100 124 0.0091146678 0.011324284 0.017747849 0.0029559042
12200 124 0.0085146536 0.010578812 0.01795826 0.0020989622
12300 124 0.008795199 0.010927368 0.017709763 0.0025139035
12400 124 0.0090055902 0.011188764 0.017918106 0.0023682314
12500 124 0.0097315664 0.012090734 0.018823404 0.0020873256
12600 124 0.0091405944 0.011356496 0.017804633 0.0027702904
12700 124 0.0087960463 0.010928421 0.017802652 0.0026273577
12800 124 0.0080743005 0.010031707 0.017331563 0.0020791763
12900 124 0.0076898221 0.0095540215 0.016852716 0.0021221914
13000 124 0.0076710324 0.0095306767 0.016825465 0.0039685383
13100 124 0.0073591325 0.0091431646 0.015871642 0.0027994321
13200 124 0.0072640024 0.0090249727 0.016222349 0.0025128819
13300 124 0.0069183134 0.0085954802 0.016490498 0.0021502501
13400 124 0.0069316499 0.0086120499 0.017605557 0.0018524525
13500 124 0.0068915832 0.00856227 0.017409609 0.0033139311
13600 124 0.0062913693 0.0078165497 0.016392828 0.0024061992
13700 124 0.0068995705 0.0085721937 0.016786658 0.001969641
13800 124 0.0072699745 0.0090323926 0.017042011 0.0027635615
13900 124 0.0068420472 0.0085007253 0.016141459 0.0031252065
14000 124 0.0065644583 0.0081558421 0.016569085 0.002456998
14100 124 0.0061341628 0.0076212326 0.016662644 0.0026875721
14200 124 0.0060909188 0.0075675051 0.015930704 0.0030431779
14300 124 0.0063988636 0.0079501032 0.015828756 0.0025592835
14400 124 0.005689416 0.0070686683 0.015368259 0.0024185934
14500 124 0.006236795 0.0077487453 0.015706212 0.0022824924
14600 124 0.0066260155 0.0082323223 0.015933317 0.0025821009
14700 124 0.0062293355 0.0077394775 0.015731127 0.0024183438
14800 124 0.0058972158 0.0073268438 0.015509568 0.0019834714
14900 124 0.0056540749 0.0070247597 0.015502274 0.0023237962
15000 124 0.0052244823 0.0064910235 0.014736944 0.0020149012
Loop time of 0.390059 on 1 procs for 5000 steps with 124 atoms
Performance: 5537628.750 tau/day, 12818.585 timesteps/s, 1.590 Matom-step/s
96.9% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.061332 | 0.061332 | 0.061332 | 0.0 | 15.72
Neigh | 0.0066467 | 0.0066467 | 0.0066467 | 0.0 | 1.70
Comm | 0.00038941 | 0.00038941 | 0.00038941 | 0.0 | 0.10
Output | 0.31536 | 0.31536 | 0.31536 | 0.0 | 80.85
Modify | 0.0049581 | 0.0049581 | 0.0049581 | 0.0 | 1.27
Other | | 0.001377 | | | 0.35
Nlocal: 124 ave 124 max 124 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 99
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 1 1 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 8.438 | 8.438 | 8.438 Mbytes
Step Atoms Temp c_1 c_2 Press
15000 124 0.0052244823 0.0064910235 0.014736944 0.002027817
15100 124 5.2591096 0.16390347 0.10097318 0.12343593
15200 124 5.3142316 0.23238836 0.13250683 0.11589879
15300 124 5.3197373 0.23922878 0.13533309 0.1229824
15400 124 5.3433084 0.26851411 0.14909465 0.11413727
15500 124 5.3597989 0.28900239 0.1554805 0.11750639
15600 124 5.3732393 0.30570096 0.16312751 0.12186127
15700 124 5.3855061 0.32094152 0.16768264 0.12462102
15800 124 5.3941725 0.33170888 0.17231668 0.12143627
15900 124 5.4009664 0.34014985 0.17546962 0.12765975
16000 124 5.414758 0.3572848 0.18266756 0.12653599
16100 124 5.4175427 0.36074458 0.18432923 0.12774876
16200 124 5.4140092 0.35635451 0.18191261 0.13268443
16300 124 5.4017269 0.34109469 0.17372827 0.1307221
16400 124 5.4017349 0.34110458 0.17298641 0.12625563
16500 124 5.4176382 0.36086328 0.1829199 0.13493836
16600 124 5.4175635 0.36077041 0.1829868 0.12403781
16700 124 5.4214857 0.36564356 0.18548453 0.12740232
16800 124 5.4051413 0.34533679 0.1761884 0.12649075
16900 124 5.3907663 0.32747702 0.16871425 0.12243088
17000 124 5.4230599 0.36759934 0.18961103 0.12160116
17100 124 5.4114147 0.35313105 0.18320073 0.12009866
17200 124 5.4079998 0.34888833 0.182884 0.11676493
17300 124 5.4540074 0.40604927 0.21401186 0.12104014
17400 124 5.5303165 0.50085758 0.26286623 0.1191549
17500 124 5.5799815 0.56256257 0.30155566 0.11936249
17600 123 5.6095354 0.548156 0.29969295 0.11836381
17700 123 5.6162622 0.55653017 0.30689847 0.12651704
17800 123 5.5946219 0.52959016 0.29189633 0.1270846
17900 123 5.6425211 0.58921979 0.32434701 0.12601893
18000 123 5.5850993 0.51773555 0.29149119 0.11855274
18100 123 5.5530995 0.47789905 0.27297395 0.12252876
18200 123 5.5744881 0.5045257 0.28929391 0.12580084
18300 123 5.5264747 0.44475381 0.26170733 0.12122144
18400 123 5.5090751 0.4230932 0.24726654 0.11802832
18500 123 5.4509977 0.35079266 0.21099264 0.11612467
18600 123 5.4202769 0.3125485 0.19482059 0.11897009
18700 123 5.4162186 0.30749631 0.19469653 0.12258369
18800 123 5.4370191 0.33339082 0.21014503 0.12166645
18900 123 5.4341683 0.32984186 0.2060126 0.11734766
19000 123 5.4455201 0.34397369 0.21089269 0.1309388
19100 121 5.5328154 0.34681054 0.21343091 0.11975564
19200 121 5.5203006 0.33116707 0.20004465 0.12011697
19300 120 5.5582048 0.32402462 0.19172463 0.12731511
19400 120 5.5618757 0.32862285 0.19220321 0.13103823
19500 120 5.5815117 0.35321951 0.20143386 0.12608573
19600 120 5.5618845 0.32863386 0.18492513 0.12107732
19700 120 5.5611838 0.32775616 0.18008348 0.12358608
19800 120 5.5537958 0.31850174 0.17451709 0.11885715
19900 120 5.5711779 0.34027514 0.18424588 0.11773742
20000 120 5.5693282 0.33795813 0.1832136 0.11851597
Loop time of 0.42962 on 1 procs for 5000 steps with 120 atoms
Performance: 5027701.062 tau/day, 11638.197 timesteps/s, 1.397 Matom-step/s
96.3% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.065684 | 0.065684 | 0.065684 | 0.0 | 15.29
Neigh | 0.030423 | 0.030423 | 0.030423 | 0.0 | 7.08
Comm | 0.0005339 | 0.0005339 | 0.0005339 | 0.0 | 0.12
Output | 0.32273 | 0.32273 | 0.32273 | 0.0 | 75.12
Modify | 0.0087715 | 0.0087715 | 0.0087715 | 0.0 | 2.04
Other | | 0.001478 | | | 0.34
Nlocal: 120 ave 120 max 120 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 433
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
96 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.563 | 7.563 | 7.563 Mbytes
Step Atoms Temp c_1 c_2 Press
20000 120 0.26979851 0.33795813 0.1832136 -0.007144497
20100 120 0.076935724 0.096372118 0.065021814 0.014779222
20200 120 0.068189363 0.08541615 0.058686501 0.0072051902
20300 120 0.072858793 0.091265225 0.059741747 0.0073008259
20400 120 0.064096397 0.080289171 0.054774581 0.013885876
20500 120 0.056290534 0.0705113 0.04961518 0.0011947455
20600 120 0.037451936 0.046913478 0.035446097 0.0046019241
20700 120 0.037362255 0.04680114 0.035577307 0.0068457433
20800 120 0.026254631 0.03288738 0.029046591 0.0072400997
20900 120 0.019914756 0.024945852 0.024193195 0.0086344784
21000 120 0.019965109 0.025008927 0.02348028 0.008745631
21100 120 0.017890973 0.022410798 0.022094331 0.002355569
21200 120 0.018171204 0.022761824 0.021530758 0.0069269189
21300 120 0.016051273 0.020106332 0.019460189 0.0068448898
21400 120 0.015907324 0.019926016 0.017975049 0.008661722
21500 120 0.015802152 0.019794274 0.018060602 0.0025488481
21600 120 0.018428378 0.023083968 0.023151613 0.0061571836
21700 120 0.017193664 0.021537326 0.022957643 0.0070414228
21800 120 0.014270475 0.017875648 0.021240833 -0.0013442377
21900 120 0.013848094 0.01734656 0.020380261 0.0053796285
22000 120 0.012992089 0.016274301 0.021157393 0.0053721355
22100 120 0.014065446 0.017618822 0.020106722 0.0014345844
22200 120 0.010258737 0.012850418 0.016841221 0.01120688
22300 120 0.010211948 0.012791809 0.017093331 0.0078983762
22400 120 0.009548374 0.011960595 0.01734835 0.0038908434
22500 120 0.0085349512 0.010691149 0.016754781 -0.00014023944
22600 120 0.0091912138 0.011513205 0.016019636 0.0045956054
22700 120 0.0087672845 0.010982177 0.016081508 0.0071534675
22800 120 0.0091053807 0.011405687 0.01691824 0.0038334511
22900 120 0.0090436037 0.011328304 0.018774987 0.0025693881
23000 120 0.0090306116 0.011312029 0.018062077 0.0044430084
23100 120 0.0077433932 0.0096996189 0.016375491 0.0064193124
23200 120 0.008478267 0.010620145 0.018103983 -0.00085927214
23300 120 0.007964293 0.0099763249 0.017453711 0.002148413
23400 120 0.009046906 0.01133244 0.01770639 0.020441698
23500 120 0.0091534944 0.011465956 0.017415455 0.002285878
23600 120 0.007748423 0.0097059193 0.015490839 -0.00020592716
23700 120 0.0066912474 0.0083816677 0.014649077 0.006694411
23800 120 0.007247576 0.0090785426 0.01406457 0.0014410036
23900 120 0.0076543035 0.0095880222 0.015050261 0.0097604987
24000 120 0.0072047826 0.0090249382 0.01472033 0.0068222942
24100 120 0.007482661 0.0093730175 0.014902069 0.0075137142
24200 120 0.0068544845 0.0085861437 0.015181158 0.0040487925
24300 120 0.0068959558 0.008638092 0.01593833 0.0042688713
24400 120 0.0071391701 0.0089427499 0.014834245 0.010035527
24500 120 0.0073382922 0.0091921766 0.016818047 0.0041348411
24600 120 0.0071901432 0.0090066004 0.016444181 0.0046487693
24700 120 0.0066092287 0.0082789285 0.016239103 0.0073248869
24800 120 0.0055322913 0.0069299228 0.012402128 -0.0017910989
24900 120 0.0056839126 0.0071198484 0.013482139 0.0041464303
25000 120 0.0043729877 0.0054777425 0.012826668 0.0017027494
Loop time of 0.390633 on 1 procs for 5000 steps with 120 atoms
Performance: 5529481.363 tau/day, 12799.725 timesteps/s, 1.536 Matom-step/s
95.9% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.059297 | 0.059297 | 0.059297 | 0.0 | 15.18
Neigh | 0.011612 | 0.011612 | 0.011612 | 0.0 | 2.97
Comm | 0.00039143 | 0.00039143 | 0.00039143 | 0.0 | 0.10
Output | 0.31326 | 0.31326 | 0.31326 | 0.0 | 80.19
Modify | 0.0047198 | 0.0047198 | 0.0047198 | 0.0 | 1.21
Other | | 0.001351 | | | 0.35
Nlocal: 120 ave 120 max 120 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 173
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,528 @@
LAMMPS (27 Jun 2024)
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551)
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
read_data data.tribox
Reading data file ...
orthogonal box = (-9 -9 -9) to (9 9 9)
1 by 2 by 2 MPI processor grid
reading atoms ...
24 atoms
24 triangles
read_data CPU = 0.002 seconds
pair_style hybrid gran/hooke 4000.0 NULL 100.0 NULL 0.5 1 tri/gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff 1 1 gran/hooke
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group tri type 2
24 atoms in group tri
fix fsl all surface/local NULL
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 48 every 566 steps, 100 by step 1133
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 1 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 = 7.1245553
ghost atom cutoff = 7.1245553
binsize = 3.5622777, bins = 6 6 6
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke, perpetual, skip trim from (3)
attributes: half, newton on, size, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair tri/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 7.337 | 7.338 | 7.342 Mbytes
Step Atoms Temp c_1 c_2 Press
0 24 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 54 0.43980579 0.803783 0.39507978 0.0039968633
200 54 0.65485258 1.1967995 0.5882574 0.0059511637
300 54 0.70118095 1.2814686 0.62987441 0.0063721863
400 54 0.45057814 0.82347039 0.41172861 0.0042376606
500 54 0.42112344 0.76963938 0.38709352 0.0090454068
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 88 0.37193184 0.51362016 0.26489933 0.0063964776
700 88 0.41426632 0.57208206 0.29533003 0.0077177976
800 88 0.45653662 0.63045534 0.32753609 0.0071074229
900 88 0.38450697 0.53098581 0.28581676 0.0054070755
1000 88 0.35211843 0.48625879 0.2664603 0.010024316
1100 88 0.36008043 0.49725392 0.27221103 0.0097378018
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 123 0.35178839 0.43794065 0.23962027 0.012545089
1300 123 0.35870451 0.44655052 0.24405887 0.008071262
1400 123 0.29688415 0.36959048 0.20759032 0.0090729808
1500 123 0.28867163 0.35936673 0.2015813 0.013634049
1600 123 0.21564484 0.26845583 0.15348181 0.0055206244
1700 124 0.16273805 0.20218969 0.11933334 0.0090883805
1800 124 0.11715078 0.14555097 0.092237668 0.0036976622
1900 124 0.068809053 0.085490035 0.059457412 0.0040593291
2000 124 0.059329987 0.073713014 0.051571621 0.0032183709
2100 124 0.04798502 0.059617753 0.041594025 0.0024460605
2200 124 0.042317183 0.052575894 0.035031437 0.0021126303
2300 124 0.016704259 0.020753776 0.016526748 0.0019895102
2400 124 0.012483958 0.015510372 0.012027988 0.0039777224
2500 124 0.0077840862 0.0096711374 0.0076953511 0.0022728499
2600 124 0.0051798085 0.0064355197 0.0055627076 0.0032961978
2700 124 0.0044257315 0.0054986361 0.0048486212 0.0019272834
2800 124 0.0038110636 0.0047349577 0.004136763 0.0016771472
2900 124 0.0033610006 0.0041757886 0.0037955793 0.0016499842
3000 124 0.0036759439 0.0045670818 0.0039739099 0.0017174386
3100 124 0.004879497 0.0060624054 0.0045976588 0.0017124675
3200 124 0.0033701575 0.0041871654 0.0034848116 0.0016618861
3300 124 0.0031218612 0.0038786761 0.0033303126 0.001663116
3400 124 0.0028009663 0.0034799884 0.0030376486 0.0016166164
3500 124 0.0030247379 0.0037580077 0.0030722102 0.0024345187
3600 124 0.0017951568 0.0022303463 0.0019956461 0.0014714833
3700 124 0.0014929161 0.0018548352 0.0017092596 0.0016423379
3800 124 0.0014239364 0.0017691331 0.0016212959 0.0020903921
3900 124 0.00090885869 0.0011291881 0.0012044307 0.0015442055
4000 124 0.00074121189 0.00092089962 0.0010437154 0.0015483599
4100 124 0.00069161146 0.00085927485 0.00094845915 0.0015120623
4200 124 0.00056635858 0.00070365763 0.00080321665 0.0014656722
4300 124 0.00050531087 0.00062781047 0.00073303224 0.0015267341
4400 124 0.00045239991 0.00056207262 0.00068482519 0.0016991771
4500 124 0.00042229712 0.00052467217 0.00065368139 0.001504402
4600 124 0.00038562197 0.00047910609 0.00061752973 0.0018182444
4700 124 0.00034669692 0.00043074466 0.00057495931 0.0015077949
4800 124 0.00030333089 0.00037686565 0.00052302102 0.0014545772
4900 124 0.00029290547 0.00036391286 0.00051399552 0.0014965779
5000 124 0.00027955382 0.00034732445 0.00049201819 0.0015020264
Loop time of 0.439493 on 4 procs for 5000 steps with 124 atoms
Performance: 4914759.070 tau/day, 11376.757 timesteps/s, 1.411 Matom-step/s
92.9% 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.0019905 | 0.016708 | 0.032935 | 11.4 | 3.80
Neigh | 0.0018982 | 0.0049817 | 0.007949 | 4.1 | 1.13
Comm | 0.067011 | 0.083326 | 0.098679 | 5.1 | 18.96
Output | 0.22205 | 0.26015 | 0.32361 | 8.1 | 59.19
Modify | 0.0014787 | 0.0027393 | 0.0042002 | 2.4 | 0.62
Other | | 0.07159 | | | 16.29
Nlocal: 31 ave 55 max 6 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 93 ave 118 max 69 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 276
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 8.589 | 8.601 | 8.614 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 124 0.00027955382 0.00034732445 0.00049201819 0.0015031883
5100 124 5.2213292 0.11696419 0.070191681 0.11567903
5200 124 5.2494151 0.15185888 0.088948694 0.11228004
5300 124 5.2572413 0.16158228 0.091155723 0.11191697
5400 124 5.2622945 0.16786055 0.091191608 0.11200573
5500 124 5.2694754 0.17678222 0.094474963 0.11274427
5600 124 5.2791339 0.18878212 0.099452746 0.11279348
5700 124 5.2936967 0.20687533 0.10794158 0.11359394
5800 124 5.3074309 0.22393911 0.11535088 0.11345736
5900 124 5.3170002 0.23582815 0.1211834 0.11451637
6000 124 5.3264792 0.24760517 0.12691981 0.11634565
6100 124 5.329844 0.25178562 0.12907012 0.11440026
6200 124 5.3347032 0.25782277 0.13173987 0.11647845
6300 124 5.340892 0.26551199 0.13511823 0.11510697
6400 124 5.3470903 0.27321282 0.13821674 0.11586585
6500 124 5.3530895 0.28066635 0.14158978 0.11592173
6600 124 5.3580451 0.28682334 0.14446804 0.11687967
6700 124 5.3594973 0.28862764 0.14530407 0.11693613
6800 124 5.362035 0.2917805 0.14687648 0.11633757
6900 124 5.3630264 0.29301222 0.14751378 0.11682536
7000 124 5.3660652 0.29678769 0.14942643 0.11653024
7100 124 5.368112 0.29933078 0.15041714 0.11744944
7200 124 5.3687484 0.30012138 0.15086898 0.1169356
7300 124 5.3685878 0.29992191 0.15057777 0.11770109
7400 124 5.3701975 0.3019218 0.15147912 0.11740293
7500 124 5.3710321 0.30295873 0.15204994 0.1177079
7600 124 5.3727095 0.30504273 0.15306656 0.11818598
7700 124 5.3736085 0.30615972 0.15355634 0.11726622
7800 124 5.375909 0.30901792 0.15495105 0.118266
7900 124 5.376276 0.30947392 0.15519466 0.11718369
8000 124 5.3791711 0.31307082 0.15690211 0.11765829
8100 124 5.3787496 0.31254718 0.1566274 0.11760075
8200 124 5.3791354 0.31302651 0.15693452 0.11856675
8300 124 5.3812285 0.31562697 0.15815299 0.11772296
8400 124 5.38166 0.31616311 0.15833869 0.11858638
8500 124 5.3821533 0.31677599 0.15873083 0.11727274
8600 124 5.3822551 0.3169025 0.15879148 0.11800294
8700 124 5.3820649 0.31666611 0.15870109 0.11689663
8800 124 5.3829798 0.31780283 0.15920518 0.11720016
8900 124 5.3847961 0.32005951 0.16021329 0.12034865
9000 124 5.3863825 0.32203038 0.16117074 0.11771618
9100 124 5.3858285 0.32134218 0.16090793 0.1179112
9200 124 5.386223 0.32183231 0.16127025 0.11804752
9300 124 5.3862986 0.32192623 0.16133847 0.11757523
9400 124 5.387428 0.3233294 0.16204845 0.11778809
9500 124 5.389036 0.32532724 0.1628191 0.1189939
9600 124 5.390873 0.32760951 0.16393076 0.11809517
9700 124 5.3902745 0.32686591 0.16360448 0.11797716
9800 124 5.3912122 0.32803095 0.16421139 0.1182008
9900 124 5.3919947 0.32900318 0.16468113 0.11897222
10000 124 5.3938706 0.33133377 0.16573607 0.11850659
Loop time of 0.451177 on 4 procs for 5000 steps with 124 atoms
Performance: 4787480.364 tau/day, 11082.130 timesteps/s, 1.374 Matom-step/s
94.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.0055802 | 0.027018 | 0.048894 | 13.0 | 5.99
Neigh | 0.001921 | 0.0070952 | 0.012313 | 6.1 | 1.57
Comm | 0.077928 | 0.10164 | 0.12495 | 7.2 | 22.53
Output | 0.20641 | 0.24209 | 0.30176 | 7.9 | 53.66
Modify | 0.0029541 | 0.0044657 | 0.0061323 | 2.2 | 0.99
Other | | 0.06887 | | | 15.26
Nlocal: 31 ave 59 max 8 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Nghost: 93 ave 116 max 65 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 316
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
100 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.714 | 7.726 | 7.739 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 124 0.26668328 0.33133377 0.16573607 0.017328247
10100 124 0.056200102 0.069824369 0.044872322 0.0039707466
10200 124 0.042267205 0.0525138 0.041203231 0.0044598573
10300 124 0.029663878 0.036855122 0.033120538 0.0070651926
10400 124 0.024669667 0.030650193 0.03033595 0.0041946492
10500 124 0.022848926 0.02838806 0.028689326 0.0030599292
10600 124 0.020458165 0.02541772 0.026302636 0.0058319745
10700 124 0.017807934 0.022125009 0.025740761 0.0027488894
10800 124 0.015035885 0.018680949 0.023588376 0.0022903775
10900 124 0.013888267 0.01725512 0.022440279 0.0027634791
11000 124 0.011608462 0.014422635 0.019348673 0.0045780072
11100 124 0.011162709 0.01386882 0.01849931 0.0023451747
11200 124 0.011086175 0.013773732 0.017917304 0.0024658252
11300 124 0.010190232 0.012660591 0.017180502 0.0020222246
11400 124 0.0097496547 0.012113207 0.016751983 0.0030135131
11500 124 0.0093133921 0.011571184 0.016521609 0.002490532
11600 124 0.0081681115 0.01014826 0.015564426 0.0019455596
11700 124 0.0076826338 0.0095450905 0.015672443 0.0022541556
11800 124 0.0073075107 0.0090790284 0.015351511 0.0032455658
11900 124 0.0075051682 0.0093246029 0.016009774 0.0018035686
12000 124 0.0072372959 0.0089917919 0.015490758 0.0042935815
12100 124 0.006916344 0.0085930334 0.014798831 0.0029189494
12200 124 0.0066805653 0.0083000963 0.014911612 0.0027424779
12300 124 0.0061444991 0.0076340746 0.014460476 0.0030202428
12400 124 0.0061696139 0.0076652778 0.014542082 0.0036198571
12500 124 0.0059365088 0.0073756625 0.014858158 0.0027444353
12600 124 0.0058780839 0.007303074 0.015398698 0.0020529534
12700 124 0.0062768514 0.0077985124 0.015619374 0.0025399066
12800 124 0.0060828914 0.0075575317 0.015305797 0.0025106775
12900 124 0.0059859508 0.0074370904 0.014550513 0.0023214829
13000 124 0.0057442406 0.0071367837 0.014207912 0.0023133715
13100 124 0.0060965462 0.0075744967 0.015121064 0.0022806913
13200 124 0.006511295 0.0080897907 0.015347205 0.0018927714
13300 124 0.0054721076 0.0067986791 0.01358699 0.002764088
13400 124 0.0056662979 0.0070399458 0.01408639 0.0027430251
13500 124 0.0053656855 0.0066664577 0.013407158 0.0038500999
13600 124 0.0053355018 0.0066289568 0.014186081 0.0027071631
13700 124 0.0050751903 0.0063055394 0.014588279 0.0023383507
13800 124 0.0049370805 0.0061339485 0.014929944 0.0025317664
13900 124 0.0051863562 0.0064436546 0.015145572 0.0030657941
14000 124 0.0048799741 0.0060629981 0.014209027 0.003051829
14100 124 0.0045561374 0.0056606556 0.013907584 0.002249473
14200 124 0.0044230598 0.0054953167 0.013901718 0.0038863007
14300 124 0.0042868083 0.0053260345 0.013151104 0.0031267464
14400 124 0.0042395107 0.0052672709 0.012829998 0.0028603263
14500 124 0.0041975299 0.0052151129 0.012763534 0.0023412049
14600 124 0.0045709375 0.0056790436 0.014449848 0.0022069733
14700 124 0.0044899655 0.005578442 0.015608166 0.0020443675
14800 124 0.0042163929 0.0052385487 0.015808795 0.0018318737
14900 124 0.0039866761 0.004953143 0.014823117 0.0024666454
15000 124 0.0041610334 0.0051697688 0.013201413 0.0040669573
Loop time of 0.997319 on 4 procs for 5000 steps with 124 atoms
Performance: 2165805.538 tau/day, 5013.439 timesteps/s, 621.666 katom-step/s
92.8% 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.0016601 | 0.045665 | 0.089499 | 20.5 | 4.58
Neigh | 0.001147 | 0.0040993 | 0.0071947 | 4.6 | 0.41
Comm | 0.17379 | 0.21304 | 0.2523 | 8.3 | 21.36
Output | 0.46514 | 0.56417 | 0.70813 | 12.6 | 56.57
Modify | 0.0017154 | 0.0051509 | 0.0088501 | 4.6 | 0.52
Other | | 0.1652 | | | 16.56
Nlocal: 31 ave 57 max 8 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Nghost: 93 ave 116 max 67 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 89
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 1 1 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 8.589 | 8.601 | 8.614 Mbytes
Step Atoms Temp c_1 c_2 Press
15000 124 0.0041610334 0.0051697688 0.013201413 0.004050505
15100 124 5.23434 0.13312915 0.086755644 0.11559576
15200 124 5.2844675 0.19540875 0.11840085 0.1141468
15300 124 5.3318404 0.25426596 0.14579094 0.11909121
15400 124 5.3303276 0.25238652 0.14369585 0.11823013
15500 124 5.3230136 0.24329933 0.13724045 0.12187991
15600 124 5.3578424 0.28657151 0.15433671 0.12381644
15700 123 5.4013676 0.28900827 0.15453476 0.12259662
15800 123 5.4118019 0.30199797 0.15885725 0.12133482
15900 123 5.4208828 0.31330268 0.16122905 0.12182528
16000 123 5.4281775 0.32238394 0.1649621 0.12339788
16100 123 5.4256507 0.31923831 0.16299633 0.11986599
16200 123 5.4289714 0.32337225 0.16480742 0.12883298
16300 123 5.4369808 0.33334311 0.16946939 0.12452535
16400 123 5.4245634 0.31788472 0.16234678 0.12543716
16500 123 5.3981175 0.28496229 0.14752224 0.12546557
16600 123 5.380002 0.26241035 0.13693027 0.12564509
16700 123 5.3577287 0.23468232 0.12320315 0.12447887
16800 123 5.3887674 0.27332227 0.14161821 0.12558582
16900 123 5.3808542 0.26347121 0.13707725 0.12105334
17000 123 5.3780823 0.26002045 0.13613655 0.11611436
17100 123 5.3680186 0.24749217 0.13202509 0.12050881
17200 123 5.3684375 0.24801367 0.13439899 0.11752469
17300 123 5.4125961 0.3029867 0.16565047 0.11809568
17400 122 5.5149345 0.37796948 0.20589267 0.11706067
17500 122 5.5376072 0.40625192 0.22528229 0.12168884
17600 122 5.594801 0.47759671 0.26839568 0.11784984
17700 122 5.6275885 0.51849664 0.29262051 0.12179888
17800 122 5.6620933 0.5615387 0.32018546 0.13677725
17900 122 5.6781565 0.58157636 0.3344357 0.12144476
18000 122 5.6282244 0.51928991 0.30159388 0.1204454
18100 122 5.586202 0.46687012 0.27307657 0.11222952
18200 122 5.5637664 0.43888345 0.26310303 0.12241507
18300 122 5.5396829 0.40884116 0.24778525 0.1180911
18400 122 5.4933462 0.35103977 0.21102933 0.11419006
18500 122 5.4481058 0.29460584 0.17806848 0.11684132
18600 122 5.4233233 0.26369154 0.16408249 0.1156897
18700 122 5.4169852 0.2557853 0.16164551 0.11432694
18800 122 5.402297 0.23746293 0.15603756 0.11338406
18900 122 5.4104328 0.24761171 0.16157759 0.11644593
19000 122 5.412422 0.25009306 0.16543071 0.12348188
19100 121 5.4546597 0.24911594 0.16510456 0.11730105
19200 121 5.477336 0.27746126 0.17852522 0.12205725
19300 121 5.4969126 0.30193201 0.18816473 0.12510238
19400 121 5.4919974 0.29578804 0.18327042 0.13220061
19500 121 5.5032315 0.30983075 0.18311811 0.12373881
19600 121 5.5150579 0.32461371 0.188055 0.12242899
19700 121 5.5066378 0.31408861 0.17504793 0.11846492
19800 121 5.5088848 0.31689728 0.17340496 0.12928325
19900 121 5.518969 0.3295026 0.17902712 0.12421202
20000 121 5.500687 0.30665007 0.16793997 0.11961173
Loop time of 0.846225 on 4 procs for 5000 steps with 121 atoms
Performance: 2552512.312 tau/day, 5908.593 timesteps/s, 714.940 katom-step/s
93.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.014413 | 0.044158 | 0.072833 | 13.5 | 5.22
Neigh | 0.0052624 | 0.017126 | 0.029893 | 8.6 | 2.02
Comm | 0.16098 | 0.19782 | 0.23481 | 7.8 | 23.38
Output | 0.36418 | 0.45212 | 0.56168 | 11.2 | 53.43
Modify | 0.0060017 | 0.0089185 | 0.012537 | 3.0 | 1.05
Other | | 0.1261 | | | 14.90
Nlocal: 30.25 ave 70 max 6 min
Histogram: 2 0 0 0 1 0 0 0 0 1
Nghost: 90.75 ave 115 max 51 min
Histogram: 1 0 0 0 0 1 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 397
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
97 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.714 | 7.735 | 7.772 Mbytes
Step Atoms Temp c_1 c_2 Press
20000 121 0.24532005 0.30665007 0.16793997 -0.012946091
20100 121 0.070310831 0.087888539 0.059490062 0.0061478766
20200 121 0.058503348 0.073129185 0.048875925 0.0080927743
20300 121 0.074158085 0.092697606 0.057028332 0.0049379442
20400 121 0.069187269 0.086484086 0.053655733 0.0084660817
20500 121 0.049853491 0.062316864 0.042577287 0.0079711185
20600 121 0.027931559 0.034914449 0.024826071 0.0076385601
20700 121 0.02435771 0.030447138 0.023586479 0.0071381857
20800 121 0.027310414 0.034138017 0.026926085 0.0043612389
20900 121 0.029470455 0.036838069 0.029013973 0.0062985385
21000 121 0.023688651 0.029610814 0.025737577 0.0057806959
21100 121 0.023374366 0.029217957 0.025924122 0.0058256936
21200 121 0.021626125 0.027032657 0.023553381 0.014915428
21300 121 0.021517013 0.026896267 0.022266041 0.004819531
21400 121 0.016777636 0.020972045 0.018448572 0.009234911
21500 121 0.012262338 0.015327922 0.015298231 0.0093816891
21600 121 0.010918726 0.013648408 0.014833772 0.0042474881
21700 121 0.011053972 0.013817464 0.014459702 -0.00021820222
21800 121 0.010129668 0.012662085 0.013081406 0.0093930484
21900 121 0.010085003 0.012606253 0.014417094 0.0014178838
22000 121 0.0094973723 0.011871715 0.013900622 0.0093877537
22100 121 0.0080430026 0.010053753 0.013679106 0.011613255
22200 121 0.0084072004 0.010509001 0.016027076 0.0035671687
22300 121 0.0083085041 0.01038563 0.016132368 0.007693786
22400 121 0.0079992179 0.0099990223 0.013265655 0.0073563811
22500 121 0.0075222565 0.0094028207 0.012763827 0.005799044
22600 121 0.0076786112 0.0095982641 0.013866351 0.0030214484
22700 121 0.0075068394 0.0093835492 0.01384418 0.0033702789
22800 121 0.0075163502 0.0093954378 0.01466975 0.0088268737
22900 121 0.0073136786 0.0091420982 0.01666669 0.0020531991
23000 121 0.0065872318 0.0082340397 0.017972587 0.0034194419
23100 121 0.0063174876 0.0078968594 0.017018904 0.0051829986
23200 121 0.0058594142 0.0073242678 0.015780468 0.0093443152
23300 121 0.0050717858 0.0063397323 0.015531664 0.0087588922
23400 121 0.0044421678 0.0055527097 0.014248905 0.010646639
23500 121 0.0052180265 0.0065225331 0.014224204 0.0052692738
23600 121 0.0050225965 0.0062782457 0.013251361 8.1489022e-05
23700 121 0.0043059081 0.0053823852 0.012534622 0.011277239
23800 121 0.005020183 0.0062752288 0.013523699 0.0054700239
23900 121 0.0043855799 0.0054819749 0.011206169 0.0045566463
24000 121 0.0046936439 0.0058670549 0.012484576 0.0019612692
24100 121 0.0043263983 0.0054079978 0.011282329 0.011449127
24200 121 0.0046535879 0.0058169849 0.01164271 0.0025540746
24300 121 0.0047667406 0.0059584258 0.012209842 0.010676731
24400 121 0.0051690398 0.0064612997 0.01360687 0.0052054694
24500 121 0.0052783564 0.0065979455 0.015574736 0.0058826112
24600 121 0.0050801526 0.0063501908 0.013665316 0.0068012924
24700 121 0.0045361573 0.0056701966 0.013281602 0.0050417691
24800 121 0.0053013393 0.0066266741 0.012795325 0.0065965543
24900 121 0.0049826013 0.0062282516 0.012373501 0.0044363731
25000 121 0.0047299253 0.0059124066 0.012200307 0.0093926226
Loop time of 0.573761 on 4 procs for 5000 steps with 121 atoms
Performance: 3764633.700 tau/day, 8714.430 timesteps/s, 1.054 Matom-step/s
92.9% 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.001103 | 0.024207 | 0.060775 | 16.0 | 4.22
Neigh | 0.00084396 | 0.0046703 | 0.010272 | 5.7 | 0.81
Comm | 0.096646 | 0.13337 | 0.15528 | 6.6 | 23.25
Output | 0.25027 | 0.31495 | 0.39587 | 9.8 | 54.89
Modify | 0.0012358 | 0.0031766 | 0.0056404 | 3.5 | 0.55
Other | | 0.09338 | | | 16.28
Nlocal: 30.25 ave 66 max 5 min
Histogram: 2 0 0 0 0 0 1 0 0 1
Nghost: 90.75 ave 116 max 55 min
Histogram: 1 0 0 1 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 155
Dangerous builds = 0
Total wall time: 0:00:03

View File

@ -0,0 +1,491 @@
LAMMPS (27 Jun 2024)
# pouring spheres into box made of triangles
units lj
atom_style sphere
#atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -10 10 -10 10 -10 10 units box
create_box 2 box # simply for dump_modify to color lines = green
Created orthogonal box = (-10 -10 -10) to (10 10 10)
1 by 1 by 1 MPI processor grid
pair_style gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
molecule tris surf.tribox
Read molecule template tris:
LAMMPS data file for tri box
1 molecules
0 fragments
0 atoms with max type 0
0 bonds with max type 0
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
24 triangles with 14 points
fix 20 all surface/global tris hooke 4000.0 NULL 100.0 NULL 0.5 1
#fix 20 all surface/global tris hooke/history # 4000.0 NULL 100.0 NULL 0.5 1
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 0 -1
#fix 4 all viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
fix ins all pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 48 every 566 steps, 100 by step 1133
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 fix 20 type 2 0.5
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 1.3
binsize = 0.65, bins = 31 31 31
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair gran/hooke, perpetual
attributes: half, newton on, size
pair build: half/size/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 0.5873 | 0.5873 | 0.5873 Mbytes
Step Atoms Temp c_1 c_2 Press
0 0 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 30 0.803783 0.803783 0.39507978 0.0029137134
200 30 1.1967995 1.1967995 0.5882574 0.0043383984
300 30 1.2814686 1.2814686 0.62987441 0.0046453238
400 30 0.82347039 0.82347039 0.41172861 0.0029850802
500 30 0.76963938 0.76963938 0.38709352 0.0042867255
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 64 0.51325196 0.51325196 0.26472957 0.0045780407
700 64 0.57133229 0.57133229 0.29476966 0.0046847812
800 64 0.630634 0.630634 0.32751956 0.0050038133
900 64 0.54233611 0.54233611 0.28819808 0.0052880896
1000 64 0.48543152 0.48543152 0.26491902 0.0064773948
1100 64 0.47303609 0.47303609 0.2578388 0.0057125611
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 99 0.40053109 0.40053109 0.2195167 0.0081778049
1300 99 0.42696772 0.42696772 0.23049402 0.006385146
1400 99 0.37139574 0.37139574 0.20331799 0.0074485307
1500 99 0.33478846 0.33478846 0.18670496 0.0061673941
1600 99 0.29982872 0.29982872 0.16693769 0.0051747985
1700 100 0.2069625 0.2069625 0.12302495 0.005783623
1800 100 0.12902068 0.12902068 0.08608601 0.0019792233
1900 100 0.080857094 0.080857094 0.059672509 0.0022973108
2000 100 0.064403955 0.064403955 0.046429731 0.0011922926
2100 100 0.056475498 0.056475498 0.038678923 0.00085304992
2200 100 0.050018256 0.050018256 0.034384821 0.0032112539
2300 100 0.021868304 0.021868304 0.017658151 0.0011526373
2400 100 0.022189236 0.022189236 0.016714436 0.00056488482
2500 100 0.012569738 0.012569738 0.010200523 0.00061305414
2600 100 0.010861951 0.010861951 0.0086986505 0.00028075976
2700 100 0.0092647871 0.0092647871 0.0071124847 0.00043064637
2800 100 0.0078527688 0.0078527688 0.0059155703 0.00016902461
2900 100 0.0048376734 0.0048376734 0.0039864566 9.6898167e-05
3000 100 0.004997394 0.004997394 0.0038195379 0.00012912771
3100 100 0.0025381263 0.0025381263 0.0022290621 9.3139494e-05
3200 100 0.0023614621 0.0023614621 0.0020627353 0.00043394794
3300 100 0.0018926758 0.0018926758 0.0016726508 9.015816e-05
3400 100 0.0016956727 0.0016956727 0.0015060379 9.8437955e-05
3500 100 0.0020822011 0.0020822011 0.0016148425 6.8104893e-05
3600 100 0.0010660921 0.0010660921 0.0010106443 -4.0921854e-05
3700 100 0.00093117128 0.00093117128 0.00086120243 3.9299397e-05
3800 100 0.00083426775 0.00083426775 0.00075721786 3.2376e-05
3900 100 0.00076790351 0.00076790351 0.00070733354 3.2793518e-05
4000 100 0.0006859536 0.0006859536 0.00062258677 3.0547763e-05
4100 100 0.00050291116 0.00050291116 0.00047200581 0.00015040263
4200 100 0.00038735513 0.00038735513 0.0003849192 0.00017016843
4300 100 0.00031672623 0.00031672623 0.00032789248 7.1880229e-05
4400 100 0.00027595545 0.00027595545 0.00029274116 3.120052e-05
4500 100 0.00027092394 0.00027092394 0.00028257706 4.1409733e-05
4600 100 0.00026641048 0.00026641048 0.00027631265 3.2258687e-05
4700 100 0.0002550395 0.0002550395 0.00026456068 4.4752996e-05
4800 100 0.00023866037 0.00023866037 0.00025120225 3.3651155e-05
4900 100 0.00019734428 0.00019734428 0.0002099377 2.7700004e-05
5000 100 0.00019733184 0.00019733184 0.00020831062 2.6903281e-05
Loop time of 0.377792 on 1 procs for 5000 steps with 100 atoms
Performance: 5717435.568 tau/day, 13234.805 timesteps/s, 1.323 Matom-step/s
98.4% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0034096 | 0.0034096 | 0.0034096 | 0.0 | 0.90
Neigh | 0.0046279 | 0.0046279 | 0.0046279 | 0.0 | 1.22
Comm | 0.00036326 | 0.00036326 | 0.00036326 | 0.0 | 0.10
Output | 0.31831 | 0.31831 | 0.31831 | 0.0 | 84.25
Modify | 0.049948 | 0.049948 | 0.049948 | 0.0 | 13.22
Other | | 0.001137 | | | 0.30
Nlocal: 100 ave 100 max 100 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: 160 ave 160 max 160 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 160
Ave neighs/atom = 1.6
Neighbor list builds = 270
Dangerous builds = 0
fix_modify 20 move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.714 | 4.714 | 4.714 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 100 0.00019733184 0.00019733184 0.00020831062 2.6930089e-05
5100 100 0.14755911 0.14755911 0.085321575 0.0037275005
5200 100 0.17345004 0.17345004 0.10013131 0.0029005613
5300 100 0.17839393 0.17839393 0.09955336 0.0024744353
5400 100 0.18892743 0.18892743 0.10178919 0.0032939874
5500 100 0.19613791 0.19613791 0.10380256 0.0027253339
5600 100 0.19978293 0.19978293 0.10442183 0.0031193701
5700 100 0.21239814 0.21239814 0.10965684 0.0027404998
5800 100 0.22432265 0.22432265 0.11476437 0.0031430877
5900 100 0.22942225 0.22942225 0.11733388 0.00357628
6000 100 0.24043354 0.24043354 0.12272731 0.003255827
6100 100 0.25159401 0.25159401 0.1279307 0.0040378705
6200 100 0.25902708 0.25902708 0.13158752 0.0036512959
6300 100 0.2659723 0.2659723 0.13535001 0.0037298324
6400 100 0.27607055 0.27607055 0.14001655 0.0043863861
6500 100 0.28259585 0.28259585 0.14337861 0.004432214
6600 100 0.29041535 0.29041535 0.14658628 0.0041374757
6700 100 0.29338383 0.29338383 0.14816762 0.0043726723
6800 100 0.29363497 0.29363497 0.14803605 0.0048496941
6900 100 0.29819446 0.29819446 0.14992058 0.0048661826
7000 100 0.30253288 0.30253288 0.15178707 0.0047893404
7100 100 0.30364521 0.30364521 0.15238027 0.0053735204
7200 100 0.30571022 0.30571022 0.15341639 0.0050547621
7300 100 0.30762729 0.30762729 0.15433251 0.0048579985
7400 100 0.30739457 0.30739457 0.15429161 0.0052840169
7500 100 0.3095106 0.3095106 0.15546551 0.0047742904
7600 100 0.30994994 0.30994994 0.15560402 0.0055289317
7700 100 0.3102136 0.3102136 0.1555494 0.0053911148
7800 100 0.31109652 0.31109652 0.15598755 0.0050957646
7900 100 0.31190144 0.31190144 0.15640137 0.0050144069
8000 100 0.3124433 0.3124433 0.15676067 0.0049291948
8100 100 0.31255831 0.31255831 0.15682783 0.0053772662
8200 100 0.31276764 0.31276764 0.15700445 0.0051137616
8300 100 0.31476621 0.31476621 0.15777763 0.0050115786
8400 100 0.31520108 0.31520108 0.1579466 0.0052663181
8500 100 0.31519638 0.31519638 0.15797839 0.0054592691
8600 100 0.31650736 0.31650736 0.15853548 0.006061159
8700 100 0.31783185 0.31783185 0.15910269 0.0055642729
8800 100 0.31962922 0.31962922 0.15981552 0.0051073677
8900 100 0.32028059 0.32028059 0.16016593 0.0051129724
9000 100 0.32067355 0.32067355 0.16033852 0.005334504
9100 100 0.32073134 0.32073134 0.16036476 0.0052193698
9200 100 0.32149618 0.32149618 0.16073834 0.0051959338
9300 100 0.32200413 0.32200413 0.16101431 0.0053371119
9400 100 0.32243427 0.32243427 0.16127313 0.0051442587
9500 100 0.32287887 0.32287887 0.16159452 0.0051133998
9600 100 0.32358279 0.32358279 0.16193072 0.0051698096
9700 100 0.32486591 0.32486591 0.16249108 0.0052421695
9800 100 0.32481094 0.32481094 0.16244971 0.0052881334
9900 100 0.32619742 0.32619742 0.16300857 0.0056091381
10000 100 0.32685101 0.32685101 0.16333907 0.0052565109
Loop time of 0.395516 on 1 procs for 5000 steps with 100 atoms
Performance: 5461219.023 tau/day, 12641.711 timesteps/s, 1.264 Matom-step/s
100.0% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0097241 | 0.0097241 | 0.0097241 | 0.0 | 2.46
Neigh | 0.0063725 | 0.0063725 | 0.0063725 | 0.0 | 1.61
Comm | 0.00038378 | 0.00038378 | 0.00038378 | 0.0 | 0.10
Output | 0.31516 | 0.31516 | 0.31516 | 0.0 | 79.68
Modify | 0.062652 | 0.062652 | 0.062652 | 0.0 | 15.84
Other | | 0.001224 | | | 0.31
Nlocal: 100 ave 100 max 100 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: 190 ave 190 max 190 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 190
Ave neighs/atom = 1.9
Neighbor list builds = 334
Dangerous builds = 0
fix_modify 20 move none
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.714 | 4.714 | 4.714 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 100 0.32685101 0.32685101 0.16333907 0.0052114688
10100 100 0.082150677 0.082150677 0.051495507 0.0065164512
10200 100 0.044140364 0.044140364 0.034724328 0.0010465239
10300 100 0.033122648 0.033122648 0.026625827 0.0022974917
10400 100 0.026649705 0.026649705 0.021846707 0.00035032509
10500 100 0.022611369 0.022611369 0.018405546 0.0004069116
10600 100 0.018296124 0.018296124 0.014829351 0.00026270833
10700 100 0.015248747 0.015248747 0.012084705 0.00023227455
10800 100 0.014989372 0.014989372 0.011849067 0.00054473331
10900 100 0.011865503 0.011865503 0.0094526639 0.00028431427
11000 100 0.0096206477 0.0096206477 0.0077795159 0.00012996686
11100 100 0.0085270379 0.0085270379 0.0069458369 0.00021692214
11200 100 0.00760939 0.00760939 0.0062336019 0.00015816658
11300 100 0.0070094711 0.0070094711 0.0056987409 9.7160075e-05
11400 100 0.0064681327 0.0064681327 0.0053334513 0.0001693687
11500 100 0.0054400476 0.0054400476 0.0044705267 8.1382559e-05
11600 100 0.005206949 0.005206949 0.0042892806 7.0309283e-05
11700 100 0.0044637648 0.0044637648 0.0037251717 5.4172517e-05
11800 100 0.0039969168 0.0039969168 0.003362444 2.0226315e-05
11900 100 0.0033117132 0.0033117132 0.0027762101 5.2311253e-05
12000 100 0.0031073405 0.0031073405 0.0025984799 3.9890528e-05
12100 100 0.0029847617 0.0029847617 0.0025070771 -5.7259344e-06
12200 100 0.0028458878 0.0028458878 0.0024108535 3.5217862e-05
12300 100 0.0026501923 0.0026501923 0.0022711794 0.00012033569
12400 100 0.0025425504 0.0025425504 0.0021847643 3.1464061e-05
12500 100 0.0024161319 0.0024161319 0.0020843813 0.00014941327
12600 100 0.002341327 0.002341327 0.0020232445 2.8973921e-05
12700 100 0.0022334192 0.0022334192 0.0019425572 3.0790164e-05
12800 100 0.0021889403 0.0021889403 0.0019088353 2.9638662e-05
12900 100 0.0020442842 0.0020442842 0.0018049012 2.5298016e-05
13000 100 0.001803154 0.001803154 0.0016328702 2.2314031e-05
13100 100 0.0016791405 0.0016791405 0.0015327583 2.2967562e-05
13200 100 0.001622137 0.001622137 0.0014810169 4.0326561e-05
13300 100 0.001601531 0.001601531 0.0014650816 1.9818946e-05
13400 100 0.0015591399 0.0015591399 0.0014123726 2.119773e-05
13500 100 0.0014546357 0.0014546357 0.0013328423 1.8001117e-05
13600 100 0.0013998773 0.0013998773 0.0012913696 2.6202181e-05
13700 100 0.001367574 0.001367574 0.0012631494 1.6923729e-05
13800 100 0.001225732 0.001225732 0.0011125165 1.4445147e-05
13900 100 0.0012086291 0.0012086291 0.0010972374 2.8597468e-05
14000 100 0.0011916306 0.0011916306 0.0010833978 7.2381933e-05
14100 100 0.0011461149 0.0011461149 0.0010110271 1.4183172e-05
14200 100 0.0011209785 0.0011209785 0.00099190436 1.1546608e-05
14300 100 0.0011050802 0.0011050802 0.00098070422 1.3675367e-05
14400 100 0.0010910417 0.0010910417 0.00097025303 1.3501641e-05
14500 100 0.0010645152 0.0010645152 0.00093785696 1.3173375e-05
14600 100 0.0010479185 0.0010479185 0.00092353031 2.5164629e-05
14700 100 0.00099034477 0.00099034477 0.0008638973 1.2874356e-05
14800 100 0.00099115544 0.00099115544 0.00086195396 1.2265549e-05
14900 100 0.00097510619 0.00097510619 0.00083043649 6.0289327e-05
15000 100 0.00095883902 0.00095883902 0.00080522184 1.1865633e-05
Loop time of 0.389832 on 1 procs for 5000 steps with 100 atoms
Performance: 5540855.231 tau/day, 12826.054 timesteps/s, 1.283 Matom-step/s
96.0% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0031065 | 0.0031065 | 0.0031065 | 0.0 | 0.80
Neigh | 0.0014317 | 0.0014317 | 0.0014317 | 0.0 | 0.37
Comm | 0.000314 | 0.000314 | 0.000314 | 0.0 | 0.08
Output | 0.32805 | 0.32805 | 0.32805 | 0.0 | 84.15
Modify | 0.055756 | 0.055756 | 0.055756 | 0.0 | 14.30
Other | | 0.001173 | | | 0.30
Nlocal: 100 ave 100 max 100 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: 165 ave 165 max 165 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 165
Ave neighs/atom = 1.65
Neighbor list builds = 69
Dangerous builds = 0
fix_modify 20 move rotate 0 0 0 1 1 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.714 | 4.714 | 4.714 Mbytes
Step Atoms Temp c_1 c_2 Press
15000 100 0.00095883902 0.00095883902 0.00080522184 1.1865633e-05
15100 100 0.16225441 0.16225441 0.098498099 0.0064159333
15200 100 0.22482098 0.22482098 0.12948232 0.003576331
15300 100 0.2458026 0.2458026 0.1393646 0.006749306
15400 100 0.26239222 0.26239222 0.1469859 0.0089800228
15500 100 0.28687382 0.28687382 0.15847135 0.0079704333
15600 100 0.28622953 0.28622953 0.15902139 0.0082281462
15700 100 0.30668089 0.30668089 0.16265483 0.014688893
15800 100 0.33007713 0.33007713 0.17247344 0.0099574571
15900 100 0.35773029 0.35773029 0.18298391 0.01415523
16000 100 0.36309971 0.36309971 0.18514042 0.010763173
16100 100 0.36974105 0.36974105 0.18746237 0.010738235
16200 100 0.36988383 0.36988383 0.18775314 0.014768427
16300 100 0.37560588 0.37560588 0.19010652 0.014297415
16400 100 0.37747146 0.37747146 0.19143031 0.014086853
16500 100 0.38053331 0.38053331 0.19248441 0.01837541
16600 100 0.37315821 0.37315821 0.1881627 0.0098076132
16700 100 0.38286964 0.38286964 0.19289589 0.011785316
16800 100 0.38013501 0.38013501 0.19200912 0.0138546
16900 100 0.37496008 0.37496008 0.19035729 0.010235176
17000 100 0.365244 0.365244 0.18508129 0.011814705
17100 100 0.36324363 0.36324363 0.18539176 0.0077602876
17200 100 0.36563128 0.36563128 0.18828717 0.009760622
17300 100 0.41040797 0.41040797 0.21297576 0.0060030421
17400 100 0.42784496 0.42784496 0.22357917 0.0072328321
17500 100 0.44480315 0.44480315 0.23296103 0.0081208771
17600 100 0.49540498 0.49540498 0.26207461 0.0094193362
17700 100 0.53563972 0.53563972 0.28429788 0.0096153439
17800 100 0.59909402 0.59909402 0.31832665 0.0086897236
17900 100 0.65975736 0.65975736 0.35361646 0.010946403
18000 100 0.67883738 0.67883738 0.36868438 0.010453697
18100 100 0.67229859 0.67229859 0.37009573 0.011447688
18200 100 0.58740281 0.58740281 0.32918911 0.012430038
18300 100 0.51321184 0.51321184 0.29212329 0.014782894
18400 100 0.46432678 0.46432678 0.26861208 0.0074401518
18500 100 0.46083979 0.46083979 0.26638884 0.0090587319
18600 100 0.41968764 0.41968764 0.24616432 0.0091476182
18700 100 0.40749768 0.40749768 0.24073731 0.0073954099
18800 100 0.38490007 0.38490007 0.23057035 0.0056617504
18900 100 0.36115679 0.36115679 0.21996888 0.0069095868
19000 100 0.31118149 0.31118149 0.19549915 0.0066423887
19100 100 0.34419249 0.34419249 0.20736311 0.012418102
19200 100 0.33174248 0.33174248 0.19629654 0.0074405926
19300 100 0.33028394 0.33028394 0.19472996 0.0077286569
19400 100 0.33612501 0.33612501 0.19522775 0.0083424841
19500 100 0.32216161 0.32216161 0.18401278 0.0088692814
19600 100 0.33681829 0.33681829 0.18758804 0.0097379383
19700 100 0.33730835 0.33730835 0.18474995 0.009296681
19800 100 0.3351213 0.3351213 0.18164387 0.0061672199
19900 100 0.32674396 0.32674396 0.17780137 0.0062277401
20000 100 0.31549601 0.31549601 0.17276762 0.011954545
Loop time of 0.416473 on 1 procs for 5000 steps with 100 atoms
Performance: 5186412.038 tau/day, 12005.583 timesteps/s, 1.201 Matom-step/s
95.2% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0092038 | 0.0092038 | 0.0092038 | 0.0 | 2.21
Neigh | 0.0099854 | 0.0099854 | 0.0099854 | 0.0 | 2.40
Comm | 0.00041171 | 0.00041171 | 0.00041171 | 0.0 | 0.10
Output | 0.33871 | 0.33871 | 0.33871 | 0.0 | 81.33
Modify | 0.056911 | 0.056911 | 0.056911 | 0.0 | 13.67
Other | | 0.001256 | | | 0.30
Nlocal: 100 ave 100 max 100 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: 242 ave 242 max 242 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 242
Ave neighs/atom = 2.42
Neighbor list builds = 435
Dangerous builds = 0
fix_modify 20 move none
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.714 | 4.714 | 4.714 Mbytes
Step Atoms Temp c_1 c_2 Press
20000 100 0.31549601 0.31549601 0.17276762 0.011924862
20100 100 0.067243668 0.067243668 0.051058315 0.0026847669
20200 100 0.064954648 0.064954648 0.04577406 0.0031985925
20300 100 0.081722159 0.081722159 0.052328099 0.003382093
20400 100 0.052538018 0.052538018 0.038041695 0.0080953559
20500 100 0.045138106 0.045138106 0.032227169 0.0035839274
20600 100 0.044187088 0.044187088 0.031849801 0.0032417719
20700 100 0.048791318 0.048791318 0.033838035 0.0030783015
20800 100 0.042228029 0.042228029 0.029496426 0.0026771471
20900 100 0.037884649 0.037884649 0.026659395 0.0016131444
21000 100 0.036121934 0.036121934 0.025961479 0.0033546991
21100 100 0.041151215 0.041151215 0.028554924 0.0014986709
21200 100 0.032352882 0.032352882 0.024166876 0.0018674452
21300 100 0.033808076 0.033808076 0.02501534 0.0014150028
21400 100 0.033233201 0.033233201 0.024762604 0.0015124318
21500 100 0.023344798 0.023344798 0.017595957 0.0020406313
21600 100 0.024137168 0.024137168 0.017835056 0.001648494
21700 100 0.020201901 0.020201901 0.015367789 0.0014089977
21800 100 0.019279358 0.019279358 0.014625498 0.0012643094
21900 100 0.01893081 0.01893081 0.014292746 0.0015049479
22000 100 0.017257227 0.017257227 0.01315079 0.0011652685
22100 100 0.015479952 0.015479952 0.011715026 0.0014536538
22200 100 0.016610168 0.016610168 0.012253776 0.00089466949
22300 100 0.014924039 0.014924039 0.011273468 0.0010494839
22400 100 0.015991668 0.015991668 0.011902404 0.00082344174
22500 100 0.011574074 0.011574074 0.0087681303 0.00081009385
22600 100 0.012494171 0.012494171 0.0092328529 0.0005622816
22700 100 0.011070984 0.011070984 0.0083661745 0.00080065357
22800 100 0.01131513 0.01131513 0.0084259241 0.00073680805
22900 100 0.010217077 0.010217077 0.0077647566 0.00053727888
23000 100 0.0099409381 0.0099409381 0.0074288509 0.00058448502
23100 100 0.0091176585 0.0091176585 0.0069209665 0.00063336231
23200 100 0.0083540727 0.0083540727 0.0063805491 0.0005281495
23300 100 0.008619666 0.008619666 0.0065404908 0.0005398125
23400 100 0.0088762213 0.0088762213 0.0065206851 0.00046304022
23500 100 0.007364061 0.007364061 0.0055771232 0.00046541178
23600 100 0.0074046272 0.0074046272 0.0055598275 0.00036522805
23700 100 0.0073881556 0.0073881556 0.0055580858 0.0005353812
23800 100 0.0072954594 0.0072954594 0.0053965497 0.00041955961
23900 100 0.006566226 0.006566226 0.0047704154 0.00037213632
24000 100 0.0052279617 0.0052279617 0.0039151171 0.00039220479
24100 100 0.004661037 0.004661037 0.0035353607 0.00036592087
24200 100 0.0046822639 0.0046822639 0.0035561511 0.00036233017
24300 100 0.0047878887 0.0047878887 0.0036222045 0.0003906286
24400 100 0.005705559 0.005705559 0.0041298188 0.00039793154
24500 100 0.0038440196 0.0038440196 0.0030815263 0.00050064408
24600 100 0.0035754817 0.0035754817 0.0030293001 0.00032292161
24700 100 0.003446554 0.003446554 0.0027976688 0.00029115924
24800 100 0.0028987207 0.0028987207 0.0023988341 0.00018959598
24900 100 0.0027083267 0.0027083267 0.0021669208 0.0001799362
25000 100 0.0026561456 0.0026561456 0.0020638865 0.00014386648
Loop time of 0.394353 on 1 procs for 5000 steps with 100 atoms
Performance: 5477329.555 tau/day, 12679.004 timesteps/s, 1.268 Matom-step/s
82.6% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0073102 | 0.0073102 | 0.0073102 | 0.0 | 1.85
Neigh | 0.00398 | 0.00398 | 0.00398 | 0.0 | 1.01
Comm | 0.00033952 | 0.00033952 | 0.00033952 | 0.0 | 0.09
Output | 0.32686 | 0.32686 | 0.32686 | 0.0 | 82.89
Modify | 0.054687 | 0.054687 | 0.054687 | 0.0 | 13.87
Other | | 0.001176 | | | 0.30
Nlocal: 100 ave 100 max 100 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: 147 ave 147 max 147 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 147
Ave neighs/atom = 1.47
Neighbor list builds = 173
Dangerous builds = 0
Total wall time: 0:00:01

View File

@ -0,0 +1,492 @@
LAMMPS (27 Jun 2024)
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551)
# pouring spheres into box made of triangles
units lj
atom_style sphere
#atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -10 10 -10 10 -10 10 units box
create_box 2 box # simply for dump_modify to color lines = green
Created orthogonal box = (-10 -10 -10) to (10 10 10)
1 by 2 by 2 MPI processor grid
pair_style gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
molecule tris surf.tribox
Read molecule template tris:
LAMMPS data file for tri box
1 molecules
0 fragments
0 atoms with max type 0
0 bonds with max type 0
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
24 triangles with 14 points
fix 20 all surface/global tris hooke 4000.0 NULL 100.0 NULL 0.5 1
#fix 20 all surface/global tris hooke/history # 4000.0 NULL 100.0 NULL 0.5 1
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 0 -1
#fix 4 all viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
fix ins all pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 48 every 566 steps, 100 by step 1133
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 fix 20 type 2 0.5
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 1.3
binsize = 0.65, bins = 31 31 31
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair gran/hooke, perpetual
attributes: half, newton on, size
pair build: half/size/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 0.4855 | 0.4855 | 0.4855 Mbytes
Step Atoms Temp c_1 c_2 Press
0 0 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 30 0.803783 0.803783 0.39507978 0.0029137134
200 30 1.1967995 1.1967995 0.5882574 0.0043383984
300 30 1.2814686 1.2814686 0.62987441 0.0046453238
400 30 0.82347039 0.82347039 0.41172861 0.0029850802
500 30 0.76963938 0.76963938 0.38709352 0.0042867255
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 64 0.51325196 0.51325196 0.26472957 0.0045780407
700 64 0.57133229 0.57133229 0.29476966 0.0046847812
800 64 0.630634 0.630634 0.32751956 0.0050038133
900 64 0.54233611 0.54233611 0.28819808 0.0052880896
1000 64 0.48543152 0.48543152 0.26491902 0.0064773948
1100 64 0.47303609 0.47303609 0.2578388 0.0057125611
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 99 0.40053109 0.40053109 0.2195167 0.0081778049
1300 99 0.42696772 0.42696772 0.23049402 0.006385146
1400 99 0.37139574 0.37139574 0.20331799 0.0074485306
1500 99 0.33478846 0.33478846 0.18670496 0.0061673941
1600 99 0.29982872 0.29982872 0.16693769 0.0051747984
1700 100 0.2069625 0.2069625 0.12302495 0.005783624
1800 100 0.12902068 0.12902068 0.08608601 0.0019792234
1900 100 0.080857095 0.080857095 0.05967251 0.0022973101
2000 100 0.064403959 0.064403959 0.046429734 0.0011922946
2100 100 0.056475466 0.056475466 0.038678907 0.00085302928
2200 100 0.050018273 0.050018273 0.03438483 0.0032112547
2300 100 0.02186833 0.02186833 0.01765815 0.001152603
2400 100 0.02218925 0.02218925 0.016714386 0.00056474678
2500 100 0.012569988 0.012569988 0.010200648 0.0006133907
2600 100 0.010862479 0.010862479 0.0086989172 0.00028072722
2700 100 0.0092737903 0.0092737903 0.0071165383 0.00041430278
2800 100 0.0078587709 0.0078587709 0.00592121 0.00017374958
2900 100 0.0048613617 0.0048613617 0.004000904 0.00021321956
3000 100 0.0050147313 0.0050147313 0.0038322501 0.00017831675
3100 100 0.0025550411 0.0025550411 0.0022405824 6.8592843e-05
3200 100 0.0023577912 0.0023577912 0.0020418633 0.0003584618
3300 100 0.0018996206 0.0018996206 0.0016777567 7.5165222e-05
3400 100 0.001694751 0.001694751 0.0015042348 0.00014566717
3500 100 0.0020882068 0.0020882068 0.0016170458 8.7027542e-05
3600 100 0.0010813667 0.0010813667 0.0010137349 8.5126382e-05
3700 100 0.00094548982 0.00094548982 0.00086966169 4.2409893e-05
3800 100 0.00084816181 0.00084816181 0.00077098131 3.011429e-05
3900 100 0.00078382097 0.00078382097 0.00071960486 5.939333e-05
4000 100 0.00075302926 0.00075302926 0.00067851822 3.2758594e-05
4100 100 0.00051405526 0.00051405526 0.00048629367 0.00013859285
4200 100 0.00038825626 0.00038825626 0.00038868575 0.00020599691
4300 100 0.00031919597 0.00031919597 0.00033058576 0.00010854923
4400 100 0.00029919941 0.00029919941 0.00031222783 7.2391663e-05
4500 100 0.0002903216 0.0002903216 0.00029974662 5.5125563e-05
4600 100 0.0002753977 0.0002753977 0.00028258456 9.6552286e-05
4700 100 0.00027064725 0.00027064725 0.0002776974 4.0309048e-05
4800 100 0.00024203571 0.00024203571 0.00025112727 3.3700422e-05
4900 100 0.00020539914 0.00020539914 0.00021705763 2.7873051e-05
5000 100 0.00018816565 0.00018816565 0.00020135634 4.7752851e-05
Loop time of 0.63402 on 4 procs for 5000 steps with 100 atoms
Performance: 3406832.319 tau/day, 7886.186 timesteps/s, 788.619 katom-step/s
95.7% 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.00025776 | 0.0013928 | 0.002766 | 3.1 | 0.22
Neigh | 0.0012616 | 0.0021326 | 0.002909 | 1.4 | 0.34
Comm | 0.0072148 | 0.011698 | 0.016249 | 4.0 | 1.85
Output | 0.41173 | 0.47818 | 0.57141 | 9.8 | 75.42
Modify | 0.0023688 | 0.01821 | 0.036988 | 11.8 | 2.87
Other | | 0.1224 | | | 19.31
Nlocal: 25 ave 50 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 4.5 ave 9 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 40.5 ave 82 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 162
Ave neighs/atom = 1.62
Neighbor list builds = 270
Dangerous builds = 0
fix_modify 20 move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.486 | 4.548 | 4.611 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 100 0.00018816565 0.00018816565 0.00020135634 4.4246792e-05
5100 100 0.14937779 0.14937779 0.086114773 0.0025984359
5200 100 0.17697193 0.17697193 0.1019691 0.0026173891
5300 100 0.18255024 0.18255024 0.10122134 0.0041759269
5400 100 0.19510207 0.19510207 0.1050284 0.0027541295
5500 100 0.1980801 0.1980801 0.10458743 0.0027957101
5600 100 0.20490362 0.20490362 0.10674522 0.002985542
5700 100 0.21087885 0.21087885 0.10861062 0.0030935481
5800 100 0.22309411 0.22309411 0.11419601 0.0029760547
5900 100 0.22880189 0.22880189 0.1171042 0.0029681474
6000 100 0.2363739 0.2363739 0.12083453 0.0032437464
6100 100 0.24581768 0.24581768 0.12531649 0.0032571271
6200 100 0.25161424 0.25161424 0.12838601 0.0034995369
6300 100 0.25972194 0.25972194 0.13241738 0.0035882457
6400 100 0.2678312 0.2678312 0.13632033 0.0036612131
6500 100 0.27990358 0.27990358 0.14189324 0.0046486676
6600 100 0.2827759 0.2827759 0.14317296 0.0048164853
6700 100 0.2897351 0.2897351 0.14616568 0.0042753049
6800 100 0.29164978 0.29164978 0.14688678 0.0040397004
6900 100 0.29377421 0.29377421 0.14786359 0.0051561937
7000 100 0.29698841 0.29698841 0.14947643 0.0046008044
7100 100 0.3019081 0.3019081 0.15147175 0.0065696769
7200 100 0.30532028 0.30532028 0.1531023 0.0045987829
7300 100 0.30629289 0.30629289 0.15368598 0.0048558556
7400 100 0.30534641 0.30534641 0.15316839 0.0057637671
7500 100 0.30786877 0.30786877 0.15429461 0.004843753
7600 100 0.30862009 0.30862009 0.15464621 0.0052118056
7700 100 0.30900657 0.30900657 0.15478242 0.0048879932
7800 100 0.31054034 0.31054034 0.1554636 0.0052082034
7900 100 0.31174887 0.31174887 0.15610325 0.0049178073
8000 100 0.31247071 0.31247071 0.15647921 0.0052603626
8100 100 0.31273024 0.31273024 0.15659099 0.0056001647
8200 100 0.3140235 0.3140235 0.15727592 0.004977821
8300 100 0.31383701 0.31383701 0.15715969 0.0052231004
8400 100 0.31509644 0.31509644 0.15775385 0.0050051889
8500 100 0.31498521 0.31498521 0.15762151 0.0052864908
8600 100 0.31575201 0.31575201 0.15792624 0.0050759547
8700 100 0.31620758 0.31620758 0.15818292 0.0050530619
8800 100 0.31691036 0.31691036 0.15860213 0.005004857
8900 100 0.31659627 0.31659627 0.15846212 0.0050695163
9000 100 0.31769151 0.31769151 0.15903638 0.0050507355
9100 100 0.31716143 0.31716143 0.15881355 0.005017094
9200 100 0.31633956 0.31633956 0.1585031 0.0053446628
9300 100 0.31655443 0.31655443 0.15863537 0.0049328007
9400 100 0.31599503 0.31599503 0.15822485 0.0049933297
9500 100 0.31660281 0.31660281 0.15853731 0.0049387958
9600 100 0.31664518 0.31664518 0.15861539 0.0049222414
9700 100 0.31824803 0.31824803 0.15934333 0.0052873464
9800 100 0.31820192 0.31820192 0.15932994 0.0049687062
9900 100 0.31846082 0.31846082 0.15943054 0.0053817995
10000 100 0.31969811 0.31969811 0.15997735 0.005012462
Loop time of 0.547282 on 4 procs for 5000 steps with 100 atoms
Performance: 3946778.087 tau/day, 9136.060 timesteps/s, 913.606 katom-step/s
97.1% 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.00017514 | 0.0033369 | 0.0067434 | 5.4 | 0.61
Neigh | 0.0011683 | 0.0026653 | 0.003952 | 2.5 | 0.49
Comm | 0.0061274 | 0.010042 | 0.013959 | 3.9 | 1.83
Output | 0.36944 | 0.41287 | 0.47628 | 6.7 | 75.44
Modify | 0.0022896 | 0.021864 | 0.042571 | 13.2 | 4.00
Other | | 0.0965 | | | 17.63
Nlocal: 25 ave 52 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 4.25 ave 9 max 0 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Neighs: 47.5 ave 111 max 0 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Total # of neighbors = 190
Ave neighs/atom = 1.9
Neighbor list builds = 334
Dangerous builds = 0
fix_modify 20 move none
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.486 | 4.548 | 4.611 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 100 0.31969811 0.31969811 0.15997735 0.005039886
10100 100 0.096856693 0.096856693 0.061256799 0.0017653508
10200 100 0.06374563 0.06374563 0.049164989 0.00074375479
10300 100 0.053346958 0.053346958 0.041648676 0.00088021828
10400 100 0.04530167 0.04530167 0.035468031 0.0006357307
10500 100 0.036511473 0.036511473 0.02864095 0.00046569718
10600 100 0.031850796 0.031850796 0.024752197 0.001484525
10700 100 0.027853481 0.027853481 0.021856016 0.00083233598
10800 100 0.023988298 0.023988298 0.018551491 0.00025321878
10900 100 0.022362927 0.022362927 0.01775739 0.00027674123
11000 100 0.019598739 0.019598739 0.01566657 0.00029114873
11100 100 0.016949467 0.016949467 0.013323455 0.00054759179
11200 100 0.013201141 0.013201141 0.010205793 0.00046859829
11300 100 0.010724903 0.010724903 0.0083548813 0.00016110668
11400 100 0.0094528501 0.0094528501 0.0074254702 0.00012282294
11500 100 0.0081681904 0.0081681904 0.0064435379 0.00018389596
11600 100 0.0080112061 0.0080112061 0.006319339 9.9138675e-05
11700 100 0.0072316886 0.0072316886 0.0056968863 8.9492146e-05
11800 100 0.0066741475 0.0066741475 0.0052653282 9.1792343e-05
11900 100 0.0060596979 0.0060596979 0.0048019244 0.00059435717
12000 100 0.0058193298 0.0058193298 0.0046098949 7.2231759e-05
12100 100 0.0053847114 0.0053847114 0.0042545862 9.3394135e-05
12200 100 0.0049412476 0.0049412476 0.0039106158 0.00010078502
12300 100 0.004572105 0.004572105 0.0036504695 5.5867397e-05
12400 100 0.0042412045 0.0042412045 0.0034175496 0.00036582163
12500 100 0.0035923846 0.0035923846 0.0029316243 6.9114212e-05
12600 100 0.0032446947 0.0032446947 0.0026668677 4.1659699e-05
12700 100 0.003132735 0.003132735 0.0025875973 5.6802791e-05
12800 100 0.0030486242 0.0030486242 0.0025160882 0.00024777199
12900 100 0.0029017497 0.0029017497 0.0024179283 6.7491687e-05
13000 100 0.0027960043 0.0027960043 0.0023415783 3.4600553e-05
13100 100 0.0024698607 0.0024698607 0.0020868913 0.00015330841
13200 100 0.0023835355 0.0023835355 0.0020283653 2.9496252e-05
13300 100 0.0021088439 0.0021088439 0.0018016867 5.3026287e-05
13400 100 0.0018955838 0.0018955838 0.0016251265 5.6464898e-05
13500 100 0.0017787595 0.0017787595 0.0015273835 0.00010533321
13600 100 0.0017398053 0.0017398053 0.0015003761 2.153009e-05
13700 100 0.0017070216 0.0017070216 0.0014780376 2.2369503e-05
13800 100 0.0016227474 0.0016227474 0.0014210693 6.9106097e-05
13900 100 0.0016020414 0.0016020414 0.0013971016 1.9825262e-05
14000 100 0.0015849364 0.0015849364 0.0013841731 1.9613588e-05
14100 100 0.0014802906 0.0014802906 0.001301188 2.3602632e-05
14200 100 0.0014452784 0.0014452784 0.0012723611 5.4930779e-05
14300 100 0.0013373933 0.0013373933 0.0011970238 7.7331197e-05
14400 100 0.0012644873 0.0012644873 0.0011371743 3.3804604e-05
14500 100 0.0012269172 0.0012269172 0.0011090464 0.00019066733
14600 100 0.0011790378 0.0011790378 0.0010710915 2.2152438e-05
14700 100 0.001141029 0.001141029 0.0010389261 1.4725855e-05
14800 100 0.001136936 0.001136936 0.0010350762 1.833013e-05
14900 100 0.0010587639 0.0010587639 0.00097375352 1.3102203e-05
15000 100 0.0010255325 0.0010255325 0.00094590806 1.5126454e-05
Loop time of 0.580448 on 4 procs for 5000 steps with 100 atoms
Performance: 3721260.712 tau/day, 8614.029 timesteps/s, 861.403 katom-step/s
97.2% 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.00018589 | 0.0012662 | 0.0025061 | 3.1 | 0.22
Neigh | 0.00039462 | 0.00072277 | 0.0010682 | 0.0 | 0.12
Comm | 0.0012803 | 0.0072067 | 0.013189 | 7.0 | 1.24
Output | 0.39942 | 0.45124 | 0.51979 | 6.9 | 77.74
Modify | 0.00047645 | 0.019943 | 0.039764 | 13.8 | 3.44
Other | | 0.1001 | | | 17.24
Nlocal: 25 ave 50 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 4.25 ave 10 max 0 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Neighs: 37 ave 77 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 148
Ave neighs/atom = 1.48
Neighbor list builds = 72
Dangerous builds = 0
fix_modify 20 move rotate 0 0 0 1 1 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.486 | 4.548 | 4.611 Mbytes
Step Atoms Temp c_1 c_2 Press
15000 100 0.0010255325 0.0010255325 0.00094590806 1.4814045e-05
15100 100 0.16111221 0.16111221 0.097982105 0.0056716878
15200 100 0.21347296 0.21347296 0.12567019 0.0029815056
15300 100 0.24705334 0.24705334 0.13884473 0.0078448562
15400 100 0.27522493 0.27522493 0.15035782 0.0073215473
15500 100 0.30348486 0.30348486 0.16433701 0.0068229641
15600 100 0.31550013 0.31550013 0.16857649 0.0077789307
15700 100 0.32318922 0.32318922 0.1719013 0.012280847
15800 100 0.33908701 0.33908701 0.17750923 0.015821994
15900 100 0.35593866 0.35593866 0.18345193 0.021263374
16000 100 0.36889801 0.36889801 0.1869234 0.011456078
16100 100 0.35809835 0.35809835 0.18158992 0.014811103
16200 100 0.36319635 0.36319635 0.18337159 0.012823323
16300 100 0.35852464 0.35852464 0.18081456 0.01280934
16400 100 0.34902631 0.34902631 0.17663396 0.012992629
16500 100 0.33443513 0.33443513 0.16948607 0.012986886
16600 100 0.3150597 0.3150597 0.16079097 0.010586882
16700 100 0.31338609 0.31338609 0.16045733 0.009805616
16800 100 0.30473867 0.30473867 0.15686705 0.014362545
16900 100 0.31270607 0.31270607 0.16119766 0.0070575979
17000 100 0.2832931 0.2832931 0.14785887 0.0039466166
17100 100 0.28215868 0.28215868 0.14795001 0.0068627045
17200 100 0.29701033 0.29701033 0.16099476 0.0040667324
17300 100 0.3665611 0.3665611 0.19664166 0.0065836505
17400 100 0.43400548 0.43400548 0.23335072 0.0096693511
17500 100 0.5057676 0.5057676 0.2773349 0.0071479313
17600 100 0.52614351 0.52614351 0.29090432 0.0095749902
17700 100 0.52478022 0.52478022 0.29525839 0.010528327
17800 100 0.53046479 0.53046479 0.29862674 0.012410569
17900 100 0.51722354 0.51722354 0.29212965 0.0097423802
18000 100 0.51837131 0.51837131 0.29426864 0.010265508
18100 100 0.46407283 0.46407283 0.26786292 0.015842602
18200 100 0.4281392 0.4281392 0.24883206 0.016085526
18300 100 0.36407304 0.36407304 0.22014997 0.0091448904
18400 100 0.32800292 0.32800292 0.20387181 0.0088602724
18500 100 0.30727965 0.30727965 0.18744751 0.0067928429
18600 100 0.31715182 0.31715182 0.19306784 0.0047252497
18700 100 0.29383189 0.29383189 0.18450238 0.0046337396
18800 100 0.28365185 0.28365185 0.1810902 0.005644391
18900 100 0.30670015 0.30670015 0.19521314 0.0048593554
19000 100 0.31681967 0.31681967 0.201889 0.0059511233
19100 100 0.32218287 0.32218287 0.20009306 0.0093378277
19200 100 0.30255724 0.30255724 0.19160821 0.0087838518
19300 100 0.31907942 0.31907942 0.19849225 0.0093802566
19400 100 0.31650176 0.31650176 0.18834128 0.010429547
19500 100 0.32959296 0.32959296 0.19229144 0.012724502
19600 100 0.33134974 0.33134974 0.18581781 0.016960866
19700 100 0.32878109 0.32878109 0.18215506 0.0096165803
19800 100 0.33724696 0.33724696 0.18335211 0.0060443045
19900 100 0.33179464 0.33179464 0.17822307 0.010776083
20000 100 0.34377432 0.34377432 0.1841787 0.0094534745
Loop time of 1.31378 on 4 procs for 5000 steps with 100 atoms
Performance: 1644113.102 tau/day, 3805.817 timesteps/s, 380.582 katom-step/s
96.7% 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.0014951 | 0.0059208 | 0.012257 | 5.8 | 0.45
Neigh | 0.0055162 | 0.0094303 | 0.017183 | 4.9 | 0.72
Comm | 0.051772 | 0.062444 | 0.068614 | 2.5 | 4.75
Output | 0.8827 | 0.98488 | 1.1231 | 9.3 | 74.97
Modify | 0.02082 | 0.04696 | 0.090098 | 13.2 | 3.57
Other | | 0.2041 | | | 15.54
Nlocal: 25 ave 67 max 0 min
Histogram: 2 0 0 0 1 0 0 0 0 1
Nghost: 6.25 ave 13 max 0 min
Histogram: 1 1 0 0 0 0 0 1 0 1
Neighs: 54.75 ave 156 max 0 min
Histogram: 2 0 0 0 1 0 0 0 0 1
Total # of neighbors = 219
Ave neighs/atom = 2.19
Neighbor list builds = 430
Dangerous builds = 0
fix_modify 20 move none
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.611 | 4.611 | 4.612 Mbytes
Step Atoms Temp c_1 c_2 Press
20000 100 0.34377432 0.34377432 0.1841787 0.0092764528
20100 100 0.097239014 0.097239014 0.068864895 0.0029157234
20200 100 0.090387219 0.090387219 0.063243792 0.0030276724
20300 100 0.10130213 0.10130213 0.065604495 0.0040954401
20400 100 0.073193003 0.073193003 0.049395297 0.011005746
20500 100 0.064987626 0.064987626 0.042476486 0.0035623578
20600 100 0.056092845 0.056092845 0.035733351 0.0046843988
20700 100 0.047975467 0.047975467 0.031279933 0.006027
20800 100 0.042713655 0.042713655 0.028630415 0.0028623851
20900 100 0.027009619 0.027009619 0.019950334 0.0031930947
21000 100 0.030115735 0.030115735 0.021837467 0.0031118498
21100 100 0.030382146 0.030382146 0.02158358 0.0016950638
21200 100 0.028917881 0.028917881 0.020618558 0.0015449848
21300 100 0.02553423 0.02553423 0.018753907 0.0020401097
21400 100 0.024907599 0.024907599 0.018805009 0.0015219354
21500 100 0.028047498 0.028047498 0.020431592 0.0036172877
21600 100 0.023143766 0.023143766 0.017048059 0.001391321
21700 100 0.025832817 0.025832817 0.018907239 0.0014196777
21800 100 0.02294723 0.02294723 0.016986932 0.00099306999
21900 100 0.021774769 0.021774769 0.016357385 0.0015445184
22000 100 0.019488798 0.019488798 0.014411675 0.00096975376
22100 100 0.017498173 0.017498173 0.013303102 0.0013869769
22200 100 0.017606431 0.017606431 0.013696534 0.0016275912
22300 100 0.01864478 0.01864478 0.014363082 0.00093199338
22400 100 0.017184319 0.017184319 0.013013426 0.0007137204
22500 100 0.016970049 0.016970049 0.012735761 0.00094285653
22600 100 0.015601151 0.015601151 0.011558366 0.00064664867
22700 100 0.01532704 0.01532704 0.011052585 0.0011443538
22800 100 0.013843117 0.013843117 0.010175224 0.00074058068
22900 100 0.0142626 0.0142626 0.010517503 0.00062291367
23000 100 0.012672457 0.012672457 0.0095213548 0.00048253765
23100 100 0.011770367 0.011770367 0.0088631275 0.0010809683
23200 100 0.0099747299 0.0099747299 0.0076787282 0.00049951509
23300 100 0.01031026 0.01031026 0.0079525195 0.00064873732
23400 100 0.0096104307 0.0096104307 0.0072783079 0.00045628129
23500 100 0.0092403444 0.0092403444 0.0069910691 0.00055860189
23600 100 0.0087158451 0.0087158451 0.0064234628 0.00042327506
23700 100 0.0076095087 0.0076095087 0.005524052 0.00040612722
23800 100 0.0073236191 0.0073236191 0.0054016138 0.0002882358
23900 100 0.0076690517 0.0076690517 0.0054567733 0.000294478
24000 100 0.0068826778 0.0068826778 0.0049332647 0.00025128376
24100 100 0.006293019 0.006293019 0.0046682205 0.00029832544
24200 100 0.005767467 0.005767467 0.0043594373 0.00026379963
24300 100 0.005071854 0.005071854 0.0038348196 0.00026374758
24400 100 0.0051487759 0.0051487759 0.0038569741 0.00047689032
24500 100 0.0045914722 0.0045914722 0.0034370386 0.00026920355
24600 100 0.0042661938 0.0042661938 0.0031638249 0.00023704631
24700 100 0.0038978286 0.0038978286 0.0028913869 0.00029112049
24800 100 0.0033993745 0.0033993745 0.0025640275 0.00054348397
24900 100 0.0030064864 0.0030064864 0.0022631158 0.00016374877
25000 100 0.0030540972 0.0030540972 0.0022935172 0.00012379035
Loop time of 0.686895 on 4 procs for 5000 steps with 100 atoms
Performance: 3144587.502 tau/day, 7279.138 timesteps/s, 727.914 katom-step/s
96.6% 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.00021583 | 0.0031591 | 0.0080919 | 5.8 | 0.46
Neigh | 0.00087816 | 0.0020995 | 0.0040495 | 2.9 | 0.31
Comm | 0.0031121 | 0.011483 | 0.021843 | 7.2 | 1.67
Output | 0.45899 | 0.52212 | 0.60018 | 7.4 | 76.01
Modify | 0.00065063 | 0.023045 | 0.054608 | 15.4 | 3.35
Other | | 0.125 | | | 18.20
Nlocal: 25 ave 57 max 0 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Nghost: 5.25 ave 13 max 0 min
Histogram: 2 0 0 0 0 0 1 0 0 1
Neighs: 38.75 ave 96 max 0 min
Histogram: 2 0 0 0 0 0 1 0 0 1
Total # of neighbors = 155
Ave neighs/atom = 1.55
Neighbor list builds = 183
Dangerous builds = 0
Total wall time: 0:00:03

View File

@ -0,0 +1,480 @@
LAMMPS (27 Jun 2024)
# pouring spheres into box made of triangles
units lj
atom_style sphere
#atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -10 10 -10 10 -10 10 units box
create_box 2 box # simply for dump_modify to color lines = green
Created orthogonal box = (-10 -10 -10) to (10 10 10)
1 by 1 by 1 MPI processor grid
pair_style gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 20 all surface/global surf.tribox.stl hooke 4000.0 NULL 100.0 NULL 0.5 1
Reading STL object STL version of surf.tribox from text file surf.tribox.stl
#fix 20 all surface/global surf.tribox.stl hooke/history # 4000.0 NULL 100.0 NULL 0.5 1
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 0 -1
#fix 4 all viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
fix ins all pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 48 every 566 steps, 100 by step 1133
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 fix 20 type 2 0.5
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 1.3
binsize = 0.65, bins = 31 31 31
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair gran/hooke, perpetual
attributes: half, newton on, size
pair build: half/size/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 0.5878 | 0.5878 | 0.5878 Mbytes
Step Atoms Temp c_1 c_2 Press
0 0 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 30 0.803783 0.803783 0.39507978 0.0029137134
200 30 1.1967995 1.1967995 0.5882574 0.0043383984
300 30 1.2814686 1.2814686 0.62987441 0.0046453238
400 30 0.82347039 0.82347039 0.41172861 0.0029850802
500 30 0.76963938 0.76963938 0.38709352 0.0042867255
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 64 0.51325196 0.51325196 0.26472957 0.0045780407
700 64 0.57133229 0.57133229 0.29476966 0.0046847812
800 64 0.630634 0.630634 0.32751956 0.0050038133
900 64 0.54233611 0.54233611 0.28819808 0.0052880896
1000 64 0.48543152 0.48543152 0.26491902 0.0064773948
1100 64 0.47303609 0.47303609 0.2578388 0.0057125611
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 99 0.40053109 0.40053109 0.2195167 0.0081778049
1300 99 0.42696772 0.42696772 0.23049402 0.006385146
1400 99 0.37139574 0.37139574 0.20331799 0.0074485307
1500 99 0.33478846 0.33478846 0.18670496 0.0061673941
1600 99 0.29982872 0.29982872 0.16693769 0.0051747985
1700 100 0.2069625 0.2069625 0.12302495 0.005783623
1800 100 0.12902068 0.12902068 0.08608601 0.0019792233
1900 100 0.080857094 0.080857094 0.059672509 0.0022973108
2000 100 0.064403955 0.064403955 0.046429731 0.0011922926
2100 100 0.056475498 0.056475498 0.038678923 0.00085304992
2200 100 0.050018256 0.050018256 0.034384821 0.0032112539
2300 100 0.021868304 0.021868304 0.017658151 0.0011526373
2400 100 0.022189236 0.022189236 0.016714436 0.00056488482
2500 100 0.012569738 0.012569738 0.010200523 0.00061305414
2600 100 0.010861951 0.010861951 0.0086986505 0.00028075976
2700 100 0.0092647871 0.0092647871 0.0071124847 0.00043064637
2800 100 0.0078527688 0.0078527688 0.0059155703 0.00016902461
2900 100 0.0048376734 0.0048376734 0.0039864566 9.6898167e-05
3000 100 0.004997394 0.004997394 0.0038195379 0.00012912771
3100 100 0.0025381263 0.0025381263 0.0022290621 9.3139494e-05
3200 100 0.0023614621 0.0023614621 0.0020627353 0.00043394794
3300 100 0.0018926758 0.0018926758 0.0016726508 9.015816e-05
3400 100 0.0016956727 0.0016956727 0.0015060379 9.8437955e-05
3500 100 0.0020822011 0.0020822011 0.0016148425 6.8104893e-05
3600 100 0.0010660921 0.0010660921 0.0010106443 -4.0921854e-05
3700 100 0.00093117128 0.00093117128 0.00086120243 3.9299397e-05
3800 100 0.00083426775 0.00083426775 0.00075721786 3.2376e-05
3900 100 0.00076790351 0.00076790351 0.00070733354 3.2793518e-05
4000 100 0.0006859536 0.0006859536 0.00062258677 3.0547763e-05
4100 100 0.00050291116 0.00050291116 0.00047200581 0.00015040263
4200 100 0.00038735513 0.00038735513 0.0003849192 0.00017016843
4300 100 0.00031672623 0.00031672623 0.00032789248 7.1880229e-05
4400 100 0.00027595545 0.00027595545 0.00029274116 3.120052e-05
4500 100 0.00027092394 0.00027092394 0.00028257706 4.1409733e-05
4600 100 0.00026641048 0.00026641048 0.00027631265 3.2258687e-05
4700 100 0.0002550395 0.0002550395 0.00026456068 4.4752996e-05
4800 100 0.00023866037 0.00023866037 0.00025120225 3.3651155e-05
4900 100 0.00019734428 0.00019734428 0.0002099377 2.7700004e-05
5000 100 0.00019733184 0.00019733184 0.00020831062 2.6903281e-05
Loop time of 0.386048 on 1 procs for 5000 steps with 100 atoms
Performance: 5595156.861 tau/day, 12951.752 timesteps/s, 1.295 Matom-step/s
90.3% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0037007 | 0.0037007 | 0.0037007 | 0.0 | 0.96
Neigh | 0.0054702 | 0.0054702 | 0.0054702 | 0.0 | 1.42
Comm | 0.0003645 | 0.0003645 | 0.0003645 | 0.0 | 0.09
Output | 0.32257 | 0.32257 | 0.32257 | 0.0 | 83.56
Modify | 0.052819 | 0.052819 | 0.052819 | 0.0 | 13.68
Other | | 0.001123 | | | 0.29
Nlocal: 100 ave 100 max 100 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: 160 ave 160 max 160 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 160
Ave neighs/atom = 1.6
Neighbor list builds = 270
Dangerous builds = 0
fix_modify 20 move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.714 | 4.714 | 4.714 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 100 0.00019733184 0.00019733184 0.00020831062 2.6930089e-05
5100 100 0.14755911 0.14755911 0.085321575 0.0037275005
5200 100 0.17345004 0.17345004 0.10013131 0.0029005613
5300 100 0.17839393 0.17839393 0.09955336 0.0024744353
5400 100 0.18892743 0.18892743 0.10178919 0.0032939874
5500 100 0.19613791 0.19613791 0.10380256 0.0027253339
5600 100 0.19978293 0.19978293 0.10442183 0.0031193701
5700 100 0.21239814 0.21239814 0.10965684 0.0027404998
5800 100 0.22432265 0.22432265 0.11476437 0.0031430877
5900 100 0.22942225 0.22942225 0.11733388 0.00357628
6000 100 0.24043354 0.24043354 0.12272731 0.003255827
6100 100 0.25159401 0.25159401 0.1279307 0.0040378705
6200 100 0.25902708 0.25902708 0.13158752 0.0036512959
6300 100 0.2659723 0.2659723 0.13535001 0.0037298324
6400 100 0.27607055 0.27607055 0.14001655 0.0043863861
6500 100 0.28259585 0.28259585 0.14337861 0.004432214
6600 100 0.29041535 0.29041535 0.14658628 0.0041374757
6700 100 0.29338383 0.29338383 0.14816762 0.0043726723
6800 100 0.29363497 0.29363497 0.14803605 0.0048496941
6900 100 0.29819446 0.29819446 0.14992058 0.0048661826
7000 100 0.30253288 0.30253288 0.15178707 0.0047893404
7100 100 0.30364521 0.30364521 0.15238027 0.0053735204
7200 100 0.30571022 0.30571022 0.15341639 0.0050547621
7300 100 0.30762729 0.30762729 0.15433251 0.0048579985
7400 100 0.30739457 0.30739457 0.15429161 0.0052840169
7500 100 0.3095106 0.3095106 0.15546551 0.0047742904
7600 100 0.30994994 0.30994994 0.15560402 0.0055289317
7700 100 0.3102136 0.3102136 0.1555494 0.0053911148
7800 100 0.31109652 0.31109652 0.15598755 0.0050957646
7900 100 0.31190144 0.31190144 0.15640137 0.0050144069
8000 100 0.3124433 0.3124433 0.15676067 0.0049291948
8100 100 0.31255831 0.31255831 0.15682783 0.0053772662
8200 100 0.31276764 0.31276764 0.15700445 0.0051137616
8300 100 0.31476621 0.31476621 0.15777763 0.0050115786
8400 100 0.31520108 0.31520108 0.1579466 0.0052663181
8500 100 0.31519638 0.31519638 0.15797839 0.0054592691
8600 100 0.31650736 0.31650736 0.15853548 0.006061159
8700 100 0.31783185 0.31783185 0.15910269 0.0055642729
8800 100 0.31962922 0.31962922 0.15981552 0.0051073677
8900 100 0.32028059 0.32028059 0.16016593 0.0051129724
9000 100 0.32067355 0.32067355 0.16033852 0.005334504
9100 100 0.32073134 0.32073134 0.16036476 0.0052193698
9200 100 0.32149618 0.32149618 0.16073834 0.0051959338
9300 100 0.32200413 0.32200413 0.16101431 0.0053371119
9400 100 0.32243427 0.32243427 0.16127313 0.0051442587
9500 100 0.32287887 0.32287887 0.16159452 0.0051133998
9600 100 0.32358279 0.32358279 0.16193072 0.0051698096
9700 100 0.32486591 0.32486591 0.16249108 0.0052421695
9800 100 0.32481094 0.32481094 0.16244971 0.0052881334
9900 100 0.32619742 0.32619742 0.16300857 0.0056091381
10000 100 0.32685101 0.32685101 0.16333907 0.0052565109
Loop time of 0.400348 on 1 procs for 5000 steps with 100 atoms
Performance: 5395307.917 tau/day, 12489.139 timesteps/s, 1.249 Matom-step/s
96.0% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.011048 | 0.011048 | 0.011048 | 0.0 | 2.76
Neigh | 0.0070234 | 0.0070234 | 0.0070234 | 0.0 | 1.75
Comm | 0.00040106 | 0.00040106 | 0.00040106 | 0.0 | 0.10
Output | 0.3144 | 0.3144 | 0.3144 | 0.0 | 78.53
Modify | 0.066249 | 0.066249 | 0.066249 | 0.0 | 16.55
Other | | 0.001222 | | | 0.31
Nlocal: 100 ave 100 max 100 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: 190 ave 190 max 190 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 190
Ave neighs/atom = 1.9
Neighbor list builds = 334
Dangerous builds = 0
fix_modify 20 move none
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.714 | 4.714 | 4.714 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 100 0.32685101 0.32685101 0.16333907 0.0052114688
10100 100 0.082150677 0.082150677 0.051495507 0.0065164512
10200 100 0.044140364 0.044140364 0.034724328 0.0010465239
10300 100 0.033122648 0.033122648 0.026625827 0.0022974917
10400 100 0.026649705 0.026649705 0.021846707 0.00035032509
10500 100 0.022611369 0.022611369 0.018405546 0.0004069116
10600 100 0.018296124 0.018296124 0.014829351 0.00026270833
10700 100 0.015248747 0.015248747 0.012084705 0.00023227455
10800 100 0.014989372 0.014989372 0.011849067 0.00054473331
10900 100 0.011865503 0.011865503 0.0094526639 0.00028431427
11000 100 0.0096206477 0.0096206477 0.0077795159 0.00012996686
11100 100 0.0085270379 0.0085270379 0.0069458369 0.00021692214
11200 100 0.00760939 0.00760939 0.0062336019 0.00015816658
11300 100 0.0070094711 0.0070094711 0.0056987409 9.7160075e-05
11400 100 0.0064681327 0.0064681327 0.0053334513 0.0001693687
11500 100 0.0054400476 0.0054400476 0.0044705267 8.1382559e-05
11600 100 0.005206949 0.005206949 0.0042892806 7.0309283e-05
11700 100 0.0044637648 0.0044637648 0.0037251717 5.4172517e-05
11800 100 0.0039969168 0.0039969168 0.003362444 2.0226315e-05
11900 100 0.0033117132 0.0033117132 0.0027762101 5.2311253e-05
12000 100 0.0031073405 0.0031073405 0.0025984799 3.9890528e-05
12100 100 0.0029847617 0.0029847617 0.0025070771 -5.7259344e-06
12200 100 0.0028458878 0.0028458878 0.0024108535 3.5217862e-05
12300 100 0.0026501923 0.0026501923 0.0022711794 0.00012033569
12400 100 0.0025425504 0.0025425504 0.0021847643 3.1464061e-05
12500 100 0.0024161319 0.0024161319 0.0020843813 0.00014941327
12600 100 0.002341327 0.002341327 0.0020232445 2.8973921e-05
12700 100 0.0022334192 0.0022334192 0.0019425572 3.0790164e-05
12800 100 0.0021889403 0.0021889403 0.0019088353 2.9638662e-05
12900 100 0.0020442842 0.0020442842 0.0018049012 2.5298016e-05
13000 100 0.001803154 0.001803154 0.0016328702 2.2314031e-05
13100 100 0.0016791405 0.0016791405 0.0015327583 2.2967562e-05
13200 100 0.001622137 0.001622137 0.0014810169 4.0326561e-05
13300 100 0.001601531 0.001601531 0.0014650816 1.9818946e-05
13400 100 0.0015591399 0.0015591399 0.0014123726 2.119773e-05
13500 100 0.0014546357 0.0014546357 0.0013328423 1.8001117e-05
13600 100 0.0013998773 0.0013998773 0.0012913696 2.6202181e-05
13700 100 0.001367574 0.001367574 0.0012631494 1.6923729e-05
13800 100 0.001225732 0.001225732 0.0011125165 1.4445147e-05
13900 100 0.0012086291 0.0012086291 0.0010972374 2.8597468e-05
14000 100 0.0011916306 0.0011916306 0.0010833978 7.2381933e-05
14100 100 0.0011461149 0.0011461149 0.0010110271 1.4183172e-05
14200 100 0.0011209785 0.0011209785 0.00099190436 1.1546608e-05
14300 100 0.0011050802 0.0011050802 0.00098070422 1.3675367e-05
14400 100 0.0010910417 0.0010910417 0.00097025303 1.3501641e-05
14500 100 0.0010645152 0.0010645152 0.00093785696 1.3173375e-05
14600 100 0.0010479185 0.0010479185 0.00092353031 2.5164629e-05
14700 100 0.00099034477 0.00099034477 0.0008638973 1.2874356e-05
14800 100 0.00099115544 0.00099115544 0.00086195396 1.2265549e-05
14900 100 0.00097510619 0.00097510619 0.00083043649 6.0289327e-05
15000 100 0.00095883902 0.00095883902 0.00080522184 1.1865633e-05
Loop time of 0.392742 on 1 procs for 5000 steps with 100 atoms
Performance: 5499795.998 tau/day, 12731.009 timesteps/s, 1.273 Matom-step/s
95.9% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0032195 | 0.0032195 | 0.0032195 | 0.0 | 0.82
Neigh | 0.0014096 | 0.0014096 | 0.0014096 | 0.0 | 0.36
Comm | 0.00031448 | 0.00031448 | 0.00031448 | 0.0 | 0.08
Output | 0.32823 | 0.32823 | 0.32823 | 0.0 | 83.57
Modify | 0.058394 | 0.058394 | 0.058394 | 0.0 | 14.87
Other | | 0.001171 | | | 0.30
Nlocal: 100 ave 100 max 100 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: 165 ave 165 max 165 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 165
Ave neighs/atom = 1.65
Neighbor list builds = 69
Dangerous builds = 0
fix_modify 20 move rotate 0 0 0 1 1 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.714 | 4.714 | 4.714 Mbytes
Step Atoms Temp c_1 c_2 Press
15000 100 0.00095883902 0.00095883902 0.00080522184 1.1865633e-05
15100 100 0.16225441 0.16225441 0.098498099 0.0064159333
15200 100 0.22482098 0.22482098 0.12948232 0.003576331
15300 100 0.2458026 0.2458026 0.1393646 0.006749306
15400 100 0.26239222 0.26239222 0.1469859 0.0089800228
15500 100 0.28687382 0.28687382 0.15847135 0.0079704333
15600 100 0.28622953 0.28622953 0.15902139 0.0082281462
15700 100 0.30668089 0.30668089 0.16265483 0.014688893
15800 100 0.33007713 0.33007713 0.17247344 0.0099574571
15900 100 0.35773029 0.35773029 0.18298391 0.01415523
16000 100 0.36309971 0.36309971 0.18514042 0.010763173
16100 100 0.36974105 0.36974105 0.18746237 0.010738235
16200 100 0.36988383 0.36988383 0.18775314 0.014768427
16300 100 0.37560588 0.37560588 0.19010652 0.014297415
16400 100 0.37747146 0.37747146 0.19143031 0.014086853
16500 100 0.38053331 0.38053331 0.19248441 0.01837541
16600 100 0.37315821 0.37315821 0.1881627 0.0098076132
16700 100 0.38286964 0.38286964 0.19289589 0.011785316
16800 100 0.38013501 0.38013501 0.19200912 0.0138546
16900 100 0.37496008 0.37496008 0.19035729 0.010235176
17000 100 0.365244 0.365244 0.18508129 0.011814705
17100 100 0.36324363 0.36324363 0.18539176 0.0077602876
17200 100 0.36563128 0.36563128 0.18828717 0.009760622
17300 100 0.41040797 0.41040797 0.21297576 0.0060030421
17400 100 0.42784496 0.42784496 0.22357917 0.0072328321
17500 100 0.44480315 0.44480315 0.23296103 0.0081208771
17600 100 0.49540498 0.49540498 0.26207461 0.0094193362
17700 100 0.53563972 0.53563972 0.28429788 0.0096153439
17800 100 0.59909402 0.59909402 0.31832665 0.0086897236
17900 100 0.65975736 0.65975736 0.35361646 0.010946403
18000 100 0.67883738 0.67883738 0.36868438 0.010453697
18100 100 0.67229859 0.67229859 0.37009573 0.011447688
18200 100 0.58740281 0.58740281 0.32918911 0.012430038
18300 100 0.51321184 0.51321184 0.29212329 0.014782894
18400 100 0.46432678 0.46432678 0.26861208 0.0074401518
18500 100 0.46083979 0.46083979 0.26638884 0.0090587319
18600 100 0.41968764 0.41968764 0.24616432 0.0091476182
18700 100 0.40749768 0.40749768 0.24073731 0.0073954099
18800 100 0.38490007 0.38490007 0.23057035 0.0056617504
18900 100 0.36115679 0.36115679 0.21996888 0.0069095868
19000 100 0.31118149 0.31118149 0.19549915 0.0066423887
19100 100 0.34419249 0.34419249 0.20736311 0.012418102
19200 100 0.33174248 0.33174248 0.19629654 0.0074405926
19300 100 0.33028394 0.33028394 0.19472996 0.0077286569
19400 100 0.33612501 0.33612501 0.19522775 0.0083424841
19500 100 0.32216161 0.32216161 0.18401278 0.0088692814
19600 100 0.33681829 0.33681829 0.18758804 0.0097379383
19700 100 0.33730835 0.33730835 0.18474995 0.009296681
19800 100 0.3351213 0.3351213 0.18164387 0.0061672199
19900 100 0.32674396 0.32674396 0.17780137 0.0062277401
20000 100 0.31549601 0.31549601 0.17276762 0.011954545
Loop time of 0.420421 on 1 procs for 5000 steps with 100 atoms
Performance: 5137707.802 tau/day, 11892.842 timesteps/s, 1.189 Matom-step/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 | 0.010253 | 0.010253 | 0.010253 | 0.0 | 2.44
Neigh | 0.010525 | 0.010525 | 0.010525 | 0.0 | 2.50
Comm | 0.00042181 | 0.00042181 | 0.00042181 | 0.0 | 0.10
Output | 0.33826 | 0.33826 | 0.33826 | 0.0 | 80.46
Modify | 0.059694 | 0.059694 | 0.059694 | 0.0 | 14.20
Other | | 0.001267 | | | 0.30
Nlocal: 100 ave 100 max 100 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: 242 ave 242 max 242 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 242
Ave neighs/atom = 2.42
Neighbor list builds = 435
Dangerous builds = 0
fix_modify 20 move none
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.714 | 4.714 | 4.714 Mbytes
Step Atoms Temp c_1 c_2 Press
20000 100 0.31549601 0.31549601 0.17276762 0.011924862
20100 100 0.067243668 0.067243668 0.051058315 0.0026847669
20200 100 0.064954648 0.064954648 0.04577406 0.0031985925
20300 100 0.081722159 0.081722159 0.052328099 0.003382093
20400 100 0.052538018 0.052538018 0.038041695 0.0080953559
20500 100 0.045138106 0.045138106 0.032227169 0.0035839274
20600 100 0.044187088 0.044187088 0.031849801 0.0032417719
20700 100 0.048791318 0.048791318 0.033838035 0.0030783015
20800 100 0.042228029 0.042228029 0.029496426 0.0026771471
20900 100 0.037884649 0.037884649 0.026659395 0.0016131444
21000 100 0.036121934 0.036121934 0.025961479 0.0033546991
21100 100 0.041151215 0.041151215 0.028554924 0.0014986709
21200 100 0.032352882 0.032352882 0.024166876 0.0018674452
21300 100 0.033808076 0.033808076 0.02501534 0.0014150028
21400 100 0.033233201 0.033233201 0.024762604 0.0015124318
21500 100 0.023344798 0.023344798 0.017595957 0.0020406313
21600 100 0.024137168 0.024137168 0.017835056 0.001648494
21700 100 0.020201901 0.020201901 0.015367789 0.0014089977
21800 100 0.019279358 0.019279358 0.014625498 0.0012643094
21900 100 0.01893081 0.01893081 0.014292746 0.0015049479
22000 100 0.017257227 0.017257227 0.01315079 0.0011652685
22100 100 0.015479952 0.015479952 0.011715026 0.0014536538
22200 100 0.016610168 0.016610168 0.012253776 0.00089466949
22300 100 0.014924039 0.014924039 0.011273468 0.0010494839
22400 100 0.015991668 0.015991668 0.011902404 0.00082344174
22500 100 0.011574074 0.011574074 0.0087681303 0.00081009385
22600 100 0.012494171 0.012494171 0.0092328529 0.0005622816
22700 100 0.011070984 0.011070984 0.0083661745 0.00080065357
22800 100 0.01131513 0.01131513 0.0084259241 0.00073680805
22900 100 0.010217077 0.010217077 0.0077647566 0.00053727888
23000 100 0.0099409381 0.0099409381 0.0074288509 0.00058448502
23100 100 0.0091176585 0.0091176585 0.0069209665 0.00063336231
23200 100 0.0083540727 0.0083540727 0.0063805491 0.0005281495
23300 100 0.008619666 0.008619666 0.0065404908 0.0005398125
23400 100 0.0088762213 0.0088762213 0.0065206851 0.00046304022
23500 100 0.007364061 0.007364061 0.0055771232 0.00046541178
23600 100 0.0074046272 0.0074046272 0.0055598275 0.00036522805
23700 100 0.0073881556 0.0073881556 0.0055580858 0.0005353812
23800 100 0.0072954594 0.0072954594 0.0053965497 0.00041955961
23900 100 0.006566226 0.006566226 0.0047704154 0.00037213632
24000 100 0.0052279617 0.0052279617 0.0039151171 0.00039220479
24100 100 0.004661037 0.004661037 0.0035353607 0.00036592087
24200 100 0.0046822639 0.0046822639 0.0035561511 0.00036233017
24300 100 0.0047878887 0.0047878887 0.0036222045 0.0003906286
24400 100 0.005705559 0.005705559 0.0041298188 0.00039793154
24500 100 0.0038440196 0.0038440196 0.0030815263 0.00050064408
24600 100 0.0035754817 0.0035754817 0.0030293001 0.00032292161
24700 100 0.003446554 0.003446554 0.0027976688 0.00029115924
24800 100 0.0028987207 0.0028987207 0.0023988341 0.00018959598
24900 100 0.0027083267 0.0027083267 0.0021669208 0.0001799362
25000 100 0.0026561456 0.0026561456 0.0020638865 0.00014386648
Loop time of 0.399883 on 1 procs for 5000 steps with 100 atoms
Performance: 5401574.775 tau/day, 12503.645 timesteps/s, 1.250 Matom-step/s
94.0% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0082229 | 0.0082229 | 0.0082229 | 0.0 | 2.06
Neigh | 0.004223 | 0.004223 | 0.004223 | 0.0 | 1.06
Comm | 0.0003435 | 0.0003435 | 0.0003435 | 0.0 | 0.09
Output | 0.32748 | 0.32748 | 0.32748 | 0.0 | 81.89
Modify | 0.058357 | 0.058357 | 0.058357 | 0.0 | 14.59
Other | | 0.001255 | | | 0.31
Nlocal: 100 ave 100 max 100 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: 147 ave 147 max 147 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 147
Ave neighs/atom = 1.47
Neighbor list builds = 173
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,481 @@
LAMMPS (27 Jun 2024)
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551)
# pouring spheres into box made of triangles
units lj
atom_style sphere
#atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -10 10 -10 10 -10 10 units box
create_box 2 box # simply for dump_modify to color lines = green
Created orthogonal box = (-10 -10 -10) to (10 10 10)
1 by 2 by 2 MPI processor grid
pair_style gran/hooke 4000.0 NULL 100.0 NULL 0.5 1
pair_coeff * *
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 20 all surface/global surf.tribox.stl hooke 4000.0 NULL 100.0 NULL 0.5 1
Reading STL object STL version of surf.tribox from text file surf.tribox.stl
#fix 20 all surface/global surf.tribox.stl hooke/history # 4000.0 NULL 100.0 NULL 0.5 1
fix 2 all nve/sphere
fix 3 all gravity 1.0 vector 0 0 -1
#fix 4 all viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
fix ins all pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 48 every 566 steps, 100 by step 1133
timestep 0.005
compute 1 all temp
compute_modify 1 dynamic yes
compute 2 all temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 fix 20 type 2 0.5
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 1.3
binsize = 0.65, bins = 31 31 31
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair gran/hooke, perpetual
attributes: half, newton on, size
pair build: half/size/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 0.486 | 0.486 | 0.486 Mbytes
Step Atoms Temp c_1 c_2 Press
0 0 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 30 0.803783 0.803783 0.39507978 0.0029137134
200 30 1.1967995 1.1967995 0.5882574 0.0043383984
300 30 1.2814686 1.2814686 0.62987441 0.0046453238
400 30 0.82347039 0.82347039 0.41172861 0.0029850802
500 30 0.76963938 0.76963938 0.38709352 0.0042867255
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 64 0.51325196 0.51325196 0.26472957 0.0045780407
700 64 0.57133229 0.57133229 0.29476966 0.0046847812
800 64 0.630634 0.630634 0.32751956 0.0050038133
900 64 0.54233611 0.54233611 0.28819808 0.0052880896
1000 64 0.48543152 0.48543152 0.26491902 0.0064773948
1100 64 0.47303609 0.47303609 0.2578388 0.0057125611
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 99 0.40053109 0.40053109 0.2195167 0.0081778049
1300 99 0.42696772 0.42696772 0.23049402 0.006385146
1400 99 0.37139574 0.37139574 0.20331799 0.0074485306
1500 99 0.33478846 0.33478846 0.18670496 0.0061673941
1600 99 0.29982872 0.29982872 0.16693769 0.0051747984
1700 100 0.2069625 0.2069625 0.12302495 0.005783624
1800 100 0.12902068 0.12902068 0.08608601 0.0019792234
1900 100 0.080857095 0.080857095 0.05967251 0.0022973101
2000 100 0.064403959 0.064403959 0.046429734 0.0011922946
2100 100 0.056475466 0.056475466 0.038678907 0.00085302928
2200 100 0.050018273 0.050018273 0.03438483 0.0032112547
2300 100 0.02186833 0.02186833 0.01765815 0.001152603
2400 100 0.02218925 0.02218925 0.016714386 0.00056474678
2500 100 0.012569988 0.012569988 0.010200648 0.0006133907
2600 100 0.010862479 0.010862479 0.0086989172 0.00028072722
2700 100 0.0092737903 0.0092737903 0.0071165383 0.00041430278
2800 100 0.0078587709 0.0078587709 0.00592121 0.00017374958
2900 100 0.0048613617 0.0048613617 0.004000904 0.00021321956
3000 100 0.0050147313 0.0050147313 0.0038322501 0.00017831675
3100 100 0.0025550411 0.0025550411 0.0022405824 6.8592843e-05
3200 100 0.0023577912 0.0023577912 0.0020418633 0.0003584618
3300 100 0.0018996206 0.0018996206 0.0016777567 7.5165222e-05
3400 100 0.001694751 0.001694751 0.0015042348 0.00014566717
3500 100 0.0020882068 0.0020882068 0.0016170458 8.7027542e-05
3600 100 0.0010813667 0.0010813667 0.0010137349 8.5126382e-05
3700 100 0.00094548982 0.00094548982 0.00086966169 4.2409893e-05
3800 100 0.00084816181 0.00084816181 0.00077098131 3.011429e-05
3900 100 0.00078382097 0.00078382097 0.00071960486 5.939333e-05
4000 100 0.00075302926 0.00075302926 0.00067851822 3.2758594e-05
4100 100 0.00051405526 0.00051405526 0.00048629367 0.00013859285
4200 100 0.00038825626 0.00038825626 0.00038868575 0.00020599691
4300 100 0.00031919597 0.00031919597 0.00033058576 0.00010854923
4400 100 0.00029919941 0.00029919941 0.00031222783 7.2391663e-05
4500 100 0.0002903216 0.0002903216 0.00029974662 5.5125563e-05
4600 100 0.0002753977 0.0002753977 0.00028258456 9.6552286e-05
4700 100 0.00027064725 0.00027064725 0.0002776974 4.0309048e-05
4800 100 0.00024203571 0.00024203571 0.00025112727 3.3700422e-05
4900 100 0.00020539914 0.00020539914 0.00021705763 2.7873051e-05
5000 100 0.00018816565 0.00018816565 0.00020135634 4.7752851e-05
Loop time of 0.542754 on 4 procs for 5000 steps with 100 atoms
Performance: 3979701.998 tau/day, 9212.273 timesteps/s, 921.227 katom-step/s
97.7% 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.00023334 | 0.0013294 | 0.0024933 | 3.0 | 0.24
Neigh | 0.0014051 | 0.0023307 | 0.0035103 | 1.7 | 0.43
Comm | 0.0076195 | 0.011811 | 0.015893 | 3.6 | 2.18
Output | 0.36521 | 0.41573 | 0.48288 | 7.3 | 76.60
Modify | 0.0021283 | 0.017049 | 0.034423 | 11.4 | 3.14
Other | | 0.09451 | | | 17.41
Nlocal: 25 ave 50 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 4.5 ave 9 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 40.5 ave 82 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 162
Ave neighs/atom = 1.62
Neighbor list builds = 270
Dangerous builds = 0
fix_modify 20 move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.486 | 4.549 | 4.612 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 100 0.00018816565 0.00018816565 0.00020135634 4.4246792e-05
5100 100 0.14937779 0.14937779 0.086114773 0.0025984359
5200 100 0.17697193 0.17697193 0.1019691 0.0026173891
5300 100 0.18255024 0.18255024 0.10122134 0.0041759269
5400 100 0.19510207 0.19510207 0.1050284 0.0027541295
5500 100 0.1980801 0.1980801 0.10458743 0.0027957101
5600 100 0.20490362 0.20490362 0.10674522 0.002985542
5700 100 0.21087885 0.21087885 0.10861062 0.0030935481
5800 100 0.22309411 0.22309411 0.11419601 0.0029760547
5900 100 0.22880189 0.22880189 0.1171042 0.0029681474
6000 100 0.2363739 0.2363739 0.12083453 0.0032437464
6100 100 0.24581768 0.24581768 0.12531649 0.0032571271
6200 100 0.25161424 0.25161424 0.12838601 0.0034995369
6300 100 0.25972194 0.25972194 0.13241738 0.0035882457
6400 100 0.2678312 0.2678312 0.13632033 0.0036612131
6500 100 0.27990358 0.27990358 0.14189324 0.0046486676
6600 100 0.2827759 0.2827759 0.14317296 0.0048164853
6700 100 0.2897351 0.2897351 0.14616568 0.0042753049
6800 100 0.29164978 0.29164978 0.14688678 0.0040397004
6900 100 0.29377421 0.29377421 0.14786359 0.0051561937
7000 100 0.29698841 0.29698841 0.14947643 0.0046008044
7100 100 0.3019081 0.3019081 0.15147175 0.0065696769
7200 100 0.30532028 0.30532028 0.1531023 0.0045987829
7300 100 0.30629289 0.30629289 0.15368598 0.0048558556
7400 100 0.30534641 0.30534641 0.15316839 0.0057637671
7500 100 0.30786877 0.30786877 0.15429461 0.004843753
7600 100 0.30862009 0.30862009 0.15464621 0.0052118056
7700 100 0.30900657 0.30900657 0.15478242 0.0048879932
7800 100 0.31054034 0.31054034 0.1554636 0.0052082034
7900 100 0.31174887 0.31174887 0.15610325 0.0049178073
8000 100 0.31247071 0.31247071 0.15647921 0.0052603626
8100 100 0.31273024 0.31273024 0.15659099 0.0056001647
8200 100 0.3140235 0.3140235 0.15727592 0.004977821
8300 100 0.31383701 0.31383701 0.15715969 0.0052231004
8400 100 0.31509644 0.31509644 0.15775385 0.0050051889
8500 100 0.31498521 0.31498521 0.15762151 0.0052864908
8600 100 0.31575201 0.31575201 0.15792624 0.0050759547
8700 100 0.31620758 0.31620758 0.15818292 0.0050530619
8800 100 0.31691036 0.31691036 0.15860213 0.005004857
8900 100 0.31659627 0.31659627 0.15846212 0.0050695163
9000 100 0.31769151 0.31769151 0.15903638 0.0050507355
9100 100 0.31716143 0.31716143 0.15881355 0.005017094
9200 100 0.31633956 0.31633956 0.1585031 0.0053446628
9300 100 0.31655443 0.31655443 0.15863537 0.0049328007
9400 100 0.31599503 0.31599503 0.15822485 0.0049933297
9500 100 0.31660281 0.31660281 0.15853731 0.0049387958
9600 100 0.31664518 0.31664518 0.15861539 0.0049222414
9700 100 0.31824803 0.31824803 0.15934333 0.0052873464
9800 100 0.31820192 0.31820192 0.15932994 0.0049687062
9900 100 0.31846082 0.31846082 0.15943054 0.0053817995
10000 100 0.31969811 0.31969811 0.15997735 0.005012462
Loop time of 0.522575 on 4 procs for 5000 steps with 100 atoms
Performance: 4133381.630 tau/day, 9568.013 timesteps/s, 956.801 katom-step/s
96.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.00017938 | 0.0034898 | 0.0074454 | 5.6 | 0.67
Neigh | 0.0013735 | 0.0028718 | 0.0047582 | 2.8 | 0.55
Comm | 0.0060132 | 0.009996 | 0.014865 | 3.9 | 1.91
Output | 0.34648 | 0.38923 | 0.45057 | 6.7 | 74.48
Modify | 0.0022557 | 0.02188 | 0.043145 | 13.2 | 4.19
Other | | 0.09511 | | | 18.20
Nlocal: 25 ave 52 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 4.25 ave 9 max 0 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Neighs: 47.5 ave 111 max 0 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Total # of neighbors = 190
Ave neighs/atom = 1.9
Neighbor list builds = 334
Dangerous builds = 0
fix_modify 20 move none
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.486 | 4.549 | 4.612 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 100 0.31969811 0.31969811 0.15997735 0.005039886
10100 100 0.096856693 0.096856693 0.061256799 0.0017653508
10200 100 0.06374563 0.06374563 0.049164989 0.00074375479
10300 100 0.053346958 0.053346958 0.041648676 0.00088021828
10400 100 0.04530167 0.04530167 0.035468031 0.0006357307
10500 100 0.036511473 0.036511473 0.02864095 0.00046569718
10600 100 0.031850796 0.031850796 0.024752197 0.001484525
10700 100 0.027853481 0.027853481 0.021856016 0.00083233598
10800 100 0.023988298 0.023988298 0.018551491 0.00025321878
10900 100 0.022362927 0.022362927 0.01775739 0.00027674123
11000 100 0.019598739 0.019598739 0.01566657 0.00029114873
11100 100 0.016949467 0.016949467 0.013323455 0.00054759179
11200 100 0.013201141 0.013201141 0.010205793 0.00046859829
11300 100 0.010724903 0.010724903 0.0083548813 0.00016110668
11400 100 0.0094528501 0.0094528501 0.0074254702 0.00012282294
11500 100 0.0081681904 0.0081681904 0.0064435379 0.00018389596
11600 100 0.0080112061 0.0080112061 0.006319339 9.9138675e-05
11700 100 0.0072316886 0.0072316886 0.0056968863 8.9492146e-05
11800 100 0.0066741475 0.0066741475 0.0052653282 9.1792343e-05
11900 100 0.0060596979 0.0060596979 0.0048019244 0.00059435717
12000 100 0.0058193298 0.0058193298 0.0046098949 7.2231759e-05
12100 100 0.0053847114 0.0053847114 0.0042545862 9.3394135e-05
12200 100 0.0049412476 0.0049412476 0.0039106158 0.00010078502
12300 100 0.004572105 0.004572105 0.0036504695 5.5867397e-05
12400 100 0.0042412045 0.0042412045 0.0034175496 0.00036582163
12500 100 0.0035923846 0.0035923846 0.0029316243 6.9114212e-05
12600 100 0.0032446947 0.0032446947 0.0026668677 4.1659699e-05
12700 100 0.003132735 0.003132735 0.0025875973 5.6802791e-05
12800 100 0.0030486242 0.0030486242 0.0025160882 0.00024777199
12900 100 0.0029017497 0.0029017497 0.0024179283 6.7491687e-05
13000 100 0.0027960043 0.0027960043 0.0023415783 3.4600553e-05
13100 100 0.0024698607 0.0024698607 0.0020868913 0.00015330841
13200 100 0.0023835355 0.0023835355 0.0020283653 2.9496252e-05
13300 100 0.0021088439 0.0021088439 0.0018016867 5.3026287e-05
13400 100 0.0018955838 0.0018955838 0.0016251265 5.6464898e-05
13500 100 0.0017787595 0.0017787595 0.0015273835 0.00010533321
13600 100 0.0017398053 0.0017398053 0.0015003761 2.153009e-05
13700 100 0.0017070216 0.0017070216 0.0014780376 2.2369503e-05
13800 100 0.0016227474 0.0016227474 0.0014210693 6.9106097e-05
13900 100 0.0016020414 0.0016020414 0.0013971016 1.9825262e-05
14000 100 0.0015849364 0.0015849364 0.0013841731 1.9613588e-05
14100 100 0.0014802906 0.0014802906 0.001301188 2.3602632e-05
14200 100 0.0014452784 0.0014452784 0.0012723611 5.4930779e-05
14300 100 0.0013373933 0.0013373933 0.0011970238 7.7331197e-05
14400 100 0.0012644873 0.0012644873 0.0011371743 3.3804604e-05
14500 100 0.0012269172 0.0012269172 0.0011090464 0.00019066733
14600 100 0.0011790378 0.0011790378 0.0010710915 2.2152438e-05
14700 100 0.001141029 0.001141029 0.0010389261 1.4725855e-05
14800 100 0.001136936 0.001136936 0.0010350762 1.833013e-05
14900 100 0.0010587639 0.0010587639 0.00097375352 1.3102203e-05
15000 100 0.0010255325 0.0010255325 0.00094590806 1.5126454e-05
Loop time of 0.518427 on 4 procs for 5000 steps with 100 atoms
Performance: 4166449.618 tau/day, 9644.559 timesteps/s, 964.456 katom-step/s
96.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.00015995 | 0.0012056 | 0.0023882 | 3.0 | 0.23
Neigh | 0.00040855 | 0.00070112 | 0.0010401 | 0.0 | 0.14
Comm | 0.0011854 | 0.0064387 | 0.011735 | 6.5 | 1.24
Output | 0.35648 | 0.4008 | 0.4616 | 6.5 | 77.31
Modify | 0.00044023 | 0.018312 | 0.038465 | 13.3 | 3.53
Other | | 0.09097 | | | 17.55
Nlocal: 25 ave 50 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 4.25 ave 10 max 0 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Neighs: 37 ave 77 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 148
Ave neighs/atom = 1.48
Neighbor list builds = 72
Dangerous builds = 0
fix_modify 20 move rotate 0 0 0 1 1 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.486 | 4.549 | 4.612 Mbytes
Step Atoms Temp c_1 c_2 Press
15000 100 0.0010255325 0.0010255325 0.00094590806 1.4814045e-05
15100 100 0.16111221 0.16111221 0.097982105 0.0056716878
15200 100 0.21347296 0.21347296 0.12567019 0.0029815056
15300 100 0.24705334 0.24705334 0.13884473 0.0078448562
15400 100 0.27522493 0.27522493 0.15035782 0.0073215473
15500 100 0.30348486 0.30348486 0.16433701 0.0068229641
15600 100 0.31550013 0.31550013 0.16857649 0.0077789307
15700 100 0.32318922 0.32318922 0.1719013 0.012280847
15800 100 0.33908701 0.33908701 0.17750923 0.015821994
15900 100 0.35593866 0.35593866 0.18345193 0.021263374
16000 100 0.36889801 0.36889801 0.1869234 0.011456078
16100 100 0.35809835 0.35809835 0.18158992 0.014811103
16200 100 0.36319635 0.36319635 0.18337159 0.012823323
16300 100 0.35852464 0.35852464 0.18081456 0.01280934
16400 100 0.34902631 0.34902631 0.17663396 0.012992629
16500 100 0.33443513 0.33443513 0.16948607 0.012986886
16600 100 0.3150597 0.3150597 0.16079097 0.010586882
16700 100 0.31338609 0.31338609 0.16045733 0.009805616
16800 100 0.30473867 0.30473867 0.15686705 0.014362545
16900 100 0.31270607 0.31270607 0.16119766 0.0070575979
17000 100 0.2832931 0.2832931 0.14785887 0.0039466166
17100 100 0.28215868 0.28215868 0.14795001 0.0068627045
17200 100 0.29701033 0.29701033 0.16099476 0.0040667324
17300 100 0.3665611 0.3665611 0.19664166 0.0065836505
17400 100 0.43400548 0.43400548 0.23335072 0.0096693511
17500 100 0.5057676 0.5057676 0.2773349 0.0071479313
17600 100 0.52614351 0.52614351 0.29090432 0.0095749902
17700 100 0.52478022 0.52478022 0.29525839 0.010528327
17800 100 0.53046479 0.53046479 0.29862674 0.012410569
17900 100 0.51722354 0.51722354 0.29212965 0.0097423802
18000 100 0.51837131 0.51837131 0.29426864 0.010265508
18100 100 0.46407283 0.46407283 0.26786292 0.015842602
18200 100 0.4281392 0.4281392 0.24883206 0.016085526
18300 100 0.36407304 0.36407304 0.22014997 0.0091448904
18400 100 0.32800292 0.32800292 0.20387181 0.0088602724
18500 100 0.30727965 0.30727965 0.18744751 0.0067928429
18600 100 0.31715182 0.31715182 0.19306784 0.0047252497
18700 100 0.29383189 0.29383189 0.18450238 0.0046337396
18800 100 0.28365185 0.28365185 0.1810902 0.005644391
18900 100 0.30670015 0.30670015 0.19521314 0.0048593554
19000 100 0.31681967 0.31681967 0.201889 0.0059511233
19100 100 0.32218287 0.32218287 0.20009306 0.0093378277
19200 100 0.30255724 0.30255724 0.19160821 0.0087838518
19300 100 0.31907942 0.31907942 0.19849225 0.0093802566
19400 100 0.31650176 0.31650176 0.18834128 0.010429547
19500 100 0.32959296 0.32959296 0.19229144 0.012724502
19600 100 0.33134974 0.33134974 0.18581781 0.016960866
19700 100 0.32878109 0.32878109 0.18215506 0.0096165803
19800 100 0.33724696 0.33724696 0.18335211 0.0060443045
19900 100 0.33179464 0.33179464 0.17822307 0.010776083
20000 100 0.34377432 0.34377432 0.1841787 0.0094534745
Loop time of 0.554453 on 4 procs for 5000 steps with 100 atoms
Performance: 3895732.487 tau/day, 9017.899 timesteps/s, 901.790 katom-step/s
96.8% 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.00041707 | 0.0030836 | 0.0058653 | 4.5 | 0.56
Neigh | 0.0023165 | 0.0042879 | 0.0074847 | 3.2 | 0.77
Comm | 0.020096 | 0.023667 | 0.026287 | 1.5 | 4.27
Output | 0.36416 | 0.41297 | 0.47377 | 6.5 | 74.48
Modify | 0.0054574 | 0.020137 | 0.037629 | 10.0 | 3.63
Other | | 0.09031 | | | 16.29
Nlocal: 25 ave 67 max 0 min
Histogram: 2 0 0 0 1 0 0 0 0 1
Nghost: 6.25 ave 13 max 0 min
Histogram: 1 1 0 0 0 0 0 1 0 1
Neighs: 54.75 ave 156 max 0 min
Histogram: 2 0 0 0 1 0 0 0 0 1
Total # of neighbors = 219
Ave neighs/atom = 2.19
Neighbor list builds = 430
Dangerous builds = 0
fix_modify 20 move none
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.611 | 4.612 | 4.612 Mbytes
Step Atoms Temp c_1 c_2 Press
20000 100 0.34377432 0.34377432 0.1841787 0.0092764528
20100 100 0.097239014 0.097239014 0.068864895 0.0029157234
20200 100 0.090387219 0.090387219 0.063243792 0.0030276724
20300 100 0.10130213 0.10130213 0.065604495 0.0040954401
20400 100 0.073193003 0.073193003 0.049395297 0.011005746
20500 100 0.064987626 0.064987626 0.042476486 0.0035623578
20600 100 0.056092845 0.056092845 0.035733351 0.0046843988
20700 100 0.047975467 0.047975467 0.031279933 0.006027
20800 100 0.042713655 0.042713655 0.028630415 0.0028623851
20900 100 0.027009619 0.027009619 0.019950334 0.0031930947
21000 100 0.030115735 0.030115735 0.021837467 0.0031118498
21100 100 0.030382146 0.030382146 0.02158358 0.0016950638
21200 100 0.028917881 0.028917881 0.020618558 0.0015449848
21300 100 0.02553423 0.02553423 0.018753907 0.0020401097
21400 100 0.024907599 0.024907599 0.018805009 0.0015219354
21500 100 0.028047498 0.028047498 0.020431592 0.0036172877
21600 100 0.023143766 0.023143766 0.017048059 0.001391321
21700 100 0.025832817 0.025832817 0.018907239 0.0014196777
21800 100 0.02294723 0.02294723 0.016986932 0.00099306999
21900 100 0.021774769 0.021774769 0.016357385 0.0015445184
22000 100 0.019488798 0.019488798 0.014411675 0.00096975376
22100 100 0.017498173 0.017498173 0.013303102 0.0013869769
22200 100 0.017606431 0.017606431 0.013696534 0.0016275912
22300 100 0.01864478 0.01864478 0.014363082 0.00093199338
22400 100 0.017184319 0.017184319 0.013013426 0.0007137204
22500 100 0.016970049 0.016970049 0.012735761 0.00094285653
22600 100 0.015601151 0.015601151 0.011558366 0.00064664867
22700 100 0.01532704 0.01532704 0.011052585 0.0011443538
22800 100 0.013843117 0.013843117 0.010175224 0.00074058068
22900 100 0.0142626 0.0142626 0.010517503 0.00062291367
23000 100 0.012672457 0.012672457 0.0095213548 0.00048253765
23100 100 0.011770367 0.011770367 0.0088631275 0.0010809683
23200 100 0.0099747299 0.0099747299 0.0076787282 0.00049951509
23300 100 0.01031026 0.01031026 0.0079525195 0.00064873732
23400 100 0.0096104307 0.0096104307 0.0072783079 0.00045628129
23500 100 0.0092403444 0.0092403444 0.0069910691 0.00055860189
23600 100 0.0087158451 0.0087158451 0.0064234628 0.00042327506
23700 100 0.0076095087 0.0076095087 0.005524052 0.00040612722
23800 100 0.0073236191 0.0073236191 0.0054016138 0.0002882358
23900 100 0.0076690517 0.0076690517 0.0054567733 0.000294478
24000 100 0.0068826778 0.0068826778 0.0049332647 0.00025128376
24100 100 0.006293019 0.006293019 0.0046682205 0.00029832544
24200 100 0.005767467 0.005767467 0.0043594373 0.00026379963
24300 100 0.005071854 0.005071854 0.0038348196 0.00026374758
24400 100 0.0051487759 0.0051487759 0.0038569741 0.00047689032
24500 100 0.0045914722 0.0045914722 0.0034370386 0.00026920355
24600 100 0.0042661938 0.0042661938 0.0031638249 0.00023704631
24700 100 0.0038978286 0.0038978286 0.0028913869 0.00029112049
24800 100 0.0033993745 0.0033993745 0.0025640275 0.00054348397
24900 100 0.0030064864 0.0030064864 0.0022631158 0.00016374877
25000 100 0.0030540972 0.0030540972 0.0022935172 0.00012379035
Loop time of 0.531538 on 4 procs for 5000 steps with 100 atoms
Performance: 4063677.790 tau/day, 9406.662 timesteps/s, 940.666 katom-step/s
96.7% 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.00017249 | 0.0025494 | 0.0063723 | 5.1 | 0.48
Neigh | 0.00078415 | 0.0017788 | 0.0029816 | 2.4 | 0.33
Comm | 0.0024926 | 0.0084554 | 0.015551 | 6.0 | 1.59
Output | 0.35621 | 0.40519 | 0.46627 | 6.6 | 76.23
Modify | 0.00052416 | 0.018236 | 0.04055 | 13.3 | 3.43
Other | | 0.09532 | | | 17.93
Nlocal: 25 ave 57 max 0 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Nghost: 5.25 ave 13 max 0 min
Histogram: 2 0 0 0 0 0 1 0 0 1
Neighs: 38.75 ave 96 max 0 min
Histogram: 2 0 0 0 0 0 1 0 0 1
Total # of neighbors = 155
Ave neighs/atom = 1.55
Neighbor list builds = 183
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,515 @@
LAMMPS (27 Jun 2024)
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -10 10 -10 10 -10 10 units box
create_box 2 box
Created orthogonal box = (-10 -10 -10) to (10 10 10)
1 by 1 by 1 MPI processor grid
molecule tris surf.tribox
Read molecule template tris:
LAMMPS data file for tri box
1 molecules
0 fragments
0 atoms with max type 0
0 bonds with max type 0
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
24 triangles
fix 20 all surface/local tris
pair_style hybrid gran/hooke 4000.0 NULL 100.0 NULL 0.5 1 tri/gran/hooke 4000.0 NULL 100.0 50.0 0.5 1
pair_coeff 1 1 gran/hooke
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group tri type 2
24 atoms in group tri
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 48 every 566 steps, 100 by step 1133
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 7.1245553
ghost atom cutoff = 7.1245553
binsize = 3.5622777, bins = 6 6 6
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke, perpetual, skip trim from (3)
attributes: half, newton on, size, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair tri/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 7.31 | 7.31 | 7.31 Mbytes
Step Atoms Temp c_1 c_2 Press
0 24 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 54 0.43980579 0.803783 0.39507978 0.0029137134
200 54 0.65485258 1.1967995 0.5882574 0.0043383984
300 54 0.70118095 1.2814686 0.62987441 0.0046453238
400 54 0.45057814 0.82347039 0.41172861 0.0030892546
500 54 0.42112344 0.76963938 0.38709352 0.0065941015
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 88 0.37166521 0.51325196 0.26472957 0.0046580242
700 88 0.41372338 0.57133229 0.29476966 0.0052995687
800 88 0.456666 0.630634 0.32751956 0.0052868185
900 88 0.39272615 0.54233611 0.28819808 0.0054685106
1000 88 0.35151938 0.48543152 0.26491902 0.0075844126
1100 88 0.34254338 0.47303609 0.2578388 0.0058365561
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 123 0.32173809 0.40053109 0.2195167 0.009133967
1300 123 0.34297407 0.42696772 0.23049402 0.0064335441
1400 123 0.29833429 0.37139575 0.20331799 0.0078377048
1500 123 0.26892843 0.33478846 0.18670497 0.0068237101
1600 123 0.24084602 0.29982872 0.16693769 0.0058533752
1700 124 0.16657955 0.20696247 0.12302494 0.0070405476
1800 124 0.10384588 0.12902064 0.086085999 0.0026199715
1900 124 0.065080172 0.080857183 0.059672578 0.0039751399
2000 124 0.05183749 0.064404155 0.04642994 0.0020956381
2100 124 0.045454362 0.056473601 0.038678168 0.0021869997
2200 124 0.040260905 0.050021124 0.034386815 0.0040428451
2300 124 0.017599393 0.021865913 0.017659764 0.0033409468
2400 124 0.017871721 0.022204259 0.016705944 0.0035685432
2500 124 0.010140453 0.012598745 0.01022206 0.0012285049
2600 124 0.0087985586 0.010931542 0.0087284393 0.0012843554
2700 124 0.007517666 0.0093401305 0.00718198 0.0014841823
2800 124 0.0062773841 0.0077991742 0.0059012301 0.0013324193
2900 124 0.0038811224 0.0048220006 0.0039901849 0.0012740179
3000 124 0.0040758656 0.0050639543 0.003890039 0.001333468
3100 124 0.0020497159 0.0025466167 0.0022373889 0.0012963602
3200 124 0.0019596496 0.0024347162 0.0021331337 0.0011575952
3300 124 0.001619509 0.0020121172 0.0017930305 0.0011065531
3400 124 0.0013352687 0.0016589702 0.0014836146 0.0013075216
3500 124 0.0011048269 0.0013726637 0.0012547142 0.0016936826
3600 124 0.00089868347 0.0011165461 0.0010379824 0.0013037755
3700 124 0.00079538563 0.00098820638 0.0008953041 0.0011379267
3800 124 0.00072591855 0.0009018988 0.00083210028 0.0014623234
3900 124 0.00059200429 0.00073552048 0.00068255735 0.0011062713
4000 124 0.00048509163 0.0006026896 0.00057581131 0.0011359453
4100 124 0.00039281562 0.00048804365 0.00046290412 0.001112345
4200 124 0.00033127035 0.00041157831 0.00040230271 0.0011101349
4300 124 0.00025217556 0.00031330904 0.00033013679 0.001220284
4400 124 0.00021998869 0.00027331928 0.00029069852 0.0010876934
4500 124 0.0002012981 0.00025009764 0.00026845495 0.0011165366
4600 124 0.00019974132 0.00024816346 0.00026538627 0.001112397
4700 124 0.00018344096 0.0002279115 0.00024939407 0.0011208162
4800 124 0.00017967553 0.00022323323 0.00024517143 0.0011139226
4900 124 0.00015575257 0.00019351076 0.000215109 0.0011122181
5000 124 0.00013945209 0.00017325866 0.00019787988 0.0011571915
Loop time of 0.317507 on 1 procs for 5000 steps with 124 atoms
Performance: 6803005.318 tau/day, 15747.697 timesteps/s, 1.953 Matom-step/s
94.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 | 0.049124 | 0.049124 | 0.049124 | 0.0 | 15.47
Neigh | 0.012461 | 0.012461 | 0.012461 | 0.0 | 3.92
Comm | 0.00036472 | 0.00036472 | 0.00036472 | 0.0 | 0.11
Output | 0.25022 | 0.25022 | 0.25022 | 0.0 | 78.81
Modify | 0.0041121 | 0.0041121 | 0.0041121 | 0.0 | 1.30
Other | | 0.001224 | | | 0.39
Nlocal: 124 ave 124 max 124 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 270
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 8.437 | 8.437 | 8.437 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 124 0.00013945209 0.00017325866 0.00019787988 0.0011523447
5100 124 5.2504023 0.15308533 0.087279574 0.082413806
5200 124 5.2659596 0.17241407 0.099384862 0.083118924
5300 124 5.2712193 0.17894892 0.099626237 0.084288849
5400 124 5.2787049 0.18824913 0.10219206 0.081763058
5500 124 5.2864544 0.19787729 0.10492289 0.082100381
5600 124 5.2939393 0.20717681 0.10842003 0.081936074
5700 124 5.3020913 0.21730504 0.11309658 0.083096264
5800 124 5.3089934 0.22588036 0.11657282 0.083472698
5900 124 5.3147183 0.23299307 0.12000481 0.083337683
6000 124 5.3241216 0.24467603 0.12524512 0.083312456
6100 124 5.3345453 0.25762669 0.13135815 0.083666287
6200 124 5.3357153 0.25908032 0.13185776 0.083855111
6300 124 5.3417298 0.26655284 0.13521844 0.084511512
6400 124 5.3461733 0.27207356 0.1375877 0.08445019
6500 124 5.3491551 0.27577827 0.13949034 0.084694686
6600 124 5.3520289 0.27934872 0.14134154 0.084403705
6700 124 5.355841 0.28408494 0.1435925 0.08479568
6800 124 5.3608822 0.29034823 0.14636154 0.084796891
6900 124 5.3641064 0.29435404 0.14822031 0.084636583
7000 124 5.3664936 0.29731999 0.14957082 0.084681424
7100 124 5.370434 0.30221567 0.15171915 0.084744017
7200 124 5.3716029 0.30366789 0.15224159 0.085599998
7300 124 5.3719337 0.30407894 0.15239181 0.085265794
7400 124 5.3717886 0.30389862 0.15228125 0.085048862
7500 124 5.3729819 0.30538125 0.15302965 0.085513236
7600 124 5.3736409 0.30619992 0.15346603 0.085126903
7700 124 5.3734973 0.30602161 0.15326715 0.085870776
7800 124 5.3742065 0.3069027 0.1536922 0.085152121
7900 124 5.3752637 0.30821621 0.15439789 0.085476609
8000 124 5.3773145 0.31076416 0.15559007 0.085791749
8100 124 5.3777123 0.31125838 0.15591462 0.08531435
8200 124 5.3775898 0.31110617 0.1558302 0.085752338
8300 124 5.3775553 0.31106337 0.15562475 0.086300437
8400 124 5.3799091 0.31398779 0.1570463 0.085260347
8500 124 5.3799831 0.31407966 0.15713064 0.085373576
8600 124 5.380017 0.31412181 0.15720523 0.085342084
8700 124 5.3799686 0.31406171 0.15721123 0.086223474
8800 124 5.3813565 0.31578601 0.15798281 0.085392543
8900 124 5.3815941 0.31608116 0.15818243 0.085482019
9000 124 5.3815651 0.31604517 0.15821916 0.085538444
9100 124 5.3816424 0.31614127 0.15829616 0.085684184
9200 124 5.3815641 0.3160439 0.15831347 0.08526896
9300 124 5.3811199 0.31549204 0.15801464 0.085848004
9400 124 5.382478 0.31717943 0.15882722 0.086145692
9500 124 5.3830353 0.31787185 0.15915683 0.085450771
9600 124 5.3831332 0.31799341 0.15923155 0.085416324
9700 124 5.3832948 0.31819419 0.15935762 0.085387545
9800 124 5.3840779 0.31916711 0.15975721 0.08560667
9900 124 5.3842171 0.31934012 0.159845 0.085547365
10000 124 5.3862101 0.32181619 0.160876 0.085414766
Loop time of 0.353055 on 1 procs for 5000 steps with 124 atoms
Performance: 6118026.711 tau/day, 14162.099 timesteps/s, 1.756 Matom-step/s
96.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 | 0.070537 | 0.070537 | 0.070537 | 0.0 | 19.98
Neigh | 0.019928 | 0.019928 | 0.019928 | 0.0 | 5.64
Comm | 0.00042487 | 0.00042487 | 0.00042487 | 0.0 | 0.12
Output | 0.2524 | 0.2524 | 0.2524 | 0.0 | 71.49
Modify | 0.0083924 | 0.0083924 | 0.0083924 | 0.0 | 2.38
Other | | 0.001368 | | | 0.39
Nlocal: 124 ave 124 max 124 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 315
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
100 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.562 | 7.562 | 7.562 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 124 0.25902279 0.32181619 0.160876 0.0066564852
10100 124 0.078320106 0.097306799 0.060539222 0.007805448
10200 124 0.055004387 0.068338784 0.052320677 0.0026461505
10300 124 0.050013703 0.062138237 0.049351053 0.0027137895
10400 124 0.043870518 0.054505795 0.044683006 0.0021708086
10500 124 0.036776691 0.045692252 0.037872077 0.0025876629
10600 124 0.030001621 0.037274742 0.032601767 0.0035817232
10700 124 0.026098209 0.032425048 0.029320364 0.0019774985
10800 124 0.024452388 0.03038024 0.028518503 0.0034548101
10900 124 0.020787653 0.025827084 0.025880067 0.0023865627
11000 124 0.018283729 0.022716148 0.024283842 0.0024791255
11100 124 0.016795448 0.020867072 0.023416045 0.0016336875
11200 124 0.014930262 0.01854972 0.021981853 0.0015505118
11300 124 0.014012114 0.017408991 0.021130907 0.0017795037
11400 124 0.013562682 0.016850605 0.020502505 0.0025724773
11500 124 0.012884492 0.016008005 0.01991195 0.0015754014
11600 124 0.011953832 0.014851731 0.018960689 0.0020007622
11700 124 0.011836339 0.014705755 0.019435427 0.0016103993
11800 124 0.011037076 0.013712731 0.018997693 0.0019540971
11900 124 0.010932107 0.013582315 0.019072917 0.00147549
12000 124 0.01099415 0.013659399 0.018695305 0.0016223256
12100 124 0.010704976 0.013300121 0.018841965 0.0015737757
12200 124 0.010244691 0.012728253 0.018984857 0.0023548154
12300 124 0.0097078529 0.012061272 0.018340321 0.0020279841
12400 124 0.0093873799 0.011663108 0.018058176 0.0017085133
12500 124 0.0091864665 0.011413489 0.016617566 0.0029005125
12600 124 0.0093721201 0.011644149 0.01659216 0.001843826
12700 124 0.0085867868 0.010668432 0.01610889 0.0027852908
12800 124 0.0080688661 0.010024955 0.016412496 0.0035052823
12900 124 0.0070827536 0.0087997848 0.014807272 0.0023574294
13000 124 0.0062582856 0.0077754457 0.01480373 0.0027340736
13100 124 0.0057725257 0.0071719259 0.015062076 0.002487901
13200 124 0.0052896823 0.0065720295 0.0154416 0.0015994582
13300 124 0.0057364664 0.0071271249 0.015700129 0.0015451013
13400 124 0.0062684466 0.00778807 0.016185631 0.0018109382
13500 124 0.0057823202 0.0071840947 0.015642287 0.0023353672
13600 124 0.0054893444 0.0068200946 0.015197387 0.0020769185
13700 124 0.0052411899 0.0065117814 0.014647838 0.0018125771
13800 124 0.0048067514 0.0059720245 0.014583902 0.0020513529
13900 124 0.0050435734 0.0062662579 0.015595068 0.0014699579
14000 124 0.0049460152 0.0061450492 0.015965634 0.001392331
14100 124 0.0046219442 0.0057424155 0.015663384 0.0014890253
14200 124 0.0048184995 0.0059866206 0.015290196 0.0017217599
14300 124 0.0049531756 0.0061539454 0.015631133 0.0020820646
14400 124 0.004608077 0.0057251866 0.01512022 0.0015346016
14500 124 0.0044909079 0.0055796129 0.015032761 0.0016169354
14600 124 0.0044307569 0.0055048797 0.015259724 0.0019791575
14700 124 0.0042209282 0.0052441835 0.015206142 0.001634029
14800 124 0.004931427 0.0061269245 0.015351353 0.0020991125
14900 124 0.0043513432 0.0054062142 0.014367168 0.0022798395
15000 124 0.0044465482 0.0055244993 0.014488799 0.0027071352
Loop time of 0.328479 on 1 procs for 5000 steps with 124 atoms
Performance: 6575768.459 tau/day, 15221.686 timesteps/s, 1.887 Matom-step/s
96.4% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.058012 | 0.058012 | 0.058012 | 0.0 | 17.66
Neigh | 0.0059592 | 0.0059592 | 0.0059592 | 0.0 | 1.81
Comm | 0.00031492 | 0.00031492 | 0.00031492 | 0.0 | 0.10
Output | 0.25848 | 0.25848 | 0.25848 | 0.0 | 78.69
Modify | 0.0044353 | 0.0044353 | 0.0044353 | 0.0 | 1.35
Other | | 0.001276 | | | 0.39
Nlocal: 124 ave 124 max 124 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 94
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 1 1 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 8.437 | 8.437 | 8.437 Mbytes
Step Atoms Temp c_1 c_2 Press
15000 124 0.0044465482 0.0055244993 0.014488799 0.002682599
15100 124 5.2439101 0.14501926 0.089393313 0.0861951
15200 124 5.2871886 0.19878957 0.11689814 0.087629076
15300 124 5.3269872 0.24823627 0.14065555 0.084448851
15400 124 5.318405 0.23757348 0.13557872 0.08579496
15500 124 5.322977 0.24325395 0.1367731 0.084332501
15600 124 5.3387157 0.26280804 0.14469795 0.091920302
15700 124 5.3468954 0.27297066 0.14714255 0.092776597
15800 124 5.3787123 0.31250075 0.16363996 0.091882707
15900 124 5.4124578 0.354427 0.18222961 0.090476713
16000 124 5.4095058 0.35075937 0.17808408 0.090347477
16100 124 5.4027965 0.34242354 0.1735999 0.091782107
16200 124 5.4022601 0.34175711 0.17335141 0.094848056
16300 124 5.4045444 0.34459525 0.17424728 0.093070457
16400 124 5.4101141 0.35151512 0.17740527 0.091595086
16500 124 5.4083344 0.34930396 0.1760425 0.09403337
16600 124 5.4016713 0.34102557 0.17264803 0.091701205
16700 124 5.3964053 0.33448303 0.16952454 0.097389495
16800 124 5.4155708 0.35829473 0.18177437 0.092539674
16900 124 5.428106 0.37386868 0.18956572 0.095082983
17000 124 5.4113572 0.35305963 0.17951019 0.093172207
17100 124 5.4017206 0.34108687 0.17437504 0.090773913
17200 124 5.4156275 0.35836508 0.18539559 0.084238411
17300 124 5.4009849 0.34017277 0.17748735 0.092123575
17400 124 5.4017142 0.34107897 0.18110554 0.08358144
17500 124 5.438404 0.38666317 0.20673435 0.08724577
17600 124 5.5085355 0.47379629 0.25395237 0.085044882
17700 124 5.573336 0.55430604 0.29833936 0.086018483
17800 124 5.6428243 0.64063997 0.34884622 0.091543453
17900 124 5.6885972 0.69750927 0.38081471 0.090348055
18000 124 5.7119205 0.72648671 0.3965357 0.095583224
18100 124 5.6590292 0.66077326 0.36523218 0.088750557
18200 124 5.5763862 0.55809563 0.31550553 0.096656501
18300 124 5.5505114 0.52594811 0.2987063 0.093142352
18400 124 5.5205731 0.48875209 0.2808444 0.087905083
18500 124 5.4892953 0.44989178 0.26426272 0.088670881
18600 124 5.4222293 0.36656731 0.22263438 0.087525924
18700 124 5.4048793 0.34501133 0.2146507 0.086965023
18800 124 5.4091495 0.35031672 0.21471813 0.088080028
18900 124 5.4055995 0.34590616 0.21031053 0.085893342
19000 124 5.3793845 0.31333589 0.19319866 0.091199294
19100 124 5.3860486 0.32161564 0.19859682 0.089765384
19200 124 5.3927702 0.32996663 0.20403509 0.088705875
19300 124 5.3971859 0.33545284 0.20175175 0.095973464
19400 124 5.3788197 0.3126342 0.18579792 0.089895991
19500 124 5.3885341 0.32470369 0.18948024 0.08907407
19600 124 5.4101398 0.35154706 0.19813337 0.091175233
19700 124 5.4044673 0.34449937 0.1920192 0.088240134
19800 124 5.4173446 0.36049849 0.19933328 0.088942313
19900 124 5.4076506 0.34845443 0.1927872 0.088186985
20000 124 5.3956924 0.33359732 0.18569985 0.086310528
Loop time of 0.373054 on 1 procs for 5000 steps with 124 atoms
Performance: 5790041.220 tau/day, 13402.873 timesteps/s, 1.662 Matom-step/s
94.6% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.062905 | 0.062905 | 0.062905 | 0.0 | 16.86
Neigh | 0.0304 | 0.0304 | 0.0304 | 0.0 | 8.15
Comm | 0.0004825 | 0.0004825 | 0.0004825 | 0.0 | 0.13
Output | 0.26963 | 0.26963 | 0.26963 | 0.0 | 72.28
Modify | 0.00823 | 0.00823 | 0.00823 | 0.0 | 2.21
Other | | 0.001409 | | | 0.38
Nlocal: 124 ave 124 max 124 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 440
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
100 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.562 | 7.562 | 7.562 Mbytes
Step Atoms Temp c_1 c_2 Press
20000 124 0.26850516 0.33359732 0.18569985 -0.00058742278
20100 124 0.067549955 0.083925702 0.063062899 0.0045374238
20200 124 0.066580568 0.082721312 0.059638881 0.0046773578
20300 124 0.07628847 0.094782644 0.062421657 0.0046893994
20400 124 0.052816991 0.06562111 0.047589744 0.0028448251
20500 124 0.055535483 0.068998631 0.048552669 0.0030160754
20600 124 0.057734099 0.071730244 0.048245877 0.0055952666
20700 124 0.025276846 0.031404566 0.029056653 0.0010557897
20800 124 0.027799744 0.034539076 0.028465929 0.0054351904
20900 124 0.027298566 0.033916401 0.027639247 0.0040270655
21000 124 0.024024164 0.029848203 0.024340109 0.0021868639
21100 124 0.024987535 0.031045119 0.025194034 0.0031461768
21200 124 0.022012372 0.027348704 0.023163575 0.0043315251
21300 124 0.022655698 0.028147988 0.023878073 0.0020061516
21400 124 0.021143161 0.026268775 0.022847649 0.0040014299
21500 124 0.014709587 0.018275548 0.016687241 0.0023850643
21600 124 0.015706963 0.019514711 0.017385202 0.0032947123
21700 124 0.013349261 0.016585446 0.015935512 0.0031959548
21800 124 0.014581152 0.018115977 0.016568563 0.0037723007
21900 124 0.014163143 0.017596633 0.016786239 0.0026785551
22000 124 0.016104454 0.020008564 0.018204239 0.0023406746
22100 124 0.01339249 0.016639155 0.016215231 0.001863965
22200 124 0.013630138 0.016934414 0.015604721 0.0028389532
22300 124 0.014166961 0.017601376 0.015759254 0.0028485515
22400 124 0.011839829 0.014710091 0.014221942 0.0017289255
22500 124 0.013154489 0.016343456 0.015344524 0.002604136
22600 124 0.01184812 0.014720391 0.014245522 0.0033590472
22700 124 0.011433291 0.014204998 0.013639711 0.0033184417
22800 124 0.012475296 0.01549961 0.014280851 0.0019255869
22900 124 0.011013166 0.013683025 0.012635318 0.0022642412
23000 124 0.011272729 0.014005511 0.012664054 0.0031554482
23100 124 0.011308641 0.01405013 0.01269757 0.0012325204
23200 124 0.010130039 0.012585807 0.012040563 0.0031495614
23300 124 0.01068914 0.013280447 0.012068167 0.0030504659
23400 124 0.0088509283 0.010996608 0.010081312 0.0011009871
23500 124 0.0086960335 0.010804163 0.0098039166 0.0016850167
23600 124 0.0099572186 0.01237109 0.010813937 0.0029185027
23700 124 0.0099220344 0.012327376 0.01019147 0.0041517151
23800 124 0.0074584766 0.0092665922 0.00878623 0.0033529004
23900 124 0.0073723023 0.0091595271 0.0091933559 0.0011381908
24000 124 0.0085493541 0.010621925 0.0099793177 0.0023747349
24100 124 0.0067898783 0.0084359094 0.0089497737 0.0034141299
24200 124 0.0060281758 0.0074895517 0.0087835149 0.0010072857
24300 124 0.0060915949 0.0075683452 0.0085728503 0.0018651179
24400 124 0.0064602712 0.0080263976 0.0089108593 0.00097753256
24500 124 0.0069832749 0.00867619 0.0096009113 0.0012080821
24600 124 0.006177616 0.0076752198 0.0086417752 0.0017792353
24700 124 0.0052226061 0.0064886924 0.0082196264 0.0011437075
24800 124 0.0051375444 0.0063830098 0.0083830573 0.0026277208
24900 124 0.0037569854 0.0046677698 0.0072102729 0.0017298399
25000 124 0.0039418359 0.0048974325 0.0073209218 0.0011140053
Loop time of 0.332906 on 1 procs for 5000 steps with 124 atoms
Performance: 6488317.108 tau/day, 15019.253 timesteps/s, 1.862 Matom-step/s
94.0% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.055597 | 0.055597 | 0.055597 | 0.0 | 16.70
Neigh | 0.0121 | 0.0121 | 0.0121 | 0.0 | 3.63
Comm | 0.00035777 | 0.00035777 | 0.00035777 | 0.0 | 0.11
Output | 0.25919 | 0.25919 | 0.25919 | 0.0 | 77.86
Modify | 0.0043494 | 0.0043494 | 0.0043494 | 0.0 | 1.31
Other | | 0.00131 | | | 0.39
Nlocal: 124 ave 124 max 124 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 197
Dangerous builds = 0
Total wall time: 0:00:01

View File

@ -0,0 +1,516 @@
LAMMPS (27 Jun 2024)
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551)
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -10 10 -10 10 -10 10 units box
create_box 2 box
Created orthogonal box = (-10 -10 -10) to (10 10 10)
1 by 2 by 2 MPI processor grid
molecule tris surf.tribox
Read molecule template tris:
LAMMPS data file for tri box
1 molecules
0 fragments
0 atoms with max type 0
0 bonds with max type 0
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
24 triangles
fix 20 all surface/local tris
pair_style hybrid gran/hooke 4000.0 NULL 100.0 NULL 0.5 1 tri/gran/hooke 4000.0 NULL 100.0 50.0 0.5 1
pair_coeff 1 1 gran/hooke
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group tri type 2
24 atoms in group tri
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 48 every 566 steps, 100 by step 1133
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 7.1245553
ghost atom cutoff = 7.1245553
binsize = 3.5622777, bins = 6 6 6
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke, perpetual, skip trim from (3)
attributes: half, newton on, size, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair tri/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 7.337 | 7.338 | 7.342 Mbytes
Step Atoms Temp c_1 c_2 Press
0 24 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 54 0.43980579 0.803783 0.39507978 0.0029137134
200 54 0.65485258 1.1967995 0.5882574 0.0043383984
300 54 0.70118095 1.2814686 0.62987441 0.0046453238
400 54 0.45057814 0.82347039 0.41172861 0.0030892546
500 54 0.42112344 0.76963938 0.38709352 0.0065941015
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 88 0.37166521 0.51325196 0.26472957 0.0046580242
700 88 0.41372338 0.57133229 0.29476966 0.0052995687
800 88 0.456666 0.630634 0.32751956 0.0052868185
900 88 0.39272615 0.54233611 0.28819808 0.0054685106
1000 88 0.35151938 0.48543152 0.26491902 0.0075844126
1100 88 0.34254338 0.47303609 0.2578388 0.0058365561
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 123 0.32173809 0.40053109 0.2195167 0.009133967
1300 123 0.34297407 0.42696772 0.23049402 0.0064335441
1400 123 0.29833429 0.37139575 0.20331799 0.0078377048
1500 123 0.26892843 0.33478846 0.18670497 0.0068237101
1600 123 0.24084602 0.29982872 0.16693769 0.0058533752
1700 124 0.16657955 0.20696247 0.12302494 0.0070405476
1800 124 0.10384588 0.12902064 0.086085999 0.0026199715
1900 124 0.065080172 0.080857183 0.059672578 0.0039751399
2000 124 0.05183749 0.064404155 0.04642994 0.0020956381
2100 124 0.045454362 0.056473601 0.038678168 0.0021870001
2200 124 0.040260905 0.050021124 0.034386815 0.0040428451
2300 124 0.017599392 0.021865912 0.017659763 0.0033409473
2400 124 0.017871716 0.022204254 0.016705941 0.0035685425
2500 124 0.010140454 0.012598746 0.010222061 0.0012285151
2600 124 0.0087985619 0.010931547 0.0087284273 0.0012844023
2700 124 0.007517679 0.0093401466 0.0071819965 0.0014841812
2800 124 0.0062774012 0.0077991955 0.0059012475 0.0013323867
2900 124 0.0038811559 0.0048220422 0.0039902314 0.0012740306
3000 124 0.0040746036 0.0050623863 0.0038882236 0.0013782794
3100 124 0.0020498002 0.0025467215 0.0022365676 0.00121108
3200 124 0.0019550482 0.0024289992 0.0021292434 0.0011484714
3300 124 0.0016148199 0.0020062914 0.001787787 0.0010893844
3400 124 0.0013434329 0.0016691136 0.0014690989 0.001325505
3500 124 0.0010971454 0.00136312 0.0012496656 0.0014062237
3600 124 0.00089514745 0.0011121529 0.0010349137 0.0013004041
3700 124 0.00079220295 0.00098425215 0.00089325412 0.0013154029
3800 124 0.00072319138 0.0008985105 0.00082122483 0.0010962257
3900 124 0.00059169918 0.00073514141 0.0006832875 0.0011623171
4000 124 0.00049184916 0.00061108533 0.00058188229 0.0012411181
4100 124 0.00040680153 0.00050542008 0.00047870676 0.0011629016
4200 124 0.00030588217 0.00038003543 0.00038246927 0.001099663
4300 124 0.00026922252 0.00033448858 0.00034959953 0.0011174124
4400 124 0.00022239176 0.00027630491 0.0002971948 0.0011072118
4500 124 0.00020343817 0.00025275651 0.00027474732 0.0011125161
4600 124 0.00020212818 0.00025112896 0.00027242474 0.0011191532
4700 124 0.00018351448 0.00022800283 0.00025264863 0.0011176353
4800 124 0.00018007372 0.00022372795 0.00024857425 0.0011156418
4900 124 0.00015459176 0.00019206855 0.00021711531 0.0011174087
5000 124 0.00013814109 0.00017162984 0.00019806357 0.0011476165
Loop time of 0.38831 on 4 procs for 5000 steps with 124 atoms
Performance: 5562573.007 tau/day, 12876.326 timesteps/s, 1.597 Matom-step/s
90.8% 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.0018869 | 0.015601 | 0.030549 | 10.9 | 4.02
Neigh | 0.0018269 | 0.0044514 | 0.0069007 | 3.6 | 1.15
Comm | 0.06426 | 0.079269 | 0.093176 | 4.8 | 20.41
Output | 0.18739 | 0.22364 | 0.27884 | 7.6 | 57.59
Modify | 0.0013862 | 0.002664 | 0.0040784 | 2.3 | 0.69
Other | | 0.06269 | | | 16.14
Nlocal: 31 ave 55 max 6 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 93 ave 118 max 69 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 270
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 8.589 | 8.601 | 8.612 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 124 0.00013814109 0.00017162984 0.00019806357 0.0011393845
5100 124 5.2497489 0.15227351 0.086950224 0.083018439
5200 124 5.2667941 0.17345097 0.10004552 0.081933375
5300 124 5.2702467 0.17774046 0.098721846 0.081858913
5400 124 5.2810321 0.1911405 0.10284442 0.081908237
5500 124 5.2869181 0.19845342 0.10520589 0.082475287
5600 124 5.2903829 0.20275822 0.1062221 0.082060713
5700 124 5.2972601 0.21130259 0.11014372 0.082904363
5800 124 5.3133933 0.23134691 0.11895223 0.082638221
5900 124 5.321421 0.24132073 0.12341367 0.08367512
6000 124 5.3311871 0.25345436 0.1289868 0.08585114
6100 124 5.3397784 0.26412833 0.13380251 0.083860885
6200 124 5.3440946 0.26949097 0.13630397 0.084294896
6300 124 5.3490438 0.27563994 0.13938066 0.084316514
6400 124 5.3513948 0.27856086 0.14088282 0.084355453
6500 124 5.3532922 0.28091822 0.14197211 0.084169662
6600 124 5.3554267 0.28357014 0.14325168 0.084261645
6700 124 5.3570557 0.2855941 0.14433458 0.084810743
6800 124 5.360655 0.29006592 0.14636096 0.084297488
6900 124 5.3655245 0.29611592 0.14908452 0.085243202
7000 124 5.3671924 0.29818814 0.14990767 0.085406818
7100 124 5.3695979 0.30117682 0.15113793 0.084784596
7200 124 5.3704771 0.30226917 0.15173765 0.085669989
7300 124 5.3706216 0.3024487 0.15180341 0.084798844
7400 124 5.373135 0.30557147 0.15321903 0.085809531
7500 124 5.377898 0.31148903 0.15599818 0.085242244
7600 124 5.3787889 0.31259599 0.15641937 0.085326973
7700 124 5.3793411 0.31328199 0.15676105 0.084950755
7800 124 5.3803167 0.31449408 0.15736738 0.085202699
7900 124 5.3797837 0.31383196 0.15704082 0.085404305
8000 124 5.378568 0.31232146 0.15632737 0.084957387
8100 124 5.3790479 0.31291774 0.15667738 0.08504012
8200 124 5.3804618 0.3146744 0.15746304 0.085394022
8300 124 5.381518 0.31598663 0.1580058 0.085647397
8400 124 5.3814854 0.31594618 0.15794776 0.085483103
8500 124 5.3828149 0.31759794 0.15875289 0.085382128
8600 124 5.3832577 0.31814807 0.15901813 0.085100022
8700 124 5.3838083 0.31883219 0.1593819 0.085126575
8800 124 5.3842963 0.31943849 0.15972799 0.085207191
8900 124 5.3846809 0.31991635 0.15992599 0.085139646
9000 124 5.3850037 0.32031738 0.16014788 0.085113229
9100 124 5.3849209 0.32021445 0.16009856 0.086008106
9200 124 5.3851663 0.32051942 0.16025838 0.085113861
9300 124 5.3847882 0.32004969 0.16001717 0.085571311
9400 124 5.3845996 0.31981535 0.15990007 0.085364837
9500 124 5.3847067 0.31994844 0.15998733 0.085299109
9600 124 5.3849015 0.32019038 0.1601311 0.085276233
9700 124 5.3850083 0.32032313 0.16021695 0.08525484
9800 124 5.3852855 0.32066753 0.16041712 0.085313652
9900 124 5.3850371 0.3203589 0.16026849 0.085310954
10000 124 5.3851839 0.32054133 0.16038666 0.085302918
Loop time of 0.416211 on 4 procs for 5000 steps with 124 atoms
Performance: 5189670.286 tau/day, 12013.126 timesteps/s, 1.490 Matom-step/s
91.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.0051455 | 0.025429 | 0.046204 | 12.6 | 6.11
Neigh | 0.002146 | 0.0071526 | 0.012427 | 5.9 | 1.72
Comm | 0.075914 | 0.099171 | 0.12133 | 7.0 | 23.83
Output | 0.1817 | 0.21488 | 0.2715 | 8.0 | 51.63
Modify | 0.0028369 | 0.0042822 | 0.0059817 | 2.2 | 1.03
Other | | 0.0653 | | | 15.69
Nlocal: 31 ave 59 max 8 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Nghost: 93 ave 116 max 65 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 316
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
100 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.714 | 7.726 | 7.737 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 124 0.25799668 0.32054133 0.16038666 0.011646419
10100 124 0.08324921 0.10343084 0.062335766 0.0036624752
10200 124 0.055901794 0.069453744 0.049832932 0.0033728561
10300 124 0.044027763 0.054701161 0.04185265 0.0026179937
10400 124 0.033039084 0.04104856 0.033838053 0.0042759187
10500 124 0.027910031 0.034676099 0.03032615 0.0035478069
10600 124 0.023950341 0.029756484 0.027453511 0.0021787132
10700 124 0.019265986 0.023936529 0.024195141 0.0021075014
10800 124 0.01792324 0.022268268 0.02351488 0.0024045592
10900 124 0.016637573 0.020670924 0.022003538 0.0034529435
11000 124 0.01309629 0.016271149 0.019359267 0.0017153891
11100 124 0.011683446 0.014515797 0.018854763 0.0026746409
11200 124 0.010761235 0.013370019 0.018196576 0.0029245106
11300 124 0.010091525 0.012537955 0.017818489 0.0015293592
11400 124 0.0096257383 0.011959251 0.017339573 0.001738964
11500 124 0.0090651598 0.011262774 0.017333091 0.001572136
11600 124 0.0083289641 0.010348107 0.016333003 0.0017025439
11700 124 0.0082472994 0.010246645 0.015938935 0.0014901853
11800 124 0.0084807765 0.010536722 0.016623711 0.0014242448
11900 124 0.007712302 0.009581951 0.016222065 0.001508232
12000 124 0.0075675523 0.0094021104 0.016169534 0.0014905945
12100 124 0.0079750147 0.0099083516 0.015149716 0.0018322585
12200 124 0.0078458496 0.0097478738 0.015374706 0.0015492292
12300 124 0.0067921053 0.0084386763 0.013486857 0.0029067448
12400 124 0.0068508251 0.0085116312 0.014323963 0.0022197074
12500 124 0.0066111171 0.0082138122 0.014731325 0.0019302025
12600 124 0.0064707353 0.0080393984 0.014543367 0.0016587329
12700 124 0.0063923274 0.0079419826 0.014294803 0.0021257946
12800 124 0.0065672963 0.0081593681 0.014584204 0.0021816878
12900 124 0.0059726164 0.0074205234 0.013858993 0.001530472
13000 124 0.0058214195 0.0072326727 0.014246373 0.0022339129
13100 124 0.0059612276 0.0074063737 0.015124804 0.0017832816
13200 124 0.0054078557 0.006718851 0.014415419 0.0015478062
13300 124 0.0050729677 0.0063027781 0.014411303 0.0034332889
13400 124 0.0050627437 0.0062900755 0.014575044 0.0018503274
13500 124 0.0046199761 0.0057399703 0.015232064 0.0015707131
13600 124 0.0044802838 0.0055664132 0.015492936 0.0013436939
13700 124 0.0039229012 0.0048739075 0.014834411 0.0015775897
13800 124 0.0038496507 0.0047828994 0.014358939 0.0018648078
13900 124 0.0038836627 0.0048251567 0.015268416 0.0016609027
14000 124 0.0039681599 0.0049301381 0.015565026 0.0015819215
14100 124 0.0038047814 0.0047271526 0.013834942 0.0026360599
14200 124 0.0039663433 0.004927881 0.014740545 0.0017718033
14300 124 0.0042501525 0.0052804925 0.015931298 0.0015106704
14400 124 0.0043324422 0.0053827312 0.014699138 0.0017419936
14500 124 0.0051700329 0.0064233742 0.014614744 0.0017929379
14600 124 0.0051378715 0.006383416 0.015531966 0.001759876
14700 124 0.0043671736 0.0054258823 0.014990071 0.0014624588
14800 124 0.0045615958 0.0056674372 0.014632879 0.001980479
14900 124 0.0043120591 0.0053574067 0.014648647 0.0017081314
15000 124 0.0040016693 0.004971771 0.015227426 0.0014981674
Loop time of 0.383969 on 4 procs for 5000 steps with 124 atoms
Performance: 5625453.581 tau/day, 13021.883 timesteps/s, 1.615 Matom-step/s
93.5% 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.00068953 | 0.018285 | 0.03985 | 13.2 | 4.76
Neigh | 0.00065387 | 0.0021284 | 0.0039605 | 3.2 | 0.55
Comm | 0.067454 | 0.088442 | 0.1049 | 5.6 | 23.03
Output | 0.17852 | 0.21163 | 0.26515 | 7.5 | 55.12
Modify | 0.00076231 | 0.0021966 | 0.0037187 | 3.0 | 0.57
Other | | 0.06129 | | | 15.96
Nlocal: 31 ave 54 max 8 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 93 ave 116 max 70 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 88
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 1 1 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 8.589 | 8.601 | 8.612 Mbytes
Step Atoms Temp c_1 c_2 Press
15000 124 0.0040016693 0.004971771 0.015227426 0.0015086634
15100 124 5.2391455 0.13909965 0.086544429 0.084187091
15200 124 5.2856213 0.19684224 0.11745683 0.083186315
15300 124 5.3131372 0.23102865 0.13493822 0.08605977
15400 124 5.312441 0.23016376 0.13361748 0.085326393
15500 124 5.3238039 0.24428132 0.13748765 0.083860323
15600 124 5.3492159 0.27585379 0.15195482 0.090509109
15700 124 5.3793259 0.31326319 0.16813451 0.094842314
15800 124 5.3836817 0.31867484 0.17028976 0.089989699
15900 124 5.3796952 0.31372196 0.16538847 0.094472961
16000 124 5.4115814 0.3533382 0.18150785 0.091208354
16100 124 5.3936511 0.33106115 0.17088137 0.093629945
16200 124 5.3957378 0.33365363 0.17021817 0.099559486
16300 124 5.4107263 0.35227575 0.17833256 0.097418633
16400 124 5.4157911 0.35856834 0.18023194 0.094902693
16500 124 5.4104949 0.35198831 0.17667749 0.098565938
16600 124 5.409282 0.35048133 0.17592806 0.096041734
16700 124 5.413877 0.35619023 0.1787891 0.092627526
16800 124 5.41431 0.35672824 0.1791246 0.094118962
16900 124 5.4131542 0.35529219 0.17881883 0.092708811
17000 124 5.4141932 0.35658307 0.1798655 0.090520504
17100 124 5.4220385 0.3663303 0.18519617 0.089222997
17200 124 5.4046579 0.34473618 0.17738138 0.094492682
17300 124 5.4056346 0.34594968 0.17932898 0.087067848
17400 124 5.4625758 0.4166948 0.21590291 0.087573329
17500 124 5.5101683 0.47582488 0.24840276 0.086186395
17600 124 5.5878392 0.5723251 0.29850268 0.08748419
17700 124 5.6772998 0.6834732 0.36153625 0.091782683
17800 124 5.7649819 0.79241148 0.41944601 0.091955533
17900 124 5.6293884 0.6239469 0.34262388 0.092222925
18000 124 5.5993719 0.58665365 0.3202341 0.092041421
18100 124 5.5929165 0.57863332 0.31757988 0.089752868
18200 124 5.5194314 0.48733363 0.27391729 0.088604294
18300 124 5.5558601 0.53259351 0.29860433 0.087707501
18400 124 5.5243479 0.49344201 0.28138274 0.091109598
18500 124 5.4712545 0.4274775 0.24899279 0.085579285
18600 124 5.4614746 0.41532663 0.24277803 0.093560936
18700 124 5.4335266 0.38060339 0.22486156 0.092857653
18800 124 5.4062944 0.34676949 0.20805012 0.085928259
18900 124 5.3680383 0.29923911 0.18445379 0.09139396
19000 124 5.3612247 0.29077372 0.17705414 0.091152733
19100 124 5.3657774 0.29643016 0.18163087 0.088533894
19200 124 5.3753017 0.30826343 0.18731953 0.090708858
19300 124 5.3788607 0.31268517 0.18511328 0.091858903
19400 124 5.3753079 0.30827114 0.18028529 0.094270307
19500 124 5.3793587 0.31330386 0.17822453 0.09479624
19600 124 5.3794279 0.31338982 0.17247606 0.088668785
19700 124 5.3883131 0.3244291 0.17733088 0.089605063
19800 124 5.3862701 0.32189078 0.17600167 0.087391973
19900 124 5.3627176 0.2926286 0.15793773 0.087196402
20000 124 5.371666 0.30374625 0.16190487 0.08799023
Loop time of 0.44519 on 4 procs for 5000 steps with 124 atoms
Performance: 4851866.281 tau/day, 11231.172 timesteps/s, 1.393 Matom-step/s
94.0% 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.010338 | 0.023654 | 0.039387 | 8.5 | 5.31
Neigh | 0.0046555 | 0.0104 | 0.019115 | 5.9 | 2.34
Comm | 0.082693 | 0.10525 | 0.12179 | 5.2 | 23.64
Output | 0.1884 | 0.23171 | 0.29261 | 8.5 | 52.05
Modify | 0.0033946 | 0.0047351 | 0.0067516 | 2.1 | 1.06
Other | | 0.06944 | | | 15.60
Nlocal: 31 ave 73 max 6 min
Histogram: 2 0 0 0 1 0 0 0 0 1
Nghost: 93 ave 118 max 51 min
Histogram: 1 0 0 0 0 1 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 429
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
100 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.737 | 7.746 | 7.773 Mbytes
Step Atoms Temp c_1 c_2 Press
20000 124 0.24447869 0.30374625 0.16190487 -0.013113207
20100 124 0.058472851 0.072648087 0.051241435 0.0027199931
20200 124 0.052338782 0.065026972 0.04463957 0.0049181017
20300 124 0.059032454 0.073343352 0.046997972 0.0036432387
20400 124 0.041540522 0.051610952 0.034851914 0.0080319941
20500 124 0.034253651 0.042557567 0.030035232 0.0085785376
20600 124 0.027090159 0.03365747 0.025218135 0.0056701536
20700 124 0.023080903 0.028676274 0.022777714 0.0021487926
20800 124 0.024811993 0.030827022 0.023644112 0.0031902401
20900 124 0.02296688 0.028534608 0.022697322 0.0052975401
21000 124 0.024959299 0.031010038 0.023833456 0.0049399041
21100 124 0.024560924 0.030515087 0.022657931 0.0034176814
21200 124 0.025331395 0.031472339 0.023297144 0.0051700371
21300 124 0.023119592 0.028724342 0.021901117 0.0028542595
21400 124 0.021068783 0.026176367 0.02024999 0.0066313423
21500 124 0.019958716 0.024797192 0.020021151 0.0054394297
21600 124 0.021501915 0.026714501 0.021044833 0.003139584
21700 124 0.022663473 0.028157649 0.021375039 0.0047077744
21800 124 0.017783349 0.022094464 0.018460952 0.0024408478
21900 124 0.017441008 0.021669131 0.017976927 0.004236632
22000 124 0.016834232 0.020915258 0.017867023 0.0032297246
22100 124 0.016852641 0.02093813 0.017823693 0.0031993194
22200 124 0.017260002 0.021444245 0.018617101 0.001645186
22300 124 0.016279285 0.020225778 0.017759307 0.0048239099
22400 124 0.013098535 0.016273937 0.014976085 0.0030481479
22500 124 0.01253107 0.015568906 0.014821105 0.002818037
22600 124 0.013231925 0.016439664 0.014841942 0.0061556104
22700 124 0.010622794 0.013198017 0.013335312 0.0032549657
22800 124 0.012715053 0.01579749 0.01437656 0.0017626703
22900 124 0.01207747 0.015005341 0.013708244 0.0018658438
23000 124 0.010825905 0.013450367 0.01253289 0.0024262171
23100 124 0.010506745 0.013053834 0.012086254 0.0013807784
23200 124 0.010816779 0.013439028 0.012089622 0.0020534022
23300 124 0.010541511 0.013097028 0.012162291 0.0020542813
23400 124 0.0094678491 0.011763085 0.011404012 0.0011667903
23500 124 0.0083682956 0.010396973 0.010273685 0.0025941956
23600 124 0.0076879289 0.0095516693 0.0099437632 0.0014724848
23700 124 0.0087792045 0.010907496 0.010802224 0.0017158203
23800 124 0.0070944354 0.0088142985 0.010176751 0.0030678737
23900 124 0.0073071217 0.0090785451 0.010067352 0.0021355515
24000 124 0.007092681 0.0088121188 0.0093578983 0.0037224355
24100 124 0.0061240788 0.0076087039 0.0088323652 0.00075591612
24200 124 0.0060997333 0.0075784566 0.0089160306 0.00074919945
24300 124 0.0074369071 0.0092397936 0.0098936814 0.0016742568
24400 124 0.0055774041 0.0069295021 0.0089788427 0.0010941333
24500 124 0.0054891817 0.0068198925 0.0089585787 0.0010201513
24600 124 0.0052665503 0.0065432898 0.0085195212 0.0027803091
24700 124 0.0052229505 0.0064891203 0.0083245915 0.0032441386
24800 124 0.0045885549 0.0057009318 0.0077639469 0.0021437792
24900 124 0.0048155198 0.0059829185 0.0082794836 0.0013531019
25000 124 0.0051022231 0.0063391257 0.0084155114 0.0026277693
Loop time of 0.41091 on 4 procs for 5000 steps with 124 atoms
Performance: 5256626.239 tau/day, 12168.116 timesteps/s, 1.509 Matom-step/s
90.5% 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.00076076 | 0.01794 | 0.039603 | 13.0 | 4.37
Neigh | 0.00072049 | 0.0035802 | 0.0068029 | 4.6 | 0.87
Comm | 0.075306 | 0.095878 | 0.11196 | 5.3 | 23.33
Output | 0.17491 | 0.2221 | 0.28159 | 8.6 | 54.05
Modify | 0.00088166 | 0.0023597 | 0.0040721 | 3.0 | 0.57
Other | | 0.06906 | | | 16.81
Nlocal: 31 ave 58 max 5 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 93 ave 119 max 66 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 149
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,508 @@
LAMMPS (27 Jun 2024)
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -10 10 -10 10 -10 10 units box
create_box 2 box
Created orthogonal box = (-10 -10 -10) to (10 10 10)
1 by 1 by 1 MPI processor grid
fix 20 all surface/local surf.tribox.stl
Reading STL object STL version of surf.tribox from text file surf.tribox.stl
set type 1 type 2
Setting atom values ...
24 settings made for type
pair_style hybrid gran/hooke 4000.0 NULL 100.0 NULL 0.5 1 tri/gran/hooke 4000.0 NULL 100.0 50.0 0.5 1
pair_coeff 1 1 gran/hooke
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group tri type 2
24 atoms in group tri
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 48 every 566 steps, 100 by step 1133
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 7.1245553
ghost atom cutoff = 7.1245553
binsize = 3.5622777, bins = 6 6 6
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke, perpetual, skip trim from (3)
attributes: half, newton on, size, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair tri/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 7.31 | 7.31 | 7.31 Mbytes
Step Atoms Temp c_1 c_2 Press
0 24 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 54 0.43980579 0.803783 0.39507978 0.0029137134
200 54 0.65485258 1.1967995 0.5882574 0.0043383984
300 54 0.70118095 1.2814686 0.62987441 0.0046453238
400 54 0.45057814 0.82347039 0.41172861 0.0030892546
500 54 0.42112344 0.76963938 0.38709352 0.0065941015
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 88 0.37166521 0.51325196 0.26472957 0.0046580242
700 88 0.41372338 0.57133229 0.29476966 0.0052995687
800 88 0.456666 0.630634 0.32751956 0.0052868185
900 88 0.39272615 0.54233611 0.28819808 0.0054685106
1000 88 0.35151938 0.48543152 0.26491902 0.0075844126
1100 88 0.34254338 0.47303609 0.2578388 0.0058365561
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 123 0.32173809 0.40053109 0.2195167 0.009133967
1300 123 0.34297407 0.42696772 0.23049402 0.0064335441
1400 123 0.29833429 0.37139575 0.20331799 0.0078377048
1500 123 0.26892843 0.33478846 0.18670497 0.0068237101
1600 123 0.24084602 0.29982872 0.16693769 0.0058533752
1700 124 0.16657955 0.20696247 0.12302494 0.0070405476
1800 124 0.10384588 0.12902064 0.086085999 0.0026199715
1900 124 0.065080172 0.080857183 0.059672578 0.0039751399
2000 124 0.05183749 0.064404155 0.04642994 0.0020956381
2100 124 0.045454362 0.056473601 0.038678168 0.0021869997
2200 124 0.040260905 0.050021124 0.034386815 0.0040428451
2300 124 0.017599393 0.021865913 0.017659764 0.0033409468
2400 124 0.017871721 0.022204259 0.016705944 0.0035685432
2500 124 0.010140453 0.012598745 0.01022206 0.0012285049
2600 124 0.0087985586 0.010931542 0.0087284393 0.0012843554
2700 124 0.007517666 0.0093401305 0.00718198 0.0014841823
2800 124 0.0062773841 0.0077991742 0.0059012301 0.0013324193
2900 124 0.0038811224 0.0048220006 0.0039901849 0.0012740179
3000 124 0.0040758656 0.0050639543 0.003890039 0.001333468
3100 124 0.0020497159 0.0025466167 0.0022373889 0.0012963602
3200 124 0.0019596496 0.0024347162 0.0021331337 0.0011575952
3300 124 0.001619509 0.0020121172 0.0017930305 0.0011065531
3400 124 0.0013352687 0.0016589702 0.0014836146 0.0013075216
3500 124 0.0011048269 0.0013726637 0.0012547142 0.0016936826
3600 124 0.00089868347 0.0011165461 0.0010379824 0.0013037755
3700 124 0.00079538563 0.00098820638 0.0008953041 0.0011379267
3800 124 0.00072591855 0.0009018988 0.00083210028 0.0014623234
3900 124 0.00059200429 0.00073552048 0.00068255735 0.0011062713
4000 124 0.00048509163 0.0006026896 0.00057581131 0.0011359453
4100 124 0.00039281562 0.00048804365 0.00046290412 0.001112345
4200 124 0.00033127035 0.00041157831 0.00040230271 0.0011101349
4300 124 0.00025217556 0.00031330904 0.00033013679 0.001220284
4400 124 0.00021998869 0.00027331928 0.00029069852 0.0010876934
4500 124 0.0002012981 0.00025009764 0.00026845495 0.0011165366
4600 124 0.00019974132 0.00024816346 0.00026538627 0.001112397
4700 124 0.00018344096 0.0002279115 0.00024939407 0.0011208162
4800 124 0.00017967553 0.00022323323 0.00024517143 0.0011139226
4900 124 0.00015575257 0.00019351076 0.000215109 0.0011122181
5000 124 0.00013945209 0.00017325866 0.00019787988 0.0011571915
Loop time of 0.329081 on 1 procs for 5000 steps with 124 atoms
Performance: 6563731.175 tau/day, 15193.822 timesteps/s, 1.884 Matom-step/s
89.0% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.050766 | 0.050766 | 0.050766 | 0.0 | 15.43
Neigh | 0.012777 | 0.012777 | 0.012777 | 0.0 | 3.88
Comm | 0.00039761 | 0.00039761 | 0.00039761 | 0.0 | 0.12
Output | 0.25886 | 0.25886 | 0.25886 | 0.0 | 78.66
Modify | 0.0049275 | 0.0049275 | 0.0049275 | 0.0 | 1.50
Other | | 0.00135 | | | 0.41
Nlocal: 124 ave 124 max 124 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 270
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 8.437 | 8.437 | 8.437 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 124 0.00013945209 0.00017325866 0.00019787988 0.0011523447
5100 124 5.2504023 0.15308533 0.087279574 0.082413806
5200 124 5.2659596 0.17241407 0.099384862 0.083118924
5300 124 5.2712193 0.17894892 0.099626237 0.084288849
5400 124 5.2787049 0.18824913 0.10219206 0.081763058
5500 124 5.2864544 0.19787729 0.10492289 0.082100381
5600 124 5.2939393 0.20717681 0.10842003 0.081936074
5700 124 5.3020913 0.21730504 0.11309658 0.083096264
5800 124 5.3089934 0.22588036 0.11657282 0.083472698
5900 124 5.3147183 0.23299307 0.12000481 0.083337683
6000 124 5.3241216 0.24467603 0.12524512 0.083312456
6100 124 5.3345453 0.25762669 0.13135815 0.083666287
6200 124 5.3357153 0.25908032 0.13185776 0.083855111
6300 124 5.3417298 0.26655284 0.13521844 0.084511512
6400 124 5.3461733 0.27207356 0.1375877 0.08445019
6500 124 5.3491551 0.27577827 0.13949034 0.084694686
6600 124 5.3520289 0.27934872 0.14134154 0.084403705
6700 124 5.355841 0.28408494 0.1435925 0.08479568
6800 124 5.3608822 0.29034823 0.14636154 0.084796891
6900 124 5.3641064 0.29435404 0.14822031 0.084636583
7000 124 5.3664936 0.29731999 0.14957082 0.084681424
7100 124 5.370434 0.30221567 0.15171915 0.084744017
7200 124 5.3716029 0.30366789 0.15224159 0.085599998
7300 124 5.3719337 0.30407894 0.15239181 0.085265794
7400 124 5.3717886 0.30389862 0.15228125 0.085048862
7500 124 5.3729819 0.30538125 0.15302965 0.085513236
7600 124 5.3736409 0.30619992 0.15346603 0.085126903
7700 124 5.3734973 0.30602161 0.15326715 0.085870776
7800 124 5.3742065 0.3069027 0.1536922 0.085152121
7900 124 5.3752637 0.30821621 0.15439789 0.085476609
8000 124 5.3773145 0.31076416 0.15559007 0.085791749
8100 124 5.3777123 0.31125838 0.15591462 0.08531435
8200 124 5.3775898 0.31110617 0.1558302 0.085752338
8300 124 5.3775553 0.31106337 0.15562475 0.086300437
8400 124 5.3799091 0.31398779 0.1570463 0.085260347
8500 124 5.3799831 0.31407966 0.15713064 0.085373576
8600 124 5.380017 0.31412181 0.15720523 0.085342084
8700 124 5.3799686 0.31406171 0.15721123 0.086223474
8800 124 5.3813565 0.31578601 0.15798281 0.085392543
8900 124 5.3815941 0.31608116 0.15818243 0.085482019
9000 124 5.3815651 0.31604517 0.15821916 0.085538444
9100 124 5.3816424 0.31614127 0.15829616 0.085684184
9200 124 5.3815641 0.3160439 0.15831347 0.08526896
9300 124 5.3811199 0.31549204 0.15801464 0.085848004
9400 124 5.382478 0.31717943 0.15882722 0.086145692
9500 124 5.3830353 0.31787185 0.15915683 0.085450771
9600 124 5.3831332 0.31799341 0.15923155 0.085416324
9700 124 5.3832948 0.31819419 0.15935762 0.085387545
9800 124 5.3840779 0.31916711 0.15975721 0.08560667
9900 124 5.3842171 0.31934012 0.159845 0.085547365
10000 124 5.3862101 0.32181619 0.160876 0.085414766
Loop time of 0.367085 on 1 procs for 5000 steps with 124 atoms
Performance: 5884203.709 tau/day, 13620.842 timesteps/s, 1.689 Matom-step/s
97.9% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.073918 | 0.073918 | 0.073918 | 0.0 | 20.14
Neigh | 0.020255 | 0.020255 | 0.020255 | 0.0 | 5.52
Comm | 0.00045729 | 0.00045729 | 0.00045729 | 0.0 | 0.12
Output | 0.26157 | 0.26157 | 0.26157 | 0.0 | 71.26
Modify | 0.0093671 | 0.0093671 | 0.0093671 | 0.0 | 2.55
Other | | 0.001516 | | | 0.41
Nlocal: 124 ave 124 max 124 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 315
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
100 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.562 | 7.562 | 7.562 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 124 0.25902279 0.32181619 0.160876 0.0066564852
10100 124 0.078320106 0.097306799 0.060539222 0.007805448
10200 124 0.055004387 0.068338784 0.052320677 0.0026461505
10300 124 0.050013703 0.062138237 0.049351053 0.0027137895
10400 124 0.043870518 0.054505795 0.044683006 0.0021708086
10500 124 0.036776691 0.045692252 0.037872077 0.0025876629
10600 124 0.030001621 0.037274742 0.032601767 0.0035817232
10700 124 0.026098209 0.032425048 0.029320364 0.0019774985
10800 124 0.024452388 0.03038024 0.028518503 0.0034548101
10900 124 0.020787653 0.025827084 0.025880067 0.0023865627
11000 124 0.018283729 0.022716148 0.024283842 0.0024791255
11100 124 0.016795448 0.020867072 0.023416045 0.0016336875
11200 124 0.014930262 0.01854972 0.021981853 0.0015505118
11300 124 0.014012114 0.017408991 0.021130907 0.0017795037
11400 124 0.013562682 0.016850605 0.020502505 0.0025724773
11500 124 0.012884492 0.016008005 0.01991195 0.0015754014
11600 124 0.011953832 0.014851731 0.018960689 0.0020007622
11700 124 0.011836339 0.014705755 0.019435427 0.0016103993
11800 124 0.011037076 0.013712731 0.018997693 0.0019540971
11900 124 0.010932107 0.013582315 0.019072917 0.00147549
12000 124 0.01099415 0.013659399 0.018695305 0.0016223256
12100 124 0.010704976 0.013300121 0.018841965 0.0015737757
12200 124 0.010244691 0.012728253 0.018984857 0.0023548154
12300 124 0.0097078529 0.012061272 0.018340321 0.0020279841
12400 124 0.0093873799 0.011663108 0.018058176 0.0017085133
12500 124 0.0091864665 0.011413489 0.016617566 0.0029005125
12600 124 0.0093721201 0.011644149 0.01659216 0.001843826
12700 124 0.0085867868 0.010668432 0.01610889 0.0027852908
12800 124 0.0080688661 0.010024955 0.016412496 0.0035052823
12900 124 0.0070827536 0.0087997848 0.014807272 0.0023574294
13000 124 0.0062582856 0.0077754457 0.01480373 0.0027340736
13100 124 0.0057725257 0.0071719259 0.015062076 0.002487901
13200 124 0.0052896823 0.0065720295 0.0154416 0.0015994582
13300 124 0.0057364664 0.0071271249 0.015700129 0.0015451013
13400 124 0.0062684466 0.00778807 0.016185631 0.0018109382
13500 124 0.0057823202 0.0071840947 0.015642287 0.0023353672
13600 124 0.0054893444 0.0068200946 0.015197387 0.0020769185
13700 124 0.0052411899 0.0065117814 0.014647838 0.0018125771
13800 124 0.0048067514 0.0059720245 0.014583902 0.0020513529
13900 124 0.0050435734 0.0062662579 0.015595068 0.0014699579
14000 124 0.0049460152 0.0061450492 0.015965634 0.001392331
14100 124 0.0046219442 0.0057424155 0.015663384 0.0014890253
14200 124 0.0048184995 0.0059866206 0.015290196 0.0017217599
14300 124 0.0049531756 0.0061539454 0.015631133 0.0020820646
14400 124 0.004608077 0.0057251866 0.01512022 0.0015346016
14500 124 0.0044909079 0.0055796129 0.015032761 0.0016169354
14600 124 0.0044307569 0.0055048797 0.015259724 0.0019791575
14700 124 0.0042209282 0.0052441835 0.015206142 0.001634029
14800 124 0.004931427 0.0061269245 0.015351353 0.0020991125
14900 124 0.0043513432 0.0054062142 0.014367168 0.0022798395
15000 124 0.0044465482 0.0055244993 0.014488799 0.0027071352
Loop time of 0.342327 on 1 procs for 5000 steps with 124 atoms
Performance: 6309759.447 tau/day, 14605.925 timesteps/s, 1.811 Matom-step/s
92.9% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.059911 | 0.059911 | 0.059911 | 0.0 | 17.50
Neigh | 0.0061776 | 0.0061776 | 0.0061776 | 0.0 | 1.80
Comm | 0.00033294 | 0.00033294 | 0.00033294 | 0.0 | 0.10
Output | 0.26919 | 0.26919 | 0.26919 | 0.0 | 78.64
Modify | 0.0053451 | 0.0053451 | 0.0053451 | 0.0 | 1.56
Other | | 0.001367 | | | 0.40
Nlocal: 124 ave 124 max 124 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 94
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 1 1 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 8.437 | 8.437 | 8.437 Mbytes
Step Atoms Temp c_1 c_2 Press
15000 124 0.0044465482 0.0055244993 0.014488799 0.002682599
15100 124 5.2439101 0.14501926 0.089393313 0.0861951
15200 124 5.2871886 0.19878957 0.11689814 0.087629076
15300 124 5.3269872 0.24823627 0.14065555 0.084448851
15400 124 5.318405 0.23757348 0.13557872 0.08579496
15500 124 5.322977 0.24325395 0.1367731 0.084332501
15600 124 5.3387157 0.26280804 0.14469795 0.091920302
15700 124 5.3468954 0.27297066 0.14714255 0.092776597
15800 124 5.3787123 0.31250075 0.16363996 0.091882707
15900 124 5.4124578 0.354427 0.18222961 0.090476713
16000 124 5.4095058 0.35075937 0.17808408 0.090347477
16100 124 5.4027965 0.34242354 0.1735999 0.091782107
16200 124 5.4022601 0.34175711 0.17335141 0.094848056
16300 124 5.4045444 0.34459525 0.17424728 0.093070457
16400 124 5.4101141 0.35151512 0.17740527 0.091595086
16500 124 5.4083344 0.34930396 0.1760425 0.09403337
16600 124 5.4016713 0.34102557 0.17264803 0.091701205
16700 124 5.3964053 0.33448303 0.16952454 0.097389495
16800 124 5.4155708 0.35829473 0.18177437 0.092539674
16900 124 5.428106 0.37386868 0.18956572 0.095082983
17000 124 5.4113572 0.35305963 0.17951019 0.093172207
17100 124 5.4017206 0.34108687 0.17437504 0.090773913
17200 124 5.4156275 0.35836508 0.18539559 0.084238411
17300 124 5.4009849 0.34017277 0.17748735 0.092123575
17400 124 5.4017142 0.34107897 0.18110554 0.08358144
17500 124 5.438404 0.38666317 0.20673435 0.08724577
17600 124 5.5085355 0.47379629 0.25395237 0.085044882
17700 124 5.573336 0.55430604 0.29833936 0.086018483
17800 124 5.6428243 0.64063997 0.34884622 0.091543453
17900 124 5.6885972 0.69750927 0.38081471 0.090348055
18000 124 5.7119205 0.72648671 0.3965357 0.095583224
18100 124 5.6590292 0.66077326 0.36523218 0.088750557
18200 124 5.5763862 0.55809563 0.31550553 0.096656501
18300 124 5.5505114 0.52594811 0.2987063 0.093142352
18400 124 5.5205731 0.48875209 0.2808444 0.087905083
18500 124 5.4892953 0.44989178 0.26426272 0.088670881
18600 124 5.4222293 0.36656731 0.22263438 0.087525924
18700 124 5.4048793 0.34501133 0.2146507 0.086965023
18800 124 5.4091495 0.35031672 0.21471813 0.088080028
18900 124 5.4055995 0.34590616 0.21031053 0.085893342
19000 124 5.3793845 0.31333589 0.19319866 0.091199294
19100 124 5.3860486 0.32161564 0.19859682 0.089765384
19200 124 5.3927702 0.32996663 0.20403509 0.088705875
19300 124 5.3971859 0.33545284 0.20175175 0.095973464
19400 124 5.3788197 0.3126342 0.18579792 0.089895991
19500 124 5.3885341 0.32470369 0.18948024 0.08907407
19600 124 5.4101398 0.35154706 0.19813337 0.091175233
19700 124 5.4044673 0.34449937 0.1920192 0.088240134
19800 124 5.4173446 0.36049849 0.19933328 0.088942313
19900 124 5.4076506 0.34845443 0.1927872 0.088186985
20000 124 5.3956924 0.33359732 0.18569985 0.086310528
Loop time of 0.389106 on 1 procs for 5000 steps with 124 atoms
Performance: 5551183.841 tau/day, 12849.963 timesteps/s, 1.593 Matom-step/s
95.9% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.065646 | 0.065646 | 0.065646 | 0.0 | 16.87
Neigh | 0.031221 | 0.031221 | 0.031221 | 0.0 | 8.02
Comm | 0.00053075 | 0.00053075 | 0.00053075 | 0.0 | 0.14
Output | 0.28071 | 0.28071 | 0.28071 | 0.0 | 72.14
Modify | 0.0094938 | 0.0094938 | 0.0094938 | 0.0 | 2.44
Other | | 0.001506 | | | 0.39
Nlocal: 124 ave 124 max 124 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 440
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
100 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.562 | 7.562 | 7.562 Mbytes
Step Atoms Temp c_1 c_2 Press
20000 124 0.26850516 0.33359732 0.18569985 -0.00058742278
20100 124 0.067549955 0.083925702 0.063062899 0.0045374238
20200 124 0.066580568 0.082721312 0.059638881 0.0046773578
20300 124 0.07628847 0.094782644 0.062421657 0.0046893994
20400 124 0.052816991 0.06562111 0.047589744 0.0028448251
20500 124 0.055535483 0.068998631 0.048552669 0.0030160754
20600 124 0.057734099 0.071730244 0.048245877 0.0055952666
20700 124 0.025276846 0.031404566 0.029056653 0.0010557897
20800 124 0.027799744 0.034539076 0.028465929 0.0054351904
20900 124 0.027298566 0.033916401 0.027639247 0.0040270655
21000 124 0.024024164 0.029848203 0.024340109 0.0021868639
21100 124 0.024987535 0.031045119 0.025194034 0.0031461768
21200 124 0.022012372 0.027348704 0.023163575 0.0043315251
21300 124 0.022655698 0.028147988 0.023878073 0.0020061516
21400 124 0.021143161 0.026268775 0.022847649 0.0040014299
21500 124 0.014709587 0.018275548 0.016687241 0.0023850643
21600 124 0.015706963 0.019514711 0.017385202 0.0032947123
21700 124 0.013349261 0.016585446 0.015935512 0.0031959548
21800 124 0.014581152 0.018115977 0.016568563 0.0037723007
21900 124 0.014163143 0.017596633 0.016786239 0.0026785551
22000 124 0.016104454 0.020008564 0.018204239 0.0023406746
22100 124 0.01339249 0.016639155 0.016215231 0.001863965
22200 124 0.013630138 0.016934414 0.015604721 0.0028389532
22300 124 0.014166961 0.017601376 0.015759254 0.0028485515
22400 124 0.011839829 0.014710091 0.014221942 0.0017289255
22500 124 0.013154489 0.016343456 0.015344524 0.002604136
22600 124 0.01184812 0.014720391 0.014245522 0.0033590472
22700 124 0.011433291 0.014204998 0.013639711 0.0033184417
22800 124 0.012475296 0.01549961 0.014280851 0.0019255869
22900 124 0.011013166 0.013683025 0.012635318 0.0022642412
23000 124 0.011272729 0.014005511 0.012664054 0.0031554482
23100 124 0.011308641 0.01405013 0.01269757 0.0012325204
23200 124 0.010130039 0.012585807 0.012040563 0.0031495614
23300 124 0.01068914 0.013280447 0.012068167 0.0030504659
23400 124 0.0088509283 0.010996608 0.010081312 0.0011009871
23500 124 0.0086960335 0.010804163 0.0098039166 0.0016850167
23600 124 0.0099572186 0.01237109 0.010813937 0.0029185027
23700 124 0.0099220344 0.012327376 0.01019147 0.0041517151
23800 124 0.0074584766 0.0092665922 0.00878623 0.0033529004
23900 124 0.0073723023 0.0091595271 0.0091933559 0.0011381908
24000 124 0.0085493541 0.010621925 0.0099793177 0.0023747349
24100 124 0.0067898783 0.0084359094 0.0089497737 0.0034141299
24200 124 0.0060281758 0.0074895517 0.0087835149 0.0010072857
24300 124 0.0060915949 0.0075683452 0.0085728503 0.0018651179
24400 124 0.0064602712 0.0080263976 0.0089108593 0.00097753256
24500 124 0.0069832749 0.00867619 0.0096009113 0.0012080821
24600 124 0.006177616 0.0076752198 0.0086417752 0.0017792353
24700 124 0.0052226061 0.0064886924 0.0082196264 0.0011437075
24800 124 0.0051375444 0.0063830098 0.0083830573 0.0026277208
24900 124 0.0037569854 0.0046677698 0.0072102729 0.0017298399
25000 124 0.0039418359 0.0048974325 0.0073209218 0.0011140053
Loop time of 0.347029 on 1 procs for 5000 steps with 124 atoms
Performance: 6224261.616 tau/day, 14408.013 timesteps/s, 1.787 Matom-step/s
94.3% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.057242 | 0.057242 | 0.057242 | 0.0 | 16.49
Neigh | 0.01241 | 0.01241 | 0.01241 | 0.0 | 3.58
Comm | 0.00038529 | 0.00038529 | 0.00038529 | 0.0 | 0.11
Output | 0.27021 | 0.27021 | 0.27021 | 0.0 | 77.86
Modify | 0.0054264 | 0.0054264 | 0.0054264 | 0.0 | 1.56
Other | | 0.001359 | | | 0.39
Nlocal: 124 ave 124 max 124 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: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 197
Dangerous builds = 0
Total wall time: 0:00:01

View File

@ -0,0 +1,509 @@
LAMMPS (27 Jun 2024)
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:551)
# pouring spheres into box made of triangles
units lj
atom_style tri
atom_modify map array
boundary f f f
dimension 3
comm_modify vel yes
region box block -10 10 -10 10 -10 10 units box
create_box 2 box
Created orthogonal box = (-10 -10 -10) to (10 10 10)
1 by 2 by 2 MPI processor grid
fix 20 all surface/local surf.tribox.stl
Reading STL object STL version of surf.tribox from text file surf.tribox.stl
set type 1 type 2
Setting atom values ...
24 settings made for type
pair_style hybrid gran/hooke 4000.0 NULL 100.0 NULL 0.5 1 tri/gran/hooke 4000.0 NULL 100.0 50.0 0.5 1
pair_coeff 1 1 gran/hooke
pair_coeff 1 2 tri/gran/hooke
pair_coeff 2 2 none
group sphere type 1
0 atoms in group sphere
group tri type 2
24 atoms in group tri
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
#displace_atoms all rotate 0 0 0 0 0 1 45
fix 2 sphere nve/sphere
fix 3 sphere gravity 1.0 vector 0 0 -1
#fix 4 sphere viscous 0.2
region slab block -2 2 -2 2 -2 2 units box
fix ins sphere pour 100 1 4767548 vol 0.4 10 diam one 1.0 region slab ignore
Particle insertion: 48 every 566 steps, 100 by step 1133
timestep 0.005
compute 1 sphere temp
compute_modify 1 dynamic yes
compute 2 sphere temp/sphere
compute_modify 2 dynamic yes
thermo 100
thermo_style custom step atoms temp c_1 c_2 press
thermo_modify lost ignore
compute_modify thermo_temp dynamic yes
dump 2 all image 100 tmp.image.*.ppm type type zoom 1.4 adiam 1.0 tri type 2 0.2
dump_modify 2 pad 5
run 5000
Generated 0 of 1 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 = 7.1245553
ghost atom cutoff = 7.1245553
binsize = 3.5622777, bins = 6 6 6
3 neighbor lists, perpetual/occasional/extra = 3 0 0
(1) pair gran/hooke, perpetual, skip trim from (3)
attributes: half, newton on, size, cut 1.3, off2on
pair build: skip/trim/size/off2on
stencil: none
bin: none
(2) pair tri/gran/hooke, perpetual, skip from (3)
attributes: half, newton on, size, onesided, off2on
pair build: skip/size/off2on/oneside
stencil: none
bin: none
(3) neighbor class addition, perpetual
attributes: half, newton off, size
pair build: half/size/bin/atomonly/newtoff
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 7.337 | 7.338 | 7.342 Mbytes
Step Atoms Temp c_1 c_2 Press
0 24 0 0 0 0
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
100 54 0.43980579 0.803783 0.39507978 0.0029137134
200 54 0.65485258 1.1967995 0.5882574 0.0043383984
300 54 0.70118095 1.2814686 0.62987441 0.0046453238
400 54 0.45057814 0.82347039 0.41172861 0.0030892546
500 54 0.42112344 0.76963938 0.38709352 0.0065941015
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
600 88 0.37166521 0.51325196 0.26472957 0.0046580242
700 88 0.41372338 0.57133229 0.29476966 0.0052995687
800 88 0.456666 0.630634 0.32751956 0.0052868185
900 88 0.39272615 0.54233611 0.28819808 0.0054685106
1000 88 0.35151938 0.48543152 0.26491902 0.0075844126
1100 88 0.34254338 0.47303609 0.2578388 0.0058365561
WARNING: Fewer insertions than requested (../fix_pour.cpp:683)
1200 123 0.32173809 0.40053109 0.2195167 0.009133967
1300 123 0.34297407 0.42696772 0.23049402 0.0064335441
1400 123 0.29833429 0.37139575 0.20331799 0.0078377048
1500 123 0.26892843 0.33478846 0.18670497 0.0068237101
1600 123 0.24084602 0.29982872 0.16693769 0.0058533752
1700 124 0.16657955 0.20696247 0.12302494 0.0070405476
1800 124 0.10384588 0.12902064 0.086085999 0.0026199715
1900 124 0.065080172 0.080857183 0.059672578 0.0039751399
2000 124 0.05183749 0.064404155 0.04642994 0.0020956381
2100 124 0.045454362 0.056473601 0.038678168 0.0021870001
2200 124 0.040260905 0.050021124 0.034386815 0.0040428451
2300 124 0.017599392 0.021865912 0.017659763 0.0033409473
2400 124 0.017871716 0.022204254 0.016705941 0.0035685425
2500 124 0.010140454 0.012598746 0.010222061 0.0012285151
2600 124 0.0087985619 0.010931547 0.0087284273 0.0012844023
2700 124 0.007517679 0.0093401466 0.0071819965 0.0014841812
2800 124 0.0062774012 0.0077991955 0.0059012475 0.0013323867
2900 124 0.0038811559 0.0048220422 0.0039902314 0.0012740306
3000 124 0.0040746036 0.0050623863 0.0038882236 0.0013782794
3100 124 0.0020498002 0.0025467215 0.0022365676 0.00121108
3200 124 0.0019550482 0.0024289992 0.0021292434 0.0011484714
3300 124 0.0016148199 0.0020062914 0.001787787 0.0010893844
3400 124 0.0013434329 0.0016691136 0.0014690989 0.001325505
3500 124 0.0010971454 0.00136312 0.0012496656 0.0014062237
3600 124 0.00089514745 0.0011121529 0.0010349137 0.0013004041
3700 124 0.00079220295 0.00098425215 0.00089325412 0.0013154029
3800 124 0.00072319138 0.0008985105 0.00082122483 0.0010962257
3900 124 0.00059169918 0.00073514141 0.0006832875 0.0011623171
4000 124 0.00049184916 0.00061108533 0.00058188229 0.0012411181
4100 124 0.00040680153 0.00050542008 0.00047870676 0.0011629016
4200 124 0.00030588217 0.00038003543 0.00038246927 0.001099663
4300 124 0.00026922252 0.00033448858 0.00034959953 0.0011174124
4400 124 0.00022239176 0.00027630491 0.0002971948 0.0011072118
4500 124 0.00020343817 0.00025275651 0.00027474732 0.0011125161
4600 124 0.00020212818 0.00025112896 0.00027242474 0.0011191532
4700 124 0.00018351448 0.00022800283 0.00025264863 0.0011176353
4800 124 0.00018007372 0.00022372795 0.00024857425 0.0011156418
4900 124 0.00015459176 0.00019206855 0.00021711531 0.0011174087
5000 124 0.00013814109 0.00017162984 0.00019806357 0.0011476165
Loop time of 0.4577 on 4 procs for 5000 steps with 124 atoms
Performance: 4719248.480 tau/day, 10924.186 timesteps/s, 1.355 Matom-step/s
93.6% 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.0022346 | 0.016804 | 0.033685 | 11.1 | 3.67
Neigh | 0.0020117 | 0.0046796 | 0.0070742 | 3.5 | 1.02
Comm | 0.06899 | 0.08616 | 0.10138 | 5.0 | 18.82
Output | 0.20305 | 0.26373 | 0.33837 | 10.2 | 57.62
Modify | 0.0017927 | 0.0031945 | 0.0052327 | 2.5 | 0.70
Other | | 0.08314 | | | 18.16
Nlocal: 31 ave 55 max 6 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 93 ave 118 max 69 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 270
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 0 0 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 8.589 | 8.601 | 8.612 Mbytes
Step Atoms Temp c_1 c_2 Press
5000 124 0.00013814109 0.00017162984 0.00019806357 0.0011393845
5100 124 5.2497489 0.15227351 0.086950224 0.083018439
5200 124 5.2667941 0.17345097 0.10004552 0.081933375
5300 124 5.2702467 0.17774046 0.098721846 0.081858913
5400 124 5.2810321 0.1911405 0.10284442 0.081908237
5500 124 5.2869181 0.19845342 0.10520589 0.082475287
5600 124 5.2903829 0.20275822 0.1062221 0.082060713
5700 124 5.2972601 0.21130259 0.11014372 0.082904363
5800 124 5.3133933 0.23134691 0.11895223 0.082638221
5900 124 5.321421 0.24132073 0.12341367 0.08367512
6000 124 5.3311871 0.25345436 0.1289868 0.08585114
6100 124 5.3397784 0.26412833 0.13380251 0.083860885
6200 124 5.3440946 0.26949097 0.13630397 0.084294896
6300 124 5.3490438 0.27563994 0.13938066 0.084316514
6400 124 5.3513948 0.27856086 0.14088282 0.084355453
6500 124 5.3532922 0.28091822 0.14197211 0.084169662
6600 124 5.3554267 0.28357014 0.14325168 0.084261645
6700 124 5.3570557 0.2855941 0.14433458 0.084810743
6800 124 5.360655 0.29006592 0.14636096 0.084297488
6900 124 5.3655245 0.29611592 0.14908452 0.085243202
7000 124 5.3671924 0.29818814 0.14990767 0.085406818
7100 124 5.3695979 0.30117682 0.15113793 0.084784596
7200 124 5.3704771 0.30226917 0.15173765 0.085669989
7300 124 5.3706216 0.3024487 0.15180341 0.084798844
7400 124 5.373135 0.30557147 0.15321903 0.085809531
7500 124 5.377898 0.31148903 0.15599818 0.085242244
7600 124 5.3787889 0.31259599 0.15641937 0.085326973
7700 124 5.3793411 0.31328199 0.15676105 0.084950755
7800 124 5.3803167 0.31449408 0.15736738 0.085202699
7900 124 5.3797837 0.31383196 0.15704082 0.085404305
8000 124 5.378568 0.31232146 0.15632737 0.084957387
8100 124 5.3790479 0.31291774 0.15667738 0.08504012
8200 124 5.3804618 0.3146744 0.15746304 0.085394022
8300 124 5.381518 0.31598663 0.1580058 0.085647397
8400 124 5.3814854 0.31594618 0.15794776 0.085483103
8500 124 5.3828149 0.31759794 0.15875289 0.085382128
8600 124 5.3832577 0.31814807 0.15901813 0.085100022
8700 124 5.3838083 0.31883219 0.1593819 0.085126575
8800 124 5.3842963 0.31943849 0.15972799 0.085207191
8900 124 5.3846809 0.31991635 0.15992599 0.085139646
9000 124 5.3850037 0.32031738 0.16014788 0.085113229
9100 124 5.3849209 0.32021445 0.16009856 0.086008106
9200 124 5.3851663 0.32051942 0.16025838 0.085113861
9300 124 5.3847882 0.32004969 0.16001717 0.085571311
9400 124 5.3845996 0.31981535 0.15990007 0.085364837
9500 124 5.3847067 0.31994844 0.15998733 0.085299109
9600 124 5.3849015 0.32019038 0.1601311 0.085276233
9700 124 5.3850083 0.32032313 0.16021695 0.08525484
9800 124 5.3852855 0.32066753 0.16041712 0.085313652
9900 124 5.3850371 0.3203589 0.16026849 0.085310954
10000 124 5.3851839 0.32054133 0.16038666 0.085302918
Loop time of 0.409799 on 4 procs for 5000 steps with 124 atoms
Performance: 5270871.402 tau/day, 12201.091 timesteps/s, 1.513 Matom-step/s
93.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.0051334 | 0.025604 | 0.046384 | 12.8 | 6.25
Neigh | 0.0021156 | 0.0071148 | 0.012216 | 5.9 | 1.74
Comm | 0.074209 | 0.097182 | 0.11963 | 7.1 | 23.71
Output | 0.17917 | 0.21221 | 0.26696 | 7.7 | 51.78
Modify | 0.0025472 | 0.0042401 | 0.0062812 | 2.4 | 1.03
Other | | 0.06344 | | | 15.48
Nlocal: 31 ave 59 max 8 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Nghost: 93 ave 116 max 65 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 316
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
100 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.714 | 7.726 | 7.737 Mbytes
Step Atoms Temp c_1 c_2 Press
10000 124 0.25799668 0.32054133 0.16038666 0.011646419
10100 124 0.08324921 0.10343084 0.062335766 0.0036624752
10200 124 0.055901794 0.069453744 0.049832932 0.0033728561
10300 124 0.044027763 0.054701161 0.04185265 0.0026179937
10400 124 0.033039084 0.04104856 0.033838053 0.0042759187
10500 124 0.027910031 0.034676099 0.03032615 0.0035478069
10600 124 0.023950341 0.029756484 0.027453511 0.0021787132
10700 124 0.019265986 0.023936529 0.024195141 0.0021075014
10800 124 0.01792324 0.022268268 0.02351488 0.0024045592
10900 124 0.016637573 0.020670924 0.022003538 0.0034529435
11000 124 0.01309629 0.016271149 0.019359267 0.0017153891
11100 124 0.011683446 0.014515797 0.018854763 0.0026746409
11200 124 0.010761235 0.013370019 0.018196576 0.0029245106
11300 124 0.010091525 0.012537955 0.017818489 0.0015293592
11400 124 0.0096257383 0.011959251 0.017339573 0.001738964
11500 124 0.0090651598 0.011262774 0.017333091 0.001572136
11600 124 0.0083289641 0.010348107 0.016333003 0.0017025439
11700 124 0.0082472994 0.010246645 0.015938935 0.0014901853
11800 124 0.0084807765 0.010536722 0.016623711 0.0014242448
11900 124 0.007712302 0.009581951 0.016222065 0.001508232
12000 124 0.0075675523 0.0094021104 0.016169534 0.0014905945
12100 124 0.0079750147 0.0099083516 0.015149716 0.0018322585
12200 124 0.0078458496 0.0097478738 0.015374706 0.0015492292
12300 124 0.0067921053 0.0084386763 0.013486857 0.0029067448
12400 124 0.0068508251 0.0085116312 0.014323963 0.0022197074
12500 124 0.0066111171 0.0082138122 0.014731325 0.0019302025
12600 124 0.0064707353 0.0080393984 0.014543367 0.0016587329
12700 124 0.0063923274 0.0079419826 0.014294803 0.0021257946
12800 124 0.0065672963 0.0081593681 0.014584204 0.0021816878
12900 124 0.0059726164 0.0074205234 0.013858993 0.001530472
13000 124 0.0058214195 0.0072326727 0.014246373 0.0022339129
13100 124 0.0059612276 0.0074063737 0.015124804 0.0017832816
13200 124 0.0054078557 0.006718851 0.014415419 0.0015478062
13300 124 0.0050729677 0.0063027781 0.014411303 0.0034332889
13400 124 0.0050627437 0.0062900755 0.014575044 0.0018503274
13500 124 0.0046199761 0.0057399703 0.015232064 0.0015707131
13600 124 0.0044802838 0.0055664132 0.015492936 0.0013436939
13700 124 0.0039229012 0.0048739075 0.014834411 0.0015775897
13800 124 0.0038496507 0.0047828994 0.014358939 0.0018648078
13900 124 0.0038836627 0.0048251567 0.015268416 0.0016609027
14000 124 0.0039681599 0.0049301381 0.015565026 0.0015819215
14100 124 0.0038047814 0.0047271526 0.013834942 0.0026360599
14200 124 0.0039663433 0.004927881 0.014740545 0.0017718033
14300 124 0.0042501525 0.0052804925 0.015931298 0.0015106704
14400 124 0.0043324422 0.0053827312 0.014699138 0.0017419936
14500 124 0.0051700329 0.0064233742 0.014614744 0.0017929379
14600 124 0.0051378715 0.006383416 0.015531966 0.001759876
14700 124 0.0043671736 0.0054258823 0.014990071 0.0014624588
14800 124 0.0045615958 0.0056674372 0.014632879 0.001980479
14900 124 0.0043120591 0.0053574067 0.014648647 0.0017081314
15000 124 0.0040016693 0.004971771 0.015227426 0.0014981674
Loop time of 0.388132 on 4 procs for 5000 steps with 124 atoms
Performance: 5565117.226 tau/day, 12882.216 timesteps/s, 1.597 Matom-step/s
90.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.00066988 | 0.018356 | 0.040036 | 13.2 | 4.73
Neigh | 0.00064433 | 0.0021311 | 0.00401 | 3.2 | 0.55
Comm | 0.066969 | 0.087733 | 0.10454 | 5.6 | 22.60
Output | 0.1811 | 0.21514 | 0.2695 | 7.6 | 55.43
Modify | 0.00073098 | 0.0022522 | 0.0043484 | 3.3 | 0.58
Other | | 0.06252 | | | 16.11
Nlocal: 31 ave 54 max 8 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 93 ave 116 max 70 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 88
Dangerous builds = 0
fix 1 tri move rotate 0 0 0 1 1 1 25
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 8.589 | 8.601 | 8.612 Mbytes
Step Atoms Temp c_1 c_2 Press
15000 124 0.0040016693 0.004971771 0.015227426 0.0015086634
15100 124 5.2391455 0.13909965 0.086544429 0.084187091
15200 124 5.2856213 0.19684224 0.11745683 0.083186315
15300 124 5.3131372 0.23102865 0.13493822 0.08605977
15400 124 5.312441 0.23016376 0.13361748 0.085326393
15500 124 5.3238039 0.24428132 0.13748765 0.083860323
15600 124 5.3492159 0.27585379 0.15195482 0.090509109
15700 124 5.3793259 0.31326319 0.16813451 0.094842314
15800 124 5.3836817 0.31867484 0.17028976 0.089989699
15900 124 5.3796952 0.31372196 0.16538847 0.094472961
16000 124 5.4115814 0.3533382 0.18150785 0.091208354
16100 124 5.3936511 0.33106115 0.17088137 0.093629945
16200 124 5.3957378 0.33365363 0.17021817 0.099559486
16300 124 5.4107263 0.35227575 0.17833256 0.097418633
16400 124 5.4157911 0.35856834 0.18023194 0.094902693
16500 124 5.4104949 0.35198831 0.17667749 0.098565938
16600 124 5.409282 0.35048133 0.17592806 0.096041734
16700 124 5.413877 0.35619023 0.1787891 0.092627526
16800 124 5.41431 0.35672824 0.1791246 0.094118962
16900 124 5.4131542 0.35529219 0.17881883 0.092708811
17000 124 5.4141932 0.35658307 0.1798655 0.090520504
17100 124 5.4220385 0.3663303 0.18519617 0.089222997
17200 124 5.4046579 0.34473618 0.17738138 0.094492682
17300 124 5.4056346 0.34594968 0.17932898 0.087067848
17400 124 5.4625758 0.4166948 0.21590291 0.087573329
17500 124 5.5101683 0.47582488 0.24840276 0.086186395
17600 124 5.5878392 0.5723251 0.29850268 0.08748419
17700 124 5.6772998 0.6834732 0.36153625 0.091782683
17800 124 5.7649819 0.79241148 0.41944601 0.091955533
17900 124 5.6293884 0.6239469 0.34262388 0.092222925
18000 124 5.5993719 0.58665365 0.3202341 0.092041421
18100 124 5.5929165 0.57863332 0.31757988 0.089752868
18200 124 5.5194314 0.48733363 0.27391729 0.088604294
18300 124 5.5558601 0.53259351 0.29860433 0.087707501
18400 124 5.5243479 0.49344201 0.28138274 0.091109598
18500 124 5.4712545 0.4274775 0.24899279 0.085579285
18600 124 5.4614746 0.41532663 0.24277803 0.093560936
18700 124 5.4335266 0.38060339 0.22486156 0.092857653
18800 124 5.4062944 0.34676949 0.20805012 0.085928259
18900 124 5.3680383 0.29923911 0.18445379 0.09139396
19000 124 5.3612247 0.29077372 0.17705414 0.091152733
19100 124 5.3657774 0.29643016 0.18163087 0.088533894
19200 124 5.3753017 0.30826343 0.18731953 0.090708858
19300 124 5.3788607 0.31268517 0.18511328 0.091858903
19400 124 5.3753079 0.30827114 0.18028529 0.094270307
19500 124 5.3793587 0.31330386 0.17822453 0.09479624
19600 124 5.3794279 0.31338982 0.17247606 0.088668785
19700 124 5.3883131 0.3244291 0.17733088 0.089605063
19800 124 5.3862701 0.32189078 0.17600167 0.087391973
19900 124 5.3627176 0.2926286 0.15793773 0.087196402
20000 124 5.371666 0.30374625 0.16190487 0.08799023
Loop time of 0.446069 on 4 procs for 5000 steps with 124 atoms
Performance: 4842295.219 tau/day, 11209.017 timesteps/s, 1.390 Matom-step/s
93.2% 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.010367 | 0.024106 | 0.040606 | 8.9 | 5.40
Neigh | 0.004444 | 0.010596 | 0.019572 | 6.1 | 2.38
Comm | 0.083456 | 0.10705 | 0.1247 | 5.4 | 24.00
Output | 0.1825 | 0.23041 | 0.29061 | 8.5 | 51.65
Modify | 0.0032429 | 0.0048904 | 0.0074544 | 2.4 | 1.10
Other | | 0.06902 | | | 15.47
Nlocal: 31 ave 73 max 6 min
Histogram: 2 0 0 0 1 0 0 0 0 1
Nghost: 93 ave 118 max 51 min
Histogram: 1 0 0 0 0 1 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 429
Dangerous builds = 0
unfix 1
set type 1 angmom 0.0 0.0 0.0
Setting atom values ...
100 settings made for angmom
velocity tri set 0.0 0.0 0.0
run 5000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.737 | 7.746 | 7.773 Mbytes
Step Atoms Temp c_1 c_2 Press
20000 124 0.24447869 0.30374625 0.16190487 -0.013113207
20100 124 0.058472851 0.072648087 0.051241435 0.0027199931
20200 124 0.052338782 0.065026972 0.04463957 0.0049181017
20300 124 0.059032454 0.073343352 0.046997972 0.0036432387
20400 124 0.041540522 0.051610952 0.034851914 0.0080319941
20500 124 0.034253651 0.042557567 0.030035232 0.0085785376
20600 124 0.027090159 0.03365747 0.025218135 0.0056701536
20700 124 0.023080903 0.028676274 0.022777714 0.0021487926
20800 124 0.024811993 0.030827022 0.023644112 0.0031902401
20900 124 0.02296688 0.028534608 0.022697322 0.0052975401
21000 124 0.024959299 0.031010038 0.023833456 0.0049399041
21100 124 0.024560924 0.030515087 0.022657931 0.0034176814
21200 124 0.025331395 0.031472339 0.023297144 0.0051700371
21300 124 0.023119592 0.028724342 0.021901117 0.0028542595
21400 124 0.021068783 0.026176367 0.02024999 0.0066313423
21500 124 0.019958716 0.024797192 0.020021151 0.0054394297
21600 124 0.021501915 0.026714501 0.021044833 0.003139584
21700 124 0.022663473 0.028157649 0.021375039 0.0047077744
21800 124 0.017783349 0.022094464 0.018460952 0.0024408478
21900 124 0.017441008 0.021669131 0.017976927 0.004236632
22000 124 0.016834232 0.020915258 0.017867023 0.0032297246
22100 124 0.016852641 0.02093813 0.017823693 0.0031993194
22200 124 0.017260002 0.021444245 0.018617101 0.001645186
22300 124 0.016279285 0.020225778 0.017759307 0.0048239099
22400 124 0.013098535 0.016273937 0.014976085 0.0030481479
22500 124 0.01253107 0.015568906 0.014821105 0.002818037
22600 124 0.013231925 0.016439664 0.014841942 0.0061556104
22700 124 0.010622794 0.013198017 0.013335312 0.0032549657
22800 124 0.012715053 0.01579749 0.01437656 0.0017626703
22900 124 0.01207747 0.015005341 0.013708244 0.0018658438
23000 124 0.010825905 0.013450367 0.01253289 0.0024262171
23100 124 0.010506745 0.013053834 0.012086254 0.0013807784
23200 124 0.010816779 0.013439028 0.012089622 0.0020534022
23300 124 0.010541511 0.013097028 0.012162291 0.0020542813
23400 124 0.0094678491 0.011763085 0.011404012 0.0011667903
23500 124 0.0083682956 0.010396973 0.010273685 0.0025941956
23600 124 0.0076879289 0.0095516693 0.0099437632 0.0014724848
23700 124 0.0087792045 0.010907496 0.010802224 0.0017158203
23800 124 0.0070944354 0.0088142985 0.010176751 0.0030678737
23900 124 0.0073071217 0.0090785451 0.010067352 0.0021355515
24000 124 0.007092681 0.0088121188 0.0093578983 0.0037224355
24100 124 0.0061240788 0.0076087039 0.0088323652 0.00075591612
24200 124 0.0060997333 0.0075784566 0.0089160306 0.00074919945
24300 124 0.0074369071 0.0092397936 0.0098936814 0.0016742568
24400 124 0.0055774041 0.0069295021 0.0089788427 0.0010941333
24500 124 0.0054891817 0.0068198925 0.0089585787 0.0010201513
24600 124 0.0052665503 0.0065432898 0.0085195212 0.0027803091
24700 124 0.0052229505 0.0064891203 0.0083245915 0.0032441386
24800 124 0.0045885549 0.0057009318 0.0077639469 0.0021437792
24900 124 0.0048155198 0.0059829185 0.0082794836 0.0013531019
25000 124 0.0051022231 0.0063391257 0.0084155114 0.0026277693
Loop time of 0.422905 on 4 procs for 5000 steps with 124 atoms
Performance: 5107527.533 tau/day, 11822.980 timesteps/s, 1.466 Matom-step/s
92.1% 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.00078007 | 0.018612 | 0.041595 | 13.3 | 4.40
Neigh | 0.0007419 | 0.0036728 | 0.0070159 | 4.7 | 0.87
Comm | 0.075945 | 0.098004 | 0.1149 | 5.5 | 23.17
Output | 0.17815 | 0.22946 | 0.29026 | 8.8 | 54.26
Modify | 0.0008285 | 0.0025442 | 0.0042422 | 3.2 | 0.60
Other | | 0.07061 | | | 16.70
Nlocal: 31 ave 58 max 5 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 93 ave 119 max 66 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 149
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,15 @@
LAMMPS molecule file for line box
9 lines
Lines
1 1 2 7 0 10 10
2 1 2 10 10 0 7
3 1 2 0 7 -10 10
4 1 2 -10 10 -7 0
5 1 2 -7 0 -10 -10
6 1 2 -10 -10 0 -10
7 1 2 0 -10 10 -10
8 1 2 10 -10 10 0
9 1 2 0 -9.9 0 -4

View File

@ -0,0 +1,10 @@
LAMMPS data file for tri plane
4 triangles
Triangles
1 1 2 -6 -6 0 6 -6 0 0 0 0
2 1 2 6 -6 0 6 6 0 0 0 0
3 1 2 6 6 0 -6 6 0 0 0 0
4 1 2 -6 -6 0 0 0 0 -6 6 0

View File

@ -0,0 +1,30 @@
solid STL version of surf.tri
facet normal 0.0 0.0 0.0
outer loop
vertex -6 -6 0
vertex 6 -6 0
vertex 0 0 0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 6 -6 0
vertex 6 6 0
vertex 0 0 0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 6 6 0
vertex -6 6 0
vertex 0 0 0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex -6 -6 0
vertex 0 0 0
vertex -6 6 0
endloop
endfacet
endsolid STL version of surf.tri

View File

@ -0,0 +1,31 @@
LAMMPS data file for tri box
24 triangles
Triangles
1 1 2 0.0 0.0 -6.0 6.0 6.0 -6.0 6.0 -6.0 -6.0
2 1 2 0.0 0.0 6.0 6.0 -6.0 6.0 6.0 6.0 6.0
3 1 2 0.0 0.0 6.0 -6.0 -6.0 6.0 6.0 -6.0 6.0
4 1 2 -6.0 6.0 6.0 -6.0 -6.0 6.0 0.0 0.0 6.0
5 1 2 -6.0 -6.0 -6.0 0.0 0.0 -6.0 6.0 -6.0 -6.0
6 1 2 0.0 0.0 -6.0 -6.0 -6.0 -6.0 -6.0 6.0 -6.0
7 1 2 0.0 0.0 6.0 6.0 6.0 6.0 -6.0 6.0 6.0
8 1 2 6.0 6.0 -6.0 0.0 0.0 -6.0 -6.0 6.0 -6.0
9 1 2 6.0 6.0 -6.0 0.0 6.0 0.0 6.0 6.0 6.0
10 1 2 0.0 6.0 0.0 -6.0 6.0 6.0 6.0 6.0 6.0
11 1 2 6.0 -6.0 6.0 0.0 -6.0 0.0 6.0 -6.0 -6.0
12 1 2 0.0 -6.0 0.0 6.0 -6.0 6.0 -6.0 -6.0 6.0
13 1 2 0.0 6.0 0.0 6.0 6.0 -6.0 -6.0 6.0 -6.0
14 1 2 -6.0 6.0 6.0 0.0 6.0 0.0 -6.0 6.0 -6.0
15 1 2 0.0 -6.0 0.0 -6.0 -6.0 -6.0 6.0 -6.0 -6.0
16 1 2 0.0 -6.0 0.0 -6.0 -6.0 6.0 -6.0 -6.0 -6.0
17 1 2 6.0 6.0 6.0 6.0 0.0 0.0 6.0 6.0 -6.0
18 1 2 6.0 0.0 0.0 6.0 -6.0 -6.0 6.0 6.0 -6.0
19 1 2 -6.0 6.0 -6.0 -6.0 0.0 0.0 -6.0 6.0 6.0
20 1 2 -6.0 0.0 0.0 -6.0 6.0 -6.0 -6.0 -6.0 -6.0
21 1 2 6.0 0.0 0.0 6.0 6.0 6.0 6.0 -6.0 6.0
22 1 2 6.0 -6.0 -6.0 6.0 0.0 0.0 6.0 -6.0 6.0
23 1 2 -6.0 0.0 0.0 -6.0 -6.0 6.0 -6.0 6.0 6.0
24 1 2 -6.0 0.0 0.0 -6.0 -6.0 -6.0 -6.0 -6.0 6.0

View File

@ -0,0 +1,171 @@
solid STL version of surf.tribox
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 0.0 -6.0
vertex 6.0 6.0 -6.0
vertex 6.0 -6.0 -6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 0.0 6.0
vertex 6.0 -6.0 6.0
vertex 6.0 6.0 6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 0.0 6.0
vertex -6.0 -6.0 6.0
vertex 6.0 -6.0 6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex -6.0 6.0 6.0
vertex -6.0 -6.0 6.0
vertex 0.0 0.0 6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex -6.0 -6.0 -6.0
vertex 0.0 0.0 -6.0
vertex 6.0 -6.0 -6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 0.0 -6.0
vertex -6.0 -6.0 -6.0
vertex -6.0 6.0 -6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 0.0 6.0
vertex 6.0 6.0 6.0
vertex -6.0 6.0 6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 6.0 6.0 -6.0
vertex 0.0 0.0 -6.0
vertex -6.0 6.0 -6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 6.0 6.0 -6.0
vertex 0.0 6.0 0.0
vertex 6.0 6.0 6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 6.0 0.0
vertex -6.0 6.0 6.0
vertex 6.0 6.0 6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 6.0 -6.0 6.0
vertex 0.0 -6.0 0.0
vertex 6.0 -6.0 -6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 -6.0 0.0
vertex 6.0 -6.0 6.0
vertex -6.0 -6.0 6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 6.0 0.0
vertex 6.0 6.0 -6.0
vertex -6.0 6.0 -6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex -6.0 6.0 6.0
vertex 0.0 6.0 0.0
vertex -6.0 6.0 -6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 -6.0 0.0
vertex -6.0 -6.0 -6.0
vertex 6.0 -6.0 -6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 -6.0 0.0
vertex -6.0 -6.0 6.0
vertex -6.0 -6.0 -6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 6.0 6.0 6.0
vertex 6.0 0.0 0.0
vertex 6.0 6.0 -6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 6.0 0.0 0.0
vertex 6.0 -6.0 -6.0
vertex 6.0 6.0 -6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex -6.0 6.0 -6.0
vertex -6.0 0.0 0.0
vertex -6.0 6.0 6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex -6.0 0.0 0.0
vertex -6.0 6.0 -6.0
vertex -6.0 -6.0 -6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 6.0 0.0 0.0
vertex 6.0 6.0 6.0
vertex 6.0 -6.0 6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 6.0 -6.0 -6.0
vertex 6.0 0.0 0.0
vertex 6.0 -6.0 6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex -6.0 0.0 0.0
vertex -6.0 -6.0 6.0
vertex -6.0 6.0 6.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex -6.0 0.0 0.0
vertex -6.0 -6.0 -6.0
vertex -6.0 -6.0 6.0
endloop
endfacet
endsolid STL version of surf.tribox

18
src/.gitignore vendored
View File

@ -1045,6 +1045,12 @@
/fix_srd.h
/fix_store_kim.cpp
/fix_store_kim.h
/fix_surface.cpp
/fix_surface.h
/fix_surface_global.cpp
/fix_surface_global.h
/fix_surface_local.cpp
/fix_surface_local.h
/fix_temp_rescale_eff.cpp
/fix_temp_rescale_eff.h
/fix_tgnh_drude.cpp
@ -1269,6 +1275,8 @@
/pair_gran_hooke.h
/pair_gran_hooke_history.cpp
/pair_gran_hooke_history.h
/pair_surf_granular.cpp
/pair_surf_granular.h
/pair_gw.cpp
/pair_gw.h
/pair_gw_zbl.cpp
@ -1297,6 +1305,10 @@
/pair_lebedeva_z.h
/pair_line_lj.cpp
/pair_line_lj.h
/pair_line_gran_hooke.cpp
/pair_line_gran_hooke.h
/pair_line_gran_hooke_history.cpp
/pair_line_gran_hooke_history.h
/pair_list.cpp
/pair_list.h
/pair_lj_charmm_coul_charmm.cpp
@ -1472,6 +1484,10 @@
/pair_tracker.cpp
/pair_tri_lj.cpp
/pair_tri_lj.h
/pair_tri_gran_hooke.cpp
/pair_tri_gran_hooke.h
/pair_tri_gran_hooke_history.cpp
/pair_tri_gran_hooke_history.h
/pair_yukawa_colloid.cpp
/pair_yukawa_colloid.h
/pair_wf_cut.cpp
@ -1558,6 +1574,8 @@
/smd_material_models.cpp
/smd_material_models.h
/smd_math.h
/surf_extra.cpp
/surf_extra.h
/tad.cpp
/tad.h
/temper.cpp

View File

@ -0,0 +1,672 @@
/* ----------------------------------------------------------------------
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.
------------------------------------------------------------------------- */
#include "fix_surface.h"
#include "atom.h"
#include "domain.h"
#include "error.h"
#include "memory.h"
#include "molecule.h"
#include "stl_reader.h"
using namespace LAMMPS_NS;
static constexpr int DELTA = 128;
/* ---------------------------------------------------------------------- */
FixSurface::FixSurface(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) {}
/* ---------------------------------------------------------------------- */
FixSurface::~FixSurface() {}
/* ----------------------------------------------------------------------
extract lines or tris from a molecule template ID for one or more molecules
concatenate into single list of points and lines or tris
identify unique points using hash
------------------------------------------------------------------------- */
void FixSurface::extract_from_molecule(char *molID,
std::map<std::tuple<double,double,double>,int> *hash,
int &npoints, int &maxpoints,
Point *&points, int &nlines, Line *&lines,
int &ntris, Tri *&tris)
{
int dimension = domain->dimension;
int imol = atom->find_molecule(molID);
if (imol == -1)
error->all(FLERR,"Molecule template ID for fix surface does not exist");
// loop over one or more molecules in molID
Molecule **onemols = &atom->molecules[imol];
int nmol = onemols[0]->nset;
for (int m = 0; m < nmol; m++) {
if (dimension == 2)
if (onemols[m]->lineflag == 0)
error->all(FLERR,"Fix surface molecule must have lines");
if (dimension == 3)
if (onemols[m]->triflag == 0)
error->all(FLERR,"Fix surface molecule must have triangles");
int nl = onemols[m]->nlines;
int nt = onemols[m]->ntris;
nlines += nl;
ntris += nt;
lines = (Line *) memory->srealloc(lines,nlines*sizeof(Line),
"surface:lines");
tris = (Tri *) memory->srealloc(tris,ntris*sizeof(Tri),
"surface:tris");
// offset line/tri index lists by previous npoints
// pi,p2,p3 are C-style indices into points vector
if (dimension == 2) {
int *molline = onemols[m]->molline;
int *typeline = onemols[m]->typeline;
double **epts = onemols[m]->lines;
int iline = nlines - nl;
for (int i = 0; i < nl; i++) {
lines[iline].mol = molline[i];
lines[iline].type = typeline[i];
auto key = std::make_tuple(epts[i][0],epts[i][1],0.0);
if (hash->find(key) == hash->end()) {
if (npoints == maxpoints) {
maxpoints += DELTA;
points = (Point *) memory->srealloc(points,maxpoints*sizeof(Point),
"surface:points");
}
(*hash)[key] = npoints;
points[npoints].x[0] = epts[i][0];
points[npoints].x[1] = epts[i][1];
points[npoints].x[2] = 0.0;
lines[iline].p1 = npoints;
npoints++;
} else lines[iline].p1 = (*hash)[key];
key = std::make_tuple(epts[i][2],epts[i][3],0.0);
if (hash->find(key) == hash->end()) {
if (npoints == maxpoints) {
maxpoints += DELTA;
points = (Point *) memory->srealloc(points,maxpoints*sizeof(Point),
"surface:points");
}
(*hash)[key] = npoints;
points[npoints].x[0] = epts[i][2];
points[npoints].x[1] = epts[i][3];
points[npoints].x[2] = 0.0;
lines[iline].p2 = npoints;
npoints++;
} else lines[iline].p2 = (*hash)[key];
iline++;
}
}
if (dimension == 3) {
int *moltri = onemols[m]->moltri;
int *typetri = onemols[m]->typetri;
double **cpts = onemols[m]->tris;
int itri = ntris - nt;
for (int i = 0; i < nt; i++) {
tris[itri].mol = moltri[i];
tris[itri].type = typetri[i];
auto key = std::make_tuple(cpts[i][0],cpts[i][1],cpts[i][2]);
if (hash->find(key) == hash->end()) {
if (npoints == maxpoints) {
maxpoints += DELTA;
points = (Point *) memory->srealloc(points,maxpoints*sizeof(Point),
"surface:points");
}
(*hash)[key] = npoints;
points[npoints].x[0] = cpts[i][0];
points[npoints].x[1] = cpts[i][1];
points[npoints].x[2] = cpts[i][2];
tris[itri].p1 = npoints;
npoints++;
} else tris[itri].p1 = (*hash)[key];
key = std::make_tuple(cpts[i][3],cpts[i][4],cpts[i][5]);
if (hash->find(key) == hash->end()) {
if (npoints == maxpoints) {
maxpoints += DELTA;
points = (Point *) memory->srealloc(points,maxpoints*sizeof(Point),
"surface:points");
}
(*hash)[key] = npoints;
points[npoints].x[0] = cpts[i][3];
points[npoints].x[1] = cpts[i][4];
points[npoints].x[2] = cpts[i][5];
tris[itri].p2 = npoints;
npoints++;
} else tris[itri].p2 = (*hash)[key];
key = std::make_tuple(cpts[i][6],cpts[i][7],cpts[i][8]);
if (hash->find(key) == hash->end()) {
if (npoints == maxpoints) {
maxpoints += DELTA;
points = (Point *) memory->srealloc(points,maxpoints*sizeof(Point),
"surface:points");
}
(*hash)[key] = npoints;
points[npoints].x[0] = cpts[i][6];
points[npoints].x[1] = cpts[i][7];
points[npoints].x[2] = cpts[i][8];
tris[itri].p3 = npoints;
npoints++;
} else tris[itri].p3 = (*hash)[key];
itri++;
}
}
}
}
/* ----------------------------------------------------------------------
extract triangles from an STL file, can be text or binary
concatenate into single list of points and tris
identify unique points using hash
------------------------------------------------------------------------- */
void FixSurface::extract_from_stlfile(char *filename, int stype,
std::map<std::tuple<double,double,double>,int> *hash,
int &npoints, int &maxpoints,
Point *&points, int &ntris, Tri *&tris)
{
if (domain->dimension == 2)
error->all(FLERR,"Fix surface cannot use an STL file for 2d simulations");
// read tris from STL file
// stltris = tri coords internal to STL reader
STLReader *stl = new STLReader(lmp);
double **stltris;
ntris = stl->read_file(filename,stltris);
tris = (Tri *) memory->srealloc(tris,ntris*sizeof(Tri),"surface:tris");
// loop over STL tris
// populate points and tris data structs
// for each tri: set molID = 1 and type = stype
for (int itri = 0; itri < ntris; itri++) {
tris[itri].mol = 1;
tris[itri].type = stype;
auto key = std::make_tuple(stltris[itri][0],stltris[itri][1],stltris[itri][2]);
if (hash->find(key) == hash->end()) {
if (npoints == maxpoints) {
maxpoints += DELTA;
points = (Point *) memory->srealloc(points,maxpoints*sizeof(Point),
"surface:points");
}
(*hash)[key] = npoints;
points[npoints].x[0] = stltris[itri][0];
points[npoints].x[1] = stltris[itri][1];
points[npoints].x[2] = stltris[itri][2];
tris[itri].p1 = npoints;
npoints++;
} else tris[itri].p1 = (*hash)[key];
key = std::make_tuple(stltris[itri][3],stltris[itri][4],stltris[itri][5]);
if (hash->find(key) == hash->end()) {
if (npoints == maxpoints) {
maxpoints += DELTA;
points = (Point *) memory->srealloc(points,maxpoints*sizeof(Point),
"surface:points");
}
(*hash)[key] = npoints;
points[npoints].x[0] = stltris[itri][3];
points[npoints].x[1] = stltris[itri][4];
points[npoints].x[2] = stltris[itri][5];
tris[itri].p2 = npoints;
npoints++;
} else tris[itri].p2 = (*hash)[key];
key = std::make_tuple(stltris[itri][6],stltris[itri][7],stltris[itri][8]);
if (hash->find(key) == hash->end()) {
if (npoints == maxpoints) {
maxpoints += DELTA;
points = (Point *) memory->srealloc(points,maxpoints*sizeof(Point),
"surface:points");
}
(*hash)[key] = npoints;
points[npoints].x[0] = stltris[itri][6];
points[npoints].x[1] = stltris[itri][7];
points[npoints].x[2] = stltris[itri][8];
tris[itri].p3 = npoints;
npoints++;
} else tris[itri].p3 = (*hash)[key];
}
// delete STL reader
delete stl;
}
/* ----------------------------------------------------------------------
create and initialize Connect2d info for global lines
global lines were read from molecule file(s)
creates connect2d data structs
------------------------------------------------------------------------- */
void FixSurface::connectivity2d_global(int npoints, int nlines, Line *lines,
Connect2d *&connect2d,
int **&neigh_p1, int **&neigh_p2)
{
connect2d = (Connect2d *)
memory->smalloc(nlines*sizeof(Connect2d),"surface:connect2d");
// setup line end point connectivity lists
// counts = # of lines containing each end point (including self)
// plines = ragged 2d array with indices of lines which contain each point
int *counts;
memory->create(counts,npoints,"surface:counts");
for (int i = 0; i < npoints; i++) counts[i] = 0;
for (int i = 0; i < nlines; i++) {
counts[lines[i].p1]++;
counts[lines[i].p2]++;
}
int **plines;
memory->create_ragged(plines,npoints,counts,"surface:plines");
for (int i = 0; i < npoints; i++) counts[i] = 0;
for (int i = 0; i < nlines; i++) {
plines[lines[i].p1][counts[lines[i].p1]++] = i;
plines[lines[i].p2][counts[lines[i].p2]++] = i;
}
// p12_counts = # of lines connecting to endpoints p12 of each line
// do NOT include self
int *p1_counts,*p2_counts;
memory->create(p1_counts,nlines,"surface:p1_counts");
memory->create(p2_counts,nlines,"surface:p2_counts");
for (int i = 0; i < nlines; i++) {
p1_counts[i] = counts[lines[i].p1] - 1;
p2_counts[i] = counts[lines[i].p2] - 1;
}
// allocate all ragged arrays which Connect2d will point to
memory->create_ragged(neigh_p1,nlines,p1_counts,"surface:neigh_p1");
memory->create_ragged(neigh_p2,nlines,p2_counts,"surface:neigh_p2");
// set connect2d vector ptrs to rows of corresponding ragged arrays
for (int i = 0; i < nlines; i++) {
connect2d[i].np1 = p1_counts[i];
if (connect2d[i].np1 == 0) connect2d[i].neigh_p1 = nullptr;
else connect2d[i].neigh_p1 = neigh_p1[i];
connect2d[i].np2 = p2_counts[i];
if (connect2d[i].np2 == 0) connect2d[i].neigh_p2 = nullptr;
else connect2d[i].neigh_p2 = neigh_p2[i];
}
// initialize connect2d neigh vectors for each end point of each line
// do NOT include self
int j,m;
for (int i = 0; i < nlines; i++) {
if (p1_counts[i]) {
j = 0;
for (m = 0; m <= p1_counts[i]; m++) {
if (plines[lines[i].p1][m] == i) continue;
connect2d[i].neigh_p1[j] = plines[lines[i].p1][m];
j++;
}
}
if (p2_counts[i]) {
j = 0;
for (m = 0; m <= p2_counts[i]; m++) {
if (plines[lines[i].p2][m] == i) continue;
connect2d[i].neigh_p2[j] = plines[lines[i].p2][m];
j++;
}
}
}
// deallocate counts, plines, p12_counts
memory->destroy(counts);
memory->destroy(plines);
memory->destroy(p1_counts);
memory->destroy(p2_counts);
}
/* ----------------------------------------------------------------------
create and initialize Connect3d info for global triangles
global triangles were read from molecule or STL file(s)
creates connect3d data structs
------------------------------------------------------------------------- */
int FixSurface::connectivity3d_global(int npoints, int ntris, Tri *tris,
Connect3d *&connect3d,
int **&neigh_e1, int **&neigh_e2,
int **&neigh_e3,
int **&neigh_c1, int **&neigh_c2,
int **&neigh_c3)
{
int p1,p2,p3;
connect3d = (Connect3d *)
memory->smalloc(ntris*sizeof(Connect3d),"surface:connect3d");
// create hash = map of unique edges
// key = <p1,p2> indices of 2 points, in either order
// value = index of the unique edge (0 to Nedge-1)
// tri2edges[i][j] = index of unique edge for tri I and edge J
// nedges = total count of unique edges, returned
int **tri2edge;
memory->create(tri2edge,ntris,3,"surface::tri2edge");
std::map<std::tuple<int,int>,int> hash;
int nedges = 0;
for (int i = 0; i < ntris; i++) {
p1 = tris[i].p1;
p2 = tris[i].p2;
p3 = tris[i].p3;
auto key1 = std::make_tuple(p1,p2);
auto key2 = std::make_tuple(p2,p1);
if (hash.find(key1) == hash.end() && hash.find(key2) == hash.end()) {
hash[key1] = nedges;
tri2edge[i][0] = nedges;
nedges++;
}
else if (hash.find(key1) != hash.end()) tri2edge[i][0] = hash[key1];
else if (hash.find(key2) != hash.end()) tri2edge[i][0] = hash[key2];
key1 = std::make_tuple(p2,p3);
key2 = std::make_tuple(p3,p2);
if (hash.find(key1) == hash.end() && hash.find(key2) == hash.end()) {
hash[key1] = nedges;
tri2edge[i][1] = nedges;
nedges++;
}
else if (hash.find(key1) != hash.end()) tri2edge[i][1] = hash[key1];
else if (hash.find(key2) != hash.end()) tri2edge[i][1] = hash[key2];
key1 = std::make_tuple(p3,p1);
key2 = std::make_tuple(p1,p3);
if (hash.find(key1) == hash.end() && hash.find(key2) == hash.end()) {
hash[key1] = nedges;
tri2edge[i][2] = nedges;
nedges++;
}
else if (hash.find(key1) != hash.end()) tri2edge[i][2] = hash[key1];
else if (hash.find(key2) != hash.end()) tri2edge[i][2] = hash[key2];
}
// setup tri edge connectivity lists
// counts = # of tris containing each edge (including self)
// etris = ragged 2d array with indices of tris which contain each edge
int *counts;
memory->create(counts,nedges,"surface:count");
for (int i = 0; i < nedges; i++) counts[i] = 0;
for (int i = 0; i < ntris; i++) {
counts[tri2edge[i][0]]++;
counts[tri2edge[i][1]]++;
counts[tri2edge[i][2]]++;
}
int **etris;
memory->create_ragged(etris,nedges,counts,"surface:etris");
for (int i = 0; i < nedges; i++) counts[i] = 0;
for (int i = 0; i < ntris; i++) {
etris[tri2edge[i][0]][counts[tri2edge[i][0]]++] = i;
etris[tri2edge[i][1]][counts[tri2edge[i][1]]++] = i;
etris[tri2edge[i][2]][counts[tri2edge[i][2]]++] = i;
}
// e123_counts = # of edges connecting to edges e123 of each tri
// do NOT include self
int *e1_counts,*e2_counts,*e3_counts;
memory->create(e1_counts,ntris,"surface:e1_counts");
memory->create(e2_counts,ntris,"surface:e2_counts");
memory->create(e3_counts,ntris,"surface:e3_counts");
for (int i = 0; i < ntris; i++) {
e1_counts[i] = counts[tri2edge[i][0]] - 1;
e2_counts[i] = counts[tri2edge[i][1]] - 1;
e3_counts[i] = counts[tri2edge[i][2]] - 1;
}
// allocate all edge ragged arrays which Connect3d will point to
memory->create_ragged(neigh_e1,ntris,e1_counts,"surface:neigh_e1");
memory->create_ragged(neigh_e2,ntris,e2_counts,"surface:neigh_e2");
memory->create_ragged(neigh_e3,ntris,e3_counts,"surface:neigh_e3");
// set connect3d edge vector ptrs to rows of corresponding edge ragged arrays
for (int i = 0; i < ntris; i++) {
connect3d[i].ne1 = e1_counts[i];
if (connect3d[i].ne1 == 0) connect3d[i].neigh_e1 = nullptr;
else connect3d[i].neigh_e1 = neigh_e1[i];
connect3d[i].ne2 = e2_counts[i];
if (connect3d[i].ne2 == 0) connect3d[i].neigh_e2 = nullptr;
else connect3d[i].neigh_e2 = neigh_e2[i];
connect3d[i].ne3 = e3_counts[i];
if (connect3d[i].ne3 == 0) connect3d[i].neigh_e3 = nullptr;
else connect3d[i].neigh_e3 = neigh_e3[i];
}
// initialize connect3d edge neigh vectors for each edge of each tri
// do NOT include self
int j,m;
for (int i = 0; i < ntris; i++) {
if (connect3d[i].ne1) {
j = 0;
for (m = 0; m < counts[tri2edge[i][0]]; m++) {
if (etris[tri2edge[i][0]][m] == i) continue;
connect3d[i].neigh_e1[j] = etris[tri2edge[i][0]][m];
j++;
}
}
if (connect3d[i].ne2) {
j = 0;
for (m = 0; m < counts[tri2edge[i][1]]; m++) {
if (etris[tri2edge[i][1]][m] == i) continue;
connect3d[i].neigh_e2[j] = etris[tri2edge[i][1]][m];
j++;
}
}
if (connect3d[i].ne3) {
j = 0;
for (m = 0; m < counts[tri2edge[i][2]]; m++) {
if (etris[tri2edge[i][2]][m] == i) continue;
connect3d[i].neigh_e3[j] = etris[tri2edge[i][2]][m];
j++;
}
}
}
// deallocate counts, tri2edge, etris, e123_counts
memory->destroy(counts);
memory->destroy(tri2edge);
memory->destroy(etris);
memory->destroy(e1_counts);
memory->destroy(e2_counts);
memory->destroy(e3_counts);
// setup tri corner point connectivity lists
// counts = # of tris containing each corner point (including self)
// ctris = ragged 2d array with indices of tris which contain each point
memory->create(counts,npoints,"surface:counts");
for (int i = 0; i < npoints; i++) counts[i] = 0;
for (int i = 0; i < ntris; i++) {
counts[tris[i].p1]++;
counts[tris[i].p2]++;
counts[tris[i].p3]++;
}
int **ctris;
memory->create_ragged(ctris,npoints,counts,"surface:ctris");
for (int i = 0; i < npoints; i++) counts[i] = 0;
for (int i = 0; i < ntris; i++) {
ctris[tris[i].p1][counts[tris[i].p1]++] = i;
ctris[tris[i].p2][counts[tris[i].p2]++] = i;
ctris[tris[i].p3][counts[tris[i].p3]++] = i;
}
// c123_counts = # of tris connecting to corner points c123 of each tri
// do NOT include self or tris which connect to an edge
// only include tris which only connect at the corner point
int *c1_counts,*c2_counts,*c3_counts;
memory->create(c1_counts,ntris,"surface:c1_counts");
memory->create(c2_counts,ntris,"surface:c2_counts");
memory->create(c3_counts,ntris,"surface:c3_counts");
for (int i = 0; i < ntris; i++) {
c1_counts[i] = counts[tris[i].p1] - 1;
c1_counts[i] -= connect3d[i].ne3 + connect3d[i].ne1;
c2_counts[i] = counts[tris[i].p2] - 1;
c2_counts[i] -= connect3d[i].ne1 + connect3d[i].ne2;
c3_counts[i] = counts[tris[i].p3] - 1;
c3_counts[i] -= connect3d[i].ne2 + connect3d[i].ne3;
}
// allocate all corner ragged arrays which Connect3d will point to
memory->create_ragged(neigh_c1,ntris,c1_counts,"surface:neigh_c1");
memory->create_ragged(neigh_c2,ntris,c2_counts,"surface:neigh_c2");
memory->create_ragged(neigh_c3,ntris,c3_counts,"surface:neigh_c3");
// set connect3d corner vector ptrs to rows of corresponding corner ragged arrays
for (int i = 0; i < ntris; i++) {
connect3d[i].nc1 = c1_counts[i];
if (connect3d[i].nc1) connect3d[i].neigh_c1 = neigh_c1[i];
else connect3d[i].neigh_c1 = nullptr;
connect3d[i].nc2 = c2_counts[i];
if (connect3d[i].nc2) connect3d[i].neigh_c2 = neigh_c2[i];
else connect3d[i].neigh_c2 = nullptr;
connect3d[i].nc3 = c3_counts[i];
if (connect3d[i].nc3) connect3d[i].neigh_c3 = neigh_c3[i];
else connect3d[i].neigh_c3 = nullptr;
}
// initialize connect3d corner neigh vectors for each corner of each tri
// do NOT include self or tris which connect to an edge
// only include tris which only connect at the corner point
int n,medge,skipflag;
for (int i = 0; i < ntris; i++) {
if (connect3d[i].nc1) {
j = 0;
for (m = 0; m < counts[tris[i].p1]; m++) {
n = ctris[tris[i].p1][m];
if (n == i) continue;
skipflag = 0;
for (medge = 0; medge < connect3d[i].ne3; medge++)
if (n == connect3d[i].neigh_e3[medge]) skipflag = 1;
for (medge = 0; medge < connect3d[i].ne1; medge++)
if (n == connect3d[i].neigh_e1[medge]) skipflag = 1;
if (skipflag) continue;
connect3d[i].neigh_c1[j] = n;
j++;
}
}
if (connect3d[i].nc2) {
j = 0;
for (m = 0; m < counts[tris[i].p2]; m++) {
n = ctris[tris[i].p2][m];
if (n == i) continue;
skipflag = 0;
for (medge = 0; medge < connect3d[i].ne1; medge++)
if (n == connect3d[i].neigh_e1[medge]) skipflag = 1;
for (medge = 0; medge < connect3d[i].ne2; medge++)
if (n == connect3d[i].neigh_e2[medge]) skipflag = 1;
if (skipflag) continue;
connect3d[i].neigh_c2[j] = n;
j++;
}
}
if (connect3d[i].nc3) {
j = 0;
for (m = 0; m < counts[tris[i].p3]; m++) {
n = ctris[tris[i].p3][m];
if (n == i) continue;
skipflag = 0;
for (medge = 0; medge < connect3d[i].ne2; medge++)
if (n == connect3d[i].neigh_e2[medge]) skipflag = 1;
for (medge = 0; medge < connect3d[i].ne3; medge++)
if (n == connect3d[i].neigh_e3[medge]) skipflag = 1;
if (skipflag) continue;
connect3d[i].neigh_c3[j] = n;
j++;
}
}
}
// deallocate counts, ctris, c123_counts
memory->destroy(counts);
memory->destroy(ctris);
memory->destroy(c1_counts);
memory->destroy(c2_counts);
memory->destroy(c3_counts);
// return edge count
return nedges;
}

145
src/GRANSURF/fix_surface.h Normal file
View File

@ -0,0 +1,145 @@
/* -*- 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.
------------------------------------------------------------------------- */
#ifndef LMP_FIX_SURFACE_H
#define LMP_FIX_SURFACE_H
#include "fix.h"
#include <map>
#include <tuple>
namespace LAMMPS_NS {
class FixSurface : public Fix {
public:
// connectivity info between lines or tris
struct Connect2d { // line connectivity
// counts, not including self
int np1,np2; // # of lines connected to endpts 1/2
int exposed_pt[2]; // whether p1 and p2 are exposed
// pairs of endpoint connections
tagint *neigh_p1; // indices (or IDs) of lines connected to endpt 1
tagint *neigh_p2; // ditto for connections to endpt 2
int *pwhich_p1; // which point (0,1) on other line is endpt 1
int *pwhich_p2; // ditto for endpt 2
int *nside_p1; // consistency of other line normal
int *nside_p2; // ditto for endpt 2
// SAME_SIDE = 2 normals are on same side of surf
// OPPOSITE_SIDE = opposite sides of surf
int *aflag_p1; // is this line + other line a FLAT,CONCAVE,CONVEX surf
int *aflag_p2; // ditto for endpt 2
// surf = on normal side of this line
// aflag = FLAT, CONCAVE, CONVEX
};
struct Connect3d { // tri connectivity
// counts, not including self
// also not including edge-connected tris for corner pts
int ne1,ne2,ne3; // # of tris connected to edges 1,2,3
int nc1,nc2,nc3; // # of tris connected to corner pts 1,2,3
int exposed_pt[3]; // whether p1, p2, and p3 are exposed
int exposed_edge[3]; // whether e1, e2, and e3 are exposed
// pairs of edge connections
tagint *neigh_e1; // indices (or IDs) of tris connected to edge 1
tagint *neigh_e2; // ditto for connections to edge 2
tagint *neigh_e3; // ditto for connections to edge 3
int *ewhich_e1; // which edge (0,1,2) on other tri shares edge 1
int *ewhich_e2; // ditto for edge 2
int *ewhich_e3; // ditto for edge 3
int *nside_e1; // consistency of other tri normal
int *nside_e2; // ditto for edge 2
int *nside_e3; // ditto for edge 3
// SAME_SIDE = 2 normals are on same side of surf
// OPPOSITE_SIDE = opposite sides of surf
int *aflag_e1; // is this tri + other tri a FLAT,CONCAVE,CONVEX surf
int *aflag_e2; // ditto for edge 2
int *aflag_e3; // ditto for edge 3
// surf = on normal side of this tri
// aflag = FLAT, CONCAVE, CONVEX
// pairs of corner pt connections
tagint *neigh_c1; // indices (or IDs) of tris connected to corner pt 1
tagint *neigh_c2; // ditto for connections to corner pt 2
tagint *neigh_c3; // ditto for connections to corner pt 3
int *cwhich_c1; // which corner pt (0,1,2) on other tri shares corner pt 1
int *cwhich_c2; // ditto for corner pt 2
int *cwhich_c3; // ditto for corner pt 3
int *nside_c1; // consistency of normals, only meaningful for FLAT
int *nside_c2; // ditto for corner 2
int *nside_c3; // ditto for corner 3
int *aflag_c1; // are tris FLAT or CONCAVE (no CONVEX)
int *aflag_c2; // ditto for corner 2
int *aflag_c3; // ditto for corner 3
};
// struct for storing contact data
struct ContactSurf {
int index, neigh_index, type, flag, nside, exposed, concave_contact;
double overlap, overlap_ext, overlap_force;
double weight_ext, weight_convex, weight_overlap, weight_contribution;
double contact[3], dr[3], surf_norm[3], force_norm[3], dr_ext[3];
};
FixSurface(class LAMMPS *, int, char **);
~FixSurface() override;
virtual int setmask() = 0;
virtual void post_constructor() {}
protected:
// surfs read from molecule or STL files
struct Point {
double x[3];
};
struct Line {
int mol,type; // molID and type of the line
int p1,p2; // indices of points in line segment
double norm[3]; // unit normal to line = Z x (p2-p1)
};
struct Tri {
int mol,type; // modID and type of the triangle
int p1,p2,p3; // indices of points in triangle
double norm[3]; // unit normal to tri plane = (p2-p1) x (p3-p1)
};
// methods common to both global and local surfs
void extract_from_molecule(char *, std::map<std::tuple<double,double,double>,int> *,
int &, int &, Point *&,
int &, Line *&, int &, Tri *&);
void extract_from_stlfile(char *, int, std::map<std::tuple<double,double,double>,int> *,
int &, int &, Point *&, int &, Tri *&);
void connectivity2d_global(int, int, Line *, Connect2d *&, int **&, int **&);
int connectivity3d_global(int, int, Tri *, Connect3d *&,
int **&, int **&, int **&,
int **&, int **&, int **&);
};
} // namespace LAMMPS_NS
#endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,244 @@
/* -*- 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 FIX_CLASS
// clang-format off
FixStyle(surface/global,FixSurfaceGlobal)
// clang-format on
#else
#ifndef LMP_FIX_SURFACE_GLOBAL_H
#define LMP_FIX_SURFACE_GLOBAL_H
#include <stdio.h>
#include "fix_surface.h"
#include <map>
#include <unordered_set>
#include <vector>
namespace LAMMPS_NS {
namespace Granular_NS {
class GranularModel;
}
class FixSurfaceGlobal : public FixSurface {
public:
// neighbor lists for spheres with surfs and shear history
// accessed by fix shear/history
class NeighList *list;
class NeighList *listhistory;
FixSurfaceGlobal(class LAMMPS *, int, char **);
~FixSurfaceGlobal();
int setmask();
void post_constructor();
void init() override;
void setup_pre_neighbor() override;
void initial_integrate(int) override;
void pre_neighbor() override;
void post_force(int) override;
int modify_param(int, char **x) override;
void reset_dt() override;
double memory_usage() override;
void *extract(const char *, int &) override;
int image(int *&, double **&) override;
private:
int dimension,firsttime,use_history;
double dt,skin;
double flatthresh;
double Twall;
int tvar;
char *tstr;
// per-surf properties
int maxsurftype;
double **xsurf,**vsurf,**omegasurf,*radsurf;
// granular models
struct ModelTypes {
int plo,phi;
int slo,shi;
};
ModelTypes *modeltypes;
class Granular_NS::GranularModel **models; // list of command-line models
class Granular_NS::GranularModel ***types2model; // model assigned to each particle/surf type pair
int nmodel, maxmodel;
int history, size_history, heat_flag;
// neighbor params
double triggersq;
// settings for motion applied to specific surf types
struct Motion {
int active;
int mstyle;
int vxflag,vyflag,vzflag;
int axflag,ayflag,azflag;
int xvar,yvar,zvar;
int vxvar,vyvar,vzvar;
double vx,vy,vz;
double ax,ay,az;
double dx,dy,dz;
double period;
double point[3],axis[3],unit[3];
double omega;
char *xvarstr,*yvarstr,*zvarstr;
char *vxvarstr,*vyvarstr,*vzvarstr;
double time_origin;
};
struct Motion *motions; // list of defined motions, can be flagged inactive
int nmotion,maxmotion; // # of defined motions versus allocated size
int anymove; // 1 if any surf motion is enabled
int anymove_variable; // 1 if any surf motion is style VARIABLE
int *type2motion; // assingment of surf types (1 to Ntype) to motions
// -1 = non-moving surf type
double **points_original,**xsurf_original;
double **points_lastneigh;
int *pointmove;
// storage of granular history info
class FixNeighHistory *fix_history;
double *zeroes;
// rigid body masses for use in granular interactions
class Fix *fix_rigid; // ptr to rigid body fix, NULL if none
double *mass_rigid; // rigid mass for owned+ghost atoms
int nmax; // allocated size of mass_rigid
// data structs for extracting surfs from molecule or STL files
Point *points; // global list of unique points
Line *lines; // global list of lines
Tri *tris; // global list of tris
int npoints,nlines,ntris; // count of each
int nedges; // count of unique tri edges
int maxpoints; // allocated length of points
int nsurf; // count of lines or tris for 2d/3d
// ragged 2d arrays for 2d connectivity
int **neigh_p1; // indices of other lines connected to endpt 1
int **pwhich_p1; // which point (0/1) on other line is endpt 1
int **nside_p1; // consistency of other line normal
// SAME_SIDE or OPPOSITE_SIDE
int **aflag_p1; // is this line + other line a FLAT,CONCAVE,CONVEX surf
// surf = on normal side of this line
int **neigh_p2; // ditto for connections to endpt 2
int **pwhich_p2; // ditto for endpt 2
int **nside_p2; // ditto for endpt 2
int **aflag_p2; // ditto for endpt 2
// ragged 2d arrays for 3d edge connectivity
int **neigh_e1; // indices of other tris connected to edge 1
int **ewhich_e1; // which edge (0/1/2) on other tri is edge 1
int **nside_e1; // consistency of other tri normal
// SAME_SIDE or OPPOSITE_SIDE
int **aflag_e1; // is this tri + other tri a FLAT,CONCAVE,CONVEX surf
// surf = on normal side of this tri
int **neigh_e2; // ditto for connections to edge 2
int **ewhich_e2; // ditto for edge 2
int **nside_e2; // ditto for edge 2
int **aflag_e2; // ditto for edge 2
int **neigh_e3; // ditto for connections to edge 3
int **ewhich_e3; // ditto for edge 3
int **nside_e3; // ditto for edge 3
int **aflag_e3; // ditto for edge 3
// ragged 2d arrays for 3d corner connectivity
int **neigh_c1; // indices of other tris connected to cpt 1
int **cwhich_c1; // which corner point (0/1/2) on other tri is cpt 1
int **nside_c1; // consistency of other tri normal
// SAME_SIDE or OPPOSITE_SIDE, only meaningful for FLAT
int **aflag_c1; // is this tri + other tri a FLAT or CONCAVE surf
// surf = on normal side of this tri
int **neigh_c2; // indices of other tris connected to cpt 21
int **cwhich_c2; // which corner point (0/1/2) on other tri is cpt 2
int **nside_c2; // ditto for corner 2
int **aflag_c2; // ditto for corner 2
int **neigh_c3; // indices of tris connected to cpt 3
int **cwhich_c3; // which corner point (0/1/2) on other tri is cpt 3
int **nside_c3; // ditto for corner 3
int **aflag_c3; // ditto for corner 3
// per-surface 2d/3d connectivity
Connect2d *connect2d; // 2d connection info
Connect3d *connect3d; // 3d connection info
class ContactSurf *contact_surfs;
int nmax_contact_surfs;
// data for DumpImage
int *imflag;
double **imdata;
int imax;
// private methods
void check2d();
void check3d();
void connectivity2d_complete();
void connectivity3d_complete();
void check_molecules();
void stats2d();
void stats3d();
void surface_attributes();
void surface_connectivity_attributes();
// contact processing and force calculation
void prewalk_connections2d(int, int, std::unordered_set<int> *, std::map<int, int> *);
void prewalk_connections3d(int, int, std::vector<int> *, std::unordered_set<int> *, std::map<int, int> *);
void walk_connections2d(int, std::vector<int> *, std::unordered_set<int> *, std::unordered_set<int> *, std::unordered_set<int> *, std::map<int, int> *);
void walk_connections3d(int, std::vector<int> *, std::unordered_set<int> *, std::unordered_set<int> *, std::unordered_set<int> *, std::map<int, int> *);
void adjust_external_corner(int, int, int, int);
void calculate_2d_forces(std::vector<int> *, std::unordered_set<int> *, std::unordered_set<int> *);
void calculate_3d_forces(std::vector<int> *, std::unordered_set<int> *, std::unordered_set<int> *);
// surface movement
int modify_param_move(Motion *, int, char **);
void move_linear(int, int);
void move_wiggle(int, int);
void move_rotate(int, int);
void move_transrotate(int, int);
void move_rotate_point(int, double *, double *, double, double);
void move_variable(int, int);
};
} // namespace LAMMPS_NS
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,223 @@
/* -*- 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 FIX_CLASS
FixStyle(surface/local,FixSurfaceLocal)
#else
#ifndef LMP_FIX_SURFACE_LOCAL_H
#define LMP_FIX_SURFACE_LOCAL_H
#include <stdio.h>
#include "fix_surface.h"
#include <map>
#include "my_pool_chunk.h"
namespace LAMMPS_NS {
class FixSurfaceLocal : public FixSurface {
public:
// 2d/3d connectivity
Connect2d *connect2d; // 2d connection info
Connect3d *connect3d; // 3d connection info
int nmax_connect; // allocated size of connect2d/3d
FixSurfaceLocal(class LAMMPS *, int, char **);
virtual ~FixSurfaceLocal();
int setmask();
void post_constructor();
void setup_pre_neighbor() override;
void pre_neighbor() override;
void grow_arrays(int) override;
void grow_connect();
void copy_arrays(int, int, int) override;
void set_arrays(int) override;
void clear_bonus() override;
int pack_border(int, int *, double *) override;
int unpack_border(int, int, double *) override;
int pack_exchange(int, double *) override;
int unpack_exchange(int, double *) override;
int pack_forward_comm(int, int *, double *, int, int *) override;
void unpack_forward_comm(int, int, double *) override;
double memory_usage() override;
private:
int dimension,mode;
double flatthresh;
double Twall;
int tvar;
char *tstr;
int ninput;
int *input_modes,*input_stypes;
char **input_sources;
int flag_complete; // whether one-time connectivity info has been calculated
class AtomVecLine *avec_line;
class AtomVecTri *avec_tri;
// memory allocation for tagint and int vectors in Connect 2d/3d
MyPoolChunk<int> *ipc; // allocator for most 2d/3d connectivity vecs
MyPoolChunk<tagint> *tpc; // allocator for tagint 2d/3d connectivity vecs
struct Pool2d {
int neigh_p1,neigh_p2; // pool indices of neigh_p12 chunks
int pwhich_p1,pwhich_p2; // pool indices of pwhich_p12 chunks
int nside_p1,nside_p2; // pool indices of nside_p12 chunks
int aflag_p1,aflag_p2; // pool indices of aflag_p12 chunks
};
struct Pool3d {
int neigh_e1,neigh_e2,neigh_e3; // pool indices of neigh_e123 chunks
int ewhich_e1,ewhich_e2,ewhich_e3; // pool indices of neigh_e123 chunks
int nside_e1,nside_e2,nside_e3; // pool indices of neigh_e123 chunks
int aflag_e1,aflag_e2,aflag_e3; // pool indices of neigh_e123 chunks
int neigh_c1,neigh_c2,neigh_c3; // pool indices of neigh_c123 chunks
int cwhich_c1,cwhich_c2,cwhich_c3; // pool indices of neigh_c123 chunks
int nside_c1,nside_c2,nside_c3; // pool indices of neigh_c123 chunks
int aflag_c1,aflag_c2,aflag_c3; // pool indices of neigh_c123 chunks
};
Pool2d *pool2d; // pool indices of connect2d vectors
Pool3d *pool3d; // pool indices of connect3d vectors
int *atom2connect; // per-atom index into connect 2d/3d vecs, -1 if none
int *connect2atom; // per-connect index into atoms
// ragged 2d arrays for 2d connectivity for global case
tagint **neigh_p1,**neigh_p2;
// ragged 2d arrays for 3d connectivity for global case
tagint **neigh_e1,**neigh_e2,**neigh_e3;
tagint **neigh_c1,**neigh_c2,**neigh_c3;
// size of local/ghost connection info vectors
int nlocal_connect,nghost_connect;
// data structs for calculating global connectivity of line/tri particles
// only used by Rvous comm during setup
struct InRvous { // datum for each bin of each endpt in each line
int proc; // owning proc
int ibin; // bin assignment
int ilocal; // index of line/tri particle
int ipoint; // 0/1 for line endpt, 0/1/2 for tri corner pt
tagint atomID; // ID of line/tri particle
double x[3]; // coords of endpt or corner pt
};
struct OutRvous { // datum returned to owning proc
int ilocal; // index of line/tri particle
int ipoint; // 0/1 for line endpt, 0/1/2 for tri corner pt
tagint atomID; // ID of other line/tri particle with matching point
};
double bboxlo[3],bboxhi[3]; // bounding box around all lines/tris
// data structs for extracting surfs from molecule template or STL file
// these are global data structs for all surfs, including connectivity
// only used during setup, then deleted
Point *points; // global list of points
Line *lines; // global list of lines
Tri *tris; // global list of tris
int npoints,nlines,ntris; // count of each
int maxpoints;
Connect2d *connect2dall; // global connectivity info
Connect3d *connect3dall;
int **plines; // ragged 2d array for global line end pt lists
int **etris; // ragged 2d array for global tri edge lists
int **ctris; // ragged 2d array for global tri corner pt lists
struct OnePt { // one end/corner point of iline/itri in a bin
int iatom; // local index of the line/tri in atom list
int iconnect; // local index of the line/tri in connect list
int ptwhich; // 1/2 for two end pts of line
// 1/2/3 for three corner pts of tri
};
OnePt *pts; // list of pts in all bins
int *bincount; // # of pts per bin
int *binfirst; // index into pts of first pt in bin
int nbins,nbinx,nbiny,nbinz; // # of total bins and in each dim
double invbinx,invbiny,invbinz; // inverse of bin size
double binlo[3],binhi[3]; // bounds of region that is binned
double eps,epssq; // distance tolerance for matching 2 points
// for different lines/tris to be connected
int nmatch; // # of line connections
int nmatch1,nmatch2; // # of tri connections
int errormatch; // # of errors with line connectivity
int errormatch1,errormatch2; // # of errors with tri connectivity
int vecflag; // 0/1 whether tri matching should also
// store variable-length vecs of corner connections
// static variable for Rvous communication callback to access class data
// callback functions for Rvous communication
static FixSurfaceLocal *fptr;
static void linematch(int, char *);
static void trimatch(int, char *);
static int point_match(int, char *, int &, int *&, char *&, void *);
// private methods
// local connectivity build from line or triangle particles
void connectivity2d_local();
void connectivity3d_local();
void calculate_endpts(double **);
int overlap_bins_2d(double *, double, int *);
void calculate_corners(double **);
int overlap_bins_3d(double *, double, int *);
// global connectivity build from molecule or STL files
int check_exist();
void assign2d();
void assign3d();
// finish the connectivity build for both local and global cases
void connectivity2d_complete();
void connectivity3d_complete();
int same_point(double *, double *);
void epsilon_calculate();
void check2d();
void check3d();
void stats2d();
void stats3d();
};
}
#endif
#endif

View File

@ -0,0 +1,284 @@
/* -*- 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.
------------------------------------------------------------------------- */
#include "pair_line_gran_hooke.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "memory.h"
#include "neigh_list.h"
#include "neighbor.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
PairLineGranHooke::PairLineGranHooke(LAMMPS *lmp) :
PairLineGranHookeHistory(lmp)
{
history = 0;
}
/* ---------------------------------------------------------------------- */
void PairLineGranHooke::compute(int eflag, int vflag)
{
int i,j,k,ii,jj,inum,jnum,jflag,kflag,otherflag;
double xtmp,ytmp,ztmp,delx,dely,delz,fx,fy,fz;
double radi,radj,radsum,rsq,r,rinv,rsqinv;
double factor_couple;
double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3;
double wr1,wr2,wr3;
double vtr1,vtr2,vtr3,vrel;
double mi,mj,meff,mline;
double damp,ccel,tor1,tor2,tor3;
double fn,fs,ft,fs1,fs2,fs3;
double dr[3],ds[3],vline[3],contact[3];
int *ilist,*jlist,*numneigh,**firstneigh;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = vflag_fdotr = 0;
// if just reneighbored:
// update rigid body masses for owned/ghost atoms if using FixRigid
// body[i] = which body atom I is in, -1 if none
// mass_body = mass of each rigid body
// forward comm mass_rigid so have it for ghost lines
if (neighbor->ago == 0) {
if (fix_rigid) {
int tmp;
int *body = (int *) fix_rigid->extract("body",tmp);
double *mass_body = (double *) fix_rigid->extract("masstotal",tmp);
if (atom->nmax > nmax) {
memory->destroy(mass_rigid);
nmax = atom->nmax;
memory->create(mass_rigid,nmax,"line/gran:mass_rigid");
}
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++) {
if (body[i] >= 0) mass_rigid[i] = mass_body[body[i]];
else mass_rigid[i] = 0.0;
}
comm->forward_comm(this);
}
connect2d = fsl->connect2d;
}
// pre-calculate current end pts of owned+ghost lines
// only once per reneighbor if surfs not moving
if (surfmoveflag || neighbor->ago == 0) calculate_endpts();
// loop over neighbors of my atoms
// I is always sphere, J is always line
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
double **omega = atom->omega;
double **torque = atom->torque;
double *radius = atom->radius;
double *rmass = atom->rmass;
tagint *tag = atom->tag;
int *line = atom->line;
int *mask = atom->mask;
int nlocal = atom->nlocal;
int newton_pair = force->newton_pair;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
radi = radius[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
radj = radius[j];
radsum = radi + radj;
if (rsq < radsum*radsum) {
// sanity check that neighbor list is built correctly
if (line[i] >= 0 || line[j] < 0)
error->one(FLERR,"Pair line/gran iteraction is invalid");
// check for overlap of sphere and line segment
// jflag = 0 for no overlap, 1 for interior line pt, -1/-2 for end pts
// if no overlap, just continue
// for overlap, also return:
// contact = nearest point on line to sphere center
// dr = vector from contact pt to sphere center
// rsq = squared length of dr
jflag = overlap_sphere_line(i,j,contact,dr,rsq);
if (!jflag) continue;
// if contact = line end pt:
// check overlap status of line adjacent to the end pt
// otherflag = 0/1 for this/other line performs calculation
if (jflag < 0) {
otherflag = endpt_neigh_check(i,j,jflag);
if (otherflag) continue;
}
//printf("CONTACT %ld: %d %d: %d %d\n",update->ntimestep,i,j,
// tag[i],tag[j]);
// NOTE: add logic to check for coupled contacts and weight them
factor_couple = 1.0;
// ds = vector from line center to contact pt
r = sqrt(rsq);
rinv = 1.0/r;
rsqinv = 1.0/rsq;
ds[0] = contact[0] - x[j][0];
ds[1] = contact[1] - x[j][1];
ds[2] = contact[2] - x[j][2];
// vline = velocity of contact pt on line, translation + rotation
vline[0] = v[j][0] + (omega[j][1]*ds[2] - omega[j][2]*ds[1]);
vline[1] = v[j][1] + (omega[j][2]*ds[0] - omega[j][0]*ds[2]);
vline[2] = v[j][2] + (omega[j][0]*ds[1] - omega[j][1]*ds[0]);
// relative translational velocity
vr1 = v[i][0] - vline[0];
vr2 = v[i][1] - vline[1];
vr3 = v[i][2] - vline[2];
// normal component
vnnr = vr1*dr[0] + vr2*dr[1] + vr3*dr[2];
vn1 = dr[0]*vnnr * rsqinv;
vn2 = dr[1]*vnnr * rsqinv;
vn3 = dr[2]*vnnr * rsqinv;
// tangential component
vt1 = vr1 - vn1;
vt2 = vr2 - vn2;
vt3 = vr3 - vn3;
// relative rotational velocity
wr1 = (radi*omega[i][0]) * rinv;
wr2 = (radi*omega[i][1]) * rinv;
wr3 = (radi*omega[i][2]) * rinv;
// meff = effective mass of sphere and line
// if I or J is part of rigid body, use body mass
// if line is not part of rigid body assume infinite mass
meff = rmass[i];
if (fix_rigid) {
if (mass_rigid[i] > 0.0) meff = mass_rigid[i];
if (mass_rigid[j] > 0.0) {
mline = mass_rigid[j];
meff = meff*mline / (meff+mline);
}
}
// normal forces = Hookian contact + normal velocity damping
damp = meff*gamman*vnnr*rsqinv;
ccel = kn*(radi-r)*rinv - damp;
ccel *= factor_couple;
// relative velocities
vtr1 = vt1 - (dr[2]*wr2-dr[1]*wr3);
vtr2 = vt2 - (dr[0]*wr3-dr[2]*wr1);
vtr3 = vt3 - (dr[1]*wr1-dr[0]*wr2);
vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3;
vrel = sqrt(vrel);
// force normalization
fn = xmu * fabs(ccel*r);
fs = meff*gammat*vrel;
if (vrel != 0.0) ft = MIN(fn,fs) / vrel;
else ft = 0.0;
// tangential force due to tangential velocity damping
fs1 = -ft*vtr1 * factor_couple;
fs2 = -ft*vtr2 * factor_couple;
fs3 = -ft*vtr3 * factor_couple;
// total force on sphere
fx = dr[0]*ccel + fs1;
fy = dr[1]*ccel + fs2;
fz = dr[2]*ccel + fs3;
// sphere force & torque
f[i][0] += fx;
f[i][1] += fy;
f[i][2] += fz;
tor1 = rinv * (dr[1]*fs3 - dr[2]*fs2);
tor2 = rinv * (dr[2]*fs1 - dr[0]*fs3);
tor3 = rinv * (dr[0]*fs2 - dr[1]*fs1);
torque[i][0] -= radi*tor1;
torque[i][1] -= radi*tor2;
torque[i][2] -= radi*tor3;
// line force & torque
// torque applied at contact pt
// use total force for torque
// since opposite force is not norm/tang to line at its end pt
f[j][0] -= fx;
f[j][1] -= fy;
f[j][2] -= fz;
torque[j][0] -= ds[1]*fz - ds[2]*fy;
torque[j][1] -= ds[2]*fx - ds[0]*fz;
torque[j][2] -= ds[0]*fy - ds[1]*fx;
if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,
0.0,0.0,fx,fy,fz,dr[0],dr[1],dr[2]);
}
}
}
// NOTE: should there be virial contributions from boundary tris?
if (vflag_fdotr) virial_fdotr_compute();
}

View File

@ -0,0 +1,37 @@
/* -*- 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 PAIR_CLASS
PairStyle(line/gran/hooke,PairLineGranHooke)
#else
#ifndef LMP_PAIR_LINE_GRAN_HOOKE_H
#define LMP_PAIR_LINE_GRAN_HOOKE_H
#include "pair_line_gran_hooke_history.h"
namespace LAMMPS_NS {
class PairLineGranHooke : public PairLineGranHookeHistory {
public:
PairLineGranHooke(class LAMMPS *);
~PairLineGranHooke() {}
void compute(int, int);
};
}
#endif
#endif

View File

@ -0,0 +1,961 @@
/* -*- 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.
------------------------------------------------------------------------- */
#include "pair_line_gran_hooke_history.h"
#include "atom.h"
#include "atom_vec_line.h"
#include "comm.h"
#include "error.h"
#include "fix.h"
#include "fix_dummy.h"
#include "fix_neigh_history.h"
#include "fix_surface_local.h"
#include "force.h"
#include "math_extra.h"
#include "memory.h"
#include "modify.h"
#include "neigh_list.h"
#include "neighbor.h"
#include "update.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
PairLineGranHookeHistory::PairLineGranHookeHistory(LAMMPS *lmp) : Pair(lmp)
{
single_enable = 0;
history = 1;
size_history = 3;
nmax = 0;
mass_rigid = nullptr;
emax = 0;
endpts = nullptr;
// set comm size needed by this Pair if used with fix rigid
comm_forward = 1;
// create dummy fix as placeholder for FixNeighHistory
// this is so final order of Modify:fix will conform to input script
fix_history = nullptr;
fix_dummy = dynamic_cast<FixDummy *>(
modify->add_fix("NEIGH_HISTORY_HHLINE_DUMMY" + std::to_string(instance_me) + " all DUMMY"));
}
/* ---------------------------------------------------------------------- */
PairLineGranHookeHistory::~PairLineGranHookeHistory()
{
delete [] svector;
if (!fix_history)
modify->delete_fix("NEIGH_HISTORY_HHLINE_DUMMY" + std::to_string(instance_me));
else
modify->delete_fix("NEIGH_HISTORY_HHLINE" + std::to_string(instance_me));
if (allocated) {
memory->destroy(setflag);
memory->destroy(cutsq);
delete [] onerad_dynamic;
delete [] onerad_frozen;
delete [] maxrad_dynamic;
delete [] maxrad_frozen;
}
memory->destroy(mass_rigid);
memory->destroy(endpts);
}
/* ---------------------------------------------------------------------- */
void PairLineGranHookeHistory::compute(int eflag, int vflag)
{
int i,j,k,ii,jj,inum,jnum,jflag,kflag,otherflag;
double xtmp,ytmp,ztmp,delx,dely,delz,fx,fy,fz;
double radi,radj,radsum,rsq,r,rinv,rsqinv;
double factor_couple;
double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3;
double wr1,wr2,wr3;
double vtr1,vtr2,vtr3,vrel;
double mi,mj,meff,mline;
double damp,ccel,tor1,tor2,tor3;
double fn,fs,ft,fs1,fs2,fs3;
double shrmag,rsht;
double dr[3],ds[3],vline[3],contact[3];
int *ilist,*jlist,*numneigh,**firstneigh;
int *touch,**firsttouch;
double *shear,*allshear,**firstshear;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = vflag_fdotr = 0;
int shearupdate = 1;
if (update->setupflag) shearupdate = 0;
// if just reneighbored:
// update rigid body info for owned & ghost atoms if using FixRigid masses
// body[i] = which body atom I is in, -1 if none
// mass_body = mass of each rigid body
// forward comm mass_rigid so have it for ghost lines
// also grab current line connectivity info from FixSurfaceLocal
if (neighbor->ago == 0) {
if (fix_rigid) {
int tmp;
int *body = (int *) fix_rigid->extract("body",tmp);
double *mass_body = (double *) fix_rigid->extract("masstotal",tmp);
if (atom->nmax > nmax) {
memory->destroy(mass_rigid);
nmax = atom->nmax;
memory->create(mass_rigid,nmax,"line/gran:mass_rigid");
}
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++)
if (body[i] >= 0)
mass_rigid[i] = mass_body[body[i]];
else
mass_rigid[i] = 0.0;
comm->forward_comm(this);
}
connect2d = fsl->connect2d;
}
// pre-calculate current end pts of owned+ghost lines
// only once per reneighbor if surfs not moving
if (surfmoveflag || neighbor->ago == 0) calculate_endpts();
// loop over neighbors of my atoms
// I is always sphere, J is always line
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
double **omega = atom->omega;
double **torque = atom->torque;
double *radius = atom->radius;
double *rmass = atom->rmass;
tagint *tag = atom->tag;
int *line = atom->line;
int *mask = atom->mask;
int nlocal = atom->nlocal;
int newton_pair = force->newton_pair;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
firsttouch = fix_history->firstflag;
firstshear = fix_history->firstvalue;
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
radi = radius[i];
touch = firsttouch[i];
allshear = firstshear[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
radj = radius[j];
radsum = radi + radj;
/*
if (touch[jj]) {
shear = &allshear[3*jj];
printf("PRE step %ld ij %d %d shear %g %g %g\n",
update->ntimestep,atom->tag[i],tag[j],
shear[0],shear[1],shear[2]);
}
*/
if (rsq >= radsum*radsum) {
// unset non-touching neighbors
// do same below if sphere/line are not overlapping
touch[jj] = 0;
shear = &allshear[3*jj];
shear[0] = 0.0;
shear[1] = 0.0;
shear[2] = 0.0;
} else {
// sanity check that neighbor list is built correctly
if (line[i] >= 0 || line[j] < 0)
error->one(FLERR,"Pair line/gran iteraction is invalid");
// check for overlap of sphere and line segment
// jflag = 0 for no overlap, 1 for interior line pt, -1/-2 for end pts
// if no overlap, just continue
// for overlap, also return:
// contact = nearest point on line to sphere center
// dr = vector from contact pt to sphere center
// rsq = squared length of dr
jflag = overlap_sphere_line(i,j,contact,dr,rsq);
if (!jflag) {
touch[jj] = 0;
shear = &allshear[3*jj];
shear[0] = 0.0;
shear[1] = 0.0;
shear[2] = 0.0;
continue;
}
// if contact = line end pt:
// check overlap status of line adjacent to the end pt
// otherflag = 0/1 for this/other line performs calculation
if (jflag < 0) {
otherflag = endpt_neigh_check(i,j,jflag);
if (otherflag) continue;
}
// NOTE: add logic to persist shear history if contact has changed
// NOTE: add logic to check for coupled contacts and weight them
factor_couple = 1.0;
// ds = vector from line center to contact pt
r = sqrt(rsq);
rinv = 1.0/r;
rsqinv = 1.0/rsq;
ds[0] = contact[0] - x[j][0];
ds[1] = contact[1] - x[j][1];
ds[2] = contact[2] - x[j][2];
// vline = velocity of contact pt on line, translation + rotation
vline[0] = v[j][0] + (omega[j][1]*ds[2] - omega[j][2]*ds[1]);
vline[1] = v[j][1] + (omega[j][2]*ds[0] - omega[j][0]*ds[2]);
vline[2] = v[j][2] + (omega[j][0]*ds[1] - omega[j][1]*ds[0]);
// relative translational velocity
vr1 = v[i][0] - vline[0];
vr2 = v[i][1] - vline[1];
vr3 = v[i][2] - vline[2];
// normal component
vnnr = vr1*dr[0] + vr2*dr[1] + vr3*dr[2];
vn1 = dr[0]*vnnr * rsqinv;
vn2 = dr[1]*vnnr * rsqinv;
vn3 = dr[2]*vnnr * rsqinv;
// tangential component
vt1 = vr1 - vn1;
vt2 = vr2 - vn2;
vt3 = vr3 - vn3;
// relative rotational velocity
wr1 = (radi*omega[i][0]) * rinv;
wr2 = (radi*omega[i][1]) * rinv;
wr3 = (radi*omega[i][2]) * rinv;
// meff = effective mass of sphere and line
// if I or J is part of rigid body, use body mass
// if line is not part of rigid body assume infinite mass
meff = rmass[i];
if (fix_rigid) {
if (mass_rigid[i] > 0.0) meff = mass_rigid[i];
if (mass_rigid[j] > 0.0) {
mline = mass_rigid[j];
meff = meff*mline / (meff+mline);
}
}
// normal forces = Hookian contact + normal velocity damping
damp = meff*gamman*vnnr*rsqinv;
ccel = kn*(radi-r)*rinv - damp;
ccel *= factor_couple;
// relative velocities
vtr1 = vt1 - (dr[2]*wr2-dr[1]*wr3);
vtr2 = vt2 - (dr[0]*wr3-dr[2]*wr1);
vtr3 = vt3 - (dr[1]*wr1-dr[0]*wr2);
vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3;
vrel = sqrt(vrel);
// shear history effects
touch[jj] = 1;
shear = &allshear[3*jj];
if (shearupdate) {
shear[0] += vtr1*dt;
shear[1] += vtr2*dt;
shear[2] += vtr3*dt;
}
shrmag = sqrt(shear[0]*shear[0] + shear[1]*shear[1] +
shear[2]*shear[2]);
// rotate shear displacements
rsht = shear[0]*delx + shear[1]*dely + shear[2]*delz;
rsht *= rsqinv;
if (shearupdate) {
shear[0] -= rsht*delx;
shear[1] -= rsht*dely;
shear[2] -= rsht*delz;
}
// tangential force due to tangential velocity damping
fs1 = - (kt*shear[0] + meff*gammat*vtr1) * factor_couple;;
fs2 = - (kt*shear[1] + meff*gammat*vtr2) * factor_couple;;
fs3 = - (kt*shear[2] + meff*gammat*vtr3) * factor_couple;;
// rescale frictional displacements and forces if needed
fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3);
fn = xmu * fabs(ccel*r);
if (fs > fn) {
if (shrmag != 0.0) {
shear[0] = (fn/fs) * (shear[0] + meff*gammat*vtr1/kt) -
meff*gammat*vtr1/kt;
shear[1] = (fn/fs) * (shear[1] + meff*gammat*vtr2/kt) -
meff*gammat*vtr2/kt;
shear[2] = (fn/fs) * (shear[2] + meff*gammat*vtr3/kt) -
meff*gammat*vtr3/kt;
fs1 *= fn/fs;
fs2 *= fn/fs;
fs3 *= fn/fs;
} else fs1 = fs2 = fs3 = 0.0;
}
// total force on sphere
fx = dr[0]*ccel + fs1;
fy = dr[1]*ccel + fs2;
fz = dr[2]*ccel + fs3;
// sphere force & torque
f[i][0] += fx;
f[i][1] += fy;
f[i][2] += fz;
tor1 = rinv * (dr[1]*fs3 - dr[2]*fs2);
tor2 = rinv * (dr[2]*fs1 - dr[0]*fs3);
tor3 = rinv * (dr[0]*fs2 - dr[1]*fs1);
torque[i][0] -= radi*tor1;
torque[i][1] -= radi*tor2;
torque[i][2] -= radi*tor3;
// line force & torque
// torque applied at contact pt
// use total force for torque
// since opposite force is not norm/tang to line at its end pt
f[j][0] -= fx;
f[j][1] -= fy;
f[j][2] -= fz;
torque[j][0] -= ds[1]*fz - ds[2]*fy;
torque[j][1] -= ds[2]*fx - ds[0]*fz;
torque[j][2] -= ds[0]*fy - ds[1]*fx;
if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,
0.0,0.0,fx,fy,fz,dr[0],dr[1],dr[2]);
}
/*
if (touch[jj]) {
shear = &allshear[3*jj];
printf("POST step %ld ij %d %d shear %g %g %g\n",
update->ntimestep,atom->tag[i],tag[j],
shear[0],shear[1],shear[2]);
}
*/
}
}
// NOTE: should there be virial contributions from boundary tris?
if (vflag_fdotr) virial_fdotr_compute();
}
/* ----------------------------------------------------------------------
allocate all arrays
------------------------------------------------------------------------- */
void PairLineGranHookeHistory::allocate()
{
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"pair:setflag");
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
setflag[i][j] = 0;
memory->create(cutsq,n+1,n+1,"pair:cutsq");
onerad_dynamic = new double[n+1];
onerad_frozen = new double[n+1];
maxrad_dynamic = new double[n+1];
maxrad_frozen = new double[n+1];
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
void PairLineGranHookeHistory::settings(int narg, char **arg)
{
if (narg != 6 && narg != 7) error->all(FLERR,"Illegal pair_style command");
kn = utils::numeric(FLERR,arg[0],false,lmp);
if (strcmp(arg[1],"NULL") == 0)
kt = kn * 2.0/7.0;
else
kt = utils::numeric(FLERR,arg[1],false,lmp);
gamman = utils::numeric(FLERR,arg[2],false,lmp);
if (strcmp(arg[3],"NULL") == 0)
gammat = 0.5 * gamman;
else
gammat = utils::numeric(FLERR,arg[3],false,lmp);
xmu = utils::numeric(FLERR,arg[4],false,lmp);
dampflag = utils::inumeric(FLERR,arg[5],false,lmp);
if (dampflag == 0) gammat = 0.0;
limit_damping = 0;
if (narg == 7) {
if (strcmp(arg[6], "limit_damping") == 0)
limit_damping = 1;
else
error->all(FLERR, "Illegal pair_style command");
}
if (kn < 0.0 || kt < 0.0 || gamman < 0.0 || gammat < 0.0 ||
xmu < 0.0 || xmu > 10000.0 || dampflag < 0 || dampflag > 1)
error->all(FLERR,"Illegal pair_style command");
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairLineGranHookeHistory::coeff(int narg, char **arg)
{
if (narg > 2) error->all(FLERR,"Incorrect args for pair coefficients");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error);
utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
setflag[i][j] = 1;
count++;
}
}
if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
init specific to this pair style
------------------------------------------------------------------------- */
void PairLineGranHookeHistory::init_style()
{
int i;
dt = update->dt;
// error and warning checks
avec = (AtomVecLine *) atom->style_match("line");
if (!avec) error->all(FLERR,"Pair line/gran requires atom style line");
if (!atom->radius_flag || !atom->rmass_flag)
error->all(FLERR, "Pair line/gran requires atom attributes radius, rmass");
if (!force->newton_pair)
error->all(FLERR,"Pair style line/gran requires newton pair on");
if (comm->ghost_velocity == 0)
error->all(FLERR,"Pair line/gran requires ghost atoms store velocity");
// need a granular neighbor list
if (history)
neighbor->add_request(this,NeighConst::REQ_SIZE | NeighConst::REQ_ONESIDED |
NeighConst::REQ_HISTORY);
else
neighbor->add_request(this, NeighConst::REQ_SIZE | NeighConst::REQ_ONESIDED);
// if history is stored and first init, create Fix to store history
// it replaces FixDummy, created in the constructor
// this is so its order in the fix list is preserved
if (history && (fix_history == nullptr)) {
auto cmd = fmt::format("NEIGH_HISTORY_HHLINE{} all NEIGH_HISTORY {} onesided", instance_me, size_history);
fix_history = dynamic_cast<FixNeighHistory *>(
modify->replace_fix("NEIGH_HISTORY_HHLINE_DUMMY" + std::to_string(instance_me), cmd, 1));
fix_history->pair = this;
}
// set ptr to FixSurfaceLocal for surf connectivity info
fsl = nullptr;
for (int m = 0; m < modify->nfix; m++) {
if (strcmp(modify->fix[m]->style,"surface/local") == 0) {
if (fsl)
error->all(FLERR,"Pair line/gran requires single fix surface/local");
fsl = (FixSurfaceLocal *) modify->fix[m];
}
}
if (!fsl) error->all(FLERR,"Pair line/gran requires a fix surface/local");
// surfmoveflag = 1 if surfs may move at every step
// yes if fix move exists and its group includes lines
// NOTE: are there other conditions, like fix deform or fix npt?
surfmoveflag = 0;
for (int m = 0; m < modify->nfix; m++) {
if (strcmp(modify->fix[m]->style,"move") == 0) {
int groupbit = modify->fix[m]->groupbit;
int *line = atom->line;
int *mask = atom->mask;
int nlocal = atom->nlocal;
int flag = 0;
for (int i = 0; i < nlocal; i++) {
if (line[i] < 0) continue;
if (mask[i] & groupbit) flag = 1;
}
int any;
MPI_Allreduce(&flag,&any,1,MPI_INT,MPI_SUM,world);
if (any) surfmoveflag = 1;
}
}
// check for FixFreeze and set freeze_group_bit
auto fixlist = modify->get_fix_by_style("^freeze");
if (fixlist.size() == 0)
freeze_group_bit = 0;
else if (fixlist.size() > 1)
error->all(FLERR, "Only one fix freeze command at a time allowed");
else
freeze_group_bit = fixlist.front()->groupbit;
// check for FixRigid so can extract rigid body masses
fix_rigid = nullptr;
for (const auto &ifix : modify->get_fix_list()) {
if (ifix->rigid_flag) {
if (fix_rigid)
error->all(FLERR, "Only one fix rigid command at a time allowed");
else
fix_rigid = ifix;
}
}
// check for FixPour and FixDeposit so can extract particle radii
auto pours = modify->get_fix_by_style("^pour");
auto deps = modify->get_fix_by_style("^deposit");
// set maxrad_dynamic and maxrad_frozen for each type
// include future FixPour and FixDeposit particles as dynamic
// lines cannot be frozen
int itype;
for (i = 1; i <= atom->ntypes; i++) {
onerad_dynamic[i] = onerad_frozen[i] = 0.0;
for (auto &ipour : pours) {
itype = i;
double maxrad = *((double *) ipour->extract("radius", itype));
if (maxrad > 0.0) onerad_dynamic[i] = maxrad;
}
for (auto &idep : deps) {
itype = i;
double maxrad = *((double *) idep->extract("radius", itype));
if (maxrad > 0.0) onerad_dynamic[i] = maxrad;
}
}
double *radius = atom->radius;
int *line = atom->line;
int *mask = atom->mask;
int *type = atom->type;
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++) {
if (line[i] >= 0)
onerad_dynamic[type[i]] = MAX(onerad_dynamic[type[i]],radius[i]);
else {
if (mask[i] & freeze_group_bit)
onerad_frozen[type[i]] = MAX(onerad_frozen[type[i]],radius[i]);
else
onerad_dynamic[type[i]] = MAX(onerad_dynamic[type[i]],radius[i]);
}
}
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);
// set fix which stores history info
if (history) {
fix_history = dynamic_cast<FixNeighHistory *>(
modify->get_fix_by_id("NEIGH_HISTORY_HHLINE" + std::to_string(instance_me)));
if (!fix_history) error->all(FLERR, "Could not find pair fix neigh history ID");
}
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairLineGranHookeHistory::init_one(int i, int j)
{
if (!allocated) allocate();
// cutoff = sum of max I,J radii for
// dynamic/dynamic & dynamic/frozen interactions, but not frozen/frozen
double cutoff = maxrad_dynamic[i]+maxrad_dynamic[j];
cutoff = MAX(cutoff,maxrad_frozen[i]+maxrad_dynamic[j]);
cutoff = MAX(cutoff,maxrad_dynamic[i]+maxrad_frozen[j]);
return cutoff;
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLineGranHookeHistory::write_restart(FILE *fp)
{
write_restart_settings(fp);
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++)
fwrite(&setflag[i][j],sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLineGranHookeHistory::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
if (me == 0)
utils::sfread(FLERR,&setflag[i][j],sizeof(int),1,fp,nullptr,error);
MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairLineGranHookeHistory::write_restart_settings(FILE *fp)
{
fwrite(&kn,sizeof(double),1,fp);
fwrite(&kt,sizeof(double),1,fp);
fwrite(&gamman,sizeof(double),1,fp);
fwrite(&gammat,sizeof(double),1,fp);
fwrite(&xmu,sizeof(double),1,fp);
fwrite(&dampflag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairLineGranHookeHistory::read_restart_settings(FILE *fp)
{
if (comm->me == 0) {
utils::sfread(FLERR,&kn,sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&kt,sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&gamman,sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&gammat,sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&xmu,sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&dampflag,sizeof(int),1,fp,nullptr,error);
}
MPI_Bcast(&kn,1,MPI_DOUBLE,0,world);
MPI_Bcast(&kt,1,MPI_DOUBLE,0,world);
MPI_Bcast(&gamman,1,MPI_DOUBLE,0,world);
MPI_Bcast(&gammat,1,MPI_DOUBLE,0,world);
MPI_Bcast(&xmu,1,MPI_DOUBLE,0,world);
MPI_Bcast(&dampflag,1,MPI_INT,0,world);
}
/* ---------------------------------------------------------------------- */
void PairLineGranHookeHistory::reset_dt()
{
dt = update->dt;
}
/* ---------------------------------------------------------------------- */
int PairLineGranHookeHistory::pack_forward_comm(int n, int *list, double *buf,
int pbc_flag, int *pbc)
{
int i,j,m;
m = 0;
for (i = 0; i < n; i++) {
j = list[i];
buf[m++] = mass_rigid[j];
}
return m;
}
/* ---------------------------------------------------------------------- */
void PairLineGranHookeHistory::unpack_forward_comm(int n, int first,
double *buf)
{
int i,m,last;
m = 0;
last = first + n;
for (i = first; i < last; i++)
mass_rigid[i] = buf[m++];
}
/* ----------------------------------------------------------------------
memory usage of local atom-based arrays
------------------------------------------------------------------------- */
double PairLineGranHookeHistory::memory_usage()
{
double bytes = nmax * sizeof(double);
bytes = emax*4 * sizeof(double); // endpts array for line particles
return bytes;
}
// ----------------------------------------------------------------------
// ----------------------------------------------------------------------
// private methods specific to PairLineGranHookeHistory
// ----------------------------------------------------------------------
// ----------------------------------------------------------------------
/* ----------------------------------------------------------------------
compute current end points of owned and ghost lines
nothing computed for particles that are not lines
------------------------------------------------------------------------- */
void PairLineGranHookeHistory::calculate_endpts()
{
int i,m;
double length,theta,dx,dy;
double *endpt;
// realloc endpts array if necssary
if (fsl->nmax_connect > emax) {
memory->destroy(endpts);
emax = fsl->nmax_connect;
memory->create(endpts,emax,4,"line/gran:endpts");
}
AtomVecLine::Bonus *bonus = avec->bonus;
double **x = atom->x;
int *line = atom->line;
int n = atom->nlocal + atom->nghost;
for (i = 0; i < n; i++) {
if (line[i] < 0) continue;
m = line[i];
length = bonus[m].length;
theta = bonus[m].theta;
dx = 0.5*length*cos(theta);
dy = 0.5*length*sin(theta);
endpt = endpts[m];
endpt[0] = x[i][0] - dx;
endpt[1] = x[i][1] - dy;
endpt[2] = x[i][0] + dx;
endpt[3] = x[i][1] + dy;
}
}
/* ----------------------------------------------------------------------
compute nearest point between sphere I and line segment J
return 0 if no contact, 1 if pt is interior to line segment,
-1/-2 if pt = line end point 1/2
if contact, return:
pt = point on line segment
r = vector from pt to sphere center
rsq = squared length of r
based on geometry.cpp::distsq_point_line() in SPARTA
------------------------------------------------------------------------- */
int PairLineGranHookeHistory::overlap_sphere_line(int i, int j, double *pt,
double *r, double &rsq)
{
double p1[3],p2[3];
double a[3],b[3];
// P1,P2 = end points of line segment
double *endpt = endpts[atom->line[j]];
p1[0] = endpt[0];
p1[1] = endpt[1];
p1[2] = 0.0;
p2[0] = endpt[2];
p2[1] = endpt[3];
p2[2] = 0.0;
// A = vector from P1 to Xsphere
// B = vector from P1 to P2
double *xsphere = atom->x[i];
MathExtra::sub3(xsphere,p1,a);
MathExtra::sub3(p2,p1,b);
// alpha = fraction of distance from P1 to P2 that P is located at
// P = projected point on infinite line that is nearest to Xsphere center
// alpha can be any value
double alpha = MathExtra::dot3(a,b) / MathExtra::lensq3(b);
// pt = point on line segment that is nearest to Xsphere center
// if alpha <= 0.0, pt = P1, ptflag = -1
// if alpha >= 1.0, pt = P2, ptflag = -2
// else pt = P1 + alpha*(P2-P1), ptflag = 1
int ptflag;
if (alpha <= 0.0) {
ptflag = -1;
pt[0] = p1[0];
pt[1] = p1[1];
pt[2] = p1[2];
} else if (alpha >= 1.0) {
ptflag = -2;
pt[0] = p2[0];
pt[1] = p2[1];
pt[2] = p2[2];
} else {
ptflag = 1;
pt[0] = p1[0] + alpha*b[0];
pt[1] = p1[1] + alpha*b[1];
pt[2] = p1[2] + alpha*b[2];
}
// R = vector from nearest pt on line to Xsphere center
// return ptflag if len(R) < sphere radius
// else no contact, return 0
double radsq = atom->radius[i] * atom->radius[i];
MathExtra::sub3(xsphere,pt,r);
rsq = MathExtra::lensq3(r);
if (rsq < radsq) return ptflag;
return 0;
}
/* ----------------------------------------------------------------------
check overlap status of sphere I with line J versus any neighbor lines K
I overlaps J at jflag = -1,-2 for two end points
return 0 if this line J performs computation
return 1 if some other line K performs computation
------------------------------------------------------------------------- */
int PairLineGranHookeHistory::endpt_neigh_check(int i, int j, int jflag)
{
// ncheck = # of neighbor lines to check
// neighs = indices of neighbor lines (including self)
int ncheck;
int *neighs;
int jc = atom->line[j];
if (jflag == -1) {
if (connect2d[jc].np1 == 1) return 0;
ncheck = connect2d[jc].np1;
neighs = connect2d[jc].neigh_p1;
} else if (jflag == -2) {
if (connect2d[jc].np2 == 1) return 0;
ncheck = connect2d[jc].np2;
neighs = connect2d[jc].neigh_p2;
}
// check overlap with each neighbor line
// if any line has interior overlap, another line computes
// if all lines have endpt overlap, line with lowest ID computes
// kflag = overlap status with neighbor line
// kflag = 1, interior overlap
// kflag = 0, no overlap, should not be possible
// kflag < 0, overlap at endpt
tagint *tag = atom->tag;
int k,kflag;
double rsq;
double dr[3],contact[3];
int linemin = tag[j];
for (int m = 0; m < ncheck; m++) {
if (neighs[m] == tag[j]) continue; // skip self line
k = atom->map(neighs[m]);
if (k < 0) error->one(FLERR,"Pair line/gran neighbor line is missing");
kflag = overlap_sphere_line(i,k,contact,dr,rsq);
if (kflag > 0) return 1;
if (kflag == 0) error->one(FLERR,"Fix surface/global neighbor line overlap is invalid");
linemin = MIN(linemin,tag[k]);
}
if (tag[j] == linemin) return 0;
return 1;
}

View File

@ -0,0 +1,93 @@
/* -*- 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 PAIR_CLASS
PairStyle(line/gran/hooke/history,PairLineGranHookeHistory)
#else
#ifndef LMP_PAIR_LINE_GRAN_HOOKE_HISTORY_H
#define LMP_PAIR_LINE_GRAN_HOOKE_HISTORY_H
#include "pair.h"
#include "fix_surface_local.h"
namespace LAMMPS_NS {
class PairLineGranHookeHistory : public Pair {
public:
PairLineGranHookeHistory(class LAMMPS *);
virtual ~PairLineGranHookeHistory();
virtual void compute(int, int);
void settings(int, char **);
void coeff(int, char **);
void init_style();
double init_one(int, int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_restart_settings(FILE *);
void read_restart_settings(FILE *);
void reset_dt();
virtual int pack_forward_comm(int, int *, double *, int, int *);
virtual void unpack_forward_comm(int, int, double *);
double memory_usage();
protected:
double kn,kt,gamman,gammat,xmu;
int dampflag,limit_damping;
double dt;
int freeze_group_bit;
int history;
int neighprev;
double *onerad_dynamic,*onerad_frozen;
double *maxrad_dynamic,*maxrad_frozen;
int size_history;
int surfmoveflag;
class FixDummy *fix_dummy;
class FixNeighHistory *fix_history;
int emax; // allocated size of endpt list
double **endpts; // current end pts of each line
// Nall x 4 array for local + ghost atoms
// ptr to AtomVec for bonus line info
class AtomVecLine *avec;
// line connectivity info for owned and ghost lines
class FixSurfaceLocal *fsl; // ptr to surface/local fix
FixSurfaceLocal::Connect2d *connect2d; // ptr to connectivity info
// storage of rigid body masses for use in granular interactions
class Fix *fix_rigid; // ptr to rigid body fix, NULL if none
double *mass_rigid; // rigid mass for owned+ghost atoms
int nmax; // allocated size of mass_rigid
// local methods
void allocate();
void calculate_endpts();
int overlap_sphere_line(int, int, double *, double *, double &);
int endpt_neigh_check(int, int, int);
};
}
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,87 @@
/* -*- 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 PAIR_CLASS
PairStyle(surf/granular,PairSurfGranular)
#else
#ifndef LMP_PAIR_SURF_GRANULAR_H
#define LMP_PAIR_SURF_GRANULAR_H
#include "pair_granular.h"
#include "fix_surface_local.h"
#include "fix_surface.h"
#include <map>
#include <unordered_set>
#include <vector>
namespace LAMMPS_NS {
class PairSurfGranular : public PairGranular {
public:
PairSurfGranular(class LAMMPS *);
~PairSurfGranular() override;
void compute(int, int) override;
void init_style() override;
double memory_usage() override;
protected:
int surfmoveflag;
int style;
int emax; // allocated size of endpt list
double **endpts; // current end pts of each line
// Nall x 6 array for local + ghost atoms
int cmax; // allocated size of corners
double **corners; // current corner pts and norm of each tri
// Nall x 12 array for local + ghost atoms
// ptr to AtomVec for bonus info
class AtomVecLine *avecline;
class AtomVecTri *avectri;
// line connectivity info for owned and ghost lines
class FixSurfaceLocal *fsl; // ptr to surface/local fix
FixSurfaceLocal::Connect2d *connect2d; // ptr to connectivity info
FixSurfaceLocal::Connect3d *connect3d; // ptr to connectivity info
MyPoolChunk<int> *tcp; // allocator for connectivity info
class FixSurface::ContactSurf *contact_surfs;
int nmax_contact_surfs;
// lines and tris
void calculate_endpts();
void calculate_corners();
void corners2norm(double *, double *);
// contact processing and force calculation
void prewalk_connections2d(int, int, std::unordered_set<int> *, std::map<int, int> *);
void prewalk_connections3d(int, int, std::vector<int> *, std::unordered_set<int> *, std::map<int, int> *);
void walk_connections2d(int, std::vector<int> *, std::unordered_set<int> *, std::unordered_set<int> *, std::unordered_set<int> *, std::map<int, int> *);
void walk_connections3d(int, std::vector<int> *, std::unordered_set<int> *, std::unordered_set<int> *, std::unordered_set<int> *, std::map<int, int> *);
void adjust_external_corner(int, int, int, int);
void calculate_2d_forces(std::vector<int> *, std::unordered_set<int> *, std::unordered_set<int> *);
void calculate_3d_forces(std::vector<int> *, std::unordered_set<int> *, std::unordered_set<int> *);
};
} // namespace LAMMPS_NS
#endif
#endif

View File

@ -0,0 +1,286 @@
/* -*- 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.
------------------------------------------------------------------------- */
#include "pair_tri_gran_hooke.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "memory.h"
#include "neigh_list.h"
#include "neighbor.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
PairTriGranHooke::PairTriGranHooke(LAMMPS *lmp) : PairTriGranHookeHistory(lmp)
{
history = 0;
}
/* ---------------------------------------------------------------------- */
void PairTriGranHooke::compute(int eflag, int vflag)
{
int i,j,k,ii,jj,inum,jnum,isphere,itri,jflag,kflag,otherflag;
double xtmp,ytmp,ztmp,delx,dely,delz,fx,fy,fz;
double radi,radj,radsum,radsphere,rsq,r,rinv,rsqinv;
double factor_couple;
double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3;
double wr1,wr2,wr3;
double vtr1,vtr2,vtr3,vrel;
double mi,mj,meff,mtri;
double damp,ccel,tor1,tor2,tor3;
double fn,fs,ft,fs1,fs2,fs3;
double dr[3],ds[3],vtri[3],contact[3];
int *ilist,*jlist,*numneigh,**firstneigh;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = vflag_fdotr = 0;
// if just reneighbored:
// update rigid body masses for owned/ghost atoms if using FixRigid
// body[i] = which body atom I is in, -1 if none
// mass_body = mass of each rigid body
// forward comm mass_rigid so have it for ghost lines
if (neighbor->ago == 0) {
if (fix_rigid) {
int tmp;
int *body = (int *) fix_rigid->extract("body",tmp);
double *mass_body = (double *) fix_rigid->extract("masstotal",tmp);
if (atom->nmax > nmax) {
memory->destroy(mass_rigid);
nmax = atom->nmax;
memory->create(mass_rigid,nmax,"line/gran:mass_rigid");
}
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++) {
if (body[i] >= 0) mass_rigid[i] = mass_body[body[i]];
else mass_rigid[i] = 0.0;
}
comm->forward_comm(this);
}
connect3d = fsl->connect3d;
}
// pre-calculate current end pts of owned+ghost lines
// only once per reneighbor if surfs not moving
if (surfmoveflag || neighbor->ago == 0) calculate_corners();
// loop over neighbors of my atoms
// I is always sphere, J is always tri
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
double **omega = atom->omega;
double **torque = atom->torque;
double *radius = atom->radius;
double *rmass = atom->rmass;
tagint *tag = atom->tag;
int *tri = atom->tri;
int *mask = atom->mask;
int nlocal = atom->nlocal;
int newton_pair = force->newton_pair;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
radi = radius[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
radj = radius[j];
radsum = radi + radj;
if (rsq < radsum*radsum) {
// sanity check that neighbor list is built correctly
if (tri[i] >= 0 || tri[j] < 0)
error->one(FLERR,"Pair tri/gran iteraction is invalid");
// check for overlap of sphere and triangle
// jflag = 0 for no overlap, 1 for interior line pt,
// -1/-2/-3 for 3 edges, -4/-5/-6 for 3 corner pts
// if no overlap, just continue
// for overlap, also returns:
// contact = nearest point on tri to sphere center
// dr = vector from contact pt to sphere center
// rsq = squared length of dr
jflag = overlap_sphere_tri(i,j,contact,dr,rsq);
if (!jflag) continue;
// if contact = tri edge or corner:
// check status of the tri(s) adjacent to edge or corner
// otherflag = 0/1 for this/other tri performs calculation
if (jflag < 0) {
if (jflag >= -3) {
otherflag = edge_neigh_check(i,j,jflag);
if (otherflag) continue;
} else {
otherflag = corner_neigh_check(i,j,jflag);
if (otherflag) continue;
}
}
// NOTE: add logic to check for coupled contacts and weight them
factor_couple = 1.0;
// ds = vector from tri center to contact pt
r = sqrt(rsq);
rinv = 1.0/r;
rsqinv = 1.0/rsq;
ds[0] = contact[0] - x[j][0];
ds[1] = contact[1] - x[j][1];
ds[2] = contact[2] - x[j][2];
// vtri = velocity of contact pt on tri, translation + rotation
// omega for tri was set from angmom by calculate_corners()
vtri[0] = v[j][0] + (omega[j][1]*ds[2] - omega[j][2]*ds[1]);
vtri[1] = v[j][1] + (omega[j][2]*ds[0] - omega[j][0]*ds[2]);
vtri[2] = v[j][2] + (omega[j][0]*ds[1] - omega[j][1]*ds[0]);
// relative translational velocity
vr1 = v[i][0] - vtri[0];
vr2 = v[i][1] - vtri[1];
vr3 = v[i][2] - vtri[2];
// normal component
vnnr = vr1*dr[0] + vr2*dr[1] + vr3*dr[2];
vn1 = dr[0]*vnnr * rsqinv;
vn2 = dr[1]*vnnr * rsqinv;
vn3 = dr[2]*vnnr * rsqinv;
// tangential component
vt1 = vr1 - vn1;
vt2 = vr2 - vn2;
vt3 = vr3 - vn3;
// relative rotational velocity
wr1 = (radi*omega[i][0]) * rinv;
wr2 = (radi*omega[i][1]) * rinv;
wr3 = (radi*omega[i][2]) * rinv;
// meff = effective mass of sphere and tri
// if I or J is part of rigid body, use body mass
// if tri is not part of rigid body assume infinite mass
meff = rmass[i];
if (fix_rigid) {
if (mass_rigid[i] > 0.0) meff = mass_rigid[i];
if (mass_rigid[j] > 0.0) {
mtri = mass_rigid[j];
meff = meff*mtri / (meff+mtri);
}
}
// normal forces = Hookian contact + normal velocity damping
damp = meff*gamman*vnnr*rsqinv;
ccel = kn*(radi-r)*rinv - damp;
ccel *= factor_couple;
// relative velocities
vtr1 = vt1 - (dr[2]*wr2-dr[1]*wr3);
vtr2 = vt2 - (dr[0]*wr3-dr[2]*wr1);
vtr3 = vt3 - (dr[1]*wr1-dr[0]*wr2);
vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3;
vrel = sqrt(vrel);
// force normalization
fn = xmu * fabs(ccel*r);
fs = meff*gammat*vrel;
if (vrel != 0.0) ft = MIN(fn,fs) / vrel;
else ft = 0.0;
// tangential force due to tangential velocity damping
fs1 = -ft*vtr1 * factor_couple;
fs2 = -ft*vtr2 * factor_couple;
fs3 = -ft*vtr3 * factor_couple;
// total force on sphere
fx = dr[0]*ccel + fs1;
fy = dr[1]*ccel + fs2;
fz = dr[2]*ccel + fs3;
// sphere force & torque
f[i][0] += fx;
f[i][1] += fy;
f[i][2] += fz;
tor1 = rinv * (dr[1]*fs3 - dr[2]*fs2);
tor2 = rinv * (dr[2]*fs1 - dr[0]*fs3);
tor3 = rinv * (dr[0]*fs2 - dr[1]*fs1);
torque[i][0] -= radi*tor1;
torque[i][1] -= radi*tor2;
torque[i][2] -= radi*tor3;
// tri force & torque
// torque applied at contact pt
// use total force for torque
// since opposite force is not norm/tang to tri at its contact pt
f[j][0] -= fx;
f[j][1] -= fy;
f[j][2] -= fz;
torque[j][0] -= ds[1]*fz - ds[2]*fy;
torque[j][1] -= ds[2]*fx - ds[0]*fz;
torque[j][2] -= ds[0]*fy - ds[1]*fx;
if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,
0.0,0.0,fx,fy,fz,dr[0],dr[1],dr[2]);
}
}
}
// NOTE: should there be virial contributions from boundary lines?
if (vflag_fdotr) virial_fdotr_compute();
}

View File

@ -0,0 +1,37 @@
/* -*- 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 PAIR_CLASS
PairStyle(tri/gran/hooke,PairTriGranHooke)
#else
#ifndef LMP_PAIR_TRI_GRAN_HOOKE_H
#define LMP_PAIR_TRI_GRAN_HOOKE_H
#include "pair_tri_gran_hooke_history.h"
namespace LAMMPS_NS {
class PairTriGranHooke : public PairTriGranHookeHistory {
public:
PairTriGranHooke(class LAMMPS *);
~PairTriGranHooke() {}
void compute(int, int);
};
}
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,97 @@
/* -*- 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 PAIR_CLASS
PairStyle(tri/gran/hooke/history,PairTriGranHookeHistory)
#else
#ifndef LMP_PAIR_TRI_GRAN_HOOKE_HISTORY_H
#define LMP_PAIR_TRI_GRAN_HOOKE_HISTORY_H
#include "pair.h"
#include "fix_surface_local.h"
#include "my_pool_chunk.h"
namespace LAMMPS_NS {
class PairTriGranHookeHistory : public Pair {
public:
PairTriGranHookeHistory(class LAMMPS *);
virtual ~PairTriGranHookeHistory();
virtual void compute(int, int);
void settings(int, char **);
void coeff(int, char **);
void init_style();
double init_one(int, int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_restart_settings(FILE *);
void read_restart_settings(FILE *);
void reset_dt();
int pack_forward_comm(int, int *, double *, int, int *);
void unpack_forward_comm(int, int, double *);
double memory_usage();
protected:
double kn,kt,gamman,gammat,xmu;
int dampflag,limit_damping;
double dt;
int freeze_group_bit;
int history;
int neighprev;
double *onerad_dynamic,*onerad_frozen;
double *maxrad_dynamic,*maxrad_frozen;
int size_history;
int surfmoveflag;
class FixDummy *fix_dummy;
class FixNeighHistory *fix_history;
int cmax; // allocated size of corners
double **corners; // current corner pts and norm of each tri
// Nall x 12 array for local + ghost atoms
// ptr to AtomVec for bonus tri info
class AtomVecTri *avec;
// tri connectivity info for owned and ghost tris
class FixSurfaceLocal *fsl; // ptr to surface/local fix
FixSurfaceLocal::Connect3d *connect3d; // ptr to connectivity info
// storage of rigid body masses for use in granular interactions
class Fix *fix_rigid; // ptr to rigid body fix, NULL if none
double *mass_rigid; // rigid mass for owned+ghost atoms
int nmax; // allocated size of mass_rigid
// local methods
void allocate();
void calculate_corners();
void corners2norm(double *, double *);
int overlap_sphere_tri(int, int, double *, double *, double &);
int nearest_point_line(double *, double *, double *, double *);
int edge_neigh_check(int, int, int);
int corner_neigh_check(int, int, int);
};
}
#endif
#endif

298
src/GRANSURF/surf_extra.cpp Normal file
View File

@ -0,0 +1,298 @@
// clang-format off
/* ----------------------------------------------------------------------
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.
------------------------------------------------------------------------- */
#include "surf_extra.h"
#include "math_extra.h"
using namespace MathExtra;
namespace SurfExtra {
/* ----------------------------------------------------------------------
compute nearest point between sphere I and line segment J
return 0 if no contact, 1 if pt is interior to line segment,
-1/-2 if pt = line end point 1/2
if contact, return:
pt = point on line segment
r = vector from pt to sphere center
rsq = squared length of r
based on geometry.cpp::distsq_point_line() in SPARTA
------------------------------------------------------------------------- */
int overlap_sphere_line(double *xsphere, double radius, double *p1, double *p2,
double *pt, double *r, double &rsq)
{
double a[3],b[3];
// A = vector from P1 to Xsphere
// B = vector from P1 to P2
MathExtra::sub3(xsphere,p1,a);
MathExtra::sub3(p2,p1,b);
// alpha = fraction of distance from P1 to P2 that P is located at
// P = projected point on infinite line that is nearest to Xsphere center
// alpha can be any value
double alpha = MathExtra::dot3(a,b) / MathExtra::lensq3(b);
// pt = point on line segment that is nearest to Xsphere center
// if alpha <= 0.0, pt = P1, ptflag = -1
// if alpha >= 1.0, pt = P2, ptflag = -2
// else pt = P1 + alpha*(P2-P1), ptflag = 1
int ptflag;
if (alpha <= 0.0) {
ptflag = -1;
pt[0] = p1[0];
pt[1] = p1[1];
pt[2] = p1[2];
} else if (alpha >= 1.0) {
ptflag = -2;
pt[0] = p2[0];
pt[1] = p2[1];
pt[2] = p2[2];
} else {
ptflag = 1;
pt[0] = p1[0] + alpha*b[0];
pt[1] = p1[1] + alpha*b[1];
pt[2] = p1[2] + alpha*b[2];
}
// R = vector from nearest pt on line to Xsphere center
// return ptflag if len(R) < sphere radius
// else no contact, return 0
double radsq = radius * radius;
MathExtra::sub3(xsphere,pt,r);
rsq = MathExtra::lensq3(r);
if (rsq < radsq) return ptflag;
return 0;
}
/* ----------------------------------------------------------------------
compute nearest point between sphere I and triangle J
return 0 if no contact, 1 if pt is interior to triangle,
-1/-2/-3 if pt on tri edges, -4/-5/-6 if pt = tri corners 1/2/3
if contact, return:
pt = point on triangle
r = vector from pt to sphere center
rsq = squared length of r
based on geometry.cpp::distsq_point_tri() in SPARTA
------------------------------------------------------------------------- */
int overlap_sphere_tri(double *xsphere, double radius,
double *p1, double *p2, double *p3, double *norm,
double *pt, double *r, double &rsq)
{
int e12flag,e23flag,e31flag,o12flag,o23flag,o31flag;
int esum,osum,lineflag;
double dot;
double a[3],point[3],edge[3],pvec[3],xproduct[3];
// A = vector from P1 to Xsphere
MathExtra::sub3(xsphere,p1,a);
// pt = projected point on infinite triangle plane
double alpha = MathExtra::dot3(a,norm);
pt[0] = xsphere[0] - alpha*norm[0];
pt[1] = xsphere[1] - alpha*norm[1];
pt[2] = xsphere[2] - alpha*norm[2];
// test if projected point is inside triangle
// inside = interior + boundary of tri
// edge = edge vector of triangle
// pvec = vector from triangle vertex to projected point
// xproduct = cross product of edge with pvec
// if dot product of xproduct with norm < 0.0 for any of 3 edges,
// projected point is outside tri
// NOTE: worry about round-off for pt being on edge or corner?
int inside = 1;
e12flag = e23flag = e31flag = 0;
o12flag = o23flag = o31flag = 0;
MathExtra::sub3(p2,p1,edge);
MathExtra::sub3(pt,p1,pvec);
MathExtra::cross3(edge,pvec,xproduct);
dot = MathExtra::dot3(xproduct,norm);
if (dot <= 0.0) {
o12flag = 1;
if (dot == 0.0) e12flag = 1;
else inside = 0;
}
MathExtra::sub3(p3,p2,edge);
MathExtra::sub3(pt,p2,pvec);
MathExtra::cross3(edge,pvec,xproduct);
dot = MathExtra::dot3(xproduct,norm);
if (dot <= 0.0) {
o23flag = 1;
if (dot == 0.0) e23flag = 1;
else inside = 0;
}
MathExtra::sub3(p1,p3,edge);
MathExtra::sub3(pt,p3,pvec);
MathExtra::cross3(edge,pvec,xproduct);
dot = MathExtra::dot3(xproduct,norm);
if (dot <= 0.0) {
o31flag = 1;
if (dot == 0.0) e31flag = 1;
else inside = 0;
}
// projected point is inside tri = interior or boundary
// set ptflag = 1 for interior
// set ptflag = -1,-2,-3 for 3 edges E12,E23,E31
// set ptflag = -4,-5,-6 for 3 corner pts P1,P2,P3
int flag = 0;
if (inside) {
flag = 1;
esum = e12flag + e23flag + e31flag;
if (esum) {
if (esum == 1) {
if (e12flag) flag = -1;
else if (e23flag) flag = -2;
else flag = -3;
} else {
if (!e12flag) flag = -6;
else if (!e23flag) flag = -4;
else flag = -5;
}
}
// projected point is outside tri
// reset pt to nearest point to tri center
// set ptflag = -1,-2,-3 if pt on edges
// set ptflag = -4,-5,-6 if pt = corner pts
} else {
osum = o12flag + o23flag + o31flag;
if (osum == 1) {
if (o12flag) {
lineflag = SurfExtra::nearest_point_line(xsphere,p1,p2,pt);
if (lineflag == 1) flag = -1;
else if (lineflag == -1) flag = -4;
else flag = -5;
} else if (o23flag) {
lineflag = SurfExtra::nearest_point_line(xsphere,p2,p3,pt);
if (lineflag == 1) flag = -2;
else if (lineflag == -1) flag = -5;
else flag = -6;
} else {
lineflag = SurfExtra::nearest_point_line(xsphere,p3,p1,pt);
if (lineflag == 1) flag = -3;
else if (lineflag == -1) flag = -6;
else flag = -4;
}
} else {
if (!o12flag) {
flag = -6;
pt[0] = p3[0];
pt[1] = p3[1];
pt[2] = p3[2];
} else if (!o23flag) {
flag = -4;
pt[0] = p1[0];
pt[1] = p1[1];
pt[2] = p1[2];
} else {
flag = -5;
pt[0] = p2[0];
pt[1] = p2[1];
pt[2] = p2[2];
}
}
}
// test if point is exactly a corner pt
// if so, reset ptwhich to corner pt
/*
if (pt[0] == p1[0] && pt[1] == p1[1] && pt[2] == p1[2]) flag == -4;
else if (pt[0] == p2[0] && pt[1] == p2[1] && pt[2] == p2[2]) flag == -5;
else if (pt[0] == p3[0] && pt[1] == p3[1] && pt[2] == p3[2]) flag == -6;
*/
// R = vector from nearest pt on line to Xsphere center
// return flag if len(R) < sphere radius
// else no contact, return 0
double radsq = radius * radius;
MathExtra::sub3(xsphere,pt,r);
rsq = MathExtra::lensq3(r);
if (rsq < radsq) return flag;
return 0;
}
/* ----------------------------------------------------------------------
compute nearest point between point X and line segment P1 to P2
return pt = nearest point within line segment
return 1 if pt is interior to line segment
return -1/-2 if pt = line segment end point 1/2
based on geometry.cpp::distsq_point_line() in SPARTA
------------------------------------------------------------------------- */
int nearest_point_line(double *x, double *p1, double *p2, double *pt)
{
double a[3],b[3];
// A = vector from P1 to X
// B = vector from P1 to P2
MathExtra::sub3(x,p1,a);
MathExtra::sub3(p2,p1,b);
// alpha = fraction of distance from P1 to P2 that P is located at
// P = projected point on infinite line that is nearest to X
// alpha can be any value
double alpha = MathExtra::dot3(a,b) / MathExtra::lensq3(b);
// pt = point on line segment that is nearest to X
// if alpha <= 0.0, pt = P1, ptflag = -1
// if alpha >= 1.0, pt = P2, ptflag = -2
// else pt = P1 + alpha*(P2-P1), ptflag = 1
int ptflag;
if (alpha <= 0.0) {
ptflag = -1;
pt[0] = p1[0];
pt[1] = p1[1];
pt[2] = p1[2];
} else if (alpha >= 1.0) {
ptflag = -2;
pt[0] = p2[0];
pt[1] = p2[1];
pt[2] = p2[2];
} else {
ptflag = 1;
pt[0] = p1[0] + alpha*b[0];
pt[1] = p1[1] + alpha*b[1];
pt[2] = p1[2] + alpha*b[2];
}
return ptflag;
}
/* ---------------------------------------------------------------------- */
}

28
src/GRANSURF/surf_extra.h Normal file
View File

@ -0,0 +1,28 @@
/* -*- 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.
------------------------------------------------------------------------- */
#ifndef LMP_SURF_EXTRA_H
#define LMP_SURF_EXTRA_H
namespace SurfExtra {
int overlap_sphere_line(double *, double, double *, double *,
double *, double *, double &);
int overlap_sphere_tri(double *, double,
double *, double *, double *, double *,
double *, double *, double &);
int nearest_point_line(double *, double *, double *, double *);
}
#endif

View File

@ -317,9 +317,9 @@ void FixWallGran::init()
if (heat_flag) {
if (!atom->temperature_flag)
error->all(FLERR,"Heat conduction in fix wall/gran requires atom style with temperature property");
error->all(FLERR, "Heat conduction in fix wall/gran requires atom style with temperature property");
if (!atom->heatflow_flag)
error->all(FLERR,"Heat conduction in fix wall/gran requires atom style with heatflow property");
error->all(FLERR, "Heat conduction in fix wall/gran requires atom style with heatflow property");
}
// check for FixRigid so can extract rigid body masses

View File

@ -383,7 +383,10 @@ bool GranularModel::check_contact()
radsum = radi;
if (radj == 0) Reff = radi;
else Reff = radi * radj / (radi + radj);
} else {
} else if (contact_type == SURFACE) {
// Used by GRANSURF package
// initial definitions of rsq and radj for contact
// detection distinct from those in calculate_forces()
sub3(xi, xj, dx);
rsq = lensq3(dx);
radsum = radi + radj;
@ -391,6 +394,7 @@ bool GranularModel::check_contact()
}
touch = normal_model->touch();
return touch;
}
@ -400,7 +404,13 @@ void GranularModel::calculate_forces()
{
// Standard geometric quantities
if (contact_type == SURFACE) {
radsum = radi;
Reff = radi;
}
if (contact_type != WALLREGION) r = sqrt(rsq);
rinv = 1.0 / r;
delta = radsum - r;
dR = delta * Reff;

View File

@ -32,7 +32,8 @@ enum SubModelType {
enum ContactType {
PAIR = 0,
WALL = 1,
WALLREGION = 2
WALLREGION = 2,
SURFACE = 3
};
// forward declarations

View File

@ -76,8 +76,11 @@ PairGranular::PairGranular(LAMMPS *lmp) : Pair(lmp)
// create dummy fix as placeholder for FixNeighHistory
// this is so final order of Modify:fix will conform to input script
id_dummy = utils::strdup(std::string("NEIGH_HISTORY_GRANULAR_DUMMY") + std::to_string(instance_me));
id_history = utils::strdup(std::string("NEIGH_HISTORY_GRANULAR") + std::to_string(instance_me));
fix_history = nullptr;
fix_dummy = dynamic_cast<FixDummy *>(modify->add_fix("NEIGH_HISTORY_GRANULAR_DUMMY all DUMMY"));
fix_dummy = dynamic_cast<FixDummy *>(modify->add_fix(fmt::format("{} all DUMMY", id_dummy)));
}
/* ---------------------------------------------------------------------- */
@ -86,8 +89,10 @@ PairGranular::~PairGranular()
{
delete[] svector;
if (!fix_history) modify->delete_fix("NEIGH_HISTORY_GRANULAR_DUMMY");
else modify->delete_fix("NEIGH_HISTORY_GRANULAR");
if (!fix_history) modify->delete_fix(id_dummy);
else modify->delete_fix(id_history);
delete[] id_dummy;
delete[] id_history;
if (allocated) {
memory->destroy(setflag);
@ -458,13 +463,10 @@ void PairGranular::init_style()
// this is so its order in the fix list is preserved
if (use_history && fix_history == nullptr) {
fix_history = dynamic_cast<FixNeighHistory *>(modify->replace_fix("NEIGH_HISTORY_GRANULAR_DUMMY",
"NEIGH_HISTORY_GRANULAR"
" all NEIGH_HISTORY "
+ std::to_string(size_history),1));
fix_history = dynamic_cast<FixNeighHistory *>(modify->replace_fix(id_dummy, fmt::format("{} all NEIGH_HISTORY {}", id_history, size_history),1));
fix_history->pair = this;
} else if (use_history) {
fix_history = dynamic_cast<FixNeighHistory *>(modify->get_fix_by_id("NEIGH_HISTORY_GRANULAR"));
fix_history = dynamic_cast<FixNeighHistory *>(modify->get_fix_by_id(id_history));
if (!fix_history) error->all(FLERR,"Could not find pair fix neigh history ID");
}

View File

@ -58,6 +58,8 @@ class PairGranular : public Pair {
class FixDummy *fix_dummy;
class FixNeighHistory *fix_history;
char *id_dummy;
char *id_history;
// storage of rigid body masses for use in granular interactions
@ -69,7 +71,6 @@ class PairGranular : public Pair {
void transfer_history(double *, double *, int, int) override;
void prune_models();
private:
int size_history;
int heat_flag;

View File

@ -83,6 +83,7 @@ PACKAGE = \
fep \
gpu \
granular \
gransurf \
h5md \
intel \
interlayer \
@ -178,6 +179,7 @@ PACKMOST = \
extra-pair \
fep \
granular \
gransurf \
interlayer \
manybody \
mc \

View File

@ -61,7 +61,7 @@ AtomVecTri::AtomVecTri(LAMMPS *lmp) : AtomVec(lmp)
fields_comm_vel = {"omega", "angmom"};
fields_reverse = {"torque"};
fields_border = {"molecule", "radius", "rmass"};
fields_border_vel = {"molecule", "radius", "rmass", "omega"};
fields_border_vel = {"molecule", "radius", "rmass", "omega", "angmom"};
fields_exchange = {"molecule", "radius", "rmass", "omega", "angmom"};
fields_restart = {"molecule", "radius", "rmass", "omega", "angmom"};
fields_create = {"molecule", "radius", "rmass", "omega", "angmom", "tri"};

View File

@ -715,8 +715,8 @@ void FixMove::initial_integrate(int /*vflag*/)
if (omega_flag) {
flag = 0;
if (radius_flag && radius[i] > 0.0) flag = 1;
if (line_flag && line[i] >= 0.0) flag = 1;
if (tri_flag && tri[i] >= 0.0) flag = 1;
if (line_flag && line[i] >= 0) flag = 1;
if (tri_flag && tri[i] >= 0) flag = 1;
if (flag) {
omega[i][0] = omega_rotate * runit[0];
omega[i][1] = omega_rotate * runit[1];
@ -756,7 +756,7 @@ void FixMove::initial_integrate(int /*vflag*/)
// theta for lines
if (theta_flag && line[i] >= 0.0) {
if (theta_flag && line[i] >= 0) {
theta_new = fmod(toriginal[i] + arg, MY_2PI);
avec_line->bonus[atom->line[i]].theta = theta_new;
}
@ -848,8 +848,8 @@ void FixMove::initial_integrate(int /*vflag*/)
if (omega_flag) {
flag = 0;
if (radius_flag && radius[i] > 0.0) flag = 1;
if (line_flag && line[i] >= 0.0) flag = 1;
if (tri_flag && tri[i] >= 0.0) flag = 1;
if (line_flag && line[i] >= 0) flag = 1;
if (tri_flag && tri[i] >= 0) flag = 1;
if (flag) {
omega[i][0] = omega_rotate * runit[0];
omega[i][1] = omega_rotate * runit[1];
@ -889,7 +889,7 @@ void FixMove::initial_integrate(int /*vflag*/)
// theta for lines
if (theta_flag && line[i] >= 0.0) {
if (theta_flag && line[i] >= 0) {
theta_new = fmod(toriginal[i] + arg, MY_2PI);
avec_line->bonus[atom->line[i]].theta = theta_new;
}
@ -1352,7 +1352,7 @@ void FixMove::set_arrays(int i)
// theta for lines
if (theta_flag && line[i] >= 0.0) {
if (theta_flag && line[i] >= 0) {
theta = avec_line->bonus[atom->line[i]].theta;
toriginal[i] = theta - 0.0; // NOTE: edit this line
}
@ -1415,7 +1415,7 @@ void FixMove::set_arrays(int i)
// theta for lines
if (theta_flag && line[i] >= 0.0) {
if (theta_flag && line[i] >= 0) {
theta = avec_line->bonus[atom->line[i]].theta;
toriginal[i] = theta - 0.0; // NOTE: edit this line
}

View File

@ -16,6 +16,7 @@
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "fix_surface_global.h"
#include "force.h"
#include "memory.h"
#include "modify.h"
@ -35,7 +36,7 @@ FixNeighHistory::FixNeighHistory(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg), pair(nullptr), npartner(nullptr), partner(nullptr), valuepartner(nullptr),
ipage_atom(nullptr), dpage_atom(nullptr), ipage_neigh(nullptr), dpage_neigh(nullptr)
{
if (narg != 4) error->all(FLERR, "Illegal fix NEIGH_HISTORY command");
if (narg < 4) error->all(FLERR, "Illegal fix NEIGH_HISTORY command");
restart_peratom = 1;
restart_global = 1;
@ -53,8 +54,17 @@ FixNeighHistory::FixNeighHistory(LAMMPS *lmp, int narg, char **arg) :
for (int i = 0; i < dnum; i++) zeroes[i] = 0.0;
onesided = 0;
if (strcmp(id, "LINE_NEIGH_HISTORY") == 0) onesided = 1;
if (strcmp(id, "TRI_NEIGH_HISTORY") == 0) onesided = 1;
surface_global = 0;
int iarg = 4;
while (iarg < narg) {
if (strcmp(arg[iarg], "onesided") == 0) onesided = 1;
else if (strcmp(arg[iarg], "surface/global") == 0) surface_global = 1;
else error->all(FLERR, "Illegal fix neigh/history command {}", arg[iarg]);
iarg += 1;
}
if (surface_global && !onesided)
error->all(FLERR, "Surface global must be used with onesided");
if (newton_pair)
comm_reverse = 1; // just for single npartner value
@ -262,7 +272,11 @@ void FixNeighHistory::pre_exchange_onesided()
for (i = 0; i < nlocal_neigh; i++) npartner[i] = 0;
tagint *tag = atom->tag;
NeighList *list = pair->list;
NeighList *list;
if (surface_global)
list = fix->list;
else
list = pair->list;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
@ -308,6 +322,9 @@ void FixNeighHistory::pre_exchange_onesided()
j = jlist[jj];
j &= NEIGHMASK;
m = npartner[i]++;
if (surface_global)
partner[i][m] = j;
else
partner[i][m] = tag[j];
memcpy(&valuepartner[i][dnum * m], onevalues, dnumbytes);
}
@ -616,7 +633,11 @@ void FixNeighHistory::post_neighbor()
dpage_neigh->reset();
tagint *tag = atom->tag;
NeighList *list = pair->list;
NeighList *list;
if (surface_global)
list = fix->list;
else
list = pair->list;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
@ -634,7 +655,7 @@ void FixNeighHistory::post_neighbor()
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
if (use_bit_flag) {
if (use_bit_flag && !surface_global) {
rflag = histmask(j) | pair->beyond_contact;
j &= HISTMASK;
jlist[jj] = j;
@ -652,9 +673,14 @@ void FixNeighHistory::post_neighbor()
// apply a mask for history (and they could use the bits for special bonds)
if (rflag) {
if (surface_global) {
for (m = 0; m < np; m++)
if (partner[i][m] == j) break;
} else {
jtag = tag[j];
for (m = 0; m < np; m++)
if (partner[i][m] == jtag) break;
}
if (m < np) {
allflags[jj] = 1;
memcpy(&allvalues[nn], &valuepartner[i][dnum * m], dnumbytes);

View File

@ -29,9 +29,10 @@ class FixNeighHistory : public Fix {
int nlocal_neigh; // nlocal at last time neigh list was built
int nall_neigh; // ditto for nlocal+nghost
int use_bit_flag; // flag whether this fix uses the extra bit in the nlist
int **firstflag; // ptr to each atom's neighbor flsg
int **firstflag; // ptr to each atom's neighbor flag
double **firstvalue; // ptr to each atom's values
class Pair *pair; // ptr to pair style that uses neighbor history
class FixSurfaceGlobal *fix; // ptr to fix surface/global that uses neighbor history
FixNeighHistory(class LAMMPS *, int, char **);
~FixNeighHistory() override;
@ -62,11 +63,17 @@ class FixNeighHistory : public Fix {
int get_dnum() const { return dnum; }
int get_maxpartner() const { return maxpartner; }
int *get_npartner() const { return npartner; }
tagint **get_partner() const { return partner; }
double **get_valuepartner() const { return valuepartner; }
MyPage<tagint> *get_ipage_atom() const { return ipage_atom; }
MyPage<double> *get_dpage_atom() const { return dpage_atom; }
protected:
int newton_pair; // same as force setting
int dnum, dnumbytes; // dnum = # of values per neighbor
int onesided; // 1 for line/tri history, else 0
int surface_global; // 1 for surface/global, else 0
int maxatom; // max size of firstflag and firstvalue
int commflag; // mode of reverse comm to get ghost info

View File

@ -242,6 +242,10 @@ class Memory : protected Pointers {
return array;
}
/* ----------------------------------------------------------------------
create a 3d array with a ragged 3rd dimension
------------------------------------------------------------------------- */
template <typename TYPE>
TYPE ***create_ragged(TYPE ***&array, int n1, int *n2, int **n3, const char *name)
{

View File

@ -41,7 +41,10 @@ static constexpr double SINERTIA = 0.4; // moment of inertia prefactor for sp
Molecule::Molecule(LAMMPS *lmp, int narg, char **arg, int &index) :
Pointers(lmp), id(nullptr), x(nullptr), type(nullptr), molecule(nullptr), q(nullptr),
radius(nullptr), rmass(nullptr), mu(nullptr), num_bond(nullptr), bond_type(nullptr),
radius(nullptr), rmass(nullptr), mu(nullptr),
lines(nullptr), tris(nullptr),
molline(nullptr), typeline(nullptr), moltri(nullptr), typetri(nullptr),
num_bond(nullptr), bond_type(nullptr),
bond_atom(nullptr), num_angle(nullptr), angle_type(nullptr), angle_atom1(nullptr),
angle_atom2(nullptr), angle_atom3(nullptr), num_dihedral(nullptr), dihedral_type(nullptr),
dihedral_atom1(nullptr), dihedral_atom2(nullptr), dihedral_atom3(nullptr),
@ -155,7 +158,7 @@ Molecule::Molecule(LAMMPS *lmp, int narg, char **arg, int &index) :
// stats
if (title.empty()) title = "(no title)";
if (me == 0)
if (me == 0) {
utils::logmesg(lmp,
"Read molecule template {}:\n{}\n"
" {} molecules\n"
@ -167,6 +170,9 @@ Molecule::Molecule(LAMMPS *lmp, int narg, char **arg, int &index) :
" {} impropers with max type {}\n",
id, title, nmolecules, nfragments, natoms, ntypes, nbonds, nbondtypes, nangles,
nangletypes, ndihedrals, ndihedraltypes, nimpropers, nimpropertypes);
if (nlines) utils::logmesg(lmp," {} lines\n",nlines);
if (ntris) utils::logmesg(lmp," {} triangles\n",ntris);
}
}
/* ---------------------------------------------------------------------- */
@ -442,6 +448,7 @@ void Molecule::read(int flag)
if (text.empty()) continue;
// search line for header keywords and set corresponding variable
try {
ValueTokenizer values(text);
@ -450,6 +457,14 @@ void Molecule::read(int flag)
if (values.matches("^\\s*\\d+\\s+atoms")) {
natoms = values.next_int();
nwant = 2;
} else if (values.matches("^\\s*\\d+\\s+lines")) {
nlines = values.next_int();
nwant = 2;
} else if (values.matches("^\\s*\\d+\\s+triangles")) {
ntris = values.next_int();
nwant = 2;
} else if (values.matches("^\\s*\\d+\\s+bonds")) {
nbonds = values.next_int();
nwant = 2;
@ -462,6 +477,7 @@ void Molecule::read(int flag)
} else if (values.matches("^\\s*\\d+\\s+impropers")) {
nimpropers = values.next_int();
nwant = 2;
} else if (values.matches("^\\s*\\d+\\s+fragments")) {
nfragments = values.next_int();
nwant = 2;
@ -519,15 +535,31 @@ void Molecule::read(int flag)
// error checks
if (natoms < 1) error->all(FLERR, "No atoms or invalid atom count in molecule file");
if (natoms < 0) error->all(FLERR, "No atoms or invalid atom count in molecule file");
if (nlines < 0) error->all(FLERR,"Invalid line count in molecule file");
if (ntris < 0) error->all(FLERR,"Invalid triangle count in molecule file");
if (nbonds < 0) error->all(FLERR, "Invalid bond count in molecule file");
if (nangles < 0) error->all(FLERR, "Invalid angle count in molecule file");
if (ndihedrals < 0) error->all(FLERR, "Invalid dihedral count in molecule file");
if (nimpropers < 0) error->all(FLERR, "Invalid improper count in molecule file");
// count = vector for tallying bonds,angles,etc per atom
if (natoms == 0 && nlines == 0 && ntris == 0)
error->all(FLERR,"Molecule file must define either atoms or lines or triangles");
if (flag == 0) memory->create(count, natoms, "molecule:count");
if (nlines && domain->dimension != 2)
error->all(FLERR,"Molecule file with lines must be for 2d simulation");
if (ntris && domain->dimension != 3)
error->all(FLERR,"Molecule file with triangles must be for 3d simulation");
// count = vector for tallying values in different sections of file
// set length to max of natoms, nlines, ntris
if (flag == 0) {
int maxcount = MAX(natoms,nlines);
maxcount = MAX(maxcount,ntris);
memory->create(count, maxcount, "molecule:count");
}
// grab keyword and skip next line
@ -588,6 +620,19 @@ void Molecule::read(int flag)
else
skip_lines(natoms, line, keyword);
} else if (keyword == "Lines") {
lineflag = 1;
if (flag)
line_segments(line);
else
skip_lines(nlines, line, keyword);
} else if (keyword == "Triangles") {
triflag = 1;
if (flag)
triangles(line);
else
skip_lines(ntris, line, keyword);
} else if (keyword == "Bonds") {
if (nbonds == 0) error->all(FLERR, "Found Bonds section but no nbonds setting in header");
bondflag = tag_require = 1;
@ -819,8 +864,8 @@ void Molecule::types(char *line)
}
// clang-format off
/* ----------------------------------------------------------------------
read molecules from file
set nmolecules = max of any molecule type
read molecule IDs from file
set nmolecules = max of any molecule ID
------------------------------------------------------------------------- */
void Molecule::molecules(char *line)
@ -1025,6 +1070,124 @@ void Molecule::masses(char *line)
}
}
/* ----------------------------------------------------------------------
read line segments from file
do NOT subtract one from point indices
------------------------------------------------------------------------- */
void Molecule::line_segments(char *line)
{
for (int i = 0; i < nlines; i++) count[i] = 0;
try {
for (int i = 0; i < nlines; i++) {
readline(line);
ValueTokenizer values(utils::trim_comment(line));
if (values.count() != 7)
error->all(FLERR, "Invalid line in Lines section of molecule file: {}", line);
int iline = values.next_int() - 1;
if (iline < 0 || iline >= nlines)
error->all(FLERR, "Invalid line index in Lines section of molecule file");
count[iline]++;
molline[iline] = values.next_int();
typeline[iline] = values.next_int();
lines[iline][0] = values.next_double();
lines[iline][1] = values.next_double();
lines[iline][2] = values.next_double();
lines[iline][3] = values.next_double();
// apply geometric operations to line points
lines[iline][0] *= sizescale;
lines[iline][1] *= sizescale;
lines[iline][2] *= sizescale;
lines[iline][3] *= sizescale;
}
} catch (TokenizerException &e) {
error->all(FLERR, "Invalid line in Lines section of molecule file: {}\n{}", e.what(), line);
}
// check all line molecule-IDs and types
// add toffset to line type
for (int i = 0; i < nlines; i++) {
if (count[i] == 0)
error->all(FLERR, "Line {} missing in Lines section of molecule file", i + 1);
if (molline[i] < 0)
error->all(FLERR,"Invalid line molecule ID in molecule file");
if (typeline[i] <= 0)
error->all(FLERR,"Invalid line type in molecule file");
typeline[i] += toffset;
}
}
/* ----------------------------------------------------------------------
read triangles from file
do NOT subtract one from point indices
------------------------------------------------------------------------- */
void Molecule::triangles(char *line)
{
for (int i = 0; i < ntris; i++) count[i] = 0;
try {
for (int i = 0; i < ntris; i++) {
readline(line);
ValueTokenizer values(utils::trim_comment(line));
if (values.count() != 12)
error->all(FLERR, "Invalid triangle in Triangles section of molecule file: {}", line);
int itri = values.next_int() - 1;
if (itri < 0 || itri >= ntris)
error->all(FLERR, "Invalid triangle index in Triangles section of molecule file");
count[itri]++;
moltri[itri] = values.next_int();
typetri[itri] = values.next_int();
tris[itri][0] = values.next_double();
tris[itri][1] = values.next_double();
tris[itri][2] = values.next_double();
tris[itri][3] = values.next_double();
tris[itri][4] = values.next_double();
tris[itri][5] = values.next_double();
tris[itri][6] = values.next_double();
tris[itri][7] = values.next_double();
tris[itri][8] = values.next_double();
// apply geometric operations to triangle points
tris[itri][0] *= sizescale;
tris[itri][1] *= sizescale;
tris[itri][2] *= sizescale;
tris[itri][3] *= sizescale;
tris[itri][4] *= sizescale;
tris[itri][5] *= sizescale;
tris[itri][6] *= sizescale;
tris[itri][7] *= sizescale;
tris[itri][8] *= sizescale;
}
} catch (TokenizerException &e) {
error->all(FLERR, "Invalid tri in Triangles section of molecule file: {}\n{}", e.what(), line);
}
// check all triangle molecule-IDs and types
// add toffset to triangle type
for (int i = 0; i < ntris; i++) {
if (count[i] == 0)
error->all(FLERR, "Triangle {} missing in Triangles section of molecule file", i + 1);
if (moltri[i] < 0)
error->all(FLERR,"Invalid triangle molecule ID in molecule file");
if (typetri[i] <= 0)
error->all(FLERR,"Invalid triangle type in molecule file");
typetri[i] += toffset;
}
}
/* ----------------------------------------------------------------------
read bonds from file
set nbondtypes = max type of any bond
@ -1921,6 +2084,7 @@ void Molecule::initialize()
nbondtypes = nangletypes = ndihedraltypes = nimpropertypes = 0;
nibody = ndbody = 0;
nfragments = 0;
nlines = ntris = 0;
bond_per_atom = angle_per_atom = dihedral_per_atom = improper_per_atom = 0;
maxspecial = 0;
@ -1930,6 +2094,7 @@ void Molecule::initialize()
nspecialflag = specialflag = 0;
shakeflag = shakeflagflag = shakeatomflag = shaketypeflag = 0;
bodyflag = ibodyflag = dbodyflag = 0;
lineflag = triflag = 0;
centerflag = massflag = comflag = inertiaflag = 0;
tag_require = 0;
@ -1940,6 +2105,13 @@ void Molecule::initialize()
radius = nullptr;
rmass = nullptr;
molline = NULL;
typeline = NULL;
lines = NULL;
moltri = NULL;
typetri = NULL;
tris = NULL;
num_bond = nullptr;
bond_type = nullptr;
bond_atom = nullptr;
@ -1992,6 +2164,19 @@ void Molecule::allocate()
if (radiusflag) memory->create(radius, natoms, "molecule:radius");
if (rmassflag) memory->create(rmass, natoms, "molecule:rmass");
// lines or triangles with corner points
if (lineflag) {
memory->create(molline,nlines,"molecule:molline");
memory->create(typeline,nlines,"molecule:typeline");
memory->create(lines,nlines,4,"molecule:lines");
}
if (triflag) {
memory->create(moltri,ntris,"molecule:moltri");
memory->create(typetri,ntris,"molecule:typetri");
memory->create(tris,ntris,9,"molecule:tris");
}
// always allocate num_bond,num_angle,etc and nspecial
// even if not in molecule file, initialize to 0
// this is so methods that use these arrays don't have to check they exist
@ -2068,6 +2253,13 @@ void Molecule::deallocate()
if (fragmentflag) { fragmentnames.clear(); }
memory->destroy(molline);
memory->destroy(typeline);
memory->destroy(lines);
memory->destroy(moltri);
memory->destroy(typetri);
memory->destroy(tris);
memory->destroy(num_bond);
memory->destroy(bond_type);
memory->destroy(bond_atom);

View File

@ -29,12 +29,14 @@ class Molecule : protected Pointers {
// number of atoms,bonds,etc in molecule
// nibody,ndbody = # of integer/double fields in body
// number of lines or triangles
int natoms;
int nbonds, nangles, ndihedrals, nimpropers;
int ntypes, nmolecules, nfragments;
int nbondtypes, nangletypes, ndihedraltypes, nimpropertypes;
int nibody, ndbody;
int nlines,ntris;
// max bond,angle,etc per atom
@ -48,6 +50,7 @@ class Molecule : protected Pointers {
int nspecialflag, specialflag;
int shakeflag, shakeflagflag, shakeatomflag, shaketypeflag;
int bodyflag, ibodyflag, dbodyflag;
int lineflag, triflag;
// 1 if attribute defined or computed, 0 if not
@ -61,12 +64,19 @@ class Molecule : protected Pointers {
double **x; // displacement of each atom from origin
int *type; // type of each atom
tagint *molecule; // molecule of each atom
tagint *molecule; // molecule-ID of each atom
double *q; // charge on each atom
double *radius; // radius of each atom
double *rmass; // mass of each atom
double **mu; // dipole vector of each atom
int *molline; // molecule-ID of each line
int *typeline; // type of each line
double **lines; // line end points
int *moltri; // molecule-ID of each triangles
int *typetri; // type of each triangle
double **tris; // triangle corner points
int *num_bond; // bonds, angles, dihedrals, impropers for each atom
int **bond_type;
tagint **bond_atom;
@ -147,6 +157,8 @@ class Molecule : protected Pointers {
void diameters(char *);
void dipoles(char *);
void masses(char *);
void line_segments(char *);
void triangles(char *);
void bonds(int, char *);
void angles(int, char *);
void dihedrals(int, char *);

View File

@ -85,6 +85,7 @@ MyPoolChunk<T>::MyPoolChunk(int user_minchunk, int user_maxchunk, int user_nbin,
}
/** Destroy class instance and free all allocated memory */
template <class T> MyPoolChunk<T>::~MyPoolChunk()
{
delete[] freehead;

View File

@ -277,6 +277,7 @@ void NeighRequest::apply_flags(int flags)
if (flags & REQ_RESPA_INOUT) { respainner = respaouter = 1; }
if (flags & REQ_RESPA_ALL) { respainner = respamiddle = respaouter = 1; }
if (flags & REQ_SSA) { ssa = 1; }
if (flags & REQ_ONESIDED) { granonesided = 1; }
// clang-format on
}

View File

@ -946,8 +946,8 @@ int Neighbor::init_pair()
flag = choose_pair(requests[i]);
lists[i]->pair_method = flag;
if (flag < 0)
error->all(FLERR,"Requested neighbor pair method does not exist");
if (flag < 0 && comm->me == 0)
error->warning(FLERR,"Requested neighbor pair method does not exist");
}
// instantiate unique Bin,Stencil classes in neigh_bin & neigh_stencil vecs
@ -1283,11 +1283,12 @@ void Neighbor::morph_skip()
// these flags must be same,
// else 2 lists do not store same pairs
// or their data structures are different
// NOTE: need check for 2 Kokkos flags?
// no need to check for history flag
// it does not affect what pairs are stored in neigh list
// NOTE: need to check for 2 Kokkos flags ?
if (irq->ghost != jrq->ghost) continue;
if (irq->size != jrq->size) continue;
if (irq->history != jrq->history) continue;
if (irq->bond != jrq->bond) continue;
if (irq->omp != jrq->omp) continue;
if (irq->intel != jrq->intel) continue;
@ -1304,12 +1305,12 @@ void Neighbor::morph_skip()
// else create a new identical list except non-skip
// for new list, set neigh = 1, skip = 0, no skip vec/array,
// copy unique flag (since copy_request() will not do it)
// note: parents of skip lists do not have associated history
// b/c child skip lists have the associated history
// ensure parent history flag is set if any child sets history flag
if (jj < nrequest) {
irq->skiplist = j;
irq->trim = trim_flag;
if (irq->history) jrq->history = 1;
} else {
int newrequest = request(this,-1);
irq->skiplist = newrequest;
@ -1319,6 +1320,7 @@ void Neighbor::morph_skip()
nrq->pair = nrq->fix = nrq->compute = nrq->command = 0;
nrq->neigh = 1;
nrq->skip = 0;
if (irq->history) nrq->history = 1;
if (irq->unique) nrq->unique = 1;
sort_requests();
@ -1374,8 +1376,8 @@ void Neighbor::morph_granular()
// force parent newton off (newton = 2) to enable onesided skip by child
// set parent granonesided = 0, so it stores all neighs in usual manner
// set off2on = 1 for all children, since they expect newton on lists
// this is b/c granonesided only set by line/gran and tri/gran which
// both require system newton on
// this is b/c granonesided is currently only set by line/tri gran
// both of those pair styles require newton on
if (onesided == 2) {
irq->newton = 2;
@ -1447,10 +1449,12 @@ void Neighbor::morph_halffull()
// these flags must be same,
// else 2 lists do not store same pairs
// or their data structures are different
// no need to check for history flag
// it does not affect what pairs are stored in neigh list
// NOTE: need to check for 2 Kokkos flags ?
if (irq->ghost != jrq->ghost) continue;
if (irq->size != jrq->size) continue;
if (irq->history != jrq->history) continue;
if (irq->bond != jrq->bond) continue;
if (irq->omp != jrq->omp) continue;
if (irq->intel != jrq->intel) continue;
@ -1556,11 +1560,13 @@ void Neighbor::morph_copy_trim()
// these flags must be same,
// else 2 lists do not store same pairs
// or their data structures are different
// no need to check omp b/c it stores same pairs
// NOTE: need check for 2 Kokkos flags?
// ghost flag logic was checked above
// no need to check for history flag
// it does not affect what pairs are stored in neigh list
// no need to check for omp flag b/c it stores same pairs
// NOTE: need to check for 2 Kokkos flags ?
if (irq->size != jrq->size) continue;
if (irq->history != jrq->history) continue;
if (irq->bond != jrq->bond) continue;
if (irq->intel != jrq->intel) continue;
if (irq->kokkos_host && !jrq->kokkos_host) continue;
@ -2104,11 +2110,11 @@ int Neighbor::choose_pair(NeighRequest *rq)
int molecular = atom->molecular;
//printf("PAIR RQ FLAGS: hf %d %d n %d g %d sz %d gos %d r %d b %d o %d i %d "
// "kk %d %d ss %d dn %d sk %d cp %d hf %d oo %d\n",
//printf("PAIR RQ FLAGS: hf %d %d nw %d gh %d sz %d gos %d ro %d bn %d om %d in %d "
// "kk %d %d ss %d sk %d cp %d hf %d o2o %d\n",
// rq->half,rq->full,rq->newton,rq->ghost,rq->size,
// rq->granonesided,rq->respaouter,rq->bond,rq->omp,rq->intel,
// rq->kokkos_host,rq->kokkos_device,rq->ssa,rq->dnum,
// rq->kokkos_host,rq->kokkos_device,rq->ssa,
// rq->skip,rq->copy,rq->halffull,rq->off2on);
// use request and system settings to match exactly one NPair class mask

View File

@ -355,6 +355,7 @@ namespace NeighConst {
REQ_NEWTON_ON = 1 << 8,
REQ_NEWTON_OFF = 1 << 9,
REQ_SSA = 1 << 10,
REQ_ONESIDED = 1 << 11
};
} // namespace NeighConst

192
src/stl_reader.cpp Normal file
View File

@ -0,0 +1,192 @@
// clang-format off
/* ----------------------------------------------------------------------
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.
------------------------------------------------------------------------- */
#include "stl_reader.h"
#include "comm.h"
#include "error.h"
#include "memory.h"
#include "text_file_reader.h"
using namespace LAMMPS_NS;
#define DELTA 16384
/* ---------------------------------------------------------------------- */
STLReader::STLReader(LAMMPS *lmp) : Pointers(lmp)
{
ntris = maxtris = 0;
tris = nullptr;
}
/* ---------------------------------------------------------------------- */
STLReader::~STLReader()
{
memory->destroy(tris);
}
/* ---------------------------------------------------------------------- */
int STLReader::read_file(const char *filename, double **&caller_tris)
{
int me = comm->me;
if (me == 0) {
// open file (text or binary)
FILE *fp = fopen(filename, "rb");
if (fp == nullptr) error->one(FLERR, "Cannot open file {}: {}", filename, utils::getsyserror());
// try reading the file in ASCII format
TextFileReader reader(fp, "STL mesh");
try {
char *line = reader.next_line();
if (!line || !utils::strmatch(line, "^solid"))
throw TokenizerException("Invalid STL mesh file format", "");
line += 6;
if (utils::strmatch(line, "^binary"))
throw TokenizerException("Invalid STL mesh file format", "");
utils::logmesg(lmp, "Reading STL object {} from text file {}\n", utils::trim(line), filename);
while ((line = reader.next_line())) {
// next line is facet line with 5 words
auto values = utils::split_words(line);
// otherwise next line should be endsolid and are done reading file
if ((values.size() != 5) || !utils::strmatch(values[0], "^facet")) {
if (!utils::strmatch(values[0], "^endsolid"))
throw TokenizerException("Error reading endsolid", "");
break;
}
// ignore normal
line = reader.next_line(2);
if (!line || !utils::strmatch(line, "^ *outer *loop"))
throw TokenizerException("Error reading outer loop", "");
// three corner points of a single triangle
if (ntris == maxtris) {
maxtris += DELTA;
memory->grow(tris,maxtris,9,"stl_reader:tris");
}
for (int k = 0; k < 3; ++k) {
line = reader.next_line(4);
values = utils::split_words(line);
if ((values.size() != 4) || !utils::strmatch(values[0], "^vertex"))
throw TokenizerException("Error reading vertex", "");
tris[ntris][3*k+0] = utils::numeric(FLERR, values[1], false, lmp);
tris[ntris][3*k+1] = utils::numeric(FLERR, values[2], false, lmp);
tris[ntris][3*k+2] = utils::numeric(FLERR, values[3], false, lmp);
}
line = reader.next_line(1);
if (!line || !utils::strmatch(line, "^ *endloop"))
throw TokenizerException("Error reading endloop", "");
line = reader.next_line(1);
if (!line || !utils::strmatch(line, "^ *endfacet"))
throw TokenizerException("Error reading endfacet", "");
ntris++;
}
// if read as text file failed, try reading as binary file
} catch (std::exception &e) {
if (utils::strmatch(e.what(), "^Invalid STL mesh file format")) {
char title[80];
float triangle[12];
uint32_t untri;
uint16_t attr;
size_t count;
rewind(fp);
count = fread(title, sizeof(char), 80, fp);
title[79] = '\0';
count = fread(&untri, sizeof(untri), 1, fp);
if (count <= 0) {
error->one(FLERR, "Error reading STL file {}: {}", filename, utils::getsyserror());
} else {
utils::logmesg(lmp, "Reading STL object {} from binary file {}\n", utils::trim(title),
filename);
}
if (untri > MAXSMALLINT)
error->one(FLERR, "Triangle counts in STL file exceed integer limit");
ntris = untri;
memory->create(tris,ntris,9,"stl_reader:tris");
for (int i = 0; i < ntris; ++i) {
count = fread(triangle, sizeof(float), 12, fp);
if (count != 12)
error->one(FLERR, "Error reading STL file {}: {}", filename, utils::getsyserror());
count = fread(&attr, sizeof(attr), 1, fp);
// ignore normal
int m = 0;
for (int j = 0; j < 3; ++j)
for (int k = 0; k < 3; ++k)
tris[i][m++] = triangle[3*j + k + 3];
}
} else {
error->all(FLERR, "Error reading STL file {}: {}", filename, e.what());
}
}
if (fp) fclose(fp);
}
// MPI broadcast of triangle vertex coords to all procs
// allow for 9*ntris to exceed max-allowed size of MPI_Bcast()
MPI_Bcast(&ntris,1,MPI_INT,0,world);
if (ntris == 0) error->all(FLERR,"STL file has no triangles");
if (me) memory->create(tris,ntris,9,"stl_reader:tris");
bigint ntotal = (bigint) ntris * 9;
if (ntotal < MAXSMALLINT)
MPI_Bcast(&tris[0][0],9*ntris,MPI_DOUBLE,0,world);
else {
double *source = &tris[0][0];
bigint n = 0;
while (n < ntotal) {
int nsize = MIN(MAXSMALLINT,ntotal-n);
MPI_Bcast(&source[n],nsize,MPI_DOUBLE,0,world);
n += nsize;
}
}
// return values
caller_tris = tris;
return ntris;
}

35
src/stl_reader.h Normal file
View File

@ -0,0 +1,35 @@
/* -*- 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.
------------------------------------------------------------------------- */
#ifndef LMP_STL_READER_H
#define LMP_STL_READER_H
#include "pointers.h"
namespace LAMMPS_NS {
class STLReader : protected Pointers {
public:
STLReader(class LAMMPS *);
~STLReader();
int read_file(const char *, double **&);
private:
int ntris,maxtris;
double **tris;
};
} // namespace LAMMPS_NS
#endif

View File

@ -25,6 +25,7 @@ eam_generate 2nd tool to generate EAM alloy potential files
eff scripts for working with the eFF (electron force field)
emacs add-ons to EMACS editor for editing LAMMPS input scripts
fep scripts for free-energy perturbation with FEP pkg
granlar_surfaces scripts for working with surfaces of tris/lines (3d/2d)
i-pi Python wrapper for performing path-integral MD (PIMD)
ipp input pre-processor Perl tool for creating input scripts
kate add-ons to Kate editor for editing LAMMPS input scripts

704
tools/gransurf/refine.py Normal file
View File

@ -0,0 +1,704 @@
#!/usr/bin/env python
# Script: refine.py
# Purpose: refine a set of granular surface elements for input to LAMMPS
# elements in 2d = line segments, elements in 3d = triangles
# Syntax: refine.py dim insource infile thresh outsource outfile
# dim = 2 or 3
# insource = mol for molecule file, stl for STL file
# infile = molecule or STL filename
# thresh = max size of resulting surface eleents
# outsource = mol for molecule file, stl for STL file
# outfile = molecule or STL filename
# Author: Steve Plimpton (Sandia), sjplimp at gmail.com
# TODO:
# print stats at each stage
# could also work with local surfs via data and/or dump file
# howto assign tri type, molID for output into molfile
# maybe should be persisted from input molfile (but not input STL)
import sys
from operator import itemgetter
from math import sqrt
# ----------
# classes
# ----------
class Point:
def __init__(self,x,y,z):
self.x = (x,y,z)
class Line:
def __init__(self,point1,point2):
self.active = 1
self.point1 = point1
self.point2 = point2
self.p1 = self.p2 = -1
class Edge: # unique tri edges
def __init__(self,p1,p2):
self.active = 1
self.p1 = p1
self.p2 = p2
self.neigh = []
self.which = []
class Tri:
def __init__(self,point1,point2,point3):
self.active = 1
self.point1 = point1
self.point2 = point2
self.point3 = point3
self.p1 = self.p2 = self.p3 = -1
# ----------
# functions
# ----------
def error(txt=None):
if not txt: print("Syntax: refine.py dim insource infile thresh outsource outfile")
else: print("ERROR:",txt)
sys.exit()
def distance(x1,x2):
dx = x1[0] - x2[0]
dy = x1[1] - x2[1]
dz = x1[2] - x2[2]
r = sqrt(dx*dx + dy*dy + dz*dz)
return r
def midpt(x1,x2):
xnew = 0.5 * (x1[0] + x2[0])
ynew = 0.5 * (x1[1] + x2[1])
znew = 0.5 * (x1[2] + x2[2])
return (xnew,ynew,znew)
# mybisect in place of Python 3.10 bisect module
# NOTE: explain why Python module does not work
# forward: one > all values before its insertion point
# reverse: one > all values after its insertion point
def mybisect(vec,one,func,reverse):
value = func(one)
ilo = 0
ihi = len(vec)
niter = 0
while 1:
if niter > 10: break
niter += 1
imid = (ilo+ihi) // 2
if ilo == ihi: break
if not reverse:
if value <= func(vec[imid]): ihi = imid
else: ilo = imid+1
else:
if value > func(vec[imid]): ihi = imid
else: ilo = imid+1
return imid
# debug functions
def print_lines(txt,lines):
nactive = 0
for line in lines:
if line.active: nactive += 1
print(txt,len(lines),nactive)
for iline,line in enumerate(lines):
if not line.active: continue
print(iline,line.active,distance(points[line.p1].x,points[line.p2].x),
line.point1,line.point2)
def print_edges(txt,edges):
nactive = 0
for edge in edges:
if edge.active: nactive += 1
print(txt,len(edges),nactive)
for iedge,edge in enumerate(edges):
if not edge.active: continue
print(iedge,edge.active,distance(points[edge.p1].x,points[edge.p2].x),
edge.p1,edge.p2,points[edge.p1].x,points[edge.p2].x,
edge.neigh,edge.which)
def print_tris(txt,tris):
nactive = 0
for tri in tris:
if tri.active: nactive += 1
print(txt,len(tris),nactive)
for itri,tri in enumerate(tris):
if not tri.active: continue
print(itri,tri.active,distance(points[tri.p1].x,points[tri.p2].x),
distance(points[tri.p2].x,points[tri.p3].x),
distance(points[tri.p3].x,points[tri.p1].x),
tri.point1,tri.point2,tri.point3)
# read a molecule file with lines
def read_molfile_2d(filename):
filelines = open(filename,"r").readlines()[1:]
nlines = 0
# read header of molecule file
for i,oneline in enumerate(filelines):
oneline = oneline.strip()
if not oneline: continue
if oneline[0] == '#': continue
if nlines: break
words = oneline.split()
if words[1] == "lines": nlines = int(words[0])
if nlines <= 0: error("Molecule file header is invalid for 2d lines")
# read Lines section of molecule file
section_word = 0
count = 0
lines = []
for oneline in filelines[i:]:
oneline = oneline.strip()
if not oneline: continue
if section_word == 0:
if oneline != "Lines":
error("Molecule file section is invalid for 2d lines")
section_word = 1
continue
count += 1
words = oneline.split()
if int(words[0]) != count:
error("Molecule file section is invalid for 2d lines")
line = Line((float(words[3]),float(words[4]),0.0),
(float(words[5]),float(words[6]),0.0))
lines.append(line)
if count != nlines:
error("Molecule file section is invalid for 2d lines")
return lines
# read a molecule file with tris
def read_molfile_3d(filename):
filelines = open(filename,"r").readlines()[1:]
ntris = 0
# read header of molecule file
for i,oneline in enumerate(filelines):
oneline = oneline.strip()
if not oneline: continue
if oneline[0] == '#': continue
if ntris: break
words = oneline.split()
if words[1] == "triangles": ntris = int(words[0])
if ntris <= 0: error("Molecule file header is invalid for 3d triangles")
# read Lines section of molecule file
section_word = 0
count = 0
tris = []
for oneline in filelines[i:]:
oneline = oneline.strip()
if not oneline: continue
if section_word == 0:
if oneline != "Triangles":
error("Molecule file section is invalid for 3d triangles")
section_word = 1
continue
count += 1
words = oneline.split()
if int(words[0]) != count:
error("Molecule file section is invalid for 3d triangles")
tri = Tri((float(words[3]),float(words[4]),float(words[5])),
(float(words[6]),float(words[7]),float(words[8])),
(float(words[9]),float(words[10]),float(words[11])))
tris.append(tri)
if count != ntris:
error("Molecule file section is invalid for 3d triangles")
return tris
# read an STL file with tris
def read_stlfile(filename):
filelines = open(filename,"r").readlines()
if not filelines[0].startswith("solid "):
error("STL file first line is invalid")
if not filelines[-1].startswith("endsolid "):
error("STL file last line is invalid")
filelines = filelines[1:-1]
if (len(filelines) % 7) != 0:
error("STL file facet format is invalid")
tris = []
iline = 2
while iline < len(filelines):
v1 = filelines[iline].split()
v2 = filelines[iline+1].split()
v3 = filelines[iline+2].split()
if v1[0] != "vertex" or v2[0] != "vertex" or v3[0] != "vertex":
error("STL file vertex format is invalid")
tri = Tri((float(v1[1]),float(v1[2]),float(v1[3])),
(float(v2[1]),float(v2[2]),float(v2[3])),
(float(v3[1]),float(v3[2]),float(v3[3])))
tris.append(tri)
iline += 7
return tris
# create list of unique line end points
def extract_points_2d(lines):
points = []
hash = {}
for line in lines:
if line.point1 not in hash:
line.p1 = len(points)
hash[line.point1] = len(points)
pt = line.point1
point = Point(pt[0],pt[1],0.0)
points.append(point)
else: line.p1 = hash[line.point1]
if line.point2 not in hash:
line.p2 = len(points)
hash[line.point2] = len(points)
pt = line.point2
point = Point(pt[0],pt[1],0.0)
points.append(point)
else: line.p2 = hash[line.point2]
return points
# create list of unique tri corner points
def extract_points_3d(tris):
points = []
hash = {}
for tri in tris:
if tri.point1 not in hash:
tri.p1 = len(points)
hash[tri.point1] = len(points)
pt = tri.point1
point = Point(pt[0],pt[1],pt[2])
points.append(point)
else: tri.p1 = hash[tri.point1]
if tri.point2 not in hash:
tri.p2 = len(points)
hash[tri.point2] = len(points)
pt = tri.point2
point = Point(pt[0],pt[1],pt[2])
points.append(point)
else: tri.p2 = hash[tri.point2]
if tri.point3 not in hash:
tri.p3 = len(points)
hash[tri.point3] = len(points)
pt = tri.point3
point = Point(pt[0],pt[1],pt[2])
points.append(point)
else: tri.p3 = hash[tri.point3]
return points
# create list of unique tri edges
# also create ehash so can search for edges in refine_3d()
# key = (p1,p2), value = index into list of edges
def edges_3d(points,tris):
hash = {}
for i,tri in enumerate(tris):
if (tri.p1,tri.p2) in hash: hash[(tri.p1,tri.p2)].append((i,0))
elif (tri.p2,tri.p1) in hash: hash[(tri.p2,tri.p1)].append((i,0))
else: hash[(tri.p1,tri.p2)] = [(i,0)]
if (tri.p2,tri.p3) in hash: hash[(tri.p2,tri.p3)].append((i,1))
elif (tri.p3,tri.p2) in hash: hash[(tri.p3,tri.p2)].append((i,1))
else: hash[(tri.p2,tri.p3)] = [(i,1)]
if (tri.p3,tri.p1) in hash: hash[(tri.p3,tri.p1)].append((i,2))
elif (tri.p1,tri.p3) in hash: hash[(tri.p1,tri.p3)].append((i,2))
else: hash[(tri.p3,tri.p1)] = [(i,2)]
edges = []
for key,value in hash.items():
edge = Edge(key[0],key[1])
edge.neigh = [item[0] for item in value]
edge.which = [item[1] for item in value]
edges.append(edge)
ehash = {}
for iedge,edge in enumerate(edges):
ehash[(edge.p1,edge.p2)] = iedge
return edges,ehash
# successively refine lines which are too long
def refine_2d(points,lines):
sizes = []
for iline,line in enumerate(lines):
sizes.append((iline,distance(points[line.p1].x,points[line.p2].x)))
sizes = sorted(sizes,key=itemgetter(1),reverse=True)
# loop until no line is too long
while sizes[0][1] > thresh:
#print(sizes)
iline = sizes[0][0]
dist = sizes[0][1]
# add new point
middle = midpt(points[lines[iline].p1].x,points[lines[iline].p2].x)
point = Point(middle[0],middle[1],0.0)
points.append(point)
npoints = len(points)
# mark split line as inactive
# add 2 new lines from split line
lines[iline].active = 0
newline = Line(lines[iline].point1,middle)
newline.p1 = lines[iline].p1
newline.p2 = npoints - 1
lines.append(newline)
inewline1 = len(lines) - 1
newline = Line(lines[iline].point2,middle)
newline.p1 = lines[iline].p2
newline.p2 = npoints - 1
lines.append(newline)
inewline2 = len(lines) - 1
nlines = len(lines)
# remove split line from sorted list
# add 2 new lines to sorted list in appropriate locations
del sizes[0]
newsize = (inewline1,0.5*dist)
isize = mybisect(sizes,newsize,sizeindex,1)
sizes.insert(isize,newsize)
newsize = (inewline2,0.5*dist)
isize = mybisect(sizes,newsize,sizeindex,1)
sizes.insert(isize,newsize)
# successively refine tris while any edge is too long
def refine_3d(points,edges,ehash,tris):
sizes = []
for iedge,edge in enumerate(edges):
sizes.append((iedge,distance(points[edge.p1].x,points[edge.p2].x)))
sizes = sorted(sizes,key=itemgetter(1),reverse=True)
# loop until no tri edge is too long
while sizes[0][1] > thresh:
iedge = sizes[0][0]
dist = sizes[0][1]
edges[iedge].active = 0
# add new point
middle = midpt(points[edges[iedge].p1].x,points[edges[iedge].p2].x)
point = Point(middle[0],middle[1],middle[2])
points.append(point)
npoints = len(points)
# loop over tris sharing the split edge
# mark each tri inactive
# add 2 new tris to replace inactive tri
# add new edge between pair of new tris
# reset neighs of non-split and non-new edge for each tri in pair
# prev_nedges/ntris = number of edges and tris before adding new ones
neigh = edges[iedge].neigh
which = edges[iedge].which
nedges_prev = len(edges)
ntris_prev = len(tris)
for itri,iwhich in zip(neigh,which):
tris[itri].active = 0
# NOTE:are not updating neighs in edge correctly
if iwhich == 0:
newtri = Tri(tris[itri].point1,middle,tris[itri].point3)
newtri.p1 = tris[itri].p1
newtri.p2 = npoints - 1
newtri.p3 = tris[itri].p3
tris.append(newtri)
if (tris[itri].p3,tris[itri].p1) in ehash:
jedge = ehash[(tris[itri].p3,tris[itri].p1)]
else: jedge = ehash[(tris[itri].p1,tris[itri].p3)]
index = edges[jedge].neigh.index(itri)
edges[jedge].neigh[index] = len(tris)-1
edges[jedge].which[index] = 2
newtri = Tri(tris[itri].point2,middle,tris[itri].point3)
newtri.p1 = tris[itri].p2
newtri.p2 = npoints - 1
newtri.p3 = tris[itri].p3
tris.append(newtri)
if (tris[itri].p2,tris[itri].p3) in ehash:
jedge = ehash[(tris[itri].p2,tris[itri].p3)]
else: jedge = ehash[(tris[itri].p3,tris[itri].p2)]
index = edges[jedge].neigh.index(itri)
edges[jedge].neigh[index] = len(tris)-1
edges[jedge].which[index] = 2
newedge = Edge(tris[itri].p3,npoints-1)
newedge.neigh = [len(tris)-2,len(tris)-1]
newedge.which = [1,1]
edges.append(newedge)
ehash[(newedge.p1,newedge.p2)] = len(edges)-1
elif iwhich == 1:
newtri = Tri(tris[itri].point2,middle,tris[itri].point1)
newtri.p1 = tris[itri].p2
newtri.p2 = npoints - 1
newtri.p3 = tris[itri].p1
tris.append(newtri)
if (tris[itri].p1,tris[itri].p2) in ehash:
jedge = ehash[(tris[itri].p1,tris[itri].p2)]
else: jedge = ehash[(tris[itri].p2,tris[itri].p1)]
index = edges[jedge].neigh.index(itri)
edges[jedge].neigh[index] = len(tris)-1
edges[jedge].which[index] = 2
newtri = Tri(tris[itri].point3,middle,tris[itri].point1)
newtri.p1 = tris[itri].p3
newtri.p2 = npoints - 1
newtri.p3 = tris[itri].p1
tris.append(newtri)
if (tris[itri].p3,tris[itri].p1) in ehash:
jedge = ehash[(tris[itri].p3,tris[itri].p1)]
else: jedge = ehash[(tris[itri].p1,tris[itri].p3)]
index = edges[jedge].neigh.index(itri)
edges[jedge].neigh[index] = len(tris)-1
edges[jedge].which[index] = 2
newedge = Edge(tris[itri].p1,npoints-1)
newedge.neigh = [len(tris)-2,len(tris)-1]
newedge.which = [1,1]
edges.append(newedge)
ehash[(newedge.p1,newedge.p2)] = len(edges)-1
elif iwhich == 2:
newtri = Tri(tris[itri].point3,middle,tris[itri].point2)
newtri.p1 = tris[itri].p3
newtri.p2 = npoints - 1
newtri.p3 = tris[itri].p2
tris.append(newtri)
if (tris[itri].p2,tris[itri].p3) in ehash:
jedge = ehash[(tris[itri].p2,tris[itri].p3)]
else: jedge = ehash[(tris[itri].p3,tris[itri].p2)]
index = edges[jedge].neigh.index(itri)
edges[jedge].neigh[index] = len(tris)-1
edges[jedge].which[index] = 2
newtri = Tri(tris[itri].point1,middle,tris[itri].point2)
newtri.p1 = tris[itri].p1
newtri.p2 = npoints - 1
newtri.p3 = tris[itri].p2
tris.append(newtri)
if (tris[itri].p1,tris[itri].p2) in ehash:
jedge = ehash[(tris[itri].p1,tris[itri].p2)]
else: jedge = ehash[(tris[itri].p2,tris[itri].p1)]
index = edges[jedge].neigh.index(itri)
edges[jedge].neigh[index] = len(tris)-1
edges[jedge].which[index] = 2
newedge = Edge(tris[itri].p2,npoints-1)
newedge.neigh = [len(tris)-2,len(tris)-1]
newedge.which = [1,1]
edges.append(newedge)
ehash[(newedge.p1,newedge.p2)] = len(edges)-1
# add 2 additional new edges to replace split edge
# neigh of each new edge depends on order of points in original tri
# both new edges are first edge 0 in all new tris
newedge1 = Edge(edges[iedge].p1,npoints-1)
neigh1 = newedge1.neigh
newedge2 = Edge(edges[iedge].p2,npoints-1)
neigh2 = newedge2.neigh
for itri in range(ntris_prev,len(tris)):
if edges[iedge].p1 == tris[itri].p1: neigh1.append(itri)
else: neigh2.append(itri)
newedge1.which = (len(neigh1))*[0]
newedge2.which = (len(neigh2))*[0]
edges.append(newedge1)
ehash[(newedge1.p1,newedge1.p2)] = len(edges)-1
edges.append(newedge2)
ehash[(newedge2.p1,newedge2.p2)] = len(edges)-1
# remove split edge from sorted list
# add all new edges to sorted list in appropriate locations
del sizes[0]
for iedge in range(nedges_prev,len(edges)):
newsize = (iedge,distance(points[edges[iedge].p1].x,points[edges[iedge].p2].x))
isize = mybisect(sizes,newsize,sizeindex,1)
sizes.insert(isize,newsize)
# function called by bisect() to return entry field that list is sorted on
def sizeindex(entry):
return entry[-1]
# write a new molecule file with lines
def write_molfile_2d(outfile,lines,infile,thresh):
nactive = 0
for line in lines:
if line.active: nactive += 1
fp = open(outfile,"w")
print("LAMMPS molecule file created by refine.py from %s with threshold %g\n" %
(infile,thresh),file=fp)
print("%d lines\n" % nactive,file=fp)
print("Lines\n",file=fp)
count = 0
for line in lines:
if not line.active: continue
count += 1
print("%d %d %d %g %g %g %g" % (count,1,1,
line.point1[0],line.point1[1],
line.point2[0],line.point2[1]),file=fp)
fp.close()
# write a new molecule file with tris
def write_molfile_3d(outfile,tris,infile,thresh):
nactive = 0
for tri in tris:
if tri.active: nactive += 1
fp = open(outfile,"w")
print("LAMMPS molecule file created by refine.py from %s with threshold %g\n" %
(infile,thresh),file=fp)
print("%d triangles\n" % nactive,file=fp)
print("Triangles\n",file=fp)
count = 0
for tri in tris:
if not tri.active: continue
count += 1
print("%d %d %d %g %g %g %g %g %g %g %g %g" %
(count,1,1,
tri.point1[0],tri.point1[1],tri.point1[2],
tri.point2[0],tri.point2[1],tri.point2[2],
tri.point3[0],tri.point3[1],tri.point3[2]),
file=fp)
fp.close()
# write a new STL file with tris
def write_stlfile(outfile,tris,infile,thresh):
nactive = 0
for tri in tris:
if tri.active: nactive += 1
fp = open(outfile,"w")
print("solid STL version of %s with threshold %g" %
(infile,thresh),file=fp)
for tri in tris:
if not tri.active: continue
print(" facet normal 0.0 0.0 0.0",file=fp)
print(" outer loop",file=fp)
print(" vertex %g %g %g" %
(tri.point1[0],tri.point1[1],tri.point1[2]),file=fp)
print(" vertex %g %g %g" %
(tri.point2[0],tri.point2[1],tri.point2[2]),file=fp)
print(" vertex %g %g %g" %
(tri.point3[0],tri.point3[1],tri.point3[2]),file=fp)
print(" endloop",file=fp)
print(" endfacet",file=fp)
print("endsolid STL version of %s with threshold %g" %
(infile,thresh),file=fp)
fp.close()
# ----------
# main program
# ----------
# parse command-line args
args = sys.argv[1:]
narg = len(args)
if narg != 6: error()
dim = int(args[0])
insource = args[1]
infile = args[2]
thresh = float(args[3])
outsource = args[4]
outfile = args[5]
if dim != 2 and dim != 3: error("Involid dim argument")
# read input file
# lines/tris = list of lines or tris
if insource == "mol" and dim == 2:
lines = read_molfile_2d(infile)
elif insource == "mol" and dim == 3:
tris = read_molfile_3d(infile)
elif insource == "stl" and dim == 3:
tris = read_stlfile(infile)
else:
error("Invalid insource argument")
# points = list of unique points
if dim == 2: points = extract_points_2d(lines)
if dim == 3: points = extract_points_3d(tris)
npoints = len(points)
if dim == 2:
nlines = len(lines)
if dim == 3:
ntris = len(tris)
# edges = list of unique edges for tris
# ehash = enables search for a p1,p2 edge in edges
if dim == 3: edges,ehash = edges_3d(points,tris)
# perform refinement
if dim == 2: refine_2d(points,lines)
if dim == 3: refine_3d(points,edges,ehash,tris)
# write output file
if outsource == "mol" and dim == 2:
write_molfile_2d(outfile,lines,infile,thresh)
elif outsource == "mol" and dim == 3:
write_molfile_3d(outfile,tris,infile,thresh)
elif outsource == "stl" and dim == 3:
write_stlfile(outfile,tris,infile,thresh)
else:
error("Invalid outsource argument")

Some files were not shown because too many files have changed in this diff Show More