YetAnotherCoupler 3.2.0_a
Loading...
Searching...
No Matches
Data Structures | Macros | Enumerations | Functions
interp_weights.c File Reference
#include "config.h"
#include <string.h>
#include "yac_mpi_internal.h"
#include "interp_weights_internal.h"
#include "ensure_array_size.h"
#include "io_utils.h"
#include "utils_core.h"
#include "interp_method_file.h"
Include dependency graph for interp_weights.c:

Go to the source code of this file.

Data Structures

struct  interp_weight_stencil
 
struct  interp_weight_stencil_wsum_mf_weight
 
struct  interp_weight_stencil_wsum_mf
 
struct  interp_weight_stencils_wsum_mf
 
struct  interp_weight_stencils_wsum_mf_buffer
 
struct  interp_weight_stencil_fixed
 
struct  interp_weight_stencil_direct
 
struct  interp_weight_stencil_direct_mf
 
struct  weighted_global_id
 
struct  yac_interp_weights
 
struct  remote_point_info_reorder
 

Macros

#define WEIGHT_TOL   (1e-9)
 

Enumerations

enum  yac_interp_weight_stencil_type {
  FIXED = 0 , DIRECT = 1 , SUM = 2 , WEIGHT_SUM = 3 ,
  DIRECT_MF = 4 , SUM_MF = 5 , WEIGHT_SUM_MF = 6 , WEIGHT_STENCIL_TYPE_SIZE = 7
}
 

Functions

struct yac_interp_weightsyac_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_pointscopy_remote_points (struct remote_point *points, size_t count)
 
static struct remote_pointscopy_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)
 
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)
 
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)
 
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)
 
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_stencilexchange_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_stencilyac_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_mfgenerate_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_mfredist_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_mfredist_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_mfredist_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)
 
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 (enum yac_location location, struct remote_point_infos *point_infos, size_t count, MPI_Comm comm)
 
static void yac_interp_weights_redist_w_sum_mf (MPI_Comm comm, enum yac_location tgt_location, 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)
 
static int compare_stencils (const void *a, const void *b)
 
struct yac_interpolationyac_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)
 
struct yac_interpolationyac_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)
 
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_intyac_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)
 

Macro Definition Documentation

◆ WEIGHT_TOL

#define WEIGHT_TOL   (1e-9)

Definition at line 12 of file interp_weights.c.

Enumeration Type Documentation

◆ yac_interp_weight_stencil_type

Enumerator
FIXED 
DIRECT 
SUM 
WEIGHT_SUM 
DIRECT_MF 
SUM_MF 
WEIGHT_SUM_MF 
WEIGHT_STENCIL_TYPE_SIZE 

Definition at line 21 of file interp_weights.c.

Function Documentation

◆ compact_srcs_w()

static void compact_srcs_w ( struct remote_points srcs,
double **  w 
)
static

Definition at line 1633 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compare_double()

static int compare_double ( void const *  a,
void const *  b 
)
static
Examples
test_angle.c.

Definition at line 3911 of file interp_weights.c.

Here is the caller graph for this function:

◆ compare_interp_weight_stencil()

static int compare_interp_weight_stencil ( const void *  a,
const void *  b 
)
static

Definition at line 4094 of file interp_weights.c.

Here is the caller graph for this function:

◆ compare_interp_weight_stencil_wsum_mf_src_orig_pos()

static int compare_interp_weight_stencil_wsum_mf_src_orig_pos ( const void *  a,
const void *  b 
)
static

Definition at line 3327 of file interp_weights.c.

Here is the caller graph for this function:

◆ compare_interp_weight_stencil_wsum_mf_tgt_orig_pos()

static int compare_interp_weight_stencil_wsum_mf_tgt_orig_pos ( const void *  a,
const void *  b 
)
static

Definition at line 3348 of file interp_weights.c.

Here is the caller graph for this function:

◆ compare_rank_pos_reorder_field_idx()

