YetAnotherCoupler 3.2.0_a

algorithm for searching cells and points on a grid More...
Go to the source code of this file.
Functions  
struct point_sphere_part_search *  yac_point_sphere_part_search_new (size_t num_points, yac_const_coordinate_pointer coordinates_xyz, yac_int const *ids) 
struct point_sphere_part_search *  yac_point_sphere_part_search_mask_new (size_t num_points, yac_const_coordinate_pointer coordinates_xyz, yac_int const *ids, int const *mask) 
void  yac_delete_point_sphere_part_search (struct point_sphere_part_search *search) 
void  yac_point_sphere_part_search_NN (struct point_sphere_part_search *search, size_t num_points, double(*coordinates_xyz)[3], double *cos_angles, double(**result_coordinates_xyz)[3], size_t *result_coordinates_xyz_array_size, size_t **local_point_ids, size_t *local_point_ids_array_size, size_t *num_local_point_ids) 
void  yac_point_sphere_part_search_NNN (struct point_sphere_part_search *search, size_t num_points, double(*coordinates_xyz)[3], size_t n, double **cos_angles, size_t *cos_angles_array_size, double(**result_coordinates_xyz)[3], size_t *result_coordinates_xyz_array_size, size_t **local_point_ids, size_t *local_point_ids_array_size, size_t *num_local_point_ids) 
int  yac_point_sphere_part_search_bnd_circle_contains_points (struct point_sphere_part_search *search, struct bounding_circle circle) 
struct bnd_sphere_part_search *  yac_bnd_sphere_part_search_new (struct bounding_circle *circles, size_t num_circles) 
void  yac_bnd_sphere_part_search_delete (struct bnd_sphere_part_search *search) 
void  yac_bnd_sphere_part_search_do_point_search (struct bnd_sphere_part_search *search, yac_coordinate_pointer coordinates_xyz, size_t count, size_t **cells, size_t *num_cells_per_coordinate) 
void  yac_bnd_sphere_part_search_do_bnd_circle_search (struct bnd_sphere_part_search *search, struct bounding_circle *bnd_circles, size_t count, size_t **cells, size_t *num_cells_per_bnd_circle) 
algorithm for searching cells and points on a grid
yac_point_sphere_part_search_new generates a tree structure, which makes it easy to look for points. A documentation of the respective algorithm can be found at Sphere Partitioning Algorithm.
Definition in file sphere_part.h.
void yac_bnd_sphere_part_search_delete  (  struct bnd_sphere_part_search *  search  ) 
Definition at line 1953 of file sphere_part.c.
void yac_bnd_sphere_part_search_do_bnd_circle_search  (  struct bnd_sphere_part_search *  search, 
struct bounding_circle *  bnd_circles,  
size_t  count,  
size_t **  cells,  
size_t *  num_cells_per_bnd_circle  
) 
Definition at line 1869 of file sphere_part.c.
void yac_bnd_sphere_part_search_do_point_search  (  struct bnd_sphere_part_search *  search, 
yac_coordinate_pointer  coordinates_xyz,  
size_t  count,  
size_t **  cells,  
size_t *  num_cells_per_coordinate  
) 
Definition at line 1823 of file sphere_part.c.
struct bnd_sphere_part_search * yac_bnd_sphere_part_search_new  (  struct bounding_circle *  circles, 
size_t  num_circles  
) 
Definition at line 543 of file sphere_part.c.
void yac_delete_point_sphere_part_search  (  struct point_sphere_part_search *  search  ) 
Definition at line 1943 of file sphere_part.c.
int yac_point_sphere_part_search_bnd_circle_contains_points  (  struct point_sphere_part_search *  search, 
struct bounding_circle  circle  
) 
This routine returns true if the provided point_sphere_part_search contains a point that is within the provided bounding circle.
Definition at line 1713 of file sphere_part.c.
struct point_sphere_part_search * yac_point_sphere_part_search_mask_new  (  size_t  num_points, 
yac_const_coordinate_pointer  coordinates_xyz,  
yac_int const *  ids,  
int const *  mask  
) 
Definition at line 685 of file sphere_part.c.
struct point_sphere_part_search * yac_point_sphere_part_search_new  (  size_t  num_points, 
yac_const_coordinate_pointer  coordinates_xyz,  
yac_int const *  ids  
) 
Definition at line 659 of file sphere_part.c.
void yac_point_sphere_part_search_NN  (  struct point_sphere_part_search *  search, 
size_t  num_points,  
double(*)  coordinates_xyz[3],  
double *  cos_angles,  
double(**)  result_coordinates_xyz[3],  
size_t *  result_coordinates_xyz_array_size,  
size_t **  local_point_ids,  
size_t *  local_point_ids_array_size,  
size_t *  num_local_point_ids  
) 
This routine does a nearest neighbour search between the points provided to this routine and the matching yac_point_sphere_part_search_new call.
Definition at line 1180 of file sphere_part.c.
void yac_point_sphere_part_search_NNN  (  struct point_sphere_part_search *  search, 
size_t  num_points,  
double(*)  coordinates_xyz[3],  
size_t  n,  
double **  cos_angles,  
size_t *  cos_angles_array_size,  
double(**)  result_coordinates_xyz[3],  
size_t *  result_coordinates_xyz_array_size,  
size_t **  local_point_ids,  
size_t *  local_point_ids_array_size,  
size_t *  num_local_point_ids  
) 
This routine does a n nearest neighbour search between the points provided to this routine and the matching yac_point_sphere_part_search_new call.
Definition at line 1533 of file sphere_part.c.