Ejemplo n.º 1
0
 def setUp(self):
     self.sys_basic = system.Cylinder1D(radius=1,
                                        wavenumber=1,
                                        gamma=1,
                                        kappa=1,
                                        alpha=-1,
                                        C=1,
                                        u=1,
                                        n=1)
     self.sys_low_wvn = system.Cylinder1D(radius=1,
                                          wavenumber=0.8,
                                          gamma=1,
                                          kappa=1,
                                          alpha=-1,
                                          C=1,
                                          u=1,
                                          n=1)
     self.sys_high_wvn = system.Cylinder1D(radius=1,
                                           wavenumber=1.2,
                                           gamma=1,
                                           kappa=1,
                                           alpha=-1,
                                           C=1,
                                           u=1,
                                           n=1)
Ejemplo n.º 2
0
 def setUp(self):
     self.sys_basic = system1D.Cylinder1D(radius=1,
                                          wavenumber=1,
                                          gamma=1,
                                          kappa=1,
                                          alpha=-1,
                                          C=1,
                                          u=1,
                                          n=1)
     self.sys_small_radius = system1D.Cylinder1D(radius=0.5,
                                                 wavenumber=1,
                                                 gamma=1,
                                                 kappa=1,
                                                 alpha=-1,
                                                 C=1,
                                                 u=1,
                                                 n=1)
     self.sys_n6 = system1D.Cylinder1D(radius=1,
                                       wavenumber=1,
                                       gamma=1,
                                       kappa=1,
                                       alpha=-1,
                                       C=1,
                                       u=1,
                                       n=6)
Ejemplo n.º 3
0
 def setUp(self):
     self.sys_basic = system.Cylinder1D(
         radius=1,
         wavenumber=1.001,
         gamma=1,
         kappa=1,
         alpha=-1,
         C=1,
         u=1,
         n=1,
         num_field_coeffs=0
     )  # not exactly wavenumber 1 to know expected stability: surface area should decrease with a !=0
     self.sys_low_wvn = system.Cylinder1D(radius=1,
                                          wavenumber=0.8,
                                          gamma=1,
                                          kappa=1,
                                          alpha=-1,
                                          C=1,
                                          u=1,
                                          n=1,
                                          num_field_coeffs=0)
     self.sys_high_wvn = system.Cylinder1D(radius=1,
                                           wavenumber=1.2,
                                           gamma=1,
                                           kappa=1,
                                           alpha=-1,
                                           C=1,
                                           u=1,
                                           n=1,
                                           num_field_coeffs=0)
Ejemplo n.º 4
0
 def setUp(self):
     self.sys_basic = system1D.Cylinder1D(radius=1,
                                          wavenumber=1,
                                          gamma=1,
                                          kappa=1,
                                          alpha=-1,
                                          C=1,
                                          u=1,
                                          n=1,
                                          num_field_coeffs=3)
     # 1D field z-wavenumber = [-n ,..., 0, ...,  +n]
     self.sys_basic_2d = system2D.Cylinder2D(radius=1,
                                             wavenumber=1,
                                             gamma=1,
                                             kappa=1,
                                             alpha=-1,
                                             C=1,
                                             u=1,
                                             n=1,
                                             num_field_coeffs=(3, 0))
     # functionally identical system with 2D field
     # theta-wavenumebr = [0] only, z-wavenumber = [-n ,..., 0, ...,  +n]
     random_values = [(random.uniform(-1, 1) + random.uniform(-1, 1) * 1j)
                      for i in range(7)]  #random complex coeffs
     self.field_coeffs = np.array(random_values)
     self.field_coeffs_2d = np.array([random_values
                                      ])  #same values, as 7x1 2D array
Ejemplo n.º 5
0
 def setUp(self):
   """
   with num_field_coeffs=1, the A matrix is 3x3
   """
   self.radius=1
   self.wavenumber=1
   self.sys_basic = cylinder1D.Cylinder1D(radius=self.radius, wavenumber=self.wavenumber, gamma=1, kappa=1, 
                                          alpha=-1, C=1, u=1, n=1, num_field_coeffs=1)
   #prompt fillling of tmp_A_integrals[diff], tmp_A_matrix[j,j'], with a!=0
   #so we can see if it's filled "the wrong way around" when assymetrix
   self.sys_basic.evaluate_A_integrals(amplitude=.9)
Ejemplo n.º 6
0
 def setUp(self):
     """
 with num_field_coeffs=1, the A matrix is 3x3
 """
     self.radius = 1
     self.wavenumber = 1
     self.expected_A_integral_0 = math.pi * 2 * self.radius / self.wavenumber
     self.sys_basic = cylinder1D.Cylinder1D(radius=self.radius,
                                            wavenumber=self.wavenumber,
                                            gamma=1,
                                            kappa=1,
                                            alpha=-1,
                                            C=1,
                                            u=1,
                                            n=1,
                                            num_field_coeffs=1)
     #prompt evaluation of integrals, fill of matrix elemnts
     self.sys_basic.evaluate_A_integrals(amplitude=0)
Ejemplo n.º 7
0
 def setUp(self):
     """
 with num_field_coeffs=0, there will be 1 field mode j=0 and one 
 matrix element of A j=0, j'=0
 """
     self.radius = 1
     self.wavenumber = 1
     self.expected_A_integral_0 = math.pi * 2 * self.radius / self.wavenumber + 0j
     self.sys_basic = cylinder1D.Cylinder1D(radius=self.radius,
                                            wavenumber=self.wavenumber,
                                            gamma=1,
                                            kappa=1,
                                            alpha=-1,
                                            C=1,
                                            u=1,
                                            n=1,
                                            num_field_coeffs=0)
     #prompt fillling of tmp_A_integrals[diff], tmp_A_matrix[j,j']
     self.sys_basic.evaluate_A_integrals(amplitude=0)
Ejemplo n.º 8
0
alpha = 1
u = 0
C = 0
n = 0
wavenumber = 1
kappa = 0
a = .9
n_coeffs = 20
title = "-.png"

sys = system.Cylinder1D(alpha=alpha,
                        n=n,
                        C=C,
                        u=u,
                        wavenumber=wavenumber,
                        kappa=kappa,
                        radius=1,
                        gamma=1,
                        num_field_coeffs=n_coeffs)
#prompt cylinder to fill A, B, D matrices
sys.evaluate_A_integrals(amplitude=a)
sys.evaluate_B_integrals(amplitude=a)
matrix = alpha * sys.tmp_A_matrix + C * sys.tmp_B_integrals
print(matrix)
plt.imshow(abs(matrix))
plt.xticks(range(0, 2 * n_coeffs + 2, 5), range(-n_coeffs, n_coeffs + 1, 5))
plt.yticks(range(0, 2 * n_coeffs + 2, 5), range(-n_coeffs, n_coeffs + 1, 5))
plt.colorbar()
plt.title("G^-1, a = " + str(a) + " C = " + str(C) + " n = " + str(n))
plt.savefig(title)