Example #1
0
    def init(self):
        self.setFixedSize(900, 600)
        self.setWindowIcon(QIcon_load("preferences-system"))

        self.setWindowTitle(_("Configure") + " (https://www.gpvdm.com)")

        self.main_vbox = QVBoxLayout()

        toolbar = QToolBar()
        toolbar.setIconSize(QSize(48, 48))

        spacer = QWidget()
        spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        toolbar.addWidget(spacer)

        self.undo = QAction(QIcon_load("help"), _("Help"), self)
        self.undo.setStatusTip(_("Help"))
        self.undo.triggered.connect(self.callback_help)
        toolbar.addAction(self.undo)

        self.main_vbox.addWidget(toolbar)

        self.notebook = QTabWidget()
        css_apply(self.notebook, "tab_default.css")
        self.notebook.setMovable(True)

        self.main_vbox.addWidget(self.notebook)

        files = [
            "math.inp", "dump.inp", "thermal.inp", "led.inp", "config.inp",
            "server.inp"
        ]
        description = [
            _("Solver configuration"),
            _("Output files"),
            _("Thermal"),
            _("LED"),
            _("GUI configuration"),
            _("Server configuration")
        ]

        for i in range(0, len(files)):
            file_name = os.path.join(get_sim_path(), files[i])
            if inp_isfile(file_name) == True:
                tab = tab_class()
                tab.init(file_name, description[i])
                self.notebook.addTab(tab, description[i])
                if os.path.basename(file_name) == "dump.inp":
                    tab.changed.connect(self.callback_tab_changed)

                    self.detailed_file_select = dump_select()
                    self.notebook.addTab(self.detailed_file_select,
                                         _("Detailed dump control"))

        lang_tab = language_tab_class()
        self.notebook.addTab(lang_tab, _("Language"))

        self.setLayout(self.main_vbox)
Example #2
0
	def active_layer_edit(self, widget, path, text, model):
		old_text=self.model[path][COLUMN_DEVICE]
		self.model[path][COLUMN_DEVICE]=text
		if yes_no(old_text)==False and yes_no(text)==True:
			self.model[path][COLUMN_DOS_LAYER]=epitay_get_next_dos()
			self.model[path][COLUMN_PL_FILE]=epitay_get_next_pl()
			new_file=self.model[path][COLUMN_DOS_LAYER]+".inp"
			if inp_isfile(new_file)==False:
				inp_copy_file(new_file,"dos0.inp")

			new_file=self.model[path][COLUMN_PL_FILE]+".inp"
			if inp_isfile(new_file)==False:
				inp_copy_file(new_file,"pl0.inp")

		if yes_no(text)==False:
			self.model[path][COLUMN_DOS_LAYER]="none"
			self.model[path][COLUMN_PL_FILE]="none"

		self.save_model()
		self.refresh(True)
Example #3
0
	def layer_type_edit(self):
		for i in range(0,self.tab.rowCount()):
			if tab_get_value(self.tab,i,3).lower()=="active layer" and tab_get_value(self.tab,i,4).startswith("dos")==False:
				tab_set_value(self.tab,i,4,epitay_get_next_dos())
				tab_set_value(self.tab,i,5,epitay_get_next_pl())

				mat_dir=os.path.join(get_materials_path(),tab_get_value(self.tab,i,2))
				
				new_file=tab_get_value(self.tab,i,4)+".inp"
				if inp_isfile(new_file)==False:
					inp_copy_file(new_file,os.path.join(mat_dir,"dos.inp"))

				new_file=tab_get_value(self.tab,i,5)+".inp"
				if inp_isfile(new_file)==False:
					inp_copy_file(new_file,os.path.join(mat_dir,"pl.inp"))

			if tab_get_value(self.tab,i,3).lower()!="active layer" and tab_get_value(self.tab,i,4).startswith("dos")==True:
				tab_set_value(self.tab,i,4,tab_get_value(self.tab,i,3))
				tab_set_value(self.tab,i,5,"none")

		self.save_model()
		self.emit_change()
