def MakeProperties(self): self.CartMesh = np.asarray([self.bind.X, self.bind.Y, self.bind.Z]) self.dOmega = _Angle(0, Unit='Radian') self.dOmega.Radian = self.bind.dOmega self.dOmega.Degree = self.bind.dOmega * (180 / pi)**2 self.Omega = _Angle(0, Unit='Radian') self.Omega.Radian = self.bind.Omega self.Omega.Degree = self.bind.Omega * (180 / pi)**2
def ComputeParameters(self): """relation taken from http://optics.hanyang.ac.kr/~choh/degree/[2014-1]%20photonics_graduated/Polarization%20Optics(ch6)new.pdf slide 6""" self.Delay = _Angle(np.angle(self.J[0]) - np.angle(self.J[1]), Unit='Radian') if abs(self.J[1]) == 0: r = 1e6 arg0 = 2 * r / (1 - abs(r)**2) * cos(self.Delay.Radian) arg1 = 2 * r / (1 + abs(r)**2) * sin(self.Delay.Radian) self.Azimuth = _Angle(np.arctan(abs(arg0)) / 2, Unit='Radian') self.Ellipsity = _Angle(np.arcsin(abs(arg1)) / 2, Unit='Radian') elif abs(self.J[0]) == abs(self.J[1]): r = abs(self.J[0]) / abs(self.J[1]) arg0 = cos(self.Delay.Radian) * 1e6 arg1 = sin(self.Delay.Radian) self.Azimuth = _Angle(np.arctan(arg0) / 2, Unit='Radian') self.Ellipsity = _Angle(np.arcsin(arg1) / 2, Unit='Radian') else: r = abs(self.J[0]) / abs(self.J[1]) arg0 = 2 * r / (1 - abs(r)**2) * cos(self.Delay.Radian) arg1 = 2 * r / (1 + abs(r)**2) * sin(self.Delay.Radian) self.Azimuth = _Angle(np.arctan(abs(arg0)) / 2, Unit='Radian') self.Ellipsity = _Angle(np.arcsin(abs(arg1)) / 2, Unit='Radian')
def __init__(self, Angle=None): self.Angle = _Angle(Angle, Unit='Degree') self.Size = self.Angle.Radian.size self.Format = "04.1f" self.Unit = "[Deg]" super().__init__( Vector=[np.cos(self.Angle.Radian), np.sin(self.Angle.Radian)])
def NA2Angle(NA: float) -> np.ndarray: if NA <= 1.0: return _Angle(np.arcsin(NA), Unit='Radian') if NA >= 1.0: return _Angle(np.arcsin(NA - 1) + np.pi / 2, Unit='Radian')
def Theta(self): if not self._Theta: self._Theta = _Angle(self.bind.Theta, Unit='Radian') return self._Theta else: return self._Theta
def Phi(self): if not self._Phi: self._Phi = _Angle(self.bind.Phi, Unit='Radian') return self._Phi else: return self._Phi