problem with force2dComputations(False)

Asked by Tao

Hi all,
I am using ESyS-Particle to simulate the sedimentation of granular material under gravity force. At first, I used the command: sim.force2dComputations(True) which would force the movement of particles only in X-Y direction. The simulation went on without any problem.

As I want to simulate the free dropping case, I changed the command as: sim.force2dComputations(False). This change would lead the simulation unstable that particles would have very big velocities and move out of the boundaries of the model. The time-step of the simulation is 1e-5 s for the two simulations.

Then, I tried to decrease the time-step as 1e-6 s. At this moment, the simulation became better. However, when I checked the createCheckPointer files, I found some unreasonable results that the velocity of one single particle would be (76209.7065 -28515.808 132513.842) which is obvious wrong for my simulation.

I also tried to use the code below to get the velocity and force of one single particle:

particles = sim.getParticleList()
for pp in particles:
    uu = pp.getVelocity()
    FF = pp.getForce()

I got one error when I ran the code as:
--------------------------------------------------------------------------
mpiexec noticed that process rank 0 with PID 7897 on node engs-19052 exited on signal 11 (Segmentation fault).
--------------------------------------------------------------------------
I found that the line: FF = pp.getForce() causes the above problem, but I do not know why.

I do not know what's going on with the two problems. I wonder what cause this problem and if I can still use this command force2dComputations(False) in my simulation.

Thanks.

Tao

Question information

Language:
English Edit question
Status:
Solved
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Solved by:
Dion Weatherley
Solved:
Last query:
Last reply:
Revision history for this message
Best Dion Weatherley (d-weatherley) said :
#1

Hi Tao,

For a start, try removing "force2dComputations(False)" from your script. Either comment it out or delete it. This will ensure that ESyS-Particle will do full 3D calculations.

If your particles have a range of sizes, your timestep increment may still be too large to ensure numerical stability for the smallest particles. Use one of the following formulae to compute a suitable timestep increment:

Dt <= 0.1 sqrt ( 4.*pi*rho*Rmin**(3.)/3./Kmax/Rmax)

where
Dt = timestep increment
rho = particle density
Rmin = minimum particle radius
Rmax = maximum particle radius
Kmax = largest elastic stiffness for any interaction group

OR

Dt <= Rmin / Vmax

where Vmax = maximum expected particle speed.

You should ensure that Dt is small enough to satisfy both these conditions.

Regarding the segmentation fault, I will look into this and get back to you.

Cheers,

Dion

Revision history for this message
Tao (aaronztao) said :
#2

Thanks Dion Weatherley, that solved my question.