def create_simulation(destDir, inputPath): ''' @description create the executable corresponding to the inputPath, save it to the destDir, create the PBS script to run the simulation and save it in the destDir ''' #0) check that destDir exists if(not os.path.isdir(destDir)): print 'library_wall_st_results' print 'create_simulation' sys.exit('***directory '+destDir+' does not exist***') #1) create the executable corresponding to the inputPath exePath = generate_exe(inputPath) #2) move the executable to destDir if(not os.path.isfile(exePath)): print 'library_wall_st_results' print 'create_simulation' sys.exit('***exe file'+exePath+' does not exist***') newExePath = destDir newExePath+='/'+os.path.basename(exePath) shutil.move(exePath,newExePath) #3) create the PBS script temperature = float(get_parameter('temperature',inputPath)) micro_contact_angle = float(get_parameter('wall_micro_contact_angle',inputPath)) nameRun = get_name_run(temperature,micro_contact_angle) simulation_duration = 12.0*60.0*60.0 #estimate_simulation_duration(inputPath) walltime = estimate_wall_time(simulation_duration, safety_ratio=6.0) pbsScriptPath = destDir+'/run_sim.job' create_pbs_script( pbsScriptPath, newExePath, nameRun=nameRun, walltime=walltime) return [pbsScriptPath,nameRun]
def create_simulation(destDir, inputPath, PBSnameRun, adapt_domain=False): ''' @description create the executable corresponding to the inputPath, save it to the destDir, create the PBS script to run the simulation and save it in the destDir ''' #0) check that destDir exists if(not os.path.isdir(destDir)): print 'library_wall_nonst_results' print 'create_simulation' sys.exit('***directory '+destDir+' does not exist***') #1) create the executable corresponding to the inputPath exePath = generate_exe(inputPath,bf_layer_option=adapt_domain) #2) move the executable to destDir if(not os.path.isfile(exePath)): print 'library_wall_nonst_results' print 'create_simulation' sys.exit('***exe file'+exePath+' does not exist***') newExePath = destDir newExePath+='/'+os.path.basename(exePath) shutil.move(exePath,newExePath) #3) create the PBS script simulation_duration = estimate_simulation_duration(inputPath) walltime = estimate_wall_time(simulation_duration, safety_ratio=2.0) pbsScriptPath = destDir+'/run_sim.job' create_pbs_script( pbsScriptPath, newExePath, nameRun=PBSnameRun, walltime=walltime) return [pbsScriptPath,PBSnameRun]