Exemple #1
0
def scan_archive(sim_dir):
	progress_window=progress_class()
	progress_window.show()
	progress_window.start()
	archive_path=os.path.join(sim_dir,"build_archive.zip")
	if os.path.isfile(archive_path)==True:
		os.remove(archive_path)
	zf = zipfile.ZipFile(archive_path, 'a',zipfile.ZIP_DEFLATED)

	l=os.listdir(sim_dir)
	for i in range(0,len(l)):
		dir_to_zip=os.path.join(sim_dir,l[i])
		if os.path.isdir(dir_to_zip)==True:
			archive_add_dir(archive_path,dir_to_zip,sim_dir,zf=zf,remove_src_dir=True)

		progress_window.set_fraction(float(i)/float(len(l)))
		progress_window.set_text(_("Adding: ")+l[i])

		#if server_break()==True:
		#	break
		process_events()
		
	zf.close()

	os.rename(archive_path, os.path.join(sim_dir,scan_next_archive(sim_dir)))

	progress_window.stop()
Exemple #2
0
    def __init__(self):
        QWidget.__init__(self)
        self.hbox = QHBoxLayout()

        self.bar = progress_class()
        self.bar.spinner.stop()
        self.bar.spinner.hide()
        self.label = QLabel()

        self.slider = QSlider(Qt.Horizontal)

        self.slider.setTickPosition(QSlider.TicksBelow)
        self.slider.setTickInterval(1)
        #self.slider.valueChanged.connect(self.slider0_change)
        self.slider.setMinimumSize(300, 80)
        self.slider.valueChanged.connect(self.slider_changed)
        self.slider.setTickPosition(QSlider.TicksBelow)
        self.hbox.addWidget(self.label)
        self.bar.hide_time()
        self.hbox.addWidget(self.bar)
        self.hbox.addWidget(self.slider)

        self.setLayout(self.hbox)

        self.name = ""
        self.ip = ""
        self.cpus = -1
        self.load = -1
        self.max_cpus = -1
        self.last_seen = -1
def export_materials(target):
	if target.endswith(".zip")==False:
		target=target+".zip"

	file_list=[]

	progress_window=progress_class()
	progress_window.show()
	progress_window.start()
	process_events()
	mat_files=["alpha_eq.inp","alpha_gen.omat","alpha.omat","cost.xlsx","dos.inp","fit.inp","mat.inp","n_eq.inp","n_gen.omat","n.omat","pl.inp"]
	for path, dirs, files in os.walk(os.path.join(os.getcwd(),"materials")):
		for file_name in files:
			if file_name in mat_files:
				file_list.append(os.path.join(path,file_name))

	zf = zipfile.ZipFile(target, 'a')

	for i in range(0,len(file_list)):
		cur_file=file_list[i]

		lines=[]
		if os.path.isfile(cur_file):
			f=open(cur_file, mode='rb')
			lines = f.read()
			f.close()


			zf.writestr(remove_cwdfrompath(cur_file), lines)
			progress_window.set_fraction(float(i)/float(len(file_list)))
			progress_window.set_text("Adding"+cur_file[len(os.getcwd()):])
			process_events()

	zf.close()
	progress_window.stop()
Exemple #4
0
    def load_tabs(self):

        progress_window = progress_class()
        progress_window.show()
        progress_window.start()

        process_events()

        file_list = zip_lsdir(os.path.join(get_sim_path(), "sim.gpvdm"))
        files = []
        for i in range(0, len(file_list)):
            if file_list[i].startswith("pulse") and file_list[i].endswith(
                    ".inp"):
                name = inp_get_token_value(file_list[i], "#sim_menu_name")
                files.append([name, file_list[i]])

        files.sort()

        for i in range(0, len(files)):
            value = strextract_interger(files[i][1])
            if value != -1:
                self.add_page(value)

            progress_window.set_fraction(float(i) / float(len(files)))
            progress_window.set_text(_("Loading") + " " + files[i][0])
            process_events()

        progress_window.stop()
