Example #1
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
Example #2
0
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
Example #3
0
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
Example #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.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
Example #5
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
Example #6
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
Example #7
0
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')
Example #8
0
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
Example #9
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, 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
Example #10
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
Example #11
0
    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
Example #12
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
Example #13
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
Example #14
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
Example #15
0
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')
Example #16
0
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
Example #17
0
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
Example #18
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
Example #19
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
Example #20
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
Example #21
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
Example #22
0
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
Example #23
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
Example #24
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
Example #25
0
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
Example #26
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
Example #27
0
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
Example #28
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
Example #29
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
Example #30
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
Example #31
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
Example #32
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.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
Example #33
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
Example #34
0
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())
Example #35
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