print " --------------- %4d ---------------" % (i + 1) print " rotation:" for x in rot: print " [%2d %2d %2d]" % (x[0], x[1], x[2]) print " translation:" print " (%8.5f %8.5f %8.5f)" % (trans[0], trans[1], trans[2]) print "" symmetry = spglib.get_symmetry(silicon) print "[get_symmetry]" print " Number of symmetry operations of silicon convensional" print " unit cell is ", len(symmetry['rotations']), "(192)." print "" mapping, grid = spglib.get_ir_reciprocal_mesh([11, 11, 11], silicon_prim, is_shift=[0, 0, 0]) num_ir_kpt = len(np.unique(mapping)) print "[get_ir_reciprocal_mesh]" print " Number of irreducible k-points of primitive silicon with" print " 11x11x11 Monkhorst-Pack mesh is ", num_ir_kpt, "(56)." print "" mapping, grid = spglib.get_ir_reciprocal_mesh([8, 8, 8], rutile, is_shift=[1, 1, 1]) num_ir_kpt = len(np.unique(mapping)) print "[get_ir_reciprocal_mesh]" print " Number of irreducible k-points of Rutile with" print " 8x8x8 Monkhorst-Pack mesh is ", num_ir_kpt, "(40)." print ""
parser.set_defaults(mesh=None, qpoints=None) parser.add_option("-m", "--mesh", dest="mesh", type="string", help="Mesh numbers") parser.add_option("-q", "--qpoints", dest="qpoints", type="string", help="Stabilizers") (options, args) = parser.parse_args() if options.mesh == None: mesh = [4, 4, 4] else: mesh = [int(x) for x in options.mesh.split()] if options.qpoints == None: qpoints = np.array([[0, 0, 0]], dtype=float) else: qpoints = np.array([float(x) for x in options.qpoints.split()]).reshape(-1, 3) cell = read_vasp(args[0]) mapping_g, grid_point = spglib.get_ir_reciprocal_mesh(mesh, cell) print mapping_g dataset = spglib.get_symmetry_dataset(cell) mapping, grid_point = spglib.get_stabilized_reciprocal_mesh(mesh, dataset["rotations"], qpoints=qpoints) print mapping print "%d / %d" % (np.sum((mapping_g == mapping) * 1), len(mapping)) # for i, m in enumerate(mapping): # print i, grid_point[m]
print " --------------- %4d ---------------" % (i+1) print " rotation:" for x in rot: print " [%2d %2d %2d]" % (x[0], x[1], x[2]) print " translation:" print " (%8.5f %8.5f %8.5f)" % (trans[0], trans[1], trans[2]) print "" symmetry = spglib.get_symmetry(silicon) print "[get_symmetry]" print " Number of symmetry operations of silicon convensional" print " unit cell is ", len( symmetry['rotations'] ), "(192)." print "" mapping, grid = spglib.get_ir_reciprocal_mesh( [ 11, 11, 11 ], silicon_prim, is_shift=[ 0, 0, 0 ] ) num_ir_kpt = len( np.unique( mapping ) ) print "[get_ir_reciprocal_mesh]" print " Number of irreducible k-points of primitive silicon with" print " 11x11x11 Monkhorst-Pack mesh is ", num_ir_kpt, "(56)." print "" mapping, grid = spglib.get_ir_reciprocal_mesh( [ 8, 8, 8 ], rutile, is_shift=[ 1, 1, 1 ] ) num_ir_kpt = len( np.unique( mapping ) ) print "[get_ir_reciprocal_mesh]" print " Number of irreducible k-points of Rutile with" print " 8x8x8 Monkhorst-Pack mesh is ", num_ir_kpt, "(40)." print ""
(options, args) = parser.parse_args() if options.mesh == None: mesh = [4, 4, 4] else: mesh = [int(x) for x in options.mesh.split()] if options.qpoints == None: qpoints = np.array([[0, 0, 0]], dtype=float) else: qpoints = np.array([float(x) for x in options.qpoints.split()]).reshape(-1, 3) cell = read_vasp(args[0]) mapping_g, grid_point = spglib.get_ir_reciprocal_mesh(mesh, cell) print mapping_g dataset = spglib.get_symmetry_dataset(cell) mapping, grid_point = \ spglib.get_stabilized_reciprocal_mesh(mesh, dataset['rotations'], qpoints=qpoints) print mapping print "%d / %d" % (np.sum((mapping_g == mapping) * 1), len(mapping)) # for i, m in enumerate(mapping): # print i, grid_point[m]