예제 #1
0
 def test_IntegrationCase1(self):
     alpha = pi / 4
     m=1.5;a_b=1.1;type=-1
     particle = Spheroid(m,a_b,type)
     particle.set_xv(1)
     nmax = 6
     ebcm = SpheroidalEBCM(particle,nmax)
     b_sca = ebcm.getSolution(TMInputWave(alpha))[0]
     C_ext = getCext(particle, alpha, b_sca, nmax)[0]
     C_sca = getCsca(particle, b_sca, nmax)[0]
     print C_ext, C_sca
     delta = (C_ext-C_sca)/(C_ext+C_sca)
     print delta
     self.assertAlmostEqual(delta,0,5)
     self.assertAlmostEqual(C_ext,C_sca,5)
     self.assertTrue(C_ext>0.)
     self.assertTrue(C_sca>0.)
예제 #2
0
 def test_IntegrationCase1(self):
     alpha = pi / 4
     m = 1.5
     a_b = 1.1
     type = -1
     particle = Spheroid(m, a_b, type)
     particle.set_xv(1)
     nmax = 6
     ebcm = SpheroidalEBCM(particle, nmax)
     b_sca = ebcm.getSolution(TMInputWave(alpha))[0]
     C_ext = getCext(particle, alpha, b_sca, nmax)[0]
     C_sca = getCsca(particle, b_sca, nmax)[0]
     print C_ext, C_sca
     delta = (C_ext - C_sca) / (C_ext + C_sca)
     print delta
     self.assertAlmostEqual(delta, 0, 5)
     self.assertAlmostEqual(C_ext, C_sca, 5)
     self.assertTrue(C_ext > 0.)
     self.assertTrue(C_sca > 0.)
예제 #3
0
def generate_data(a_b,xl,type):
    y=[]
    execution_time=[]

    particle = Spheroid(m,a_b,type)
    particle.set_xl(xl)



    id = str(a_b) + " " + str(xl) + " " + str(type)

    for i in range(n_min,n_max,2):
        nmax = i
        print nmax
        start = time.time()
        svm = SpheroidalSVM(particle,nmax)
        b_sca = svm.getSolution(TMInputWave(alpha))[0]
        C_ext = getCext(particle, alpha, b_sca, nmax)[0]
        C_sca = getCsca(particle, b_sca, nmax)[0]
        delta=(C_ext-C_sca)/(C_ext+C_sca)
        execution_time.append(time.time() - start)
        y.append(delta)

    y= np.fabs(y)
    save("svm_delta"+id,y)
    save("svm_time"+id,execution_time)
    y=[]
    execution_time=[]

    for i in range(n_min,n_max,2):
        nmax = i
        print nmax
        start = time.time()
        ebcm = SpheroidalEBCM(particle,nmax)
        b_sca = ebcm.getMatrixSolution(TMInputWave(alpha))[0]
        C_ext = getCext(particle, alpha, b_sca, nmax)[0]
        C_sca = getCsca(particle, b_sca, nmax)[0]
        delta=(C_ext-C_sca)/(C_ext+C_sca)
        execution_time.append(time.time() - start)
        y.append(delta)

    y= np.fabs(y)
    save("ebcm_m_delta"+id,y)
    save("ebcm_m_time"+id,execution_time)
    y=[]
    execution_time=[]

    for i in range(n_min,n_max,2):
        nmax = i
        print nmax
        start = time.time()
        ebcm = SpheroidalEBCM(particle,nmax)
        b_sca = ebcm.getSolution(TMInputWave(alpha))[0]
        C_ext = getCext(particle, alpha, b_sca, nmax)[0]
        C_sca = getCsca(particle, b_sca, nmax)[0]
        delta=(C_ext-C_sca)/(C_ext+C_sca)
        execution_time.append(time.time() - start)
        y.append(delta)

    y= np.fabs(y)
    save("ebcm_delta"+id,y)
    save("ebcm_time"+id,execution_time)
    y=[]
    execution_time=[]
예제 #4
0
def generate_data(a_b, xl, type):
    y = []
    execution_time = []

    particle = Spheroid(m, a_b, type)
    particle.set_xl(xl)

    id = str(a_b) + " " + str(xl) + " " + str(type)

    for i in range(n_min, n_max, 2):
        nmax = i
        print nmax
        start = time.time()
        svm = SpheroidalSVM(particle, nmax)
        b_sca = svm.getSolution(TMInputWave(alpha))[0]
        C_ext = getCext(particle, alpha, b_sca, nmax)[0]
        C_sca = getCsca(particle, b_sca, nmax)[0]
        delta = (C_ext - C_sca) / (C_ext + C_sca)
        execution_time.append(time.time() - start)
        y.append(delta)

    y = np.fabs(y)
    save("svm_delta" + id, y)
    save("svm_time" + id, execution_time)
    y = []
    execution_time = []

    for i in range(n_min, n_max, 2):
        nmax = i
        print nmax
        start = time.time()
        ebcm = SpheroidalEBCM(particle, nmax)
        b_sca = ebcm.getMatrixSolution(TMInputWave(alpha))[0]
        C_ext = getCext(particle, alpha, b_sca, nmax)[0]
        C_sca = getCsca(particle, b_sca, nmax)[0]
        delta = (C_ext - C_sca) / (C_ext + C_sca)
        execution_time.append(time.time() - start)
        y.append(delta)

    y = np.fabs(y)
    save("ebcm_m_delta" + id, y)
    save("ebcm_m_time" + id, execution_time)
    y = []
    execution_time = []

    for i in range(n_min, n_max, 2):
        nmax = i
        print nmax
        start = time.time()
        ebcm = SpheroidalEBCM(particle, nmax)
        b_sca = ebcm.getSolution(TMInputWave(alpha))[0]
        C_ext = getCext(particle, alpha, b_sca, nmax)[0]
        C_sca = getCsca(particle, b_sca, nmax)[0]
        delta = (C_ext - C_sca) / (C_ext + C_sca)
        execution_time.append(time.time() - start)
        y.append(delta)

    y = np.fabs(y)
    save("ebcm_delta" + id, y)
    save("ebcm_time" + id, execution_time)
    y = []
    execution_time = []