Example #4
0
    def layer_type_edit(self):
        for i in range(0, self.tab.rowCount()):
            if tab_get_value(self.tab, i,
                             3).lower() == "active layer" and tab_get_value(
                                 self.tab, i, 4).startswith("dos") == False:
                tab_set_value(self.tab, i, 4, epitay_get_next_dos())
                tab_set_value(self.tab, i, 5, epitay_get_next_pl())

                mat_dir = os.path.join(get_materials_path(),
                                       tab_get_value(self.tab, i, 2))

                new_file = tab_get_value(self.tab, i, 4) + ".inp"
                if inp_isfile(new_file) == False:
                    dos_path = os.path.join(mat_dir, "dos.inp")
                    if os.path.isfile(dos_path) == False:
                        dos_path = os.path.join(get_default_material_path(),
                                                "dos.inp")
                    inp_copy_file(new_file, dos_path)

                new_file = tab_get_value(self.tab, i, 5) + ".inp"
                if inp_isfile(new_file) == False:
                    inp_copy_file(new_file, os.path.join(mat_dir, "pl.inp"))

            if tab_get_value(self.tab, i,
                             3).lower() != "active layer" and tab_get_value(
                                 self.tab, i, 4).startswith("dos") == True:
                tab_set_value(self.tab, i, 4, tab_get_value(self.tab, i, 3))
                tab_set_value(self.tab, i, 5, "none")

            if tab_get_value(self.tab, i, 3).lower() == "other":
                tab_set_value(self.tab, i, 4, tab_get_value(self.tab, i, 3))

            if tab_get_value(self.tab, i, 3).lower() == "contact":
                tab_set_value(self.tab, i, 4, tab_get_value(self.tab, i, 3))

        self.save_model()
        self.emit_change()
        global_object_run("dos_update")
        global_object_run("pl_update")
Example #5
0
    def update(self):
        if self.scan_window != None:
            del self.scan_window
            self.scan_window = None

        if self.fit_window != None:
            del self.fit_window
            self.fit_window = None
        self.sun.update()

        if inp_isfile(os.path.join(get_sim_path(), "fit.inp")) == True:
            self.fit.setVisible(True)
        else:
            self.fit.setVisible(False)
