Source code for pyleecan.Functions.Geometry.comp_flower_arc
# -*- coding: utf-8 -*-
from numpy import arctan, exp, sqrt, tan
[docs]def comp_flower_arc(alpha, Rarc, Rext):
"""Compute the angle and end of a "flower arc".
Parameters
----------
alpha : float
Angular width of the arc (angle(z_top_feft)=alpha/2)
Rarc : float
The radius of the arc to draw [m]
Rext : float
The radius of the external arc ((Rext,0) is on the
flower arc) [m]
Returns
-------
(alpha_lim,z_top_left,z_top_right) : (float, complex, complex)
alpha_lim: angle of the arc [ard]
z_top_left: first point of the arc
z_top_right: second point fo the arc
"""
# For readibility
R = Rarc
T = tan(alpha / 2)
# Computation of the angle of the Arc (analitical solution for
# equation : tan(alpha_mag/2) = Rsin(alpha)/(Rext-R(1-cos(alpha))
alpha_lim1 = -2 * arctan(
(R + sqrt(R ** 2 + 2 * R * Rext * T ** 2 - Rext ** 2 * T ** 2))
/ (T * (2 * (R - Rext)))
)
alpha_lim2 = -2 * arctan(
(R - sqrt(R ** 2 + 2 * R * Rext * T ** 2 - Rext ** 2 * T ** 2))
/ (T * (2 * R - Rext))
)
alpha_lim = min(abs(alpha_lim1), abs(alpha_lim2))
z_top_left = R * exp(+1j * alpha_lim) + (Rext - R)
z_top_right = R * exp(-1j * alpha_lim) + (Rext - R)
return (alpha_lim, z_top_left, z_top_right)