Methods
- M
- N
Attributes
[RW] | mass | |
[RW] | vx | |
[RW] | vy | |
[RW] | vz | |
[RW] | x | |
[RW] | y | |
[RW] | z |
Class Public methods
new(x, y, z, vx, vy, vz, mass)
Link
Instance Public methods
move_from_i(bodies, nbodies, dt, i)
Link
# File benchmark/bm_so_nbody.rb, line 23 def move_from_i(bodies, nbodies, dt, i) while i < nbodies b2 = bodies[i] dx = @x - b2.x dy = @y - b2.y dz = @z - b2.z distance = Math.sqrt(dx * dx + dy * dy + dz * dz) mag = dt / (distance * distance * distance) b_mass_mag, b2_mass_mag = @mass * mag, b2.mass * mag @vx -= dx * b2_mass_mag @vy -= dy * b2_mass_mag @vz -= dz * b2_mass_mag b2.vx += dx * b_mass_mag b2.vy += dy * b_mass_mag b2.vz += dz * b_mass_mag i += 1 end @x += dt * @vx @y += dt * @vy @z += dt * @vz end