Getting per molecule properties using reax/c/species

I doing some simulations where sputtering will produce molecule above the substrate. I use a reax/c potential style and thus am applying a fix reax/c/species to identify the molecules that are present.

However, in addition to simply identifying I would like to get some per molecule properties for each of the molecules. In particular, I am hoping for the energy of these molecules (KE). How would I go about trying to compute the KE per molecule for all the molecules that are identified by the fix?

Thanks

Liam

I see two possible options:

  1. You implement a compute chunk/species style that can access internal data structures of fix reax/c/species (via adding a “extract()” method) and then use the chunk IDs in combination with compute ke/atom and compute reduce/chunk to get the output you are looking for.
    2 You issue a compute ke/atom and include it in a dump file which is output in the same frequency and the fix reax/c/species output and then write a post-processing script/program.

Thanks. I was thinking option two initially but am intrigued by option 1.

If I use a compute chunk/species will it be able to read each molecule type from reax/c/species? Basically how do a get it to extract from the species file?

I am seeing fix ave/chunk and fix chunk/atom, but not sure how best to assign each chunk to the molecule from the resulting reax/c/species file. Once that works it should just be computing the resulting chunk ke.

You are missing my point. There currently is no compute chunk/species. You would have to program it. And it wouldn’t read anything from a file but have to obtain the data from the fix. Fixes can have an “extract()”, a compute_vector() or a compute_array() function added as a general mechanism how the data they compute can be looked up by computes or fixes or other C++ code in LAMMPS. To understand you need to read some of the existing C++ code and learn how this works.

Apologies, ok I will have a look into this. If I get anywhere with it I will let the board know.

Thanks for your help.

Liam