Dear Lammps users,

Can you please explain why is there a difference in the normal force calculation between the “compute” method and the “single” method?

I have been using Lammps during the past few months, and have modified the Granular pair potential to my own needs. I have just noticed that the compute method and single method return different “Forces”.

The normal force in the compute method is a vector: ccel times the vector r.

fx = delx*ccel + fs1;*

fy = delyccel + fs2;

fz = delz*ccel + fs3;

and the compute method returns a vector of the total force.

The “single” method returns the scalar fforce as the “normal force”. fforce is a scalar equal to ccel and is not multiplied by the vector r. The units of fforce are Newton/meter.

It seems that in order to use the single method force, one needs to multiply it first by the vector r.

Am I missing something? Why is there a difference?

Thanks,

Gady

This mail was received via Mail-SeCure System At Ruppin Academic Center

Dear Lammps users,

Can you please explain why is there a difference in the normal force

calculation between the "compute" method and the "single" method?

I have been using Lammps during the past few months, and have modified the

Granular pair potential to my own needs. I have just noticed that the

compute method and single method return different "Forces".

The normal force in the compute method is a vector: ccel times the vector r.

fx = delx*ccel + fs1;

fy = dely*ccel + fs2;

fz = delz*ccel + fs3;

and the compute method returns a vector of the total force.

The "single" method returns the scalar fforce as the "normal force". fforce

is a scalar equal to ccel and is not multiplied by the vector r. The units

of fforce are Newton/meter.

It seems that in order to use the single method force, one needs to multiply

it first by the vector r.

Am I missing something? Why is there a difference?

the compute and the single method serve different purposes. however,

there is a particular problem when granular pair styles: the single

API implicitly assumes that your particles are point particles (as is

true for the vast majority of pair styles in LAMMPS) but does not

apply for granular particles.

please note that this behavior is documented:

The single() function of these pair styles returns 0.0 for the energy

of a pairwise interaction, since energy is not conserved in these

dissipative potentials. It also returns only the normal component of

the pairwise interaction force. However, the single() function also

calculates 4 extra pairwise quantities. The first 3 are the components

of the tangential force between particles I and J, acting on particle

I. P4 is the magnitude of this tangential force. These extra quantites

can be accessed by the compute pair/local command, as p1, p2, p3, p4.

axel.