@@ -4345,9 +4345,6 @@ def OnHklShow(event=None,Print=True,Plot=True,indexFrom=''):
43454345 result = None
43464346 PatternId = G2frame .PatternId
43474347 peaks = G2frame .GPXtree .GetItemPyData (G2gd .GetGPXtreeItemId (G2frame ,PatternId , 'Index Peak List' ))
4348- controls ,bravais ,cells ,dminx ,ssopt ,magcells = G2frame .GPXtree .GetItemPyData (G2gd .GetGPXtreeItemId (G2frame ,PatternId , 'Unit Cells List' ))
4349- Inst = G2frame .GPXtree .GetItemPyData (G2gd .GetGPXtreeItemId (G2frame ,G2frame .PatternId , 'Instrument Parameters' ))[0 ]
4350- Limits = G2frame .GPXtree .GetItemPyData (G2gd .GetGPXtreeItemId (G2frame ,G2frame .PatternId , 'Limits' ))[1 ]
43514348 if 'T' in Inst ['Type' ][0 ]:
43524349 dmin = G2lat .Pos2dsp (Inst ,Limits [0 ])
43534350 else :
@@ -6088,7 +6085,7 @@ def OnFindOneMV(event):
60886085 dlg = wx .ProgressDialog ('Elapsed time' ,'Modulation vector search' ,
60896086 style = wx .PD_ELAPSED_TIME | wx .PD_AUTO_HIDE )
60906087 try :
6091- ssopt ['ModVec' ],result = G2indx .findMV (Peaks ,controls ,ssopt ,Inst ,dlg )
6088+ ssopt ['ModVec' ],result = G2indx .findMV (Peaks ,controls ,ssopt ,Inst ,deltM , dlg )
60926089 if len (result [0 ]) == 2 :
60936090 G2plt .PlotXYZ (G2frame ,result [2 ],1. / result [3 ],labelX = 'a' ,labelY = 'g' ,newPlot = True ,
60946091 Title = 'Modulation vector search for %s%s' % (controls [13 ],ssopt ['ssSymb' ]),
@@ -6119,17 +6116,18 @@ def OnFindMV(event):
61196116 dlg = wx .ProgressDialog ('Elapsed time' ,'Modulation vector search with %s' % ssSym ,
61206117 style = wx .PD_ELAPSED_TIME | wx .PD_AUTO_HIDE | wx .PD_CAN_ABORT )
61216118 try :
6122- ssopt ['ModVec' ],result = G2indx .findMV (Peaks ,controls ,ssopt ,Inst ,dlg )
6123- ssopt ['SSgResults' ].append ([ssSym ,ssopt ['ModVec' ],])
6124- OnHklShow (event ,indexFrom = ' Indexing from best modulation vector' )
6119+ ssopt ['ModVec' ],result = G2indx .findMV (Peaks ,controls ,ssopt ,Inst ,deltM ,dlg )
6120+ M20 ,X20 = OnHklShow (event ,indexFrom = ' Indexing from best modulation vector' )[2 :4 ]
6121+ Ma ,Mb ,Mg = ssopt ['ModVec' ]
6122+ ssopt ['SSgResults' ].append ([ssSym ,False ,M20 ,X20 ,Ma ,Mb ,Mg ,])
61256123 finally :
61266124 dlg .Destroy ()
61276125 if result [1 ] < best :
61286126 bestSS = ssSym
61296127 best = result [1 ]
61306128 if bestSS != '' :
61316129 ssopt ['ssSymb' ] = bestSS
6132- ssopt ['ModVec' ],result = G2indx .findMV (Peaks ,controls ,ssopt ,Inst ,dlg = None )
6130+ ssopt ['ModVec' ],result = G2indx .findMV (Peaks ,controls ,ssopt ,Inst ,deltM , dlg = None )
61336131 G2plt .PlotXY (G2frame ,[[result [2 ],1. / result [3 ]],],labelX = 'k' ,labelY = 'fit' ,
61346132 newPlot = True ,Title = 'Modulation vector search for %s' % bestSS )
61356133
@@ -6432,6 +6430,7 @@ def OnAxHklShow():
64326430 shiftSel = wx .Choice (G2frame .dataWindow ,choices = shiftChoices )
64336431 unitSizerWidgetList .append (shiftSel )
64346432 shiftSel .SetSelection (3 )
6433+ deltM = float (shiftChoices [shiftSel .GetSelection ()][:- 1 ])/ 100.
64356434 vcSizer .Add (shiftSel )
64366435 hSizer .Add (vcSizer ,0 ,WACV )
64376436 if not ssopt .get ('Use' ,False ): #zero for super lattice doesn't work!
@@ -6607,8 +6606,7 @@ def OnSelectSgrp(event):
66076606 OnHklShow (event ,True ,indexFrom = ' Space group selection %s #%d' % (controls [13 ],r ))
66086607
66096608 SpGrpGrid = wx .BoxSizer (wx .VERTICAL )
6610- lbl = (' Space group search results from "Try all"' +
6611- '\n ' + ssopt .get ('SgSettings' ,'' ))
6609+ lbl = (' Space group search results from "Try all"' + ssopt .get ('SgSettings' ,'' ))
66126610 SpGrpGrid .Add (wx .StaticText (parent = G2frame .dataWindow ,label = lbl ))
66136611 colLabels = ['Sp Grp' ,'show' ,'M20' ,'X20' ,'Nhkl' ,'fr. found' ]
66146612 Types = [wg .GRID_VALUE_STRING ,wg .GRID_VALUE_BOOL ,wg .GRID_VALUE_FLOAT + ':10,2' ,wg .GRID_VALUE_NUMBER ,
@@ -6644,30 +6642,36 @@ def OnSelectSSG(event):
66446642 clearShowFlags ()
66456643 r = event .GetRow ()
66466644 for i in range (len (ssopt ['SSgResults' ])):
6647- ssopt [ 'SSgResults' ] [i ][1 ] = False
6645+ results [i ][1 ] = False
66486646 SSgTable .SetValue (i ,1 ,False )
66496647 SSgTable .SetValue (r ,1 ,True )
6650- # controls[13] = ssopt['SgResults'][r][0]
6648+ ssopt ['ModVec' ] = results [r ][4 :]
6649+ ssopt ['ssSymb' ] = results [r ][0 ]
6650+ result = results [r ]
66516651 else :
6652- for r in range (len (ssopt ['SSgResults' ])):
6653- if ssopt ['SSgResults' ][r ][1 ]:
6654- # controls[13] = ssopt['SSgResults'][r][0]
6652+ for r ,result in enumerate (results ):
6653+ if result [1 ]:
6654+ ssopt ['ModVec' ] = result [4 :]
6655+ ssopt ['ssSymb' ] = result [0 ]
66556656 break
6656- SSDisplay .ForceRefresh ()
6657- # ssopt['SGData'] = G2spc.SpcGroup(controls[13])[1]
6658- # G2frame.dataWindow.RefineCell.Enable(True)
6659- OnHklShow (event ,True ,indexFrom = ' Super Space group selection %s #%d' % (controls [13 ],r ))
6657+ # SSDisplay.ForceRefresh() #repaints the grids only
6658+ OnHklShow (event ,True ,indexFrom = ' Super Space group selection %s #%d' % (controls [13 ]+ result [0 ],r ))
66606659
66616660 SSGrpGrid = wx .BoxSizer (wx .VERTICAL )
6662- lbl = (' Super Space group search results from "Try all"' +
6663- '\n ' + ssopt .get ('SgSettings' ,'' ))
6661+ lbl = (' Super Space group search results for ' + controls [5 ])
66646662 SSGrpGrid .Add (wx .StaticText (parent = G2frame .dataWindow ,label = lbl ))
6665- colLabels = ['SSp Grp' ,'show' ,'M20' ,'X20' ,'Nhkl' ,'fr. found' ]
6666- Types = [wg .GRID_VALUE_STRING ,wg .GRID_VALUE_BOOL ,wg .GRID_VALUE_FLOAT + ':10,2' ,wg .GRID_VALUE_NUMBER ,
6667- wg .GRID_VALUE_NUMBER ,wg .GRID_VALUE_FLOAT + ':10,3' ]
6663+ results = ssopt ['SSgResults' ]
6664+ if len (results [0 ]) == 6 :
6665+ colLabels = ['SSp Grp' ,'show' ,'M20' ,'X20' ,'Nhkl' ,'fr. found' ]
6666+ Types = [wg .GRID_VALUE_STRING ,wg .GRID_VALUE_BOOL ,wg .GRID_VALUE_FLOAT + ':10,2' ,wg .GRID_VALUE_NUMBER ,
6667+ wg .GRID_VALUE_NUMBER ,wg .GRID_VALUE_FLOAT + ':10,3' ]
6668+ else :
6669+ colLabels = ['SSp Grp' ,'show' ,'M20' ,'X20' ,'\u03B1 ' ,'\u03B2 ' ,'\u03B3 ' ]
6670+ Types = [wg .GRID_VALUE_STRING ,wg .GRID_VALUE_BOOL ,wg .GRID_VALUE_FLOAT + ':10,2' ,wg .GRID_VALUE_NUMBER ,
6671+ wg .GRID_VALUE_FLOAT + ':10,3' ,wg .GRID_VALUE_FLOAT + ':10,3' ,wg .GRID_VALUE_FLOAT + ':10,3' ]
66686672 rowLabels = []
66696673 table = []
6670- for result in ssopt [ 'SSgResults' ] :
6674+ for result in results :
66716675 rowLabels .append ('' )
66726676 row = result
66736677 table .append (row )
@@ -7164,6 +7168,10 @@ def OnRefreshKeep(event):
71647168 setGrid = gridDisplay
71657169 gridDisplay .SetCellValue (setRow ,2 ,'True' ) # set flag in grid
71667170 disableCellEntries ()
7171+
7172+ # G@ Modulation vector results list
7173+ if len (ssopt ['SSgResults' ]):
7174+ mainSizer .Add (SSGrid ())
71677175
71687176 # Subgroup/magnetic s.g. search results
71697177 if magcells and len (controls ) > 16 :
@@ -7173,6 +7181,7 @@ def OnRefreshKeep(event):
71737181 G2frame .Contour = False
71747182 if New :
71757183 OnHklShow (None ,indexFrom = ' Indexing from unit cell & symmetry settings' )
7184+ New = False
71767185 G2frame .dataWindow .SetDataSize ()
71777186 if callSeaResSelected :
71787187 SeaResSelected (None ) # select 1st item in table
0 commit comments