schrodinger.application.matsci.gsas.GSASIIpwd module

# Third-party code. No Schrodinger Copyright.

GSASII powder calculation module

schrodinger.application.matsci.gsas.GSASIIpwd.tand(x)
schrodinger.application.matsci.gsas.GSASIIpwd.atand(x)
schrodinger.application.matsci.gsas.GSASIIpwd.atan2d(y, x)
schrodinger.application.matsci.gsas.GSASIIpwd.cosd(x)
schrodinger.application.matsci.gsas.GSASIIpwd.acosd(x)
schrodinger.application.matsci.gsas.GSASIIpwd.rdsq2d(x, p)
schrodinger.application.matsci.gsas.GSASIIpwd.npsind(x)
schrodinger.application.matsci.gsas.GSASIIpwd.npasind(x)
schrodinger.application.matsci.gsas.GSASIIpwd.npcosd(x)
schrodinger.application.matsci.gsas.GSASIIpwd.npacosd(x)
schrodinger.application.matsci.gsas.GSASIIpwd.nptand(x)
schrodinger.application.matsci.gsas.GSASIIpwd.npatand(x)
schrodinger.application.matsci.gsas.GSASIIpwd.npatan2d(y, x)
schrodinger.application.matsci.gsas.GSASIIpwd.npT2stl(tth, wave)
schrodinger.application.matsci.gsas.GSASIIpwd.npT2q(tth, wave)
schrodinger.application.matsci.gsas.GSASIIpwd.PhaseWtSum(G2frame, histo)

Calculate sum of phase mass*phase fraction for PWDR data (exclude magnetic phases)

Parameters
  • G2frame – GSASII main frame structure

  • histo (str) – histogram name

Returns

sum(scale*mass) for phases in histo

schrodinger.application.matsci.gsas.GSASIIpwd.Transmission(Geometry, Abs, Diam)

Calculate sample transmission

Parameters
  • Geometry (str) – one of ‘Cylinder’,’Bragg-Brentano’,’Tilting flat plate in transmission’,’Fixed flat plate’

  • Abs (float) – absorption coeff in cm-1

  • Diam (float) – sample thickness/diameter in mm

schrodinger.application.matsci.gsas.GSASIIpwd.SurfaceRough(SRA, SRB, Tth)

Suortti (J. Appl. Cryst, 5,325-331, 1972) surface roughness correction :param float SRA: Suortti surface roughness parameter :param float SRB: Suortti surface roughness parameter :param float Tth: 2-theta(deg) - can be numpy array

schrodinger.application.matsci.gsas.GSASIIpwd.SurfaceRoughDerv(SRA, SRB, Tth)

Suortti surface roughness correction derivatives :param float SRA: Suortti surface roughness parameter (dimensionless) :param float SRB: Suortti surface roughness parameter (dimensionless) :param float Tth: 2-theta(deg) - can be numpy array :return list: [dydSRA,dydSRB] derivatives to be used for intensity derivative

schrodinger.application.matsci.gsas.GSASIIpwd.Absorb(Geometry, MuR, Tth, Phi=0, Psi=0)

Calculate sample absorption :param str Geometry: one of ‘Cylinder’,’Bragg-Brentano’,’Tilting Flat Plate in transmission’,’Fixed flat plate’ :param float MuR: absorption coeff * sample thickness/2 or radius :param Tth: 2-theta scattering angle - can be numpy array :param float Phi: flat plate tilt angle - future :param float Psi: flat plate tilt axis - future

schrodinger.application.matsci.gsas.GSASIIpwd.AbsorbDerv(Geometry, MuR, Tth, Phi=0, Psi=0)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.Polarization(Pola, Tth, Azm=0.0)

Calculate angle dependent x-ray polarization correction (not scaled correctly!)

Parameters
  • Pola – polarization coefficient e.g 1.0 fully polarized, 0.5 unpolarized

  • Azm – azimuthal angle e.g. 0.0 in plane of polarization

  • Tth – 2-theta scattering angle - can be numpy array which (if either) of these is “right”?

Returns

