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
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
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
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
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
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
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
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
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
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
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
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
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
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