Ejemplo n.º 1
0
    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]
Ejemplo n.º 3
0
  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 ""
Ejemplo n.º 4
0
(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]