Example #6
0
	def init(self):
		self.setFixedSize(900, 600)
		self.setWindowIcon(icon_get("preferences-system"))

		self.setWindowTitle(_("Configure")+" (https://www.gpvdm.com)") 
		

		self.main_vbox = QVBoxLayout()



		spacer = QWidget()
		spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
		self.toolbar.addWidget(spacer)


		self.undo = QAction(icon_get("help"), _("Help"), self)
		self.undo.setStatusTip(_("Help"))
		self.undo.triggered.connect(self.callback_help)
		self.toolbar.addAction(self.undo)

		self.main_vbox.addWidget(self.toolbar)

		

		self.notebook = QTabWidget()
		css_apply(self.notebook,"tab_default.css")
		self.notebook.setMovable(True)

		self.main_vbox.addWidget(self.notebook)

		for i in range(0,len(self.files)):
			file_name=os.path.join(get_sim_path(),self.files[i])
			if inp_isfile(file_name)==True:
				tab=tab_class()
				tab.init(file_name,self.description[i])
				self.notebook.addTab(tab,self.description[i])
				if os.path.basename(file_name)=="dump.inp":
					tab.changed.connect(self.callback_tab_changed)
					
					self.detailed_file_select=dump_select()
					self.notebook.addTab(self.detailed_file_select,_("Detailed dump control"))
		

		self.setLayout(self.main_vbox)
	def load(self):
		self.clean_menu()
		self.last_page=0
		#print "paths",os.getcwd(),get_bin_path(),(os.path.normcase(os.getcwd())!=os.path.normcase(get_bin_path()))
		if (os.path.exists("sim.opvdm")==True) and (os.path.normcase(os.getcwd())!=os.path.normcase(get_bin_path())):
			self.finished_loading=False
			self.progress.init()
			self.progress.show()
			self.progress.start()
			self.progress.set_text("Loading..")
			process_events()

			for child in self.get_children():
					self.remove(child)

			dos_files=inp_get_token_value("device_epitaxy.inp", "#layers")

			self.main_tab=tab_main()
			self.main_tab.init()
			self.main_tab.show()
			self.append_page(self.main_tab, gtk.Label(_("Device structure")))

			lines=[]
			pos=0
			if inp_load_file(lines,"gui_config.inp")==True:
				pos=0
				tab_number=0
				tabs=(len(lines)-3)/2
				print "tabs=",tabs
				while (1):
					add_to_widget=False
					ret,pos=inp_get_next_token_array(lines,pos)

					if ret[0]=="#ver":
						break

					file_name=ret[0]
					if file_name[0]=="#":
						file_name=file_name[1:]
					name=inp_file_to_description(file_name)
					if name==False:
						print "name not found",name
						break
					visible=bool(int(ret[1]))

					self.progress.set_fraction(float(tab_number)/float(tabs))

					tab_number=tab_number+1
					self.progress.set_text(_("Loading ")+name)
					process_events()
					if file_name=="pl0.inp":
						tab=pl_main()
						tab.init()
						tab.update()
						add_to_widget=True
						tab.visible=visible
						tab.label_name=name
						tab.file_name=file_name
					elif file_name=="epitaxy.inp":
						tab=dos_main()
						tab.init()
						tab.update()
						add_to_widget=True
						tab.visible=visible
						tab.label_name=name
						tab.file_name=file_name
					elif file_name=="lumo0.inp":
						tab=tab_bands()
						tab.update()
						if tab.enabled==True:
							add_to_widget=True
							tab.visible=visible
							tab.wow()
							tab.label_name=name
							tab.file_name=file_name

					elif inp_isfile(file_name)==True:
						add_to_widget=True
						tab=tab_class()
						tab.visible=visible
						tab.init(file_name,name)
						tab.label_name=name
						tab.file_name=file_name

					if add_to_widget==True:
						#print file_name,name,visible,type(tab)
						hbox=gtk.HBox()
						hbox.set_size_request(-1, 25)
						mytext=name
						if len(mytext)<10:
							for i in range(len(mytext),10):
								mytext=mytext+" "

						label=gtk.Label(mytext)
						label.set_justify(gtk.JUSTIFY_LEFT)
						self.connect("switch-page", self.callback_switch_page)
						hbox.pack_start(label, False, True, 0)

						button = gtk.Button()
						close_image = gtk.Image()
						close_image.set_from_file(os.path.join(get_image_file_path(),"close.png"))
						print os.path.join(get_image_file_path(),"close.png")
						close_image.show()
						button = gtk.Button()
						button.add(close_image)


						button.props.relief = gtk.RELIEF_NONE
						button.connect("clicked", self.callback_close_button,name)
						button.set_size_request(25, 25)
						button.show()
					

						hbox.pack_end(button, False, False, 0)
						hbox.show_all()

						if (visible==True):
							tab.show()

						self.append_page(tab,hbox)



						self.set_tab_reorderable(tab,True)

						self.add_to_menu(name,visible)

			else:
				print _("No gui_config.inp file found\n")

			#for child in self.get_children():
			#		print type(child)

			if self.terminal_widget!=None:
				self.terminal_widget.show()
				self.append_page(self.terminal_widget, gtk.Label(_("Terminal")))


			self.add_welcome_page()

			self.finished_loading=True
			self.progress.stop()
			self.progress.set_fraction(0.0)
			self.goto_page("tab_main")

			self.set_tab_pos(gtk.POS_TOP)
			#self.set_current_page(1)

			return True
		else:
			self.add_welcome_page()
			self.goto_page(_("Welcome"))
			return False
Example #8
0
def experiment_new_filename():
	for i in range(0,20):
		pulse_name="pulse"+str(i)+".inp"
		if inp_isfile(pulse_name)==False:
			return i
	return -1
Example #9
0
def measure_new_filename():
    for i in range(0, 20):
        pulse_name = "measure" + str(i) + ".inp"
        if inp_isfile(os.path.join(get_sim_path(), pulse_name)) == False:
            return i
    return -1
Example #10
0
	def update(self):
		self.enabled=inp_isfile("./lumo0.inp")
