YetAnotherCoupler 3.5.2
Loading...
Searching...
No Matches
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)
 
#define YAC_YAXT_EXCHANGER_STR   "YAC_YAXT_EXCHANGER"
 

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, 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_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, 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_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, char const *yaxt_exchanger_name)
 
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, 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_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.

◆ YAC_YAXT_EXCHANGER_STR

#define YAC_YAXT_EXCHANGER_STR   "YAC_YAXT_EXCHANGER"

Definition at line 21 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 23 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 1639 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 3998 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 4181 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 3341 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 3362 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 3321 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 1633 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 3004 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 3707 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 1039 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 1182 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 650 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 1618 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 2611 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 1474 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 150 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 184 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 205 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 164 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 4007 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 4230 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 2362 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 3380 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 3944 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,
Xt_config redist_config )
static

Definition at line 895 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,
Xt_config redist_config )
static

Definition at line 797 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,
Xt_config redist_config )
static

Definition at line 3142 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 ( struct remote_point_infos * point_infos,
size_t count,
MPI_Comm comm,
Xt_config redist_config )
static

Definition at line 3385 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 2638 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 1161 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 1020 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 665 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 4338 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 4304 of file interp_weights.c.

Here is the caller graph for this function:

◆ get_redist_config()

static Xt_config get_redist_config ( char const * yaxt_exchanger_name,
MPI_Comm comm )
static

Definition at line 3713 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 1390 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 1424 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 1376 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 1399 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 1458 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 1408 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 1439 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 2733 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 1921 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 2711 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 4450 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 1986 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 2020 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 1974 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 1996 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 2036 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 2005 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 2057 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 2082 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 2751 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 2850 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 2963 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 3017 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 771 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 4207 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 4379 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 4245 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 4467 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 4319 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 4459 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 4412 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 1852 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 1779 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 1689 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 2177 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 2218 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 2165 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 2187 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 2236 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 2198 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 2261 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 2296 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 2805 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 1561 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 788 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 3950 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 416 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 440 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 241 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 369 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 479 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 263 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 566 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()

◆ 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 4867 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 4847 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 4853 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,
char const * yaxt_exchanger_name )

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
[in]yaxt_exchanger_namename of the yaxt exchanger that is to be used in the interpolation
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
if yaxt_exchanger_name == NULL, the default exchanger will be used
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_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 3776 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,
char const * yaxt_exchanger_name )

Definition at line 3923 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 2463 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 130 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,
Xt_config redist_config )
static

Definition at line 1052 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,
Xt_config redist_config )
static

Definition at line 1202 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 682 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 4581 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,
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

Definition at line 3484 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 2530 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 4615 of file interp_weights.c.

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