コード例 #1
0
ファイル: tools.py プロジェクト: shawnafk/LH_tools
 def kvert_es(self, n, B, kpp, omega):
     w_ce = unit.Oce(B, self.U)
     w_pe = unit.Ope(n, self.U)
     w_pi = unit.Opi(self.m, self.q, n, self.U)
     kvt = 1 - (w_pi / omega)**2 + (w_pe / w_ce)**2
     k11 = 1 - (w_pe / omega)**2
     return np.sqrt(-(kpp**2 * k11 / kvt))
コード例 #2
0
ファイル: tools.py プロジェクト: shawnafk/LH_tools
 def omegakv_es(self, n, B, k_para, omega, vte):
     w_ce = unit.Oce(V, self.U)
     w_pe = unit.Ope(n, self.U)
     w_pi = unit.Opi(self.m, self.q, n, self.U)
     kv = []
     kperp_pre = kL(k_para, omega, w_pe, w_ce, w_pi)
     if (np.isreal(kperp_pre) and kperp_pre > 0):
         kv.append(np.sqrt(kperp_pre))
     return kv
コード例 #3
0
ファイル: tools.py プロジェクト: shawnafk/LH_tools
 def gamma(self, n, B, kpara, omega, vt):
     w_pe = unit.Ope(n, self.U)
     w_pi = unit.Opi(self.m, self.q, n, self.U)
     kvert = kvert_es(self, n, B, kpara, omega)
     K = (kpara**2 + kvert**2)**0.5
     ld = vt / wpe
     gamma = np.sqrt(
         np.pi) / K**2 / ld**2 * omega / 2**0.5 / kpara / vt * exp(
             -(omega / kpara / vt)**2 /
             2) / (kvert**2 / K**2 * w_pi**2 / omega**3 +
                   kpara**2 / K**2 * w_pe**2 / omega**3) / 2
     return gamma
コード例 #4
0
ファイル: tools.py プロジェクト: shawnafk/LH_tools
    def omegakv_esh(self, n, B, k_para, omega, vte):
        w_ce = unit.Oce(B, self.U)
        w_pe = unit.Ope(n, self.U)
        w_lh = w_pi / (1 + w_pe**2 / w_ce**2)**0.5

        kv = []
        P0 = self.m * k_para**2
        P2 = 1 - omega**2 / w_lh**2
        P4 = 0.75 * vte**2 / w_ce**2
        for _ in np.roots([P4, P2, P0]):
            if (np.isreal(_) and _ > 0):
                kv.append(np.sqrt(_ - k_para**2))
        return kv
コード例 #5
0
ファイル: tools.py プロジェクト: shawnafk/LH_tools
 def pomega(self, n, B):
     w_ce = unit.Oce(B, self.U)
     w_pe = unit.Ope(n, self.U)
     w_pi = unit.Opi(self.m, self.q, n, self.U)
     w_ci = unit.Oci(self.m, self.q, B, self.U)
     w_gmg = np.sqrt(w_ci * w_ce)
     w_lh = w_pi / (1 + w_pe**2 / w_ce**2)**0.5
     print('w_ce={:f}'.format(w_ce))
     print('w_pe={:f}'.format(w_pe))
     print('w_ci={:f}'.format(w_ci))
     print('w_pi={:f}'.format(w_pi))
     print('w_gmg={:f}'.format(w_gmg))
     print('w_lh={:f}'.format(w_lh))
コード例 #6
0
ファイル: tools.py プロジェクト: shawnafk/LH_tools
 def vg(self, n, B, kp, w):
     kvert = kvert_es(self, n, B, kp, w)
     w_ce = unit.Oce(B, self.U)
     w_pe = unit.Ope(n, self.U)
     w_pi = unit.Opi(self.m, self.q, n, self.U)
     w_ci = unit.Oci(self.m, self.q, B, self.U)
     vgv = (-1. * (-((kp**2 * (1 - wpe**2 / w**2)) /
                     (1 + wpe**2 / wce**2 - wpi**2 / w**2)))**0.5 *
            (1. * w**2 * wce**2 + 1. * w**2 * wpe**2 - 1. * wce**2 * wpi**2)
            **2) / (
                kp**2 * w * wce**2 *
                (1. * wce**2 * wpe**2 + 1. * wpe**4 - 1. * wce**2 * wpi**2))
     vgp = -kvert / kp * vgv
     return vgp, vgv
コード例 #7
0
ファイル: tools.py プロジェクト: shawnafk/LH_tools
 def omegakv_hot(self, n, B, k_para, omega, vte):
     c = 1
     w_ce = unit.Oce(B, self.U)
     w_pe = unit.Ope(n, self.U)
     w_pi = unit.Opi(self.m, self.q, n, self.U)
     w_ci = unit.Oci(self.m, self.q, B, self.U)
     kv = []
     n_para = k_para * c / omega
     epsi_perp = 1 + (w_pe / w_ce)**2 - (w_pi / omega)**2
     epsi_para = 1 - (w_pe / omega)**2 - (w_pi / omega)**2
     epsi_xy = (w_pe)**2 / (w_ce * omega)
     P0 = epsi_para * ((n_para**2 - epsi_perp)**2 - epsi_xy**2)
     P2 = (epsi_perp + epsi_para) * (n_para**2 - epsi_perp) + epsi_xy**2
     P4 = epsi_perp
     P6 = 0.75 * (w_pe * omega / w_ce**2)**2 * vte**2
     for _ in np.roots([P6, P4, P2, P0]):
         if (np.isreal(_) and _ > 0):
             kv.append(np.sqrt(_) * omega / c)
     return kv
コード例 #8
0
ファイル: tools.py プロジェクト: shawnafk/LH_tools
 def omegakv(self, n, B, k_para, omega):
     w_ce = unit.Oce(B, self.U)
     w_pe = unit.Ope(n, self.U)
     w_pi = unit.Opi(self.m, self.q, n, self.U)
     w_ci = unit.Oci(self.m, self.q, B, self.U)
     kv = []
     c = 1
     n_para = k_para * c / omega
     epsi_perp = 1 + (w_pe / w_ce)**2 - (w_pi / omega)**2
     epsi_para = 1 - (w_pe / omega)**2 - (w_pi / omega)**2
     epsi_xy = (w_pe)**2 / (w_ce * omega)
     P0 = epsi_para * ((n_para**2 - epsi_perp)**2 - epsi_xy**2)
     P2 = (epsi_perp + epsi_para) * (n_para**2 - epsi_perp) + epsi_xy**2
     P4 = epsi_perp
     for _ in np.roots([P4, P2, P0]):
         if (np.isreal(_) and _ > 0):
             kv.append(np.sqrt(_) * omega / c)
     #return n*w/c = k
     return kv