Changeset 4823 for trunk


Ignore:
Timestamp:
Feb 20, 2021 1:25:23 PM (8 months ago)
Author:
toby
Message:

fix naming of new variable constraints; label them & improve constraint help text

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIconstrGUI.py

    r4822 r4823  
    10921092                            eqString[-1] += '{:g}*{:} '.format(m,var)
    10931093                        varMean = G2obj.fmtVarDescr(var)
    1094                         helptext += "\n" + var + " ("+ varMean + ")"
     1094                        helptext += '\n{:3g} * {:} '.format(m,var) + " ("+ varMean + ")"
    10951095                    # Add ISODISTORT help items
    10961096                    if '_Explain' in data:
     
    11051105                            helptext += '\n\n'
    11061106                            helptext += hlptxt
    1107                     # typeString = 'NEWVAR'
    1108                     # if item[-3]:
    1109                     #     eqString[-1] += ' = '+item[-3]
    1110                     # else:
    1111                     #     eqString[-1] += ' = New Variable'
    11121107                    if item[-3]:
    1113                         typeString = str(item[-3]) + ' = '
     1108                        typeString = '(NEWVAR) ' + str(item[-3]) + ' = '
    11141109                    else:
    11151110                        typeString = 'New Variable = '
     
    11341129                            eqString[-1] += '{:g}*{:} '.format(m,var)
    11351130                        varMean = G2obj.fmtVarDescr(var)
    1136                         helptext += "\n" + var + " ("+ varMean + ")"
     1131                        helptext += '\n{:3g} * {:} '.format(m,var) + " ("+ varMean + ")"
    11371132                    typeString = 'CONST'
    11381133                    eqString[-1] += ' = '+str(item[-3])
    11391134                elif item[-1] == 'e':
    1140                     helptext = "The following variables are set to be equivalent, noting multipliers:"
    1141                     normval = item[:-3][1][0]
     1135                    helptext = "The following variable:"
     1136                    normval = item[:-3][0][0]
     1137                    indepterm = item[:-3][0][1]
    11421138                    for i,term in enumerate(item[:-3]):
    11431139                        var = str(term[1])
     
    11451141                        if len(eqString[-1]) > maxlen:
    11461142                            eqString.append(' ')
    1147                         if i == 0: # move independent variable to end
    1148                             indepterm = term
     1143                        varMean = G2obj.fmtVarDescr(var)
     1144                        if i == 0: # move independent variable to end, as requested by Bob
     1145                            helptext += '\n{:} '.format(var) + " ("+ varMean + ")"
     1146                            helptext += "\n\nis equivalent to the following, noting multipliers:"
    11491147                            continue
    11501148                        elif eqString[-1] != '':
    11511149                            eqString[-1] += ' = '
    1152                         if normval/term[0] == 1:
     1150                        m = normval/term[0]
     1151                        if m == 1:
    11531152                            eqString[-1] += '{:}'.format(var)
    11541153                        else:
    1155                             eqString[-1] += '{:g}*{:} '.format(normval/term[0],var)
    1156                         varMean = G2obj.fmtVarDescr(var)
    1157                         helptext += "\n" + var + " ("+ varMean + ")"
    1158                     if normval/indepterm[0] == 1:
    1159                         eqString[-1] += ' = {:} '.format(indepterm[1])
    1160                     else:
    1161                         eqString[-1] += ' = {:g}*{:} '.format(normval/indepterm[0],str(indepterm[1]))
     1154                            eqString[-1] += '{:g}*{:} '.format(m,var)
     1155                        helptext += '\n{:3g} * {:} '.format(m,var) + " ("+ varMean + ")"
     1156                    eqString[-1] += ' = {:} '.format(indepterm)
    11621157                    typeString = 'EQUIV'
    11631158                else:
     
    12471242                elif data[name][Id][-1] == 'f':
    12481243                    data[name][Id][-2] = dlg.newvar[1]
    1249                     if type(data[name][Id][-3]) is str:
     1244                    if dlg.newvar[0]:
    12501245                        # process the variable name to put in global form (::var)
    12511246                        varname = str(dlg.newvar[0]).strip().replace(' ','_')
  • trunk/GSASIIobj.py

    r4809 r4823  
    19321932        'RBRU' : 'Residue rigid body group Uiso param.',
    19331933        'constr([0-9]*)' : 'Parameter from constraint',
     1934        'nv-([^_]+)_*' : 'New variable constraint parameter named \\1',
    19341935        # supersymmetry parameters  p::<var>:a:o 'Flen','Fcent'?
    19351936        'mV([0-2])$' : 'Modulation vector component \\1',
  • trunk/GSASIIstrIO.py

    r4814 r4823  
    191191    fixedList = []
    192192    ignored = 0
     193    namedVarList = []
    193194    for item in constList:
    194195        if item[-1] == 'h':
     
    214215                if varname is not None:
    215216                    varname = str(varname) # in case this is a G2VarObj
    216                     if ':' in varname:
     217                    if varname.startswith(':'):
    217218                        D['_name'] = varname
    218219                    else:
    219                         D['_name'] = '::' + varname
     220                        D['_name'] = '::nv-' + varname
     221                    D['_name'] = G2obj.MakeUniqueLabel(D['_name'],namedVarList)
    220222                D['_vary'] = varyFlag == True # force to bool
    221223                constDict.append(D)
Note: See TracChangeset for help on using the changeset viewer.