Changeset 4253


Ignore:
Timestamp:
Jan 14, 2020 7:21:01 AM (4 years ago)
Author:
vondreele
Message:

changes to RMCProfile stuff
short cut the find unique for P 1 space group

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r4248 r4253  
    11071107                      'Xray real space data; G(r): ':['',0.01,'G(r)','RMC',],
    11081108                      'Xray reciprocal space data; F(Q): ':['',0.01,'F(Q)','RMC',],}
     1109            runTimes = [10.,1.]
    11091110            metadata = {'title':'none','owner':'no one','date':str(time.ctime()),'temperature':'300K',
    11101111                'material':'nothing','phase':'vacuum','comment':'none ','source':'nowhere'}
    11111112            Phase['RMC']['RMCProfile'] = {'SuperCell':[1,1,1],'UseSampBrd':[True,True],'aTypes':aTypes,
    1112                  'atSeq':atSeq,'Pairs':Pairs,'histogram':['',1.0],'files':files,'metadata':metadata}
     1113                 'atSeq':atSeq,'Pairs':Pairs,'histogram':['',1.0],'files':files,'metadata':metadata,
     1114                 'runTimes':runTimes,'ReStart':False}
    11131115        self.RMCPdict = Phase['RMC']['RMCProfile']
    11141116        self.Phase = Phase
     
    11551157            fil = Indx[Obj.GetId()]
    11561158            self.RMCPdict['files'][fil][3] = Obj.GetStringSelection()
     1159           
     1160        def SetRestart(invalid,value,tc):
     1161            self.RMCPdict['ReStart'] = True
     1162            self.OKBtn.SetLabel('Restart')
    11571163                   
    11581164        Indx = {}
     1165        if 'runTimes' not in self.RMCPdict:
     1166            self.RMCPdict['runTimes'] = [10.0,1.0]
    11591167        lenA = len(self.RMCPdict['atSeq'])
    11601168        Pairs= []
     
    11721180            metaSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['metadata'],item),0,WACV)
    11731181        mainSizer.Add(metaSizer,0,WACV)
    1174         mainSizer.Add(wx.StaticText(self.panel,label=' Lattice multipliers:'),0,WACV)
     1182        timeSizer = wx.BoxSizer(wx.HORIZONTAL)
     1183        timeSizer.Add(wx.StaticText(self.panel,label=' Total running time (min): '),0,WACV)
     1184        timeSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['runTimes'],0,min=0.),0,WACV)
     1185        timeSizer.Add(wx.StaticText(self.panel,label=' Save interval time (min): '),0,WACV)
     1186        timeSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['runTimes'],1,min=0.1,max=20.),0,WACV)
     1187        mainSizer.Add(timeSizer,0,WACV)
     1188        mainSizer.Add(wx.StaticText(self.panel,label=' Lattice multipliers; if changed will force restart of RMCProfile:'),0,WACV)
    11751189        superSizer = wx.BoxSizer(wx.HORIZONTAL)
    11761190        axes = ['X','Y','Z']
    11771191        for i,ax in enumerate(axes):
    11781192            superSizer.Add(wx.StaticText(self.panel,label=' %s-axis: '%ax),0,WACV)
    1179             superSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['SuperCell'],i,min=1,max=20,size=(50,25)),0,WACV)
     1193            superSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['SuperCell'],i,min=1,max=20,size=(50,25),OnLeave=SetRestart),0,WACV)
    11801194        mainSizer.Add(superSizer,0,WACV)
    11811195        nTypes = len(self.RMCPdict['aTypes'])
     
    12631277        mainSizer.Add(wx.StaticText(self.panel,label=' WARNING: this can take time - be patient'),0,WACV)
    12641278        btnSizer = wx.BoxSizer(wx.HORIZONTAL)
    1265         OKBtn = wx.Button(self.panel,-1,"OK")
    1266         OKBtn.Bind(wx.EVT_BUTTON, self.OnOK)
    1267         btnSizer.Add(OKBtn)           
     1279        self.OKBtn = wx.Button(self.panel,-1,"OK")
     1280        self.OKBtn.Bind(wx.EVT_BUTTON, self.OnOK)
     1281        btnSizer.Add(self.OKBtn)
     1282        CancelBtn = wx.Button(self.panel,-1,'Cancel')
     1283        CancelBtn.Bind(wx.EVT_BUTTON, self.OnCancel)
     1284        btnSizer.Add(CancelBtn)
     1285                   
    12681286       
    12691287        mainSizer.Add(btnSizer,0,wx.EXPAND|wx.BOTTOM|wx.TOP, 10)
     
    12841302        parent.Raise()
    12851303        self.EndModal(wx.ID_OK)
     1304       
     1305    def OnCancel(self,event):
     1306        parent = self.GetParent()
     1307        parent.Raise()
     1308        self.EndModal(wx.ID_CANCEL)
     1309       
    12861310       
    12871311class SetUpFullrmcDialog(wx.Dialog):
     
    13401364            atmChoice.Add(atmSel,0,WACV)
    13411365        mainSizer.Add(atmChoice,0,WACV)
    1342 #        histograms = self.Phase['Histograms']
    1343 #        histNames = list(histograms.keys())
    1344 #        mainSizer.Add(wx.StaticText(self.panel,label=' Select one histogram for processing:'),0,WACV)
    1345 #        histo = wx.ComboBox(self.panel,choices=histNames,style=wx.CB_DROPDOWN|wx.TE_READONLY)       
    1346 #        histo.Bind(wx.EVT_COMBOBOX,OnHisto)
    1347 #        mainSizer.Add(histo,0,WACV)
    1348 #        metalist = ['title','owner','material','comment','source']
    1349 #        metaSizer = wx.FlexGridSizer(0,2,5,5)
    1350 #        for item in metalist:
    1351 #            metaSizer.Add(wx.StaticText(self.panel,label=' Metadata item: '+item+' '),0,WACV)
    1352 #            metaSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.metadata,item),0,WACV)
    1353 #        mainSizer.Add(metaSizer,0,WACV)
    13541366        mainSizer.Add(wx.StaticText(self.panel,label=' WARNING: this can take time - be patient'),0,WACV)
    13551367        btnSizer = wx.BoxSizer(wx.HORIZONTAL)
     
    33713383            for i in range(colU11-1,colU11+6):
    33723384                Atoms.SetColSize(i,50)           
    3373             for row in range(Atoms.GetNumberRows()):
     3385            for row in range(Atoms.GetNumberRows()):    #this is slow for large numbers of atoms
    33743386                atId = atomData[row][colIA+8]
    33753387                rbExcl = rbAtmDict.get(atId,'')
     
    34063418                    if not SGData['SGGray']:
    34073419                        CSI = G2spc.GetCSpqinel(SpnFlp,dupDir)
    3408 #                    print (SytSym,Nop,SpnFlp[Nop],CSI,dupDir)
    3409 #                    print('CSI:',CSI)
    34103420                    saveCSI = 0
    34113421                    for i in range(3):
     
    34283438            SetPhaseWindow(Atoms)
    34293439
    3430         # FillAtomsGrid executable code starts here
     3440# FillAtomsGrid executable code starts here
    34313441        if not data['Drawing']:                 #if new drawing - no drawing data!
    34323442            SetupDrawingData()
    34333443        generalData = data['General']
    34343444        SpnFlp = generalData['SGData'].get('SpnFlp',[])
    3435 #        OprNames = generalData['SGData'].get('OprNames',[])
    3436 #        print OprNames
    3437 #        print SpnFlp
    3438 #        print generalData['SGData'].get('MagMom',[])
    34393445        atomData = data['Atoms']
    34403446        resRBData = data['RBModels'].get('Residue',[])
     
    46354641       
    46364642        G2frame.GetStatusBar().SetStatusText('',1)
     4643        if G2frame.RMCchoice == 'RMCProfile':
     4644            G2frame.dataWindow.FRMCDataEdit.Enable(G2G.wxID_LOADRMC,False)
     4645            G2frame.dataWindow.FRMCDataEdit.Enable(G2G.wxID_SAVERMC,False)
     4646        elif G2frame.RMCchoice == 'fullrmc':
     4647            G2frame.dataWindow.FRMCDataEdit.Enable(G2G.wxID_LOADRMC,True)
     4648            G2frame.dataWindow.FRMCDataEdit.Enable(G2G.wxID_SAVERMC,True)
    46374649        mainSizer = wx.BoxSizer(wx.VERTICAL)
    46384650        runFile = ' '
     
    46504662            mainSizer.Add(G2frame.runtext)
    46514663        else:
    4652             mainSizer.Add(wx.StaticText(G2frame.FRMC,label=' RMCProfile input file preparation:'),0,WACV)
    4653             G2frame.runtext = wx.TextCtrl(G2frame.FRMC,style=wx.TE_MULTILINE|wx.TE_DONTWRAP,size=(850,450))
    4654             mainSizer.Add(G2frame.runtext)
     4664            pass
    46554665           
    46564666       
     
    47254735                        print(backfile+ ' written')
    47264736                    print(G2pwd.MakeBragg(G2frame,pName,data,PWId)+ ' written')
    4727                     print(G2pwd.MakeRMC6f(G2frame,pName,data,RMCPdict['metadata'],RMCPdict['atSeq'],
    4728                         RMCPdict['SuperCell'],PWId)+ ' written')
    4729                     print(G2pwd.MakeRMCPdat(G2frame,pName,data,RMCPdict['metadata'],RMCPdict['atSeq'],
     4737                    if RMCPdict.get('ReStart',False):
     4738                        print(G2pwd.MakeRMC6f(G2frame,pName,data,RMCPdict['metadata'],RMCPdict['atSeq'],
     4739                            RMCPdict['SuperCell'],PWId)+ ' written')
     4740                    print(G2pwd.MakeRMCPdat(G2frame,pName,data,RMCPdict['metadata'],RMCPdict['runTimes'],RMCPdict['atSeq'],
    47304741                        RMCPdict['aTypes'],RMCPdict['Pairs'],RMCPdict['SuperCell'],RMCPdict['files'],PWId,RMCPdict['histogram'][1])+ ' written')
    47314742                    print('RMCProfile file build completed')
     
    48954906                            labelY=Labels[label][1],newPlot=True,Title=Labels[label][2]+pName,
    48964907                            lines=True,names=Names[1:])
     4908                        print(' %s scale Ycalc/Yobs: %.4f'%(label,np.sum(Ycalc[1])/np.sum(Yobs[1])))
    48974909#partials plots
    48984910            Labels = {'_PDFpartials.csv':[r'$\mathsf{R,\AA}$','G(R)','RMCP G(R) partials for '],
  • trunk/GSASIIpwd.py

    r4248 r4253  
    21872187    NAstr = ['%d'%i for i in NAtype]
    21882188    Cell = newPhase['General']['Cell'][1:7]
     2189    if os.path.exists(Name+'.his6f'):
     2190        os.remove(Name+'.his6f')
     2191    if os.path.exists(Name+'.neigh'):
     2192        os.remove(Name+'.neigh')
    21892193    fname = Name+'.rmc6f'
    21902194    fl = open(fname,'w')
     
    22432247    return fname
    22442248
    2245 def MakeRMCPdat(G2frame,Name,Phase,Meta,Atseq,Atypes,atPairs,Supercell,Files,PWId,BraggWt):
     2249def MakeRMCPdat(G2frame,Name,Phase,Meta,Times,Atseq,Atypes,atPairs,Supercell,Files,PWId,BraggWt):
    22462250    PWDdata = G2frame.GetPWDRdatafromTree(PWId)
    22472251    inst = PWDdata['Instrument Parameters'][0]
     
    22832287    fl.write('R_SPACING ::  0.0200 Angstrom\n')
    22842288    fl.write('PRINT_PERIOD :: 100\n')
    2285     fl.write('TIME_LIMIT ::     10.00 MINUTES\n')
    2286     fl.write('SAVE_PERIOD ::     1.00 MINUTES\n')
     2289    fl.write('TIME_LIMIT ::     %.2f MINUTES\n'%Times[0])
     2290    fl.write('SAVE_PERIOD ::    %.2f MINUTES\n'%Times[1])
    22872291    fl.write('\n')
    22882292    fl.write('ATOMS :: '+' '.join(Atseq)+'\n')
  • trunk/GSASIIspc.py

    r4213 r4253  
    32893289
    32903290    '''
     3291    if SGData['SpGrp'] == 'P 1':
     3292        return '1',1,1,{}
    32913293    Mult = 1
    32923294    Isym = 0
Note: See TracChangeset for help on using the changeset viewer.