def getAtomName(self): #return array with the name of the atom PTOE = Analysis.PeriodicTableElement() znucl = self.getZnucl() name = [] for i in range(len(znucl)): name.append(PTOE.getName(znucl[i])) return name
def xyzFormat(self,pos,acell,typat,znucl): PTOE = Analysis.PeriodicTableElement() file_out = open( self.namefile ,"w") for t in range(len(pos)): file_out.write(str(len(pos[0]))+'\n') file_out.write('acell ' + str(acell[t][0])+' '+str(acell[t][1])+' '+str(acell[t][2])+' '+'\n') for i in range(len(pos[0])): typeofatom = PTOE.getName(znucl[typat[i] - 1 ]) file_out.write(str(typeofatom) +' '+ str(pos[t][i][0]) +' '+ str(pos[t][i][1]) +' '+ str(pos[t][i][2]) + '\n')
def __init__(self, file, punits, parent=None, name=''): self.file = file self.name = name self.units = punits #Dictionary with the units ans the conversion self.x = [] self.y = [] self.legend_x = "" self.legend_y = "" self.typat = self.file.getTypat() self.ntypat = max(self.typat) self.PTOE = Analysis.PeriodicTableElement() self.initUI(parent) #Creation of postion windows self.changeMode() #Generation of graphic of position self.raise_()
class winMSD(QtGui.QWidget): PTOE = Analysis.PeriodicTableElement() def __init__(self, file, parent = None,name =''): self.file = file self.name = name self.initUI(parent) self.displayGraph() self.raise_() def initUI(self, parent): #-----------------Creation of the windows----------------------------# QtGui.QWidget.__init__(self, parent) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.setWindowTitle(self.name + ' MSD option') self.setFixedSize(200, 150) self.center() self.layout = QtGui.QGridLayout() self.setLayout(self.layout) self.lbl1 = QtGui.QLabel(" Atom type 1 :", self) self.lbl1.setFixedWidth(95) self.CBox1 = QtGui.QComboBox() self.CBox1.setFixedWidth(70) for i in range(len(self.file.getZnucl())): self.CBox1.addItem(str(self.PTOE.getName(self.file.getZnucl()[i]))) self.connect(self.CBox1,QtCore.SIGNAL('currentIndexChanged(const QString&)'),self.displayGraph) self.pbClose = QtGui.QPushButton("close") self.pbClose.setFixedSize(70,20) self.connect(self.pbClose,QtCore.SIGNAL("clicked()"),QtCore.SLOT('close()')) self.layout.addWidget(self.lbl1 , 1, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.CBox1 , 1, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.pbClose , 7, 0, 1, 2, QtCore.Qt.AlignCenter) self.show() #------------------------------------------------------------------------# def displayGraph(self): atom = self.CBox1.currentIndex() + 1 self.MeanSquaredDeplacement = Analysis.MSD(self.file,atom) x = self.MeanSquaredDeplacement.getX() y = self.MeanSquaredDeplacement.getMSD() try: self.graphMSD.update(x,y,'step', "Mean squared deplacement",name = self.name) self.graphMSD.addPlot(x,linspace(1,1,len(x))) self.graphMSD.show() except: self.graphMSD = Graph.graphic(x,y,'step', "Mean squared deplacement", average=False,name = self.name) self.connect(self.graphMSD, QtCore.SIGNAL("myCustomizedSignal()"), self.close) self.graphMSD.show() def update(self,pfile): self.file = pfile atom = self.CBox1.currentIndex() + 1 try: self.MeanSquaredDeplacement = Analysis.MSD(self.file,atom) x = self.MeanSquaredDeplacement.getX() y = self.MeanSquaredDeplacement.getMSD() self.graphMSD.update(x,y,'step', "Mean squared deplacement",name = self.name) self.graphMSD.addPlot(x,linspace(1,1,len(x))) except: pass def close(self): del self.graphMSD del self def closeEvent(self, event): try: del self.graphMSD except: pass try: del self except: pass def center(self): screen = QtGui.QDesktopWidget().screenGeometry() size = self.geometry() self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2)
if choiceformat == 1 or choiceformat == 3: fname = saveFile('dat',name_quantitie) Write.SaveFile(fname).saveGraph(x,y,'E (meV)',"Phonons DOS (nm^2/ps)") print fname print 'File save sucessful!' if choiceformat == 2 or choiceformat == 3: fname = saveFile('pdf',name_quantitie) pdf = Canvas.Canvas(width=10, height=8, dpi=100,x=x,y=y,pxlbl='E (meV)',pylbl= "Phonons DOS (nm^2/ps)",adjust=True) pdf.print_figure(str(fname)) print fname print 'File save sucessful!' elif choiceQuantitie == 9: PTOE = Analysis.PeriodicTableElement() nameAtom = MD_file.getAtomName() if len(nameAtom) == 1: atom0 = 1 atom1 = 1 else: for i in range(2): stringChoice = 'Choose the atom' + str(i+1)+' ( ' for k in range(len(nameAtom)): stringChoice += str(nameAtom[k]) if k != len(nameAtom)-1: stringChoice += ' or ' else: stringChoice+= ' ):' while True:
class winNetcdf(QtGui.QWidget): PTOE = Analysis.PeriodicTableElement() def __init__(self, file, parent=None, name=''): self.file = file self.name = name self.ni = 1 self.nf = 2 self.initUI(parent) self.raise_() def initUI(self, parent): #-----------------Creation of the windows----------------------------# QtGui.QWidget.__init__(self, parent) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.setWindowTitle(self.name + ' Save Netcdf') self.setFixedSize(600, 450) self.center() self.layout = QtGui.QGridLayout() self.setLayout(self.layout) self.lbl1 = QtGui.QLabel(" Name :", self) self.lbl1.setFixedWidth(95) self.lname = QtGui.QLineEdit() self.lname.setFixedWidth(200) self.pbClose = QtGui.QPushButton("Close") self.pbClose.setFixedSize(70, 20) self.connect(self.pbClose, QtCore.SIGNAL("clicked()"), QtCore.SLOT('close()')) self.pbSave = QtGui.QPushButton("Save") self.pbSave.setFixedSize(70, 20) self.connect(self.pbSave, QtCore.SIGNAL("clicked()"), self.save) self.layout.addWidget(self.lbl1, 1, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.lname, 1, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.pbClose, 7, 0, 1, 2, QtCore.Qt.AlignCenter) self.layout.addWidget(self.pbSave, 7, 1, 1, 4, QtCore.Qt.AlignCenter) self.show() #------------------------------------------------------------------------# def save(self): Write.writeHIST(self.file, self.name, self.ni, self.nf) def close(self): del self.graphMSD del self def closeEvent(self, event): try: del self.graphMSD except: pass try: del self except: pass def center(self): screen = QtGui.QDesktopWidget().screenGeometry() size = self.geometry() self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2)
class winRDF(QtGui.QWidget): PTOE = Analysis.PeriodicTableElement() def __init__(self, file, parent=None, name=''): self.file = file self.name = name self.initUI(parent) self.raise_() #-----------------Creation of the windows----------------------------# def initUI(self, parent): QtGui.QWidget.__init__(self, parent) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.setWindowTitle(self.name + ' RDF option') typat = self.file.getTypat() ntypat = max(typat) nat = 0 for i in enumerate(typat): nat = nat + 1 self.center() self.layout = QtGui.QGridLayout() self.setLayout(self.layout) self.mode = QtGui.QLabel("Calculation :", self) self.mode.setFixedWidth(85) self.sbm = QtGui.QComboBox() self.sbm.setFixedWidth(70) self.sbm.addItem(str('RDF')) self.sbm.addItem(str('ADF')) self.sbm.addItem(str('NDF')) self.sbm.addItem(str('Proba')) if ntypat == 1: self.lbl1 = QtGui.QLabel(" Atom type :", self) self.lbl1.setFixedWidth(80) self.CBox1 = QtGui.QComboBox() self.CBox1.setFixedWidth(70) for i in range(len(self.file.getZnucl())): self.CBox1.addItem( str(self.PTOE.getName(self.file.getZnucl()[i]))) elif ntypat >= 2: self.lbl1 = QtGui.QLabel(" Atom type 1 :", self) self.lbl1.setFixedWidth(85) self.lbl2 = QtGui.QLabel(" Atom type 2 :", self) self.lbl2.setFixedWidth(85) self.CBox1 = QtGui.QComboBox() self.CBox1.setFixedWidth(70) self.CBox2 = QtGui.QComboBox() self.CBox2.setFixedWidth(70) self.CBox1.addItem(str('all')) self.CBox2.addItem(str('all')) for i in range(len(self.file.getZnucl())): self.CBox1.addItem( str(self.PTOE.getName(self.file.getZnucl()[i]))) self.CBox2.addItem( str(self.PTOE.getName(self.file.getZnucl()[i]))) self.lbl3 = QtGui.QLabel("delta R :", self) self.lbl3.setFixedWidth(55) self.sbdr = QtGui.QDoubleSpinBox() self.sbdr.setSingleStep(0.01) self.sbdr.setValue(0.1) self.sbdr.setMinimum(0.01) self.sbdr.setMaximum(2) self.sbdr.setFixedWidth(70) self.lbl4 = QtGui.QLabel("Box wide :", self) self.lbl4.setFixedWidth(68) self.sbrm = QtGui.QDoubleSpinBox() self.sbrm.setSingleStep(0.5) self.sbrm.setMinimum(-0.5) self.sbrm.setMaximum(2.0) self.sbrm.setValue(0) self.sbrm.setFixedWidth(70) self.lbl5 = QtGui.QLabel("Step :", self) self.lbl5.setFixedWidth(36) self.sbStep = QtGui.QSpinBox() self.sbStep.setMinimum(1) self.sbStep.setMaximum(self.file.getNbTime()) self.sbStep.setFixedWidth(70) self.sbStep.setValue(5) self.lbl8 = QtGui.QLabel("Deconvolution :", self) self.lbl8.setFixedWidth(105) self.sbdec = QtGui.QCheckBox() self.pbClose = QtGui.QPushButton("close") self.pbClose.setFixedSize(70, 20) self.connect(self.pbClose, QtCore.SIGNAL("clicked()"), QtCore.SLOT('close()')) self.pbDraw = QtGui.QPushButton("g(r)") self.pbDraw.setFixedSize(70, 20) self.connect(self.pbDraw, QtCore.SIGNAL("clicked()"), self.Graphics) self.changeBox() def changeBox(self): mode = self.sbm.currentText() typat = self.file.getTypat() ntypat = max(typat) nat = 0 if ntypat == 1: s1 = 0 elif ntypat >= 2: s1 = 50 if mode == 'RDF': self.setFixedSize(200, 250 + s1) if ntypat == 1: self.layout.addWidget(self.mode, 1, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbm, 1, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl1, 2, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.CBox1, 2, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl3, 3, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbdr, 3, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl4, 4, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbrm, 4, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl5, 5, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbStep, 5, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl8, 6, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbdec, 6, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.pbClose, 8, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.pbDraw, 8, 1, 1, 1, QtCore.Qt.AlignCenter) else: self.layout.addWidget(self.mode, 1, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbm, 1, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl1, 2, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.CBox1, 2, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl2, 3, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.CBox2, 3, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl3, 4, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbdr, 4, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl4, 5, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbrm, 5, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl5, 6, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbStep, 6, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl8, 7, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbdec, 7, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.pbClose, 9, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.pbDraw, 9, 1, 1, 1, QtCore.Qt.AlignCenter) elif mode == 'ADF': self.setFixedSize(200, 200 + s1) if ntypat == 1: self.layout.addWidget(self.mode, 1, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbm, 1, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl1, 2, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.CBox1, 2, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl6, 3, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbdt, 3, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl7, 4, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbn, 4, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl5, 5, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbStep, 5, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.pbClose, 7, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.pbDraw, 7, 1, 1, 1, QtCore.Qt.AlignCenter) else: self.layout.addWidget(self.mode, 1, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbm, 1, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl1, 2, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.CBox1, 2, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl2, 3, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.CBox2, 3, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl6, 4, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbdt, 4, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl7, 5, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbn, 5, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl5, 6, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbStep, 6, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.pbClose, 8, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.pbDraw, 8, 1, 1, 1, QtCore.Qt.AlignCenter) elif mode == 'NDF': self.setFixedSize(200, 200 + s1) if ntypat == 1: self.layout.addWidget(self.mode, 1, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbm, 1, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl1, 2, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.CBox1, 2, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl3, 3, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbdr, 3, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl7, 4, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbn, 4, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl5, 5, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbStep, 5, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.pbClose, 7, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.pbDraw, 7, 1, 1, 1, QtCore.Qt.AlignCenter) else: self.layout.addWidget(self.mode, 1, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbm, 1, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl1, 2, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.CBox1, 2, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl2, 3, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.CBox2, 3, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl3, 4, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbdr, 4, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl7, 5, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbn, 5, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl5, 6, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbStep, 6, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.pbClose, 8, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.pbDraw, 8, 1, 1, 1, QtCore.Qt.AlignCenter) elif mode == 'Proba': self.setFixedSize(200, 170) self.layout.addWidget(self.mode, 1, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbm, 1, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl1, 2, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.CBox1, 2, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.lbl7, 3, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.sbn, 3, 1, 1, 1, QtCore.Qt.AlignCenter) self.layout.addWidget(self.pbClose, 5, 0, 1, 1, QtCore.Qt.AlignRight) self.layout.addWidget(self.pbDraw, 5, 1, 1, 1, QtCore.Qt.AlignCenter) self.show() self.connect(self.sbm, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.changeMode) def changeMode(self): mode = self.sbm.currentText() # erase text on the window try: self.layout.removeWidget(self.lbl1) except: pass try: self.layout.removeWidget(self.lbl2) except: pass try: self.layout.removeWidget(self.lbl3) except: pass try: self.layout.removeWidget(self.lbl4) except: pass try: self.layout.removeWidget(self.lbl5) except: pass try: self.layout.removeWidget(self.lbl6) except: pass try: self.layout.removeWidget(self.lbl7) except: pass try: self.layout.removeWidget(self.lbl8) except: pass try: self.lbl1.setParent(None) except: pass try: self.lbl2.setParent(None) except: pass try: self.lbl3.setParent(None) except: pass try: self.lbl4.setParent(None) except: pass try: self.lbl5.setParent(None) except: pass try: self.lbl6.setParent(None) except: pass try: self.lbl7.setParent(None) except: pass try: self.lbl8.setParent(None) except: pass try: self.layout.removeWidget(self.CBox1) except: pass try: self.layout.removeWidget(self.CBox2) except: pass try: self.layout.removeWidget(sbdr) except: pass try: self.layout.removeWidget(sbrm) except: pass try: self.layout.removeWidget(sbstep) except: pass try: self.layout.removeWidget(sbdt) except: pass try: self.layout.removeWidget(sbn) except: pass try: self.layout.removeWidget(sdec) except: pass try: self.layout.removeWidget(pbClose) except: pass try: self.layout.removeWidget(pbDraw) except: pass try: self.CBox1.setParent(None) except: pass try: self.CBox2.setParent(None) except: pass try: self.sbdr.setParent(None) except: pass try: self.sbdm.setParent(None) except: pass try: self.sbstep.setParent(None) except: pass try: self.sbdt.setParent(None) except: pass try: self.sbn.setParent(None) except: pass try: self.sbdec.setParent(None) except: pass try: self.pbClose.setParent(None) except: pass try: self.pbDraw.setParent(None) except: pass typat = self.file.getTypat() ntypat = max(typat) nat = 0 for i in enumerate(typat): nat = nat + 1 #initialisation of texts if mode == 'RDF': if ntypat == 1: self.lbl1 = QtGui.QLabel(" Atom type :", self) self.lbl1.setFixedWidth(80) self.CBox1 = QtGui.QComboBox() self.CBox1.setFixedWidth(70) for i in range(len(self.file.getZnucl())): self.CBox1.addItem( str(self.PTOE.getName(self.file.getZnucl()[i]))) elif ntypat >= 2: self.lbl1 = QtGui.QLabel(" Atom type 1 :", self) self.lbl1.setFixedWidth(85) self.lbl2 = QtGui.QLabel(" Atom type 2 :", self) self.lbl2.setFixedWidth(85) self.CBox1 = QtGui.QComboBox() self.CBox1.setFixedWidth(70) self.CBox2 = QtGui.QComboBox() self.CBox2.setFixedWidth(70) self.CBox1.addItem(str('all')) self.CBox2.addItem(str('all')) for i in range(len(self.file.getZnucl())): self.CBox1.addItem( str(self.PTOE.getName(self.file.getZnucl()[i]))) self.CBox2.addItem( str(self.PTOE.getName(self.file.getZnucl()[i]))) self.lbl3 = QtGui.QLabel("delta R :", self) self.lbl3.setFixedWidth(55) self.sbdr = QtGui.QDoubleSpinBox() self.sbdr.setSingleStep(0.01) self.sbdr.setValue(0.1) self.sbdr.setMinimum(0.01) self.sbdr.setMaximum(2) self.sbdr.setFixedWidth(70) self.lbl4 = QtGui.QLabel("Box wide :", self) self.lbl4.setFixedWidth(68) self.sbrm = QtGui.QDoubleSpinBox() self.sbrm.setSingleStep(0.5) self.sbrm.setMinimum(-0.5) self.sbrm.setMaximum(2.0) self.sbrm.setValue(0) self.sbrm.setFixedWidth(70) self.lbl5 = QtGui.QLabel("Step :", self) self.lbl5.setFixedWidth(36) self.sbStep = QtGui.QSpinBox() self.sbStep.setMinimum(1) self.sbStep.setMaximum(self.file.getNbTime()) self.sbStep.setFixedWidth(70) self.sbStep.setValue(5) self.lbl8 = QtGui.QLabel("Deconvolution :", self) self.lbl8.setFixedWidth(105) self.sbdec = QtGui.QCheckBox() elif mode == 'ADF': if ntypat == 1: self.lbl1 = QtGui.QLabel(" Atom type :", self) self.lbl1.setFixedWidth(80) self.CBox1 = QtGui.QComboBox() self.CBox1.setFixedWidth(70) for i in range(len(self.file.getZnucl())): self.CBox1.addItem( str(self.PTOE.getName(self.file.getZnucl()[i]))) elif ntypat >= 2: self.lbl1 = QtGui.QLabel(" Atom type 1 :", self) self.lbl1.setFixedWidth(85) self.lbl2 = QtGui.QLabel(" Atom type 2 :", self) self.lbl2.setFixedWidth(85) self.CBox1 = QtGui.QComboBox() self.CBox1.setFixedWidth(70) self.CBox2 = QtGui.QComboBox() self.CBox2.setFixedWidth(70) self.CBox1.addItem(str('all')) self.CBox2.addItem(str('all')) for i in range(len(self.file.getZnucl())): self.CBox1.addItem( str(self.PTOE.getName(self.file.getZnucl()[i]))) self.CBox2.addItem( str(self.PTOE.getName(self.file.getZnucl()[i]))) self.lbl5 = QtGui.QLabel("Step :", self) self.lbl5.setFixedWidth(36) self.sbStep = QtGui.QSpinBox() self.sbStep.setMinimum(1) self.sbStep.setMaximum(self.file.getNbTime()) self.sbStep.setFixedWidth(70) self.sbStep.setValue(5) self.lbl6 = QtGui.QLabel("delta theta :", self) self.lbl6.setFixedWidth(80) self.sbdt = QtGui.QDoubleSpinBox() self.sbdt.setSingleStep(0.2) self.sbdt.setValue(1) self.sbdt.setMinimum(0.2) self.sbdt.setMaximum(5) self.sbdt.setFixedWidth(70) self.lbl7 = QtGui.QLabel("cutoff :", self) self.lbl7.setFixedWidth(60) self.sbn = QtGui.QDoubleSpinBox() self.sbn.setSingleStep(0.1) self.sbn.setValue(4) self.sbn.setMinimum(1) self.sbn.setMaximum(20) self.sbn.setFixedWidth(70) elif mode == 'NDF': if ntypat == 1: self.lbl1 = QtGui.QLabel(" Atom type :", self) self.lbl1.setFixedWidth(80) self.CBox1 = QtGui.QComboBox() self.CBox1.setFixedWidth(70) for i in range(len(self.file.getZnucl())): self.CBox1.addItem( str(self.PTOE.getName(self.file.getZnucl()[i]))) elif ntypat >= 2: self.lbl1 = QtGui.QLabel(" Atom type 1 :", self) self.lbl1.setFixedWidth(85) self.lbl2 = QtGui.QLabel(" Atom type 2 :", self) self.lbl2.setFixedWidth(85) self.CBox1 = QtGui.QComboBox() self.CBox1.setFixedWidth(70) self.CBox2 = QtGui.QComboBox() self.CBox2.setFixedWidth(70) self.CBox1.addItem(str('all')) self.CBox2.addItem(str('all')) for i in range(len(self.file.getZnucl())): self.CBox1.addItem( str(self.PTOE.getName(self.file.getZnucl()[i]))) self.CBox2.addItem( str(self.PTOE.getName(self.file.getZnucl()[i]))) self.lbl3 = QtGui.QLabel("delta R :", self) self.lbl3.setFixedWidth(55) self.sbdr = QtGui.QDoubleSpinBox() self.sbdr.setSingleStep(0.01) self.sbdr.setValue(0.05) self.sbdr.setMinimum(0.01) self.sbdr.setMaximum(1) self.sbdr.setFixedWidth(70) self.lbl5 = QtGui.QLabel("Step :", self) self.lbl5.setFixedWidth(36) self.sbStep = QtGui.QSpinBox() self.sbStep.setMinimum(1) self.sbStep.setMaximum(self.file.getNbTime()) self.sbStep.setFixedWidth(70) self.sbStep.setValue(5) self.lbl7 = QtGui.QLabel("neighbors :", self) self.lbl7.setFixedWidth(71) self.sbn = QtGui.QSpinBox() self.sbn.setSingleStep(1) self.sbn.setValue(1) self.sbn.setMinimum(1) self.sbn.setMaximum(nat - 1) self.sbn.setFixedWidth(70) elif mode == 'Proba': self.lbl7 = QtGui.QLabel("neighbors :", self) self.lbl7.setFixedWidth(71) self.sbn = QtGui.QSpinBox() self.sbn.setSingleStep(1) self.sbn.setValue(1) self.sbn.setMinimum(1) self.sbn.setMaximum(nat - 1) self.sbn.setFixedWidth(70) self.pbClose = QtGui.QPushButton("close") self.pbClose.setFixedSize(70, 20) self.connect(self.pbClose, QtCore.SIGNAL("clicked()"), self.close) self.pbDraw = QtGui.QPushButton("g(r)") self.pbDraw.setFixedSize(70, 20) self.connect(self.pbDraw, QtCore.SIGNAL("clicked()"), self.Graphics) self.changeBox() #------------------------------------------------------------------------# def Graphics(self): mode1 = self.sbm.currentText() if mode1 == 'RDF': typat = self.file.getTypat() ntypat = max(typat) if ntypat == 1: atom1 = 1 atom2 = 1 elif ntypat >= 2: atom1 = self.CBox1.currentIndex() atom2 = self.CBox2.currentIndex() box = self.sbrm.value() dr = self.sbdr.value() step = self.sbStep.value() if self.sbdec.isChecked(): self.RadialDistrib = Analysis.RDF(self.file, 1, atom1, atom2, box, dr, step) data = self.RadialDistrib.getDATA() x = self.RadialDistrib.getR() for i in range(1, len(typat) - 1): self.Deconvolution = Analysis.DEC(self.file, i, atom1, atom2, data, box, dr, step) y = self.Deconvolution.getNEI() try: self.GraphDEC.addGraph(x, y, False) except: self.GraphDEC = Graph.graphic(x, y, 'R (Bohr)', "Radial Distribution", average=False, name=self.name) self.GraphDEC.show() else: self.RadialDistrib = Analysis.RDF(self.file, 0, atom1, atom2, box, dr, step) x = self.RadialDistrib.getR() y = self.RadialDistrib.getRDF() try: self.GraphRDF.update(x, y, 'R (Bohr)', "Radial Distribution", name=self.name) self.GraphRDF.addPlot(x, linspace(1, 1, len(x))) except: self.GraphRDF = Graph.graphic(x, y, 'R (Bohr)', "Radial Distribution", average=False, name=self.name) self.GraphRDF.addPlot(x, linspace(1, 1, len(x))) #self.connect(self.GraphRDF, QtCore.SIGNAL("myCustomizedSignal()"), self.close) self.GraphRDF.show() def close(self): self.hide() try: del self.GraphRDF except: pass y = self.RadialDistrib.getINT() try: self.GraphINT.update(x, y, 'R (Bohr)', "Integral of the Radial Distribution", name=self.name) except: self.GraphINT = Graph.graphic( x, y, 'R (Bohr)', "Integral of the Radial Distribution", average=False, name=self.name) #self.connect(self.GraphRDF, QtCore.SIGNAL("myCustomizedSignal()"), self.close) self.GraphINT.show() def close(self): self.hide() try: del self.GraphINT except: pass elif mode1 == 'ADF': neib = self.sbn.value() typat = self.file.getTypat() ntypat = max(typat) if ntypat == 1: atom1 = 1 atom2 = 1 elif ntypat >= 2: atom1 = self.CBox1.currentIndex() atom2 = self.CBox2.currentIndex() dtheta = self.sbdt.value() step = self.sbStep.value() self.AngularDistrib = Analysis.ADF(neib, self.file, atom1, atom2, dtheta, step) x = self.AngularDistrib.getTheta() y = self.AngularDistrib.getADF() try: self.GraphADF.update(x, y, 'Theta (degres)', "Angular Distribution", name=self.name) except: self.GraphADF = Graph.graphic(x, y, 'Theta (degres)', "Angular Distribution", average=False, name=self.name) #self.connect(self.GraphRDF, QtCore.SIGNAL("myCustomizedSignal()"), self.close) self.GraphADF.show() def close(self): self.hide() try: del self.GraphADF except: pass elif mode1 == 'NDF': neib = self.sbn.value() typat = self.file.getTypat() ntypat = max(typat) if ntypat == 1: atom1 = 1 atom2 = 1 elif ntypat >= 2: atom1 = self.CBox1.currentIndex() atom2 = self.CBox2.currentIndex() dr = self.sbdr.value() step = self.sbStep.value() self.NeighborDistrib = Analysis.NDF(neib, self.file, atom1, atom2, dr, step) x = self.NeighborDistrib.getR() y = self.NeighborDistrib.getNDF() try: self.GraphNDF.update(x, y, 'R (Bohr)', "Neighbor distance", name=self.name) except: self.GraphNDF = Graph.graphic(x, y, 'R (Bohr)', "Neighbor distance", average=False, name=self.name) #self.connect(self.GraphRDF, QtCore.SIGNAL("myCustomizedSignal()"), self.close) self.GraphNDF.show() def close(self): self.hide() try: del self.GraphNDF except: pass elif mode1 == 'Proba': neib = self.sbn.value() typat = self.file.getTypat() ntypat = max(typat) if ntypat == 1: atom1 = 1 elif ntypat >= 2: atom1 = self.CBox1.currentIndex() self.Probability = Analysis.Proba(neib, self.file, atom1) x = self.Probability.getN() y = self.Probability.getProba() try: self.GraphProba.update(x, y, 'Neighbor', "Probability", name=self.name) except: self.GraphProba = Graph.graphic(x, y, 'Neighbor', "Probability", average=False, name=self.name) #self.connect(self.GraphRDF, QtCore.SIGNAL("myCustomizedSignal()"), self.close) self.GraphProba.show() def center(self): screen = QtGui.QDesktopWidget().screenGeometry() size = self.geometry() self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2) def close(self): del self.graphPosition del self def closeEvent(self, event): try: del self.graphPosition except: pass try: del self except: pass