(pola, dpdPola) * pola = ((1-Pola)*npcosd(Azm)**2+Pola*npsind(Azm)**2)*npcosd(Tth)**2+ (1-Pola)*npsind(Azm)**2+Pola*npcosd(Azm)**2 * dpdPola: derivative needed for least squares

schrodinger.application.matsci.gsas.GSASIIpwd.Oblique(ObCoeff, Tth)

currently assumes detector is normal to beam

schrodinger.application.matsci.gsas.GSASIIpwd.Ruland(RulCoff, wave, Q, Compton)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.LorchWeight(Q)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.GetAsfMean(ElList, Sthl2)

Calculate various scattering factor terms for PDF calcs

Parameters
  • ElList (dict) – element dictionary contains scattering factor coefficients, etc.

  • Sthl2 (np.array) – numpy array of sin theta/lambda squared values

Returns

mean(f^2), mean(f)^2, mean(compton)

schrodinger.application.matsci.gsas.GSASIIpwd.GetNumDensity(ElList, Vol)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.CalcPDF(data, inst, limits, xydata)

Computes I(Q), S(Q) & G(r) from Sample, Bkg, etc. diffraction patterns loaded into dict xydata; results are placed in xydata. Calculation parameters are found in dicts data and inst and list limits. The return value is at present an empty list.

schrodinger.application.matsci.gsas.GSASIIpwd.PDFPeakFit(peaks, data)
schrodinger.application.matsci.gsas.GSASIIpwd.MakeRDF(RDFcontrols, background, inst, pwddata)
schrodinger.application.matsci.gsas.GSASIIpwd.OptimizePDF(data, xydata, limits, inst, showFit=True, maxCycles=5)
schrodinger.application.matsci.gsas.GSASIIpwd.SetupPDFEval(data, xydata, limits, inst, numbDen)
schrodinger.application.matsci.gsas.GSASIIpwd.factorize(num)

Provide prime number factors for integer num :returns: dictionary of prime factors (keys) & power for each (data)

schrodinger.application.matsci.gsas.GSASIIpwd.makeFFTsizeList(nmin=1, nmax=1023, thresh=15)

Provide list of optimal data sizes for FFT calculations

Parameters
  • nmin (int) – minimum data size >= 1

  • nmax (int) – maximum data size > nmin

  • thresh (int) – maximum prime factor allowed

Returns

list of data sizes where the maximum prime factor is < thresh

class schrodinger.application.matsci.gsas.GSASIIpwd.norm_gen(momtype=1, a=None, b=None, xtol=1e-14, badvalue=None, name=None, longname=None, shapes=None, extradoc=None, seed=None)

Bases: scipy.stats._distn_infrastructure.rv_continuous

needs a doc string

pdf(x, *args, **kwds)

Probability density function at x of the given RV.

xarray_like

quantiles

arg1, arg2, arg3,…array_like

The shape parameter(s) for the distribution (see docstring of the instance object for more information)

locarray_like, optional

location parameter (default=0)

scalearray_like, optional

scale parameter (default=1)

pdfndarray

Probability density function evaluated at x

class schrodinger.application.matsci.gsas.GSASIIpwd.cauchy_gen(momtype=1, a=None, b=None, xtol=1e-14, badvalue=None, name=None, longname=None, shapes=None, extradoc=None, seed=None)

Bases: scipy.stats._distn_infrastructure.rv_continuous

needs a doc string

pdf(x, *args, **kwds)

Probability density function at x of the given RV.

xarray_like

quantiles

arg1, arg2, arg3,…array_like

The shape parameter(s) for the distribution (see docstring of the instance object for more information)

locarray_like, optional

location parameter (default=0)

scalearray_like, optional

scale parameter (default=1)

pdfndarray

Probability density function evaluated at x

class schrodinger.application.matsci.gsas.GSASIIpwd.fcjde_gen(momtype=1, a=None, b=None, xtol=1e-14, badvalue=None, name=None, longname=None, shapes=None, extradoc=None, seed=None)

Bases: scipy.stats._distn_infrastructure.rv_continuous

