# File ms4body_old.rb, line 133 def ms4pc(dt) if @nsteps == 0 @ap3 = acc rk4(dt) elsif @nsteps == 1 @ap2 = acc rk4(dt) elsif @nsteps == 2 @ap1 = acc rk4(dt) @ap0 = acc else old_pos = pos old_vel = vel jdt = @ap0*(11.0/6.0) - @ap1*3 + @ap2*1.5 - @ap3/3.0 sdt2 = @ap0*2 - @ap1*5 + @ap2*4 - @ap3 cdt3 = @ap0 - @ap1*3 + @ap2*3 - @ap3 @pos += vel*dt + (@ap0/2.0 + jdt/6.0 + sdt2/24.0)*dt*dt @ap3 = @ap2 @ap2 = @ap1 @ap1 = @ap0 @ap0 = acc jdt = @ap0*(11.0/6.0) - @ap1*3 + @ap2*1.5 - @ap3/3.0 sdt2 = @ap0*2 - @ap1*5 + @ap2*4 - @ap3 cdt3 = @ap0 - @ap1*3 + @ap2*3 - @ap3 @vel = old_vel + @ap0*dt + (-jdt/2.0 + sdt2/6.0 - cdt3/24.0)*dt #1 @pos = old_pos + vel*dt + (-@ap0/2.0 + jdt/6.0 - sdt2/24.0)*dt*dt end end