Skip to content

Commit 25fa6af

Browse files
committed
allow change to spinning RB point group
1 parent b87f554 commit 25fa6af

2 files changed

Lines changed: 34 additions & 14 deletions

File tree

GSASII/GSASIIconstrGUI.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3087,7 +3087,7 @@ def SaveResidueRB():
30873087
def AddSpinRB(event):
30883088

30893089
rbid = ran.randint(0,sys.maxsize)
3090-
atType = 'C'
3090+
atType = 'None'
30913091
rbType = 'Q'
30923092
Natoms = 1
30933093
name = 'UNKRB'

GSASII/GSASIIphsGUI.py

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9794,6 +9794,25 @@ def OnAddShell(event):
97949794
G2plt.PlotStructure(G2frame,data)
97959795
wx.CallAfter(FillRigidBodyGrid,True,spnId=rbId)
97969796

9797+
def OnSymSel(event):
9798+
Obj = event.GetEventObject()
9799+
iSh = Indx[Obj.GetId()]
9800+
RBObj['RBsym'][iSh] = Obj.GetValue()
9801+
RBObj['SHC'][iSh] = SetSHCoef(iSh,RBObj['nSH'][iSh])
9802+
G2plt.PlotStructure(G2frame,data)
9803+
wx.CallAfter(FillRigidBodyGrid,True,spnId=rbId)
9804+
9805+
def SetSHCoef(iSh,Order):
9806+
Sytsym = RBObj['SytSym']
9807+
cofNames,cofSgns = G2lat.GenRBCoeff(Sytsym,RBObj['RBsym'][iSh],Order)
9808+
cofTerms = [[0.0,val,False] for val in cofSgns]
9809+
newSHcoef = dict(zip(cofNames,cofTerms))
9810+
SHcoef = RBObj['SHC'][iSh]
9811+
for cofName in SHcoef: #transfer old values to new set
9812+
if cofName in newSHcoef:
9813+
newSHcoef[cofName] = SHcoef[cofName]
9814+
return newSHcoef
9815+
97979816
def SHsizer():
97989817
def OnSHOrder(event):
97999818
Obj = event.GetEventObject()
@@ -9803,17 +9822,6 @@ def OnSHOrder(event):
98039822
G2plt.PlotStructure(G2frame,data)
98049823
wx.CallAfter(FillRigidBodyGrid,True,spnId=rbId)
98059824

9806-
def SetSHCoef(iSh,Order):
9807-
Sytsym = RBObj['SytSym']
9808-
cofNames,cofSgns = G2lat.GenRBCoeff(Sytsym,RBObj['RBsym'][iSh],Order)
9809-
cofTerms = [[0.0,val,False] for val in cofSgns]
9810-
newSHcoef = dict(zip(cofNames,cofTerms))
9811-
SHcoef = RBObj['SHC'][iSh]
9812-
for cofName in SHcoef: #transfer old values to new set
9813-
if cofName in newSHcoef:
9814-
newSHcoef[cofName] = SHcoef[cofName]
9815-
return newSHcoef
9816-
98179825
def OnSchRef(event):
98189826
Obj = event.GetEventObject()
98199827
iSh,name = Indx[Obj.GetId()]
@@ -9849,8 +9857,13 @@ def OnDelShell(event):
98499857
RBObj['atColor'][iSh] = G2elem.GetAtomInfo(RBObj['atType'][iSh])['Color'] #correct atom color for shell
98509858
if iSh:
98519859
subLine = wx.BoxSizer(wx.HORIZONTAL)
9852-
subLine.Add(wx.StaticText(RigidBodies,label='Shell %d: Name: %s Atom type: %s RB sym: %s ' \
9853-
%(iSh,RBObj['RBname'][iSh],RBObj['atType'][iSh],RBObj['RBsym'][iSh])),0,WACV)
9860+
subLine.Add(wx.StaticText(RigidBodies,label='Shell %d: Name: %s Atom type: %s RB sym: ' \
9861+
%(iSh,RBObj['RBname'][iSh],RBObj['atType'][iSh])),0,WACV)
9862+
simsel = wx.ComboBox(RigidBodies,choices=symchoice,value=RBObj['RBsym'][iSh],
9863+
style=wx.CB_READONLY|wx.CB_DROPDOWN)
9864+
Indx[simsel.GetId()] = iSh
9865+
simsel.Bind(wx.EVT_COMBOBOX,OnSymSel)
9866+
subLine.Add(simsel,0,WACV)
98549867
delShell = wx.Button(RigidBodies,label='Delete shell',style=wx.BU_EXACTFIT)
98559868
Indx[delShell.GetId()] = iSh
98569869
delShell.Bind(wx.EVT_BUTTON,OnDelShell)
@@ -9916,6 +9929,8 @@ def OnFadeShell(event):
99169929
RBObj['fadeSh'] = not RBObj['fadeSh']
99179930
G2plt.PlotStructure(G2frame,data)
99189931

9932+
symchoice = ['53m','m3m','-43m','6/mmm','-6m2','-3m','3m','32','-3','3','4/mmm','-42m',
9933+
'mmm','2/m','2','m','-1','1']
99199934
RBObj['hide'] = RBObj.get('hide',[False for i in range(len(RBObj['atType']))])
99209935
rbId = RBObj['RBId'][0]
99219936
atId = RBObj['Ids'][0]
@@ -9926,6 +9941,11 @@ def OnFadeShell(event):
99269941
topLine = wx.BoxSizer(wx.HORIZONTAL)
99279942
topLine.Add(wx.StaticText(RigidBodies,label='Shell 0: Name: %s Atom name: %s Atom type: %s RB sym: %s '%
99289943
(RBObj['RBname'][0],atName,RBObj['atType'][0],RBObj['RBsym'][0])),0,WACV)
9944+
simsel = wx.ComboBox(RigidBodies,choices=symchoice,value=RBObj['RBsym'][0],
9945+
style=wx.CB_READONLY|wx.CB_DROPDOWN)
9946+
Indx[simsel.GetId()] = 0
9947+
simsel.Bind(wx.EVT_COMBOBOX,OnSymSel)
9948+
topLine.Add(simsel,0,WACV)
99299949
rbId = RBObj['RBId']
99309950
if len(RBObj['nSH']) == 1:
99319951
delRB = wx.Button(RigidBodies,wx.ID_ANY,'Delete',style=wx.BU_EXACTFIT)

0 commit comments

Comments
 (0)