Calculating velocity component using polar coordinates - Python

1.1k views Asked by At

In the code below I have calculated the rotation velocity as a function of radius (V_r) for a cartesian grid of xy coordinates, converting the xy coordinates to the polar coordinate r.

I then calculate the polar coordinate phi by taking the arctan(y/x) and from this calculate the V_r component in y using cos(phi) * V_r = V_y:

res = 100

x = np.linspace(-1.2,1.2,res)
y = np.linspace(-1.2,1.2,res)

r = np.sqrt(x**2 + y**2)

phi = np.arctan2(y, x)
cosphi = abs(np.cos(phi))



# Velocity Const.
V0 = 200.
# Constants for scaling r
rpe = 0.164 
alpha = 0.002


V_r = V0 * (1 - np.exp(-r/rpe)) * (1 + (alpha * r / rpe))

V_los = V_r * abs(np.cos(phi))

plt.figure()
plt.plot(r, V_los)

There is no need to actually create arrays x and y, converting to r and phi. I know I can simply input the polar coordinates.

However I am struggling to achieve the same result whereby at phi = 0 (i.e. cos(phi)=1) the V_r = V_y, or at cos(phi) = 0 thus V_y = 0.

How can I input the arrays r and phi to achieve the same result?

0

There are 0 answers