Module qfly.utils
Expand source code
import math
def sqrt(x):
"""
Calculate sqrt while avoiding rounding errors with slightly negative x.
Parameters
----------
x : float
Number to calculate square root of.
"""
if x < 0.0:
return 0.0
return math.sqrt(x)
def pol2cart(r, phi):
"""
Convert from polar (rho, phi)
to cartesian (x, y) coordinates.
Parameters
----------
r : float
Radial distance to origin.
(Unit: m)
phi : float
Azimuthal angle.
(Unit: degrees)
"""
x = r * math.cos(math.radians(phi))
y = r * math.sin(math.radians(phi))
return(x, y)
def sph2cart(r, theta, phi):
"""
Convert from spherical (rho, theta, phi)
to cartesian (x, y, z) coordinates.
Parameters
----------
r : float
Radial distance to origin.
(Unit: m)
theta : float
Polar angle.
(Unit: degrees)
phi : float
Azimuthal angle.
(Unit: degrees)
"""
x = r * math.sin(math.radians(theta)) * math.cos(math.radians(phi))
y = r * math.sin(math.radians(theta)) * math.sin(math.radians(phi))
z = r * math.cos(math.radians(theta))
return(x, y, z)
Functions
def pol2cart(r, phi)-
Convert from polar (rho, phi) to cartesian (x, y) coordinates.
Parameters
r:float- Radial distance to origin. (Unit: m)
phi:float- Azimuthal angle. (Unit: degrees)
Expand source code
def pol2cart(r, phi): """ Convert from polar (rho, phi) to cartesian (x, y) coordinates. Parameters ---------- r : float Radial distance to origin. (Unit: m) phi : float Azimuthal angle. (Unit: degrees) """ x = r * math.cos(math.radians(phi)) y = r * math.sin(math.radians(phi)) return(x, y) def sph2cart(r, theta, phi)-
Convert from spherical (rho, theta, phi) to cartesian (x, y, z) coordinates.
Parameters
r:float- Radial distance to origin. (Unit: m)
theta:float- Polar angle. (Unit: degrees)
phi:float- Azimuthal angle. (Unit: degrees)
Expand source code
def sph2cart(r, theta, phi): """ Convert from spherical (rho, theta, phi) to cartesian (x, y, z) coordinates. Parameters ---------- r : float Radial distance to origin. (Unit: m) theta : float Polar angle. (Unit: degrees) phi : float Azimuthal angle. (Unit: degrees) """ x = r * math.sin(math.radians(theta)) * math.cos(math.radians(phi)) y = r * math.sin(math.radians(theta)) * math.sin(math.radians(phi)) z = r * math.cos(math.radians(theta)) return(x, y, z) def sqrt(x)-
Calculate sqrt while avoiding rounding errors with slightly negative x.
Parameters
x:float- Number to calculate square root of.
Expand source code
def sqrt(x): """ Calculate sqrt while avoiding rounding errors with slightly negative x. Parameters ---------- x : float Number to calculate square root of. """ if x < 0.0: return 0.0 return math.sqrt(x)