Changeset 4389 for trunk/GSASIIpwd.py
- Timestamp:
- Apr 2, 2020 1:44:42 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIpwd.py
r4366 r4389 2107 2107 ################################################################################ 2108 2108 2109 def MakeInst(G2frame,Name,Phase,useSamBrd,PWId): 2110 PWDdata = G2frame.GetPWDRdatafromTree(PWId) 2111 histoName = G2frame.GPXtree.GetItemPyData(PWId)[2] 2112 Size = Phase['Histograms'][histoName]['Size'] 2113 Mustrain = Phase['Histograms'][histoName]['Mustrain'] 2109 def MakeInst(PWDdata,Name,Size,Mustrain,useSamBrd): 2114 2110 inst = PWDdata['Instrument Parameters'][0] 2115 2111 Xsb = 0. … … 2160 2156 return fname 2161 2157 2162 def MakeBack(G2frame,Name,PWId): 2163 PWDdata = G2frame.GetPWDRdatafromTree(PWId) 2158 def MakeBack(PWDdata,Name): 2164 2159 Back = PWDdata['Background'][0] 2165 2160 inst = PWDdata['Instrument Parameters'][0] … … 2179 2174 return fname 2180 2175 2181 def MakeRMC6f( G2frame,Name,Phase,RMCPdict,PWId):2176 def MakeRMC6f(PWDdata,Name,Phase,RMCPdict): 2182 2177 2183 2178 def findDup(Atoms): … … 2199 2194 Atseq = RMCPdict['atSeq'] 2200 2195 Supercell = RMCPdict['SuperCell'] 2201 PWDdata = G2frame.GetPWDRdatafromTree(PWId)2202 2196 generalData = Phase['General'] 2203 2197 Dups,Fracs = findDup(Phase['Atoms']) … … 2279 2273 return fname,reset 2280 2274 2281 def MakeBragg(G2frame,Name,Phase,PWId): 2282 PWDdata = G2frame.GetPWDRdatafromTree(PWId) 2275 def MakeBragg(PWDdata,Name,Phase): 2283 2276 generalData = Phase['General'] 2284 2277 Vol = generalData['Cell'][7] … … 2307 2300 return fname 2308 2301 2309 def MakeRMCPdat( G2frame,Name,Phase,RMCPdict,PWId):2302 def MakeRMCPdat(PWDdata,Name,Phase,RMCPdict): 2310 2303 Meta = RMCPdict['metadata'] 2311 2304 Times = RMCPdict['runTimes'] … … 2315 2308 Files = RMCPdict['files'] 2316 2309 BraggWt = RMCPdict['histogram'][1] 2317 PWDdata = G2frame.GetPWDRdatafromTree(PWId)2318 2310 inst = PWDdata['Instrument Parameters'][0] 2319 2311 refList = PWDdata['Reflection Lists'][Name]['RefList'] … … 2468 2460 fl.write('END ::\n') 2469 2461 fl.close() 2470 return fname2471 2472 def MakePDB(G2frame,Name,Phase,Atseq,Supercell):2473 generalData = Phase['General']2474 Cell = generalData['Cell'][1:7]2475 Trans = np.eye(3)*np.array(Supercell)2476 newPhase = copy.deepcopy(Phase)2477 newPhase['General']['SGData'] = G2spc.SpcGroup('P 1')[1]2478 newPhase['General']['Cell'][1:] = G2lat.TransformCell(Cell,Trans.T)2479 newPhase,Atcodes = G2lat.TransformPhase(Phase,newPhase,Trans,np.zeros(3),np.zeros(3),ifMag=False)2480 Atoms = newPhase['Atoms']2481 Cell = newPhase['General']['Cell'][1:7]2482 A,B = G2lat. cell2AB(Cell)2483 fname = Name+'.pdb'2484 fl = open(fname,'w')2485 fl.write('REMARK this file is generated using GSASII\n')2486 fl.write('CRYST1%9.3f%9.3f%9.3f%7.2f%7.2f%7.2f P 1 1\n'%(2487 Cell[0],Cell[1],Cell[2],Cell[3],Cell[4],Cell[5]))2488 fl.write('ORIGX1 1.000000 0.000000 0.000000 0.00000\n')2489 fl.write('ORIGX2 0.000000 1.000000 0.000000 0.00000\n')2490 fl.write('ORIGX3 0.000000 0.000000 1.000000 0.00000\n')2491 2492 Natm = np.core.defchararray.count(np.array(Atcodes),'+')2493 Natm = np.count_nonzero(Natm-1)2494 nat = 02495 for atm in Atseq:2496 for iat,atom in enumerate(Atoms):2497 if atom[1] == atm:2498 nat += 12499 XYZ = np.inner(A,np.array(atom[3:6])-0.5) #shift origin to middle & make Cartesian2500 #ATOM 1 Ni RMC 1 -22.113 -22.113 -22.113 1.00 0.00 ni2501 fl.write('ATOM %5d %-4s RMC%6d%12.3f%8.3f%8.3f 1.00 0.00 %-2s\n'%(2502 nat,atom[0],nat,XYZ[0],XYZ[1],XYZ[2],atom[1]))2503 fl.close()2504 2462 return fname 2463 2464 def MakefullrmcRun(Name,Phase,RMCPdict): 2465 print(' nothing happened yet') 2466 rname = Name+'-run.py' 2467 rundata = '' 2468 rundata += '#### fullrmc $s file; edit by hand if you so choose #####\n'&rname 2469 rundata += ''' 2470 import numpy as np 2471 2472 # fullrmc library imports 2473 from fullrmc.Globals import LOGGER, FLOAT_TYPE 2474 from fullrmc.Engine import Engine 2475 from fullrmc.Constraints.PairDistributionConstraints import PairDistributionConstraint 2476 from fullrmc.Constraints.PairCorrelationConstraints import PairCorrelationConstraint 2477 from fullrmc.Constraints.DistanceConstraints import InterMolecularDistanceConstraint 2478 from fullrmc.Constraints.BondConstraints import BondConstraint 2479 from fullrmc.Constraints.AngleConstraints import BondsAngleConstraint 2480 from fullrmc.Constraints.ImproperAngleConstraints import ImproperAngleConstraint 2481 from fullrmc.Core.Collection import convert_Gr_to_gr 2482 from fullrmc.Core.MoveGenerator import MoveGeneratorCollector 2483 from fullrmc.Core.GroupSelector import RecursiveGroupSelector 2484 from fullrmc.Selectors.RandomSelectors import RandomSelector 2485 from fullrmc.Selectors.OrderedSelectors import DefinedOrderSelector 2486 from fullrmc.Generators.Translations import TranslationGenerator, TranslationAlongSymmetryAxisGenerator 2487 from fullrmc.Generators.Rotations import RotationGenerator, RotationAboutSymmetryAxisGenerator 2488 from fullrmc.Generators.Agitations import DistanceAgitationGenerator, AngleAgitationGenerator 2489 2490 # engine file names - replace name with phase name 2491 engineFileName = "name_engine.rmc" 2492 expFileName = "name_pdf.exp" 2493 pdbFileName = "nme.pdb" 2494 freshStart = False #make TRUE for a restart 2495 2496 ''' 2497 rfile = open(rname,'w') 2498 rfile.writelines(rundata) 2499 rfile.close() 2500 2501 2502 def MakePDB(Name,Phase,RMCPdict): 2503 return None 2504 # generalData = Phase['General'] 2505 # Cell = generalData['Cell'][1:7] 2506 # Trans = np.eye(3)*np.array(Supercell) 2507 # newPhase = copy.deepcopy(Phase) 2508 # newPhase['General']['SGData'] = G2spc.SpcGroup('P 1')[1] 2509 # newPhase['General']['Cell'][1:] = G2lat.TransformCell(Cell,Trans.T) 2510 # newPhase,Atcodes = G2lat.TransformPhase(Phase,newPhase,Trans,np.zeros(3),np.zeros(3),ifMag=False) 2511 # Atoms = newPhase['Atoms'] 2512 # Cell = newPhase['General']['Cell'][1:7] 2513 # A,B = G2lat. cell2AB(Cell) 2514 # fname = Name+'.pdb' 2515 # fl = open(fname,'w') 2516 # fl.write('REMARK this file is generated using GSASII\n') 2517 # fl.write('CRYST1%9.3f%9.3f%9.3f%7.2f%7.2f%7.2f P 1 1\n'%( 2518 # Cell[0],Cell[1],Cell[2],Cell[3],Cell[4],Cell[5])) 2519 # fl.write('ORIGX1 1.000000 0.000000 0.000000 0.00000\n') 2520 # fl.write('ORIGX2 0.000000 1.000000 0.000000 0.00000\n') 2521 # fl.write('ORIGX3 0.000000 0.000000 1.000000 0.00000\n') 2522 2523 # Natm = np.core.defchararray.count(np.array(Atcodes),'+') 2524 # Natm = np.count_nonzero(Natm-1) 2525 # nat = 0 2526 # for atm in Atseq: 2527 # for iat,atom in enumerate(Atoms): 2528 # if atom[1] == atm: 2529 # nat += 1 2530 # XYZ = np.inner(A,np.array(atom[3:6])-0.5) #shift origin to middle & make Cartesian 2531 # fl.write('ATOM %5d %-4s RMC%6d%12.3f%8.3f%8.3f 1.00 0.00 %-2s\n'%( 2532 # nat,atom[0],nat,XYZ[0],XYZ[1],XYZ[2],atom[1])) 2533 # fl.close() 2534 # return fname 2505 2535 2506 2536 def GetRMCBonds(general,RMCPdict,Atoms,bondList):
Note: See TracChangeset
for help on using the changeset viewer.