zhanglw0521
If the input of cart2spher is $(0,0,0)$ under Cartesian, it returns NaN for the field $\cos\theta$, which leads to a state that cannot be recognised by function `evaluate`. Can we map Cartesian $(0,0,0)$ to something like $(0,1,0,1,0)$ under the spherical coordinate system (though we can choose both angles freely...). e.g., change it to ``` function cart2spher(R::AbstractVector) @assert length(R) == 3 r = norm(R) if r == 0 return SphericalCoords(0.0, 1.0, 0.0, 1.0, 0.0) end φ = atan(R[2], R[1]) sinφ, cosφ = sincos(φ) cosθ = R[3] / r sinθ = sqrt(R[1]^2+R[2]^2) / r return SphericalCoords(r, cosφ, sinφ, cosθ, sinθ) end ```