Finger-Cox-Jephcoat D(2phi,2th) function for S/L = H/L Ref: J. Appl. Cryst. (1994) 27, 892-900.

Parameters
  • x – array -1 to 1

  • t – 2-theta position of peak

  • s – sum(S/L,H/L); S: sample height, H: detector opening, L: sample to detector opening distance

  • dx – 2-theta step size in deg

Returns

for fcj.pdf

  • T = x*dx+t

  • s = S/L+H/L

  • if x < 0:

    fcj.pdf = [1/sqrt({cos(T)**2/cos(t)**2}-1) - 1/s]/|cos(T)|
    
  • if x >= 0: fcj.pdf = 0

pdf(x, *args, **kwds)

Probability density function at x of the given RV.

xarray_like

quantiles

arg1, arg2, arg3,…array_like

The shape parameter(s) for the distribution (see docstring of the instance object for more information)

locarray_like, optional

location parameter (default=0)

scalearray_like, optional

scale parameter (default=1)

pdfndarray

Probability density function evaluated at x

schrodinger.application.matsci.gsas.GSASIIpwd.getWidthsCW(pos, sig, gam, shl)

Compute the peak widths used for computing the range of a peak for constant wavelength data. On low-angle side, 50 FWHM are used, on high-angle side 75 are used, low angle side extended for axial divergence (for peaks above 90 deg, these are reversed.)

schrodinger.application.matsci.gsas.GSASIIpwd.getWidthsTOF(pos, alp, bet, sig, gam)

Compute the peak widths used for computing the range of a peak for constant wavelength data. 50 FWHM are used on both sides each extended by exponential coeff.

schrodinger.application.matsci.gsas.GSASIIpwd.getFWHM(pos, Inst)

Compute total FWHM from Thompson, Cox & Hastings (1987) , J. Appl. Cryst. 20, 79-83 via getgamFW(g,s).

Parameters
  • pos – float peak position in deg 2-theta or tof in musec

  • Inst – dict instrument parameters

Returns float

total FWHM of pseudoVoigt in deg or musec

schrodinger.application.matsci.gsas.GSASIIpwd.getgamFW(g, s)

Compute total FWHM from Thompson, Cox & Hastings (1987), J. Appl. Cryst. 20, 79-83 lambda fxn needs FWHM for both Gaussian & Lorentzian components

Parameters
  • g – float Lorentzian gamma = FWHM(L)

  • s – float Gaussian sig

Returns float

total FWHM of pseudoVoigt

schrodinger.application.matsci.gsas.GSASIIpwd.getFCJVoigt(pos, intens, sig, gam, shl, xdata)

Compute the Finger-Cox-Jepcoat modified Voigt function for a CW powder peak by direct convolution. This version is not used.

schrodinger.application.matsci.gsas.GSASIIpwd.getBackground(pfx, parmDict, bakType, dataType, xdata, fixedBkg={})

Computes the background from vars pulled from gpx file or tree.

schrodinger.application.matsci.gsas.GSASIIpwd.getBackgroundDerv(hfx, parmDict, bakType, dataType, xdata)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.getFCJVoigt3(pos, sig, gam, shl, xdata)

Compute the Finger-Cox-Jepcoat modified Pseudo-Voigt function for a CW powder peak in external Fortran routine

schrodinger.application.matsci.gsas.GSASIIpwd.getdFCJVoigt3(pos, sig, gam, shl, xdata)

Compute analytic derivatives the Finger-Cox-Jepcoat modified Pseudo-Voigt function for a CW powder peak

schrodinger.application.matsci.gsas.GSASIIpwd.getPsVoigt(pos, sig, gam, xdata)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.getdPsVoigt(pos, sig, gam, xdata)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.getEpsVoigt(pos, alp, bet, sig, gam, xdata)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.getdEpsVoigt(pos, alp, bet, sig, gam, xdata)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.ellipseSize(H, Sij, GB)

