def do_step(k,i): print i ds = timeseries[i] #Get the surface and scalars from the first one in the series surf_poly = ttf.read_step(linesurf[i]) normals = ttf.get_data(surf_poly, 'perp') parallels = ttf.get_data(surf_poly, 'par') torsionals = ttf.get_data(surf_poly, 'phi') #Extract the wave flux mayavi field from the yt dataset fwfield = util.get_mlab_field_yt(ds, 'wave_flux_x', 'wave_flux_y', 'wave_flux_z', cube_slice=cube_slice) #Interpolate the Wave flux to the velocity surface surface_fwave_filter, surface_fwave = ttf.interpolate_vectors(fwfield.outputs[0], surf_poly) Fwperp, Fwpar, Fwphi = ttf.get_surface_velocity_comp(surface_fwave, normals, torsionals, parallels) ttf.write_wave_flux(path_join("WaveFlux_%s_%s_%s_%05i.vtp"%(cfg.driver, cfg.str_period, cfg.amp, i+1)), surf_poly, parallels, normals, torsionals, Fwpar, Fwperp, Fwphi) Fpar_line[k] = Fwpar[save_index[i]] Fperp_line[k] = Fwperp[save_index[i]] Fphi_line[k] = Fwphi[save_index[i]]
def path_join(filename): return os.path.join(os.path.join(cfg.data_dir,'%s/'%tube_r),filename) for tube_r in cfg.tube_radii: print tube_r wave = glob_files(tube_r, 'Wave*') Fpar = np.zeros([len(wave)]) Fperp = np.zeros([len(wave)]) Fphi = np.zeros([len(wave)]) for i, awave in enumerate(wave): surf_poly = ttf.read_step(awave) Fwperp = ttf.get_data(surf_poly, 'Fwperp') Fwpar = ttf.get_data(surf_poly, 'Fwpar') Fwphi = ttf.get_data(surf_poly, 'Fwphi') Fperp[i] = np.mean(Fwperp) Fpar[i] = np.mean(Fwpar) Fphi[i] = np.mean(Fwphi) Fwpar[np.abs(Fwpar)<1e-5], Fwperp[np.abs(Fwperp)<1e-5], Fwphi[np.abs(Fwphi)<1e-5] = 0., 0., 0. Fwtot = np.sqrt(Fwpar**2 + Fwperp**2 + Fwphi**2) Fwpar, Fwperp, Fwphi = (Fwpar/Fwtot)*100, (Fwperp/Fwtot)*100, (Fwphi/Fwtot)*100 Fwpar, Fwperp, Fwphi = map(np.abs, [Fwpar, Fwperp, Fwphi]) Fwpar = np.mean(np.ma.masked_array(Fwpar,np.isnan(Fwpar)))