static int compare_rank_pos_reorder_field_idx ( const void *  a,
const void *  b 
)
static

Definition at line 3307 of file interp_weights.c.

Here is the caller graph for this function:

◆ compare_remote_point()

static int compare_remote_point ( const void *  a,
const void *  b 
)
static

Definition at line 1627 of file interp_weights.c.

Here is the caller graph for this function:

◆ compare_remote_point_info()

static int compare_remote_point_info ( const void *  a,
const void *  b 
)
static

Definition at line 2992 of file interp_weights.c.

Here is the caller graph for this function:

◆ compare_stencils()

static int compare_stencils ( const void *  a,
const void *  b 
)
static

Definition at line 3693 of file interp_weights.c.

Here is the caller graph for this function:

◆ compare_stencils_direct()

static int compare_stencils_direct ( const void *  a,
const void *  b 
)
static

Definition at line 1037 of file interp_weights.c.

Here is the caller graph for this function:

◆ compare_stencils_direct_mf()

static int compare_stencils_direct_mf ( const void *  a,
const void *  b 
)
static

Definition at line 1179 of file interp_weights.c.

Here is the caller graph for this function:

◆ compare_stencils_fixed()

static int compare_stencils_fixed ( const void *  a,
const void *  b 
)
static

Definition at line 649 of file interp_weights.c.

Here is the caller graph for this function:

◆ compare_w_global_id()

static int compare_w_global_id ( const void *  a,
const void *  b 
)
static

Definition at line 1612 of file interp_weights.c.

Here is the caller graph for this function:

◆ compute_owner()

static int compute_owner ( int *  ranks,
size_t  count 
)
static

Definition at line 2599 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ copy_interp_weight_stencil()

static struct interp_weight_stencil copy_interp_weight_stencil ( struct interp_weight_stencil stencil,
struct remote_point  point 
)
static

Definition at line 1468 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ copy_remote_point()

static struct remote_point copy_remote_point ( struct remote_point  point)
inlinestatic

Definition at line 149 of file interp_weights.c.

Here is the caller graph for this function:

◆ copy_remote_points()

static struct remote_points * copy_remote_points ( struct remote_point points,
size_t  count 
)
inlinestatic

Definition at line 183 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ copy_remote_points_mf()

static struct remote_points * copy_remote_points_mf ( struct remote_point **  points,
size_t *  counts,
size_t  num_fields 
)
inlinestatic

Definition at line 204 of file interp_weights.c.

Here is the caller graph for this function:

◆ copy_remote_points_no_alloc()

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_ 
)
inlinestatic

Definition at line 163 of file interp_weights.c.

Here is the caller graph for this function:

◆ create_weight_file()

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

create a weight file with basic meta data

Definition at line 3920 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ determine_stencils_io_owner()

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

Definition at line 4143 of file interp_weights.c.

Here is the caller graph for this function:

◆ exchange_stencils()

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

Definition at line 2350 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ free_remote_point()

static void free_remote_point ( struct remote_point  point)
static

Definition at line 3366 of file interp_weights.c.

Here is the caller graph for this function:

◆ free_remote_points()

static void free_remote_points ( struct remote_points points)
static

Definition at line 3857 of file interp_weights.c.

Here is the caller graph for this function:

◆ generate_direct_mf_redists()

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 
)
static

Definition at line 894 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ generate_direct_redist()

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 
)
static

Definition at line 796 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ generate_halo_redists()

static Xt_redist * generate_halo_redists ( struct remote_point_info_reorder halo_points,
size_t  count,
size_t  num_src_fields,
MPI_Comm  comm 
)
static

Definition at line 3130 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ generate_redist_put_double()

static Xt_redist generate_redist_put_double ( enum yac_location  location,
struct remote_point_infos point_infos,
size_t  count,
MPI_Comm  comm 
)
static

Definition at line 3371 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ generate_w_sum_mf_stencils()

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

