I am trying to calculate the solid angle subtended by arbitrary-shaped loops on a sphere's surface.

First, I parametrize circular loops by:

$$\theta(t,k_{x0},r) = k_{x_0} + r \cos(t);$$ $$\phi(t,k_{y0},r) = k_{y_0} + r \sin(t);$$

where $0\leq t\leq2\pi$, and $k_{x_0}$, $k_{y_0}$ define the loop's center. So, we can say that this step draws out a circular loop on the $\theta/\phi$ plane.

Then I project these onto the sphere's surface using spherical coordinates, as follows:

$$x(\theta,\phi)=r \cos{\theta}\sin{\phi}, y(\theta,\phi)=r \sin{\theta}\sin{\phi}, z(\theta,\phi)=r \cos{\phi}$$

How do I go about calculating the surface area within these $(x,y,z)$ loops on the surface? This will allow me to calculate the solid angle I need.

The solid angle is given by: $$\Omega= \iint_S \frac{\hat{r}\cdot\hat{n}}{r^2} \, \mathrm{d}\Sigma = \iint_{\mathcal{R}}\sin \theta \, \mathrm{d} \theta \, \mathrm{d} \phi=\frac{\textrm{spherical surface area}}{r^2}$$

I tried using various types of RegionMeasures to calculate this area (such as defining the area within the loop on the sphere as a Region, and by varying the radius from 0 to r, calculating the length of each loop in between and summing it all up), but I feel like I am missing a simple answer to my problem. Maybe what I am missing is a way to somehow map my arbitrary loops into a appropriate integration bounds for $\Omega$, but I tried to avoid this by resorting to Mathematica.

So far, I found the following posts most useful:

Integrate to calculate enclosed area


Thanks in advance for your time!

Note: I am parametrizing these loops in a peculiar way because I am trying to investigate a physics problem where the functions $x(\theta,\phi),y(\theta,\phi),z(\theta,\phi)$ will be different, and make my loops twist and turn. The ultimate goal is to find the solid angle in these cases, but I wanted to start with the sphere.

Note: I posted a similar question before, but it was misinterpreted by answerers because I did a poor job phrasing it at first, and I am afraid that it lost attention and I still am clueless as to how to proceed (I did not want to delete it because others already put time into it).

  • 1
    $\begingroup$ One function, I don't know if you've seen it, that could perhaps compute the solid angle with your parametrization is Area together with spherical coordinates, which can be specified as the third argument. $\endgroup$ – C. E. Feb 27 '19 at 21:14
  • $\begingroup$ @C.E. thank you, I'll test that soon! I remember the page saying that the Area[] function has an argument for the metric. Just out of curiosity do you know whether the metric can be custom, i.e. for an arbitrary shape that is not a sphere? Regardless, if this is the solution, please consider posting it as an answer so that I can accept it as correct. $\endgroup$ – TribalChief Feb 27 '19 at 22:10
  • $\begingroup$ @C.E., my attempt didn't work out because ultimately, my loop is controlled by one variable t (as it is a line integral). Area[] requires at least 2, and I thought about using Stokes' theorem to convert my loop integral into an area integral, but the way forward is not too clear. $\endgroup$ – TribalChief Feb 28 '19 at 0:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.