Changeset 1938


Ignore:
Timestamp:
Jul 21, 2015 9:50:12 AM (7 years ago)
Author:
vondreele
Message:

H atoms now inserted into Atom list after their attchment (C, N or O)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r1936 r1938  
    15181518
    15191519    def OnAtomInsert(event):
    1520         AtomInsert(0,0,0)
    1521         FillAtomsGrid(Atoms)
    1522         event.StopPropagation()
    1523         G2plt.PlotStructure(G2frame,data)
     1520        indx = Atoms.GetSelectedRows()
     1521        if indx:
     1522            AtomInsert(indx[0],0,0,0)
     1523            FillAtomsGrid(Atoms)
     1524            event.StopPropagation()
     1525            G2plt.PlotStructure(G2frame,data)
    15241526       
    15251527    def OnAtomViewInsert(event):
     
    15991601                    for ineigh,neigh in enumerate(Neigh):
    16001602                        AddHydIds[ineigh].append(neigh[2])
     1603                        loc = AtLookUp[AddHydIds[ineigh][0]]+1
    16011604                        if 'O' in neigh[0] and (not len(mapData['rho']) or not 'delt-F' in mapData['MapType']):
    16021605                            mapError = True
     
    16041607                        Hxyz,HU = G2mth.AddHydrogens(AtLookUp,generalData,atomData,AddHydIds[ineigh])
    16051608                        for iX,X in enumerate(Hxyz):
     1609                            AtomInsert(loc+iX,X[0],X[1],X[2],'H','H(%d)'%(Nat))
     1610                            data['Atoms'][loc+iX][cia+1] = HU[iX]
     1611                            Id = data['Atoms'][loc+iX][cia+8]
     1612                            HydIds[Id] = [iX,AddHydIds[ineigh]]
    16061613                            Nat += 1
    1607                             AtomAdd(X[0],X[1],X[2],'H','H(%d)'%(Nat))
    1608                             data['Atoms'][-1][cia+1] = HU[iX]
    1609                             Id = data['Atoms'][-1][cia+8]
    1610                             HydIds[Id] = [iX,AddHydIds[ineigh]]
     1614                            AtLookUp = G2mth.FillAtomLookUp(atomData,cia+8)
     1615                            print Id,HydIds[Id]
    16111616                if mapError:
    16121617                    G2frame.ErrorDialog('Add H atom error','Adding O-H atoms requires delt-F map')
     
    16141619                data['General']['HydIds'].update(HydIds)
    16151620                G2frame.dataFrame.AtomEdit.Enable(G2gd.wxID_UPDATEHATOM,True)
     1621                data['Drawing']['Atoms'] = []
     1622                UpdateDrawAtoms()
    16161623                FillAtomsGrid(Atoms)
    16171624                dlg.Destroy()
     
    16331640            Hxyz,HU = G2mth.AddHydrogens(AtLookUp,generalData,atomData,hydIds[1])
    16341641            try:
     1642                if data['Atoms'][AtLookUp[HId]][ct] != 'H':
     1643                    raise KeyError
    16351644                data['Atoms'][AtLookUp[HId]][cx:cx+3] = Hxyz[num]
    1636                 data['Atoms'][-1][cia+1] = HU[num]
     1645                data['Atoms'][AtLookUp[HId]][cia+1] = HU[num]
    16371646            except KeyError:
    16381647                delList.append(HId)
    16391648                continue
    1640         for HId in delList: #clear out deleted H-atoms
     1649        for HId in delList: #clear out deleted H-atom pointers
    16411650            del HydIds[HId]
     1651        if not len(HydIds):
     1652            G2frame.dataFrame.AtomEdit.Enable(G2gd.wxID_UPDATEHATOM,False)
    16421653        data['Drawing']['Atoms'] = []
    16431654        UpdateDrawAtoms()
     
    17061717        return atomInfo
    17071718       
    1708     def AtomInsert(x,y,z):
    1709         indx = Atoms.GetSelectedRows()
    1710         if indx:
    1711             indx = indx[0]
    1712             atomData = data['Atoms']
    1713             generalData = data['General']
    1714             Ncol = Atoms.GetNumberCols()
    1715             E,SGData = G2spc.SpcGroup(generalData['SGData']['SpGrp'])
    1716             Sytsym,Mult = G2spc.SytSym([0,0,0],SGData)
    1717             atId = ran.randint(0,sys.maxint)
    1718             if generalData['Type'] == 'macromolecular':
    1719                 atomData.insert(indx,[0,'UNK','','UNK','UNK','',x,y,z,1,Sytsym,Mult,'I',0.10,0,0,0,0,0,0,atId])
    1720             elif generalData['Type'] == 'nuclear':
    1721                 atomData.insert(indx,['UNK','UNK','',x,y,z,1,Sytsym,Mult,'I',0.01,0,0,0,0,0,0,atId])
    1722             elif generalData['Type'] in ['modulated','magnetic']:
    1723                 atomData.insert(indx,['UNK','UNK','',x,y,z,1,Sytsym,Mult,0,'I',0.01,0,0,0,0,0,0,atId,[],[],SSdefault])
    1724             SetupGeneral()
     1719    def AtomInsert(indx,x,y,z,El='H',Name='UNK'):
     1720        atomData = data['Atoms']
     1721        generalData = data['General']
     1722        Ncol = Atoms.GetNumberCols()
     1723        E,SGData = G2spc.SpcGroup(generalData['SGData']['SpGrp'])
     1724        Sytsym,Mult = G2spc.SytSym([0,0,0],SGData)
     1725        atId = ran.randint(0,sys.maxint)
     1726        if generalData['Type'] == 'macromolecular':
     1727            atomData.insert(indx,[0,Name,'',Name,El,'',x,y,z,1,Sytsym,Mult,'I',0.10,0,0,0,0,0,0,atId])
     1728        elif generalData['Type'] == 'nuclear':
     1729            atomData.insert(indx,[Name,El,'',x,y,z,1,Sytsym,Mult,'I',0.01,0,0,0,0,0,0,atId])
     1730        elif generalData['Type'] in ['modulated','magnetic']:
     1731            atomData.insert(indx,[Name,El,'',x,y,z,1,Sytsym,Mult,0,'I',0.01,0,0,0,0,0,0,atId,[],[],SSdefault])
     1732        SetupGeneral()
    17251733
    17261734    def AtomDelete(event):
     
    17401748                    del atomData[ind]
    17411749            if 'Atoms' in data['Drawing']:
     1750                Atoms.ClearSelection()
    17421751                DrawAtomsDeleteByIDs(IDs)
     1752                data['Drawing']['Atoms'] = []
     1753                UpdateDrawAtoms()
    17431754                wx.CallAfter(FillAtomsGrid,Atoms)
    17441755                G2plt.PlotStructure(G2frame,data)
Note: See TracChangeset for help on using the changeset viewer.