Definition at line 2626 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_direct_mf_stencil_mpi_datatype()

static MPI_Datatype get_direct_mf_stencil_mpi_datatype ( MPI_Comm  comm)
static

Definition at line 1158 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_direct_stencil_mpi_datatype()

static MPI_Datatype get_direct_stencil_mpi_datatype ( MPI_Comm  comm)
static

Definition at line 1018 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_fixed_stencil_mpi_datatype()

static MPI_Datatype get_fixed_stencil_mpi_datatype ( MPI_Comm  comm)
static

Definition at line 664 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_num_links_per_src_field()

static size_t get_num_links_per_src_field ( struct interp_weight_stencil stencil,
size_t  src_field_idx 
)
static

Definition at line 4251 of file interp_weights.c.

Here is the caller graph for this function:

◆ get_num_weights_per_link()

static size_t get_num_weights_per_link ( struct interp_weight_stencil stencil)
static

Definition at line 4217 of file interp_weights.c.

Here is the caller graph for this function:

◆ get_stencil_pack_size_direct()

static int get_stencil_pack_size_direct ( struct interp_weight_stencil stencil,
MPI_Datatype  point_info_dt,
MPI_Comm  comm 
)
static

Definition at line 1384 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_stencil_pack_size_direct_mf()

static int get_stencil_pack_size_direct_mf ( struct interp_weight_stencil stencil,
MPI_Datatype  point_info_dt,
MPI_Comm  comm 
)
static

Definition at line 1418 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_stencil_pack_size_fixed()

static int get_stencil_pack_size_fixed ( struct interp_weight_stencil stencil,
MPI_Datatype  point_info_dt,
MPI_Comm  comm 
)
static

Definition at line 1373 of file interp_weights.c.

Here is the caller graph for this function:

◆ get_stencil_pack_size_sum()

static int get_stencil_pack_size_sum ( struct interp_weight_stencil stencil,
MPI_Datatype  point_info_dt,
MPI_Comm  comm 
)
static

Definition at line 1393 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_stencil_pack_size_sum_mf()

static int get_stencil_pack_size_sum_mf ( struct interp_weight_stencil stencil,
MPI_Datatype  point_info_dt,
MPI_Comm  comm 
)
static

Definition at line 1452 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_stencil_pack_size_wsum()

static int get_stencil_pack_size_wsum ( struct interp_weight_stencil stencil,
MPI_Datatype  point_info_dt,
MPI_Comm  comm 
)
static

Definition at line 1402 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_stencil_pack_size_wsum_mf()

static int get_stencil_pack_size_wsum_mf ( struct interp_weight_stencil stencil,
MPI_Datatype  point_info_dt,
MPI_Comm  comm 
)
static

Definition at line 1433 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_stencil_wsum_mf_pack_size()

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

Definition at line 2721 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_stencils_pack_sizes()

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

Definition at line 1913 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_wsum_mf_weight_mpi_datatype()

static MPI_Datatype get_wsum_mf_weight_mpi_datatype ( MPI_Comm  comm)
static

Definition at line 2699 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ global_id_to_address()

static int global_id_to_address ( yac_int  global_id)
static

Definition at line 4363 of file interp_weights.c.

Here is the caller graph for this function:

◆ pack_stencil_direct()

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

Definition at line 1976 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pack_stencil_direct_mf()

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

Definition at line 2010 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pack_stencil_fixed()

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

Definition at line 1966 of file interp_weights.c.

Here is the caller graph for this function:

◆ pack_stencil_sum()

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

Definition at line 1986 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pack_stencil_sum_mf()

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

Definition at line 2026 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pack_stencil_wsum()

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

Definition at line 1995 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pack_stencil_wsum_mf()

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

Definition at line 2047 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pack_stencils()

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

Definition at line 2072 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pack_stencils_wsum_mf()

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

Definition at line 2739 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ redist_wsum_mf_stencils()

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

