예제 #1
0
파일: gpvdm.py 프로젝트: xj361685640/gpvdm
    def change_dir_and_refresh_interface(self, new_dir):
        scan_items_clear()
        self.splash.inc_value()

        scan_items_populate_from_known_tokens()
        self.splash.inc_value()

        self.splash.inc_value()

        set_sim_path(new_dir)
        self.splash.inc_value()

        calculate_paths()
        self.splash.inc_value()

        epitaxy_load(get_sim_path())
        self.splash.inc_value()

        contacts_load()
        self.splash.inc_value()

        if mesh_load_all() == False:
            error_dlg(
                self,
                _("There was a problem loading the electrical mesh, I suspect you are trying to open a file generated in a very old version of gpvdm."
                  ))
            return

        self.statusBar().showMessage(get_sim_path())
        self.splash.inc_value()

        self.update_interface()
        self.splash.inc_value()

        if self.notebook.terminal != None:
            self.my_server.set_terminal(self.notebook.terminal)

        if self.notebook.update_display_function != None:
            self.my_server.set_display_function(
                self.notebook.update_display_function)

        scan_item_add("sim.inp", "#simmode", "sim mode", 1)
        scan_item_add("light.inp", "#Psun", "light intensity", 1)
        #scan_populate_from_file("light.inp")

        self.ribbon.update()
        self.splash.inc_value()
예제 #2
0
	def change_dir_and_refresh_interface(self,new_dir):
		print "rod",os.getcwd(),new_dir
 		scan_items_clear()
		os.chdir(new_dir)
		calculate_paths()
		epitaxy_load()
		self.config.load(os.getcwd())
		print "rod",os.getcwd(),new_dir
		self.status_bar.push(self.context_id, os.getcwd())
		#self.plot_open.set_sensitive(False)

		self.notebook.set_item_factory(self.item_factory)
		if self.notebook.load()==True:
			self.sim_mode.update()
			self.ti_light.connect('refresh', self.notebook.main_tab.update)
			self.play.set_sensitive(True)
			self.stop.set_sensitive(True)
			self.examine.set_sensitive(True)
			self.param_scan.set_sensitive(True)
			self.plot_select.set_sensitive(True)
			self.undo.set_sensitive(True)
			#self.save_sim.set_sensitive(True)
			self.experiment_window_button.set_sensitive(True)
			my_help_class.help_set_help(["play.png",_("<big><b>Now run the simulation</b></big>\n Click on the play icon to start a simulation.")])

			my_item=self.item_factory.get_item(_("/File/Import data"))
			if my_item!=None:
				my_item.set_sensitive(True)
			my_item=self.item_factory.get_item(_("/File/Export data"))
			if my_item!=None:
				my_item.set_sensitive(True)
			my_item=self.item_factory.get_item(_("/File/Import data"))
			if my_item!=None:
				my_item.set_sensitive(True)
			my_item=self.item_factory.get_item(_("/File/Import from library"))
			if my_item!=None:
				my_item.set_sensitive(True)
			my_item=self.item_factory.get_item(_("/Simulate/Run"))
			if my_item!=None:
				my_item.set_sensitive(True)
			my_item=self.item_factory.get_item(_("/Simulate/Parameter scan"))
			if my_item!=None:
				my_item.set_sensitive(True)

		else:
			self.play.set_sensitive(False)
			self.stop.set_sensitive(False)
			self.examine.set_sensitive(False)
			self.param_scan.set_sensitive(False)
			self.plot_select.set_sensitive(False)
			self.undo.set_sensitive(False)
			#self.save_sim.set_sensitive(False)
			self.experiment_window_button.set_sensitive(False)
			my_help_class.help_set_help(["icon.png",_("<big><b>Hi!</b></big>\n I'm the on-line help system :).  If you find any bugs please report them to [email protected]."),"new.png",_("Click on the new icon to make a new simulation directory.")])

			my_item=self.item_factory.get_item(_("/File/Import data"))
			if my_item!=None:
				my_item.set_sensitive(False)
			my_item=self.item_factory.get_item(_("/File/Export data"))
			if my_item!=None:
				my_item.set_sensitive(False)
			my_item=self.item_factory.get_item(_("/File/Import data"))
			if my_item!=None:
				my_item.set_sensitive(False)
			my_item=self.item_factory.get_item(_("/File/Import from library"))
			if my_item!=None:
				my_item.set_sensitive(False)
			my_item=self.item_factory.get_item(_("/Simulate/Run"))
			if my_item!=None:
				my_item.set_sensitive(False)
			my_item=self.item_factory.get_item(_("/Simulate/Parameter scan"))
			if my_item!=None:
				my_item.set_sensitive(False)

		if self.notebook.terminal!=None:
			self.my_server.set_terminal(self.notebook.terminal)
		self.notebook.show()

		self.plotted_graphs.init(os.getcwd(),self.callback_last_menu_click)

		set_active_name(self.light, inp_get_token_value("light.inp", "#Psun"))

		scan_item_add("sim.inp","#simmode","sim mode",1)
		scan_item_add("light.inp","#Psun","light intensity",1)


		if self.scan_window!=None:
			del self.scan_window
			self.scan_window=None

		if self.experiment_window!=None:
			del self.experiment_window
			self.experiment_window=None

		if self.fxexperiment_window!=None:
			del self.fxexperiment_window
			self.fxexperiment_window=None


		if self.qe_window!=None:
			del self.qe_window
			self.qe_window=None
