예제 #1
0
 def is_name(self, name):
     file_list = zip_lsdir(os.path.join(get_sim_path(), "sim.gpvdm"))
     files = []
     for i in range(0, len(file_list)):
         if inp_issequential_file(file_list[i],
                                  self.base_file_name[0]) == True:
             sim_name = inp_get_token_value(file_list[i], self.name_token)
             sim_name = sim_name.split("@")[0]
             if sim_name == name:
                 return True
     return False
예제 #2
0
    def callback_enable(self):
        file_list = zip_lsdir(os.path.join(get_sim_path(), "sim.gpvdm"))
        for i in range(0, len(file_list)):
            if inp_issequential_file(file_list[i],
                                     self.base_file_name[0]) == True:
                inp_update_token_value(file_list[i], "#tab_enabled", "false")

        tab = self.notebook_pointer.currentWidget()
        inp_update_token_value(os.path.join(get_sim_path(), tab.file_name),
                               "#tab_enabled", "true")

        self.enabled.set_value(True)
예제 #3
0
    def get_scans(self):
        scan_dirs = []
        f = inp(file_path=os.path.join(self.path, "sim.gpvdm"))
        ls = f.lsdir()
        #print(ls)
        for scan_file in ls:

            if inp_issequential_file(scan_file, "scan") == True:
                s = scan_io()
                s.load(os.path.join(self.path, scan_file))
                scan_dirs.append(s)

        return scan_dirs
예제 #4
0
    def load_tabs(self):
        files = []
        file_list = zip_lsdir(os.path.join(get_sim_path(), "sim.gpvdm"))
        for i in range(0, len(file_list)):
            if inp_issequential_file(file_list[i],
                                     self.base_file_name[0]) == True:
                name = inp_get_token_value(file_list[i], self.name_token)
                name = name.split("@")[0]

                files.append([name, file_list[i]])

        files.sort()
        for i in range(0, len(files)):
            self.added.emit(files[i][1])
예제 #5
0
def import_archive(src_archive,dest_archive,only_over_write):
	if src_archive.endswith('.opvdm')==False:
		print "I can only import from .opvdm files"
		return

	if dest_archive.endswith('.opvdm')==False:
		print "I can only import to .opvdm files"
		return

	src_dir=os.path.dirname(src_archive)
	dest_dir=os.path.dirname(dest_archive)
	files=[ "sim.inp", "device.inp", "stark.inp" ,"shg.inp"   ,"jv.inp" , "optics.inp", "math.inp",  "dump.inp" , "light.inp", "server.inp", "light_exp.inp" ]

	for my_file in files:
		print "Importing",my_file,"to",dest_archive
		copy_check_ver(dest_archive,src_archive,my_file,only_over_write,True)

	files=["info.inp"]

	print src_archive
	ls=zip_lsdir(src_archive)
	for i in range(0,len(ls)):
		if inp_issequential_file(ls[i],"dos"):
			files.append(ls[i])

		if inp_issequential_file(ls[i],"pl"):
			files.append(ls[i])

		if inp_issequential_file(ls[i],"time_mesh_config"):
			files.append(ls[i])

		if inp_issequential_file(ls[i],"pulse"):
			files.append(ls[i])

	for my_file in files:
		print "Importing",my_file,"to",dest_archive
		copy_check_ver(dest_archive,src_archive,my_file,False,True)

	files=[ "epitaxy.inp", "fit.inp", "constraints.inp","duplicate.inp", "thermal.inp","mesh.inp" ]

	ls=zip_lsdir(src_archive)
	for i in range(0,len(ls)):

		if inp_issequential_file(ls[i],"h**o"):
			files.append(ls[i])

		if inp_issequential_file(ls[i],"lumo"):
			files.append(ls[i])

	for my_file in files:
		print "Importing",my_file
		copy_check_ver(dest_archive,src_archive,my_file,only_over_write,False)

	import_scan_dirs(dest_dir,src_dir)
예제 #6
0
def merge_archives(src_archive,dest_archive,only_over_write):
#	src_dir=os.path.dirname(src_archive)
#	dest_dir=os.path.dirname(dest_archive)
	template_archive=os.path.join(get_inp_file_path(),"sim.gpvdm")

	remove_non_used_index_files(dest_archive,src_archive)

	files=[ "sim.inp", "device.inp", "led.inp","stark.inp" ,"shg.inp"   ,"jv.inp" , "math.inp",  "dump.inp",  "dump_file.inp"  , "light.inp", "server.inp", "light_exp.inp","info.inp","config.inp" ]

	base_file=files[:]

	print(src_archive)
	ls=zip_lsdir(src_archive)
	for i in range(0,len(ls)):
		if inp_issequential_file(ls[i],"dos"):
			files.append(ls[i])
			base_file.append(os.path.join(get_materials_path(),"generic","dos.inp"))

		if inp_issequential_file(ls[i],"pl"):
			files.append(ls[i])
			base_file.append(os.path.join(get_materials_path(),"generic","pl.inp"))

		if inp_issequential_file(ls[i],"pulse"):
			files.append(ls[i])
			base_file.append("pulse0.inp")

		if inp_issequential_file(ls[i],"laser"):
			files.append(ls[i])
			base_file.append("laser0.inp")

	for i in range(0,len(files)):
		print("Importing",files[i],"to",dest_archive,template_archive,base_file[i])
		if only_over_write==False:
			if archive_isfile(dest_archive,files[i])==False:
				if archive_copy_file(dest_archive,files[i],template_archive,base_file[i])==False:
					print("problem copying",template_archive,base_file[i])
				print("made new file",dest_archive,files[i])

		ret=archive_merge_file(dest_archive,src_archive,files[i])
		print("merged",dest_archive,src_archive,files[i],ret)


	files=[ "epitaxy.inp", "fit.inp", "constraints.inp","duplicate.inp", "thermal.inp","mesh_x.inp","mesh_y.inp","mesh_z.inp" ]
	base_file=files[:]

	ls=zip_lsdir(src_archive)
	for i in range(0,len(ls)):

		if inp_issequential_file(ls[i],"time_mesh_config"):
			files.append(ls[i])
			base_file.append("time_mesh_config0.inp")

		if inp_issequential_file(ls[i],"h**o"):
			files.append(ls[i])
			base_file.append("homo0.inp")

		if inp_issequential_file(ls[i],"lumo"):
			files.append(ls[i])
			base_file.append("lumo0.inp")

	for i in range(0,len(files)):
		print("Importing",files[i])
		template_ver=archive_get_file_ver(template_archive,base_file[i])
		src_ver=archive_get_file_ver(src_archive,files[i])
		print(template_ver,src_ver,template_ver==src_ver,template_archive,files[i],src_archive)

		if template_ver!="" and src_ver!="":
			if template_ver==src_ver:
				archive_copy_file(dest_archive,files[i],src_archive,files[i])
				print("complex copy",dest_archive,files[i],src_archive,files[i])