Beispiel #1
0
def fit():
    cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem)
    cell.a.pm(5.0)
    cell.b.pm(5.0)
    cell.c.pm(5.0)
    m = Mod.Model(tt, observed, backg, 1.548048,-0.988016,0.338780, wavelength, spaceGroup, cell,
                (atomList, magAtomList), exclusions, magnetic=True,
                symmetry=symmetry, newSymmetry=basisSymmetry, base=6512, scale=59.08, sxtal=True, eta=0.0382, zero=0.08416, error=error)
    m.u.range(0,10)
    m.v.range(-10,0)
    m.w.range(0,10)
    m.scale.range(0,100)
    m.zero.pm(0.5)
    m.eta.range(0,1)
    m.base.pm(1000)
    for atomModel in m.atomListModel.atomModels:
        atomModel.x.range(0,1)
        atomModel.y.range(0,1)
        atomModel.z.range(0,1)
        atomModel.B.range(0,10)
        if atomModel.magnetic:
            for coeff in atomModel.coeffs:
                #coeff.range(-10, 10)
                coeff.range(-20,20)
    M = bumps.FitProblem(m)
    M.model_update()
    return M
Beispiel #2
0
def fit():
    # PYTHONPATH=. bumps Al2O3.py --fit=dream --store=M1 --burn=100 --steps=500
    cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem)
    cell.a.pm(0.5)
    cell.c.pm(0.5)
    m = Mod.Model(tt, observed, backg, 0.151066141044763, -0.0914698313404034,
                  0.0693509296318546, wavelength, spaceGroup, cell, atoms,
                  exclusions)
    m.u.range(0, 2)
    m.v.range(-2, 0)
    m.w.range(0, 2)
    m.eta.range(0, 1)
    m.scale.range(0, 10)
    for atomModel in m.atomListModel.atomModels:
        atomModel.B.range(0, 10)
        if (atomModel.atom.multip == atomModel.sgmultip):
            # atom lies on a general position
            atomModel.x.pm(0.1)
            atomModel.y.pm(0.1)
            atomModel.z.pm(0.1)
    m.atomListModel["Al1"].z.pm(0.1)
    m.atomListModel["O1"].x.pm(0.1)
    M = bumps.FitProblem(m)
    M.model_update()
    return M
Beispiel #3
0
def fit():
    cell = Mod.makeCell(crystalCell, xtalsys(spaceGroup))
    cell.a.pm(0.5)
#    cell.b.pm(0.5)
    cell.c.pm(0.5)
    m = Mod.Model(tt, observed, backg,   1.814691,  -1.482098,   0.447632 , wavelength, spaceGroup, cell,
                (atomList, magAtomList), exclusions, magnetic=True,
                symmetry=symmetry, newSymmetry=basisSymmetry, base=base_line, scale=94.508, eta=0.0, zero=0.04101, error=error, muR=1.280)
    m.u.range(0,10)
    m.v.range(-10,0)
    m.w.range(0,10)
    m.scale.range(0,200)
    m.eta.range(0,1)
    m.base.pm(1000)
    m.zero.pm(0.25)
    for atomModel in m.atomListModel.atomModels:
        if atomModel.magnetic:
            for coeff in atomModel.coeffs:
                #coeff.range(-10, 10)
                coeff.range(-20,20)
                #pass
            #atomModel.phase.range(-np.pi*2, np.pi*2)
    #m.atomListModel["Mn1"].phase.range(0, np.pi*2)
    #m.atomListModel["Mn2"].phase.range(-2*np.pi, 0)
    M = bumps.FitProblem(m)
    M.model_update()
    return M
Beispiel #4
0
def fit():
    # PYTHONPATH=. bumps Al2O3.py --fit=dream --store=M1 --burn=100 --steps=500
    cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem())
    cell.a.pm(0.5)
    cell.b.pm(0.5)
    cell.c.pm(0.5)
    m = Mod.Model(tt, observed, backg, 0, 0, 1, wavelength, spaceGroup, cell,
                atoms, exclusions, base=min(observed), zero=-0.09459)
    m.u.range(0,2)
    m.zero.pm(0.1)
    m.v.range(-2,0)
    m.w.range(0,2)
    m.eta.range(0,1)
    m.scale.range(0,10)
    m.base.pm(10)
    for atomModel in m.atomListModel.atomModels:
        atomModel.x.pm(0.1)
        atomModel.z.pm(0.1)
        if (atomModel.atom.multip == atomModel.sgmultip):
            # atom lies on a general position
            atomModel.x.pm(0.1)
            atomModel.y.pm(0.1)
            atomModel.z.pm(0.1)
    #m.atomListModel["Al1"].z.pm(0.1)
    #m.atomListModel["O1"].x.pm(0.1)
    m.atomListModel["O3"].y.pm(0.1)
    m.atomListModel["Pb"].B.range(0,10)
    M = bumps.FitProblem(m)
    M.model_update()
    return M