예제 #3
0
def command_args(argc, argv):
    if test_arg_for_sim_file() != False:
        return

    if argc >= 2:
        if args.version:
            print(version())
            sys.exit(0)
        elif args.ver:
            print(ver())
            sys.exit(0)
        elif args.syncver:
            ver_sync_ver()
            sys.exit(0)
        elif args.importscandirs:
            import_scan_dirs(os.getcwd(), args.importscandirs[0])
            exit(0)
        elif args.replace:
            device_lib_replace(args.replace[0], dir_name=args.replace[1])
            exit(0)
        elif args.delete:
            device_lib_delete(args.delete[0], dir_name=args.delete[1])
            exit(0)
        elif args.clean:
            clean_sim_dir()
            sys.exit(0)
        elif args.export:
            export_as(args.export[0])
            sys.exit(0)
        elif args.makeman:
            make_man()
            sys.exit(0)
        elif args.cleanscandirs:
            clean_scan_dirs(os.getcwd())
            sys.exit(0)
        elif args.importfile:
            import_archive(args.importfile[0],
                           os.path.join(os.getcwd(), "sim.gpvdm"), False)
            sys.exit(0)
        elif args.dumptab:
            export_as(args.dumptab[0])
            sys.exit(0)
        elif args.patch:
            import_archive(args.patch[0], args.patch[1], True)
            sys.exit(0)
        elif args.patchfile:
            patch_file(args.patchfile[0], args.patchfile[1], args.patchfile[2])
            sys.exit(0)
        elif args.clone:
            gpvdm_clone(os.getcwd(), copy_dirs=True)
            sys.exit(0)
        elif args.matcompress:
            archive_materials(os.path.join(os.getcwd(), "materials"))
            sys.exit(0)
        elif args.clonesrc:
            gpvdm_copy_src(clone - src[0])
            sys.exit(0)
        elif args.editvalue:
            inp_update_token_value(args.editvalue[0], args.editvalue[1],
                                   args.editvalue[2])
            sys.exit(0)
        elif args.load:
            set_sim_path(os.path.dirname(args.load[0]))
            #print("a")
        elif args.encrypt:
            inp_encrypt(args.encrypt[0])
            sys.exit(0)
        elif args.extract:
            archive_decompress("sim.gpvdm")
            sys.exit(0)
        elif args.scanplot:
            plot_token = dat_file()
            oplot_file = args.scan - plot[0]
            if plot_load_info(plot_token, oplot_file) == True:
                print("file0=", plot_token.file0, "<")
                plot_files, plot_labels, save_file = scan_gen_plot_data(
                    plot_token, os.path.dirname(oplot_file))
                print("written data to", save_file)
            else:
                print("Problem loading oplot file")
            sys.exit(0)

        if args.unpack:
            archive_unpack(args.unpack[0])
            sys.exit()
        if args.runscan:
            set_gui(False)
            scan_dir_path = args.runscan[0]  #program file
            exe_command = get_exe_command()
            program_list = tree_load_program(scan_dir_path)

            watch_dir = os.path.join(os.getcwd(), scan_dir_path)

            commands = []
            #server_find_simulations_to_run(commands,scan_dir_path)
            commands = tree_load_flat_list(scan_dir_path)
            print(commands)

            myserver = base_server()
            myserver.base_server_init(watch_dir)

            for i in range(0, len(commands)):
                myserver.base_server_add_job(commands[i], "")
                print("Adding job" + commands[i])

            myserver.print_jobs()
            myserver.simple_run()
            #simple_run(exe_command)

            sys.exit(0)

        if args.scanarchive:
            set_gui(False)
            scan_archive(args.scanarchive[0])
            sys.exit(0)

        if args.buildscan:
            set_gui(False)
            scan_items_clear()
            scan_items_populate_from_known_tokens()
            scan_items_populate_from_files()

            scan_dir_path = args.buildscan[0]  #program file
            base_dir = args.buildscan[1]  #base dir

            build_scan(scan_dir_path, base_dir)

            sys.exit(0)

        if args.scanbuildvectors:
            set_gui(False)
            scan_ml_build_vector(args.scanbuildvectors[0])
            sys.exit(0)

        if args.buildnestedscan:
            set_gui(False)

            scan_items_clear()
            scan_items_populate_from_known_tokens()
            scan_items_populate_from_files()

            scan_dir_path = os.path.abspath(
                args.buildnestedscan[0])  #program file
            sim_to_nest = os.path.abspath(
                args.buildnestedscan[1])  #program file
            scan_build_nested_simulation(
                scan_dir_path, os.path.join(os.getcwd(), sim_to_nest))

            sys.exit(0)
