Changeset 3706


Ignore:
Timestamp:
Oct 26, 2018 8:33:06 AM (3 years ago)
Author:
vondreele
Message:

fix to magspgrp bug for F d' -3'
fixes to some mag modulation symm rules

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIspc.py

    r3703 r3706  
    10641064            magSym[2] += "'"
    10651065            SGData['MagPtGp'] = "m'3'"
    1066         if SpnFlp[2] < 0:
     1066        if SpnFlp[1] < 0:
    10671067            if not 'm' in magSym[1]:    #only Ia3
    10681068                magSym[1].strip("'")
     
    28382838        if siteSym == '1':
    28392839            CSI = [[1,0,0],[2,0,0],[3,0,0],[4,0,0],[5,0,0],[6,0,0]],6*[[1.,0.,0.],]
    2840         elif siteSym in ['-1','mmm','2/m(x)','2/m(y)','2/m(z)','4/mmm001']:
     2840        elif siteSym in ['-1',]:
    28412841            CSI = 3*[[0,0,0],]+[[1,0,0],[2,0,0],[3,0,0]],3*[[0.,0.,0.],]+3*[[1.,0.,0.],]
    28422842        else:
     
    28562856                dMTP.append(dMT)
    28572857                for i in range(3):
    2858                     if not np.allclose(dM[i,i,:],dMT[i,i,:]):
     2858                    if not np.allclose(dM[i,i,:],-dMT[i,i,:]):
    28592859                        msc[i] = 0
    2860                     if not np.allclose(dM[i,i+3,:],dMT[i,i+3,:]):
     2860                    if not np.allclose(dM[i,i+3,:],-dMT[i,i+3,:]):
    28612861                        msc[i+3] = 0
    28622862                if np.any(dtau%.5) and ('1/2' in SSGData['modSymb'] or '1' in SSGData['modSymb']):
     
    28662866                    if dT:
    28672867                        if '(x)' in siteSym:
    2868                             CSI[1][3:] = [1./dT,0.,0.],[-dT,0.,0.],[-dT,0.,0.]
     2868                            CSI[1][3:] = [-dT,0.,0.],[1./dT,0.,0.],[1./dT,0.,0.]
    28692869                            if 'm' in siteSym and len(SdIndx) == 1:
    2870                                 CSI[1][3:] = [-dT,0.,0.],[1./dT,0.,0.],[1./dT,0.,0.]
     2870                                CSI[1][3:] = [1./dT,0.,0.],[-dT,0.,0.],[-dT,0.,0.]
    28712871                        elif '(y)' in siteSym:
    2872                             CSI[1][3:] = [-dT,0.,0.],[1./dT,0.,0.],[-dT,0.,0.]
     2872                            CSI[1][3:] = [1./dT,0.,0.],[-dT,0.,0.],[1./dT,0.,0.]
    28732873                            if 'm' in siteSym and len(SdIndx) == 1:
    2874                                 CSI[1][3:] = [1./dT,0.,0.],[-dT,0.,0.],[1./dT,0.,0.]
     2874                                CSI[1][3:] = [-dT,0.,0.],[1./dT,0.,0.],[-dT,0.,0.]
    28752875                        elif '(z)' in siteSym:
    2876                             CSI[1][3:] = [-dT,0.,0.],[-dT,0.,0.],[1./dT,0.,0.]
     2876                            CSI[1][3:] = [1./dT,0.,0.],[1./dT,0.,0.],[-dT,0.,0.]
    28772877                            if 'm' in siteSym and len(SdIndx) == 1:
    2878                                 CSI[1][3:] = [1./dT,0.,0.],[1./dT,0.,0.],[-dT,0.,0.]
     2878                                CSI[1][3:] = [-dT,0.,0.],[-dT,0.,0.],[1./dT,0.,0.]
    28792879                    else:
    28802880                        CSI[1][3:] = [0.,0.,0.],[0.,0.,0.],[0.,0.,0.]
     
    29192919    SSGOps = copy.deepcopy(SSGData['SSGOps'])
    29202920    #expand ops to include inversions if any
    2921     if SGData['SGInv']:
     2921    if SGData['SGInv'] and not SGData['SGFixed']:
    29222922        for op,sop in zip(SGData['SGOps'],SSGData['SSGOps']):
    29232923            SGOps.append([-op[0],-op[1]%1.])
     
    32093209    inv = SGData['SGInv']+1
    32103210    icen = SGData['SGCen']
     3211    Ncen = len(icen)
    32113212    if SGData['SGFixed']:       #already in list of operators
    32123213        inv = 1
     3214        if Ncen > 1: Ncen //= 2
    32133215    Xeqv = list(GenAtom(XYZ,SGData,True))
    32143216#    for xeqv in Xeqv:   print(xeqv)
    32153217    IRT = PackRot(SGData['SGOps'])
    32163218    L = -1
    3217     for ic,cen in enumerate(icen):
     3219    for ic,cen in enumerate(icen[:Ncen]):
    32183220        for invers in range(int(inv)):
    32193221            for io,ops in enumerate(SGData['SGOps']):
     
    34043406    eleSym = {-3:['','-1'],-2:['',-6],-1:['2','-4'],0:['3','-3'],1:['4','m'],2:['6',''],3:['1','']}
    34053407    # get operators & expand if centrosymmetric
     3408    SymElements = []
    34063409    Ops = SGData['SGOps']
    34073410    opM = np.array([op[0].T for op in Ops])
     
    34403443            print ('rotation',Es)
    34413444            X = [-1,-1,-1]
    3442         #SymElements.append([Es,X])
     3445        SymElements.append([Es,X])
    34433446       
    3444     return #SymElements
     3447    return SymElements
    34453448   
    34463449def ApplyStringOps(A,SGData,X,Uij=[]):
Note: See TracChangeset for help on using the changeset viewer.