Beispiel #5
0
def fit():
    makeBasis(basisSymmetry, basisIndex)

    cell = Mod.makeCell(crystalCell, xtalsys(spaceGroup))
    cell.a.pm(0.2)
    cell.c.pm(0.2)

    m = Mod.Model(tt,
                  observed,
                  backg,
                  0.2979,
                  -0.1684,
                  0.03975,
                  wavelength,
                  spaceGroup,
                  cell, (atomList, magAtomList),
                  exclusions,
                  magnetic=True,
                  symmetry=symmetry,
                  newSymmetry=basisSymmetry)

    m.u.pm(0.2)
    m.v.range(-1, 0)
    m.w.range(0, 1)
    m.scale.range(0, 10)

    for atomModel in m.atomListModel.atomModels:
        #        atomModel.B.range(0, 10)
        #        if (atomModel.atom.multip == atomModel.sgmultip):
        #            # atom lies on a general position
        #            atomModel.x.pm(0.1)
        #            atomModel.y.pm(0.1)
        #            atomModel.z.pm(0.1)
        if atomModel.magnetic:
            for coeff in atomModel.coeffs:
                coeff.range(0, 10)
#            atomModel.phase.range(0,1)
# vary Fe/Mn atom positions but keep them on the special site x,0,z
#    m.atomListModel["Fe1"].x.pm(0.1)
#    m.atomListModel["Fe1"].z.pm(0.1)
#    m.atomListModel["Mn1"].x = m.atomListModel["Fe1"].x
#    m.atomListModel["Mn1"].z = m.atomListModel["Fe1"].z
    for i in xrange(len(m.atomListModel["Fe1"].coeffs)):
        m.atomListModel["Mn1"].coeffs[i] = m.atomListModel["Fe1"].coeffs[i]
    #m.atomListModel["Mn1"].phase = m.atomListModel["Fe1"].phase
    # Occupancy:
# m.atomListModel["Fe1"].occ.range(0, 1)


#    m.atomListModel["Mn1"].occ.range(0, 1)
# m.atomListModel["Mn1"].occ = 1 - m.atomListModel["Fe1"].occ

    M = bumps.FitProblem(m)
    M.model_update()
    return M
Beispiel #6
0
def fit():
    # PYTHONPATH=. bumps Al2O3.py --fit=dream --store=M1 --burn=100 --steps=500
    cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem())
    cell.a.pm(0.000001)
    cell.b.pm(0.000001)
    cell.c.pm(0.000001)
    cell.a.set([5.536482, 5.747128, 7.692561][0])
    cell.b.set([5.536482, 5.747128, 7.692561][1])
    cell.c.set([5.536482, 5.747128, 7.692561][2])
    m = Mod.Model(tt,
                  observed,
                  backg,
                  0.176001,
                  -0.197806,
                  0.091452,
                  wavelength,
                  spaceGroup,
                  cell,
                  atoms,
                  exclusions,
                  base=min(observed),
                  zero=0.00029)
    m.u.pm(0.00001)
    m.v.pm(0.00001)
    m.w.pm(0.00001)
    m.u.set([0.176001, -0.197806, 0.091452][0])
    m.v.set([0.176001, -0.197806, 0.091452][1])
    m.w.set([0.176001, -0.197806, 0.091452][2])
    #m.u.range(0,2)
    m.zero.pm(0.1)
    #m.v.range(-2,0)
    #m.w.range(0,2)
    m.eta.range(0, 1)
    m.scale.range(0, 10)
    m.base.pm(250)
    for atomModel in m.atomListModel.atomModels:
        atomModel.B.range(0, 10)
        if H.getAtom_chemsymb(atomModel.atom).lower() != "mn":
            atomModel.x.range(0, 1)
            atomModel.y.range(0, 1)
        if (atomModel.atom.multip == atomModel.sgmultip):
            # atom lies on a general position
            atomModel.x.pm(0.1)
            atomModel.y.pm(0.1)
            atomModel.z.pm(0.1)
    m.atomListModel["O2"].z.range(0, 1)
    #m.atomListModel["O1"].x.pm(0.1)
    #m.atomListModel["O3"].y.pm(0.1)
    #m.atomListModel["Pb"].B.range(0,10)
    M = bumps.FitProblem(m)
    M.model_update()
    return M
