def scan_archive(sim_dir): progress_window=progress_class() progress_window.show() progress_window.start() archive_path=os.path.join(sim_dir,"build_archive.zip") if os.path.isfile(archive_path)==True: os.remove(archive_path) zf = zipfile.ZipFile(archive_path, 'a',zipfile.ZIP_DEFLATED) l=os.listdir(sim_dir) for i in range(0,len(l)): dir_to_zip=os.path.join(sim_dir,l[i]) if os.path.isdir(dir_to_zip)==True: archive_add_dir(archive_path,dir_to_zip,sim_dir,zf=zf,remove_src_dir=True) progress_window.set_fraction(float(i)/float(len(l))) progress_window.set_text(_("Adding: ")+l[i]) #if server_break()==True: # break process_events() zf.close() os.rename(archive_path, os.path.join(sim_dir,scan_next_archive(sim_dir))) progress_window.stop()
def __init__(self): QWidget.__init__(self) self.hbox = QHBoxLayout() self.bar = progress_class() self.bar.spinner.stop() self.bar.spinner.hide() self.label = QLabel() self.slider = QSlider(Qt.Horizontal) self.slider.setTickPosition(QSlider.TicksBelow) self.slider.setTickInterval(1) #self.slider.valueChanged.connect(self.slider0_change) self.slider.setMinimumSize(300, 80) self.slider.valueChanged.connect(self.slider_changed) self.slider.setTickPosition(QSlider.TicksBelow) self.hbox.addWidget(self.label) self.bar.hide_time() self.hbox.addWidget(self.bar) self.hbox.addWidget(self.slider) self.setLayout(self.hbox) self.name = "" self.ip = "" self.cpus = -1 self.load = -1 self.max_cpus = -1 self.last_seen = -1
def export_materials(target): if target.endswith(".zip")==False: target=target+".zip" file_list=[] progress_window=progress_class() progress_window.show() progress_window.start() process_events() mat_files=["alpha_eq.inp","alpha_gen.omat","alpha.omat","cost.xlsx","dos.inp","fit.inp","mat.inp","n_eq.inp","n_gen.omat","n.omat","pl.inp"] for path, dirs, files in os.walk(os.path.join(os.getcwd(),"materials")): for file_name in files: if file_name in mat_files: file_list.append(os.path.join(path,file_name)) zf = zipfile.ZipFile(target, 'a') for i in range(0,len(file_list)): cur_file=file_list[i] lines=[] if os.path.isfile(cur_file): f=open(cur_file, mode='rb') lines = f.read() f.close() zf.writestr(remove_cwdfrompath(cur_file), lines) progress_window.set_fraction(float(i)/float(len(file_list))) progress_window.set_text("Adding"+cur_file[len(os.getcwd()):]) process_events() zf.close() progress_window.stop()
def load_tabs(self): progress_window = progress_class() progress_window.show() progress_window.start() process_events() file_list = zip_lsdir(os.path.join(get_sim_path(), "sim.gpvdm")) files = [] for i in range(0, len(file_list)): if file_list[i].startswith("pulse") and file_list[i].endswith( ".inp"): name = inp_get_token_value(file_list[i], "#sim_menu_name") files.append([name, file_list[i]]) files.sort() for i in range(0, len(files)): value = strextract_interger(files[i][1]) if value != -1: self.add_page(value) progress_window.set_fraction(float(i) / float(len(files))) progress_window.set_text(_("Loading") + " " + files[i][0]) process_events() progress_window.stop()
def export_materials(target): if target.endswith(".zip")==False: target=target+".zip" file_list=[] progress_window=progress_class() progress_window.show() progress_window.start() process_events() mat_files=["alpha_eq.inp","alpha_gen.omat","alpha.omat","cost.xlsx","dos.inp","fit.inp","info.txt","mat.inp","n_eq.inp","n_gen.omat","n.omat","pl.inp"] for path, dirs, files in os.walk(os.path.join(os.getcwd(),"materials")): for file_name in files: if file_name in mat_files: file_list.append(os.path.join(path,file_name)) zf = zipfile.ZipFile(target, 'a') for i in range(0,len(file_list)): cur_file=file_list[i] lines=[] if os.path.isfile(cur_file): f=open(cur_file, mode='rb') lines = f.read() f.close() zf.writestr(remove_cwdfrompath(cur_file), lines) progress_window.set_fraction(float(i)/float(len(file_list))) progress_window.set_text("Adding"+cur_file[len(os.getcwd()):]) process_events() zf.close() progress_window.stop()
def __init__(self): self.running = False self.progress_window = progress_class() self.stop_work = False self.cpus = multiprocessing.cpu_count() self.jobs = [] self.jobs_running = 0 self.jobs_run = 0 self.finished_jobs = []
def export_archive(target,everything): if target.endswith(".gpvdm")==False: target=target+".gpvdm" file_list=[] progress_window=progress_class() progress_window.show() progress_window.start() process_events() if everything==True: for path, dirs, files in os.walk(get_sim_path()): for file_name in files: if file_name.endswith(".inp") or file_name.endswith(".dat") or file_name.endswith(".omat"): file_list.append(os.path.join(path,file_name)) else: files=os.listdir(get_sim_path()) for file_name in files: if file_name.endswith(".inp"): file_list.append(os.path.join(get_sim_path(),file_name)) zf = zipfile.ZipFile(target, 'a') for i in range(0,len(file_list)): cur_file=file_list[i] lines=[] if os.path.isfile(cur_file): try: f=open(cur_file, mode='rb') lines = f.read() f.close() zf.writestr(remove_simpathfrompath(cur_file), lines) except: print(_("Can't open file ")+cur_file) progress_window.set_fraction(float(i)/float(len(file_list))) progress_window.set_text("Adding"+cur_file[len(get_sim_path()):]) process_events() src_zf = zipfile.ZipFile(os.path.join(get_sim_path(),"sim.gpvdm"), 'r') for file_name in src_zf.namelist(): if file_name not in zf.namelist(): #print "adding from archive",file_name lines=src_zf.read(file_name) zf.writestr(file_name, lines) zf.close() src_zf.close() progress_window.stop()
def export_archive(target,everything): if target.endswith(".opvdm")==False: target=target+".opvdm" file_list=[] progress_window=progress_class() progress_window.init() progress_window.show() progress_window.start() process_events() if everything==True: for path, dirs, files in os.walk(os.getcwd()): for file_name in files: if file_name.endswith(".inp") or file_name.endswith(".dat") or file_name.endswith(".omat"): file_list.append(os.path.join(path,file_name)) else: files=os.listdir(os.getcwd()) for file_name in files: if file_name.endswith(".inp"): file_list.append(os.path.join(os.getcwd(),file_name)) zf = zipfile.ZipFile(target, 'a') for i in range(0,len(file_list)): cur_file=file_list[i] lines=[] if os.path.isfile(cur_file): f=open(cur_file, mode='rb') lines = f.read() f.close() zf.writestr(remove_cwdfrompath(cur_file), lines) progress_window.set_fraction(float(i)/float(len(file_list))) progress_window.set_text("Adding"+cur_file[len(os.getcwd()):]) process_events() src_zf = zipfile.ZipFile(os.path.join(os.getcwd(),"sim.opvdm"), 'r') for file_name in src_zf.namelist(): if file_name not in zf.namelist(): #print "adding from archive",file_name lines=src_zf.read(file_name) zf.writestr(file_name, lines) zf.close() src_zf.close() progress_window.stop()
def send_files(self,target,src,files): progress_window=progress_class() progress_window.show() progress_window.start() process_events() count=0 banned=[] for i in range(0,len(files)): data=tx_struct() progress_window.set_fraction(float(i)/float(len(files))) progress_window.set_text("Sending "+files[i]) process_events() full_path=os.path.normpath(os.path.join(src,files[i])) data.stat=os.stat(full_path)[ST_MODE] f = open(full_path, 'rb') bytes = f.read() f.close() orig_size=len(bytes) print("tx file:",full_path) if target=="": data.target=src else: data.target=target data.id="gpvdmfile" data.uzipsize=len(bytes) data.data=bytes data.zip=True data.file_name=strip_slash(files[i]) count=count+1 self.tx_packet(data) #if count>2: # break print("status>>>>>>>>",i,len(files)) progress_window.stop() print("total=",count)
def scan_delete_files(dirs_to_del,parent_window=None): if parent_window!=None: progress_window=progress_class() progress_window.show() progress_window.start() process_events() for i in range(0, len(dirs_to_del)): gpvdm_delete_file(dirs_to_del[i]) if parent_window!=None: progress_window.set_fraction(float(i)/float(len(dirs_to_del))) progress_window.set_text("Deleting"+dirs_to_del[i]) process_events() if parent_window!=None: progress_window.stop()
def tree_gen_random_files(sim_path, flat_simulation_list, program_list, base_dir): length = 0 for i in range(0, len(program_list)): if program_list[i][3] == "random_file_name": length = int(program_list[i][2]) progress_window = progress_class() progress_window.show() progress_window.start() process_events() for i in range(0, length): rand = codecs.encode(os.urandom(int(16 / 2)), 'hex').decode() cur_dir = os.path.join(sim_path, rand) if not os.path.exists(cur_dir): os.makedirs(cur_dir) gpvdm_clone(cur_dir, src_archive=os.path.join(base_dir, "sim.gpvdm"), dest="file") os.chdir(cur_dir) archive_decompress(os.path.join(cur_dir, "sim.gpvdm")) if tree_apply_constant(cur_dir, program_list) == False: return False if tree_apply_python_script(cur_dir, program_list) == False: return False tree_apply_mirror(cur_dir, program_list) archive_compress(os.path.join(cur_dir, "sim.gpvdm")) flat_simulation_list.append(cur_dir) progress_window.set_fraction(float(i) / float(length)) progress_window.set_text("Adding " + cur_dir) process_events() progress_window.stop()
def scan_build_nested_simulation(root_simulation, nest_simulation): progress_window = progress_class() progress_window.show() progress_window.start() process_events() program_list = tree_load_program(nest_simulation) files = os.listdir(root_simulation) simulations = [] for i in range(0, len(files)): if os.path.isfile(os.path.join(root_simulation, files[i], "sim.gpvdm")) == True: simulations.append(files[i]) flat_simulation_list = [] path = os.getcwd() for i in range(0, len(simulations)): dest_name = os.path.join(root_simulation, simulations[i]) tree_gen(flat_simulation_list, program_list, dest_name, dest_name) progress_window.set_fraction(float(i) / float(len(simulations))) progress_window.set_text(simulations[i]) process_events() progress_window.stop() os.chdir(path) flat_simulation_list = tree_gen_flat_list(root_simulation, level=1) print(flat_simulation_list) tree_save_flat_list(root_simulation, flat_simulation_list) return
def __init__(self): QWidget.__init__(self) self.hbox=QHBoxLayout() self.bar=progress_class() self.bar.spinner.stop() self.bar.spinner.hide() self.label=QLabel() self.slider = QSlider(Qt.Horizontal) self.slider.setMinimum(0) self.slider.setMaximum(10) self.slider.setTickPosition(QSlider.TicksBelow) self.slider.setTickInterval(1) #self.slider.valueChanged.connect(self.slider0_change) self.slider.setMinimumSize(300, 80) self.hbox.addWidget(self.label) self.hbox.addWidget(self.bar) self.hbox.addWidget(self.slider) self.setLayout(self.hbox)
def scan_ml_build_vector(sim_dir): output_file=os.path.join(sim_dir,"vectors.dat") if os.path.isfile(output_file)==True: response=yes_no_cancel_dlg(None,"The file "+output_file+" already exists. Continue? ") if response!="yes": sys.exit(0) out=open(output_file,'wb') progress_window=progress_class() progress_window.show() progress_window.start() tot_archives=0 for archive_name in os.listdir(sim_dir): if archive_name.startswith("archive")==True and archive_name.endswith(".zip")==True: tot_archives=tot_archives+1 done=0 errors=0 for archive_name in os.listdir(sim_dir): if archive_name.startswith("archive")==True and archive_name.endswith(".zip")==True: archive_path=os.path.join(sim_dir,archive_name) if done==0: #Find the measurment files and determine which ones are needed found=[] zf = zipfile.ZipFile(archive_path, 'r') items=zf.namelist() for l in items: parts=l.split("/") fname=parts[-1] if fname.endswith("scan.inp")==True: found_item=os.path.join(parts[-2],parts[-1]) a=parts[-2] #measurment() #a.experiment=parts[-2] #a.measurement_file=parts[-1] #a.token="#ml_input_"+parts[-1][8:-4]+"_"+parts[-2] if found.count(a)==False: found.append(a) zf = zipfile.ZipFile(archive_path, 'r') dirs=zip_lsdir(archive_path,zf=zf,sub_dir="/") items=len(dirs) for i in range(0,len(dirs)): rnd = [random.choice(string.ascii_letters + string.digits) for n in range(0,32)] rnd = "".join(rnd) tmp_dir="/dev/shm/gpvdm_"+rnd if os.path.isdir(tmp_dir)==True: shutil.rmtree(tmp_dir) os.mkdir(tmp_dir) extract_dir_from_archive(tmp_dir,"",dirs[i],zf=zf) full_name=tmp_dir written=False #print(dirs[i]) error=False v="#ml_id\n" v=v+dirs[i]+"\n" for scan_folder in found: token="#ml_input_"+scan_folder v=v+token+"\n" dolog=False div=1.0 mul=1.0 do_fabs=False sim_mode=inp_get_token_value(os.path.join(full_name,scan_folder,"sim.inp"), "#simmode") if sim_mode==None: error=True break sim_mode=sim_mode.lower() light=float(inp_get_token_value(os.path.join(full_name,scan_folder,"light.inp"), "#Psun")) if sim_mode.endswith("jv") or sim_mode.startswith("jv"): file_name="jv.dat" sim_mode="jv" vector=[0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0] #np.linspace(0.2,1.0,20)# if light>0.0: div=1e2 if light==0.0: dolog=True elif sim_mode=="sun_voc": file_name="suns_voc.dat" vector=[0.02,0.04,0.05,0.1,0.5,0.7,1.0] dolog=True mul=-10.0 elif sim_mode.startswith("tpc")==True: file_name="pulse_i.dat" vector=[1.1e-6,2e-6,2e-5,1e-4,0.02,0.1] dolog=True do_fabs=True elif sim_mode.startswith("celiv")==True: file_name="pulse_i.dat" vector=[2e-6,3e-6,4e-6,5e-6,6e-6,7e-6,8e-6] do_fabs=True mul=1000.0 elif sim_mode.startswith("tpv")==True: file_name="pulse_v.dat" vector=[10e-6,20e-6,30e-6,40e-6,50e-6,60e-6,80e-6] do_fabs=True mul=10.0 else: print(sim_mode) asdas ret=get_vectors(os.path.join(full_name,scan_folder,file_name),vector,dolog=dolog,div=div,mul=mul,fabs=do_fabs) #print(ret) if ret==False: error=True break v=v+ret+"\n" if sim_mode=="jv" and light>0.0: ret=scan_ml_build_token_abs(os.path.join(full_name,scan_folder,"sim_info.dat"),"#jv_pmax_tau","#jv_pmax_tau",min_max="avg",dolog=True) if ret==False: error=True break v=v+ret ret=scan_ml_build_token_abs(os.path.join(full_name,scan_folder,"sim_info.dat"),"#jv_pmax_mue","#jv_pmax_mue",min_max="avg",dolog=True) if ret==False: error=True break v=v+ret ret=scan_ml_build_token_abs(os.path.join(full_name,scan_folder,"sim_info.dat"),"#pce","#pce",min_max="avg",lim=0.1) if ret==False: error=True break v=v+ret #print(a.experiment,a.measurement_file,a.token) for min_max in ["min","max","avg"]: a=scan_ml_build_token_abs(os.path.join(full_name,"dos0.inp"),"#Etrape","#Etraph",min_max=min_max,mul=1e3) if a==False: error=True break v=v+a a=scan_ml_build_token_abs(os.path.join(full_name,"dos0.inp"),"#mueffe","#mueffh",min_max=min_max,dolog=True) if a==False: error=True break v=v+a a=scan_ml_build_token_abs(os.path.join(full_name,"dos0.inp"),"#Ntraph","#Ntrape",min_max=min_max,dolog=True) if a==False: error=True break v=v+a a=scan_ml_build_token_abs(os.path.join(full_name,"parasitic.inp"),"#Rshunt","#Rshunt",min_max="avg",dolog=True) if a==False: error=True break v=v+a a=scan_ml_build_token_abs(os.path.join(full_name,"parasitic.inp"),"#Rcontact","#Rcontact",min_max="avg") if a==False: error=True break v=v+a v=v+"#break\n" if error==False: out.write(str.encode(v)) written=True else: errors=errors+1 done=done+1 progress_window.set_fraction(float(done)/float(len(dirs)*tot_archives)) if written==True: progress_window.set_text(dirs[i]) else: progress_window.set_text(" /Last error: "+dirs[i]+" tot errors="+str(errors)+" "+str(round(100.0*errors/done,1))+"%") progress_window.set_text(dirs[i]) #if server_break()==True: # break process_events() #return shutil.rmtree(tmp_dir) out.close() progress_window.stop() tindex_dump(os.path.join(sim_dir,"index.dat"))
def setup_gui(self,extern_gui_sim_start): self.enable_gui=True self.extern_gui_sim_start=extern_gui_sim_start self.progress_window=progress_class()
def __init__(self): QWidget.__init__(self) self.setWindowIcon(icon_get("optics")) self.setMinimumSize(1000, 600) self.ribbon = optics_ribbon() self.edit_list = [] self.line_number = [] self.articles = [] input_files = [] input_files.append( os.path.join(get_sim_path(), "light_dump", "light_2d_photons.dat")) input_files.append( os.path.join(get_sim_path(), "light_dump", "light_2d_photons_asb.dat")) input_files.append( os.path.join(get_sim_path(), "light_dump", "reflect.dat")) plot_labels = [] plot_labels.append(_("Photon distribution")) plot_labels.append(_("Photon distribution absorbed")) plot_labels.append(_("Reflection")) self.setGeometry(300, 300, 600, 600) self.setWindowTitle( _("Optical simulation editor") + " (https://www.gpvdm.com)") self.setWindowIcon(icon_get("optics")) self.main_vbox = QVBoxLayout() self.ribbon.run.triggered.connect(self.callback_run) self.ribbon.fx_box.cb.currentIndexChanged.connect(self.mode_changed) self.ribbon.help.triggered.connect(self.callback_help) self.ribbon.tb_save.triggered.connect(self.callback_save) self.main_vbox.addWidget(self.ribbon) self.progress_window = progress_class() self.notebook = QTabWidget() css_apply(self.notebook, "tab_default.css") self.notebook.setMovable(True) self.fig_photon_density = band_graph() self.fig_photon_density.set_data_file("light_1d_photons_tot_norm.dat") self.fig_photon_density.init() self.notebook.addTab(self.fig_photon_density, _("Photon density")) self.fig_photon_abs = band_graph() self.fig_photon_abs.set_data_file("light_1d_photons_tot_abs_norm.dat") self.fig_photon_abs.init() self.notebook.addTab(self.fig_photon_abs, _("Photon absorbed")) self.fig_gen_rate = band_graph() self.fig_gen_rate.set_data_file("light_1d_Gn.dat") self.fig_gen_rate.init() self.notebook.addTab(self.fig_gen_rate, _("Generation rate")) widget = tab_class() widget.init(os.path.join(get_sim_path(), "light.inp"), _("Optical setup")) self.notebook.addTab(widget, _("Optical setup")) self.plot_widgets = [] self.progress_window.start() for i in range(0, len(input_files)): self.plot_widgets.append(plot_widget()) self.plot_widgets[i].init(enable_toolbar=False) self.plot_widgets[i].set_labels([plot_labels[0]]) self.plot_widgets[i].load_data( [input_files[i]], os.path.splitext(input_files[i])[0] + ".oplot") self.plot_widgets[i].do_plot() #self.plot_widgets[i].show() self.notebook.addTab(self.plot_widgets[i], plot_labels[i]) self.fig_photon_density.draw_graph() self.fig_photon_abs.draw_graph() self.fig_gen_rate.draw_graph() self.progress_window.stop() self.main_vbox.addWidget(self.notebook) self.setLayout(self.main_vbox) return
def scan_ml_build_vector(sim_dir): out = open(os.path.join(sim_dir, "vectors.dat"), 'wb') for archive_name in os.listdir(sim_dir): if archive_name.startswith( "archive") == True and archive_name.endswith(".zip") == True: progress_window = progress_class() progress_window.show() progress_window.start() archive_path = os.path.join(sim_dir, archive_name) zf = zipfile.ZipFile(archive_path, 'r') dirs = zip_lsdir(archive_path, zf=zf, sub_dir="/") items = len(dirs) print(items, archive_path, dirs) for i in range(0, len(dirs)): tmp_dir = "/dev/shm/gpvdm" if os.path.isdir(tmp_dir) == True: shutil.rmtree(tmp_dir) os.mkdir(tmp_dir) extract_dir_from_archive(tmp_dir, "", dirs[i], zf=zf) full_name = tmp_dir written = False #print(dirs[i]) while (1): v = "#ml_id\n" v = v + dirs[i] + "\n" v = v + "#ml_input_jv_dark\n" ret = get_vectors(full_name, "0.0", "measure_jv.dat", dolog=True) if ret == False: print("ml_input_jv_dark") break v = v + ret + "\n" v = v + "#ml_input_jv_light\n" ret = get_vectors(full_name, "1.0", "measure_jv.dat", div=1e2) if ret == False: print("ml_input_jv_ligh") break v = v + ret + "\n" v = v + "#ml_input_tpc_neg\n" ret = get_vectors(full_name, "TPC", "measure_tpc.dat", fabs=True, dolog=True) if ret == False: break v = v + ret + "\n" v = v + "#ml_input_tpc\n" ret = get_vectors(full_name, "TPC_0", "measure_tpc.dat", fabs=True, dolog=True) if ret == False: break v = v + ret + "\n" v = v + "#ml_input_tpc_neg_norm\n" ret = get_vectors(full_name, "TPC", "measure_tpc.dat", fabs=True, dolog=True, do_norm=True) if ret == False: break v = v + ret + "\n" v = v + "#ml_input_tpc_norm\n" ret = get_vectors(full_name, "TPC_0", "measure_tpc.dat", fabs=True, dolog=True, do_norm=True) if ret == False: break v = v + ret + "\n" v = v + "#ml_input_tpc_ideal\n" ret = get_vectors(full_name, "TPC_ideal", "measure_tpc.dat", fabs=True, dolog=True) if ret == False: break v = v + ret + "\n" v = v + "#ml_input_tpc_ideal_norm\n" ret = get_vectors(full_name, "TPC_ideal", "measure_tpc.dat", fabs=True, dolog=True, do_norm=True) if ret == False: break v = v + ret + "\n" v = v + "#ml_input_tpv\n" ret = get_vectors(full_name, "TPV", "measure_tpv.dat", fabs=True) if ret == False: break v = v + ret + "\n" v = v + "#ml_input_celiv\n" ret = get_vectors(full_name, "CELIV", "measure_celiv.dat", fabs=True) if ret == False: break v = v + ret + "\n" v = v + get_vectors_binary(full_name, "1.0") for min_max in ["min", "max", "avg"]: a = scan_ml_build_token_vectors( os.path.join(full_name, "dos0.inp"), "#Etrape", "#Etraph", [40e-3, 50e-3, 60e-3, 70e-3, 80e-3, 90e-3, 100e-3], min_max=min_max) v = v + a a = scan_ml_build_token_vectors( os.path.join(full_name, "dos0.inp"), "#mueffe", "#mueffh", [1e-9, 1e-8, 1e-7, 1e-6, 1e-5, 1e-4, 1e-3], min_max=min_max) v = v + a a = scan_ml_build_token_vectors( os.path.join(full_name, "dos0.inp"), "#Ntraph", "#Ntrape", [1e20, 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27], min_max=min_max) v = v + a a = scan_ml_build_token_vectors( os.path.join(full_name, "parasitic.inp"), "#Rshunt", "#Rshunt", [1e2, 1e3, 1e4, 1e5, 1e6, 1e7], min_max="avg") v = v + a #a=scan_ml_build_token_abs(os.path.join(full_name,"parasitic.inp"),"#Rshunt","#Rshunt",min_max="avg") #v=v+a a = scan_ml_build_token_vectors( os.path.join(full_name, "parasitic.inp"), "#Rcontact", "#Rcontact", [5, 10, 15, 20, 25, 30, 35, 40], min_max="avg") v = v + a a = scan_ml_build_token_vectors( os.path.join(full_name, "1.0", "sim_info.dat"), "#jv_pmax_tau", "#jv_pmax_tau", [1e-1, 1e-2, 1e-3, 1e-4, 1e-5, 1e-6, 1e-7], min_max="avg") v = v + a a = scan_ml_build_token_vectors( os.path.join(full_name, "1.0", "sim_info.dat"), "#jv_pmax_mue", "#jv_pmax_mue", [1e-9, 1e-8, 1e-7, 1e-6, 1e-5, 1e-4, 1e-3], min_max="avg") v = v + a out.write(str.encode(v)) written = True break if written == False: print("Error", dirs[i]) progress_window.set_fraction(float(i) / float(len(dirs))) progress_window.set_text(dirs[i]) #if server_break()==True: # break process_events() #return progress_window.stop()
def init(self): self.progress_window=progress_class() self.progress_window.init() self.articles=[] self.dump_dir=os.path.join(os.getcwd(),"light_dump") find_models() self.main_vbox=gtk.VBox() self.gen_main_menu(self,self.main_vbox) toolbar = gtk.Toolbar() toolbar.set_style(gtk.TOOLBAR_ICONS) toolbar.set_size_request(-1, 50) self.main_vbox.pack_start(toolbar, False, False, 0) self.edit_list=[] self.line_number=[] self.cb = gtk.combo_box_new_text() self.cb.set_wrap_width(5) self.cb_id=self.cb.connect("changed", self.on_changed) self.update_cb() self.cb_model = gtk.combo_box_new_text() self.cb_model.set_wrap_width(5) self.cb_model.connect("changed", self.on_cb_model_changed) self.update_cb_model() self.light_source_model = gtk.combo_box_new_text() self.light_source_model.set_wrap_width(5) self.light_source_model.connect("changed", self.on_light_source_model_changed) self.update_light_source_model() self.light_source_model.show() self.fig_photon_density = band_graph() self.fig_photon_density.set_data_file("light_1d_photons_tot_norm.dat") self.fig_photon_density.init() self.fig_photon_abs = band_graph() self.fig_photon_abs.set_data_file("light_1d_photons_tot_abs_norm.dat") self.fig_photon_abs.init() tool_bar_pos=0 image = gtk.Image() image.set_from_file(os.path.join(get_image_file_path(),"play.png")) self.play = gtk.ToolButton(image) #image.set_from_file(self.icon_theme.lookup_icon("media-playback-start", 32, 0).get_filename()) refresh = gtk.ToolButton(image) refresh.connect("clicked", self.callback_refresh) toolbar.insert(refresh, tool_bar_pos) toolbar.show_all() tool_bar_pos=tool_bar_pos+1 ti_light = gtk.ToolItem() lable=gtk.Label("Optical mode:") lable.show() ti_hbox = gtk.HBox(False, 2) ti_hbox.show() ti_hbox.pack_start(lable, False, False, 0) ti_hbox.pack_start(self.cb, False, False, 0) self.cb.show() lable=gtk.Label("Optical model:") lable.show() ti_hbox.pack_start(lable, False, False, 0) ti_hbox.pack_start(self.cb_model, False, False, 0) self.cb_model.show() ti_light.add(ti_hbox); toolbar.insert(ti_light, tool_bar_pos) ti_light.show() tool_bar_pos=tool_bar_pos+1 sep = gtk.SeparatorToolItem() sep.set_draw(False) sep.set_expand(False) toolbar.insert(sep, tool_bar_pos) sep.show() tool_bar_pos=tool_bar_pos+1 lable=gtk.Label("Light source:") lable.show() ti_hbox.pack_start(lable, False, False, 0) ti_hbox.pack_start(self.light_source_model, False, False, 0) self.cb_model.show() sep = gtk.SeparatorToolItem() sep.set_draw(False) sep.set_expand(True) toolbar.insert(sep, tool_bar_pos) sep.show() tool_bar_pos=tool_bar_pos+1 help = gtk.ToolButton(gtk.STOCK_HELP) toolbar.insert(help, tool_bar_pos) help.connect("clicked", self.callback_help) help.show() tool_bar_pos=tool_bar_pos+1 self.notebook.append_page(self.fig_photon_density,gtk.Label("Photon density") ) self.notebook.append_page(self.fig_photon_abs,gtk.Label("Photon absorbed") ) self.main_vbox.pack_start(self.notebook, False, False, 0) optics_config=tab_class() optics_config.show() self.notebook.append_page(optics_config,gtk.Label("Optical setup")) optics_config.visible=True optics_config.init("optics.inp","Config") optics_config.label_name="Optics config" optics_config.file_name="optics.inp" #Photon distribution photon_dist=photon_dist_class() photon_dist.show() ################## input_files=[] input_files.append("./light_dump/light_2d_photons.dat") input_files.append("./light_dump/light_2d_photons_asb.dat") input_files.append("./light_dump/reflect.dat") plot_labels=[] plot_labels.append("Photon distribution") plot_labels.append("Photon distribution absorbed") plot_labels.append("Reflection") self.plot_widgets=[] self.progress_window.start() for i in range(0,len(input_files)): self.plot_widgets.append(plot_widget()) self.plot_widgets[i].init(self) self.plot_widgets[i].set_labels([plot_labels[0]]) self.plot_widgets[i].load_data([input_files[i]],os.path.splitext(input_files[i])[0]+".oplot") self.plot_widgets[i].do_plot() self.plot_widgets[i].show() self.notebook.append_page(self.plot_widgets[i],gtk.Label(plot_labels[i])) self.connect("delete-event", self.callback_close) self.add(self.main_vbox) self.set_size_request(850,-1) self.main_vbox.show() self.fig_photon_density.draw_graph() self.fig_photon_abs.draw_graph() self.set_icon_from_file(os.path.join(get_image_file_path(),"image.jpg")) self.set_title("Optical Model - (www.opvdm.com)") self.set_position(gtk.WIN_POS_CENTER) self.progress_window.stop()
def setup_gui(self, extern_gui_sim_start, extern_gui_sim_stop): self.enable_gui = True self.extern_gui_sim_start = extern_gui_sim_start self.extern_gui_sim_stop = extern_gui_sim_stop self.progress_window = progress_class() self.progress_window.init()
def __init__(self): QWidget.__init__(self) self.dump_dir=os.path.join(os.getcwd(),"light_dump") find_models() self.setWindowIcon(QIcon(os.path.join(get_image_file_path(),"image.png"))) self.setMinimumSize(1000, 600) self.edit_list=[] self.line_number=[] self.articles=[] input_files=[] input_files.append(os.path.join(os.getcwd(),"light_dump","light_2d_photons.dat")) input_files.append(os.path.join(os.getcwd(),"light_dump","light_2d_photons_asb.dat")) input_files.append(os.path.join(os.getcwd(),"light_dump","reflect.dat")) plot_labels=[] plot_labels.append("Photon distribution") plot_labels.append("Photon distribution absorbed") plot_labels.append("Reflection") self.setGeometry(300, 300, 600, 600) self.setWindowTitle(_("Optical simulation editor (www.gpvdm.com)")) self.setWindowIcon(QIcon(os.path.join(get_image_file_path(),"optics.png"))) self.main_vbox=QVBoxLayout() menubar = QMenuBar() file_menu = menubar.addMenu('&File') self.menu_refresh=file_menu.addAction(_("&Refresh")) self.menu_refresh.triggered.connect(self.update) self.menu_close=file_menu.addAction(_("&Close")) self.menu_close.triggered.connect(self.callback_close) self.main_vbox.addWidget(menubar) toolbar=QToolBar() toolbar.setIconSize(QSize(48, 48)) self.run = QAction(QIcon(os.path.join(get_image_file_path(),"play.png")), _("Run"), self) self.run.triggered.connect(self.callback_run) toolbar.addAction(self.run) label=QLabel(_("Wavelengths:")) toolbar.addWidget(label) self.cb = QComboBox() self.update_cb() toolbar.addWidget(self.cb) self.cb.currentIndexChanged.connect(self.mode_changed) label=QLabel(_("Optical model:")) toolbar.addWidget(label) self.cb_model = QComboBox() toolbar.addWidget(self.cb_model) self.update_cb_model() self.cb_model.activated.connect(self.on_cb_model_changed) label=QLabel(_("Solar spectrum:")) toolbar.addWidget(label) self.light_source_model = QComboBox() self.update_light_source_model() toolbar.addWidget(self.light_source_model) self.light_source_model.activated.connect(self.on_light_source_model_changed) spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) toolbar.addWidget(spacer) self.help = QAction(QIcon(os.path.join(get_image_file_path(),"help.png")), 'Help', self) self.help.triggered.connect(self.callback_help) toolbar.addAction(self.help) self.main_vbox.addWidget(toolbar) self.progress_window=progress_class() self.notebook = QTabWidget() self.notebook.setMovable(True) self.fig_photon_density = band_graph() self.fig_photon_density.set_data_file("light_1d_photons_tot_norm.dat") self.fig_photon_density.init() self.notebook.addTab(self.fig_photon_density,"Photon density") self.fig_photon_abs = band_graph() self.fig_photon_abs.set_data_file("light_1d_photons_tot_abs_norm.dat") self.fig_photon_abs.init() self.notebook.addTab(self.fig_photon_abs,"Photon absorbed") widget=tab_class() widget.init("light.inp","Optical setup") self.notebook.addTab(widget,"Optical setup") self.plot_widgets=[] self.progress_window.start() for i in range(0,len(input_files)): self.plot_widgets.append(plot_widget()) self.plot_widgets[i].init() self.plot_widgets[i].set_labels([plot_labels[0]]) self.plot_widgets[i].load_data([input_files[i]],os.path.splitext(input_files[i])[0]+".oplot") self.plot_widgets[i].do_plot() #self.plot_widgets[i].show() self.notebook.addTab(self.plot_widgets[i],plot_labels[i]) self.fig_photon_density.draw_graph() self.fig_photon_abs.draw_graph() self.progress_window.stop() self.main_vbox.addWidget(self.notebook) self.setLayout(self.main_vbox) return
def merge_archives(src_archive,dest_archive,only_over_write): debug=False progress_window=progress_class() progress_window.show() progress_window.start() process_events() # src_dir=os.path.dirname(src_archive) # dest_dir=os.path.dirname(dest_archive) dest_path=os.path.dirname(dest_archive) template_archive=os.path.join(get_inp_file_path(),"base.gpvdm") remove_non_used_index_files(dest_archive,src_archive) ls=zip_lsdir(src_archive) #copy files without checking ver for i in range(0,len(ls)): info=get_file_info(ls[i]) if info!=False: if info.copy_opp==file_type().JUST_COPY: #print(ls[i]) archive_copy_file(dest_archive,ls[i],src_archive,ls[i],dest=info.dest) if info.copy_opp==file_type().CHECK_VER_THEN_COPY: template_ver=inp_get_file_ver(template_archive,info.base_file) src_ver=inp_get_file_ver(src_archive,ls[i]) if template_ver!="" and src_ver!="": if template_ver==src_ver: archive_copy_file(dest_archive,ls[i],src_archive,ls[i]) #print("complex copy") if info.copy_opp==file_type().MERGE: if only_over_write==False: if archive_isfile(dest_archive,ls[i])==False: if archive_copy_file(dest_archive,ls[i],template_archive,info.base_file)==False: print("problem copying",template_archive,info.base_file) #print("made new file",dest_archive,ls[i]) ret=archive_merge_file(dest_archive,src_archive,ls[i]) progress_window.set_fraction(float(i)/float(len(ls))) progress_window.set_text("Importing "+ls[i]) process_events() #if you find a materials directory in the archive try to merge it for i in range(0,len(ls)): zip_dir_name=ls[i].split("/") if zip_dir_name[0]=="materials": dest=os.path.join(os.path.dirname(get_materials_path())) #print("Try to read",src_archive,ls[i],dest) extract_file_from_archive(dest,src_archive,ls[i]) if zip_dir_name[0]=="sim": extract_file_from_archive(dest_path,src_archive,ls[i]) if zip_dir_name[0]=="calibrate": extract_file_from_archive(dest_path,src_archive,ls[i]) #search for scan directories scan_dirs=[] for i in range(0,len(ls)): if ls[i].endswith("gpvdm_gui_config.inp"): scan_dirs.append(os.path.dirname(ls[i])) #extract scan directories for i in range(0,len(ls)): for ii in range(0,len(scan_dirs)): if ls[i].startswith(scan_dirs[ii])==True: #print("Try to read",src_archive,ls[i]) extract_file_from_archive(dest_path,src_archive,ls[i]) print("search",scan_dirs) progress_window.stop()