Implements r=1/sqrt(sum((1/S)*(q.v)^2) per note from Alexander Brady

schrodinger.application.matsci.gsas.GSASIIpwd.ellipseSizeDerv(H, Sij, GB)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.getHKLpeak(dmin, SGData, A, Inst=None, nodup=False)

Generates allowed by symmetry reflections with d >= dmin NB: GenHKLf & checkMagextc return True for extinct reflections

Parameters
  • dmin – minimum d-spacing

  • SGData – space group data obtained from SpcGroup

  • A – lattice parameter terms A1-A6

  • Inst – instrument parameter info

Returns

HKLs: np.array hkl, etc for allowed reflections

schrodinger.application.matsci.gsas.GSASIIpwd.getHKLMpeak(dmin, Inst, SGData, SSGData, Vec, maxH, A)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.getPeakProfile(dataType, parmDict, xdata, varyList, bakType)

Computes the profile for a powder pattern

schrodinger.application.matsci.gsas.GSASIIpwd.getPeakProfileDerv(dataType, parmDict, xdata, varyList, bakType)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.Dict2Values(parmdict, varylist)

Use before call to leastsq to setup list of values for the parameters in parmdict, as selected by key in varylist

schrodinger.application.matsci.gsas.GSASIIpwd.Values2Dict(parmdict, varylist, values)

Use after call to leastsq to update the parameter dictionary with values corresponding to keys in varylist

schrodinger.application.matsci.gsas.GSASIIpwd.SetBackgroundParms(Background)

Loads background parameters into dicts/lists to create varylist & parmdict

schrodinger.application.matsci.gsas.GSASIIpwd.DoCalibInst(IndexPeaks, Inst)
schrodinger.application.matsci.gsas.GSASIIpwd.DoPeakFit(FitPgm, Peaks, Background, Limits, Inst, Inst2, data, fixback=None, prevVaryList=[], oneCycle=False, controls=None, dlg=None)

Called to perform a peak fit, refining the selected items in the peak table as well as selected items in the background.

Parameters
  • FitPgm (str) – type of fit to perform. At present this is ignored.

  • Peaks (list) – a list of peaks. Each peak entry is a list with 8 values: four values followed by a refine flag where the values are: position, intensity, sigma (Gaussian width) and gamma (Lorentzian width). From the Histogram/”Peak List” tree entry, dict item “peaks”

  • Background (list) – describes the background. List with two items. Item 0 specifies a background model and coefficients. Item 1 is a dict. From the Histogram/Background tree entry.

  • Limits (list) – min and max x-value to use

  • Inst (dict) – Instrument parameters

  • Inst2 (dict) – more Instrument parameters

  • data (numpy.array) – a 5xn array. data[0] is the x-values, data[1] is the y-values, data[2] are weight values, data[3], [4] and [5] are calc, background and difference intensities, respectively.

  • fixback (array) – fixed background values

  • prevVaryList (list) – Used in sequential refinements to override the variable list. Defaults as an empty list.

  • oneCycle (bool) – True if only one cycle of fitting should be performed

  • controls (dict) – a dict specifying two values, Ftol = controls[‘min dM/M’] and derivType = controls[‘deriv type’]. If None default values are used.

  • dlg (wx.Dialog) – A dialog box that is updated with progress from the fit. Defaults to None, which means no updates are done.

schrodinger.application.matsci.gsas.GSASIIpwd.calcIncident(Iparm, xdata)

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.REFDRefine(Profile, ProfDict, Inst, Limits, Substances, data)
schrodinger.application.matsci.gsas.GSASIIpwd.makeSLDprofile(data, Substances)
schrodinger.application.matsci.gsas.GSASIIpwd.REFDModelFxn(Profile, Inst, Limits, Substances, data)
schrodinger.application.matsci.gsas.GSASIIpwd.abeles(kz, depth, rho, irho=0, sigma=0)

Optical matrix form of the reflectivity calculation. O.S. Heavens, Optical Properties of Thin Solid Films

Reflectometry as a function of kz for a set of slabs.

Parameters
  • kz – float[n] (1/Ang). Scattering vector, 2pi sin(theta)/lambda. This is \tfrac12 Q_z.

  • depth – float[m] (Ang). thickness of each layer. The thickness of the incident medium and substrate are ignored.

  • rho – float[n,k] (1e-6/Ang^2) Real scattering length density for each layer for each kz

  • irho – float[n,k] (1e-6/Ang^2) Imaginary scattering length density for each layer for each kz Note: absorption cross section mu = 2 irho/lambda for neutrons

  • sigma – float[m-1] (Ang) interfacial roughness. This is the roughness between a layer and the previous layer. The sigma array should have m-1 entries.

Slabs are ordered with the surface SLD at index 0 and substrate at index -1, or reversed if kz < 0.

schrodinger.application.matsci.gsas.GSASIIpwd.SmearAbeles(kz, dq, depth, rho, irho=0, sigma=0)
schrodinger.application.matsci.gsas.GSASIIpwd.makeRefdFFT(Limits, Profile)
schrodinger.application.matsci.gsas.GSASIIpwd.GetStackParms(Layers)
schrodinger.application.matsci.gsas.GSASIIpwd.StackSim(Layers, ctrls, scale=0.0, background={}, limits=[], inst={}, profile=[])

Simulate powder or selected area diffraction pattern from stacking faults using DIFFaX

Parameters
  • Layers (dict) –

    dict with following items

    {'Laue':'-1','Cell':[False,1.,1.,1.,90.,90.,90,1.],
    'Width':[[10.,10.],[False,False]],'Toler':0.01,'AtInfo':{},
    'Layers':[],'Stacking':[],'Transitions':[]}
    

  • ctrls (str) – controls string to be written on DIFFaX controls.dif file

  • scale (float) – scale factor

  • background (dict) – background parameters

  • limits (list) – min/max 2-theta to be calculated

  • inst (dict) – instrument parameters dictionary

  • profile (list) – powder pattern data

Note that parameters all updated in place

schrodinger.application.matsci.gsas.GSASIIpwd.SetPWDRscan(inst, limits, profile)
schrodinger.application.matsci.gsas.GSASIIpwd.SetStackingSF(Layers, debug)
schrodinger.application.matsci.gsas.GSASIIpwd.SetStackingClay(Layers, Type)
schrodinger.application.matsci.gsas.GSASIIpwd.SetCellAtoms(Layers)
schrodinger.application.matsci.gsas.GSASIIpwd.SetStackingTrans(Layers, Nlayers)
schrodinger.application.matsci.gsas.GSASIIpwd.CalcStackingPWDR(Layers, scale, background, limits, inst, profile, debug)
schrodinger.application.matsci.gsas.GSASIIpwd.CalcStackingSADP(Layers, debug)
schrodinger.application.matsci.gsas.GSASIIpwd.makePRFfile(data, MEMtype)

makes Dysnomia .prf control file from Dysnomia GUI controls

Parameters
  • data (dict) – GSAS-II phase data

  • MEMtype (int) – 1 for neutron data with negative scattering lengths 0 otherwise

Returns str

name of Dysnomia control file

schrodinger.application.matsci.gsas.GSASIIpwd.makeMEMfile(data, reflData, MEMtype, DYSNOMIA)

make Dysnomia .mem file of reflection data, etc.

Parameters
  • data (dict) – GSAS-II phase data

  • reflData (list) – GSAS-II reflection data

  • MEMtype (int) – 1 for neutron data with negative scattering lengths 0 otherwise

  • DYSNOMIA (str) – path to dysnomia.exe

schrodinger.application.matsci.gsas.GSASIIpwd.MEMupdateReflData(prfName, data, reflData)

Update reflection data with new Fosq, phase result from Dysnomia

Parameters
  • prfName (str) – phase.mem file name

  • reflData (list) – GSAS-II reflection data

schrodinger.application.matsci.gsas.GSASIIpwd.TestData()

needs a doc string

schrodinger.application.matsci.gsas.GSASIIpwd.test0()
schrodinger.application.matsci.gsas.GSASIIpwd.test1()
schrodinger.application.matsci.gsas.GSASIIpwd.test2(name, delt)
schrodinger.application.matsci.gsas.GSASIIpwd.test3(name, delt)