Example #11
0
def fit_new_filename():
    for i in range(0, 20):
        pulse_name = "fit" + str(i) + ".inp"
        if inp_isfile(pulse_name) == False:
            return i
    return -1
Example #12
0
	def load(self):
		self.clean_menu()
		self.last_page=0

		#self.setTabsClosable(True)
		self.setMovable(True)
		if (os.path.exists("sim.gpvdm")==True) and (os.path.normcase(os.getcwd())!=os.path.normcase(get_bin_path())):
			self.finished_loading=False
			#self.progress.init()
			#self.progress.show()
			#self.progress.start()
			#self.progress.set_text("Loading..")
			#process_events()

			self.clear()

#			dos_files=inp_get_token_value("device_epitaxy.inp", "#layers")

			widget=tab_main()

			self.addTab(widget,_("Device structure"))

	
			lines=[]
			pos=0
			if inp_load_file(lines,"gui_config.inp")==True:
				pos=0
				tab_number=0
				tabs=(len(lines)-3)/2
				while (1):
					add_to_widget=False
					ret,pos=inp_get_next_token_array(lines,pos)

					if ret[0]=="#ver":
						break

					file_name=ret[0]
					if file_name[0]=="#":
						file_name=file_name[1:]
					name=inp_file_to_description(file_name)
					if name==False:
						print("name not found",name)
						break
					visible=bool(int(ret[1]))

					#self.progress.set_fraction(float(tab_number)/float(tabs))

					tab_number=tab_number+1
					#self.progress.set_text(_("Loading ")+name)
					#process_events()

					if file_name=="lumo0.inp":
						widget=tab_bands()
						#tab.update()
						add_to_widget=True
						widget.visible=visible
						widget.label_name=name
						widget.file_name=file_name
					elif file_name=="epitaxy.inp":
						widget=dos_main()
						widget.update()
						add_to_widget=True
						widget.visible=visible
						widget.label_name=name
						widget.file_name=file_name
					elif file_name=="pl0.inp":
						widget=pl_main()
						widget.update()
						add_to_widget=True
						widget.visible=visible
						widget.label_name=name
						widget.file_name=file_name
					elif inp_isfile(file_name)==True:
						add_to_widget=True
						widget=tab_class()
						widget.init(file_name,name)


					#	add_to_widget=True
					#	tab=
					#	tab.visible=visible
					#	tab.init(file_name,name)
					#	tab.label_name=name
					#	tab.file_name=file_name

					if add_to_widget==True:
						mytext=name
						if len(mytext)<10:
							for i in range(len(mytext),10):
								mytext=mytext+" "
						self.addTab(widget,mytext)


			self.terminal=tab_terminal()
			self.terminal.init()
			self.addTab(self.terminal,"Terminal")
			self.terminal.run(os.getcwd(),get_exe_command()+" --version --html")

			self.add_info_page()

			return True




			self.finished_loading=True
			#self.progress.stop()
			#self.progress.set_fraction(0.0)
			self.goto_page("tab_main")

		else:
			self.add_info_page()
			self.goto_page(_("Information"))
			return False
Example #13
0
 def update(self):
     if inp_isfile(os.path.join(get_sim_path(), "sim.ref")) == True:
         self.paper.setVisible(True)
     else:
         self.paper.setVisible(False)
Example #14
0
def fit_new_filename():
	for i in range(0,20):
		pulse_name="fit"+str(i)+".inp"
		if inp_isfile(pulse_name)==False:
			return i
	return -1
Example #15
0
def experiment_new_filename():
	for i in range(0,20):
		name="fxdomain"+str(i)+".inp"
		if inp_isfile(name)==False:
			return i
	return -1
Example #16
0
def experiment_new_filename(base_name):
    for i in range(0, 20):
        pulse_name = base_name + str(i) + ".inp"
        if inp_isfile(os.path.join(get_sim_path(), pulse_name)) == False:
            return i
    return -1
Example #17
0
 def new_filenumber(self):
     for i in range(0, 20):
         new_filename = self.base_file_name[0] + str(i) + ".inp"
         if inp_isfile(os.path.join(get_sim_path(), new_filename)) == False:
             return str(i)
     return False