def GetIncExpansionCoeffs_Amn(self, m, n):
     E0, k, theta_0, c = self.E0, self.k, self.theta, self.c
     eps_m = 2.0
     if m==0:
         eps_m = 1.0
     N_mn = GetInt_Sm_mpn_Sm_mpN(c, m, n-m, n-m)
     A_mn = 2.0* eps_m * pro_ang1(m, n, c, np.cos(theta_0))[0] / N_mn
     
     j_nm1 = 1j**((n-1)%4)
     
     return E0/k * j_nm1 * A_mn
 def GetETMonSurface_expansion(self, etas, ksi_0, phi_0):
     E_0, k, d, c_0 = self.E0, self.k, self.d, self.c
     
     assert phi_0 == 0
     theta_0 = np.pi/2
     n_eta = len(etas)
     E_eta = np.zeros(n_eta, dtype=complex)
     E_ksi = np.zeros(n_eta, dtype=complex)
     N = self.N_max
     for i in range(n_eta):
         eta = etas[i]
         for m in range(N):
             for n in range(m, N):
                 A_mn = self.GetIncExpansionCoeffs_Amn(m, n)
                 E_eta[i] += A_mn * 2*(ksi_0**2 - 1)*GetDerivativeRadialFunc(1, m, n, c_0, ksi_0) \
                                      *pro_ang1(m, n, c_0, eta)[0] \
                                     /(d*np.sqrt(ksi_0**2 - eta**2)*np.sqrt(ksi_0**2 - 1))
                 E_ksi[i] += A_mn * (-2)*(1 - eta**2)*pro_ang1(m, n, c_0, eta)[1] \
                                     *GetRadialFunc(1, m, n, c_0, ksi_0) \
                                     /(d*np.sqrt(ksi_0**2 - eta**2)*np.sqrt(1 - eta**2))
     return E_eta, E_ksi
 def f(x):
     return pro_ang1(m+2, m+n+2, c, x)[0]*pro_ang1(m, m+N, c, x)[0]*x
 def f(x):
     return pro_ang1(m+1, m+n+1, c, x)[1]*pro_ang1(m, m+N, c, x)[0]*x*np.sqrt(1 - x**2)
 def f(x):
     return pro_ang1(m, m+n, c, x)[1]*pro_ang1(m, m+N, c, x)[0]*(1 - x**2)
 def f(x):
     return pro_ang1(m, m+n, c, x)[0]*pro_ang1(m, m+N, c, x)[0]
def GetM_mn_o_z_phi(eta, ksi, phi, m, n, c, d):
    return  2*np.sqrt(-eta**2 + 1)*np.sqrt(ksi**2 - 1)*(-eta*GetRadialFunc(4, m, n, c, ksi)*pro_ang1(m, n, c, eta)[1] + ksi*pro_ang1(m, n, c, eta)[0]*GetDerivativeRadialFunc(4, m, n, c, ksi))*np.sin(phi*m)/(d*(eta**2 - ksi**2))
def GetM_mn_o_z_ksi(eta, ksi, phi, m, n, c, d):
    return  2*ksi*m*GetRadialFunc(4, m, n, c, ksi)*pro_ang1(m, n, c, eta)[0]*np.cos(phi*m)/(d*np.sqrt(-eta**2 + ksi**2)*np.sqrt(ksi**2 - 1))
def GetM_mn_o_z_eta(eta, ksi, phi, m, n, c, d):
    return  -2*eta*m*GetRadialFunc(4, m, n, c, ksi)*pro_ang1(m, n, c, eta)[0]*np.cos(phi*m)/(d*np.sqrt(-eta**2 + 1)*np.sqrt(-eta**2 + ksi**2))
Ejemplo n.º 10
0
def GetM_mminus1n_o_minus_phi(eta, ksi, phi, m, n, c, d):
    return  -(eta*(ksi**2 - 1)*pro_ang1(m, n, c, eta)[0]*GetDerivativeRadialFunc(4, m, n, c, ksi) - ksi*(eta**2 - 1)*GetRadialFunc(4, m, n, c, ksi)*pro_ang1(m, n, c, eta)[1])*np.sin(phi*(m - 1))/(d*(eta**2 - ksi**2))
Ejemplo n.º 11
0
def GetM_mminus1n_o_minus_ksi(eta, ksi, phi, m, n, c, d):
    return  ((1.0-eta**2)*pro_ang1(m, n, c, eta)[1] - eta*m*pro_ang1(m, n, c, eta)[0])*GetRadialFunc(4, m, n, c, ksi)*np.cos(phi*(m - 1))/(d*np.sqrt(-eta**2 + 1)*np.sqrt(-eta**2 + ksi**2))
Ejemplo n.º 12
0
def GetM_mminus1n_o_minus_eta(eta, ksi, phi, m, n, c, d):
    return  ((1.0 - ksi**2)*GetDerivativeRadialFunc(4, m, n, c, ksi) - ksi*m*GetRadialFunc(4, m, n, c, ksi))*pro_ang1(m, n, c, eta)[0]*np.cos(phi*(m - 1))/(d*np.sqrt(-eta**2 + ksi**2)*np.sqrt(ksi**2 - 1))
Ejemplo n.º 13
0
 def f(x):
     return pro_ang1(0, n, c, x)[1]*pro_ang1(1, 1+N, c, x)[0]*x*np.sqrt(1 - x**2)