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
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])