I have a question related to LAMMPS parallel implementation
Here I isolate my question. Assuming that you have two domains D1 and D2 assigned to two processors P1 and P1 and a particle Pa1 in D1 at the border with D2, for DPD will you a) choose always a pair for Pa1 in D1, or sometimes b) it will be also a particle in D2?
If b) happens sometimes, are there problems with paralelisations?
I have a question related to LAMMPS parallel implementation
Here I isolate my question. Assuming that you have two domains D1 and D2 assigned to two processors P1 and P1 and a particle Pa1 in D1 at the border with D2, for DPD will you a) choose always a pair for Pa1 in D1, or sometimes b) it will be also a particle in D2?
If b) happens sometimes, are there problems with paralelisations?
no. subdomains have “local” atoms and “ghost” atoms. “local” atoms are “owned” by a subdomain and can be local only for exactly one subdomain.
“ghost” atoms can appear on multiple subdomain. they are copied/updated from their corresponding “local” atoms up to the communication cutoff, which defaults to the neighborlist cutoff, i.e. the largest pairwise cutoff plus the neighborlist skin distance.
when a pair of atoms crosses subdomain boundaries one atom will be local and one will be a ghost. with the newton pair option on (the default) this pair will show up only once and the resulting force will be computed for both atoms and there is an additional communication step in each MD timestep to “collect” the forces on “ghost” atoms to their corresponding “local” atoms (a so-called reverse communication). with the newton pair option set to off the pair will be on the neighbor list on both subdomains, but forces will be stored only for the corresponding “local” atom. because of the random component to the DPD force, this setting will not conserve momentum since that force component will not be the same for both atoms of a pair.
you should be able to read up on this in the LAMMPS paper or presentations about the LAMMPS implementation from previous LAMMPS workshops on the LAMMPS homepage.
Thank you in advance for your question.
i presume you want to thank for the response and not a question to you. you are welcome.
forces are computed for pairs in the neighbor lists. pair style dpd requests a “half” neighbor list, i.e. each pair between local atoms is listed only once and for pairs between subdomains it depends on the newton pair setting as I have already mentioned. there is no randomness in that.