[5572] | 1 | *GSASIIobj: Data objects & Docs* |
---|
| 2 | ================================================= |
---|
| 3 | |
---|
| 4 | *Summary/Contents* |
---|
| 5 | ---------------------------- |
---|
| 6 | |
---|
| 7 | This module defines and/or documents the data structures used in GSAS-II, as well |
---|
| 8 | as provides misc. support routines. |
---|
| 9 | |
---|
| 10 | .. contents:: Section Contents |
---|
| 11 | |
---|
| 12 | .. index:: |
---|
| 13 | single: Parameter names |
---|
| 14 | single: GSAS-II variable naming |
---|
| 15 | |
---|
[5578] | 16 | .. _VarNames_table: |
---|
| 17 | |
---|
[5572] | 18 | Variable names in GSAS-II |
---|
| 19 | ---------------------------- |
---|
| 20 | |
---|
| 21 | Parameter are named using the following pattern, |
---|
| 22 | ``p:h:<var>:n``, where ``<var>`` is a variable name, as shown in the following table. Also, |
---|
| 23 | ``p`` is the phase number, ``h`` is the histogram number, |
---|
| 24 | and ``n`` is the atom parameter number |
---|
| 25 | If a parameter does not depend on a histogram, phase or atom, ``h``, ``p`` and/or ``n`` will be omitted, |
---|
| 26 | so ``p::<var>:n``, ``:h:<var>`` and ``p:h:<var>`` are all valid names. |
---|
| 27 | |
---|
| 28 | .. include:: vars.rst |
---|
| 29 | |
---|
| 30 | .. _Constraints_table: |
---|
| 31 | |
---|
| 32 | .. index:: |
---|
| 33 | single: Constraints object description |
---|
| 34 | single: Data object descriptions; Constraints |
---|
| 35 | |
---|
| 36 | Constraints Tree Item |
---|
| 37 | ---------------------- |
---|
| 38 | |
---|
| 39 | Constraints are stored in a dict, separated into groups. |
---|
| 40 | Note that parameter are named in the following pattern, |
---|
| 41 | p:h:<var>:n, where p is the phase number, h is the histogram number |
---|
| 42 | <var> is a variable name and n is the parameter number. |
---|
| 43 | If a parameter does not depend on a histogram or phase or is unnumbered, that |
---|
| 44 | number is omitted. |
---|
| 45 | Note that the contents of each dict item is a List where each element in the |
---|
| 46 | list is a :ref:`constraint definition objects <Constraint_definitions_table>`. |
---|
| 47 | The constraints in this form are converted in |
---|
| 48 | :func:`GSASIImapvars.ProcessConstraints` to the form used in :mod:`GSASIImapvars` |
---|
| 49 | |
---|
| 50 | The keys in the Constraints dict are: |
---|
| 51 | |
---|
| 52 | .. tabularcolumns:: |l|p{4.5in}| |
---|
| 53 | |
---|
| 54 | ========== ==================================================== |
---|
| 55 | key explanation |
---|
| 56 | ========== ==================================================== |
---|
| 57 | Hist This specifies a list of constraints on |
---|
| 58 | histogram-related parameters, |
---|
| 59 | which will be of form :h:<var>:n. |
---|
| 60 | HAP This specifies a list of constraints on parameters |
---|
| 61 | that are defined for every histogram in each phase |
---|
| 62 | and are of form p:h:<var>:n. |
---|
| 63 | Phase This specifies a list of constraints on phase |
---|
| 64 | parameters, |
---|
| 65 | which will be of form p::<var>:n. |
---|
| 66 | Global This specifies a list of constraints on parameters |
---|
| 67 | that are not tied to a histogram or phase and |
---|
| 68 | are of form ::<var>:n |
---|
| 69 | ========== ==================================================== |
---|
| 70 | |
---|
| 71 | .. _Constraint_definitions_table: |
---|
| 72 | |
---|
| 73 | .. index:: |
---|
| 74 | single: Constraint definition object description |
---|
| 75 | single: Data object descriptions; Constraint Definition |
---|
| 76 | |
---|
| 77 | Each constraint is defined as an item in a list. Each constraint is of form:: |
---|
| 78 | |
---|
| 79 | [[<mult1>, <var1>], [<mult2>, <var2>],..., <fixedval>, <varyflag>, <constype>] |
---|
| 80 | |
---|
| 81 | Where the variable pair list item containing two values [<mult>, <var>], where: |
---|
| 82 | |
---|
| 83 | * <mult> is a multiplier for the constraint (float) |
---|
| 84 | * <var> a :class:`G2VarObj` object. (Note that in very old .gpx files this might be a str with a variable name of form 'p:h:name[:at]') |
---|
| 85 | |
---|
| 86 | Note that the last three items in the list play a special role: |
---|
| 87 | |
---|
| 88 | * <fixedval> is the fixed value for a `constant equation` (``constype=c``) |
---|
| 89 | constraint or is None. For a `New variable` (``constype=f``) constraint, |
---|
| 90 | a variable name can be specified as a str (used for externally |
---|
| 91 | generated constraints) |
---|
| 92 | * <varyflag> is True or False for `New variable` (``constype=f``) constraints |
---|
| 93 | or is None. This indicates if this variable should be refined. |
---|
| 94 | * <constype> is one of four letters, 'e', 'c', 'h', 'f' that determines the type of constraint: |
---|
| 95 | |
---|
| 96 | * 'e' defines a set of equivalent variables. Only the first variable is refined (if the |
---|
| 97 | appropriate refine flag is set) and and all other equivalent variables in the list |
---|
| 98 | are generated from that variable, using the appropriate multipliers. |
---|
| 99 | * 'c' defines a constraint equation of form, |
---|
| 100 | :math:`m_1 \times var_1 + m_2 \times var_2 + ... = c` |
---|
| 101 | * 'h' defines a variable to hold (not vary). Any variable on this list is not varied, |
---|
| 102 | even if its refinement flag is set. Only one [mult,var] pair is allowed in a hold |
---|
| 103 | constraint and the mult value is ignored. |
---|
| 104 | This is of particular value when needing to hold one or more variables where a |
---|
| 105 | single flag controls a set of variables such as, coordinates, |
---|
| 106 | the reciprocal metric tensor or anisotropic displacement parameter. |
---|
| 107 | * 'f' defines a new variable (function) according to relationship |
---|
| 108 | :math:`newvar = m_1 \times var_1 + m_2 \times var_2 + ...` |
---|
| 109 | |
---|
| 110 | .. _Covariance_table: |
---|
| 111 | |
---|
| 112 | .. index:: |
---|
| 113 | single: Covariance description |
---|
| 114 | single: Data object descriptions; Covariance |
---|
| 115 | |
---|
| 116 | Covariance Tree Item |
---|
| 117 | -------------------- |
---|
| 118 | |
---|
| 119 | The Covariance tree item has results from the last least-squares run. They |
---|
| 120 | are stored in a dict with these keys: |
---|
| 121 | |
---|
| 122 | .. tabularcolumns:: |l|l|p{4in}| |
---|
| 123 | |
---|
| 124 | ============= =============== ==================================================== |
---|
| 125 | key sub-key explanation |
---|
| 126 | ============= =============== ==================================================== |
---|
| 127 | newCellDict \ (dict) ith lattice parameters computed by |
---|
| 128 | :func:`GSASIIstrMath.GetNewCellParms` |
---|
| 129 | title \ (str) Name of gpx file(?) |
---|
| 130 | variables \ (list) Values for all N refined variables |
---|
| 131 | (list of float values, length N, |
---|
| 132 | ordered to match varyList) |
---|
| 133 | sig \ (list) Uncertainty values for all N refined variables |
---|
| 134 | (list of float values, length N, |
---|
| 135 | ordered to match varyList) |
---|
| 136 | varyList \ (list of str values, length N) List of directly refined variables |
---|
| 137 | |
---|
| 138 | newAtomDict \ (dict) atom position values computed in |
---|
| 139 | :func:`GSASIIstrMath.ApplyXYZshifts` |
---|
| 140 | Rvals \ (dict) R-factors, GOF, Marquardt value for last |
---|
| 141 | refinement cycle |
---|
| 142 | \ Nobs (int) Number of observed data points |
---|
| 143 | \ Rwp (float) overall weighted profile R-factor (%) |
---|
| 144 | \ chisq (float) :math:`\sum w*(I_{obs}-I_{calc})^2` |
---|
| 145 | for all data. |
---|
| 146 | Note: this is not the reduced :math:`\chi^2`. |
---|
| 147 | \ lamMax (float) Marquardt value applied to Hessian diagonal |
---|
| 148 | \ GOF (float) The goodness-of-fit, aka square root of |
---|
| 149 | the reduced chi squared. |
---|
| 150 | covMatrix \ (np.array) The (NxN) covVariance matrix |
---|
| 151 | ============= =============== ==================================================== |
---|
| 152 | |
---|
| 153 | .. _Phase_table: |
---|
| 154 | |
---|
| 155 | .. index:: |
---|
| 156 | single: Phase object description |
---|
| 157 | single: Data object descriptions; Phase |
---|
| 158 | |
---|
| 159 | Phase Tree Items |
---|
| 160 | ---------------- |
---|
| 161 | |
---|
| 162 | Phase information is stored in the GSAS-II data tree as children of the |
---|
| 163 | Phases item in a dict with keys: |
---|
| 164 | |
---|
| 165 | .. tabularcolumns:: |l|l|p{4in}| |
---|
| 166 | |
---|
| 167 | ========== =============== ===================================================================================================== |
---|
| 168 | key sub-key explanation |
---|
| 169 | ========== =============== ===================================================================================================== |
---|
| 170 | General \ (dict) Overall information for the phase |
---|
| 171 | \ 3Dproj (list of str) projections for 3D pole distribution plots |
---|
| 172 | \ AngleRadii (list of floats) Default radius for each atom used to compute |
---|
| 173 | interatomic angles |
---|
| 174 | \ AtomMass (list of floats) Masses for atoms |
---|
| 175 | \ AtomPtrs (list of int) four locations (cx,ct,cs & cu) to use to pull info |
---|
| 176 | from the atom records |
---|
| 177 | \ AtomTypes (llist of str) Atom types |
---|
| 178 | \ BondRadii (list of floats) Default radius for each atom used to compute |
---|
| 179 | interatomic distances |
---|
| 180 | \ Cell Unit cell parameters & ref. flag |
---|
| 181 | (list with 8 items. All but first item are float.) |
---|
| 182 | |
---|
| 183 | 0: cell refinement flag (True/False), |
---|
| 184 | |
---|
| 185 | 1-3: a, b, c, (:math:`\AA`) |
---|
| 186 | |
---|
| 187 | 4-6: alpha, beta & gamma, (degrees) |
---|
| 188 | |
---|
| 189 | 7: volume (:math:`\AA^3`) |
---|
| 190 | |
---|
| 191 | \ Color (list of (r,b,g) triplets) Colors for atoms |
---|
| 192 | \ Compare (dict) Polygon comparison parameters |
---|
| 193 | \ Data plot type (str) data plot type ('Mustrain', 'Size' or |
---|
| 194 | 'Preferred orientation') for powder data |
---|
| 195 | \ DisAglCtls (dDict) with distance/angle search controls, |
---|
| 196 | which has keys 'Name', 'AtomTypes', |
---|
| 197 | 'BondRadii', 'AngleRadii' which are as above |
---|
| 198 | except are possibly edited. Also contains |
---|
| 199 | 'Factors', which is a 2 element list with |
---|
| 200 | a multiplier for bond and angle search range |
---|
| 201 | [typically (0.85,0.85)]. |
---|
| 202 | \ F000X (float) x-ray F(000) intensity |
---|
| 203 | \ F000N (float) neutron F(000) intensity |
---|
| 204 | \ Flip (dict) Charge flip controls |
---|
| 205 | \ HydIds (dict) geometrically generated hydrogen atoms |
---|
| 206 | \ Isotope (dict) Isotopes for each atom type |
---|
| 207 | \ Isotopes (dict) Scattering lengths for each isotope |
---|
| 208 | combination for each element in phase |
---|
| 209 | \ MCSA controls (dict) Monte Carlo-Simulated Annealing controls |
---|
| 210 | \ Map (dict) Map parameters |
---|
| 211 | \ Mass (float) Mass of unit cell contents in g/mol |
---|
| 212 | \ Modulated (bool) True if phase modulated |
---|
| 213 | \ Mydir (str) Directory of current .gpx file |
---|
| 214 | \ Name (str) Phase name |
---|
| 215 | \ NoAtoms (dict) Number of atoms per unit cell of each type |
---|
| 216 | \ POhkl (list) March-Dollase preferred orientation direction |
---|
| 217 | \ Pawley dmin (float) maximum Q (as d-space) to use for Pawley extraction |
---|
| 218 | \ Pawley dmax (float) minimum Q (as d-space) to use for Pawley extraction |
---|
| 219 | \ Pawley neg wt (float) Restraint value for negative Pawley intensities |
---|
| 220 | \ SGData (object) Space group details as a |
---|
| 221 | :ref:`space group (SGData) <SGData_table>` |
---|
| 222 | object, as defined in :func:`GSASIIspc.SpcGroup`. |
---|
| 223 | \ SH Texture (dict) Spherical harmonic preferred orientation parameters |
---|
| 224 | \ Super (int) dimension of super group (0,1 only) |
---|
| 225 | \ Type (str) phase type (e.g. 'nuclear') |
---|
| 226 | \ Z (dict) Atomic numbers for each atom type |
---|
| 227 | \ doDysnomia (bool) flag for max ent map modification via Dysnomia |
---|
| 228 | \ doPawley (bool) Flag for Pawley intensity extraction |
---|
| 229 | \ vdWRadii (dict) Van der Waals radii for each atom type |
---|
| 230 | ranId \ (int) unique random number Id for phase |
---|
| 231 | pId \ (int) Phase Id number for current project. |
---|
| 232 | Atoms \ (list of lists) Atoms in phase as a list of lists. The outer list |
---|
| 233 | is for each atom, the inner list contains varying |
---|
| 234 | items depending on the type of phase, see |
---|
| 235 | the :ref:`Atom Records <Atoms_table>` description. |
---|
| 236 | Drawing \ (dict) Display parameters |
---|
| 237 | \ Atoms (list of lists) with an entry for each atom that is drawn |
---|
| 238 | \ Plane (list) Controls for contour density plane display |
---|
| 239 | \ Quaternion (4 element np.array) Viewing quaternion |
---|
| 240 | \ Zclip (float) clipping distance in :math:`\AA` |
---|
| 241 | \ Zstep (float) Step to de/increase Z-clip |
---|
| 242 | \ atomPtrs (list) positions of x, type, site sym, ADP flag in Draw Atoms |
---|
| 243 | \ backColor (list) background for plot as and R,G,B triplet |
---|
| 244 | (default = [0, 0, 0], black). |
---|
| 245 | \ ballScale (float) Radius of spheres in ball-and-stick display |
---|
| 246 | \ bondList (dict) Bonds |
---|
| 247 | \ bondRadius (float) Radius of binds in :math:`\AA` |
---|
| 248 | \ cameraPos (float) Viewing position in :math:`\AA` for plot |
---|
| 249 | \ contourLevel (float) map contour level in :math:`e/\AA^3` |
---|
| 250 | \ contourMax (float) map contour maximum |
---|
| 251 | \ depthFog (bool) True if use depthFog on plot - set currently as False |
---|
| 252 | \ ellipseProb (float) Probability limit for display of thermal |
---|
| 253 | ellipsoids in % . |
---|
| 254 | \ magMult (float) multiplier for magnetic moment arrows |
---|
| 255 | \ mapSize (float) x & y dimensions of contourmap (fixed internally) |
---|
| 256 | \ modelView (4,4 array) from openGL drawing transofmation matrix |
---|
| 257 | \ oldxy (list with two floats) previous view point |
---|
| 258 | \ radiusFactor (float) Distance ratio for searching for bonds. Bonds |
---|
| 259 | are located that are within r(Ra+Rb) and (Ra+Rb)/r |
---|
| 260 | where Ra and Rb are the atomic radii. |
---|
| 261 | \ selectedAtoms (list of int values) List of selected atoms |
---|
| 262 | \ showABC (bool) Flag to show view point triplet. True=show. |
---|
| 263 | \ showHydrogen (bool) Flag to control plotting of H atoms. |
---|
| 264 | \ showRigidBodies (bool) Flag to highlight rigid body placement |
---|
| 265 | \ showSlice (bool) flag to show contour map |
---|
| 266 | \ sizeH (float) Size ratio for H atoms |
---|
| 267 | \ unitCellBox (bool) Flag to control display of the unit cell. |
---|
| 268 | \ vdwScale (float) Multiplier of van der Waals radius for display of vdW spheres. |
---|
| 269 | \ viewDir (np.array with three floats) cartesian viewing direction |
---|
| 270 | \ viewPoint (list of lists) First item in list is [x,y,z] |
---|
| 271 | in fractional coordinates for the center of |
---|
| 272 | the plot. Second item list of previous & current |
---|
| 273 | atom number viewed (may be [0,0]) |
---|
| 274 | ISODISTORT \ (dict) contains controls for running ISODISTORT and results from it |
---|
| 275 | \ ISOmethod (int) ISODISTORT method (currently 1 or 4; 2 & 3 not implemented in GSAS-II) |
---|
| 276 | \ ParentCIF (str) parent cif file name for ISODISTORT method 4 |
---|
| 277 | \ ChildCIF (str) child cif file name for ISODISTORT method 4 |
---|
| 278 | \ SGselect (dict) selection list for lattice types in radio result from ISODISTORT method 1 |
---|
| 279 | \ selection (int) chosen selection from radio |
---|
| 280 | \ radio (list) results from ISODISTORT method 1 |
---|
| 281 | \ ChildMatrix (3x3 array) transformation matrix for method 3 (not currently used) |
---|
| 282 | \ ChildSprGp (str) child space group for method 3 (not currently used) |
---|
| 283 | \ ChildCell (str) cell ordering for nonstandard orthorhombic ChildSprGrp in method 3 (not currently used) |
---|
| 284 | \ G2ModeList (list) ISODISTORT mode names |
---|
| 285 | \ modeDispl (list) distortion mode values; refinable parameters |
---|
| 286 | \ ISOmodeDispl (list) distortion mode values as determined in method 4 by ISODISTORT |
---|
| 287 | \ NormList (list) ISODISTORT normalization values; to convert mode value to fractional coordinate dsplacement |
---|
| 288 | \ G2parentCoords (list) full set of parent structure coordinates transformed to child structure; starting basis for mode displacements |
---|
| 289 | \ G2VarList (list) |
---|
| 290 | \ IsoVarList (list) |
---|
| 291 | \ G2coordOffset (list) only adjustible set of parent structure coordinates |
---|
| 292 | \ G2OccVarList (list) |
---|
| 293 | \ Var2ModeMatrix (array) atom variable to distortion mode transformation |
---|
| 294 | \ Mode2VarMatrix (array) distortion mode to atom variable transformation |
---|
| 295 | \ rundata (dict) saved input information for use by ISODISTORT method 1 |
---|
| 296 | |
---|
| 297 | RBModels \ Rigid body assignments (note Rigid body definitions |
---|
| 298 | are stored in their own main top-level tree entry.) |
---|
| 299 | RMC \ (dict) RMCProfile, PDFfit & fullrmc controls |
---|
| 300 | Pawley ref \ (list) Pawley reflections |
---|
| 301 | Histograms \ (dict of dicts) The key for the outer dict is |
---|
| 302 | the histograms tied to this phase. The inner |
---|
| 303 | dict contains the combined phase/histogram |
---|
| 304 | parameters for items such as scale factors, |
---|
| 305 | size and strain parameters. The following are the |
---|
| 306 | keys to the inner dict. (dict) |
---|
| 307 | \ Babinet (dict) For protein crystallography. Dictionary with two |
---|
| 308 | entries, 'BabA', 'BabU' |
---|
| 309 | \ Extinction (list of float, bool) Extinction parameter |
---|
| 310 | \ Flack (list of [float, bool]) Flack parameter & refine flag |
---|
| 311 | \ HStrain (list of two lists) Hydrostatic strain. The first is |
---|
| 312 | a list of the HStrain parameters (1, 2, 3, 4, or 6 |
---|
| 313 | depending on unit cell), the second is a list of boolean |
---|
| 314 | refinement parameters (same length) |
---|
| 315 | \ Histogram (str) The name of the associated histogram |
---|
| 316 | \ Layer Disp (list of [float, bool]) Layer displacement in beam direction & refine flag |
---|
| 317 | \ LeBail (bool) Flag for LeBail extraction |
---|
| 318 | \ Mustrain (list) Microstrain parameters, in order: |
---|
| 319 | |
---|
| 320 | 0. Type, one of u'isotropic', u'uniaxial', u'generalized' |
---|
| 321 | 1. Isotropic/uniaxial parameters - list of 3 floats |
---|
| 322 | 2. Refinement flags - list of 3 bools |
---|
| 323 | 3. Microstrain axis - list of 3 ints, [h, k, l] |
---|
| 324 | 4. Generalized mustrain parameters - list of 2-6 floats, depending on space group |
---|
| 325 | 5. Generalized refinement flags - list of bools, corresponding to the parameters of (4) |
---|
| 326 | \ Pref.Ori. (list) Preferred Orientation. List of eight parameters. |
---|
| 327 | Items marked SH are only used for Spherical Harmonics. |
---|
| 328 | |
---|
| 329 | 0. (str) Type, 'MD' for March-Dollase or 'SH' for Spherical Harmonics |
---|
| 330 | 1. (float) Value |
---|
| 331 | 2. (bool) Refinement flag |
---|
| 332 | 3. (list) Preferred direction, list of ints, [h, k, l] |
---|
| 333 | 4. (int) SH - number of terms |
---|
| 334 | 5. (dict) SH - |
---|
| 335 | 6. (list) SH |
---|
| 336 | 7. (float) SH |
---|
| 337 | \ Scale (list of [float, bool]) Phase fraction & refine flag |
---|
| 338 | \ Size List of crystallite size parameters, in order: |
---|
| 339 | |
---|
| 340 | 0. (str) Type, one of u'isotropic', u'uniaxial', u'ellipsoidal' |
---|
| 341 | 1. (list) Isotropic/uniaxial parameters - list of 3 floats |
---|
| 342 | 2. (list) Refinement flags - list of 3 bools |
---|
| 343 | 3. (list) Size axis - list of 3 ints, [h, k, l] |
---|
| 344 | 4. (list) Ellipsoidal size parameters - list of 6 floats |
---|
| 345 | 5. (list) Ellipsoidal refinement flags - list of bools, corresponding to the parameters of (4) |
---|
| 346 | \ Use (bool) True if this histogram is to be used in refinement |
---|
| 347 | MCSA \ (dict) Monte-Carlo simulated annealing parameters |
---|
| 348 | ========== =============== ===================================================================================================== |
---|
| 349 | |
---|
| 350 | .. _RBData_table: |
---|
| 351 | |
---|
| 352 | .. index:: |
---|
| 353 | single: Rigid Body Data description |
---|
| 354 | single: Data object descriptions; Rigid Body Data |
---|
| 355 | |
---|
| 356 | Rigid Body Objects |
---|
| 357 | ------------------ |
---|
| 358 | |
---|
| 359 | Rigid body descriptions are available for two types of rigid bodies: 'Vector' |
---|
| 360 | and 'Residue'. Vector rigid bodies are developed by a sequence of translations each |
---|
| 361 | with a refinable magnitude and Residue rigid bodies are described as Cartesian coordinates |
---|
| 362 | with defined refinable torsion angles. |
---|
| 363 | |
---|
| 364 | .. tabularcolumns:: |l|l|p{4in}| |
---|
| 365 | |
---|
| 366 | ========== =============== ==================================================== |
---|
| 367 | key sub-key explanation |
---|
| 368 | ========== =============== ==================================================== |
---|
| 369 | Vector RBId (dict of dict) vector rigid bodies |
---|
| 370 | \ AtInfo (dict) Drad, Color: atom drawing radius & color for each atom type |
---|
| 371 | \ RBname (str) Name assigned by user to rigid body |
---|
| 372 | \ VectMag (list) vector magnitudes in :math:`\AA` |
---|
| 373 | \ rbXYZ (list of 3 float Cartesian coordinates for Vector rigid body ) |
---|
| 374 | \ rbRef (list of 3 int & 1 bool) 3 assigned reference atom nos. in rigid body for origin |
---|
| 375 | definition, use center of atoms flag |
---|
| 376 | \ VectRef (list of bool refinement flags for VectMag values ) |
---|
| 377 | \ rbTypes (list of str) Atom types for each atom in rigid body |
---|
| 378 | \ rbVect (list of lists) Cartesian vectors for each translation used to build rigid body |
---|
| 379 | \ useCount (int) Number of times rigid body is used in any structure |
---|
| 380 | Residue RBId (dict of dict) residue rigid bodies |
---|
| 381 | \ AtInfo (dict) Drad, Color: atom drawing radius & color for each atom type |
---|
| 382 | \ RBname (str) Name assigned by user to rigid body |
---|
| 383 | \ rbXYZ (list of 3 float) Cartesian coordinates for Residue rigid body |
---|
| 384 | \ rbTypes (list of str) Atom types for each atom in rigid body |
---|
| 385 | \ atNames (list of str) Names of each atom in rigid body (e.g. C1,N2...) |
---|
| 386 | \ rbRef (list of 3 int & 1 bool) 3 assigned reference atom nos. in rigid body for origin |
---|
| 387 | definition, use center of atoms flag |
---|
| 388 | \ rbSeq (list) Orig,Piv,angle,Riding : definition of internal rigid body |
---|
| 389 | torsion; origin atom (int), pivot atom (int), torsion angle (float), |
---|
| 390 | riding atoms (list of int) |
---|
| 391 | \ SelSeq (int,int) used by SeqSizer to identify objects |
---|
| 392 | \ useCount (int)Number of times rigid body is used in any structure |
---|
| 393 | RBIds \ (dict) unique Ids generated upon creation of each rigid body |
---|
| 394 | \ Vector (list) Ids for each Vector rigid body |
---|
| 395 | \ Residue (list) Ids for each Residue rigid body |
---|
| 396 | ========== =============== ==================================================== |
---|
| 397 | |
---|
| 398 | .. _SGData_table: |
---|
| 399 | |
---|
| 400 | .. index:: |
---|
| 401 | single: Space Group Data description |
---|
| 402 | single: Data object descriptions; Space Group Data |
---|
| 403 | |
---|
| 404 | Space Group Objects |
---|
| 405 | ------------------- |
---|
| 406 | |
---|
| 407 | Space groups are interpreted by :func:`GSASIIspc.SpcGroup` |
---|
| 408 | and the information is placed in a SGdata object |
---|
| 409 | which is a dict with these keys. Magnetic ones are marked "mag" |
---|
| 410 | |
---|
| 411 | .. tabularcolumns:: |l|p{4.5in}| |
---|
| 412 | |
---|
| 413 | ========== ======================================================================================== |
---|
| 414 | key explanation |
---|
| 415 | ========== ======================================================================================== |
---|
| 416 | BNSlattsym mag - (str) BNS magnetic space group symbol and centering vector |
---|
| 417 | GenFlg mag - (list) symmetry generators indices |
---|
| 418 | GenSym mag - (list) names for each generator |
---|
| 419 | MagMom mag - (list) "time reversals" for each magnetic operator |
---|
| 420 | MagPtGp mag - (str) Magnetic point group symbol |
---|
| 421 | MagSpGrp mag - (str) Magnetic space group symbol |
---|
| 422 | OprNames mag - (list) names for each space group operation |
---|
| 423 | SGCen (np.array) Symmetry cell centering vectors. A (n,3) np.array |
---|
| 424 | of centers. Will always have at least one row: ``np.array([[0, 0, 0]])`` |
---|
| 425 | SGFixed (bool) Only True if phase mported from a magnetic cif file |
---|
| 426 | then the space group can not be changed by the user because |
---|
| 427 | operator set from cif may be nonstandard |
---|
| 428 | SGGen (list) generators |
---|
| 429 | SGGray (bool) True if space group is a gray group (incommensurate magnetic structures) |
---|
| 430 | SGInv (bool) True if centrosymmetric, False if not |
---|
| 431 | SGLatt (str)Lattice centering type. Will be one of |
---|
| 432 | P, A, B, C, I, F, R |
---|
| 433 | SGLaue (str) one of the following 14 Laue classes: |
---|
| 434 | -1, 2/m, mmm, 4/m, 4/mmm, 3R, |
---|
| 435 | 3mR, 3, 3m1, 31m, 6/m, 6/mmm, m3, m3m |
---|
| 436 | SGOps (list) symmetry operations as a list of form |
---|
| 437 | ``[[M1,T1], [M2,T2],...]`` |
---|
| 438 | where :math:`M_n` is a 3x3 np.array |
---|
| 439 | and :math:`T_n` is a length 3 np.array. |
---|
| 440 | Atom coordinates are transformed where the |
---|
| 441 | Asymmetric unit coordinates [X is (x,y,z)] |
---|
| 442 | are transformed using |
---|
| 443 | :math:`X^\prime = M_n*X+T_n` |
---|
| 444 | SGPolax (str) Axes for space group polarity. Will be one of |
---|
| 445 | '', 'x', 'y', 'x y', 'z', 'x z', 'y z', |
---|
| 446 | 'xyz'. In the case where axes are arbitrary |
---|
| 447 | '111' is used (P 1, and ?). |
---|
| 448 | SGPtGrp (str) Point group of the space group |
---|
| 449 | SGUniq unique axis if monoclinic. Will be |
---|
| 450 | a, b, or c for monoclinic space groups. |
---|
| 451 | Will be blank for non-monoclinic. |
---|
| 452 | SGSpin mag - (list) of spin flip operatiors (+1 or -1) for the space group operations |
---|
| 453 | SGSys (str) symmetry unit cell: type one of |
---|
| 454 | 'triclinic', 'monoclinic', 'orthorhombic', |
---|
| 455 | 'tetragonal', 'rhombohedral', 'trigonal', |
---|
| 456 | 'hexagonal', 'cubic' |
---|
| 457 | SSGK1 (list) Superspace multipliers |
---|
| 458 | SpGrp (str) space group symbol |
---|
| 459 | SpnFlp mag - (list) Magnetic spin flips for every magnetic space group operator |
---|
| 460 | ========== ======================================================================================== |
---|
| 461 | |
---|
| 462 | .. _SSGData_table: |
---|
| 463 | |
---|
| 464 | .. index:: |
---|
| 465 | single: Superspace Group Data description |
---|
| 466 | single: Data object descriptions; Superspace Group Data |
---|
| 467 | |
---|
| 468 | Superspace groups [3+1] are interpreted by :func:`GSASIIspc.SSpcGroup` |
---|
| 469 | and the information is placed in a SSGdata object |
---|
| 470 | which is a dict with these keys: |
---|
| 471 | |
---|
| 472 | .. tabularcolumns:: |l|p{4.5in}| |
---|
| 473 | |
---|
| 474 | ========== ==================================================== |
---|
| 475 | key explanation |
---|
| 476 | ========== ==================================================== |
---|
| 477 | SSGCen (list) 4D cell centering vectors [0,0,0,0] at least |
---|
| 478 | SSGK1 (list) Superspace multipliers |
---|
| 479 | SSGOps (list) 4D symmetry operations as [M,T] so that M*x+T = x' |
---|
| 480 | SSpGrp (str) superspace group symbol extension to space group |
---|
| 481 | symbol, accidental spaces removed |
---|
| 482 | modQ (list) modulation/propagation vector |
---|
| 483 | modSymb (list of str) Modulation symbols |
---|
| 484 | ========== ==================================================== |
---|
| 485 | |
---|
| 486 | |
---|
| 487 | Phase Information |
---|
| 488 | -------------------- |
---|
| 489 | |
---|
| 490 | .. index:: |
---|
| 491 | single: Phase information record description |
---|
| 492 | |
---|
| 493 | Phase information is placed in one of the following keys: |
---|
| 494 | |
---|
| 495 | .. tabularcolumns:: |l|p{4.5in}| |
---|
| 496 | |
---|
| 497 | ========== ============================================================== |
---|
| 498 | key explanation |
---|
| 499 | ========== ============================================================== |
---|
| 500 | General Overall information about a phase |
---|
| 501 | Histograms Information about each histogram linked to the |
---|
| 502 | current phase as well as parameters that |
---|
| 503 | are defined for each histogram and phase |
---|
| 504 | (such as sample peak widths and preferred |
---|
| 505 | orientation parameters. |
---|
| 506 | Atoms Contains a list of atoms, as described in the |
---|
| 507 | :ref:`Atom Records <Atoms_table>` description. |
---|
| 508 | Drawing Parameters that determine how the phase is |
---|
| 509 | displayed, including a list of atoms to be |
---|
| 510 | included, as described in the |
---|
| 511 | :ref:`Drawing Atom Records <Drawing_atoms_table>` |
---|
| 512 | description |
---|
| 513 | MCSA Monte-Carlo simulated annealing parameters |
---|
| 514 | pId The index of each phase in the project, numbered |
---|
| 515 | starting at 0 |
---|
| 516 | ranId An int value with a unique value for each phase |
---|
| 517 | RBModels A list of dicts with parameters for each |
---|
| 518 | rigid body inserted into the current phase, |
---|
| 519 | as defined in the |
---|
| 520 | :ref:`Rigid Body Insertions <Rigid_Body_Insertions>`. |
---|
| 521 | Note that the rigid bodies are defined as |
---|
| 522 | :ref:`Rigid Body Objects <RBData_table>` |
---|
| 523 | RMC PDF modeling parameters |
---|
| 524 | Pawley ref Pawley refinement parameters |
---|
| 525 | |
---|
| 526 | ========== ============================================================== |
---|
| 527 | |
---|
| 528 | .. _Atoms_table: |
---|
| 529 | |
---|
| 530 | .. index:: |
---|
| 531 | single: Atoms record description |
---|
| 532 | single: Data object descriptions; Atoms record |
---|
| 533 | |
---|
| 534 | -------------------- |
---|
| 535 | Atom Records |
---|
| 536 | -------------------- |
---|
| 537 | |
---|
| 538 | If ``phasedict`` points to the phase information in the data tree, then |
---|
| 539 | atoms are contained in a list of atom records (list) in |
---|
| 540 | ``phasedict['Atoms']``. Also needed to read atom information |
---|
| 541 | are four pointers, ``cx,ct,cs,cia = phasedict['General']['AtomPtrs']``, |
---|
| 542 | which define locations in the atom record, as shown below. Items shown are |
---|
| 543 | always present; additional ones for macromolecular phases are marked 'mm', |
---|
| 544 | and those for magnetic structures are marked 'mg' |
---|
| 545 | |
---|
| 546 | .. tabularcolumns:: |l|p{4.5in}| |
---|
| 547 | |
---|
| 548 | ============== ==================================================== |
---|
| 549 | location explanation |
---|
| 550 | ============== ==================================================== |
---|
| 551 | ct-4 mm - (str) residue number |
---|
| 552 | ct-3 mm - (str) residue name (e.g. ALA) |
---|
| 553 | ct-2 mm - (str) chain label |
---|
| 554 | ct-1 (str) atom label |
---|
| 555 | ct (str) atom type |
---|
| 556 | ct+1 (str) refinement flags; combination of 'F', 'X', 'U', 'M' |
---|
| 557 | cx,cx+1,cx+2 (3 floats) the x,y and z coordinates |
---|
| 558 | cx+3 (float) site occupancy |
---|
| 559 | cx+4,cx+5,cx+6 mg - (list) atom magnetic moment along a,b,c in Bohr magnetons |
---|
| 560 | cs (str) site symmetry |
---|
| 561 | cs+1 (int) site multiplicity |
---|
| 562 | cia (str) ADP flag: Isotropic ('I') or Anisotropic ('A') |
---|
| 563 | cia+1 (float) Uiso |
---|
| 564 | cia+2...cia+7 (6 floats) U11, U22, U33, U12, U13, U23 |
---|
| 565 | atom[cia+8] (int) unique atom identifier |
---|
| 566 | |
---|
| 567 | ============== ==================================================== |
---|
| 568 | |
---|
| 569 | .. _Drawing_atoms_table: |
---|
| 570 | |
---|
| 571 | .. index:: |
---|
| 572 | single: Drawing atoms record description |
---|
| 573 | single: Data object descriptions; Drawing atoms record |
---|
| 574 | |
---|
| 575 | ---------------------------- |
---|
| 576 | Drawing Atom Records |
---|
| 577 | ---------------------------- |
---|
| 578 | |
---|
| 579 | If ``phasedict`` points to the phase information in the data tree, then |
---|
| 580 | drawing atoms are contained in a list of drawing atom records (list) in |
---|
| 581 | ``phasedict['Drawing']['Atoms']``. Also needed to read atom information |
---|
| 582 | are four pointers, ``cx,ct,cs,ci = phasedict['Drawing']['AtomPtrs']``, |
---|
| 583 | which define locations in the atom record, as shown below. Items shown are |
---|
| 584 | always present; additional ones for macromolecular phases are marked 'mm', |
---|
| 585 | and those for magnetic structures are marked 'mg' |
---|
| 586 | |
---|
| 587 | .. tabularcolumns:: |l|p{4.5in}| |
---|
| 588 | |
---|
| 589 | ============== =================================================================================== |
---|
| 590 | location explanation |
---|
| 591 | ============== =================================================================================== |
---|
| 592 | ct-4 mm - (str) residue number |
---|
| 593 | ct-3 mm - (str) residue name (e.g. ALA) |
---|
| 594 | ct-2 mm - (str) chain label |
---|
| 595 | ct-1 (str) atom label |
---|
| 596 | ct (str) atom type |
---|
| 597 | cx,cx+1,cx+2 (3 floats) the x,y and z coordinates |
---|
| 598 | cx+3,cx+4,cx+5 mg - (3 floats) atom magnetic moment along a,b,c in Bohr magnetons |
---|
| 599 | cs-1 (str) Sym Op symbol; sym. op number + unit cell id (e.g. '1,0,-1') |
---|
| 600 | cs (str) atom drawing style; e.g. 'balls & sticks' |
---|
| 601 | cs+1 (str) atom label style (e.g. 'name') |
---|
| 602 | cs+2 (int) atom color (RBG triplet) |
---|
| 603 | cs+3 (str) ADP flag: Isotropic ('I') or Anisotropic ('A') |
---|
| 604 | cs+4 (float) Uiso |
---|
| 605 | cs+5...cs+11 (6 floats) U11, U22, U33, U12, U13, U23 |
---|
| 606 | ci (int) unique atom identifier; matches source atom Id in Atom Records |
---|
| 607 | ============== =================================================================================== |
---|
| 608 | |
---|
| 609 | .. _Rigid_Body_Insertions: |
---|
| 610 | |
---|
| 611 | ---------------------------- |
---|
| 612 | Rigid Body Insertions |
---|
| 613 | ---------------------------- |
---|
| 614 | |
---|
| 615 | If ``phasedict`` points to the phase information in the data tree, then |
---|
| 616 | rigid body information is contained in list(s) in |
---|
| 617 | ``phasedict['RBModels']['Residue']`` and/or ``phasedict['RBModels']['Vector']`` |
---|
| 618 | for each rigid body inserted into the current phase. |
---|
| 619 | |
---|
| 620 | .. tabularcolumns:: |l|p{4.5in}| |
---|
| 621 | |
---|
| 622 | ============== =================================================================================== |
---|
| 623 | key explanation |
---|
| 624 | ============== =================================================================================== |
---|
| 625 | fixOrig Should the origin be fixed (when editing, not the refinement flag) |
---|
| 626 | Ids Ids for assignment of atoms in the rigid body |
---|
| 627 | numChain Chain number for macromolecular fits |
---|
| 628 | Orient Orientation of the RB as a quaternion and a refinement flag (' ', 'A' or 'AV') |
---|
| 629 | OrientVec Orientation of the RB expressed as a vector and azimuthal rotation angle |
---|
| 630 | Orig Origin of the RB in fractional coordinates and refinement flag (bool) |
---|
| 631 | RBId References the unique ID of a rigid body in the |
---|
| 632 | :ref:`Rigid Body Objects <RBData_table>` |
---|
| 633 | RBname The name for the rigid body (str) |
---|
| 634 | AtomFrac The atom fractions for the rigid body |
---|
| 635 | ThermalMotion The thermal motion description for the rigid body, which includes a choice for |
---|
| 636 | the model and can include TLS parameters or an overall Uiso value. |
---|
| 637 | Torsions Defines the torsion angle and refinement flag for each torsion defined in |
---|
| 638 | the :ref:`Rigid Body Object <RBData_table>` |
---|
| 639 | ============== =================================================================================== |
---|
| 640 | |
---|
| 641 | .. _Powder_table: |
---|
| 642 | |
---|
| 643 | .. index:: |
---|
| 644 | single: Powder data object description |
---|
| 645 | single: Data object descriptions; Powder Data |
---|
| 646 | |
---|
| 647 | Powder Diffraction Tree Items |
---|
| 648 | ----------------------------- |
---|
| 649 | |
---|
| 650 | Every powder diffraction histogram is stored in the GSAS-II data tree |
---|
| 651 | with a top-level entry named beginning with the string "PWDR ". The |
---|
| 652 | diffraction data for that information are directly associated with |
---|
| 653 | that tree item and there are a series of children to that item. The |
---|
| 654 | routines :func:`GSASIIdataGUI.GSASII.GetUsedHistogramsAndPhasesfromTree` |
---|
| 655 | and :func:`GSASIIstrIO.GetUsedHistogramsAndPhases` will |
---|
| 656 | load this information into a dictionary where the child tree name is |
---|
| 657 | used as a key, and the information in the main entry is assigned |
---|
| 658 | a key of ``Data``, as outlined below. |
---|
| 659 | |
---|
| 660 | .. tabularcolumns:: |p{1in}|p{1in}|p{4in}| |
---|
| 661 | |
---|
| 662 | ====================== =============== =========================================================== |
---|
| 663 | key sub-key explanation |
---|
| 664 | ====================== =============== =========================================================== |
---|
| 665 | Comments \ (list of str) Text strings extracted from the original powder |
---|
| 666 | data header. These cannot be changed by the user; |
---|
| 667 | it may be empty. |
---|
| 668 | Limits \ (list) two two element lists, as [[Ld,Hd],[L,H]] |
---|
| 669 | where L and Ld are the current and default lowest |
---|
| 670 | two-theta value to be used and |
---|
| 671 | where H and Hd are the current and default highest |
---|
| 672 | two-theta value to be used. |
---|
| 673 | Reflection Lists \ (dict of dicts) with an entry for each phase in the |
---|
| 674 | histogram. The contents of each dict item |
---|
| 675 | is a dict containing reflections, as described in |
---|
| 676 | the :ref:`Powder Reflections <PowderRefl_table>` |
---|
| 677 | description. |
---|
| 678 | Instrument Parameters \ (dict) The instrument parameters uses different dicts |
---|
| 679 | for the constant wavelength (CW) and time-of-flight (TOF) |
---|
| 680 | cases. See below for the descriptions of each. |
---|
| 681 | wtFactor \ (float) A weighting factor to increase or decrease |
---|
| 682 | the leverage of data in the histogram . |
---|
| 683 | A value of 1.0 weights the data with their |
---|
| 684 | standard uncertainties and a larger value |
---|
| 685 | increases the weighting of the data (equivalent |
---|
| 686 | to decreasing the uncertainties). |
---|
| 687 | Sample Parameters \ (dict) Parameters that describe how |
---|
| 688 | the data were collected, as listed |
---|
| 689 | below. Refinable parameters are a list containing |
---|
| 690 | a float and a bool, where the second value |
---|
| 691 | specifies if the value is refined, otherwise |
---|
| 692 | the value is a float unless otherwise noted. |
---|
| 693 | \ Scale The histogram scale factor (refinable) |
---|
| 694 | \ Absorption The sample absorption coefficient as |
---|
| 695 | :math:`\mu r` where r is the radius |
---|
| 696 | (refinable). Only valid for Debye-Scherrer geometry. |
---|
| 697 | \ SurfaceRoughA Surface roughness parameter A as defined by |
---|
| 698 | Surotti, *J. Appl. Cryst*, **5**, 325-331, 1972. |
---|
| 699 | (refinable - only valid for Bragg-Brentano geometry) |
---|
| 700 | \ SurfaceRoughB Surface roughness parameter B (refinable - |
---|
| 701 | only valid for Bragg-Brentano geometry) |
---|
| 702 | \ DisplaceX, Sample displacement from goniometer center |
---|
| 703 | DisplaceY where Y is along the beam direction and |
---|
| 704 | X is perpendicular. Units are :math:`\mu m` |
---|
| 705 | (refinable). |
---|
| 706 | \ Phi, Chi, Goniometer sample setting angles, in degrees. |
---|
| 707 | Omega |
---|
| 708 | \ Gonio. radius Radius of the diffractometer in mm |
---|
| 709 | \ InstrName (str) A name for the instrument, used in preparing |
---|
| 710 | a CIF . |
---|
| 711 | \ Force, Variables that describe how the measurement |
---|
| 712 | Temperature, was performed. Not used directly in |
---|
| 713 | Humidity, any computations. |
---|
| 714 | Pressure, |
---|
| 715 | Voltage |
---|
| 716 | \ ranId (int) The random-number Id for the histogram |
---|
| 717 | (same value as where top-level key is ranId) |
---|
| 718 | \ Type (str) Type of diffraction data, may be 'Debye-Scherrer' |
---|
| 719 | or 'Bragg-Brentano' . |
---|
| 720 | hId \ (int) The number assigned to the histogram when |
---|
| 721 | the project is loaded or edited (can change) |
---|
| 722 | ranId \ (int) A random number id for the histogram |
---|
| 723 | that does not change |
---|
| 724 | Background \ (list) The background is stored as a list with where |
---|
| 725 | the first item in the list is list and the second |
---|
| 726 | item is a dict. The list contains the background |
---|
| 727 | function and its coefficients; the dict contains |
---|
| 728 | Debye diffuse terms and background peaks. |
---|
| 729 | (TODO: this needs to be expanded.) |
---|
| 730 | Data \ (list) The data consist of a list of 6 np.arrays |
---|
| 731 | containing in order: |
---|
| 732 | |
---|
| 733 | 0. the x-postions (two-theta in degrees), |
---|
| 734 | 1. the intensity values (Yobs), |
---|
| 735 | 2. the weights for each Yobs value |
---|
| 736 | 3. the computed intensity values (Ycalc) |
---|
| 737 | 4. the background values |
---|
| 738 | 5. Yobs-Ycalc |
---|
| 739 | ====================== =============== =========================================================== |
---|
| 740 | |
---|
| 741 | .. _CWPowder_table: |
---|
| 742 | |
---|
| 743 | .. index:: |
---|
| 744 | single: Powder data CW Instrument Parameters |
---|
| 745 | |
---|
| 746 | ----------------------------- |
---|
| 747 | CW Instrument Parameters |
---|
| 748 | ----------------------------- |
---|
| 749 | |
---|
| 750 | Instrument Parameters are placed in a list of two dicts, |
---|
| 751 | where the keys in the first dict are listed below. Note that the dict contents are different for |
---|
| 752 | constant wavelength (CW) vs. time-of-flight (TOF) histograms. |
---|
| 753 | The value for each item is a list containing three values: the initial value, the current value |
---|
| 754 | and a refinement flag which can have a value of True, False or 0 where 0 indicates a value that |
---|
| 755 | cannot be refined. The first and second values are floats unless otherwise noted. |
---|
| 756 | Items not refined are noted as [*] |
---|
| 757 | |
---|
| 758 | .. tabularcolumns:: |l|p{1in}|p{4in}| |
---|
| 759 | |
---|
| 760 | ======================== =============== =========================================================== |
---|
| 761 | key sub-key explanation |
---|
| 762 | ======================== =============== =========================================================== |
---|
| 763 | Instrument Parameters[0] Type [*] (str) Histogram type: |
---|
| 764 | * 'PXC' for constant wavelength x-ray |
---|
| 765 | * 'PNC' for constant wavelength neutron |
---|
| 766 | \ Bank [*] (int) Data set number in a multidata file (usually 1) |
---|
| 767 | \ Lam (float) Specifies a wavelength in :math:`\AA` |
---|
| 768 | \ Lam1 [*] (float) Specifies the primary wavelength in |
---|
| 769 | :math:`\AA`, used in place of Lam |
---|
| 770 | when an :math:`\alpha_1, \alpha_2` |
---|
| 771 | source is used. |
---|
| 772 | \ Lam2 [*] (float) Specifies the secondary wavelength in |
---|
| 773 | :math:`\AA`, used with Lam1 |
---|
| 774 | \ I(L2)/I(L1) (float) Ratio of Lam2 to Lam1, used with Lam1 |
---|
| 775 | \ Zero (float) Two-theta zero correction in *degrees* |
---|
| 776 | \ Azimuth [*] (float) Azimuthal setting angle for data recorded with differing setting angles |
---|
| 777 | \ U, V, W (float) Cagliotti profile coefficients |
---|
| 778 | for Gaussian instrumental broadening, where the |
---|
| 779 | FWHM goes as |
---|
| 780 | :math:`U \tan^2\theta + V \tan\theta + W` |
---|
| 781 | \ X, Y, Z (float) Cauchy (Lorentzian) instrumental broadening coefficients |
---|
| 782 | \ SH/L (float) Variant of the Finger-Cox-Jephcoat asymmetric |
---|
| 783 | peak broadening ratio. Note that this is the |
---|
| 784 | sum of S/L and H/L where S is |
---|
| 785 | sample height, H is the slit height and |
---|
| 786 | L is the goniometer diameter. |
---|
| 787 | \ Polariz. (float) Polarization coefficient. |
---|
| 788 | Instrument Parameters[1] (empty dict) |
---|
| 789 | ======================== =============== =========================================================== |
---|
| 790 | |
---|
| 791 | .. _TOFPowder_table: |
---|
| 792 | |
---|
| 793 | .. index:: |
---|
| 794 | single: Powder data TOF Instrument Parameters |
---|
| 795 | |
---|
| 796 | ----------------------------- |
---|
| 797 | TOF Instrument Parameters |
---|
| 798 | ----------------------------- |
---|
| 799 | |
---|
| 800 | Instrument Parameters are also placed in a list of two dicts, |
---|
| 801 | where the keys in each dict listed below, but here for |
---|
| 802 | time-of-flight (TOF) histograms. |
---|
| 803 | The value for each item is a list containing three values: the initial value, the current value |
---|
| 804 | and a refinement flag which can have a value of True, False or 0 where 0 indicates a value that |
---|
| 805 | cannot be refined. The first and second values are floats unless otherwise noted. |
---|
| 806 | Items not refined are noted as [*] |
---|
| 807 | |
---|
| 808 | .. tabularcolumns:: |l|p{1.5in}|p{4in}| |
---|
| 809 | |
---|
| 810 | ======================== =============== =========================================================== |
---|
| 811 | key sub-key explanation |
---|
| 812 | ======================== =============== =========================================================== |
---|
| 813 | Instrument Parameters[0] Type [*] (str) Histogram type: |
---|
| 814 | * 'PNT' for time of flight neutron |
---|
| 815 | \ Bank (int) Data set number in a multidata file |
---|
| 816 | \ 2-theta [*] (float) Nominal scattering angle for the detector |
---|
| 817 | \ fltPath [*] (float) Total flight path source-sample-detector |
---|
| 818 | \ Azimuth [*] (float) Azimuth angle for detector right hand rotation |
---|
| 819 | from horizontal away from source |
---|
| 820 | \ difC,difA, (float) Diffractometer constants for conversion of d-spacing to TOF |
---|
| 821 | difB in microseconds |
---|
| 822 | \ Zero (float) Zero point offset (microseconds) |
---|
| 823 | \ alpha (float) Exponential rise profile coefficients |
---|
| 824 | \ beta-0 (float) Exponential decay profile coefficients |
---|
| 825 | beta-1 |
---|
| 826 | beta-q |
---|
| 827 | \ sig-0 (float) Gaussian profile coefficients |
---|
| 828 | sig-1 |
---|
| 829 | sig-2 |
---|
| 830 | sig-q |
---|
| 831 | \ X,Y,Z (float) Lorentzian profile coefficients |
---|
| 832 | Instrument Parameters[1] Pdabc (list of 4 float lists) Originally created for use in gsas as optional tables |
---|
| 833 | of d, alp, bet, d-true; for a reflection alpha & beta are obtained via interpolation |
---|
| 834 | from the d-spacing and these tables. The d-true column is apparently unused. |
---|
| 835 | ======================== =============== =========================================================== |
---|
| 836 | |
---|
| 837 | |
---|
| 838 | .. _PowderRefl_table: |
---|
| 839 | |
---|
| 840 | .. index:: |
---|
| 841 | single: Powder reflection object description |
---|
| 842 | single: Data object descriptions; Powder Reflections |
---|
| 843 | |
---|
| 844 | Powder Reflection Data Structure |
---|
| 845 | -------------------------------- |
---|
| 846 | |
---|
| 847 | For every phase in a histogram, the ``Reflection Lists`` value is a dict |
---|
| 848 | one element of which is `'RefList'`, which is a np.array containing |
---|
| 849 | reflections. The columns in that array are documented below. |
---|
| 850 | |
---|
| 851 | ========== ==================================================== |
---|
| 852 | index explanation |
---|
| 853 | ========== ==================================================== |
---|
| 854 | 0,1,2 h,k,l (float) |
---|
| 855 | 3 (int) multiplicity |
---|
| 856 | 4 (float) d-space, :math:`\AA` |
---|
| 857 | 5 (float) pos, two-theta |
---|
| 858 | 6 (float) sig, Gaussian width |
---|
| 859 | 7 (float) gam, Lorenzian width |
---|
| 860 | 8 (float) :math:`F_{obs}^2` |
---|
| 861 | 9 (float) :math:`F_{calc}^2` |
---|
| 862 | 10 (float) reflection phase, in degrees |
---|
| 863 | 11 (float) intensity correction for reflection, this times |
---|
| 864 | :math:`F_{obs}^2` or :math:`F_{calc}^2` gives Iobs or Icalc |
---|
| 865 | 12 (float) Preferred orientation correction |
---|
| 866 | 13 (float) Transmission (absorption correction) |
---|
| 867 | 14 (float) Extinction correction |
---|
| 868 | ========== ==================================================== |
---|
| 869 | |
---|
| 870 | .. _Xtal_table: |
---|
| 871 | |
---|
| 872 | .. index:: |
---|
| 873 | single: Single Crystal data object description |
---|
| 874 | single: Data object descriptions; Single crystal data |
---|
| 875 | |
---|
| 876 | Single Crystal Tree Items |
---|
| 877 | ------------------------- |
---|
| 878 | |
---|
| 879 | Every single crystal diffraction histogram is stored in the GSAS-II data tree |
---|
| 880 | with a top-level entry named beginning with the string "HKLF ". The |
---|
| 881 | diffraction data for that information are directly associated with |
---|
| 882 | that tree item and there are a series of children to that item. The |
---|
| 883 | routines :func:`GSASIIdataGUI.GSASII.GetUsedHistogramsAndPhasesfromTree` |
---|
| 884 | and :func:`GSASIIstrIO.GetUsedHistogramsAndPhases` will |
---|
| 885 | load this information into a dictionary where the child tree name is |
---|
| 886 | used as a key, and the information in the main entry is assigned |
---|
| 887 | a key of ``Data``, as outlined below. |
---|
| 888 | |
---|
| 889 | .. tabularcolumns:: |l|l|p{4in}| |
---|
| 890 | |
---|
| 891 | ====================== =============== ==================================================== |
---|
| 892 | key sub-key explanation |
---|
| 893 | ====================== =============== ==================================================== |
---|
| 894 | Data \ (dict) that contains the |
---|
| 895 | reflection table, |
---|
| 896 | as described in the |
---|
| 897 | :ref:`Single Crystal Reflections |
---|
| 898 | <XtalRefl_table>` |
---|
| 899 | description. |
---|
| 900 | |
---|
| 901 | Instrument Parameters \ (list) containing two dicts where the possible |
---|
| 902 | keys in each dict are listed below. The value |
---|
| 903 | for most items is a list containing two values: |
---|
| 904 | the initial value, the current value. |
---|
| 905 | The first and second |
---|
| 906 | values are floats unless otherwise noted. |
---|
| 907 | \ Lam (two floats) Specifies a wavelength in :math:`\AA` |
---|
| 908 | \ Type (two str values) Histogram type : |
---|
| 909 | * 'SXC' for constant wavelength x-ray |
---|
| 910 | * 'SNC' for constant wavelength neutron |
---|
| 911 | * 'SNT' for time of flight neutron |
---|
| 912 | * 'SEC' for constant wavelength electrons (e.g. micro-ED) |
---|
| 913 | \ InstrName (str) A name for the instrument, used in preparing a CIF |
---|
| 914 | wtFactor \ (float) A weighting factor to increase or decrease |
---|
| 915 | the leverage of data in the histogram. |
---|
| 916 | A value of 1.0 weights the data with their |
---|
| 917 | standard uncertainties and a larger value |
---|
| 918 | increases the weighting of the data (equivalent |
---|
| 919 | to decreasing the uncertainties). |
---|
| 920 | |
---|
| 921 | hId \ (int) The number assigned to the histogram when |
---|
| 922 | the project is loaded or edited (can change) |
---|
| 923 | ranId \ (int) A random number id for the histogram |
---|
| 924 | that does not change |
---|
| 925 | ====================== =============== ==================================================== |
---|
| 926 | |
---|
| 927 | .. _XtalRefl_table: |
---|
| 928 | |
---|
| 929 | .. index:: |
---|
| 930 | single: Single Crystal reflection object description |
---|
| 931 | single: Data object descriptions; Single Crystal Reflections |
---|
| 932 | |
---|
| 933 | Single Crystal Reflection Data Structure |
---|
| 934 | ---------------------------------------- |
---|
| 935 | |
---|
| 936 | For every single crystal a histogram, the ``'Data'`` item contains |
---|
| 937 | the structure factors as an np.array in item `'RefList'`. |
---|
| 938 | The columns in that array are documented below. |
---|
| 939 | |
---|
| 940 | .. tabularcolumns:: |l|p{4in}| |
---|
| 941 | |
---|
| 942 | ========== ==================================================== |
---|
| 943 | index explanation |
---|
| 944 | ========== ==================================================== |
---|
| 945 | 0,1,2 (float) h,k,l |
---|
| 946 | 3 (int) multiplicity |
---|
| 947 | 4 (float) d-space, :math:`\AA` |
---|
| 948 | 5 (float) :math:`F_{obs}^2` |
---|
| 949 | 6 (float) :math:`\sigma(F_{obs}^2)` |
---|
| 950 | 7 (float) :math:`F_{calc}^2` |
---|
| 951 | 8 (float) :math:`F_{obs}^2T` |
---|
| 952 | 9 (float) :math:`F_{calc}^2T` |
---|
| 953 | 10 (float) reflection phase, in degrees |
---|
| 954 | 11 (float) intensity correction for reflection, this times |
---|
| 955 | :math:`F_{obs}^2` or :math:`F_{calc}^2` |
---|
| 956 | gives Iobs or Icalc |
---|
| 957 | ========== ==================================================== |
---|
| 958 | |
---|
| 959 | .. _Image_table: |
---|
| 960 | |
---|
| 961 | .. index:: |
---|
| 962 | image: Image data object description |
---|
| 963 | image: Image object descriptions |
---|
| 964 | |
---|
| 965 | Image Data Structure |
---|
| 966 | -------------------- |
---|
| 967 | |
---|
| 968 | Every 2-dimensional image is stored in the GSAS-II data tree |
---|
| 969 | with a top-level entry named beginning with the string "IMG ". The |
---|
| 970 | image data are directly associated with that tree item and there |
---|
| 971 | are a series of children to that item. The routines :func:`GSASIIdataGUI.GSASII.GetUsedHistogramsAndPhasesfromTree` |
---|
| 972 | and :func:`GSASIIstrIO.GetUsedHistogramsAndPhases` will |
---|
| 973 | load this information into a dictionary where the child tree name is |
---|
| 974 | used as a key, and the information in the main entry is assigned |
---|
| 975 | a key of ``Data``, as outlined below. |
---|
| 976 | |
---|
| 977 | .. tabularcolumns:: |l|l|p{4in}| |
---|
| 978 | |
---|
| 979 | ====================== ====================== ==================================================== |
---|
| 980 | key sub-key explanation |
---|
| 981 | ====================== ====================== ==================================================== |
---|
| 982 | Comments \ (list of str) Text strings extracted from the original image data |
---|
| 983 | header or a metafile. These cannot be changed by |
---|
| 984 | the user; it may be empty. |
---|
| 985 | Image Controls azmthOff (float) The offset to be applied to an azimuthal |
---|
| 986 | value. Accomodates |
---|
| 987 | detector orientations other than with the detector |
---|
| 988 | X-axis |
---|
| 989 | horizontal. |
---|
| 990 | \ background image (list:str,float) The name of a tree item ("IMG ...") that is to be subtracted |
---|
| 991 | during image integration multiplied by value. It must have the same size/shape as |
---|
| 992 | the integrated image. NB: value < 0 for subtraction. |
---|
| 993 | \ calibrant (str) The material used for determining the position/orientation |
---|
| 994 | of the image. The data is obtained from :func:`ImageCalibrants` |
---|
| 995 | and UserCalibrants.py (supplied by user). |
---|
| 996 | \ calibdmin (float) The minimum d-spacing used during the last calibration run. |
---|
| 997 | \ calibskip (int) The number of expected diffraction lines skipped during the last |
---|
| 998 | calibration run. |
---|
| 999 | \ center (list:floats) The [X,Y] point in detector coordinates (mm) where the direct beam |
---|
| 1000 | strikes the detector plane as determined by calibration. This point |
---|
| 1001 | does not have to be within the limits of the detector boundaries. |
---|
| 1002 | \ centerAzm (bool) If True then the azimuth reported for the integrated slice |
---|
| 1003 | of the image is at the center line otherwise it is at the leading edge. |
---|
| 1004 | \ color (str) The name of the colormap used to display the image. Default = 'Paired'. |
---|
| 1005 | \ cutoff (float) The minimum value of I/Ib for a point selected in a diffraction ring for |
---|
| 1006 | calibration calculations. See pixLimit for details as how point is found. |
---|
| 1007 | \ DetDepth (float) Coefficient for penetration correction to distance; accounts for diffraction |
---|
| 1008 | ring offset at higher angles. Optionally determined by calibration. |
---|
| 1009 | \ DetDepthRef (bool) If True then refine DetDepth during calibration/recalibration calculation. |
---|
| 1010 | \ distance (float) The distance (mm) from sample to detector plane. |
---|
| 1011 | \ ellipses (list:lists) Each object in ellipses is a list [center,phi,radii,color] where |
---|
| 1012 | center (list) is location (mm) of the ellipse center on the detector plane, phi is the |
---|
| 1013 | rotation of the ellipse minor axis from the x-axis, and radii are the minor & major |
---|
| 1014 | radii of the ellipse. If radii[0] is negative then parameters describe a hyperbola. Color |
---|
| 1015 | is the selected drawing color (one of 'b', 'g' ,'r') for the ellipse/hyperbola. |
---|
| 1016 | \ edgemin (float) Not used; parameter in EdgeFinder code. |
---|
| 1017 | \ fullIntegrate (bool) If True then integrate over full 360 deg azimuthal range. |
---|
| 1018 | \ GonioAngles (list:floats) The 'Omega','Chi','Phi' goniometer angles used for this image. |
---|
| 1019 | Required for texture calculations. |
---|
| 1020 | \ invert_x (bool) If True display the image with the x-axis inverted. |
---|
| 1021 | \ invert_y (bool) If True display the image with the y-axis inverted. |
---|
| 1022 | \ IOtth (list:floats) The minimum and maximum 2-theta values to be used for integration. |
---|
| 1023 | \ LRazimuth (list:floats) The minimum and maximum azimuth values to be used for integration. |
---|
| 1024 | \ Oblique (list:float,bool) If True apply a detector absorption correction using the value to the |
---|
| 1025 | intensities obtained during integration. |
---|
| 1026 | \ outAzimuths (int) The number of azimuth pie slices. |
---|
| 1027 | \ outChannels (int) The number of 2-theta steps. |
---|
| 1028 | \ pixelSize (list:ints) The X,Y dimensions (microns) of each pixel. |
---|
| 1029 | \ pixLimit (int) A box in the image with 2*pixLimit+1 edges is searched to find the maximum. |
---|
| 1030 | This value (I) along with the minimum (Ib) in the box is reported by :func:`GSASIIimage.ImageLocalMax` |
---|
| 1031 | and subject to cutoff in :func:`GSASIIimage.makeRing`. |
---|
| 1032 | Locations are used to construct rings of points for calibration calcualtions. |
---|
| 1033 | \ PolaVal (list:float,bool) If type='SASD' and if True, apply polarization correction to intensities from |
---|
| 1034 | integration using value. |
---|
| 1035 | \ rings (list:lists) Each entry is [X,Y,dsp] where X & Y are lists of x,y coordinates around a |
---|
| 1036 | diffraction ring with the same d-spacing (dsp) |
---|
| 1037 | \ ring (list) The x,y coordinates of the >5 points on an inner ring |
---|
| 1038 | selected by the user, |
---|
| 1039 | \ Range (list) The minimum & maximum values of the image |
---|
| 1040 | \ rotation (float) The angle between the x-axis and the vector about which the |
---|
| 1041 | detector is tilted. Constrained to -180 to 180 deg. |
---|
| 1042 | \ SampleShape (str) Currently only 'Cylinder'. Sample shape for Debye-Scherrer experiments; used for absorption |
---|
| 1043 | calculations. |
---|
| 1044 | \ SampleAbs (list: float,bool) Value of absorption coefficient for Debye-Scherrer experimnents, flag if True |
---|
| 1045 | to cause correction to be applied. |
---|
| 1046 | \ setDefault (bool) If True the use the image controls values for all new images to be read. (might be removed) |
---|
| 1047 | \ setRings (bool) If True then display all the selected x,y ring positions (vida supra rings) used in the calibration. |
---|
| 1048 | \ showLines (bool) If True then isplay the integration limits to be used. |
---|
| 1049 | \ size (list:int) The number of pixels on the image x & y axes |
---|
| 1050 | \ type (str) One of 'PWDR', 'SASD' or 'REFL' for powder, small angle or reflectometry data, respectively. |
---|
| 1051 | \ tilt (float) The angle the detector normal makes with the incident beam; range -90 to 90. |
---|
| 1052 | \ wavelength (float) The radiation wavelength (:math:`\AA`) as entered by the user |
---|
| 1053 | (or someday obtained from the image header). |
---|
| 1054 | Masks Arcs (list: lists) Each entry [2-theta,[azimuth[0],azimuth[1]],thickness] describes an arc mask |
---|
| 1055 | to be excluded from integration |
---|
| 1056 | \ Frames (list:lists) Each entry describes the x,y points (3 or more - mm) that describe a frame outside |
---|
| 1057 | of which is excluded from recalibration and integration. Only one frame is allowed. |
---|
| 1058 | \ Points (list:lists) Each entry [x,y,radius] (mm) describes an excluded spot on the image to be excluded |
---|
| 1059 | from integration. |
---|
| 1060 | \ Polygons (list:lists) Each entry is a list of 3+ [x,y] points (mm) that describe a polygon on the image |
---|
| 1061 | to be excluded from integration. |
---|
| 1062 | \ Rings (list: lists) Each entry [2-theta,thickness] describes a ring mask |
---|
| 1063 | to be excluded from integration. |
---|
| 1064 | \ Thresholds (list:[tuple,list]) [(Imin,Imax),[Imin,Imax]] This gives lower and upper limits for points on the image to be included |
---|
| 1065 | in integrsation. The tuple is the image intensity limits and the list are those set by the user. |
---|
| 1066 | \ SpotMask (dict: int & array) |
---|
| 1067 | 'esdMul'(int) number of standard deviations above mean ring intensity to mask |
---|
| 1068 | 'spotMask' (bool array) the spot mask for every pixel in image |
---|
| 1069 | |
---|
| 1070 | Stress/Strain Sample phi (float) Sample rotation about vertical axis. |
---|
| 1071 | \ Sample z (float) Sample translation from the calibration sample position (for Sample phi = 0) |
---|
| 1072 | These will be restricted by space group symmetry; result of strain fit refinement. |
---|
| 1073 | \ Type (str) 'True' or 'Conventional': The strain model used for the calculation. |
---|
| 1074 | \ d-zero (list:dict) Each item is for a diffraction ring on the image; all items are from the same phase |
---|
| 1075 | and are used to determine the strain tensor. |
---|
| 1076 | The dictionary items are: |
---|
| 1077 | 'Dset': (float) True d-spacing for the diffraction ring; entered by the user. |
---|
| 1078 | 'Dcalc': (float) Average calculated d-spacing determined from strain coeff. |
---|
| 1079 | 'Emat': (list: float) The strain tensor elements e11, e12 & e22 (e21=e12, rest are 0) |
---|
| 1080 | 'Esig': (list: float) Esds for Emat from fitting. |
---|
| 1081 | 'pixLimit': (int) Search range to find highest point on ring for each data point |
---|
| 1082 | 'cutoff': (float) I/Ib cutoff for searching. |
---|
| 1083 | 'ImxyObs': (list: lists) [[X],[Y]] observed points to be used for strain calculations. |
---|
| 1084 | 'ImtaObs': (list: lists) [[d],[azm]] transformed via detector calibration from ImxyObs. |
---|
| 1085 | 'ImtaCalc': (list: lists [[d],[azm]] calculated d-spacing & azimuth from fit. |
---|
| 1086 | |
---|
| 1087 | ====================== ====================== ==================================================== |
---|
| 1088 | |
---|
| 1089 | .. _parmDict_table: |
---|
| 1090 | |
---|
| 1091 | .. index:: |
---|
| 1092 | single: Parameter dictionary |
---|
| 1093 | |
---|
| 1094 | Parameter Dictionary |
---|
| 1095 | ------------------------- |
---|
| 1096 | |
---|
| 1097 | The parameter dictionary contains all of the variable parameters for the refinement. |
---|
| 1098 | The dictionary keys are the name of the parameter (<phase>:<hist>:<name>:<atom>). |
---|
| 1099 | It is prepared in two ways. When loaded from the tree |
---|
| 1100 | (in :meth:`GSASIIdataGUI.GSASII.MakeLSParmDict` and |
---|
| 1101 | :meth:`GSASIIIO.ExportBaseclass.loadParmDict`), |
---|
| 1102 | the values are lists with two elements: ``[value, refine flag]`` |
---|
| 1103 | |
---|
| 1104 | When loaded from the GPX file (in |
---|
| 1105 | :func:`GSASIIstrMain.Refine` and :func:`GSASIIstrMain.SeqRefine`), the value in the |
---|
| 1106 | dict is the actual parameter value (usually a float, but sometimes a |
---|
| 1107 | letter or string flag value (such as I or A for iso/anisotropic). |
---|
| 1108 | |
---|
| 1109 | Texture implementation |
---|
| 1110 | ------------------------------ |
---|
| 1111 | |
---|
| 1112 | There are two different places where texture can be treated in GSAS-II. |
---|
| 1113 | One is for mitigating the effects of texture in a structural refinement. |
---|
| 1114 | The other is for texture characterization. |
---|
| 1115 | |
---|
| 1116 | For reducing the effect of texture in a structural refinement |
---|
| 1117 | there are entries labeled preferred orientation in each phase's |
---|
| 1118 | data tab. Two different approaches can be used for this, the March-Dollase |
---|
| 1119 | model and spherical harmonics. |
---|
| 1120 | |
---|
| 1121 | For the March-Dollase model, one axis in reciprocal space is designated as |
---|
| 1122 | unique (defaulting to the 001 axis) and reflections are corrected |
---|
| 1123 | according to the angle they make with this axis depending on |
---|
| 1124 | the March-Dollase ratio. (If unity, no correction is made). |
---|
| 1125 | The ratio can be greater than one or less than one depending on if |
---|
| 1126 | crystallites oriented along the designated axis are |
---|
| 1127 | overrepresented or underrepresented. For most crystal systems there is an |
---|
| 1128 | obvious choice for the direction of the unique axis and then only a single |
---|
| 1129 | term needs to be refined. If the number is close to 1, then the correction |
---|
| 1130 | is not needed. |
---|
| 1131 | |
---|
| 1132 | The second method for reducing the effect of texture in a structural |
---|
| 1133 | refinement is to create a crystallite orientation probability surface as an |
---|
| 1134 | expansion in terms spherical harmonic functions. Only functions consistent with |
---|
| 1135 | cylindrical diffraction suymmetry and having texture symmetry |
---|
| 1136 | consistent with the Laue class of phase are used and are allowed, |
---|
| 1137 | so the higher the symmetry the fewer terms that are available for a given spherical harmonics order. |
---|
| 1138 | To use this correction, select the lowest order that provides |
---|
| 1139 | refinable terms and perform a refinement. If the texture index remains close to |
---|
| 1140 | one, then the correction is not needed. If a significant improvement is |
---|
| 1141 | noted in the profile Rwp, one may wish to see if a higher order expansion |
---|
| 1142 | gives an even larger improvement. |
---|
| 1143 | |
---|
| 1144 | To characterize texture in a material, generally one needs data collected with the |
---|
| 1145 | sample at multiple orientations or, for TOF, with detectors at multiple |
---|
| 1146 | locations around the sample. In this case the detector orientation is given in |
---|
| 1147 | each histogram's Sample Parameters and the sample's orientation is described |
---|
| 1148 | with the Euler angles specifed on the phase's Texture tab, which is also |
---|
| 1149 | where the texture type (cylindrical, rolling,...) and the spherical |
---|
| 1150 | harmonic order is selected. This should not be used with a single dataset and |
---|
| 1151 | should not be used if the preferred orientations corrections are used. |
---|
| 1152 | |
---|
| 1153 | The coordinate system used for texture characterization is defined where |
---|
| 1154 | the sample coordinates (Psi, gamma) are defined with an instrument coordinate |
---|
| 1155 | system (I, J, K) such that K is normal to the diffraction plane and J is coincident with the |
---|
| 1156 | direction of the incident radiation beam toward the source. We further define |
---|
| 1157 | a standard set of right-handed goniometer eulerian angles (Omega, Chi, Phi) so that Omega and Phi are |
---|
| 1158 | rotations about K and Chi is a rotation about J when Omega = 0. Finally, as the sample |
---|
| 1159 | may be mounted so that the sample coordinate system (Is, Js, Ks) does not coincide with |
---|
| 1160 | the instrument coordinate system (I, J, K), we define three eulerian sample rotation angles |
---|
| 1161 | (Omega-s, Chi-s, Phi-s) that describe the rotation from (Is, Js, Ks) to (I, J, K). The sample rotation |
---|
| 1162 | angles are defined so that with the goniometer angles at zero Omega-s and Phi-s are rotations |
---|
| 1163 | about K and Chi-s is a rotation about J. |
---|
| 1164 | |
---|
| 1165 | Three typical examples: |
---|
| 1166 | |
---|
| 1167 | 1) Bragg-Brentano laboratory diffractometer: Chi=0 |
---|
| 1168 | 2) Debye-Scherrer counter detector; sample capillary axis perpendicular to diffraction plane: Chi=90 |
---|
| 1169 | 3) Debye-Scherrer 2D area detector positioned directly behind sample; sample capillary axis horizontal; Chi=0 |
---|
| 1170 | |
---|
| 1171 | NB: The area detector azimuthal angle will equal 0 in horizontal plane to right as viewed from x-ray source and will equal |
---|
| 1172 | 90 at vertical "up" direction. |
---|
| 1173 | |
---|
| 1174 | ISODISTORT implementation |
---|
| 1175 | ------------------------------ |
---|
| 1176 | |
---|
| 1177 | CIFs prepared with the ISODISTORT web site |
---|
| 1178 | https://stokes.byu.edu/iso/isodistort_version5.6.1/isodistort.php |
---|
| 1179 | [B. J. Campbell, H. T. Stokes, D. E. Tanner, and D. M. Hatch, "ISODISPLACE: An Internet Tool for Exploring Structural Distortions." |
---|
| 1180 | J. Appl. Cryst. 39, 607-614 (2006).] can be read into GSAS-II using import CIF. This will cause constraints to be established for |
---|
| 1181 | structural distortion modes read from the CIF. At present, of the five types of modes only displacive(``_iso_displacivemode``...) |
---|
| 1182 | and occupancy (``_iso_occupancymode``...) are processed. Not yet processed: ``_iso_magneticmode``..., |
---|
| 1183 | ``_iso_rotationalmode``... & ``_iso_strainmode``... |
---|
| 1184 | |
---|
| 1185 | The CIF importer :mod:`G2phase_CIF` implements class :class:`G2phase_CIF.CIFPhaseReader` which offers two methods associated |
---|
| 1186 | with ISODISTORT (ID) input. Method :meth:`G2phase_CIF.CIFPhaseReader.ISODISTORT_test` checks to see if a CIF block contains |
---|
| 1187 | the loops with ``_iso_displacivemode_label`` or ``_iso_occupancymode_label`` items. If so, method |
---|
| 1188 | :meth:`G2phase_CIF.CIFPhaseReader.ISODISTORT_proc` is called to read and interpret them. The results are placed into the |
---|
| 1189 | reader object's ``.Phase`` class variable as a dict item with key ``'ISODISTORT'``. |
---|
| 1190 | |
---|
| 1191 | Note that each mode ID has a long label with a name such as Pm-3m[1/2,1/2,1/2]R5+(a,a,0)[La:b:dsp]T1u(a). Function |
---|
| 1192 | :func:`G2phase_CIF.ISODISTORT_shortLbl` is used to create a short name for this, such as R5_T1u(a) which is made unique |
---|
| 1193 | by addition of _n if the short name is duplicated. As each mode is processed, a constraint corresponding to that mode is |
---|
| 1194 | created and is added to list in the reader object's ``.Constraints`` class variable. Items placed into that list can either |
---|
| 1195 | be a list, which corresponds to a function (new var) type :ref:`constraint definition <Constraints_table>` entry, or an item |
---|
| 1196 | can be a dict, which provides help information for each constraint. |
---|
| 1197 | |
---|
| 1198 | ------------------------------ |
---|
| 1199 | Displacive modes |
---|
| 1200 | ------------------------------ |
---|
| 1201 | |
---|
| 1202 | The coordinate variables, as named by ISODISTORT, are placed in ``.Phase['ISODISTORT']['IsoVarList']`` and the |
---|
| 1203 | corresponding :class:`GSASIIobj.G2VarObj` objects for each are placed in ``.Phase['ISODISTORT']['G2VarList']``. |
---|
| 1204 | The mode variables, as named by ISODISTORT, are placed in ``.Phase['ISODISTORT']['IsoModeList']`` and the |
---|
| 1205 | corresponding :class:`GSASIIobj.G2VarObj` objects for each are placed in ``.Phase['ISODISTORT']['G2ModeList']``. |
---|
| 1206 | [Use ``str(G2VarObj)`` to get the variable name from the G2VarObj object, but note that the phase number, *n*, for the prefix |
---|
| 1207 | "*n*::" cannot be determined as the phase number is not yet assigned.] |
---|
| 1208 | |
---|
| 1209 | Displacive modes are a bit complex in that they relate to delta displacements, relative to an offset value for each coordinate, |
---|
| 1210 | and because the modes are normalized. While GSAS-II also uses displacements, these are added to the coordinates after |
---|
| 1211 | each refinement cycle and then the delta values are set to zero. |
---|
| 1212 | ISODISTORT uses fixed offsets (subtracted from the actual position |
---|
| 1213 | to obtain the delta values) that are taken from the parent structure coordinate and the initial offset value |
---|
| 1214 | (in ``_iso_deltacoordinate_value``) and these are placed in |
---|
| 1215 | ``.Phase['ISODISTORT']['G2coordOffset']`` in the same order as ``.Phase['ISODISTORT']['G2ModeList']``, |
---|
| 1216 | ``.Phase['ISODISTORT']['IsoVarList']`` and ''.Phase[ISODISTORT']['G2parentCoords']''.' |
---|
| 1217 | |
---|
| 1218 | The normalization factors (which the delta values are divided by) |
---|
| 1219 | are taken from ``_iso_displacivemodenorm_value`` and are placed in ``.Phase['ISODISTORT']['NormList']`` in the same |
---|
| 1220 | order as as ``...['IsoModeList']`` and ``...['G2ModeList']``. |
---|
| 1221 | |
---|
| 1222 | The CIF contains a sparse matrix, from the ``loop_`` containing ``_iso_displacivemodematrix_value`` which provides the equations |
---|
| 1223 | for determining the mode values from the coordinates, that matrix is placed in ``.Phase['ISODISTORT']['Mode2VarMatrix']``. |
---|
| 1224 | The matrix is inverted to produce ``.Phase['ISODISTORT']['Var2ModeMatrix']``, which determines how to compute the |
---|
| 1225 | mode values from the delta coordinate values. These values are used for the in :func:`GSASIIconstrGUI.ShowIsoDistortCalc`, |
---|
| 1226 | which shows coordinate and mode values, the latter with s.u. values. |
---|
| 1227 | |
---|
| 1228 | ------------------------------ |
---|
| 1229 | Occupancy modes |
---|
| 1230 | ------------------------------ |
---|
| 1231 | |
---|
| 1232 | |
---|
| 1233 | The delta occupancy variables, as named by ISODISTORT, are placed in |
---|
| 1234 | ``.Phase['ISODISTORT']['OccVarList']`` and the corresponding :class:`GSASIIobj.G2VarObj` objects for each are placed |
---|
| 1235 | in ``.Phase['ISODISTORT']['G2OccVarList']``. The mode variables, as named by ISODISTORT, are placed in |
---|
| 1236 | ``.Phase['ISODISTORT']['OccModeList']`` and the corresponding :class:`GSASIIobj.G2VarObj` objects for each are placed |
---|
| 1237 | in ``.Phase['ISODISTORT']['G2OccModeList']``. |
---|
| 1238 | |
---|
| 1239 | Occupancy modes, like Displacive modes, are also refined as delta values. However, GSAS-II directly refines the fractional |
---|
| 1240 | occupancies. Offset values for each atom, are taken from ``_iso_occupancy_formula`` and are placed in |
---|
| 1241 | ``.Phase['ISODISTORT']['ParentOcc]``. (Offset values are subtracted from the actual position to obtain the delta values.) |
---|
| 1242 | Modes are normalized (where the mode values are divided by the normalization factor) are taken from ``_iso_occupancymodenorm_value`` |
---|
| 1243 | and are placed in ``.Phase['ISODISTORT']['OccNormList']`` in the same order as as ``...['OccModeList']`` and |
---|
| 1244 | ``...['G2OccModeList']``. |
---|
| 1245 | |
---|
| 1246 | The CIF contains a sparse matrix, from the ``loop_`` containing ``_iso_occupancymodematrix_value``, which provides the |
---|
| 1247 | equations for determining the mode values from the coordinates. That matrix is placed in ``.Phase['ISODISTORT']['Occ2VarMatrix']``. |
---|
| 1248 | The matrix is inverted to produce ``.Phase['ISODISTORT']['Var2OccMatrix']``, which determines how to compute the |
---|
| 1249 | mode values from the delta coordinate values. |
---|
| 1250 | |
---|
| 1251 | |
---|
| 1252 | ------------------------------ |
---|
| 1253 | Mode Computations |
---|
| 1254 | ------------------------------ |
---|
| 1255 | |
---|
| 1256 | Constraints are processed after the CIF has been read in :meth:`GSASIIdataGUI.GSASII.OnImportPhase` or |
---|
| 1257 | :meth:`GSASIIscriptable.G2Project.add_phase` by moving them from the reader object's ``.Constraints`` |
---|
| 1258 | class variable to the Constraints tree entry's ['Phase'] list (for list items defining constraints) or |
---|
| 1259 | the Constraints tree entry's ['_Explain'] dict (for dict items defining constraint help information) |
---|
| 1260 | |
---|
| 1261 | The information in ``.Phase['ISODISTORT']`` is used in :func:`GSASIIconstrGUI.ShowIsoDistortCalc` which shows coordinate and mode |
---|
| 1262 | values, the latter with s.u. values. This can be called from the Constraints and Phase/Atoms tree items. |
---|
| 1263 | |
---|
| 1264 | Before each refinement, constraints are processed as :ref:`described elsewhere <Constraints_processing>`. After a refinement |
---|
| 1265 | is complete, :func:`GSASIIstrIO.PrintIndependentVars` shows the shifts and s.u.'s on the refined modes, |
---|
| 1266 | using GSAS-II values, but :func:`GSASIIstrIO.PrintISOmodes` prints the ISODISTORT modes as computed in the web site. |
---|
| 1267 | |
---|
| 1268 | |
---|
| 1269 | .. _ParameterLimits: |
---|
| 1270 | |
---|
| 1271 | .. index:: |
---|
| 1272 | single: Parameter limits |
---|
| 1273 | |
---|
| 1274 | Parameter Limits |
---|
| 1275 | ------------------------------ |
---|
| 1276 | |
---|
| 1277 | One of the most often requested "enhancements" for GSAS-II would be the inclusion |
---|
| 1278 | of constraints to force parameters such as occupancies or Uiso values to stay within |
---|
| 1279 | expected ranges. While it is possible for users to supply their own restraints that would |
---|
| 1280 | perform this by supplying an appropriate expression with the "General" restraints, the |
---|
| 1281 | GSAS-II authors do not feel that use of restraints or constraints are a good solution for |
---|
| 1282 | this common problem where parameters refine to non-physical values. This is because when |
---|
| 1283 | this occurs, most likely one of the following cases is occurring: |
---|
| 1284 | |
---|
| 1285 | #. there is a significant problem |
---|
| 1286 | with the model, for example for an x-ray fit if an O atom is placed where a S is actually |
---|
| 1287 | present, the Uiso will refine artificially small or the occupancy much larger than unity |
---|
| 1288 | to try to compensate for the missing electrons; or |
---|
| 1289 | |
---|
| 1290 | #. the data are simply insensitive |
---|
| 1291 | to the parameter or combination of parameters, for example unless very high-Q data |
---|
| 1292 | are included, the effects of a occupancy and Uiso value can have compensating effects, |
---|
| 1293 | so an assumption must be made; likewise, with neutron data natural-abundance V atoms |
---|
| 1294 | are nearly invisible due to weak coherent scattering. No parameters can be fit for a |
---|
| 1295 | V atom with neutrons. |
---|
| 1296 | |
---|
| 1297 | #. the parameter is non-physical (such as a negative Uiso value) but within |
---|
| 1298 | two sigma (sigma = standard uncertainty, aka e.s.d.) of a reasonable value, |
---|
| 1299 | in which case the |
---|
| 1300 | value is not problematic as it is experimentally indistinguishable from an |
---|
| 1301 | expected value. |
---|
| 1302 | |
---|
| 1303 | #. there is a systematic problem with the data (experimental error) |
---|
| 1304 | |
---|
| 1305 | In all these cases, this situation needs to be reviewed by a crystallographer to decide |
---|
| 1306 | how to best determine a structural model for these data. An implementation with a constraint |
---|
| 1307 | or restraint is likely to simply hide the problem from the user, making it more probable |
---|
| 1308 | that a poor model choice is obtained. |
---|
| 1309 | |
---|
| 1310 | What GSAS-II does implement is to allow users to specify ranges for parameters |
---|
| 1311 | that works by disabling |
---|
| 1312 | refinement of parameters that refine beyond either a lower limit or an upper limit, where |
---|
| 1313 | either or both may be optionally specified. Parameters limits are specified in the Controls |
---|
| 1314 | tree entry in dicts named as ``Controls['parmMaxDict']`` and ``Controls['parmMinDict']``, where |
---|
| 1315 | the keys are :class:`G2VarObj` objects corresponding to standard GSAS-II variable |
---|
| 1316 | (see :func:`getVarDescr` and :func:`CompileVarDesc`) names, where a |
---|
| 1317 | wildcard ('*') may optionally be used for histogram number or atom number |
---|
| 1318 | (phase number is intentionally not allowed as a wildcard as it makes little sense |
---|
| 1319 | to group the same parameter together different phases). Note |
---|
| 1320 | that :func:`prmLookup` is used to see if a name matches a wildcard. The upper or lower limit |
---|
| 1321 | is placed into these dicts as a float value. These values can be edited using the window |
---|
| 1322 | created by the Calculate/"View LS parms" menu command or in scripting with the |
---|
| 1323 | :meth:`GSASIIscriptable.G2Project.set_Controls` function. |
---|
| 1324 | In the GUI, a checkbox labeled "match all histograms/atoms" is used to insert a wildcard |
---|
| 1325 | into the appropriate part of the variable name. |
---|
| 1326 | |
---|
| 1327 | When a refinement is conducted, routine :func:`GSASIIstrMain.dropOOBvars` is used to |
---|
| 1328 | find parameters that have refined to values outside their limits. If this occurs, the parameter |
---|
| 1329 | is set to the limiting value and the variable name is added to a list of frozen variables |
---|
| 1330 | (as a :class:`G2VarObj` objects) kept in a list in the |
---|
| 1331 | ``Controls['parmFrozen']`` dict. In a sequential refinement, this is kept separate for |
---|
| 1332 | each histogram as a list in |
---|
| 1333 | ``Controls['parmFrozen'][histogram]`` (where the key is the histogram name) or as a list in |
---|
| 1334 | ``Controls['parmFrozen']['FrozenList']`` for a non-sequential fit. |
---|
| 1335 | This allows different variables |
---|
| 1336 | to be frozen in each section of a sequential fit. |
---|
| 1337 | Frozen parameters are not included in refinements through removal from the |
---|
| 1338 | list of parameters to be refined (``varyList``) in :func:`GSASIIstrMain.Refine` or |
---|
| 1339 | :func:`GSASIIstrMain.SeqRefine`. |
---|
| 1340 | The data window for the Controls tree item shows the number of Frozen variables and |
---|
| 1341 | the individual variables can be viewed with the Calculate/"View LS parms" menu window or |
---|
| 1342 | obtained with :meth:`GSASIIscriptable.G2Project.get_Frozen`. |
---|
| 1343 | Once a variable is frozen, it will not be refined in any |
---|
| 1344 | future refinements unless the the variable is removed (manually) from the list. This can also |
---|
| 1345 | be done with the Calculate/"View LS parms" menu window or |
---|
| 1346 | :meth:`GSASIIscriptable.G2Project.set_Frozen`. |
---|
| 1347 | |
---|
| 1348 | |
---|
| 1349 | .. seealso:: |
---|
| 1350 | :class:`G2VarObj` |
---|
| 1351 | :func:`getVarDescr` |
---|
| 1352 | :func:`CompileVarDesc` |
---|
| 1353 | :func:`prmLookup` |
---|
| 1354 | :class:`GSASIIctrlGUI.ShowLSParms` |
---|
| 1355 | :class:`GSASIIctrlGUI.VirtualVarBox` |
---|
| 1356 | :func:`GSASIIstrIO.SetUsedHistogramsAndPhases` |
---|
| 1357 | :func:`GSASIIstrIO.SaveUpdatedHistogramsAndPhases` |
---|
| 1358 | :func:`GSASIIstrIO.SetSeqResult` |
---|
| 1359 | :func:`GSASIIstrMain.dropOOBvars` |
---|
| 1360 | :meth:`GSASIIscriptable.G2Project.set_Controls` |
---|
| 1361 | :meth:`GSASIIscriptable.G2Project.get_Frozen` |
---|
| 1362 | :meth:`GSASIIscriptable.G2Project.set_Frozen` |
---|
| 1363 | |
---|
| 1364 | *GSASIIobj Classes and routines* |
---|
| 1365 | ------------------------------------ |
---|
| 1366 | |
---|
| 1367 | |
---|
[2027] | 1368 | .. automodule:: GSASIIobj |
---|
| 1369 | :members: |
---|
[5572] | 1370 | :private-members: |
---|
| 1371 | :special-members: |
---|