@@ -339,7 +339,7 @@ def get_seeds(spg, hkls, two_thetas):
339339
340340
341341def get_cell_from_multi_hkls (spg , hkls , two_thetas , long_thetas = None , wave_length = 1.54184 ,
342- tolerance = 0.05 , use_seed = True , min_score = 0.99 ):
342+ tolerance = 0.05 , use_seed = True , min_score = 0.999 ):
343343 """
344344 Estimate the cell parameters from multiple (hkl, two_theta) inputs.
345345 The idea is to use the Bragg's law and the lattice spacing formula to estimate the lattice parameters.
@@ -457,7 +457,8 @@ def get_cell_from_multi_hkls(spg, hkls, two_thetas, long_thetas=None, wave_lengt
457457 #xtal.from_seed('pyxtal/database/cifs/JVASP-62168.cif') # 52s -> 16s
458458 #xtal.from_seed('pyxtal/database/cifs/JVASP-98225.cif') # P21/c -> 33s -> 12s
459459 #xtal.from_seed('pyxtal/database/cifs/JVASP-50935.cif') # Pm -> 45s -> 7.6s
460- xtal .from_seed ('pyxtal/database/cifs/JVASP-28565.cif' ) # 207s -> 91s -> 80s -> 72s
460+ #xtal.from_seed('pyxtal/database/cifs/JVASP-28565.cif') # 207s -> 91s -> 80s -> 72s
461+ xtal .from_seed ('pyxtal/database/cifs/JVASP-42300.cif' ) # 178s
461462 #xtal.from_seed('pyxtal/database/cifs/JVASP-47532.cif') #
462463 #xtal.from_seed('pyxtal/database/cifs/JVASP-28634.cif', tol=1e-4) # P21/c -> 33s -> 12s
463464 #xtal.from_seed('pyxtal/database/cifs/JVASP-97915.cif', tol=1e-4) # P21/c -> 33s -> 12s
@@ -471,27 +472,33 @@ def get_cell_from_multi_hkls(spg, hkls, two_thetas, long_thetas=None, wave_lengt
471472 print (xrd .by_hkl (N_max = 10 ))
472473
473474 # Get the a list of hkl guesses and sort them by d^2
475+ if spg >= 195 :
476+ min_score = 0.96
477+ else :
478+ min_score = 0.999
479+
474480 if spg >= 16 :
475481 guesses = xtal .group .generate_hkl_guesses (2 , 3 , 5 , max_square = 29 , total_square = 40 , verbose = True )
476482 else :
477483 if spg in [5 , 8 , 12 , 15 ]:
478- guesses = xtal .group .generate_hkl_guesses (3 , 3 , 6 , max_square = 38 , total_square = 40 , verbose = True )
484+ guesses = xtal .group .generate_hkl_guesses (3 , 3 , 5 , max_square = 29 , total_square = 40 , verbose = True )
479485 else :
480- #guesses = xtal.group.generate_hkl_guesses(3, 3, 4, max_square=29, total_square=35, verbose=True)
481- guesses = xtal .group .generate_hkl_guesses (3 , 3 , 3 , max_square = 15 , total_square = 36 , verbose = True )
486+ guesses = xtal .group .generate_hkl_guesses (3 , 3 , 4 , max_square = 29 , total_square = 35 , verbose = True )
487+ #guesses = xtal.group.generate_hkl_guesses(3, 3, 3, max_square=15, total_square=36, verbose=True)
488+
482489 guesses = np .array (guesses )
483490 print ("Total guesses:" , len (guesses ))
484491 sum_squares = np .sum (guesses ** 2 , axis = (1 ,2 ))
485492 sorted_indices = np .argsort (sum_squares )
486493 guesses = guesses [sorted_indices ]
487- if len (guesses ) > 200000 : guesses = guesses [:200000 ]
494+ if len (guesses ) > 500000 : guesses = guesses [:500000 ]
488495 #guesses = np.array([[[2, 0, 0], [1, 1, 0], [0, 1, 1], [0, 0, 2]]])
489496 #guesses = np.array([[[2, 0, 0], [1, 1, 0], [0, 0, 2], [2, 0, -2]]])
490497 #guesses = np.array([[[0, 0, -1], [1, 1, 0], [1, 1, -1], [0, 2, -5]]])
491498
492499 # Check the quality of each (hkl, 2theta) solutions
493500 N_add = 5
494- N_batch = 20
501+ N_batch = 10
495502 cell2 = np .sort (np .array (xtal .lattice .encode ()))
496503 if spg <= 15 and cell2 [3 ] > 90 : cell2 [3 ] = 180 - cell2 [3 ]
497504 cells_all = np .reshape (cell2 , (1 , len (cell2 )))
0 commit comments