Beispiel #7
0
def fit():
    #makeBasis(basisSymmetry, basisIndex)
    cell = Mod.makeCell(crystalCell, xtalsys(spaceGroup))
    cell.a.pm(0.5)
    cell.b.pm(0.5)
    cell.c.pm(0.5)
    #print len(H.satelliteGen(cell.cell, symmetry, float(H.getS(ttMax, wavelength))))
    m = Mod.Model(tt, observed, backg, 0, 0, 1, wavelength, spaceGroup, cell,
                (atomList, magAtomList), exclusions, magnetic=True,
                symmetry=symmetry, newSymmetry=basisSymmetry, base=6512, scale=59.143)
    m.u.range(0,10)
    m.v.range(-10,0)
    m.w.range(0,10)
    m.scale.range(59,60)
    m.base.range(6510,6514)
    for atomModel in m.atomListModel.atomModels:
#        atomModel.B.range(0, 10)
#        if (atomModel.atom.multip == atomModel.sgmultip):
#            # atom lies on a general position
#            atomModel.x.pm(0.1)
#            atomModel.y.pm(0.1)
#            atomModel.z.pm(0.1)
        if atomModel.magnetic:
            for coeff in atomModel.coeffs:
                #coeff.range(-10, 10)
                coeff.range(-20,20)
#            atomModel.phase.range(0,1)
    # vary Fe/Mn atom positions but keep them on the special site x,0,z
#    m.atomListModel["Fe1"].x.pm(0.1)
#    m.atomListModel["Fe1"].z.pm(0.1)
#    m.atomListModel["Mn1"].x = m.atomListModel["Fe1"].x
#    m.atomListModel["Mn1"].z = m.atomListModel["Fe1"].z
    #for i in xrange(len(m.atomListModel["Fe1"].coeffs)):
        #m.atomListModel["Mn1"].coeffs[i] = m.atomListModel["Fe1"].coeffs[i]
#    m.atomListModel["Mn1"].phase = m.atomListModel["Fe1"].phase
    # Occupancy:
#    m.atomListModel["Fe1"].occ.range(0, 1)
#    m.atomListModel["Mn1"].occ.range(0, 1)
#    m.atomListModel["Mn1"].occ = 1 - m.atomListModel["Fe1"].occ
    
    M = bumps.FitProblem(m)
    M.model_update()
    return M
Beispiel #8
0
def fit():
    # PYTHONPATH=. bumps Al2O3.py --fit=dream --store=M1 --burn=100 --steps=500
    cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem())
    cell.a.pm(0.0000001)
    cell.b.pm(0.0000001)
    cell.c.pm(0.0000001)
    cell.a.set([3.815149, 3.880053, 11.664815][0])
    cell.b.set([3.815149, 3.880053, 11.664815][1])
    cell.c.set([3.815149, 3.880053, 11.664815][2])
    m = Mod.Model(tt, observed, backg, 0.198607,-0.322513,0.338442, wavelength, spaceGroup, cell,
                atoms, exclusions, base=min(observed), zero=0.19089)
    m.u.pm(0.000001)
    m.v.pm(0.000001)
    m.w.pm(0.000001)
    m.u.set(([0.198607,-0.322513,0.338442])[0])
    m.v.set(([0.198607,-0.322513,0.338442])[1])
    m.w.set(([0.198607,-0.322513,0.338442])[2])
    m.zero.pm(0.00000001)
    m.eta.range(0,1)
    m.scale.range(0,10)
    m.base.pm(0.0001)
    for atomModel in m.atomListModel.atomModels:
        atomModel.B.range(0,10)
        #if (atomModel.atom.multip == atomModel.sgmultip):
            ## atom lies on a general position
            #atomModel.x.pm(0.1)
            #atomModel.y.pm(0.1)
            #atomModel.z.pm(0.1)
    m.atomListModel["Ba"].z.range(0,1)
    m.atomListModel["CaB"].z.range(0,1)
    m.atomListModel["Cu2"].z.range(0,1)
    m.atomListModel["O1"].z.range(0,1)
    m.atomListModel["O2"].z.range(0,1)
    m.atomListModel["O3"].z.range(0,1)
    #m.atomListModel["O1"].x.pm(0.1)
    #m.atomListModel["O3"].y.pm(0.1)
    #m.atomListModel["Pb"].B.range(0,10)
    M = bumps.FitProblem(m)
    M.model_update()
    return M
