POV-Ray : Newsgroups : povray.off-topic : Numerical approximation of the gravity of a torus : Numerical approximation of the gravity of a torus Server Time
3 Sep 2024 11:25:52 EDT (-0400)
  Numerical approximation of the gravity of a torus  
From: Warp
Date: 3 Mar 2011 15:36:55
Message: <4d6ffbe6@news.povray.org>
In another forum I was pondering about the gravity field of a torus
(ie. imagine you had eg. a torus-shaped planet: What would be the direction
and strength of gravity at different points on its surface?)

  Two possibilities were suggested: The analytical (and thus exact) way,
which would require solving a complicated volume (ie. triple) integral,
and numerical approximation.

  The numerical approximation is simpler in principle, but there are some
difficulties.

  One way to numerically approximate the result would be to fill the torus
with point masses and then sum up their gravity on the tested location.
If we assume that the torus has even density, filling it up with point
masses is actually non-trivial.

  There are two possibilities:

  1) All the point masses have the same mass (ie. the total mass of the
torus divided by the number of points) and are distributed evenly inside
the torus. This is a bit problematic because coming up with an even
distribution of points inside a torus is not easy. Basically it would
mean that you would have to divide the torus into polyhedrons of the
same volume, and put the point masses at their center. However, subdividing
a torus into polyhedrons of the same volume is not trivial.

  2) Instead, we subdivide the torus into polyhedrons of arbitrary size
and scale the mass of the points in relation to the volume of the polyhedron.
(In other words, the masses are scaled according to the local point
density.)

  The second option might be the easiest to do, as it allows for a simple
distribution function for the points which does not need to be strictly
even.

  The easiest division of the torus would be to divide it into slices,
each slice is divided into sections (each such section would thus
effectively be a pyramid with the base on the surface of the torus and
the apex on the central major-radius circle of the torus), and then each
section into polyhedrons (from the base towards the apex of the pyramid).

  One way to easily achieve this programmatically is to simply create
points on the surface of toruses of increasing minor radius (the major
radius being the same as the original torus we are dealing with).

  The problem is deciding what the mass of these points should be. As said,
they can't have equal mass because else you would end up with very uneven
density (the torus would be significantly denser deep inside and less
dense closer to the surface).

  If we think about the points inside one of the slices, the masses should
be, if I understand correctly, proportional to the square of the distance
from the center. This gives you a disc of even density. (However, I'm not
sure now if there should be a constant factor involved...)

  However, that alone is not enough. There's another aspect that has to
be considered: The points would be distributed less densely on the outer
rim of the torus and more densely on the inner rim. Thus they have to be
also scaled according to their distance from the center of the torus.
I'm not exactly sure what the formula would be.

  Since we want the entire torus to have a certain mass m, the sum of
all the point masses have to be that. However, that's actually trivial:
Simply use whatever values are most convenient to create the points, and
then just divide by the sum of the original masses and multiply by m.

  However, the exact formulas to determine the masses of the points is
a bit fuzzy to me. Perhaps someone could help a bit?

-- 
                                                          - Warp


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.