Changeset 2809 for trunk/GSASIIphsGUI.py


Ignore:
Timestamp:
Apr 26, 2017 9:51:43 AM (6 years ago)
Author:
vondreele
Message:

add new transform option for moving atoms from setting #1 --> #2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r2807 r2809  
    14001400        try:
    14011401            if dlg.ShowModal() == wx.ID_OK:
    1402                 newPhase,Trans,Vec,ifMag,ifConstr = dlg.GetSelection()
     1402                newPhase,Trans,Vec,ifMag,ifConstr,Common = dlg.GetSelection()
    14031403            else:
    14041404                return
    14051405        finally:
    14061406            dlg.Destroy()
    1407         phaseName = newPhase['General']['Name']
    1408         newPhase,atCodes = G2lat.TransformPhase(data,newPhase,Trans,Vec,ifMag)
    1409         detTrans = np.abs(nl.det(Trans))
    1410 
    1411         generalData = newPhase['General']
    1412         SGData = generalData['SGData']
    1413         Atoms = newPhase['Atoms']
    1414         if ifMag:
    1415             dlg = G2gd.UseMagAtomDialog(G2frame,Atoms,atCodes)
    1416             try:
    1417                 if dlg.ShowModal() == wx.ID_OK:
    1418                     newPhase['Atoms'],atCodes = dlg.GetSelection()
    1419             finally:
    1420                 dlg.Destroy()
    1421             SGData['GenSym'],SGData['GenFlg'] = G2spc.GetGenSym(SGData)
    1422             SGData['MagSpGrp'] = G2spc.MagSGSym(SGData)
    1423             SGData['OprNames'],SGData['SpnFlp'] = G2spc.GenMagOps(SGData)
    1424             generalData['Lande g'] = len(generalData['AtomTypes'])*[2.,]
    1425            
    1426         NShkl = len(G2spc.MustrainNames(SGData))
    1427         NDij = len(G2spc.HStrainNames(SGData))
    1428         UseList = newPhase['Histograms']
    1429         for hist in UseList:
    1430             UseList[hist]['Scale'] /= detTrans      #scale by 1/volume ratio
    1431             UseList[hist]['Mustrain'][4:6] = [NShkl*[0.01,],NShkl*[False,]]
    1432             UseList[hist]['HStrain'] = [NDij*[0.0,],NDij*[False,]]
    1433         newPhase['General']['Map'] = mapDefault.copy()
    1434         sub = G2frame.PatternTree.AppendItem(parent=
    1435             G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Phases'),text=phaseName)
    1436         G2frame.PatternTree.SetItemPyData(sub,newPhase)
    1437         newPhase['Drawing'] = []
     1407        if 'setting' in Common:         #don't make new phase, Just move atoms!
     1408            generalData = data['General']
     1409            cx,ct,cs,cia = generalData['AtomPtrs']
     1410            SGData = generalData['SGData']
    14381411       
    1439         if ifMag and ifConstr:
    1440             G2frame.GetUsedHistogramsAndPhasesfromTree()
    1441             G2cnstG.MagConstraints(G2frame,data,newPhase,Trans,Vec,atCodes)     #data is old phase
    1442         G2frame.PatternTree.SelectItem(sub)
     1412            Atoms = data['Atoms']
     1413            for atom in Atoms:
     1414                for i in range(3):
     1415                    atom[cx+i] += Vec[i]
     1416                atom[cs:cs+2] = G2spc.SytSym(atom[cx:cx+3],SGData)[:2]
     1417            data['Drawing'] = []
     1418        else:
     1419            phaseName = newPhase['General']['Name']
     1420            newPhase,atCodes = G2lat.TransformPhase(data,newPhase,Trans,Vec,ifMag)
     1421            detTrans = np.abs(nl.det(Trans))
     1422   
     1423            generalData = newPhase['General']
     1424            SGData = generalData['SGData']
     1425            Atoms = newPhase['Atoms']
     1426            if ifMag:
     1427                dlg = G2gd.UseMagAtomDialog(G2frame,Atoms,atCodes)
     1428                try:
     1429                    if dlg.ShowModal() == wx.ID_OK:
     1430                        newPhase['Atoms'],atCodes = dlg.GetSelection()
     1431                finally:
     1432                    dlg.Destroy()
     1433                SGData['GenSym'],SGData['GenFlg'] = G2spc.GetGenSym(SGData)
     1434                SGData['MagSpGrp'] = G2spc.MagSGSym(SGData)
     1435                SGData['OprNames'],SGData['SpnFlp'] = G2spc.GenMagOps(SGData)
     1436                generalData['Lande g'] = len(generalData['AtomTypes'])*[2.,]
     1437               
     1438            NShkl = len(G2spc.MustrainNames(SGData))
     1439            NDij = len(G2spc.HStrainNames(SGData))
     1440            UseList = newPhase['Histograms']
     1441            for hist in UseList:
     1442                UseList[hist]['Scale'] /= detTrans      #scale by 1/volume ratio
     1443                UseList[hist]['Mustrain'][4:6] = [NShkl*[0.01,],NShkl*[False,]]
     1444                UseList[hist]['HStrain'] = [NDij*[0.0,],NDij*[False,]]
     1445            newPhase['General']['Map'] = mapDefault.copy()
     1446            sub = G2frame.PatternTree.AppendItem(parent=
     1447                G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Phases'),text=phaseName)
     1448            G2frame.PatternTree.SetItemPyData(sub,newPhase)
     1449            newPhase['Drawing'] = []
     1450           
     1451            if ifMag and ifConstr:
     1452                G2frame.GetUsedHistogramsAndPhasesfromTree()
     1453                G2cnstG.MagConstraints(G2frame,data,newPhase,Trans,Vec,atCodes)     #data is old phase
     1454            G2frame.PatternTree.SelectItem(sub)
    14431455       
    14441456################################################################################
Note: See TracChangeset for help on using the changeset viewer.