# invoke init n_steps = 10000 restart_file = '../keefe_runup_stage_5_qiqi.hd5' for i_stage in range(1000000): next_restart = 'Re{0:04d}_{1:06d}.hd5'.format(channel.Re, i_stage) if not os.path.exists(next_restart): print('restarting from ', restart_file, ' writing to ', next_restart) sys.stdout.flush() channel.init(n_steps, 0, restart_file) u_mean, u2_mean = [], [] for i in range(0, n_steps + 1, 400): U = channel.spec2phys(i) u_mean.append(U.mean(1).mean(2)) u2_mean.append((U**2).mean(1).mean(2)) u_mean, u2_mean = array(u_mean).mean(0), array(u2_mean).mean(0) savetxt('Re{0:04d}_{1:06d}.txt'.format(channel.Re, i_stage), vstack([u_mean, u2_mean]).T) channel.save_solution(next_restart, channel.get_solution(n_steps)) channel.destroy() restart_file = next_restart
channel.Lx=1.6 channel.Lz=1.6 # time step and number of steps channel.dt = .01 # flux (mean pressure gradient) channel.meanU = 1 # ============================================ # STAGES -- reynolds number Re = [10000, 5000, 3000, 2500, 2000] restart = None for i in range(len(Re)): channel.Re = Re[i] # STAGE i -- time steps ru_steps = 4999 n_steps = 1 # STAGE i -- invoke init channel.init(n_steps, ru_steps, restart=restart) filename = 'keefe_runup_stage_{0}'.format(i+1) channel.save_solution(filename, channel.get_solution(0)) channel.destroy() restart = filename