Chunking based on shells around multiple origins or minimum pairwise distance per atom with another type

I would like to inquire if what I want to do is possible without modification of LAMMPS.

I have a multicomponent system made of polymer beads surrounding multiple nanoparticles (50-200). Is there a method to apply a chunk/atom bin/sphere for each nanoparticle center and then combine these chunks? In doing this, I would like to chunk all polymer beads into different chunks based on their residence in shells of different radius around nanoparticles.

As I mentioned, I have considered using fix chunk/atom bin/sphere but that would only accomplish what I need relative to a single origin and I can’t find a way to combine chunks from multiple chunk/atom fixes. An additional complication is that if an atom resides in two different shells with respect to two different nanoparticles, I would like the chunk combiner to prioritize the lesser chunk id (closer shell).

Another possibility that I see that would allow me to do this is to use “fix chunk/atom c_min_dist”, where c_min_dist is the minimum distance for each “polymer” atom to a nanoparticle center. Is there a method that would allow me to compute the pairwise distance for each polymer bead with all nanoparticle centers and store it as a per-atom vector? Then, I can assign the minimum of each per-atom vector of pairwise distances (again, 50-200) to atoms.

I would appreciate any guidance pointing me to the right direction. Thanks in advance!

I don’t how this can be done.

What you want to do is far too complex and would be rather difficult to realize in general and in particular in parallel. That makes it a task for post-processing.

1 Like