def export_materials(target):
	if target.endswith(".zip")==False:
		target=target+".zip"

	file_list=[]

	progress_window=progress_class()
	progress_window.show()
	progress_window.start()
	process_events()
	mat_files=["alpha_eq.inp","alpha_gen.omat","alpha.omat","cost.xlsx","dos.inp","fit.inp","info.txt","mat.inp","n_eq.inp","n_gen.omat","n.omat","pl.inp"]
	for path, dirs, files in os.walk(os.path.join(os.getcwd(),"materials")):
		for file_name in files:
			if file_name in mat_files:
				file_list.append(os.path.join(path,file_name))

	zf = zipfile.ZipFile(target, 'a')

	for i in range(0,len(file_list)):
		cur_file=file_list[i]

		lines=[]
		if os.path.isfile(cur_file):
			f=open(cur_file, mode='rb')
			lines = f.read()
			f.close()


			zf.writestr(remove_cwdfrompath(cur_file), lines)
			progress_window.set_fraction(float(i)/float(len(file_list)))
			progress_window.set_text("Adding"+cur_file[len(os.getcwd()):])
			process_events()

	zf.close()
	progress_window.stop()
Exemple #6
0
 def __init__(self):
     self.running = False
     self.progress_window = progress_class()
     self.stop_work = False
     self.cpus = multiprocessing.cpu_count()
     self.jobs = []
     self.jobs_running = 0
     self.jobs_run = 0
     self.finished_jobs = []
Exemple #7
0
def export_archive(target,everything):
	if target.endswith(".gpvdm")==False:
		target=target+".gpvdm"

	file_list=[]

	progress_window=progress_class()
	progress_window.show()
	progress_window.start()
	process_events()

	if everything==True:
		for path, dirs, files in os.walk(get_sim_path()):
			for file_name in files:
				if file_name.endswith(".inp") or file_name.endswith(".dat") or file_name.endswith(".omat"):
					file_list.append(os.path.join(path,file_name))
	else:
		files=os.listdir(get_sim_path())
		for file_name in files:
			if file_name.endswith(".inp"):
				file_list.append(os.path.join(get_sim_path(),file_name))

	zf = zipfile.ZipFile(target, 'a')

	for i in range(0,len(file_list)):
		cur_file=file_list[i]

		lines=[]
		if os.path.isfile(cur_file):
			try:
				f=open(cur_file, mode='rb')
				lines = f.read()
				f.close()


				zf.writestr(remove_simpathfrompath(cur_file), lines)
			except:
				print(_("Can't open file ")+cur_file)

			progress_window.set_fraction(float(i)/float(len(file_list)))
			progress_window.set_text("Adding"+cur_file[len(get_sim_path()):])
			process_events()

	src_zf = zipfile.ZipFile(os.path.join(get_sim_path(),"sim.gpvdm"), 'r')

	for file_name in src_zf.namelist():
		if file_name not in zf.namelist():
			#print "adding from archive",file_name
			lines=src_zf.read(file_name)
			zf.writestr(file_name, lines)

	zf.close()
	src_zf.close()
	progress_window.stop()
def export_archive(target,everything):
	if target.endswith(".opvdm")==False:
		target=target+".opvdm"

	file_list=[]

	progress_window=progress_class()
	progress_window.init()
	progress_window.show()
	progress_window.start()
	process_events()
	   
	if everything==True:
		for path, dirs, files in os.walk(os.getcwd()):	
			for file_name in files:
				if file_name.endswith(".inp") or file_name.endswith(".dat") or file_name.endswith(".omat"):  
					file_list.append(os.path.join(path,file_name))
	else:
		files=os.listdir(os.getcwd())
		for file_name in files:
			if file_name.endswith(".inp"):  
				file_list.append(os.path.join(os.getcwd(),file_name))

	zf = zipfile.ZipFile(target, 'a')

	for i in range(0,len(file_list)):
		cur_file=file_list[i]

		lines=[]
		if os.path.isfile(cur_file):
			f=open(cur_file, mode='rb')
			lines = f.read()
			f.close()


			zf.writestr(remove_cwdfrompath(cur_file), lines)
			progress_window.set_fraction(float(i)/float(len(file_list)))
			progress_window.set_text("Adding"+cur_file[len(os.getcwd()):])
			process_events()

	src_zf = zipfile.ZipFile(os.path.join(os.getcwd(),"sim.opvdm"), 'r')

	for file_name in src_zf.namelist():
		if file_name not in zf.namelist():
			#print "adding from archive",file_name
			lines=src_zf.read(file_name)
			zf.writestr(file_name, lines)

	zf.close()
	src_zf.close()
	progress_window.stop()
