Exemplo n.º 1
0
def get_triplets_at_q(grid_point,
                      mesh,
                      point_group, # real space point group of space group
                      primitive_lattice, # column vectors
                      is_time_reversal=True,
                      stores_triplets_map=False):
    map_triplets, map_q, grid_address = spg.get_triplets_reciprocal_mesh_at_q(
        grid_point,
        mesh,
        point_group,
        is_time_reversal=is_time_reversal)
    bz_grid_address, bz_map = spg.relocate_BZ_grid_address(grid_address,
                                                           mesh,
                                                           primitive_lattice)
    # map_triplets = map_q.copy()
    # map_triplets = np.arange(np.prod(mesh), dtype='intc')
        
    triplets_at_q, weights = spg.get_BZ_triplets_at_q(
        grid_point,
        bz_grid_address,
        bz_map,
        map_triplets,
        mesh)

    assert np.prod(mesh) == weights.sum(), \
        "Num grid points %d, sum of weight %d" % (
                    np.prod(mesh), weights.sum())

    # These maps are required for collision matrix calculation.
    if not stores_triplets_map: 
        map_triplets = None
        map_q = None
        
    return triplets_at_q, weights, bz_grid_address, bz_map, map_triplets, map_q
Exemplo n.º 2
0
def get_triplets_at_q(
        grid_point,
        mesh,
        point_group,  # real space point group of space group
        primitive_lattice,  # column vectors
        is_time_reversal=True,
        stores_triplets_map=False):
    map_triplets, map_q, grid_address = spg.get_triplets_reciprocal_mesh_at_q(
        grid_point, mesh, point_group, is_time_reversal=is_time_reversal)
    bz_grid_address, bz_map = spg.relocate_BZ_grid_address(
        grid_address, mesh, primitive_lattice)
    triplets_at_q, weights = spg.get_BZ_triplets_at_q(grid_point,
                                                      bz_grid_address, bz_map,
                                                      map_triplets, mesh)

    assert np.prod(mesh) == weights.sum(), \
        "Num grid points %d, sum of weight %d" % (
                    np.prod(mesh), weights.sum())

    # These maps are required for collision matrix calculation.
    if not stores_triplets_map:
        map_triplets = None
        map_q = None

    return triplets_at_q, weights, bz_grid_address, bz_map, map_triplets, map_q
Exemplo n.º 3
0
def get_triplets_third_q_list(grid_point,
                              bz_grid_address,
                              bz_map,
                              mesh):
    triplets_at_q, weights = spg.get_BZ_triplets_at_q(
        grid_point,
        bz_grid_address,
        bz_map,
        np.arange(len(bz_grid_address), dtype='intc'),
        mesh)
    
    return np.array(triplets_at_q[:, 2], dtype='intc')
Exemplo n.º 4
0
def get_BZ_triplets_at_q(grid_point, mesh, reciprocal_lattice, grid_address,
                         map_q):
    bz_grid_address, bz_map = spg.relocate_BZ_grid_address(
        grid_address, mesh, reciprocal_lattice)
    triplets_at_q, weights = spg.get_BZ_triplets_at_q(grid_point,
                                                      bz_grid_address, bz_map,
                                                      map_q, mesh)

    assert np.prod(mesh) == weights.sum(), \
        "Num grid points %d, sum of weight %d" % (
                    np.prod(mesh), weights.sum())

    return triplets_at_q, weights, bz_grid_address, bz_map
Exemplo n.º 5
0
def get_nosym_triplets_at_q(grid_point,
                            mesh,
                            primitive_lattice,
                            stores_triplets_map=False):
    grid_address = get_grid_address(mesh)
    map_q = np.arange(len(grid_address), dtype='intc')
    bz_grid_address, bz_map = spg.relocate_BZ_grid_address(
        grid_address, mesh, primitive_lattice)
    triplets_at_q, weights = spg.get_BZ_triplets_at_q(grid_point,
                                                      bz_grid_address, bz_map,
                                                      map_q, mesh)

    if not stores_triplets_map:
        map_q = None

    return triplets_at_q, weights, bz_grid_address, bz_map, map_q
Exemplo n.º 6
0
def get_nosym_triplets_at_q(grid_point,
                            mesh,
                            primitive_lattice,
                            stores_triplets_map=False):
    grid_address = get_grid_address(mesh)
    map_q = np.arange(len(grid_address), dtype='intc')
    bz_grid_address, bz_map = spg.relocate_BZ_grid_address(grid_address,
                                                           mesh,
                                                           primitive_lattice)
    triplets_at_q, weights = spg.get_BZ_triplets_at_q(
        grid_point,
        bz_grid_address,
        bz_map,
        map_q,
        mesh)

    if not stores_triplets_map:
        map_q = None

    return triplets_at_q, weights, bz_grid_address, bz_map, map_q
Exemplo n.º 7
0
def get_BZ_triplets_at_q(grid_point,
                         mesh,
                         reciprocal_lattice,
                         grid_address,
                         map_q):
    bz_grid_address, bz_map = spg.relocate_BZ_grid_address(grid_address,
                                                           mesh,
                                                           reciprocal_lattice)
    triplets_at_q, weights = spg.get_BZ_triplets_at_q(
        grid_point,
        bz_grid_address,
        bz_map,
        map_q,
        mesh)

    assert np.prod(mesh) == weights.sum(), \
        "Num grid points %d, sum of weight %d" % (
                    np.prod(mesh), weights.sum())

    return triplets_at_q, weights, bz_grid_address, bz_map
Exemplo n.º 8
0
def get_triplets_third_q_list(grid_point, bz_grid_address, bz_map, mesh):
    triplets_at_q, weights = spg.get_BZ_triplets_at_q(
        grid_point, bz_grid_address, bz_map,
        np.arange(len(bz_grid_address), dtype='intc'), mesh)

    return np.array(triplets_at_q[:, 2], dtype='intc')