Changeset 3521 for trunk/GSASIIphsGUI.py


Ignore:
Timestamp:
Jul 31, 2018 2:57:22 PM (4 years ago)
Author:
vondreele
Message:

fix In neutron scattering length info
add MAXMAGN.py
minor changes to testXNFF & GSASIItestplot.py
work on transform some more

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r3511 r3521  
    310310        self.ifConstr = True
    311311        self.Mtrans = False
     312        self.kvec = [0.,0.,0.]
     313        self.Bilbao = ''
    312314        self.Draw()
    313315
     
    371373                    Nops *= 2
    372374                self.SGData['SpnFlp'] = Nops*[1,]
     375                del self.oldSGdata['MAXMAGN']
    373376            wx.CallAfter(self.Draw)
    374377
     
    401404            Obj = event.GetEventObject()
    402405            self.Mtrans = Obj.GetValue()
    403 
    404 #        self.SGData = self.Phase['General']['SGData']
     406           
     407        def OnBilbao(event):
     408            import MAXMAGN
     409            oldkvec = self.kvec
     410            SGNo = G2spc.SpaceGroupNumber(self.SGData['SpGrp'])
     411            if not SGNo+1:
     412                wx.MessageBox('Nonstandard space group '+self.SGData['SpGrp']+' is not known by MAXMAGN',
     413                    caption='Bilbao MAXMAGN error',style=wx.ICON_EXCLAMATION)
     414                return
     415            dlg = G2G.MultiFloatDialog(self,title='Propagation vector',prompts=['kx','ky','kz'],
     416                    values=self.kvec,limits=[[0.,1.],[0.,1.],[0.,1.]],formats=['%4.1f','%4.1f','%4.1f'])
     417            if dlg.ShowModal() == wx.ID_OK:
     418                self.kvec = dlg.GetValues()
     419                if self.kvec != oldkvec or 'MAXMAGN' not in self.oldSGdata:
     420                    self.oldSGdata['MAXMAGN'] = MAXMAGN.MAXMAGN(SGNo,self.kvec)
     421            wx.CallAfter(self.Draw)
     422                   
     423        def OnBilbaoSG(event):
     424            Obj = event.GetEventObject()
     425            result = self.oldSGdata['MAXMAGN'][Obj.GetSelection()]
     426            self.Bilbao = result[0]
     427            numbs = [eval(item+'.') for item in result[2].split()]
     428            self.Uvec = np.array(numbs[3::4])
     429            self.Trans = np.array([numbs[:3],numbs[4:7],numbs[8:11]])
     430            SpGrp = G2spc.StandardizeSpcName(result[0])
     431            self.SGData = G2spc.SpcGroup(SpGrp)[1]
     432            text,table = G2spc.SGPrint(self.SGData)
     433            self.Phase['General']['SGData'] = self.SGData
     434            self.newSpGrp = SpGrp
     435            msg = 'Space Group Information'
     436            G2G.SGMessageBox(self.panel,msg,text,table).Show()
     437            self.BNSlatt = self.SGData['SGLatt']+'_'+result[1]
     438            GenSym,GenFlg,BNSsym = G2spc.GetGenSym(self.SGData)
     439            self.SGData['BNSlattsym'] = [self.BNSlatt,BNSsym[self.BNSlatt]]
     440            self.SGData['SGSpin'] = [1,]*len(self.SGData['SGSpin'])
     441            Nops = len(self.SGData['SGOps'])*len(self.SGData['SGCen'])
     442            if self.SGData['SGInv']:
     443                Nops *= 2
     444            self.SGData['SpnFlp'] = Nops*[1,]                   
     445            wx.CallAfter(self.Draw)
     446
    405447        self.panel.Destroy()
    406448        self.panel = wx.Panel(self)
     
    456498        mainSizer.Add(MatSizer)
    457499        if self.ifMag:
     500            MagSizer = wx.BoxSizer(wx.HORIZONTAL)
    458501            Mtrans = wx.CheckBox(self.panel,label=' Use matrix transform?')
    459502            Mtrans.SetValue(self.Mtrans)
    460503            Mtrans.Bind(wx.EVT_CHECKBOX,OnMtrans)
    461             mainSizer.Add(Mtrans,0,WACV)
     504            MagSizer.Add(Mtrans,0,WACV)
     505            Bilbao = wx.Button(self.panel,label='Run Bilbao MAXMAGN')
     506            Bilbao.Bind(wx.EVT_BUTTON,OnBilbao)
     507            MagSizer.Add(Bilbao,0,WACV)
     508            mainSizer.Add(MagSizer,0,WACV)
    462509        mainSizer.Add(wx.StaticText(self.panel,label=' Old lattice parameters:'),0,WACV)
    463510        mainSizer.Add(wx.StaticText(self.panel,label=
     
    474521        sgSizer = wx.BoxSizer(wx.HORIZONTAL)
    475522        sgSizer.Add(wx.StaticText(self.panel,label=' Target space group: '),0,WACV)
    476         SGTxt = wx.Button(self.panel,wx.ID_ANY,self.newSpGrp,size=(100,-1))
    477         SGTxt.Bind(wx.EVT_BUTTON,OnSpaceGroup)
    478         sgSizer.Add(SGTxt,0,WACV)
     523        if self.oldSGdata.get('MAXMAGN',[]):
     524            Bilbao = []
     525            for result in self.oldSGdata['MAXMAGN']:
     526                Bilbao.append(result[0])
     527            SGTxtB = wx.ComboBox(self.panel,choices=Bilbao,value=self.Bilbao,style=wx.CB_READONLY|wx.CB_DROPDOWN)
     528            SGTxtB.Bind(wx.EVT_COMBOBOX,OnBilbaoSG)
     529            sgSizer.Add(SGTxtB,0,WACV)
     530        else:
     531            SGTxt = wx.Button(self.panel,wx.ID_ANY,self.newSpGrp,size=(100,-1))
     532            SGTxt.Bind(wx.EVT_BUTTON,OnSpaceGroup)
     533            sgSizer.Add(SGTxt,0,WACV)
    479534        mainSizer.Add(sgSizer,0,WACV)
    480535        if 'magnetic' not in self.Phase['General']['Type']:
Note: See TracChangeset for help on using the changeset viewer.