Changeset 4420 for trunk/GSASIIpwd.py


Ignore:
Timestamp:
May 15, 2020 8:05:40 PM (3 years ago)
Author:
vondreele
Message:

improvements to fullrmc interface

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIpwd.py

    r4417 r4420  
    26482648        filDat = RMCPdict['files'][File]
    26492649        if filDat[0] != 'Select':
    2650             sfwt = 'neutrons'
     2650            sfwt = 'neutronCohb'
    26512651            if 'Xray' in File:
    2652                 sfwt = 'xrays'
     2652                sfwt = 'atomicNumber'
    26532653            if 'G(r)' in File:
    26542654                rundata += '    RGR = np.loadtxt("%s").T\n'%filDat[0]
     
    26572657                rundata += '    GofR = PairDistributionConstraint(experimentalData=RGR.T, weighting="%s")\n'%sfwt
    26582658                rundata += '    ENGINE.add_constraints([GofR])\n'
    2659                 wtDict['Pair'] = filDat[1]
     2659                wtDict['Pair-'+sfwt] = filDat[1]
    26602660            else:
    26612661                rundata += '    SOQ = np.loadtxt("%s").T\n'%filDat[0]
     
    26642664                rundata += '    FofQ = ReducedStructureFactorConstraint(experimentalData=SOQ.T, weighting="%s")\n'%sfwt
    26652665                rundata += '    ENGINE.add_constraints([FofQ])\n'
    2666                 wtDict['Struct'] = filDat[1]
     2666                wtDict['Struct-'+sfwt] = filDat[1]
    26672667    rundata += '    ENGINE.add_constraints(InterMolecularDistanceConstraint())\n'
    26682668    if RMCPdict['byMolec']:
     
    26792679    rundata += 'else:\n'
    26802680    rundata += '    ENGINE = ENGINE.load(path=engineFileName)\n'
    2681     rundata += '#fill & change constraints - can be done without restart\n' 
     2681    rundata += '#fill & change constraints - can be done without restart\n'
     2682    rundata += 'wtDict = %s\n'%str(wtDict)
    26822683    rundata += 'Constraints = ENGINE.constraints\n'
    26832684    rundata += 'for constraint in Constraints:\n'
     
    26862687    rundata += '        constraint.set_default_distance(%f)\n'%RMCPdict['min Contact']
    26872688    rundata += '    elif "PairDistribution" in strcons:\n'
    2688     rundata += '        constraint.set_variance_squared(%f)\n'%wtDict['Pair']
     2689    rundata += '        constraint.set_variance_squared(wtDict["Pair-"+constraint.weighting])\n'
    26892690    rundata += '        constraint.set_limits((%.3f,%.3f))\n'%(rmin,rmax)
    26902691    if RMCPdict['FitScale']:
    26912692        rundata += '        constraint.set_adjust_scale_factor((10, 0.01, 100.))\n'
    26922693    rundata += '    elif "StructureFactor" in strcons:\n'
    2693     rundata += '        constraint.set_variance_squared(%f)\n'%wtDict['Struct']
     2694    rundata += '        constraint.set_variance_squared(wtDict["Struct-"+constraint.weighting])\n'
    26942695    if RMCPdict['FitScale']:
    26952696        rundata += '        constraint.set_adjust_scale_factor((10, 0.01, 100.))\n'
     
    27282729    rundata += '    ENGINE.set_groups_as_atoms()\n'
    27292730    rundata += '    ENGINE.run(restartPdb="%s",numberOfSteps=10000, saveFrequency=1000)\n'%restart
    2730     rundata += '    for swaps in SwapGen:\n'
    2731     rundata += '        AB = swaps.split("-")\n'
    2732     rundata += '        ENGINE.set_groups_as_atoms()\n'
    2733     rundata += '        for g in ENGINE.groups:\n'
    2734     rundata += '            if allNames[g.indexes[0]]==AB[0]:\n'
    2735     rundata += '                g.set_move_generator(SwapGen[swaps][0])\n'
    2736     rundata += '            elif allNames[g.indexes[0]]==AB[1]:\n'
    2737     rundata += '                g.set_move_generator(SwapGen[swaps][1])\n'
    2738     rundata += '            sProb = SwapGen[swaps][2]\n'
    2739     rundata += '        ENGINE.run(restartPdb="%s",numberOfSteps=10000*sProb, saveFrequency=1000)\n'%restart
    2740     rundata += '        ENGINE.set_groups_as_atoms()\n'
    2741     rundata += '        ENGINE.run(restartPdb="%s",numberOfSteps=10000*(1.-sProb), saveFrequency=1000)\n'%restart
     2731    if len(RMCPdict['Swaps']):
     2732        rundata += '    for swaps in SwapGen:\n'
     2733        rundata += '        AB = swaps.split("-")\n'
     2734        rundata += '        ENGINE.set_groups_as_atoms()\n'
     2735        rundata += '        for g in ENGINE.groups:\n'
     2736        rundata += '            if allNames[g.indexes[0]]==AB[0]:\n'
     2737        rundata += '                g.set_move_generator(SwapGen[swaps][0])\n'
     2738        rundata += '            elif allNames[g.indexes[0]]==AB[1]:\n'
     2739        rundata += '                g.set_move_generator(SwapGen[swaps][1])\n'
     2740        rundata += '            sProb = SwapGen[swaps][2]\n'
     2741        rundata += '        ENGINE.run(restartPdb="%s",numberOfSteps=10000*sProb, saveFrequency=1000)\n'%restart
     2742        rundata += '        ENGINE.set_groups_as_atoms()\n'
     2743        rundata += '        ENGINE.run(restartPdb="%s",numberOfSteps=10000*(1.-sProb), saveFrequency=1000)\n'%restart
    27422744    rundata += 'ENGINE.close()\n'
    27432745    rfile = open(rname,'w')
Note: See TracChangeset for help on using the changeset viewer.