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 makeModelCell(cell, real_sgs, phases): print(real_sgs[0].number) cell_hkl = Mod.makeCell(cell, real_sgs[0].xtalSystem) try: cell_hkl.a.pm(float(phases[1]['a']['pm'])) except: print "no a" try: cell_hkl.b.pm(float(phases[1]['b']['pm'])) except: print "no b" try: cell_hkl.c.pm(float(phases[1]['c']['pm'])) except: print "no c" try: cell_hkl.alpha.pm(float(phases[1]['alpha']['pm'])) except: print "no alpha" try: cell_hkl.beta.pm(float(phases[1]['beta']['pm'])) except: print "no beta" try: cell_hkl.gamma.pm(float(phases[1]['gamma']['pm'])) except: print "no gamma" return cell_hkl
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.00029) 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.pm(1.0) atomModel.y.pm(1.0) 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.pm(1.0) #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(): # 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, 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 graphError(): cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem) m = S.Model(tt, sfs2, backg, wavelength, spaceGroup, cell, [atomList], exclusions, scale=0.06298,hkls=refList, error=error, extinction=[0.0001054]) m.atomListModel.atomModels[0].z.range(0,0.5) z = 0 xval = [] y = [] while (z < 0.5): #Set a range on the x value of the first atom in the model m.atomListModel.atomModels[0].z.value = z m.atomListModel.atomModels[0].z.range(0, 0.5) problem = bumps.FitProblem(m) # monitor = fitter.StepMonitor(problem, open("sxtalFitMonitor.txt","w")) fitted = fitter.LevenbergMarquardtFit(problem) x, dx = fitted.solve() xval.append(x[0]) y.append(problem.chisq()) print(x, problem.chisq()) z += 0.005 fig = plt.figure()# mpl.pyplot.scatter(xval, yval) mpl.pyplot.xlabel("Pr z coordinate") mpl.pyplot.ylabel("X2 value") fig.savefig('/mnt/storage/prnio_chisq_vals_optcfl_lm.png')
def fit(): cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem) #cell.a.pm(5.0) #cell.c.pm(5.0) m = S.Model(tt, sfs2, backg, wavelength, spaceGroup, cell, (atomList, magAtomList), exclusions, magnetic=True, symmetry=symmetry, newSymmetry=basisSymmetry, scale=1.00, error=error, hkls=refList, extinction=[0, 0, 0, 0]) m.scale.range(0, 2000) #m.base.pm(1000) for ext in m.extinctions: ext.range(0, 100.0) 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(-20, 20) #coeff.range(0,5) 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, error=error, eta=0) m.u.range(0,1) m.zero.pm(0.5) m.v.range(-1,0) m.w.range(0,1) m.eta.range(0,1) m.scale.range(0,100) m.base.pm(500) for atomModel in m.atomListModel.atomModels: #atomModel.x.pm(0.1) #atomModel.z.pm(0.1) atomModel.x.range(0,1) atomModel.z.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) atomModel.y.range(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(): 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 reset(self): #Make a cell cell = Mod.makeCell(self.crystalCell, self.spaceGroup.xtalSystem) #Define a model self.model = S.Model([], [], self.backg, self.wavelength, self.spaceGroup, cell, [self.atomList], self.exclusions, scale=0.06298, error=[], extinction=[0.0001054]) #Set a range on the x value of the first atom in the model self.model.atomListModel.atomModels[0].z.value = 0.25 self.model.atomListModel.atomModels[0].z.range(0, 0.5) self.visited = [] self.observed = [] self.remainingActions = [] for i in range(len(self.refList)): self.remainingActions.append(i) self.totReward = 0 self.prevChisq = None self.steps = 0 self.state = np.zeros(len(self.refList)) self.stateList = [] return self.state
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(): 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 plotSfs2(): cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem) m = S.Model(tt, sfs2, backg, wavelength, spaceGroup, cell, [atomList], exclusions, scale=0.06298,hkls=refList, error=error, extinction=[0.0001054]) m.atomListModel.atomModels[0].z.range(0,0.5) x = sfs2 y = m.theory() plt.scatter(x, y) plt.savefig('sfs2s.png')
def setInitParams(): #Make a cell cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem) #Define a model m = S.Model([], [], backg, wavelength, spaceGroup, cell, [atomList], exclusions, scale=0.06298, error=[], extinction=[0.0001054]) #Set a range on the x value of the first atom in the model #Replace this code with references to the parameters you would like to fit the model to m.atomListModel.atomModels[0].z.value = 0.3 m.atomListModel.atomModels[0].z.range(0,0.5) return m
def setInitParams(): #Make a cell cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem) #Define a model m = S.Model([], [], backg, wavelength, spaceGroup, cell, [atomList], exclusions, scale=0.2163, error=[], extinction=[0.000105]) #Set a range on the x value of the first atom in the model #Setting initial values and ranges of parameters to look at m.atomListModel.atomModels[0].z.value = 0.5 # m.atomListModel.atomModels[0].z.value = random.random()/2 m.atomListModel.atomModels[0].z.range(0,1) #Oxygen d z coordinate # m.atomListModel.atomModels[5].z.value = 0.2 # m.atomListModel.atomModels[5].z.range(0,0.5) 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(): 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(): 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(): 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, spaceGroup.xtalSystem) #cell.a.pm(5.0) #cell.c.pm(5.0) m = S.Model(tt, sfs2, backg, wavelength, spaceGroup, cell, [atomList], exclusions, scale=0.06298, error=error, hkls=refList, extinction=[0.0001054]) m.scale.range(0,100) #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(-20, 20) #coeff.range(0,5) 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(5.0) #cell.c.pm(5.0) m = S.Model(tt, sfs2, backg, wavelength, spaceGroup, cell, [atomList], exclusions, scale=0.06298, error=error, hkls=refList, extinction=0.0001054) m.scale.range(0,100) #m.base.pm(1000) m.extinction.range(0,10.0) 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(-20, 20) #coeff.range(0,5) 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(): cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem) #cell.a.pm(5.0) #cell.c.pm(5.0) m = S.Model(tt, sfs2, backg, wavelength, spaceGroup, cell, (atomList, magAtomList), exclusions, magnetic=True, symmetry=symmetry, newSymmetry=basisSymmetry, scale=1.557, error=error, hkls=refList) m.scale.range(0,100) #m.base.pm(1000) m.extinction.range(0,10.0) 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(-20, 20) #coeff.range(0,5) 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 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(): # 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(): # 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(): 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.161020, -0.658240, 0.29176, wavelength, spaceGroup, cell, (atomList, magAtomList), exclusions, magnetic=True, symmetry=symmetry, newSymmetry=basisSymmetry, base=base_line, scale=9.6286/np.sqrt(2.0), eta=0.1031, zero=0.0197, sxtal=True, error=error) m.u.range(0,10) m.v.range(-10,0) m.w.range(0,10) m.scale.range(0,60) 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, 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 fitFullModel(): cell = Mod.makeCell(crystalCell, spaceGroup.xtalSystem) #Define a model m = S.Model(tt, sfs2, backg, wavelength, spaceGroup, cell, [atomList], exclusions, scale=0.06298,hkls=refList, error=error, extinction=[0.0001054]) 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.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.atomModels[0].z.value = 0.3 m.atomListModel.atomModels[0].z.range(0,0.5) problem = bumps.FitProblem(m) fitted = fitter.SimplexFit(problem) x, dx = fitted.solve(steps=50) problem.model_update() print(problem.summarize()) print(x, dx, problem.chisq())
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