Intra and intermolecular parts of intermediate scattering function

Hi!

I have computed a long LAMMPS trajectory file (“dump.atom.velocity”) of a polymer melt. The polymers are all equally long and consist of identicaI beads and therefore dump.atom.velocity only have one type of “atoms”:

ITEM: TIMESTEP
120000000
ITEM: NUMBER OF ATOMS
13884
ITEM: BOX BOUNDS pp pp pp
0.0000000000000000e+00 2.9160000000000000e+01
0.0000000000000000e+00 2.9160000000000000e+01
0.0000000000000000e+00 2.9160000000000000e+01
ITEM: ATOMS id type xu yu zu vx vy vz
1986 1 0.968692 0.680136 0.0757868 0.372842 0.113453 0.640207
2176 1 4.29323 0.627803 0.26113 0.230537 0.388602 -1.14057
10940 1 5.57609 0.609709 0.254456 0.0917534 -1.13059 -0.261823
10939 1 6.51302 0.397487 0.318086 0.34501 -1.95721 -2.18305
7049 1 10.6491 0.277631 0.699386 1.63733 0.890773 -0.574776

………………………………………………………………………

I’ve computed the intermediate scattering function using DYNASOR without problems but I now got a request on computing the inter and intra-molecular polymer parts of F(Q,t) using the trajectory file.

Are there any functionality in DYNASOR to do this? Since the above file does not say anything about which polymers the different beads belong to, it appears the answer is negative? What is the quickest solution to this problem? From the numbering of beads, I can of course figure out which polymer a bead belongs to using the number of beads in a polymer.

 ./Jens
                    

Hi Jens,

There is no automatic way to do this within dynasor, no.

But there is functionality to put atoms into groups, via `atomic_indices` functionality in `Trajectory`. This way you could setup one group for a all atoms within one polymer and get the intermediate scattering function for only those atoms (Intra). You could write a simple python script that groups atoms in this way and store it as an `atomic_indices` dictionary.

But for the inter part, Im not sure how this is defined even, naive approaches would be to just use center-of-mass of the polymer, but then youre missing out on rotational dynamics.

Maybe a good and simple option would be to compute the intra and the total, and then say `F_inter = F_total - F_intra`.

1 Like

Hi Erik!

Thanks for your quick answer. I will write a small script as you suggested.

./Jens