Dear LAMMPS users and developers,
While trying to run body/polyhedron examples,
I’ve encountered the following apparently strange behavior.
Oblique collision of two absolutely elastic cubes ( only k_n!=0 ) run with NVE results in considerable jumps of the total energy, either up or down.
I am on Ubuntu 22.04.4 LTS, LAMMPS (2 Aug 2023 - Update 2)
Running
lmp -in in.cubes
yields
Step KinEng PotEng TotEng
0 0.25 0 0.25
1000 0.15392932 0 0.15392932
2000 0.15392932 0 0.15392932
3000 0.22513268 0 0.22513268
4000 0.19898377 0 0.19898377
5000 0.2257268 0 0.2257268
6000 0.2257268 0 0.2257268
7000 0.2257268 0 0.2257268
8000 0.2257268 0 0.2257268
9000 0.2418996 0 0.2418996
10000 0.24473686 0 0.24473686
Isn’t it supposed to remain constant for elastic collisions ?
Is the rotational energy taken into account in either kinetic (ke) or total energy (etotal) ?
in.cubes :
units lj
atom_style body rounded/polyhedron 8 8
read_data data.cubes
variable cut_inner equal 1
variable k_n equal 100
variable k_na equal 0
variable c_n equal 0
variable c_t equal 0
variable mu equal 0
variable delta_ua equal 1
pair_style body/rounded/polyhedron ${c_n} ${c_t} ${mu} ${delta_ua} ${cut_inner}
pair_coeff * * ${k_n} ${k_na}
comm_modify vel yes
neighbor 0.5 bin
neigh_modify every 1 delay 0 check yes
timestep 0.01
fix 1 all nve/body
thermo_style custom step ke pe etotal
thermo 1000
run 10000
data.cubes :
LAMMPS data two cubes
2 atoms
2 bodies
1 atom types
0 15 xlo xhi
0 15 ylo yhi
-15 15 zlo zhi
Atoms
1 1 1 1 4 5 0
2 1 1 1 7 6 0
Velocities
1 0 0 0 0 0 0
2 -1.0 0 0 0 0 0
Bodies
1 3 79
8 12 6
0.667 0.667 0.667 0 0 0
1 1 1
1 -1 1
-1 -1 1
-1 1 1
1 1 -1
1 -1 -1
-1 -1 -1
-1 1 -1
0 1
1 2
2 3
3 0
4 5
5 6
6 7
7 4
0 4
1 5
2 6
3 7
0 1 2 3
4 5 6 7
0 1 5 4
1 2 6 5
2 3 7 6
3 0 4 7
0.5
2 3 79
8 12 6
0.667 0.667 0.667 0 0 0
1 1 1
1 -1 1
-1 -1 1
-1 1 1
1 1 -1
1 -1 -1
-1 -1 -1
-1 1 -1
0 1
1 2
2 3
3 0
4 5
5 6
6 7
7 4
0 4
1 5
2 6
3 7
0 1 2 3
4 5 6 7
0 1 5 4
1 2 6 5
2 3 7 6
3 0 4 7
0.5