Exemplo n.º 1
0
int spg_get_triplets_reciprocal_mesh_at_q( int weights[],
					   int grid_points[][3],
					   int third_q[],
					   const int grid_point,
					   const int mesh[3],
					   const int is_time_reversal,
					   SPGCONST double lattice[3][3],
					   const int num_rot,
					   SPGCONST int rotations[][3][3],
					   const double symprec )
{
  MatINT *rot_real;
  int i, num_ir;
  
  rot_real = mat_alloc_MatINT( num_rot );
  for ( i = 0; i < num_rot; i++ ) {
    mat_copy_matrix_i3( rot_real->mat[i], rotations[i] );
  }

  num_ir = kpt_get_ir_triplets_at_q( weights,
				     grid_points,
				     third_q,
				     grid_point,
				     mesh,
				     is_time_reversal,
				     lattice,
				     rot_real,
				     symprec );

  mat_free_MatINT( rot_real );

  return num_ir;
}
Exemplo n.º 2
0
static int get_triplets_reciprocal_mesh_at_q(int map_triplets[],
					     int map_q[],
					     int grid_address[][3],
					     const int grid_point,
					     const int mesh[3],
					     const int is_time_reversal,
					     const int num_rot,
					     SPGCONST int rotations[][3][3])
{
  MatINT *rot_real;
  int i, num_ir;
  
  rot_real = mat_alloc_MatINT(num_rot);
  for (i = 0; i < num_rot; i++) {
    mat_copy_matrix_i3(rot_real->mat[i], rotations[i]);
  }

  num_ir = kpt_get_ir_triplets_at_q(map_triplets,
				    map_q,
				    grid_address,
				    grid_point,
				    mesh,
				    is_time_reversal,
				    rot_real);

  mat_free_MatINT(rot_real);

  return num_ir;
}