Changeset 3586
- Timestamp:
- Sep 5, 2018 3:31:33 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIctrlGUI.py
r3585 r3586 43 43 :class:`SingleFloatDialog` Dialog to obtain a single float value from user, with 44 44 optional range validation. 45 :class:`Multi FloatDialog` Dialog to obtain multiple floatvalues from user,46 with optional range validation .45 :class:`MultiDataDialog` Dialog to obtain multiple data values from user, 46 with optional range validation; items can be float, str or bool 47 47 :class:`SingleStringDialog` Dialog to obtain a single string value from user, 48 48 with optional an optional default value. … … 2251 2251 2252 2252 ################################################################################ 2253 class Multi FloatDialog(wx.Dialog):2253 class MultiDataDialog(wx.Dialog): 2254 2254 'Dialog to obtain multiple values from user' 2255 2255 def __init__(self,parent,title,prompts,values,limits=[[0.,1.],],formats=['%.5g',]): … … 2280 2280 self.values[id] = val 2281 2281 Obj.SetValue('%s'%(val)) 2282 elif 'choice' in format: 2283 self.values[id] = Obj.GetValue() 2282 2284 else: 2283 2285 try: … … 2306 2308 valItem.Bind(wx.EVT_KILL_FOCUS,OnValItem) 2307 2309 valItem.SetValue('%s'%value) 2310 elif 'choice' in format: 2311 valItem = wx.ComboBox(self.panel,value=limits[0],choices=limits,style=wx.CB_READONLY|wx.CB_DROPDOWN) 2312 valItem.Bind(wx.EVT_COMBOBOX,OnValItem) 2308 2313 else: 2309 2314 valItem = wx.TextCtrl(self.panel,value=format%(value),style=wx.TE_PROCESS_ENTER) -
trunk/GSASIIdataGUI.py
r3577 r3586 1407 1407 'DisplaceY':[0.,False]}) 1408 1408 if 'Generic' in choices[res]: 1409 dlg = G2G.Multi FloatDialog(self,title='Generic TOF detector bank',1409 dlg = G2G.MultiDataDialog(self,title='Generic TOF detector bank', 1410 1410 prompts=['Total FP','2-theta',],values=[25.0,150.,], 1411 1411 limits=[[6.,200.],[5.,175.],],formats=['%6.2f','%6.1f',]) -
trunk/GSASIIlattice.py
r3585 r3586 367 367 'S':{'abc':'S','cab':'S','bca':'S','acb':'S','bac':'S','cba':'S'}, 368 368 } 369 Fives = {'ababc':'abc','bcbca':'cba' }369 Fives = {'ababc':'abc','bcbca':'cba','acacb':'acb'} 370 370 Trans = Phase['Trans'] 371 371 Uvec = Phase['Uvec'] … … 393 393 NTrans = np.inner(Mats[lattSym],Trans.T) 394 394 spn[1:4] = np.inner(Mats[lattSym],spn[1:4]) 395 if SpGrp in G2spc.altSettingOrtho:395 if lattSym != 'abc' and SpGrp in G2spc.altSettingOrtho: 396 396 NSG = G2spc.altSettingOrtho[SpGrp].get(lattSym,SpGrp).replace("'",'').split(' ') 397 397 Bns = '' … … 417 417 phase['Keep'] = False 418 418 phase['Use'] = False 419 phase['aType'] = '' 419 420 SpGp = result[0].replace("'",'') 420 421 SpGrp = G2spc.StandardizeSpcName(SpGp) … … 425 426 phase['SGData']['GenSym'],phase['SGData']['GenFlg'],BNSsym = G2spc.GetGenSym(phase['SGData']) 426 427 phase['SGData']['BNSlattsym'] = [BNSlatt,BNSsym[BNSlatt]] 427 G2spc.ApplyBNSlatt(phase['SGData'],phase['SGData']['BNSlattsym']) 428 G2spc.ApplyBNSlatt(phase['SGData'],phase['SGData']['BNSlattsym']) 429 else: 430 phase['SGData']['GenSym'],phase['SGData']['GenFlg'],BNSsym = G2spc.GetGenSym(phase['SGData']) 428 431 phase['SGData']['MagSpGrp'] = G2spc.MagSGSym(phase['SGData']) 429 432 phase['SGData']['SpnFlp'] = G2spc.GenMagOps(phase['SGData'])[1] -
trunk/GSASIIphsGUI.py
r3585 r3586 2464 2464 newPhase,atCodes = G2lat.TransformPhase(data,newPhase,magchoice['Trans'].T,magchoice['Uvec'],vvec,True) 2465 2465 Atoms = newPhase['Atoms'] 2466 aType = magchoice['aType'] 2467 Atms = [] 2468 AtCods = [] 2466 2469 atMxyz = [] 2467 2470 for ia,atom in enumerate(Atoms): 2471 if aType and aType not in atom[1]: 2472 continue 2468 2473 atom[0] += '_%d'%ia 2469 2474 SytSym,Mul,Nop,dupDir = G2spc.SytSym(atom[3:6],SGData) 2470 2475 CSI = G2spc.GetCSpqinel(SGData['SpnFlp'],dupDir) 2476 Atms.append(atom) 2477 AtCods.append(atCodes[ia]) 2471 2478 atMxyz.append(CSI[0]) 2472 2473 dlg = UseMagAtomDialog(G2frame,Atoms,atCodes,atMxyz) 2479 dlg = UseMagAtomDialog(G2frame,Atms,AtCods,atMxyz) 2474 2480 try: 2475 2481 if dlg.ShowModal() == wx.ID_OK: -
trunk/GSASIIpwdGUI.py
r3585 r3586 27 27 pass 28 28 import numpy as np 29 import numpy.linalg as nl 29 30 import numpy.ma as ma 30 31 import math … … 3082 3083 if 'R' in controls[5]: controls[5] = 'R3-H' 3083 3084 controls[6:13] = Cell[1:8] 3084 3085 3085 if 'N' in Inst['Type'][0]: 3086 testAtoms = [] 3087 cx,ct,cs,cia = Phase['General']['AtomPtrs'] 3088 Atoms = Phase['Atoms'] 3089 for atom in Atoms: 3090 if len(G2elem.GetMFtable([atom[ct],],[2.0,])): 3091 testAtoms.append(atom[:cx+3]) 3092 controls.append(testAtoms) 3086 3093 G2frame.dataWindow.RunSubGroupsMag.Enable(True) 3087 3094 G2frame.dataWindow.RefineCell.Enable(True) … … 3427 3434 controls,bravais,cells,dminx,ssopt,magcells = G2frame.GPXtree.GetItemPyData(G2gd.GetGPXtreeItemId(G2frame,G2frame.PatternId, 'Unit Cells List')) 3428 3435 E,SGData = G2spc.SpcGroup(controls[13]) 3436 if len(controls) > 14: 3437 testAtoms = ['',]+list(set([atom[1] for atom in controls[14]])) 3429 3438 kvec = ['0','0','0'] 3430 dlg = G2G.Multi FloatDialog(G2frame,title='k-SUBGROUPSMAG options',3431 prompts=[' kx as fr.',' ky as fr.',' kz as fr.',' Use whole star',' Landau transition',' Give intermediate cells','preserve axes' ],3432 values=kvec+[False,False,False,True ],3433 limits=[['0','1/2','1/3','1/4'],['0','1/2','1/3','1/4'],['0','1/2','1/3','1/4'],[True,False],[True,False],[True,False],[True,False] ],3434 formats=['str','str','str','bool','bool','bool','bool' ])3439 dlg = G2G.MultiDataDialog(G2frame,title='k-SUBGROUPSMAG options', 3440 prompts=[' kx as fr.',' ky as fr.',' kz as fr.',' Use whole star',' Landau transition',' Give intermediate cells','preserve axes','test for mag. atoms'], 3441 values=kvec+[False,False,False,True,''], 3442 limits=[['0','1/2','1/3','1/4'],['0','1/2','1/3','1/4'],['0','1/2','1/3','1/4'],[True,False],[True,False],[True,False],[True,False],testAtoms], 3443 formats=['str','str','str','bool','bool','bool','bool','choice']) 3435 3444 if dlg.ShowModal() == wx.ID_OK: 3436 3445 magcells = [] … … 3441 3450 intermed = newVals[5] 3442 3451 keepaxes = newVals[6] 3452 atype = newVals[7] 3453 magAtms = [atom for atom in controls[14] if atom[1] == atype] 3443 3454 wx.BeginBusyCursor() 3444 3455 MAXMAGN = kMAG.GetNonStdSubgroupsmag(SGData,kvec,star,Landau,intermed) … … 3450 3461 Uvec = np.array(numbs[3::4]) 3451 3462 Trans = np.array([numbs[:3],numbs[4:7],numbs[8:11]]).T #Bilbao gives transpose 3463 invTrans = nl.inv(Trans) 3452 3464 phase = G2lat.makeBilbaoPhase(result[:2],Uvec,Trans) 3453 3465 phase['Cell'] = G2lat.TransformCell(controls[6:12],Trans) 3466 phase['aType'] = atype 3467 for matm in magAtms: #TODO: this is a shortcut - atoms don't include all possible after transformation 3468 xyz = G2lat.TransformXYZ(matm[3:6]-Uvec,invTrans.T,np.zeros(3))%1. 3469 SytSym,Mul,Nop,dupDir = G2spc.SytSym(xyz,phase['SGData']) 3470 CSI = G2spc.GetCSpqinel(phase['SGData']['SpnFlp'],dupDir) 3471 if any(CSI[0]): phase['Keep'] = True 3454 3472 RVT = None 3455 3473 if keepaxes: … … 3458 3476 magcells.append(phase) 3459 3477 else: 3460 magcells.append(phase) #temporary??3461 3478 Nresult,NUvec,NTrans = RVT 3462 3479 newphase = G2lat.makeBilbaoPhase(Nresult,NUvec,NTrans)
Note: See TracChangeset
for help on using the changeset viewer.