Beispiel #9
0
def setInitParams():

    print("Setting parameters...")

    #Make a cell
    cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem)

    #Define a model
    m = Mod.Model(tt,
                  observedByAlg,
                  backg,
                  1.548048,
                  -0.988016,
                  0.338780,
                  wavelength,
                  spaceGroup,
                  cell, (atomList, magAtomList),
                  exclusions,
                  magnetic=True,
                  symmetry=symmetry,
                  newSymmetry=basisSymmetry,
                  base=6512,
                  scale=59.08,
                  eta=0.0382,
                  zero=0.08416,
                  error=error)

    #Set a range on the x value of the first atom in the model
    m.atomListModel.atomModels[0].x.range(0, 1)

    #Generate list of hkls
    hkls = []
    for r in m.reflections:
        hkls.append(r.hkl)


#    m.observed.append(m.reflections[0])
#    m.observed.append(m.reflections[1])
#    m.observed.append(m.reflections[2])
    return m, hkls
Beispiel #10
0
def fit():
    cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem)
    cell.a.pm(0.5)
    cell.c.pm(0.5)
    m = Mod.Model(tt,
                  observed,
                  backg,
                  0.226335,
                  -0.220125,
                  0.117269,
                  wavelength,
                  spaceGroup,
                  cell, (atomList, magAtomList),
                  exclusions,
                  magnetic=True,
                  symmetry=symmetry,
                  newSymmetry=basisSymmetry,
                  eta=0.11935,
                  scale=0.37163,
                  base=base_value)
    m.u.range(0, 10)
    m.v.range(-10, 0)
    m.w.range(0, 10)
    m.scale.range(0, 10)
    m.base.pm(500)
    m.eta.range(0, 1)
    for atomModel in m.atomListModel.atomModels:
        #        atomModel.B.range(0, 10)
        #        if (atomModel.atom.multip == atomModel.sgmultip):
        #            # atom lies on a general position
        #            atomModel.x.pm(0.1)
        #            atomModel.y.pm(0.1)
        #            atomModel.z.pm(0.1)
        if atomModel.magnetic:
            for coeff in atomModel.coeffs:
                coeff.range(-10, 10)
    M = bumps.FitProblem(m)
    M.model_update()
    return M
Beispiel #11
0
def fit():
    cell = Mod.makeCell(crystalCell, xtalsys(spaceGroup))
    cell.a.pm(0.5)
    cell.b.pm(0.5)
    cell.c.pm(0.5)
    m = Mod.Model(tt,
                  observed,
                  backg,
                  0.1060,
                  -0.3270,
                  0.3360,
                  wavelength,
                  spaceGroup,
                  cell, (atomList, magAtomList),
                  exclusions,
                  magnetic=True,
                  symmetry=symmetry,
                  newSymmetry=basisSymmetry,
                  base=base_line,
                  scale=27.765 / 2,
                  eta=0.0,
                  zero=-0.12671,
                  sxtal=True,
                  error=error)
    m.u.range(0, 10)
    m.v.range(-10, 0)
    m.w.range(0, 10)
    m.scale.range(0, 100)
    m.eta.range(0, 1)
    m.base.pm(500)
    m.zero.pm(0.25)
    for atomModel in m.atomListModel.atomModels:
        if atomModel.magnetic:
            for coeff in atomModel.coeffs:
                #coeff.range(-10, 10)
                coeff.range(-20, 20)
    M = bumps.FitProblem(m)
    M.model_update()
    return M
