Dear lammps community

I am reading compute_stress_atom.cpp. there are some data communication function and parameters that confuse me.

pack_reverse_comm(int n, int first, int *buf): my understanding is all these parameter are automatically dealt by lammps. n: the number of nghost atoms with data need to be reduced; first: kind of like the total number of local atom, after which are index for nghost atoms; am i right?

Also, I should set comm_reverse to be the size of each atomic data (vector of 3 or tensor of 9, etc.)?

So, basically if I want to reduce my data, all I need is to reset comm_reverse, and modify the data transfer part in pack_reverse_comm and unpack_reverse_comm function?



yes. There are many examples of fixes and computes that use

reverse communication. You can look at those as examples.