Definition at line 2838 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ redist_wsum_mf_stencils_src()

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

Definition at line 2951 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ redist_wsum_mf_stencils_tgt()

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

Definition at line 3005 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ select_src()

static struct remote_point_info select_src ( struct remote_point_infos  src)
inlinestatic

Definition at line 770 of file interp_weights.c.

Here is the caller graph for this function:

◆ stencil_determine_tgt_global_id_range()

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

Definition at line 4120 of file interp_weights.c.

Here is the caller graph for this function:

◆ stencil_get_counts()

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

Definition at line 4292 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stencil_get_fixed_values()

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

Definition at line 4158 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stencil_get_link_data()

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

Definition at line 4380 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stencil_get_num_weights_per_tgt()

static size_t stencil_get_num_weights_per_tgt ( struct interp_weight_stencil stencils,
size_t  stencil_count,
MPI_Comm  comm 
)
static

Definition at line 4232 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stencil_get_tgt_address()

static void stencil_get_tgt_address ( struct interp_weight_stencil stencils,
size_t  stencil_count,
int *  tgt_address 
)
static

Definition at line 4372 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stencil_xscan_offsets()

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

Definition at line 4325 of file interp_weights.c.

Here is the caller graph for this function:

◆ stencils_merge()

static struct interp_weight_stencil stencils_merge ( struct interp_weight_stencil **  stencils,
double *  w,
size_t  num_stencils,
struct remote_point  point 
)
static

Definition at line 1844 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stencils_merge_sum()

static struct interp_weight_stencil stencils_merge_sum ( struct interp_weight_stencil **  stencils,
double *  w,
size_t  num_stencils 
)
static

Definition at line 1771 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stencils_merge_wsum()

static struct interp_weight_stencil stencils_merge_wsum ( struct interp_weight_stencil **  stencils,
double *  w,
size_t  num_stencils 
)
static

Definition at line 1681 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unpack_stencil_direct()

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

Definition at line 2165 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unpack_stencil_direct_mf()

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

Definition at line 2206 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unpack_stencil_fixed()

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

Definition at line 2155 of file interp_weights.c.

Here is the caller graph for this function:

◆ unpack_stencil_sum()

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

Definition at line 2175 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unpack_stencil_sum_mf()

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

Definition at line 2224 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unpack_stencil_wsum()

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

Definition at line 2186 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unpack_stencil_wsum_mf()

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

Definition at line 2249 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unpack_stencils()

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

Definition at line 2284 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unpack_stencils_wsum_mf()

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

Definition at line 2793 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ wcopy_interp_weight_stencil()

static struct interp_weight_stencil wcopy_interp_weight_stencil ( struct interp_weight_stencil stencil,
struct remote_point  point,
double  weight 
)
static

Definition at line 1555 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xt_redist_msg_free()

static void xt_redist_msg_free ( struct Xt_redist_msg *  msgs,
size_t  count,
MPI_Comm  comm 
)
static

Definition at line 787 of file interp_weights.c.

Here is the caller graph for this function:

◆ yac_interp_weight_stencils_delete()

static void yac_interp_weight_stencils_delete ( struct interp_weight_stencil stencils,
size_t  count 
)
static

Definition at line 3863 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_add_direct()

void yac_interp_weights_add_direct ( struct yac_interp_weights weights,
struct remote_points tgts,
struct remote_point srcs 
)

adds targets that are to get single source values

Parameters
[in]weightsinterpolation weights
[in]tgtstargets that get the value of a selected source point
[in]srcssources
Examples
test_duplicate_stencils_parallel.c, and test_interp_weights_parallel.c.

Definition at line 415 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_add_direct_mf()

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 
)

adds targets that are to get single source values

Parameters
[in]weightsinterpolation weights
[in]tgtstargets that get the value of a selected source point
[in]src_field_indicessource field indices of selected source point
[in]srcs_per_fieldsources per source field
[in]num_src_fieldsnumber of input source fields
Examples
test_interp_weights_parallel.c.

