# Try to average with values at previous steps n_hist = 40 n_step = 150 n_hist = min(n_hist, n_step) w = np.exp(-np.linspace(0.0, 5.0, n_hist)) w = w / np.sum(w) print("Performing time average") # smooth_kin_ener *= w[0] kin_ener *= w[0] for k in range(n_hist - 1): vel_x, vel_z = dm.read_velocity_file(folder_name + '/' + base_name + '{:05d}'.format(n_step - k) + '.dat') tmp = 0.5 * np.multiply( rho, np.multiply(vel_x, vel_x) + np.multiply(vel_z, vel_z)) # tmp = dm.convolute(kin_ener, smoother) kin_ener += w[k + 1] * tmp p = 2.0 # r_mol = 0.39876 r_mol = p * 0.09584 smoother = dm.smooth_kernel(r_mol, hx, hz) smooth_kin_ener = dm.convolute(kin_ener, smoother) plt.pcolormesh(X, Z, smooth_kin_ener, cmap=cm.jet) plt.colorbar() plt.axis('scaled') plt.xlim([0, Lx]) plt.ylim([0, Lz]) plt.show()
# CREATING MESHGRID print("Creating meshgrid") vel_x, vel_z = dm.read_velocity_file(folder_name+'/'+file_root+'00001.dat') Nx = vel_x.shape[0] Nz = vel_x.shape[1] hx = Lx/Nx hz = Lz/Nz x = hx*np.arange(0.0,Nx,1.0, dtype=float) z = hz*np.arange(0.0,Nz,1.0, dtype=float) X, Z = np.meshgrid(x, z, sparse=False, indexing='ij') # INITIALIZING SMOOTHING KERNEL p = 2.0 r_mol = p*0.09584 smoother = dm.smooth_kernel(r_mol, hx, hz) # Tecnically unnecessary ... smoother_den = dm.smooth_kernel(r_mol/p, hx, hz) # TIME AVERAGING n_aver = 25 n_init = 1 n_fin = 1000 dt = 8.0 # dt = 25.0 # dt = 0.5*25.0 n_dump = 10 print("Producing movie of the kinetic energy") FFMpegWriter = manimation.writers['ffmpeg'] metadata = dict( title='Meniscus kinetic energy Ca=1.0', \
nx = Nx nz = Nz # CHANGE IN MAIN DENSMAP.PY !!! x = hx * np.arange(0.0, nx, 1.0, dtype=float) + 0.5 * hx z = hz * np.arange(0.0, nz, 1.0, dtype=float) + 0.5 * hz X, Z = np.meshgrid(x, z, sparse=False, indexing='ij') # PARAMETERS TO TUNE r_h2o = 0.09584 # r_pro = 0.17 # r_half = 0.5 * ( r_h2o + r_pro ) # alpha = 3.0 alpha = 1.0 smoother = dm.smooth_kernel(alpha * r_h2o, hx, hz) # smoother = dm.smooth_kernel(alpha*r_half, hz, hz) smooth_density_array = dm.convolute(density_array, smoother) # PARAMETERS TO TUNE # aka 'max_vapour_density' delta_th = 2.0 bulk_density = dm.detect_bulk_density(smooth_density_array, delta_th) intf_contour = dm.detect_contour(smooth_density_array, 0.5 * bulk_density, hx, hz) density_indicator = dm.density_indicator(smooth_density_array, 0.5 * bulk_density)
# Detecting dimensions dummy_file = '20nm/flow_sit_f/flow_00125.dat' density_array = dm.read_density_file(dummy_file, bin='y') Nx = density_array.shape[0] Nz = density_array.shape[1] hx = Lx/Nx hz = Lz/Nz nx = Nx nz = Nz x = hx*np.arange(0.0, nx, 1.0, dtype=float) z = hz*np.arange(0.0, nz, 1.0, dtype=float) X, Z = np.meshgrid(x, z, sparse=False, indexing='ij') # Smoothing kernel once for all smoother = dm.smooth_kernel(r_h2o, hx, hz) master_folder = '20nm/' folders_sit = 'flow_sit' folders_rec = 'flow_rec' files_sit = [] files_rec = [] # files_sit.append(master_folder+'flow_sit_f/flow_00125.dat') # files_rec.append(master_folder+'flow_rec_f/flow_00375.dat') files_sit.append(master_folder+'flow_sit_f/') files_rec.append(master_folder+'flow_rec_f/') for k in [2,1] : files_sit.append(master_folder+folders_sit+'_h'+str(k)+'/') files_rec.append(master_folder+folders_rec+'_h'+str(k)+'/')