def setUp(self): self.P = PdfFit() self.qmax = 25 self.qdamp = 0.5 self.rmin = 4.0 self.rmax = 10.0 self.bin = 100
def setUp(self): self.P = PdfFit() self.P.read_struct(datafile('Ni.stru')) self.P.read_struct(datafile('PbScW25TiO3.stru')) self.P.alloc('X', 0.0, 0.05, 0.1, 10, 200) self.P.alloc('N', 0.0, 0.05, 0.1, 10, 200) return
def load_ipython_extension(ipython): from diffpy.pdffit2 import PdfFit pf = PdfFit() pdf = EasyPDFPlotting(pf) print(' Type help(pdffit) or help(topic) for information.\n') ns = dict(pdffit=PdfFit, pdf=pdf) pf._exportAll(ns) ipython.user_ns.update(ns) return
def calculate(self): """do the real calculation """ # clean up old results self.rcalc = [] self.Gcalc = [] # do the job if len(self.owner.strucs) == 0: raise ControlConfigError("No structure is given for calculation") # make sure parameters are initialized self.owner.updateParameters() from diffpy.pdffit2 import PdfFit server = PdfFit() # structure needs to be read before dataset allocation for struc in self.owner.strucs: server.read_struct_string(struc.writeStr('pdffit')) for key, var in struc.constraints.items(): server.constrain(key.encode('ascii'), var.formula.encode('ascii')) # set up dataset server.alloc(self.stype, self.qmax, self.qdamp, self.rmin, self.rmax, self.rlen) server.setvar('qbroad', self.qbroad) server.setvar('dscale', self.dscale) # phase related variables # pair selection applies to current dataset, # therefore it has to be done after alloc for phaseidx0, struc in enumerate(self.owner.strucs): phaseidx1 = phaseidx0 + 1 server.setphase(phaseidx1) server.setvar('pscale', struc.getvar('pscale')) server.setvar('spdiameter', struc.getvar('spdiameter')) struc.applyPairSelection(server, phaseidx1) # set up parameters for index, par in self.owner.parameters.items(): server.setpar(index, par.initialValue()) # info[0] = init value # fix if fixed. Note: all parameters are free after server.reset(). if par.fixed: server.fixpar(index) # all ready here server.calc() # get results self.rcalc = server.getR() self.Gcalc = server.getpdf_fit()
def setUp(self): self.P = PdfFit() self.r_data = [0.1, 0.2] self.Gr_data = [1, 2, 3] self.qmax = 10 self.qdamp = 0.5
def setUp(self): self.P = PdfFit() self.iset = 1 self.i = 1
def setUp(self): self.P = PdfFit() self.ip = 1
def setUp(self): self.P = PdfFit() self.val = 3.0
def setUp(self): self.P = PdfFit() self.par = 1 return
def setUp(self): self.P = PdfFit() self.strufile = "temp.stru"
def setUp(self): self.P = PdfFit() self.P.read_struct(datafile("Ni.stru"))
def setUp(self): self.P = PdfFit() self.iset = 1 self.rmin = 4.0 self.rmax = 10.0
#!/usr/bin/env python # -*- coding: utf-8 -*- '''Perform simple refinement of Ni structure to the experimental x-ray PDF. Save fitted curve, refined structure and results summary. ''' from diffpy.pdffit2 import PdfFit # Create new PDF calculator object. pf = PdfFit() # Load data ------------------------------------------------------------------ # Load experimental x-ray PDF data qmax = 30.0 # Q-cutoff used in PDF calculation in 1/A qdamp = 0.01 # instrument Q-resolution factor, responsible for PDF decay pf.read_data('Ni-xray.gr', 'X', qmax, qdamp) # Load nickel structure, must be in PDFFIT or DISCUS format pf.read_struct('Ni.stru') # Configure Refinement ------------------------------------------------------- # Refine lattice parameters a, b, c. # Make them all equal to parameter @1. pf.constrain(pf.lat(1), "@1") pf.constrain(pf.lat(2), "@1") pf.constrain(pf.lat(3), "@1") # set initial value of parameter @1 pf.setpar(1, pf.lat(1))
def setUp(self): self.P = PdfFit() self.a1 = 1 self.a2 = 2
def setUp(self): self.P = PdfFit() self.resfile = "temp.res"
def setUp(self): self.P = PdfFit() return
#!/usr/bin/env python '''Calculate PDF of FCC nickel. Save data to Ni_calculation.cgr. ''' from diffpy.pdffit2 import PdfFit # create new PDF calculator object P = PdfFit() # load structure file in PDFFIT or DISCUS format P.read_struct("Ni.stru") radiation_type = 'X' # x-rays qmax = 30.0 # Q-cutoff used in PDF calculation in 1/A qdamp = 0.01 # instrument Q-resolution factor, responsible for PDF decay rmin = 0.01 # minimum r-value rmax = 30.0 # maximum r-value npts = 3000 # number of points in the r-grid # allocate and configure PDF calculation P.alloc(radiation_type, qmax, qdamp, rmin, rmax, npts) P.calc() P.save_pdf(1, "Ni_calculation.cgr")