Exemple #9
0
	def send_files(self,target,src,files):
		progress_window=progress_class()
		progress_window.show()
		progress_window.start()

		process_events()
		
		count=0
		banned=[]

		for i in range(0,len(files)):
			data=tx_struct()

			progress_window.set_fraction(float(i)/float(len(files)))
			progress_window.set_text("Sending "+files[i])
			process_events()

			full_path=os.path.normpath(os.path.join(src,files[i]))

			data.stat=os.stat(full_path)[ST_MODE]

			f = open(full_path, 'rb')   
			bytes = f.read()
			f.close()
			orig_size=len(bytes)

			print("tx file:",full_path)

			if target=="":
				data.target=src
			else:
				data.target=target

			data.id="gpvdmfile"
			data.uzipsize=len(bytes)
			data.data=bytes
			data.zip=True
			data.file_name=strip_slash(files[i])
			count=count+1
			self.tx_packet(data)
			#if count>2:
			#	break
			print("status>>>>>>>>",i,len(files))

		progress_window.stop()

		print("total=",count)
Exemple #10
0
def scan_delete_files(dirs_to_del,parent_window=None):
	if parent_window!=None:
		progress_window=progress_class()
		progress_window.show()
		progress_window.start()

		process_events()
	
	for i in range(0, len(dirs_to_del)):
		gpvdm_delete_file(dirs_to_del[i])
		if parent_window!=None:
			progress_window.set_fraction(float(i)/float(len(dirs_to_del)))
			progress_window.set_text("Deleting"+dirs_to_del[i])
			process_events()

	if parent_window!=None:
		progress_window.stop()
Exemple #11
0
def tree_gen_random_files(sim_path, flat_simulation_list, program_list,
                          base_dir):
    length = 0

    for i in range(0, len(program_list)):
        if program_list[i][3] == "random_file_name":
            length = int(program_list[i][2])

    progress_window = progress_class()
    progress_window.show()
    progress_window.start()

    process_events()

    for i in range(0, length):
        rand = codecs.encode(os.urandom(int(16 / 2)), 'hex').decode()
        cur_dir = os.path.join(sim_path, rand)

        if not os.path.exists(cur_dir):
            os.makedirs(cur_dir)
            gpvdm_clone(cur_dir,
                        src_archive=os.path.join(base_dir, "sim.gpvdm"),
                        dest="file")

            os.chdir(cur_dir)
            archive_decompress(os.path.join(cur_dir, "sim.gpvdm"))
            if tree_apply_constant(cur_dir, program_list) == False:
                return False

            if tree_apply_python_script(cur_dir, program_list) == False:
                return False

            tree_apply_mirror(cur_dir, program_list)

            archive_compress(os.path.join(cur_dir, "sim.gpvdm"))

            flat_simulation_list.append(cur_dir)

            progress_window.set_fraction(float(i) / float(length))
            progress_window.set_text("Adding " + cur_dir)
            process_events()

    progress_window.stop()
Exemple #12
0
def scan_build_nested_simulation(root_simulation, nest_simulation):

    progress_window = progress_class()
    progress_window.show()
    progress_window.start()

    process_events()

    program_list = tree_load_program(nest_simulation)

    files = os.listdir(root_simulation)
    simulations = []
    for i in range(0, len(files)):
        if os.path.isfile(os.path.join(root_simulation, files[i],
                                       "sim.gpvdm")) == True:
            simulations.append(files[i])

    flat_simulation_list = []

    path = os.getcwd()
    for i in range(0, len(simulations)):
        dest_name = os.path.join(root_simulation, simulations[i])
        tree_gen(flat_simulation_list, program_list, dest_name, dest_name)

        progress_window.set_fraction(float(i) / float(len(simulations)))
        progress_window.set_text(simulations[i])
        process_events()

    progress_window.stop()

    os.chdir(path)

    flat_simulation_list = tree_gen_flat_list(root_simulation, level=1)

    print(flat_simulation_list)
    tree_save_flat_list(root_simulation, flat_simulation_list)

    return
Exemple #13
0
	def __init__(self):
		QWidget.__init__(self)
		self.hbox=QHBoxLayout()
		
		self.bar=progress_class()
		self.bar.spinner.stop()
		self.bar.spinner.hide()
		self.label=QLabel()
		
		self.slider = QSlider(Qt.Horizontal)
		self.slider.setMinimum(0)
		self.slider.setMaximum(10)

		self.slider.setTickPosition(QSlider.TicksBelow)
		self.slider.setTickInterval(1)
		#self.slider.valueChanged.connect(self.slider0_change)
		self.slider.setMinimumSize(300, 80)

		self.hbox.addWidget(self.label)
		self.hbox.addWidget(self.bar)
		self.hbox.addWidget(self.slider)

		self.setLayout(self.hbox)
