Skip to content

Commit e725990

Browse files
Update particle.h
1 parent 4a3b6f3 commit e725990

1 file changed

Lines changed: 19 additions & 21 deletions

File tree

src/struct/particle.h

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,29 @@ inline void Gravity(Particle& a, Particle& b, real dt)
1616
real dx = b.x - a.x;
1717
real dy = b.y - a.y;
1818
real dz = b.z - a.z;
19-
real distSq = dx*dx + dy*dy + dz*dz;
19+
real eps = real(1e-6);
20+
real distSq = dx*dx + dy*dy + dz*dz + eps*eps;
2021
real dist = std::sqrt(distSq);
2122

22-
if (dist > real(1e-5))
23-
{
24-
real invDist = real(1) / dist;
25-
real invDist3 = invDist * invDist * invDist;
23+
real invDist = real(1) / dist;
24+
real invDist3 = invDist * invDist * invDist;
2625

27-
real ax = G * b.m * dx * invDist3;
28-
real ay = G * b.m * dy * invDist3;
29-
real az = G * b.m * dz * invDist3;
30-
31-
real inv_bm = real(1) / b.m;
32-
real scale = -a.m * inv_bm;
26+
real ax = G * b.m * dx * invDist3;
27+
real ay = G * b.m * dy * invDist3;
28+
real az = G * b.m * dz * invDist3;
3329

34-
real bx = ax * scale;
35-
real by = ay * scale;
36-
real bz = az * scale;
30+
real inv_bm = real(1) / b.m;
31+
real scale = -a.m * inv_bm;
3732

38-
a.vx += ax * dt;
39-
a.vy += ay * dt;
40-
a.vz += az * dt;
33+
real bx = ax * scale;
34+
real by = ay * scale;
35+
real bz = az * scale;
4136

42-
b.vx += bx * dt;
43-
b.vy += by * dt;
44-
b.vz += bz * dt;
45-
}
37+
a.vx += ax * dt;
38+
a.vy += ay * dt;
39+
a.vz += az * dt;
40+
41+
b.vx += bx * dt;
42+
b.vy += by * dt;
43+
b.vz += bz * dt;
4644
}

0 commit comments

Comments
 (0)