def init(self,input_files,plot_labels,config_file): self.shown=True self.window = gtk.Window() self.window.set_border_width(10) self.plot=plot_widget() self.plot.init(self.window) print "here1" print plot_labels if len(plot_labels)==0: for i in range(0,len(input_files)): plot_labels.append(os.path.basename(input_files[i]).replace("_","\_")) #print plot_labels for i in range(0,len(plot_labels)): if len(plot_labels[i])>0: if plot_labels[i][0]=="\\": plot_labels[i]=plot_labels[i][1:] plot_labels[i].replace("\\","/") self.plot.set_labels(plot_labels) self.plot.load_data(input_files,config_file) self.plot.do_plot() self.plot.show() self.window.add(self.plot) self.window.show_all() self.window.connect("destroy", self.callback_destroy)
def init(self,input_files,plot_labels,config_file): self.shown=True #self.window = QWidget() self.plot=plot_widget() self.plot.init() #self.plot.resize(800, 600) #self.window.setLayout(self.plot) print("labels",plot_labels) if len(plot_labels)==0: for i in range(0,len(input_files)): plot_labels.append(os.path.basename(input_files[i]).replace("_","\_")) #print plot_labels for i in range(0,len(plot_labels)): if len(plot_labels[i])>0: if plot_labels[i][0]=="\\": plot_labels[i]=plot_labels[i][1:] plot_labels[i].replace("\\","/") self.plot.set_labels(plot_labels) self.plot.load_data(input_files,config_file) self.plot.do_plot() self.plot.show()
def __init__(self,index): QWidget.__init__(self) self.vbox=QVBoxLayout() self.index=index self.plot=plot_widget(enable_toolbar=False) self.vbox.addWidget(self.plot) self.setLayout(self.vbox) self.draw_graph()
def __init__(self): QWidgetSavePos.__init__(self, "cmpclass") self.setWindowTitle(_("Examine simulation results in time domain")) self.snapshots_hbox = QHBoxLayout() self.snapshots_label = QLabel("Snapshots") self.snapshots_hbox.addWidget(self.snapshots_label) self.snapshots_combobox = QComboBox() self.snapshots_hbox.addWidget(self.snapshots_combobox) self.snapshots_widget = QWidget() self.snapshot_dirs = self.find_snapshots() for i in range(0, len(self.snapshot_dirs)): self.snapshots_combobox.addItem(self.snapshot_dirs[i]) self.snapshots_combobox.currentIndexChanged.connect( self.callback_snapshots_combobox) self.snapshots_widget.setLayout(self.snapshots_hbox) self.main_vbox = QVBoxLayout() self.slider = snapshot_slider() print(self.snapshot_dirs) if len(self.snapshot_dirs) != 0: self.slider.set_path( os.path.join(get_sim_path(), self.snapshot_dirs[0])) self.slider.changed.connect(self.update) self.plot = plot_widget() self.plot.init() self.tb_video = QAction(icon_get("video"), _("Save video"), self) self.tb_video.triggered.connect(self.callback_save) self.plot.plot_ribbon.file_toolbar.addAction(self.tb_video) self.plot.plot_ribbon.plot_toolbar.addAction(self.slider.tb_play) self.main_vbox.addWidget(self.plot) self.main_vbox.addWidget(self.snapshots_widget) self.main_vbox.addWidget(self.slider) self.setLayout(self.main_vbox) if os.path.isfile( os.path.join(get_sim_path(), "snapshots", "0", "Ec.dat")) == False: help_window().help_append([ "warning.png", _("No electrical slice data has been stored in the snapshots directory. To turn this on set Simulation->Configure->Dump->Dump 1D Slices to on. This will dump a lot of data and slow down your simulations." ) ]) #self.light.currentIndexChanged.connect(self.call_back_light_changed) self.update()
def __init__(self,index): QWidget.__init__(self) self.vbox=QVBoxLayout() self.index=index self.plot_widget=plot_widget() self.plot_widget.init() self.vbox.addWidget(self.plot_widget) self.setLayout(self.vbox) self.draw_graph()
def __init__(self): QTabWidget.__init__(self) self.setMovable(True) self.plot_widgets=[] for file_name in ["fitlog.dat","fitlog_time_error.dat","fitlog_time_odes.dat"]: f_name=os.path.join(get_sim_path(),file_name) self.plot_widgets.append(plot_widget()) self.plot_widgets[-1].init(menu=False) self.plot_widgets[-1].set_labels([f_name]) self.plot_widgets[-1].load_data([f_name],os.path.splitext(f_name)[0]+".oplot") self.plot_widgets[-1].do_plot() self.addTab(self.plot_widgets[-1],file_name)
def __init__(self): QTabWidget.__init__(self) self.setMovable(True) self.plot_widgets = [] for file_name in [ "fitlog.dat", "fitlog_time_error.dat", "fitlog_time_odes.dat" ]: f_name = os.path.join(get_sim_path(), file_name) self.plot_widgets.append(plot_widget(enable_toolbar=False)) self.plot_widgets[-1].set_labels([os.path.basename(f_name)]) self.plot_widgets[-1].load_data([f_name]) self.plot_widgets[-1].do_plot() self.addTab(self.plot_widgets[-1], file_name)
def __init__(self, path): QWidgetSavePos.__init__(self, "emission_main") self.path = path self.setFixedSize(900, 600) self.setWindowIcon(icon_get("emission")) self.setWindowTitle( _("Emission editor") + " (https://www.gpvdm.com)" + " " + os.path.basename(self.path)) self.main_vbox = QVBoxLayout() self.ribbon = ribbon_emission_db() self.ribbon.import_data.clicked.connect(self.import_data) self.ribbon.equation.clicked.connect(self.callback_equation_editor) self.ribbon.tb_ref.triggered.connect(self.callback_ref) self.ribbon.help.triggered.connect(self.callback_help) self.main_vbox.addWidget(self.ribbon) self.notebook = QTabWidget() self.notebook.setMovable(True) self.main_vbox.addWidget(self.notebook) fname = os.path.join(self.path, "spectra.inp") self.emission = plot_widget(enable_toolbar=False) self.emission.set_labels([_("Emission")]) self.emission.load_data([fname]) self.emission.do_plot() self.notebook.addTab(self.emission, _("Emission")) files = ["mat.inp"] description = [_("Basic")] for i in range(0, len(files)): full_path = os.path.join(self.path, files[i]) if os.path.isfile(full_path) == True: tab = tab_class(os.path.join(self.path, files[i])) self.notebook.addTab(tab, description[i]) self.setLayout(self.main_vbox) self.notebook.currentChanged.connect(self.changed_click)
def __init__(self, path): QWidgetSavePos.__init__(self, "spectra_main") self.path = path self.setMinimumSize(900, 600) self.setWindowIcon(icon_get("spectra_file")) self.setWindowTitle( _("Optical spectrum editor") + " (https://www.gpvdm.com)" + " " + os.path.basename(self.path)) self.main_vbox = QVBoxLayout() self.ribbon = ribbon_spectra() self.ribbon.import_data.clicked.connect(self.callback_import) self.ribbon.tb_ref.triggered.connect(self.callback_ref) self.ribbon.help.triggered.connect(self.callback_help) self.main_vbox.addWidget(self.ribbon) self.notebook = QTabWidget() self.notebook.setMovable(True) self.main_vbox.addWidget(self.notebook) files = ["mat.inp"] description = [_("Parameters")] fname = os.path.join(self.path, "spectra.inp") self.alpha = plot_widget(enable_toolbar=False) self.alpha.set_labels([_("Spectra")]) self.alpha.load_data([fname]) self.alpha.do_plot() self.notebook.addTab(self.alpha, _("Absorption")) for i in range(0, len(files)): tab = tab_class(os.path.join(self.path, files[i])) self.notebook.addTab(tab, description[i]) self.setLayout(self.main_vbox) self.notebook.currentChanged.connect(self.changed_click)
def __init__(self, index): QWidget.__init__(self) self.index = index self.fig = Figure(figsize=(5, 4), dpi=100) self.ax1 = None self.show_key = True self.hbox = QVBoxLayout() self.edit_list = [] self.line_number = [] self.list = [] self.plot = plot_widget(enable_toolbar=False) self.draw_graph() self.hbox.addWidget(self.plot) self.setLayout(self.hbox)
def init(self, input_files, plot_labels, config_file): self.shown = True self.plot = plot_widget() self.plot.init() print("labels", plot_labels) if len(plot_labels) == 0: for i in range(0, len(input_files)): plot_labels.append( os.path.basename(input_files[i]).replace("_", "\_")) #print plot_labels for i in range(0, len(plot_labels)): if len(plot_labels[i]) > 0: if plot_labels[i][0] == "\\": plot_labels[i] = plot_labels[i][1:] plot_labels[i].replace("\\", "/") self.plot.set_labels(plot_labels) self.plot.load_data(input_files, config_file) self.plot.do_plot() self.plot.show()
def __init__(self,path): QWidgetSavePos.__init__(self,"materials_main") self.path=path self.setFixedSize(900, 600) self.setWindowIcon(QIcon_load("organic_material")) self.setWindowTitle(_("Material editor")+" (https://www.gpvdm.com)"+" "+os.path.basename(self.path)) self.main_vbox = QVBoxLayout() self.ribbon=ribbon_materials() self.ribbon.cost.triggered.connect(self.callback_cost) self.ribbon.folder_open.triggered.connect(self.callback_dir_open) self.ribbon.import_data.triggered.connect(self.import_data) self.ribbon.tb_ref.triggered.connect(self.callback_ref) self.ribbon.help.triggered.connect(self.callback_help) self.main_vbox.addWidget(self.ribbon) self.notebook = QTabWidget() self.notebook.setMovable(True) self.main_vbox.addWidget(self.notebook) #alpha=equation(self.path,"alpha_eq.inp","alpha_gen.omat","alpha.omat","#mat_default_file_alpha") #alpha.set_default_value("1e7") #alpha.set_ylabel(_("Absorption")+" (m^{-1})") #alpha.init() fname=os.path.join(self.path,"alpha.omat") self.alpha=plot_widget() self.alpha.init(enable_toolbar=False) self.alpha.set_labels([_("Absorption")]) self.alpha.load_data([fname],os.path.splitext(fname)[0]+".oplot") self.alpha.do_plot() self.notebook.addTab(self.alpha,_("Absorption")) fname=os.path.join(self.path,"n.omat") self.n=plot_widget() self.n.init(enable_toolbar=False) self.n.set_labels([_("Refractive index")]) self.n.load_data([fname],os.path.splitext(fname)[0]+".oplot") self.n.do_plot() self.notebook.addTab(self.n,_("Refractive index")) files=["dos.inp","pl.inp","mat.inp"] description=[_("Electrical parameters"),_("Luminescence"),_("Basic")] for i in range(0,len(files)): tab=tab_class() full_path=os.path.join(self.path,files[i]) if os.path.isfile(full_path)==True: tab.init(os.path.join(self.path,files[i]),description[i]) self.notebook.addTab(tab,description[i]) self.setLayout(self.main_vbox) self.notebook.currentChanged.connect(self.changed_click)
def __init__(self): QWidgetSavePos.__init__(self, "optics") self.setWindowIcon(icon_get("optics")) self.setMinimumSize(1000, 600) self.setWindowTitle( _("Optical simulation editor") + " (https://www.gpvdm.com)") self.ribbon = optics_ribbon() self.edit_list = [] self.line_number = [] self.articles = [] input_files = [] input_files.append( os.path.join(get_sim_path(), "optical_output", "light_2d_photons.dat")) input_files.append( os.path.join(get_sim_path(), "optical_output", "light_2d_photons_asb.dat")) plot_labels = [] plot_labels.append(_("Photon distribution")) plot_labels.append(_("Photon distribution absorbed")) self.setWindowIcon(icon_get("optics")) self.main_vbox = QVBoxLayout() self.ribbon.optics.run.start_sim.connect(self.callback_run) self.ribbon.optics.fx_box.cb.currentIndexChanged.connect( self.mode_changed) self.ribbon.optics.help.triggered.connect(self.callback_help) self.ribbon.tb_save.clicked.connect(self.callback_save) self.ribbon.optics.configwindow.triggered.connect( self.callback_configwindow) self.ribbon.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) 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.plot_widgets = [] self.progress_window.start() for i in range(0, len(input_files)): self.plot_widgets.append(plot_widget(enable_toolbar=False)) self.plot_widgets[i].hide_title = True self.plot_widgets[i].set_labels([plot_labels[0]]) self.plot_widgets[i].load_data([input_files[i]]) #self.plot_widgets[i].watermark_alpha=0.5 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 = band_graph() self.fig_photon_density.set_data_file("light_1d_photons_tot_norm.dat") 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.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.notebook.addTab(self.fig_gen_rate, _("Generation rate")) self.fig_photon_density.draw_graph() #self.fig_photon_abs.draw_graph() self.fig_gen_rate.draw_graph() self.progress_window.stop() self.notebook.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.main_vbox.addWidget(self.notebook) self.setLayout(self.main_vbox) if os.path.isfile( os.path.join(get_sim_path(), "optical_output", "light_2d_photons.dat")) == False: response = yes_no_dlg( self, "You have not yet run a full optical simulation, to use this feature you need to. Would you run one now?" ) if response == True: self.callback_run() else: self.close()
def __init__(self): QWidget.__init__(self) self.setWindowTitle(_("Examine simulation results in time domain")) self.snapshots_hbox = QHBoxLayout() self.snapshots_label= QLabel("Snapshots") self.snapshots_hbox.addWidget(self.snapshots_label) self.snapshots_combobox=QComboBox() self.snapshots_hbox.addWidget(self.snapshots_combobox) self.snapshots_widget=QWidget() self.snapshot_dirs=self.find_snapshots() for i in range(0,len(self.snapshot_dirs)): self.snapshots_combobox.addItem(self.snapshot_dirs[i]) self.snapshots_combobox.currentIndexChanged.connect(self.callback_snapshots_combobox) self.snapshots_widget.setLayout(self.snapshots_hbox) self.main_vbox = QVBoxLayout() self.slider=snapshot_slider() self.slider.set_path(os.path.join(os.getcwd(),"snapshots")) self.slider.changed.connect(self.update) self.plot=plot_widget() self.plot.init() #Toolbar toolbar=QToolBar() toolbar.setIconSize(QSize(42, 42)) self.tb_video = QAction(QIcon(os.path.join(get_image_file_path(),"video.png")), _("Save video"), self) self.tb_video.triggered.connect(self.callback_save) toolbar.addAction(self.tb_video) #self.tb_scale = QAction(QIcon(os.path.join(get_image_file_path(),"scale.png")), _("Scale"), self) #self.tb_scale.triggered.connect(self.callback_scale) #toolbar.addAction(self.tb_rotate) spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) toolbar.addWidget(spacer) self.help = QAction(QIcon(os.path.join(get_image_file_path(),"help.png")), 'Hide', self) self.help.setStatusTip(_("Close")) self.help.triggered.connect(self.callback_help) toolbar.addAction(self.help) ############################################## self.main_vbox.addWidget(toolbar) self.main_vbox.addWidget(self.plot) self.main_vbox.addWidget(self.snapshots_widget) self.main_vbox.addWidget(self.slider) self.setLayout(self.main_vbox) self.win_list=windows() self.win_list.load() self.win_list.set_window(self,"cmp_class") if os.path.isfile(os.path.join(os.getcwd(),"snapshots","0","Ec.dat"))==False: help_window().help_append(["warning.png",_("No electrical slice data has been stored in the snapshots directory. To turn this on set Simulation->Configure->Dump->Dump 1D Slices to on. This will dump a lot of data and slow down your simulations.")])
def init(self): self.dumps=0 self.plot_token=plot_state() self.win_list=windows() self.win_list.load() self.win_list.set_window(self,"cmp_class") self.snapshot_list=self.update_snapshots_dir() vbox=gtk.VBox() self.multi_plot=False self.log_scale_y="auto" self.plot=plot_widget() self.plot.init(self) accel_group = gtk.AccelGroup() item_factory = gtk.ItemFactory(gtk.MenuBar, "<main>", accel_group) menu_items = ( ( "/_Options", None, None, 0, "<Branch>" ), ( "/Options/_Subtract 0th frame", None, self.callback_toggle_subtract, 0, "<ToggleItem>", "gtk-save" ), ( "/_Axis/_Multiplot", None, self.callback_multi_plot, 0, "<ToggleItem>", "gtk-save" ), ( "/_Axis/_Set y axis to maximum", None, self.callback_set_min_max, 0, "<ToggleItem>", "gtk-save" ), ) self.plot.item_factory.create_items(menu_items) image = gtk.Image() image.set_from_file(os.path.join(get_image_file_path(),"video.png")) self.video = gtk.ToolButton(image) self.plot.toolbar.add(self.video) self.video.show() self.video.connect("clicked", self.callback_save) image = gtk.Image() image.set_from_file(os.path.join(get_image_file_path(),"scale.png")) self.scale = gtk.ToolButton(image) self.plot.toolbar.add(self.scale) sep = gtk.SeparatorToolItem() sep.set_draw(False) sep.set_expand(True) self.plot.toolbar.add(sep) sep.show() help = gtk.ToolButton(gtk.STOCK_HELP) self.plot.toolbar.add(help) help.connect("clicked", self.callback_help) help.show() close = gtk.ToolButton(gtk.STOCK_QUIT) close.connect("clicked", self.callback_close) self.plot.toolbar.add(close) close.show() self.connect("delete-event", self.callback_close) self.plot.toolbar.show_all() self.canvas=self.plot.canvas self.plot.show() vbox.add(self.plot) #adjust self.adj1 = gtk.Adjustment(0.0, 0.0, 100, 1, 1.0, 1.0) self.adj1.connect("value_changed", self.callback_scale) vscale = gtk.HScale(self.adj1) vscale.set_update_policy(gtk.UPDATE_CONTINUOUS) vscale.set_digits(1) vscale.set_value_pos(gtk.POS_TOP) vscale.set_draw_value(True) vscale.set_size_request(200, 40) vscale.set_digits(0) vbox.pack_start(vscale, False, False, 10) sim_vbox=gtk.VBox() primary_hbox=gtk.HBox() text=gtk.Label("Primary dir") primary_hbox.add(text) self.entry0 = gtk.combo_box_entry_new_text() self.entry0.show() for i in range(0,len(self.snapshot_list)): self.entry0.append_text(self.snapshot_list[i]) primary_hbox.add(self.entry0) sim_vbox.add(primary_hbox) secondary_hbox=gtk.HBox() text=gtk.Label("Secondary dir") secondary_hbox.add(text) self.entry1 = gtk.combo_box_entry_new_text() self.entry1.show() for i in range(0,len(self.snapshot_list)): self.entry1.append_text(self.snapshot_list[i]) secondary_hbox.add(self.entry1) sim_vbox.add(secondary_hbox) sim_vbox.show() #hbox.set_size_request(-1, 30) vbox.pack_start(sim_vbox, False, False, 0) hbox2=gtk.HBox() text=gtk.Label("Files to plot") hbox2.add(text) self.entry2 = gtk.Entry() self.entry2.set_text("pt_map nt_map") self.entry2.show() hbox2.add(self.entry2) hbox2.set_size_request(-1, 30) vbox.pack_start(hbox2, False, False, 0) hbox3=gtk.HBox() text=gtk.Label("Exprimental data") hbox3.add(text) self.entry3 = gtk.Entry() self.entry3.set_text("") self.entry3.show() hbox3.add(self.entry3) hbox3.set_size_request(-1, 30) vbox.pack_start(hbox3, False, False, 0) self.update_button = gtk.Button() self.update_button.set_label("Update") self.update_button.show() self.update_button.connect("clicked", self.callback_scale) vbox.add(self.update_button) self.config_load() self.count_dumps() if self.dumps==0: md = gtk.MessageDialog(None, 0, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, "No slice data has been written to disk. You need to re-run the simulation with the dump_slices set to 1. Would you like to do this now? Note: This generates lots of files and will slow down the simulation.") response = md.run() if response == gtk.RESPONSE_YES: inp_update_token_value("dump.inp", "#dump_1d_slices", "1",1) ret= os.system(get_exe_command()) md.destroy() self.count_dumps() self.entry0.connect("changed", self.callback_edit) self.entry1.connect("changed", self.callback_edit) self.entry2.connect("changed", self.callback_edit) self.entry3.connect("changed", self.callback_edit) vbox.show_all() self.add(vbox) self.update(0) if self.dumps!=0: self.plot.do_plot() print "CONVERT!!!!!!!!!!!",type(self.plot.plot_token.key_units) self.set_border_width(10) self.set_title("Compare") self.set_icon_from_file(os.path.join(get_image_file_path(),"image.jpg")) self.connect('key_press_event', self.on_key_press_event) self.show()
def __init__(self, file_name): QWidget.__init__(self) self.dos_file = file_name self.dos_dir = os.path.join(get_sim_path(), file_name[:-4]) if os.path.isdir(self.dos_dir) == False: os.mkdir(self.dos_dir) ext = file_name[3:] self.lumo_file = "lumo" + ext self.homo_file = "h**o" + ext self.setWindowTitle(_("Complex Density of states editor - gpvdm")) self.setWindowIcon(icon_get("electrical")) self.setMinimumSize(1400, 500) edit_boxes = QWidget() vbox = QVBoxLayout() self.lumo = equation_editor("lumo" + ext, "LUMO") vbox.addWidget(self.lumo) self.h**o = equation_editor("h**o" + ext, "H**O") vbox.addWidget(self.h**o) self.plot = plot_widget(enable_toolbar=False) self.plot.set_labels( [_("LUMO"), _("H**O"), _("LUMO numerical"), _("H**O numerical")]) self.gen_mesh() edit_boxes.setLayout(vbox) hbox = QHBoxLayout() self.plot.do_plot() #self.plot.do_plot() hbox.addWidget(self.plot) hbox.addWidget(edit_boxes) self.ribbon = ribbon_complex_dos() self.ribbon.tb_save.triggered.connect(self.callback_save) self.ribbon.tb_trap_depth.triggered.connect(self.callback_trap_depth) self.main_layout_widget = QWidget() self.main_layout_widget.setLayout(hbox) self.big_vbox = QVBoxLayout() self.big_vbox.addWidget(self.ribbon) self.big_vbox.addWidget(self.main_layout_widget) self.setLayout(self.big_vbox) self.lumo.changed.connect(self.update_graph) self.h**o.changed.connect(self.update_graph) get_watch().add_call_back(self.dos_file, self.update_graph) get_watch().add_call_back(self.lumo_file, self.lumo.load) get_watch().add_call_back(self.homo_file, self.h**o.load)
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 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 __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 init(self, input_files, plot_labels, config_file): three_d = False data_type = "xy" if len(input_files) == 1: data = dat_file() data.load(input_files[0]) data_type = data.type three_d = False if data_type == "gobj": three_d = True if data_type == "zxy-d": three_d = True if three_d == True: self.setWindowTitle( _("3D object viewer") + " https://www.gpvdm.com") self.setWindowIcon(icon_get("shape")) self.plot = glWidget(self) self.main_vbox.addWidget(self.plot) self.setLayout(self.main_vbox) #self.plot.triangle_file=input_files[0] self.plot.draw_electrical_mesh = False self.plot.view.draw_device = False self.plot.enable_draw_ray_mesh = False self.plot.enable_draw_light_source = False self.plot.enable_draw_rays = False self.plot.view.render_photons = False if data_type == "zxy-d": self.plot.plot_graph = True self.plot.graph_data.load(input_files[0]) self.show() if data_type == "gobj": self.plot.pre_built_scene = gl_scale.project_base_objects_from_m_2_screen( data.data) self.show() self.plot.force_redraw() #self.plot.render() #self.plot.gl_objects_load(ret) #print(self.plot.graph_data.data) elif data_type == "circuit": self.setWindowTitle( _("3D object viewer") + " https://www.gpvdm.com") self.setWindowIcon(icon_get("shape")) self.plot = glWidget(self) self.main_vbox.addWidget(self.plot) self.setLayout(self.main_vbox) self.plot.draw_electrical_mesh = False self.plot.view.draw_device = False self.plot.enable_draw_ray_mesh = False self.plot.enable_draw_light_source = False self.plot.enable_draw_rays = False self.plot.plot_graph = False self.plot.plot_circuit = True self.plot.view.render_photons = False self.plot.graph_data.load(input_files[0]) self.show() elif data_type == "poly": self.setWindowTitle( _("3D object viewer") + " https://www.gpvdm.com") self.setWindowIcon(icon_get("shape")) self.plot = glWidget(self) self.main_vbox.addWidget(self.plot) self.setLayout(self.main_vbox) #self.plot.triangle_file=input_files[0] self.plot.draw_electrical_mesh = False self.plot.view.draw_device = False self.plot.enable_draw_ray_mesh = True self.plot.enable_draw_light_source = False self.plot.enable_draw_rays = False self.plot.scene_built = True self.plot.view.render_photons = False data = dat_file() if data.load(input_files[0]) == True: a = gl_base_object() a.id = ["bing"] a.type = "open_triangles" a.r = data.r a.g = data.g a.b = data.b a.triangles = project_trianges_m2screen(data.data) self.plot.gl_objects_add(a) self.show() else: self.shown = True self.plot = plot_widget() if len(plot_labels) == 0: for i in range(0, len(input_files)): plot_labels.append( os.path.basename(input_files[i]).replace("_", "\_")) #print plot_labels for i in range(0, len(plot_labels)): if len(plot_labels[i]) > 0: if plot_labels[i][0] == "\\": plot_labels[i] = plot_labels[i][1:] plot_labels[i].replace("\\", "/") self.plot.load_data(input_files) self.plot.set_labels(plot_labels) self.plot.do_plot() self.plot.show()
def __init__(self): super().__init__() top_hbox = QHBoxLayout() top_widget = QWidget() #top_widget.setLayout(top_hbox) self.plot = plot_widget(enable_toolbar=False) #self.plot.load_data(["jv.dat"]) #self.plot.set_labels(["jv.dat"]) self.plot.do_plot() #self.plot.fig.canvas.draw() date_widget = QWidget() date_vbox = QVBoxLayout() self.cal = QCalendarWidget(self) self.cal.setGridVisible(True) self.cal.move(10, 20) self.time = QTimeEdit() time = QTime(12, 30) self.time.setTime(time) date_vbox.addWidget(self.cal) date_vbox.addWidget(self.time) self.lat_widget = QWidget() self.lat_layout = QHBoxLayout() self.lat_label = QLabel("Latitude") self.lat_edit = QLineEdit() self.lat_layout.addWidget(self.lat_label) self.lat_layout.addWidget(self.lat_edit) self.lat_widget.setLayout(self.lat_layout) date_vbox.addWidget(self.lat_widget) self.preasure_widget = QWidget() self.preasure_layout = QHBoxLayout() self.preasure_label = QLabel("Preasure (bar)") self.preasure_edit = QLineEdit() self.preasure_layout.addWidget(self.preasure_label) self.preasure_layout.addWidget(self.preasure_edit) self.preasure_widget.setLayout(self.preasure_layout) date_vbox.addWidget(self.preasure_widget) self.aod_widget = QWidget() self.aod_layout = QHBoxLayout() self.aod_label = QLabel("AOD (cm-1)") self.aod_edit = QLineEdit() self.aod_layout.addWidget(self.aod_label) self.aod_layout.addWidget(self.aod_edit) self.aod_widget.setLayout(self.aod_layout) date_vbox.addWidget(self.aod_widget) self.water_widget = QWidget() self.water_layout = QHBoxLayout() self.water_label = QLabel("Water (cm-1)") self.water_edit = QLineEdit() self.water_layout.addWidget(self.water_label) self.water_layout.addWidget(self.water_edit) self.water_widget.setLayout(self.water_layout) date_vbox.addWidget(self.water_widget) self.no2_widget = QWidget() self.no2_layout = QHBoxLayout() self.no2_label = QLabel("NO2 (cm-1)") self.no2_edit = QLineEdit() self.no2_layout.addWidget(self.no2_label) self.no2_layout.addWidget(self.no2_edit) self.no2_widget.setLayout(self.no2_layout) if am_i_rod() == True: date_vbox.addWidget(self.no2_widget) date_widget.setLayout(date_vbox) top_hbox.addWidget(self.plot) top_hbox.addWidget(date_widget) self.setLayout(top_hbox) #inp_get_token_value("spectral2.inp","#spectral2_day") #inp_get_token_value("spectral2.inp","#spectral2_hour") #inp_get_token_value("spectral2.inp","#spectral2_minute") self.water_edit.setText( inp_get_token_value("spectral2.inp", "#spectral2_water")) self.aod_edit.setText( inp_get_token_value("spectral2.inp", "#spectral2_aod")) self.preasure_edit.setText( inp_get_token_value("spectral2.inp", "#spectral2_preasure")) self.lat_edit.setText( inp_get_token_value("spectral2.inp", "#spectral2_lat")) self.no2_edit.setText( inp_get_token_value("spectral2.inp", "#spectral2_no2")) self.calculate()