]> https://gitweb.dealii.org/ - dealii.git/commitdiff
explicitly mention Spherical-Cartesian transformation 3858/head
authorDenis Davydov <davydden@gmail.com>
Fri, 27 Jan 2017 12:16:12 +0000 (13:16 +0100)
committerDenis Davydov <davydden@gmail.com>
Fri, 27 Jan 2017 14:06:41 +0000 (15:06 +0100)
include/deal.II/base/geometric_utilities.h
source/base/geometric_utilities.cc

index 2dc55c40b2e79515925ce9c79ad947b5b10b6d68..76b4d9a6a6803d15933cf2211d8c5b43b92d491a 100644 (file)
@@ -45,6 +45,13 @@ namespace GeometricUtilities
      * Return spherical coordinates of a Cartesian point @p point.
      * The returned array is filled with radius, azimuth angle $\in [0,2 \pi)$
      * and polar/inclination angle $ \in [0,\pi]$ (ommited in 2D).
+     *
+     * In 3D the transformation is given by
+     * @f{align*}
+     *  r &= \sqrt{x^2+y^2+z^2} \\
+     *  \theta &= {\rm atan}(y/x) \\
+     *  \phi &= {\rm acos} (z/r)
+     * @f}
      */
     template <int dim>
     std_cxx11::array<double,dim>
@@ -52,9 +59,16 @@ namespace GeometricUtilities
 
     /**
      * Return the Cartesian coordinates of a spherical point defined by @p scoord
-     * which is filled with radius $\in [0,\infty)$, azimuth angle
-     * $\in [0,2 \pi)$ and polar/inclination angle $\in [0,\pi]$
+     * which is filled with radius $\in [0,\infty)$, azimuth angle
+     * $\theta \in [0,2 \pi)$ and polar/inclination angle $\phi \in [0,\pi]$
      * (ommited in 2D).
+     *
+     * In 3D the transformation is given by
+     * @f{align*}
+     *  x &= r\, \cos(\theta) \, \sin(\phi) \\
+     *  y &= r\, \sin(\theta) \, \sin(\phi) \\
+     *  z &= r\, \cos(\phi)
+     * @f}
      */
     template <std::size_t dim>
     Point<dim>
index 427cdf2ca562a0ec3394df9fc545617d204eb990..d136537cd41fc8487fa1d570c9194080e7ca1d7d 100644 (file)
@@ -47,13 +47,13 @@ namespace GeometricUtilities
 
       // radius
       scoord[0] = position.norm();
-      // azimuth angle
+      // azimuth angle \theta:
       scoord[1] = std::atan2(position(1),position(0));
       // correct to [0,2*pi)
       if (scoord[1] < 0.0)
         scoord[1] += 2.0*numbers::PI;
 
-      // polar angle
+      // polar angle \phi:
       if (dim==3)
         {
           // acos returns the angle in the range [0,\pi]

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.