Example #1
0
	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)
Example #2
0
	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()
Example #4
0
    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()
Example #5
0
	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,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()
Example #7
0
	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)
Example #8
0
    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)
Example #10
0
    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)
Example #12
0
    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()
Example #13
0
	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)
Example #14
0
    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()
Example #15
0
	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.")])
Example #16
0
	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()
Example #17
0
    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)
Example #18
0
    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
Example #19
0
	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()
Example #20
0
	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
Example #21
0
    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()
Example #22
0
    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()