A0 /= Nu_estimate else: logger.info( "WARNING: Smart ICS not implemented for boundary condition choice." ) #Add noise kick noise = global_noise(domain, int(args['--seed'])) T1['g'] += A0 * P * np.cos(np.pi * z_de) * noise['g'] T1.differentiate('z', out=T1_z) dt = None mode = 'overwrite' elif TT_to_FT is not None: logger.info("restarting from {} and swapping BCs".format(TT_to_FT)) dt = checkpoint.restart(TT_to_FT, solver) mode = 'overwrite' Nu = float(args['--TT_to_FT_Nu']) true_t_ff = np.sqrt(Nu) T1 = solver.state['T1'] u = solver.state['u'] v = solver.state['v'] w = solver.state['w'] vels = [u, v, w] #Adjust from fixed T to fixed flux z_de = domain.grid(-1, scales=domain.dealias) T1.set_scales(domain.dealias, keep_data=True) T1['g'] += (0.5 - z_de) #Add T0
T1.set_scales(domain.dealias) T1_z.set_scales(domain.dealias) z_de = domain.grid(-1, scales=domain.dealias) A0 = 1e-6 #Add noise kick noise = global_noise(domain, int(args['--seed'])) T1['g'] += A0 * np.cos(np.pi * z_de) * noise['g'] #/np.sqrt(Ra) T1.differentiate('z', out=T1_z) dt = None mode = 'overwrite' else: logger.info("restarting from {}".format(restart)) dt = checkpoint.restart(restart, solver) mode = 'append' checkpoint.set_checkpoint(solver, wall_dt=checkpoint_min * 60, mode=mode, iter=5e3) ### 7. Set simulation stop parameters, output, and CFL if run_time_buoy is not None: solver.stop_sim_time = run_time_buoy + solver.sim_time elif run_time_therm is not None: solver.stop_sim_time = run_time_therm * np.sqrt(Ra) + solver.sim_time else: solver.stop_sim_time = 1 * np.sqrt(Ra) + solver.sim_time solver.stop_wall_time = run_time_wall * 3600. t_buoy = np.sqrt(Pr / Ra)