Exemple #14
0
def scan_ml_build_vector(sim_dir):
	output_file=os.path.join(sim_dir,"vectors.dat")
	if os.path.isfile(output_file)==True:
		response=yes_no_cancel_dlg(None,"The file "+output_file+" already exists.  Continue? ")

		if response!="yes":
			sys.exit(0)

	out=open(output_file,'wb')
	progress_window=progress_class()
	progress_window.show()
	progress_window.start()

	tot_archives=0
	for archive_name in os.listdir(sim_dir):
		if archive_name.startswith("archive")==True and archive_name.endswith(".zip")==True:
			tot_archives=tot_archives+1

	done=0

	errors=0
	for archive_name in os.listdir(sim_dir):

		if archive_name.startswith("archive")==True and archive_name.endswith(".zip")==True:

			archive_path=os.path.join(sim_dir,archive_name)

			if done==0:		#Find the measurment files and determine which ones are needed
				found=[]
				zf = zipfile.ZipFile(archive_path, 'r')
				items=zf.namelist()
				for l in items:
					parts=l.split("/")
					fname=parts[-1]
					if fname.endswith("scan.inp")==True:
						found_item=os.path.join(parts[-2],parts[-1])

						a=parts[-2]
						#measurment()
						#a.experiment=parts[-2]
						#a.measurement_file=parts[-1]
						#a.token="#ml_input_"+parts[-1][8:-4]+"_"+parts[-2]

						if found.count(a)==False:
							found.append(a)

			zf = zipfile.ZipFile(archive_path, 'r')
			dirs=zip_lsdir(archive_path,zf=zf,sub_dir="/")

			items=len(dirs)
			for i in range(0,len(dirs)):
				rnd = [random.choice(string.ascii_letters + string.digits) for n in range(0,32)]
				rnd = "".join(rnd)

				tmp_dir="/dev/shm/gpvdm_"+rnd
				if os.path.isdir(tmp_dir)==True:
					shutil.rmtree(tmp_dir)

				os.mkdir(tmp_dir)

				extract_dir_from_archive(tmp_dir,"",dirs[i],zf=zf)
	
				full_name=tmp_dir
				written=False
				#print(dirs[i])

				error=False
				v="#ml_id\n"
				v=v+dirs[i]+"\n"

				
				for scan_folder in found:
					token="#ml_input_"+scan_folder
					v=v+token+"\n"

					dolog=False
					div=1.0
					mul=1.0
					do_fabs=False

					sim_mode=inp_get_token_value(os.path.join(full_name,scan_folder,"sim.inp"), "#simmode")
					if sim_mode==None:
						error=True
						break
					sim_mode=sim_mode.lower()

					light=float(inp_get_token_value(os.path.join(full_name,scan_folder,"light.inp"), "#Psun"))

					if sim_mode.endswith("jv") or sim_mode.startswith("jv"):
						file_name="jv.dat"
						sim_mode="jv"
						vector=[0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]	#np.linspace(0.2,1.0,20)#

						if light>0.0:
							div=1e2

						if light==0.0:
							dolog=True

					elif sim_mode=="sun_voc":
						file_name="suns_voc.dat"
						vector=[0.02,0.04,0.05,0.1,0.5,0.7,1.0]
						dolog=True
						mul=-10.0

					elif sim_mode.startswith("tpc")==True:
						file_name="pulse_i.dat"
						vector=[1.1e-6,2e-6,2e-5,1e-4,0.02,0.1]
						dolog=True
						do_fabs=True
					elif sim_mode.startswith("celiv")==True:
						file_name="pulse_i.dat"
						vector=[2e-6,3e-6,4e-6,5e-6,6e-6,7e-6,8e-6]
						do_fabs=True
						mul=1000.0
					elif sim_mode.startswith("tpv")==True:
						file_name="pulse_v.dat"
						vector=[10e-6,20e-6,30e-6,40e-6,50e-6,60e-6,80e-6]
						do_fabs=True
						mul=10.0
					else:
						print(sim_mode)
						asdas
					ret=get_vectors(os.path.join(full_name,scan_folder,file_name),vector,dolog=dolog,div=div,mul=mul,fabs=do_fabs)
					#print(ret)
					if ret==False:
						error=True
						break
					v=v+ret+"\n"

					if sim_mode=="jv" and light>0.0:
						ret=scan_ml_build_token_abs(os.path.join(full_name,scan_folder,"sim_info.dat"),"#jv_pmax_tau","#jv_pmax_tau",min_max="avg",dolog=True)
						if ret==False:
							error=True
							break
						v=v+ret

						ret=scan_ml_build_token_abs(os.path.join(full_name,scan_folder,"sim_info.dat"),"#jv_pmax_mue","#jv_pmax_mue",min_max="avg",dolog=True)
						if ret==False:
							error=True
							break

						v=v+ret

						ret=scan_ml_build_token_abs(os.path.join(full_name,scan_folder,"sim_info.dat"),"#pce","#pce",min_max="avg",lim=0.1)
						if ret==False:
							error=True
							break

						v=v+ret

					#print(a.experiment,a.measurement_file,a.token)


				for min_max in ["min","max","avg"]:
					a=scan_ml_build_token_abs(os.path.join(full_name,"dos0.inp"),"#Etrape","#Etraph",min_max=min_max,mul=1e3)
					if a==False:
						error=True
						break
					v=v+a

					a=scan_ml_build_token_abs(os.path.join(full_name,"dos0.inp"),"#mueffe","#mueffh",min_max=min_max,dolog=True)
					if a==False:
						error=True
						break
					v=v+a

					a=scan_ml_build_token_abs(os.path.join(full_name,"dos0.inp"),"#Ntraph","#Ntrape",min_max=min_max,dolog=True)
					if a==False:
						error=True
						break
					v=v+a

				a=scan_ml_build_token_abs(os.path.join(full_name,"parasitic.inp"),"#Rshunt","#Rshunt",min_max="avg",dolog=True)
				if a==False:
					error=True
					break
				v=v+a

				a=scan_ml_build_token_abs(os.path.join(full_name,"parasitic.inp"),"#Rcontact","#Rcontact",min_max="avg")
				if a==False:
					error=True
					break
				v=v+a
		
				v=v+"#break\n"

				if error==False:
					out.write(str.encode(v))
					written=True
				else:
					errors=errors+1

				done=done+1


				progress_window.set_fraction(float(done)/float(len(dirs)*tot_archives))
				if written==True:
					progress_window.set_text(dirs[i])
				else:
					progress_window.set_text("                         /Last error: "+dirs[i]+" tot errors="+str(errors)+" "+str(round(100.0*errors/done,1))+"%")

				progress_window.set_text(dirs[i])

				#if server_break()==True:
				#	break
				process_events()
				#return

				shutil.rmtree(tmp_dir)

	out.close()
	progress_window.stop()

	tindex_dump(os.path.join(sim_dir,"index.dat"))
