|
struct yac_interp_weights * | yac_interp_weights_new (MPI_Comm comm, enum yac_location tgt_location, enum yac_location *src_locations, size_t num_src_fields) |
|
static struct remote_point | copy_remote_point (struct remote_point point) |
|
static void | copy_remote_points_no_alloc (struct remote_point *points_to, struct remote_point *points_from, size_t count, struct remote_point_info **point_info_buffer_) |
|
static struct remote_points * | copy_remote_points (struct remote_point *points, size_t count) |
|
static struct remote_points * | copy_remote_points_mf (struct remote_point **points, size_t *counts, size_t num_fields) |
|
void | yac_interp_weights_add_fixed (struct yac_interp_weights *weights, struct remote_points *tgts, double fixed_value) |
|
void | yac_interp_weights_add_wsum (struct yac_interp_weights *weights, struct remote_points *tgts, size_t *num_src_per_tgt, struct remote_point *srcs, double *w) |
|
void | yac_interp_weights_add_sum (struct yac_interp_weights *weights, struct remote_points *tgts, size_t *num_src_per_tgt, struct remote_point *srcs) |
|
void | yac_interp_weights_add_direct (struct yac_interp_weights *weights, struct remote_points *tgts, struct remote_point *srcs) |
|
void | yac_interp_weights_add_direct_mf (struct yac_interp_weights *weights, struct remote_points *tgts, size_t *src_field_indices, struct remote_point **srcs_per_field, size_t num_src_fields) |
|
void | yac_interp_weights_add_sum_mf (struct yac_interp_weights *weights, struct remote_points *tgts, size_t *num_src_per_field_per_tgt, struct remote_point **srcs_per_field, size_t num_src_fields) |
|
void | yac_interp_weights_add_wsum_mf (struct yac_interp_weights *weights, struct remote_points *tgts, size_t *num_src_per_field_per_tgt, struct remote_point **srcs_per_field, double *w, size_t num_src_fields) |
|
static int | compare_stencils_fixed (const void *a, const void *b) |
|
static MPI_Datatype | get_fixed_stencil_mpi_datatype (MPI_Comm comm) |
|
static void | yac_interp_weights_redist_fixed (MPI_Comm comm, uint64_t count, struct interp_weight_stencil *fixed_stencils, struct yac_interpolation *interp) |
|
static struct remote_point_info | select_src (struct remote_point_infos src) |
|
static void | xt_redist_msg_free (struct Xt_redist_msg *msgs, size_t count, MPI_Comm comm) |
|
static Xt_redist | generate_direct_redist (uint64_t *src_orig_poses, size_t *sendcounts, struct interp_weight_stencil_direct *tgt_stencils, size_t *recvcounts, MPI_Comm comm, Xt_config redist_config) |
|
static Xt_redist * | generate_direct_mf_redists (uint64_t *src_orig_pos, size_t *sendcounts, struct interp_weight_stencil_direct_mf *tgt_stencils, size_t *recvcounts, size_t num_src_fields, MPI_Comm comm, Xt_config redist_config) |
|
static MPI_Datatype | get_direct_stencil_mpi_datatype (MPI_Comm comm) |
|
static int | compare_stencils_direct (const void *a, const void *b) |
|
static void | yac_interp_weights_redist_direct (MPI_Comm comm, uint64_t count, struct interp_weight_stencil *direct_stencils, struct yac_interpolation *interp, Xt_config redist_config) |
|
static MPI_Datatype | get_direct_mf_stencil_mpi_datatype (MPI_Comm comm) |
|
static int | compare_stencils_direct_mf (const void *a, const void *b) |
|
static void | yac_interp_weights_redist_direct_mf (MPI_Comm comm, uint64_t count, struct interp_weight_stencil *direct_mf_stencils, struct yac_interpolation *interp, Xt_config redist_config) |
|
static int | get_stencil_pack_size_fixed (struct interp_weight_stencil *stencil, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static int | get_stencil_pack_size_direct (struct interp_weight_stencil *stencil, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static int | get_stencil_pack_size_sum (struct interp_weight_stencil *stencil, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static int | get_stencil_pack_size_wsum (struct interp_weight_stencil *stencil, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static int | get_stencil_pack_size_direct_mf (struct interp_weight_stencil *stencil, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static int | get_stencil_pack_size_wsum_mf (struct interp_weight_stencil *stencil, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static int | get_stencil_pack_size_sum_mf (struct interp_weight_stencil *stencil, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static struct interp_weight_stencil | copy_interp_weight_stencil (struct interp_weight_stencil *stencil, struct remote_point point) |
|
static struct interp_weight_stencil | wcopy_interp_weight_stencil (struct interp_weight_stencil *stencil, struct remote_point point, double weight) |
|
static int | compare_w_global_id (const void *a, const void *b) |
|
static int | compare_remote_point (const void *a, const void *b) |
|
static void | compact_srcs_w (struct remote_points *srcs, double **w) |
|
static struct interp_weight_stencil | stencils_merge_wsum (struct interp_weight_stencil **stencils, double *w, size_t num_stencils) |
|
static struct interp_weight_stencil | stencils_merge_sum (struct interp_weight_stencil **stencils, double *w, size_t num_stencils) |
|
static struct interp_weight_stencil | stencils_merge (struct interp_weight_stencil **stencils, double *w, size_t num_stencils, struct remote_point point) |
|
static void | get_stencils_pack_sizes (struct interp_weight_stencil *stencils, size_t count, size_t *pack_order, int *pack_sizes, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | pack_stencil_fixed (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | pack_stencil_direct (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | pack_stencil_sum (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | pack_stencil_wsum (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | pack_stencil_direct_mf (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | pack_stencil_sum_mf (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | pack_stencil_wsum_mf (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | pack_stencils (struct interp_weight_stencil *stencils, size_t count, size_t *pack_order, void **pack_data, int *pack_sizes, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | unpack_stencil_fixed (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | unpack_stencil_direct (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | unpack_stencil_sum (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | unpack_stencil_wsum (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | unpack_stencil_direct_mf (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | unpack_stencil_sum_mf (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | unpack_stencil_wsum_mf (struct interp_weight_stencil *stencil, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | unpack_stencils (struct interp_weight_stencil *stencils, size_t count, void *packed_data, size_t packed_data_size, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static struct interp_weight_stencil * | exchange_stencils (MPI_Comm comm, struct interp_weight_stencil *stencils, size_t *stencil_indices, size_t *stencil_sendcounts, size_t *stencil_recvcounts) |
|
static struct interp_weight_stencil * | yac_interp_weights_get_stencils (struct yac_interp_weights *weights, size_t *stencil_indices, int *stencil_ranks, size_t count) |
|
static void | yac_interp_weight_stencils_delete (struct interp_weight_stencil *stencils, size_t count) |
|
void | yac_interp_weights_wcopy_weights (struct yac_interp_weights *weights, struct remote_points *tgts, size_t *num_stencils_per_tgt, size_t *stencil_indices, int *stencil_ranks, double *w) |
|
static int | compute_owner (int *ranks, size_t count) |
|
static struct interp_weight_stencils_wsum_mf * | generate_w_sum_mf_stencils (struct interp_weight_stencil *stencils, size_t count, enum yac_interp_weight_stencil_type stencil_type) |
|
static MPI_Datatype | get_wsum_mf_weight_mpi_datatype (MPI_Comm comm) |
|
static int | get_stencil_wsum_mf_pack_size (struct interp_weight_stencil_wsum_mf *stencil, MPI_Datatype wsum_mf_weight_dt, MPI_Datatype point_info_dt, MPI_Comm comm) |
|
static void | pack_stencils_wsum_mf (struct interp_weight_stencil_wsum_mf *wsum_stencils, size_t count, size_t *pack_order, void **pack_data, int *pack_sizes, int *weight_counts, MPI_Comm comm) |
|
static size_t | unpack_stencils_wsum_mf (struct interp_weight_stencil_wsum_mf *wsum_stencils, struct interp_weight_stencil_wsum_mf_weight *weight_buffer, size_t count, void *packed_data, size_t packed_data_size, MPI_Comm comm) |
|
static struct interp_weight_stencils_wsum_mf * | redist_wsum_mf_stencils (MPI_Comm comm, struct interp_weight_stencils_wsum_mf *wsum_stencils_data, int *stencil_owner, size_t *reorder_idx, size_t num_owners) |
|
static struct interp_weight_stencils_wsum_mf * | redist_wsum_mf_stencils_src (MPI_Comm comm, struct interp_weight_stencils_wsum_mf *wsum_stencils_data) |
|
static int | compare_remote_point_info (const void *a, const void *b) |
|
static struct interp_weight_stencils_wsum_mf * | redist_wsum_mf_stencils_tgt (MPI_Comm comm, struct interp_weight_stencils_wsum_mf *wsum_stencils_data) |
|
static Xt_redist * | generate_halo_redists (struct remote_point_info_reorder *halo_points, size_t count, size_t num_src_fields, MPI_Comm comm, Xt_config redist_config) |
|
static int | compare_rank_pos_reorder_field_idx (const void *a, const void *b) |
|
static int | compare_interp_weight_stencil_wsum_mf_src_orig_pos (const void *a, const void *b) |
|
static int | compare_interp_weight_stencil_wsum_mf_tgt_orig_pos (const void *a, const void *b) |
|
static void | free_remote_point (struct remote_point point) |
|
static Xt_redist | generate_redist_put_double (struct remote_point_infos *point_infos, size_t count, MPI_Comm comm, Xt_config redist_config) |
|
static void | yac_interp_weights_redist_w_sum_mf (MPI_Comm comm, struct interp_weight_stencils_wsum_mf *wsum_mf_stencils_data, struct yac_interpolation *interp, enum yac_interp_weights_reorder_type reorder, enum yac_interp_weight_stencil_type stencil_type, Xt_config redist_config) |
|
static int | compare_stencils (const void *a, const void *b) |
|
static Xt_config | get_redist_config (char const *yaxt_exchanger_name, MPI_Comm comm) |
|
struct yac_interpolation * | yac_interp_weights_get_interpolation (struct yac_interp_weights *weights, enum yac_interp_weights_reorder_type reorder, size_t collection_size, double frac_mask_fallback_value, double scaling_factor, double scaling_summand, char const *yaxt_exchanger_name) |
|
struct yac_interpolation * | yac_interp_weights_get_interpolation_f2c (struct yac_interp_weights *weights, int reorder, size_t collection_size, double frac_mask_fallback_value, double scaling_factor, double scaling_summand, char const *yaxt_exchanger_name) |
|
static void | free_remote_points (struct remote_points *points) |
|
static int | compare_double (void const *a, void const *b) |
|
static void | create_weight_file (char const *filename, char const *src_grid_name, char const *tgt_grid_name, size_t num_fixed_values, double *fixed_values, size_t *num_tgt_per_fixed_value, size_t num_links, size_t num_weights_per_link, size_t num_src_fields, size_t *num_links_per_src_field, enum yac_location *src_locations, enum yac_location tgt_location, size_t src_grid_size, size_t tgt_grid_size) |
|
static int | compare_interp_weight_stencil (const void *a, const void *b) |
|
static void | stencil_determine_tgt_global_id_range (struct interp_weight_stencil *stencils, size_t stencils_size, yac_int *min_tgt_global_id, yac_int *max_tgt_global_id, MPI_Comm comm) |
|
static void | determine_stencils_io_owner (struct interp_weight_stencil *stencils, size_t stencils_size, yac_int min_tgt_global_id, yac_int max_tgt_global_id, int num_io_procs_int, int *io_owner) |
|
static void | stencil_get_fixed_values (struct interp_weight_stencil *stencils, size_t stencil_count, double **fixed_values, size_t *num_fixed_values, MPI_Comm comm) |
|
static size_t | get_num_weights_per_link (struct interp_weight_stencil *stencil) |
|
static size_t | stencil_get_num_weights_per_tgt (struct interp_weight_stencil *stencils, size_t stencil_count, MPI_Comm comm) |
|
static size_t | get_num_links_per_src_field (struct interp_weight_stencil *stencil, size_t src_field_idx) |
|
static void | stencil_get_counts (struct interp_weight_stencil *stencils, size_t stencil_count, size_t num_fixed_values, double *fixed_values, size_t *num_tgt_per_fixed_value, size_t *num_fixed_tgt, size_t num_src_fields, size_t *num_links_per_src_field, size_t *num_links) |
|
static void | stencil_xscan_offsets (size_t num_fixed_values, size_t *num_tgt_per_fixed_value, size_t num_src_fields, size_t *num_links_per_src_field, size_t *fixed_offsets, size_t *link_offsets, MPI_Comm comm) |
|
static int | global_id_to_address (yac_int global_id) |
|
static void | stencil_get_tgt_address (struct interp_weight_stencil *stencils, size_t stencil_count, int *tgt_address) |
|
static void | stencil_get_link_data (struct interp_weight_stencil *stencils, size_t stencil_count, size_t *num_links_per_src_field, size_t num_src_fields, int *src_address, int *tgt_address, double *weight) |
|
static void | yac_interp_weights_redist_stencils (MPI_Comm comm, size_t count, struct interp_weight_stencil *stencils, int *owner_ranks, size_t *new_count, struct interp_weight_stencil **new_stencils) |
|
void | yac_interp_weights_write_to_file (struct yac_interp_weights *weights, char const *filename, char const *src_grid_name, char const *tgt_grid_name, size_t src_grid_size, size_t tgt_grid_size) |
|
size_t | yac_interp_weights_get_interp_count (struct yac_interp_weights *weights) |
|
yac_int * | yac_interp_weights_get_interp_tgt (struct yac_interp_weights *weights) |
|
MPI_Comm | yac_interp_weights_get_comm (struct yac_interp_weights *weights) |
|
void | yac_interp_weights_delete (struct yac_interp_weights *weights) |
|