How to add shear periodic boundary conditions

Asked by Bin Cheng

Hi everyone,

I'm now simulating the dust dynamics of Saturn's ring. It would be computationally infeasible to model entire system, so I need to add Periodic Boundary Conditions in two directions, one in Y direction, one in X direction, where X-axis points to Saturn, Y -axis points to the radial direction, Z -axis completes a right-handed coordinate system.

So there are two questions:

1) How to add two Periodic Boundary Conditions? I found that ESyS-Particle might only permit one PBC.

2) ESyS-Particle only changes the position of particles that cross over PBC. But I need also change the velocity at the same time when the particles cross over PBC in X-direction . I think I need to modify the source code, so could you please give some suggestions on how to achieve my goal?

Best wishes,

Bin Cheng.

Question information

Language:
English Edit question
Status:
Expired
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:

This question was reopened

Revision history for this message
SteffenAbe (s-abe) said :
#1

1) How to add two Periodic Boundary Conditions? I found that ESyS-Particle might only permit one PBC.

In the current version the periodic boundary conditions are indeed restricted to the x-dimension. Adding an option for a periodic BCs in Y and Z is simple in principle but will need some work and detailed testing.
I'll put it on the "TODO list" for the next release.

2) ESyS-Particle only changes the position of particles that cross over PBC. But I need also change the velocity at the same time when the particles cross over PBC in X-direction .

Enabling this would indeed require some work on the code of esys-particle. The implementation of a velocity change for particles crossing a periodic BC as such should be technically rather simple. However, given that this is rather a "niche" feature which is most likely only be used in very specific simulations, one would need to think very carefully how design implementation & interface so that it doesn't interfere with the bulk of the simulations which don't need this.

Steffen

Revision history for this message
SteffenAbe (s-abe) said :
#2

Regarding 2) :
After thinking about this in a bit more detail it unfortunately turns out that this would be _much_ more work than I initially thought. Key problem is that particles near a periodic boundary are "mirrored" between two worker processes, i.e. each worker process has one copy of the particle and we would need to keep track of the velocity difference between the two particles. This would require the addition of a new member variable to the particle class - which in turn would make changes in a lot of other parts of the code neccessary.

Steffen

Revision history for this message
Bin Cheng (bincheng) said :
#3

Thanks SteffenAbe, that solved my question.

Revision history for this message
Bin Cheng (bincheng) said :
#4

Hi Steffen,

Thanks for you reply, and I think your answer has solved my questions.

But beyond that, could you please tell me which files I should read and change? And when will us get the new version of ESyS-Particle? I am looking forward to try new features in next release.

Thanks,

Bin.

Revision history for this message
Launchpad Janitor (janitor) said :
#5

This question was expired because it remained in the 'Open' state without activity for the last 15 days.