Beispiel #12
0
def fit():
    # PYTHONPATH=. bumps Al2O3.py --fit=dream --store=M1 --burn=100 --steps=500
    cell = Mod.makeCell(crystalCell, getSpaceGroup_crystalsys(spaceGroup))
    cell.a.pm(0.5)
    cell.c.pm(0.5)
    m = Mod.Model(tt, observed, backg, 0, 0, 1, wavelength, spaceGroup, cell,
                  atoms, exclusions)
    m.u.range(0, 2)
    m.v.range(-2, 0)
    m.w.range(0, 2)
    m.scale.range(0, 10)
    for atomModel in m.atomListModel.atomModels:
        atomModel.B.range(0, 10)
        if (atomModel.atom.multip == atomModel.sgmultip):
            # atom lies on a general position
            atomModel.x.pm(0.1)
            atomModel.y.pm(0.1)
            atomModel.z.pm(0.1)
    m.atomListModel["Al1"].z.pm(0.1)
    m.atomListModel["O1"].x.pm(0.1)
    M = bumps.FitProblem(m)
    M.model_update()
    return M
Beispiel #13
0
def fit():
    #makeBasis(basisSymmetry, basisIndex)
    cell = Mod.makeCell(crystalCell, xtalsys(spaceGroup))
    cell.a.pm(0.5)
    cell.b.pm(0.5)
    cell.c.pm(0.5)
    m = Mod.Model(tt,
                  observed,
                  backg,
                  1.809863,
                  -1.476814,
                  0.446315,
                  wavelength,
                  spaceGroup,
                  cell, (atomList, magAtomList),
                  exclusions,
                  magnetic=True,
                  symmetry=symmetry,
                  newSymmetry=basisSymmetry,
                  base=6512,
                  scale=94.064,
                  sxtal=True,
                  error=error)
    m.u.range(0, 10)
    m.v.range(-10, 0)
    m.w.range(0, 10)
    m.scale.range(11, 60)
    m.base.range(6510, 6514)
    for atomModel in m.atomListModel.atomModels:
        if atomModel.magnetic:
            for coeff in atomModel.coeffs:
                #coeff.range(-10, 10)
                coeff.range(-20, 20)
    M = bumps.FitProblem(m)
    M.model_update()
    return M
Beispiel #14
0
def makeModel(tt_mod, obs_mod, backg, u, v, w, wavelength, real_sgs, cell_hkl,
              atomLists, instrument, u_pm, v_pm, w_pm, zero_pm, eta_pm,
              scale_pm, phases):
    try:
        zero = float(instrument['zero'])
    except:
        zero = 0
    try:
        eta = float(instrument['eta'])
    except:
        eta = 0
    try:
        scale = float(instrument['scale'])
    except:
        scale = 1
    m = Mod.Model(tt=tt_mod,
                  observed=obs_mod,
                  background=backg,
                  u=u,
                  v=v,
                  w=w,
                  wavelength=wavelength,
                  spaceGroupName=real_sgs[0],
                  cell=cell_hkl,
                  atoms=atomLists[0],
                  base=min(obs_mod),
                  zero=zero,
                  eta=eta,
                  scale=scale)
    try:
        m.u.pm(u_pm)
    except:
        pass
    try:
        m.v.pm(v_pm)
    except:
        pass
    try:
        m.w.pm(w_pm)
    except:
        pass
    try:
        m.zero.pm(zero_pm)
    except:
        pass
    try:
        m.eta.pm(eta_pm)
    except:
        pass
    try:
        m.scale.pm(scale_pm)
    except:
        pass
    for i in range(len(m.atomListModel.atomModels)):
        try:
            for item in phases[1]['x']:
                if int(item['row']) == i:
                    x_pm = float(item['pm'])
        except:
            pass
        try:
            for item in phases[1]['y']:
                if int(item['row']) == i:
                    y_pm = float(item['pm'])
        except:
            pass
        try:
            for item in phases[1]['z']:
                if int(item['row']) == i:
                    z_pm = float(item['pm'])
        except:
            pass
        try:
            for item in phases[1]['occupancy']:
                if int(item['row']) == i:
                    occ_pm = float(item['pm'])
        except:
            pass
        try:
            for item in phases[1]['thermal']:
                if int(item['row']) == i:
                    therm_pm = float(item['pm'])
        except:
            pass
        try:
            m.atomListModel.atomModels[i].x.pm(x_pm)
        except:
            pass
        try:
            m.atomListModel.atomModels[i].y.pm(y_pm)
        except:
            pass
        try:
            m.atomListModel.atomModels[i].z.pm(z_pm)
        except:
            pass
        try:
            m.atomListModel.atomModels[i].occ.pm(occ_pm)
        except:
            pass
        try:
            m.atomListModel.atomModels[i].B.pm(therm_pm)
        except:
            pass
    return m