Definition at line 439 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_add_fixed()

void yac_interp_weights_add_fixed ( struct yac_interp_weights weights,
struct remote_points tgts,
double  fixed_value 
)

adds targets that are to get a fixed value

Parameters
[in]weightsinterpolation weights
[in]tgtstargets that get a fixed value
[in]fixed_valuefixed value that is to be assigned to the provided targets
Examples
test_interp_weights_parallel.c.

Definition at line 240 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_add_sum()

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 
)

adds targets that are to get a sum of source values

Parameters
[in]weightsinterpolation weights
[in]tgtstargets that get the weighted sum
[in]num_src_per_tgtnumber of sources per target
[in]srcssources
Examples
test_interp_weights_parallel.c.

Definition at line 368 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_add_sum_mf()

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 
)

adds targets that are to get a sum of source values

Parameters
[in]weightsinterpolation weights
[in]tgtstargets that get the sum
[in]num_src_per_field_per_tgtnumber of sources per target per source field
[in]srcs_per_fieldsources per source field
[in]num_src_fieldsnumber of input source fields
Remarks
num_src_per_field_per_tgt is a 1-D Array with the following data layout:
num_src_per_field_per_tgt[tgts->count][num_src_fields]
Examples
test_interp_weights_parallel.c.

Definition at line 478 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_add_wsum()

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 
)

adds targets that are to get a weighted sum of source values

Parameters
[in]weightsinterpolation weights
[in]tgtstargets that get the sum
[in]num_src_per_tgtnumber of sources per target
[in]srcssources
[in]wweights
Examples
test_interp_weights_parallel.c.

Definition at line 262 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_add_wsum_mf()

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 
)

adds targets that are to get a weighted sum of source values

Parameters
[in]weightsinterpolation weights
[in]tgtstargets that get the weighted sum
[in]num_src_per_field_per_tgtnumber of sources per target per source field
[in]srcs_per_fieldsources per source field
[in]wweights
[in]num_src_fieldsnumber of input source fields
Remarks
num_src_per_field_per_tgt is a 1-D Array with the following data layout:
num_src_per_field_per_tgt[tgts->count][num_src_fields]
Examples
test_interp_weights_parallel.c.

Definition at line 565 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_delete()

void yac_interp_weights_delete ( struct yac_interp_weights weights)

◆ yac_interp_weights_get_comm()

MPI_Comm yac_interp_weights_get_comm ( struct yac_interp_weights weights)

returns the MPI communicator used by weights

Parameters
[in]weightsinterpololation weights
Returns
MPI communicator used by weights
Examples
test_interp_weights_parallel.c.

Definition at line 4780 of file interp_weights.c.

Here is the caller graph for this function:

◆ yac_interp_weights_get_interp_count()

size_t yac_interp_weights_get_interp_count ( struct yac_interp_weights weights)

returns the count of all target for which the weights contain a stencil

Parameters
[in]weightsinterpolation weights
Returns
count of all targets in weights with a stencil

Definition at line 4760 of file interp_weights.c.

Here is the caller graph for this function:

◆ yac_interp_weights_get_interp_tgt()

yac_int * yac_interp_weights_get_interp_tgt ( struct yac_interp_weights weights)

returns the global ids of all targets for which the weights contain a stencil

Parameters
[in]weightsinterpolation weights
Returns
global ids of all targets in weights with a stencil

Definition at line 4766 of file interp_weights.c.

Here is the caller graph for this function:

◆ yac_interp_weights_get_interpolation()

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 
)

generates an interpolation from interpolation weights

