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