LinDampingPrms

Asked by Thomas Wagner

I don't understand the physical meaning of the two LinDampingPrms viscosity and maxIterations. Hence, how to derive a dynamic or kinematic viscosity value from these parameters? How is the change in kinetic energy or the Stokes force calculated?

With kind regards,
Thomas.

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
Dion Weatherley (d-weatherley) said :
#1

Hi Thomas,

The LinDampingPrms implements a simply bulk viscosity force, F_visc = -1.0 * viscosity * V , where V is the velocity of the particle. In order to compute the net force on a particle in the presence of such a viscous term, it is necessary to use a convergence loop. This is because we only know the velocity of a particle at the previous timestep when computing new forces (and accelerations). To ensure the correct viscous force is applied we need to iterate to compute the correct V.

maxIterations determines the maximum number of iterations of this convergence loop. In most cases the loop converges very quickly (say <10 iterations) so setting maxIterations=50 is usually sufficient to cover the few cases where the loop diverges.

Steffen Abe (a lead developer of ESyS-Particle) has now joined us on Launchpad. He may be able to provide more info on this.

Hope this helps.

Dion.

Revision history for this message
Thomas Wagner (thwagner) said :
#2

Hi Dion,

this answered my question in full detail. One needs to iterate the velocity Verlet algorithm, since the F_visc depends on the velocity. Thank you very much. However, I wonder why F_visc does not depend on the particle diameter. Maybe the pupose of this interaction class is not to model drag forces but to attenuate the kinetic energy of the particles.

Has someone tried to include dissipativ particle dynamics in ESys-Particle?

Cheers,
Thomas.

Revision history for this message
Best Dion Weatherley (d-weatherley) said :
#3

Hi Thomas,

You are exactly right: the purpose of the LinDampingPrms is to attenuate kinetic energy of particles. It was introduced when we were studying dynamic earthquake rupture and wave propagation. The model consisted of a fracture plane that was continuously sheared at a constant rate. Friction along the fracture surface caused stick-slip cycles similar to earthquakes. During slip, elastic energy is released as seismic waves. To avoid unphysical buildup of kinetic energy we introduced the artificial viscosity.

As yet, no-one has implemented dissipative particle dynamics in ESyS-Particle. That's largely because we haven't yet used the model to study phenomena requiring this type of dynamics. When it comes to particle-particle interactions or body forces, those currently available reflect the needs of researchers using the code to date. That is not to say we cannot implement dissipative particle dynamics. On the contrary, ESyS-Particle has been designed so that new interaction laws are relatively easy to implement. A particular interaction type is implemented in a module (residing in the Model/ directory of the source code), the main task being to implement how the force on a particle or particle-pair is calculated. There are no special considerations just because the code works in parallel. These are all handled elsewhere in the code. Thank goodness for object-oriented design!

I plan to write some notes/documentation on how to implement new interactions soon. There are a few places in the code that need to be updated to expose new interactions in the Python interface but it isn't overly onerous.

Cheers,

Dion.

Revision history for this message
Thomas Wagner (thwagner) said :
#4

Thanks Dion Weatherley, that solved my question.