Exemple #15
0
	def setup_gui(self,extern_gui_sim_start):
		self.enable_gui=True
		self.extern_gui_sim_start=extern_gui_sim_start
		self.progress_window=progress_class()
Exemple #16
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
Exemple #17
0
def scan_ml_build_vector(sim_dir):

    out = open(os.path.join(sim_dir, "vectors.dat"), 'wb')
    for archive_name in os.listdir(sim_dir):
        if archive_name.startswith(
                "archive") == True and archive_name.endswith(".zip") == True:
            progress_window = progress_class()
            progress_window.show()
            progress_window.start()

            archive_path = os.path.join(sim_dir, archive_name)

            zf = zipfile.ZipFile(archive_path, 'r')
            dirs = zip_lsdir(archive_path, zf=zf, sub_dir="/")

            items = len(dirs)
            print(items, archive_path, dirs)
            for i in range(0, len(dirs)):
                tmp_dir = "/dev/shm/gpvdm"
                if os.path.isdir(tmp_dir) == True:
                    shutil.rmtree(tmp_dir)

                os.mkdir(tmp_dir)

                extract_dir_from_archive(tmp_dir, "", dirs[i], zf=zf)

                full_name = tmp_dir
                written = False
                #print(dirs[i])
                while (1):
                    v = "#ml_id\n"
                    v = v + dirs[i] + "\n"

                    v = v + "#ml_input_jv_dark\n"
                    ret = get_vectors(full_name,
                                      "0.0",
                                      "measure_jv.dat",
                                      dolog=True)
                    if ret == False:
                        print("ml_input_jv_dark")
                        break
                    v = v + ret + "\n"

                    v = v + "#ml_input_jv_light\n"
                    ret = get_vectors(full_name,
                                      "1.0",
                                      "measure_jv.dat",
                                      div=1e2)
                    if ret == False:
                        print("ml_input_jv_ligh")
                        break
                    v = v + ret + "\n"

                    v = v + "#ml_input_tpc_neg\n"
                    ret = get_vectors(full_name,
                                      "TPC",
                                      "measure_tpc.dat",
                                      fabs=True,
                                      dolog=True)
                    if ret == False:
                        break
                    v = v + ret + "\n"

                    v = v + "#ml_input_tpc\n"
                    ret = get_vectors(full_name,
                                      "TPC_0",
                                      "measure_tpc.dat",
                                      fabs=True,
                                      dolog=True)
                    if ret == False:
                        break
                    v = v + ret + "\n"

                    v = v + "#ml_input_tpc_neg_norm\n"
                    ret = get_vectors(full_name,
                                      "TPC",
                                      "measure_tpc.dat",
                                      fabs=True,
                                      dolog=True,
                                      do_norm=True)
                    if ret == False:
                        break
                    v = v + ret + "\n"

                    v = v + "#ml_input_tpc_norm\n"
                    ret = get_vectors(full_name,
                                      "TPC_0",
                                      "measure_tpc.dat",
                                      fabs=True,
                                      dolog=True,
                                      do_norm=True)
                    if ret == False:
                        break
                    v = v + ret + "\n"

                    v = v + "#ml_input_tpc_ideal\n"
                    ret = get_vectors(full_name,
                                      "TPC_ideal",
                                      "measure_tpc.dat",
                                      fabs=True,
                                      dolog=True)
                    if ret == False:
                        break
                    v = v + ret + "\n"

                    v = v + "#ml_input_tpc_ideal_norm\n"
                    ret = get_vectors(full_name,
                                      "TPC_ideal",
                                      "measure_tpc.dat",
                                      fabs=True,
                                      dolog=True,
                                      do_norm=True)
                    if ret == False:
                        break
                    v = v + ret + "\n"

                    v = v + "#ml_input_tpv\n"
                    ret = get_vectors(full_name,
                                      "TPV",
                                      "measure_tpv.dat",
                                      fabs=True)
                    if ret == False:
                        break
                    v = v + ret + "\n"

                    v = v + "#ml_input_celiv\n"
                    ret = get_vectors(full_name,
                                      "CELIV",
                                      "measure_celiv.dat",
                                      fabs=True)
                    if ret == False:
                        break
                    v = v + ret + "\n"

                    v = v + get_vectors_binary(full_name, "1.0")
                    for min_max in ["min", "max", "avg"]:
                        a = scan_ml_build_token_vectors(
                            os.path.join(full_name, "dos0.inp"),
                            "#Etrape",
                            "#Etraph",
                            [40e-3, 50e-3, 60e-3, 70e-3, 80e-3, 90e-3, 100e-3],
                            min_max=min_max)
                        v = v + a

                        a = scan_ml_build_token_vectors(
                            os.path.join(full_name, "dos0.inp"),
                            "#mueffe",
                            "#mueffh",
                            [1e-9, 1e-8, 1e-7, 1e-6, 1e-5, 1e-4, 1e-3],
                            min_max=min_max)
                        v = v + a

                        a = scan_ml_build_token_vectors(
                            os.path.join(full_name, "dos0.inp"),
                            "#Ntraph",
                            "#Ntrape",
                            [1e20, 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27],
                            min_max=min_max)
                        v = v + a

                    a = scan_ml_build_token_vectors(
                        os.path.join(full_name, "parasitic.inp"),
                        "#Rshunt",
                        "#Rshunt", [1e2, 1e3, 1e4, 1e5, 1e6, 1e7],
                        min_max="avg")
                    v = v + a

                    #a=scan_ml_build_token_abs(os.path.join(full_name,"parasitic.inp"),"#Rshunt","#Rshunt",min_max="avg")
                    #v=v+a

                    a = scan_ml_build_token_vectors(
                        os.path.join(full_name, "parasitic.inp"),
                        "#Rcontact",
                        "#Rcontact", [5, 10, 15, 20, 25, 30, 35, 40],
                        min_max="avg")
                    v = v + a

                    a = scan_ml_build_token_vectors(
                        os.path.join(full_name, "1.0", "sim_info.dat"),
                        "#jv_pmax_tau",
                        "#jv_pmax_tau",
                        [1e-1, 1e-2, 1e-3, 1e-4, 1e-5, 1e-6, 1e-7],
                        min_max="avg")
                    v = v + a

                    a = scan_ml_build_token_vectors(
                        os.path.join(full_name, "1.0", "sim_info.dat"),
                        "#jv_pmax_mue",
                        "#jv_pmax_mue",
                        [1e-9, 1e-8, 1e-7, 1e-6, 1e-5, 1e-4, 1e-3],
                        min_max="avg")
                    v = v + a

                    out.write(str.encode(v))
                    written = True
                    break

                if written == False:
                    print("Error", dirs[i])
                progress_window.set_fraction(float(i) / float(len(dirs)))
                progress_window.set_text(dirs[i])

                #if server_break()==True:
                #	break
                process_events()
                #return
            progress_window.stop()
