Ignore:
Timestamp:
Jul 23, 2018 10:51:15 PM (3 years ago)
Author:
svnjenkins
Message:

scripting: fix mustrain refine use; add size value

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIscriptable.py

    r3439 r3504  
    389389                                       the [hkl] direction of the axis.
    390390\               refine                 Usually boolean, set to True to refine.
    391                                        When in doubt, set it to true.
    392                                        For uniaxial model, can specify list
    393                                        of 'axial' or 'equatorial' or a single
     391                                       or False to clear.
     392                                       For uniaxial model, can specify a value
     393                                       of 'axial' or 'equatorial' to set that flag
     394                                       to True or a single
    394395                                       boolean sets both axial and equatorial.
    395 Size                                   Not yet implemented
     396Size                                   
    396397\               type                   Size broadening model. One of 'isotropic',
    397398                                       'uniaxial', or 'ellipsoid'. Should always
     
    401402                                       the [hkl] direction of the axis.
    402403\               refine                 Boolean, True to refine.
     404\               value                  float, size value in microns
    403405Pref.Ori.                              Boolean, True to refine
    404406Show                                   Boolean, True to refine
     
    27612763                            mustrain[0] = newType
    27622764                            if newType == 'isotropic':
    2763                                 mustrain[2][0] = True
     2765                                mustrain[2][0] = True == val.get('refine',False)
    27642766                                mustrain[5] = [False for p in mustrain[4]]
    27652767                            elif newType == 'uniaxial':
    27662768                                if 'refine' in val:
     2769                                    mustrain[2][0] = False
    27672770                                    types = val['refine']
    27682771                                    if isinstance(types, strtypes):
    27692772                                        types = [types]
    27702773                                    elif isinstance(types, bool):
    2771                                         mustrain[2][0] = types
    27722774                                        mustrain[2][1] = types
     2775                                        mustrain[2][2] = types
    27732776                                        types = []
    27742777                                    else:
     
    27882791                            else:  # newtype == 'generalized'
    27892792                                mustrain[2] = [False for p in mustrain[1]]
     2793                                if 'refine' in val:
     2794                                    mustrain[5] = [True == val['refine']]*len(mustrain[5])
    27902795
    27912796                        if direction:
     
    27952800                            mustrain[3] = direction
    27962801                elif key == 'Size':
     2802                    newSize = None
     2803                    if 'value' in val:
     2804                        newSize = float(val['value'])
    27972805                    for h in histograms:
    27982806                        size = h['Size']
     
    28102818                        if newType:
    28112819                            size[0] = newType
    2812                             refine = val.get('refine')
     2820                            refine = True == val.get('refine')
    28132821                            if newType == 'isotropic' and refine is not None:
    28142822                                size[2][0] = bool(refine)
     2823                                if newSize: size[1][0] = newSize
    28152824                            elif newType == 'uniaxial' and refine is not None:
    28162825                                size[2][1] = bool(refine)
    28172826                                size[2][2] = bool(refine)
     2827                                if newSize: size[1][1] = size[1][2] =newSize
    28182828                            elif newType == 'ellipsoidal' and refine is not None:
    28192829                                size[5] = [bool(refine) for p in size[5]]
     2830                                if newSize: size[4] = [newSize for p in size[4]]
    28202831
    28212832                        if direction:
Note: See TracChangeset for help on using the changeset viewer.