Chronology Current Month Current Thread Current Date
[Year List] [Month List (current year)] [Date Index] [Thread Index] [Thread Prev] [Thread Next] [Date Prev] [Date Next]

[Phys-L] Velocity-Verlet with dissipation



As written much on phys-l, the symplectic integrators assume no dissipation. I’ve found this quite true for a SHO w/ linear dissipation (the term 0.01*thetadot). However, I’ve discovered an article that describes a modified V-V resulting is orders of magnitude better fit with the analytic solution. It’s, as bc translated from JD’s original, here:

=====================

// acceleration at beginning of interval:

double A = - ((4*pi*pi)/(period*period))*(1+deltag_now) * theta - r*thetadot +da;

// note the absence of the dissipation term for the n-1 force

double Athetaprevious = - ((4*pi*pi)/(period*period))*(1+deltag_now) * theta +da;

theta = theta + deltat * thetadot + A * deltat * deltat / 2 ;

//acceleration (force) recalculated without dissipation


double Atheta = - ((4*pi*pi)/(period*period))*(1+deltag_now) * theta +da;

//note dissipation constant in new speed calculation


thetadot = (1 / (1+ deltat*r/2))* (thetadot*(1-deltat*r/2)) + (Atheta + Athetaprevious) * deltat/2;


t = t + deltat; // keep track of elapsed time



The “gory” detail is here:

‎physics.bu.edu/py502/lectures3/cmotion.pdf

http://physics.bu.edu/py502/lectures3/cmotion.pdf

And a “slide” projection version (It’s slightly different.):

‎physics.bu.edu/py502/slides/l06.pdf

http://physics.bu.edu/py502/slides/l06.pdf

About the author:

Anders Sandvik

http://physics.bu.edu/~sandvik/

==============================

The majority of my pendulum simulations use < r*thetadot*abs(thetadot) > as the dissipation term. So when I rewrote with the Sandvik solution I forgot to change it. Curiously, the result using 1e6 steps for a one second period is very little different from the linear version. (WRT difference between numerical resut and linear analytic)

bc several times visited a Sandvik engineer in Sandviken. (Sweden not Finland)