Exemple #18
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()
Exemple #19
0
 def setup_gui(self, extern_gui_sim_start, extern_gui_sim_stop):
     self.enable_gui = True
     self.extern_gui_sim_start = extern_gui_sim_start
     self.extern_gui_sim_stop = extern_gui_sim_stop
     self.progress_window = progress_class()
     self.progress_window.init()
Exemple #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
Exemple #21
0
def merge_archives(src_archive,dest_archive,only_over_write):
	debug=False

	progress_window=progress_class()
	progress_window.show()
	progress_window.start()

	process_events()

#	src_dir=os.path.dirname(src_archive)
#	dest_dir=os.path.dirname(dest_archive)
	dest_path=os.path.dirname(dest_archive)
	template_archive=os.path.join(get_inp_file_path(),"base.gpvdm")

	remove_non_used_index_files(dest_archive,src_archive)

	ls=zip_lsdir(src_archive)

	#copy files without checking ver

	for i in range(0,len(ls)):
		info=get_file_info(ls[i])
		if info!=False:
			if info.copy_opp==file_type().JUST_COPY:
				#print(ls[i])
				archive_copy_file(dest_archive,ls[i],src_archive,ls[i],dest=info.dest)

			if info.copy_opp==file_type().CHECK_VER_THEN_COPY:
				template_ver=inp_get_file_ver(template_archive,info.base_file)
				src_ver=inp_get_file_ver(src_archive,ls[i])

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

			if info.copy_opp==file_type().MERGE:
				if only_over_write==False:
					if archive_isfile(dest_archive,ls[i])==False:
						if archive_copy_file(dest_archive,ls[i],template_archive,info.base_file)==False:
							print("problem copying",template_archive,info.base_file)
						#print("made new file",dest_archive,ls[i])

				ret=archive_merge_file(dest_archive,src_archive,ls[i])
		
		progress_window.set_fraction(float(i)/float(len(ls)))
		progress_window.set_text("Importing "+ls[i])
		process_events()

	#if you find a materials directory in the archive try to merge it
	for i in range(0,len(ls)):
		zip_dir_name=ls[i].split("/")
		if zip_dir_name[0]=="materials":
			dest=os.path.join(os.path.dirname(get_materials_path()))
			#print("Try to read",src_archive,ls[i],dest)
			extract_file_from_archive(dest,src_archive,ls[i])

		if zip_dir_name[0]=="sim":
			extract_file_from_archive(dest_path,src_archive,ls[i])

		if zip_dir_name[0]=="calibrate":
			extract_file_from_archive(dest_path,src_archive,ls[i])

	#search for scan directories
	scan_dirs=[]
	for i in range(0,len(ls)):
		if ls[i].endswith("gpvdm_gui_config.inp"):
			scan_dirs.append(os.path.dirname(ls[i]))

	#extract scan directories
	for i in range(0,len(ls)):
		for ii in range(0,len(scan_dirs)):
			if ls[i].startswith(scan_dirs[ii])==True:
				#print("Try to read",src_archive,ls[i])
				extract_file_from_archive(dest_path,src_archive,ls[i])
	print("search",scan_dirs)

	progress_window.stop()