예제 #4
0
	def change_dir_and_refresh_interface(self,new_dir):
		scan_items_clear()
		os.chdir(new_dir)
		calculate_paths()
		epitaxy_load()
		contacts_load()
		mesh_load_all()

		#print "rod",os.getcwd(),new_dir
		self.statusBar().showMessage(os.getcwd())
		#self.plot_open.setEnabled(False)

		#self.notebook.set_item_factory(self.item_factory)
		if self.notebook.load()==True:
			self.sim_mode_button.update()
			#self.ti_light.connect('refresh', self.notebook.main_tab.update)
			self.run.setEnabled(True)
			self.stop.setEnabled(True)
			self.examine.setEnabled(True)
			self.param_scan.setEnabled(True)
			self.plot_select.setEnabled(True)
			self.undo.setEnabled(True)
			self.jv_button.setEnabled(True)
			self.laser_button.setEnabled(True)
			self.tb_time_domain.setEnabled(True)
			#self.save_sim.setEnabled(True)
			self.experiment_window_button.setEnabled(True)
			self.light_button.setEnabled(True)
			self.light_button.update()
			help_window().help_set_help(["play.png",_("<big><b>Now run the simulation</b></big><br> Click on the play icon to start a simulation.")])

			self.menu_new_optical_material.setEnabled(True)
			self.menu_export_data.setEnabled(True)
			self.menu_import_data.setEnabled(True)
			self.menu_import_lib.setEnabled(True)
			self.menu_run.setEnabled(True)
			self.menu_stop.setEnabled(True)
			self.menu_scan.setEnabled(True)
			self.menu_configure.setEnabled(True)
			self.sim_mode_button.setEnabled(True)
			if enable_betafeatures()==True:
				self.tb_run_fit.setEnabled(True)
				self.qe_button.setEnabled(True)
		else:
			self.run.setEnabled(False)
			self.stop.setEnabled(False)
			self.examine.setEnabled(False)
			self.param_scan.setEnabled(False)
			self.plot_select.setEnabled(False)
			self.undo.setEnabled(False)
			self.jv_button.setEnabled(False)
			#self.save_sim.setEnabled(False)
			self.experiment_window_button.setEnabled(False)

			self.laser_button.setEnabled(False)
			self.tb_time_domain.setEnabled(False)
			self.sim_mode_button.setEnabled(False)
			self.light_button.setEnabled(False)

			help_window().help_set_help(["icon.png",_("<big><b>Hi!</b></big><br> I'm the on-line help system :).  If you find any bugs please report them to [email protected]."),"new.png",_("Click on the new icon to make a new simulation directory.")])

			self.menu_new_optical_material.setEnabled(False)
			self.menu_export_data.setEnabled(False)
			self.menu_import_data.setEnabled(False)
			self.menu_import_lib.setEnabled(False)
			self.menu_run.setEnabled(False)
			self.menu_stop.setEnabled(False)
			self.menu_scan.setEnabled(False)
			self.menu_configure.setEnabled(False)
			if enable_betafeatures()==True:
				self.tb_run_fit.setEnabled(False)
				self.qe_button.setEnabled(False)

		if self.notebook.terminal!=None:
			self.my_server.set_terminal(self.notebook.terminal)

		#self.plotted_graphs.init(os.getcwd(),self.callback_last_menu_click)

		#set_active_name(self.light, inp_get_token_value("light.inp", "#Psun"))

		scan_item_add("sim.inp","#simmode","sim mode",1)
		scan_item_add("light.inp","#Psun","light intensity",1)
		#scan_populate_from_file("light.inp")

		if self.scan_window!=None:
			del self.scan_window
			self.scan_window=None

		if self.experiment_window!=None:
			del self.experiment_window
			self.experiment_window=None

		if self.fxexperiment_window!=None:
			del self.fxexperiment_window
			self.fxexperiment_window=None

		if self.jvexperiment_window!=None:
			del self.jvexperiment_window
			self.jvexperiment_window=None

		if self.sim_info_window!=None:
			del self.sim_info_window
			self.sim_info_window=None

		if self.fit_window!=None:
			del self.fit_window
			self.fit_window=None

		if self.lasers_window!=None:
			del self.lasers_window
			self.lasers_window=None

		if self.config_window!=None:
			del self.config_window
			self.config_window=None

		if self.qe_window!=None:
			del self.qe_window
			self.qe_window=None