Parameters
[in]weightsinterpolation weights
[in]reorderdetermines at which processes the weights are to be applied
[in]collection_sizecollection size
[in]frac_mask_fallback_valuefallback value for dynamic fractional masking
[in]scaling_factorscaling factor
[in]scaling_summandscaling summand
Returns
interpolation
Remarks
if frac_mask_fallback_value != YAC_FRAC_MASK_NO_VALUE, dynamic fractional masking will be used
all target field values, whose source points are not masked by the fractional mask, that receive a interpolation value, which is not a fixed value will by scaled by the following formula:
y = scaling_factor * x + scaling_summand
Examples
test_duplicate_stencils_parallel.c, test_interp_method_avg_parallel.c, test_interp_method_callback_parallel.c, test_interp_method_conserv_parallel.c, test_interp_method_creep_parallel.c, test_interp_method_file_parallel.c, test_interp_method_hcsbb_parallel.c, test_interp_method_ncc_parallel.c, test_interp_method_nnn_parallel.c, test_interp_method_nnn_parallel2.c, test_interp_method_rbf_parallel.c, test_interp_method_spmap_parallel.c, test_interp_weights_parallel.c, test_interpolation_parallel1_c.c, test_interpolation_parallel2.c, test_interpolation_parallel3.c, test_interpolation_parallel4.c, and test_interpolation_parallel5.c.

Definition at line 3699 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_get_interpolation_f2c()

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 
)

Definition at line 3839 of file interp_weights.c.

Here is the call graph for this function:

◆ yac_interp_weights_get_stencils()

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

Definition at line 2451 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_new()

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 
)

Constructor for interpolation weights.

Parameters
[in]commMPI communicator
[in]tgt_locationlocation of target field
[in]src_locationslocations of source fields
[in]num_src_fieldsnumber of source fields
Returns
interpolation weights
Examples
test_duplicate_stencils_parallel.c, and test_interp_weights_parallel.c.

Definition at line 129 of file interp_weights.c.

Here is the caller graph for this function:

◆ yac_interp_weights_redist_direct()

static void yac_interp_weights_redist_direct ( MPI_Comm  comm,
uint64_t  count,
struct interp_weight_stencil direct_stencils,
struct yac_interpolation interp 
)
static

Definition at line 1050 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_redist_direct_mf()

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 
)
static

Definition at line 1199 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_redist_fixed()

static void yac_interp_weights_redist_fixed ( MPI_Comm  comm,
uint64_t  count,
struct interp_weight_stencil fixed_stencils,
struct yac_interpolation interp 
)
static

Definition at line 681 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_redist_stencils()

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 
)
static

Definition at line 4494 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_redist_w_sum_mf()

static void yac_interp_weights_redist_w_sum_mf ( MPI_Comm  comm,
enum yac_location  tgt_location,
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 
)
static

Definition at line 3469 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_wcopy_weights()

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 
)

adds targets whose stencil is the weighted sum of the copies of existing stencils

Parameters
[in]weightsinterpolation weights
[in]tgtstargets that get the weightes sum
[in]num_stencils_per_tgtnumber of stencils per target
[in]stencil_indicesindices of the stencils to be copied
[in]stencil_ranksranks of the processs owning the respective stencil
[in]wweights
Remarks
this call is collective
Examples
test_interp_weights_parallel.c.

Definition at line 2518 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_interp_weights_write_to_file()

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 
)

writes interpolation weights to file

Parameters
[in]weightsinterpolation weights
[in]filenamefile name
[in]src_grid_namename of the source grid
[in]tgt_grid_namename of the target grid
[in]src_grid_sizeglobal size of the source grid
[in]tgt_grid_sizeglobal size of the target grid
Remarks
this call is collective
Global grid size argument can be either the global grid size or zero. If a valid global grid size was provided by at least one process, it will be added as a dimension to the weight file.
Examples
test_interp_method_file_parallel.c, test_interp_weights_parallel.c, test_interpolation_parallel3.c, test_interpolation_parallel4.c, and test_interpolation_parallel5.c.

Definition at line 4528 of file interp_weights.c.

Here is the call graph for this function:
Here is the caller graph for this function: