force calculation in tersoff potential

Dear LAMMPS users,

I am using “Tersoff” pair style for nanometric machining and want to calculate force between tool and workpiece groups. According LAMMPS manual, we could not use compute group/group. Hence, I used variable fcm command as bellow:

variable forcex equal fcm(tool,x)

variable forcey equal fcm(tool,y)

variable forcez equal fcm(tool,z)

fix 12 mobile print 50 “${forcex}” file TotalFeatures/forcex screen no

fix 13 mobile print 50 “${forcey}” file TotalFeatures/forcey screen no

fix 14 mobile print 50 “${forcez}” file TotalFeatures/forcez screen no

In this regard, I have 2 questions:

1- The achieved forces from these commands are 0.0 during the process. Why is that? I made my tool rigid. Could it be the reason of this?

2- Logically, forces on tool should be equal with the forces on workpiece. Nevertheless, when I put workpiece group in my variable fcm command, the result has been changed and showed a very bad fluctuation:

variable forcex equal fcm(workpiece,x)

Could you please help me in this issue?

Best Regards

Nader

Dear LAMMPS users,

I am using “Tersoff” pair style for nanometric machining and want to
calculate force between tool and workpiece groups. According LAMMPS manual,
we could not use compute group/group. Hence, I used variable fcm command as
bellow:

variable forcex equal fcm(tool,x)

variable forcey equal fcm(tool,y)

variable forcez equal fcm(tool,z)

fix 12 mobile print 50 "${forcex}" file
TotalFeatures/forcex screen no

fix 13 mobile print 50 "${forcey}" file TotalFeatures/forcey
screen no

fix 14 mobile print 50 "${forcez}" file TotalFeatures/forcez
screen no

In this regard, I have 2 questions:

1- The achieved forces from these commands are 0.0 during the process. Why
is that? I made my tool rigid. Could it be the reason of this?

2- Logically, forces on tool should be equal with the forces on workpiece.
Nevertheless, when I put workpiece group in my variable fcm command, the
result has been changed and showed a very bad fluctuation:

variable forcex equal fcm(*workpiece*,x)

Could you please help me in this issue?

​there is not enough information provided to give any kind of meaningful
help.

axel.​

The core of my script is as bellow. I have deleted commands around variables, groups, etc (due to shorten it for reading). Many thanks for your time.

units metal
dimension 3
boundary p s s
atom_style atomic

lattice diamond {latparam} region simulation_box block 0 {xmdim} -{ymdim} {yplane4} -{zmdim} {zplane3} units box
create_box 4 simulation_box

mass 1 12.0107
mass 2 28.085
mass 3 28.085
mass 4 28.085
region lower block 0 {xmdim} -{ymdim} 0 -${zmdim} 0 units box
create_atoms 2 region lower

-----------------Define potential function----

pair_style tersoff
pair_coeff * * SiC.tersoff C Si Si Si
neigh_modify exclude type 1 1

-----------------Define Settings -------

fix 1 tool setforce 0.0 0.0 0.0
displace_atoms tool move 0 {initialdist} {zmove} units box #Displace tool to Adjust Depth of Cut
velocity tool set 0.0 0.0 0.0 sum yes units box
velocity mobile create 293 482748 temp new #Defining initial temperature of mobile atoms

fix 7 all nve
velocity tool set 0.0 $v 0.0 sum yes units box #Starting of tool movement
variable forcex equal fcm(tool,x) #total force in x direction
variable forcey equal fcm(tool,y) #total force in y direction
variable forcez equal fcm(tool,z) #total force in z direction

-----------------Machining Run------------

timestep 0.001
thermo_style custom step v_forcex v_forcey v_forcez
thermo $p
thermo_modify temp new
thermo_modify lost warn

fix 12 mobile print p "{forcex}" file TotalFeatures/forcex screen no
fix 13 mobile print p "{forcey}" file TotalFeatures/forcey screen no
fix 14 mobile print p "{forcez}" file TotalFeatures/forcez screen no

run $m

The core of my script is as bellow. I have deleted commands around
variables, groups, etc (due to shorten it for reading). Many thanks for
your time.

​ok. what you observe is the consequence of your input.
- your fcm(tool,*)​ variable functions *must* result in 0.0, since you are
using fix setforce 0.0 0.0 0.0. if you want to get the force *before*
setting them to zero, you have to query the setforce fix. details are in
the documentation.
- there are still a lot of unknowns due to the incomplete input, but if you
slam your workpiece with a constant velocity into your material, there
*should* be large changes in the force. at typical simulation speeds, this
is a very high speed impact and thus usually causing shockwaves.

overall, it looks like you are trying to perform and interpret atom scale
simulations with a continuum mechanics understanding. that is bound to fail.

axel.

Dear Axel,

You are absolutely right. Once I ignored “fix setforce” command, the forces by variable fcm command appeared. I was using “fix setforce” command for making my tool as a rigid body. However, I found that “fix move” command could be used for moving my tool and keeping it rigid. It could be useful for the others that have such problem.

Could you possibly tell me what wrong is with this study? There are hundreds of articles that have used LAMMPS for modeling of machining

(e.g. http://lammps.sandia.gov/abstracts/cms11.html).

Please let me know if you see any faults in my script.

Thanks

Nader

Dear Axel,

You are absolutely right. Once I ignored “fix setforce” command, the
forces by variable fcm command appeared. I was using “fix setforce” command
for making my tool as a rigid body. However, I found that “fix move”
command could be used for moving my tool and keeping it rigid. It could be
useful for the others that have such problem.

Could you possibly tell me what wrong is with this study? There are
hundreds of articles that have used LAMMPS for modeling of machining

(e.g. http://lammps.sandia.gov/abstracts/cms11.html).

Please let me know if you see any faults in my script.

​i already told you what is the problem. ​specifically and in general. now
you are adding lack of attention to the list.

axel.