How to caculate the Td from Norgett–Robinson–Torrens (NRT) model

On the one hand,Td is the damage energy, which is the kinetic energy available for creating atomic displacements by elastic collisions.I can not caculate Td by using lammps .
On the other hand,many references to quantify the amount of atomic displacements is by using the displacements-per-atom (dpa) unit, which is the average number of times an atom is displaced from its lattice site per incident particle.but how to convert my simulation through lammps into dpa unit to represent the displacement dose.
I hope I can get your help,thanks!

This is best accomplished in post-processing using your own scripts reading data or dump files. With those, you can define what qualifies as an atom being “displaced” rather than moving around close to its site.

Alternately, you can try to write a custom compute that can return a per-atom array. But there’s nothing I’m aware of already in LAMMPS.

Dear Jacobs,
Thank you very much for your reply, but the post-processing you mentioned is exactly what I want to know. I have no clue about how to calculate this part of energy by using the results calculated by lammps. In the past research, have you studied it?

No, I have not. Creating this analysis is your job as the researcher. If you don’t have the confidence to write your own compute (I haven’t done that before either, but you can take a look at the source code for some computes, e.g., compute cna/atom), then your best option is to analyze dump files. By reading the coordinates of each atom from the dump files, you’ll be able to tell when an atom is displaced by about the lattice spacing distance.

Personally I use MDAnalysis to start analysing such quantities – it’s a python package that will take care of reading snapshot coordinates from a trajectory file into a succession of NumPy arrays (among other things). I can then write a reference Python script to calculate my observable of interest from coordinates, as a “ground truth” to which I can later compare any LAMMPS computes I string together.

If you can’t write your observables as a function of positions and velocities (and masses and charges) to start with, then you have no way to proceed, regardless of package.