1 #ifndef __PLE_LOCATOR_H__
2 #define __PLE_LOCATOR_H__
31 #include "ple_config.h"
33 #if defined(PLE_HAVE_MPI)
140 float tolerance_base,
141 float tolerance_fraction,
144 const int point_tag[],
161 typedef struct _ple_locator_t ple_locator_t;
188 #if defined(PLE_HAVE_MPI)
249 float tolerance_base,
250 float tolerance_fraction,
254 const int point_tag[],
294 float tolerance_base,
295 float tolerance_fraction,
298 const int point_tag[],
523 double *location_wtime,
524 double *location_cpu_time,
525 double *exchange_wtime,
526 double *exchange_cpu_time);
543 double *location_wtime,
544 double *location_cpu_time,
545 double *exchange_wtime,
546 double *exchange_cpu_time);
566 #if defined(PLE_HAVE_MPI)
581 #if defined(PLE_HAVE_MPI)
632 #if defined(PLE_HAVE_MPI)
int ple_lnum_t
Definition: ple_defs.h:146
double ple_coord_t
Definition: ple_defs.h:149
ple_lnum_t() ple_mesh_extents_t(const void *mesh, ple_lnum_t n_max_extents, double tolerance, double extents[])
Definition: ple_locator.h:110
void ple_locator_set_default_option(const char *key, const char *value)
Set default locator options.
Definition: ple_locator.c:4172
void ple_locator_set_options(ple_locator_t *this_locator, const char *key, const char *value)
Set options for a given locator.
Definition: ple_locator.c:4192
const ple_lnum_t * ple_locator_get_dist_locations(const ple_locator_t *this_locator)
Return an array of local element numbers containing (or nearest to) each distant point after locator ...
Definition: ple_locator.c:3664
int() ple_locator_log_t(int event, int data, const char *string)
Definition: ple_locator.h:153
const ple_lnum_t * ple_locator_get_interior_list(const ple_locator_t *this_locator)
Return list of points located after locator initialization. This list defines a subset of the point s...
Definition: ple_locator.c:3733
void ple_locator_shift_locations(ple_locator_t *this_locator, ple_lnum_t location_shift)
Shift location ids for located points after locator initialization.
Definition: ple_locator.c:3614
void ple_locator_exchange_point_var(ple_locator_t *this_locator, void *distant_var, void *local_var, const ple_lnum_t *local_list, size_t type_size, size_t stride, int reverse)
Distribute variable defined on distant points to processes owning the original points (i....
Definition: ple_locator.c:3823
ple_locator_t * ple_locator_destroy(ple_locator_t *this_locator)
Destruction of a locator structure.
Definition: ple_locator.c:3200
void ple_locator_set_async_threshold(int threshold)
Set the maximum number of exchanging ranks for which we use asynchronous MPI sends and receives inste...
Definition: ple_locator.c:4155
int ple_locator_get_async_threshold(void)
Get the maximum number of exchanging ranks for which we use asynchronous MPI sends and receives inste...
Definition: ple_locator.c:4140
void ple_locator_discard_exterior(ple_locator_t *this_locator)
Discard list of points not located after locator initialization. This list defines a subset of the po...
Definition: ple_locator.c:3781
ple_locator_t * ple_locator_create(MPI_Comm comm, int n_ranks, int start_rank)
Creation of a locator structure.
Definition: ple_locator.c:3127
ple_lnum_t ple_locator_get_n_exterior(const ple_locator_t *this_locator)
Return number of points not located after locator initialization.
Definition: ple_locator.c:3749
void() ple_mesh_elements_locate_t(const void *mesh, float tolerance_base, float tolerance_fraction, ple_lnum_t n_points, const ple_coord_t point_coords[], const int point_tag[], ple_lnum_t location[], float distance[])
Definition: ple_locator.h:139
ple_lnum_t ple_locator_get_n_interior(const ple_locator_t *this_locator)
Return number of points located after locator initialization.
Definition: ple_locator.c:3711
void ple_locator_extend_search(ple_locator_t *this_locator, const void *mesh, const int *options, float tolerance_base, float tolerance_fraction, ple_lnum_t n_points, const ple_lnum_t point_list[], const int point_tag[], const ple_coord_t point_coords[], float distance[], ple_mesh_extents_t *mesh_extents_f, ple_mesh_elements_locate_t *mesh_locate_f)
Extend search for a locator for which set_mesh has already been called.
Definition: ple_locator.c:3350
void ple_locator_dump(const ple_locator_t *this_locator)
Dump printout of a locator structure.
Definition: ple_locator.c:3968
void ple_locator_exchange_point_var_all(ple_locator_t *this_locator, void *distant_var, void *local_var, const ple_lnum_t *local_list, size_t type_size, size_t stride, int reverse)
Distribute variable defined on distant points to processes owning the original points (i....
Definition: ple_locator.c:3877
ple_locator_option_t
Definition: ple_locator.h:66
@ PLE_LOCATOR_N_OPTIONS
Definition: ple_locator.h:69
@ PLE_LOCATOR_NUMBERING
Definition: ple_locator.h:68
void ple_locator_set_comm_log(ple_locator_log_t *log_function, int start_p_comm, int end_p_comm, int start_g_comm, int end_g_comm)
Register communication logging functions for locator instrumentation.
Definition: ple_locator.c:4225
void ple_locator_get_comm_times(const ple_locator_t *this_locator, double *location_wtime, double *location_cpu_time, double *exchange_wtime, double *exchange_cpu_time)
Return communication timing information.
Definition: ple_locator.c:3947
void ple_locator_set_mesh(ple_locator_t *this_locator, const void *mesh, const int *options, float tolerance_base, float tolerance_fraction, int dim, ple_lnum_t n_points, const ple_lnum_t point_list[], const int point_tag[], const ple_coord_t point_coords[], float distance[], ple_mesh_extents_t *mesh_extents_f, ple_mesh_elements_locate_t *mesh_elements_locate_f)
Prepare locator for use with a given mesh representation.
Definition: ple_locator.c:3260
void ple_locator_get_times(const ple_locator_t *this_locator, double *location_wtime, double *location_cpu_time, double *exchange_wtime, double *exchange_cpu_time)
Return timing information.
Definition: ple_locator.c:3915
const ple_coord_t * ple_locator_get_dist_coords(const ple_locator_t *this_locator)
Return an array of coordinates of each distant point after locator initialization.
Definition: ple_locator.c:3688
ple_lnum_t ple_locator_get_n_dist_points(const ple_locator_t *this_locator)
Return number of distant points after locator initialization.
Definition: ple_locator.c:3640
const ple_lnum_t * ple_locator_get_exterior_list(const ple_locator_t *this_locator)
Return list of points not located after locator initialization. This list defines a subset of the poi...
Definition: ple_locator.c:3766