def rec_densite_grille_unif_LTP_avec_f2py_phi_support_non_compact(X, M, D, Xg, Yg):
    # derniere modif 07-10-15
    # interface avec fortran
    NgrilleX = len(Xg)
    NgrilleY = len(Yg)
    N = len(M)
    calculsfor_rec_modf90.alloc_ro(NgrilleX, NgrilleY)
    calculsfor_rec_modf90.set_degre_spline(deg_spline)
    calculsfor_rec_modf90.set_hx_hy(hx, hy)
    calculsfor_rec_modf90.set_grille(Xg, Yg, NgrilleX, NgrilleY)
    calculsfor_rec_modf90.rec_ltp_phi_support_non_compact(X, M, D, N)
    #calculsfor_rec_modf90.rec_sansdepot(X, M, D, N)
    Ro = calculsfor_rec_modf90.ro
    Rho = Ro.copy()
    calculsfor_rec_modf90.dealloc_ro()
    return  Rho
def rec_densite_grille_unif_LTP_avec_f2py(X, M, D, Xg, Yg):
    # derniere modif 07-10-15
    # interface avec fortran
    NgrilleX = len(Xg)
    NgrilleY = len(Yg)
    N = len(M)
    calculsfor_rec_modf90.alloc_ro(NgrilleX, NgrilleY)
    calculsfor_rec_modf90.set_phi_radial(config.bool_phi_radial)
    calculsfor_rec_modf90.set_degre_spline(config.deg_spline)
    calculsfor_rec_modf90.set_hx_hy(config.hx_remap, config.hy_remap)
    calculsfor_rec_modf90.set_grille(Xg, Yg, NgrilleX, NgrilleY)
    calculsfor_rec_modf90.rec_ltp(X, M, D, N)
    #calculsfor_rec_modf90.rec_sansdepot(X, M, D, N)
    Ro = calculsfor_rec_modf90.ro
    Rho = Ro.copy()
    calculsfor_rec_modf90.dealloc_ro()
    return  Rho
def rec_densite_grille_unif_sp_avec_f2py(X, M, epsilon, Xg, Yg):
    # derniere modif 07-10-15
    # interface avec fortran
    NgrilleX = len(Xg)
    NgrilleY = len(Yg)
    N = len(M)
    calculsfor_rec_modf90.alloc_ro(NgrilleX, NgrilleY)
    calculsfor_rec_modf90.set_degre_spline(deg_spline)
    calculsfor_rec_modf90.set_hx_hy(hx, hy)
    calculsfor_rec_modf90.set_grille(Xg, Yg, NgrilleX, NgrilleY)
    #--- routine f2py specifique : ---> ne marche pas, a debugguer    
    #calculsfor_rec_modf90.rec_sp(X, M, epsilon, N)  
    #-----
    #----- utiisation de celle faite pour reconstruction LTP (un peu plus lente)
    D = numpy.zeros((4,N))
    D[0, :] = 1.
    D[3, :] = 1.
    calculsfor_rec_modf90.rec_ltp(X, M, D, N)  
    #-----
    Ro = calculsfor_rec_modf90.ro
    Rho = Ro.copy()
    calculsfor_rec_modf90.dealloc_ro()
    return  Rho
コード例 #4
0
     X = np.zeros([2, N])
     npic +=1
     X[0, :] = X0
     X[1, :] = X1
     
     Sx = np.array([-2., 2.])
     Sy = np.array([-2., 2.])
     Ix, Iy, modif_grille = MAJ_grille(X,Sx,Sy)
     [Xgrille, Ygrille] = make_grid_unif(Ix, Iy, Nmesh)
     NgrilleX = len(Xgrille)
     NgrilleY = len(Ygrille)    
     calculsfor_rec_modf90.alloc_ro(NgrilleX, NgrilleY)
     calculsfor_rec_modf90.set_phi_radial(1)
     calculsfor_rec_modf90.set_degre_spline(3)
     calculsfor_rec_modf90.set_hx_hy(0.08, 0.08)
     calculsfor_rec_modf90.set_grille(Xgrille, Ygrille, NgrilleX, NgrilleY)
     calculsfor_rec_modf90.rec_ltp(X, M, D, N)
     Ro = calculsfor_rec_modf90.ro
     R_ltp = Ro.copy()
     calculsfor_rec_modf90.dealloc_ro()
     nom = 'N='+str(N)+'-Nmesh='+str(Nmesh) 
     #    #~ fait_series_dessins(Xgrille, Ygrille, R_ltp, npic, t, nom )
     solution=compute_solution(Xgrille,Ygrille, t) 
          
 relative_error=error(solution , R_ltp)
 list_errors.append(relative_error)
     
 with open(data_file_name, 'rb') as f:        
     reader = csv.reader(f, delimiter='=')
     for row in reader:
         if (row[0] == 'epsilon') : 		epsilon = float(row[1])