DESC
DESC copied to clipboard
Define unit surface normal vectors for surfaces which lack all three covariant basis vectors
For surfaces which are constant in one coordinate (like FourierRZToroidalSurface, a constant $\rho$ surface), we only have two covariant basis vectors defined (e_theta and e_zeta in this case). We cannot define a contravariant basis vector that usually the unit normal is defined with (e^theta = $\nabla \rho$ is undefined for FourierRZToroidalSurface), however we can define the unit surface normal. In FourierRZToroidalSurface case and for the unit normal to the constant rho surface, $n_{\rho} = \frac{\nabla \rho}{||\nabla \rho||}$, and:
$$ \begin{align} \nabla \rho &= \frac{1}{\sqrt{g}} \mathbf{e}{\theta} \times \mathbf{e}{\zeta} \ ||\nabla \rho|| &= \frac{1}{|\sqrt{g}|} ||\mathbf{e}{\theta} \times \mathbf{e}{\zeta}||\ \mathbf{n}{\rho} = \frac{\nabla \rho}{||\nabla \rho||} &= \frac{1}{||\mathbf{e}{\theta} \times \mathbf{e}{\zeta}||} \mathbf{e}{\theta} \times \mathbf{e}_{\zeta} \end{align} $$
Where the undefined \sqrt{g} (there is not sense of local volume element for the surface as $\mathbf{e}_{\rho}$ is not defined) cancels out.
However this method only defines the unit surface normal to the constant coordinate surface that it is defined as (i.e. $\mathbf{n}{\rho}$ for FourierRZToroidalSurface and $\mathbf{n}{\theta}$ for ZernikeRZToroidalSection). If we want to be able to define for these surfaces the triplet $\mathbf{n}_{x}$ for $x \in [\rho,\theta,\zeta]$, we need some other way to construct the remaining normals.
In a general curvilinear coordinate system, it is impossible to compute the contravariant vectors (even just their normalized directions) without parameterize the ambient space that the surface lives in.
Given that the point of the surface classes are to simplify computation by only parameterizing two coordinates, I suggest closing this issue as not planned.
I would be with Kaya, I made this issue mainly at the suggestion of @f0uriest