91 xmalloc(1 *
sizeof(*interp_stack_copy));
92 interp_stack_copy->
size = interp_stack->
size;
93 interp_stack_copy->
config =
97 interp_stack_copy->
size *
sizeof(*(interp_stack_copy->
config)));
98 return interp_stack_copy;
118 "ERROR(%s): invalid interpolation type", routine)
122 void const * a_,
void const * b_) {
130 a->
general.
type,
"yac_interp_stack_config_entry_compare");
132 b->
general.
type,
"yac_interp_stack_config_entry_compare");
135 "ERROR(yac_interp_stack_config_entry_compare): "
136 "interpolation type is undefined");
296 size_t stack_size = a->
size;
297 for (
size_t method_idx = 0; method_idx < stack_size; ++method_idx)
308 size_t interp_stack_size = interp_stack->
size;
310 xmalloc((interp_stack_size + 1) *
sizeof(*method_stack));
311 method_stack[interp_stack_size] = NULL;
313 for (
size_t i = 0; i < interp_stack_size; ++i) {
319 "ERROR(yac_interp_stack_config_generate): "
320 "unsupported interpolation method")
326 int partial_coverage =
335 int enforced_conserv =
337 int partial_coverage =
344 order, enforced_conserv, partial_coverage, normalisation);
354 char const * weight_file_name =
356 char const * src_grid_name =
358 char const * tgt_grid_name =
362 weight_file_name, src_grid_name, tgt_grid_name);
367 void * constructor_user_data;
369 void * do_search_user_data;
373 &constructor_callback, &constructor_user_data);
380 constructor_callback, constructor_user_data,
388 n_nearest_neighbor.
config);
400 radial_basis_function.
config);
445 char const *
string, MPI_Comm comm) {
447 int strlen_pack_size, string_pack_size;
448 yac_mpi_call(MPI_Pack_size(1, MPI_INT, comm, &strlen_pack_size), comm);
451 string != NULL,
"ERROR(yac_interp_stack_config_get_string_pack_size): "
456 (
int)(strlen(
string)), MPI_CHAR, comm, &string_pack_size), comm);
458 return (
size_t)strlen_pack_size + (size_t)string_pack_size;
464 int int_pack_size, dbl_pack_size;
465 yac_mpi_call(MPI_Pack_size(1, MPI_INT, comm, &int_pack_size), comm);
466 yac_mpi_call(MPI_Pack_size(1, MPI_DOUBLE, comm, &dbl_pack_size), comm);
470 "yac_interp_stack_config_get_entry_pack_size");
473 "ERROR(yac_interp_stack_config_get_entry_pack_size): "
474 "invalid interpolation type")
478 return (
size_t)int_pack_size +
479 (size_t)int_pack_size +
480 (
size_t)int_pack_size;
483 return (
size_t)int_pack_size +
484 (size_t)int_pack_size +
485 (
size_t)int_pack_size +
486 (size_t)dbl_pack_size;
488 return (
size_t)int_pack_size +
489 (size_t)int_pack_size +
490 (
size_t)int_pack_size +
491 (size_t)int_pack_size +
492 (
size_t)int_pack_size;
494 return (
size_t)int_pack_size +
495 (size_t)dbl_pack_size +
496 (
size_t)dbl_pack_size +
497 (size_t)int_pack_size +
498 (
size_t)int_pack_size +
499 (size_t)dbl_pack_size +
500 (
size_t)dbl_pack_size;
502 return (
size_t)int_pack_size +
503 (size_t)dbl_pack_size;
505 return (
size_t)int_pack_size;
507 return (
size_t)int_pack_size +
515 return (
size_t)int_pack_size +
521 return (
size_t)int_pack_size +
522 (size_t)int_pack_size;
524 return (
size_t)int_pack_size +
529 return (
size_t)int_pack_size +
530 (size_t)int_pack_size +
531 (
size_t)int_pack_size;
539 yac_mpi_call(MPI_Pack_size(1, MPI_INT, comm, &size_pack_size), comm);
541 size_t config_pack_size = 0;
543 for (
size_t i = 0; i < interp_stack->
size; ++i)
546 interp_stack->
config + i, comm);
548 return (
size_t)size_pack_size + config_pack_size;
552 char const *
string,
void * buffer,
int buffer_size,
int * position,
555 size_t len = (
string == NULL)?0:strlen(
string);
558 len <= INT_MAX,
"ERROR(yac_interp_stack_config_pack_string): string too long")
560 int len_int = (int)len;
564 &len_int, 1, MPI_INT, buffer, buffer_size, position, comm), comm);
569 string, len_int, MPI_CHAR, buffer, buffer_size, position, comm),
575 void * buffer,
int buffer_size,
int * position, MPI_Comm comm) {
579 MPI_Pack(&
type, 1, MPI_INT, buffer, buffer_size, position, comm), comm);
583 "yac_interp_stack_config_pack_entry");
586 "ERROR(yac_interp_stack_config_pack_entry): "
587 "invalid interpolation type")
594 &reduction_type, 1, MPI_INT, buffer, buffer_size, position, comm),
599 buffer, buffer_size, position, comm), comm);
606 "ERROR(yac_interp_stack_config_pack_entry): "
607 "n_nearest_neighbor.config.n bigger than INT_MAX")
611 &
type, 1, MPI_INT, buffer, buffer_size, position, comm), comm);
615 &n, 1, MPI_INT, buffer, buffer_size, position, comm), comm);
619 buffer, buffer_size, position, comm), comm);
626 buffer, buffer_size, position, comm), comm);
630 buffer, buffer_size, position, comm), comm);
634 buffer, buffer_size, position, comm), comm);
638 &normalisation, 1, MPI_INT, buffer, buffer_size, position, comm),
646 buffer, buffer_size, position, comm), comm);
650 buffer, buffer_size, position, comm), comm);
654 &weight_type, 1, MPI_INT, buffer, buffer_size, position, comm),
659 &scale_type, 1, MPI_INT, buffer, buffer_size, position, comm),
664 buffer, buffer_size, position, comm), comm);
668 buffer, buffer_size, position, comm), comm);
675 buffer, buffer_size, position, comm), comm);
700 buffer, buffer_size, position, comm), comm);
706 buffer, buffer_size, position, comm);
713 &weight_type, 1, MPI_INT, buffer, buffer_size, position, comm),
718 buffer, buffer_size, position, comm), comm);
726 void * buffer,
int buffer_size,
int * position, MPI_Comm comm) {
728 int stack_size = (int)(interp_stack->
size);
731 &stack_size, 1, MPI_INT,
732 buffer, buffer_size, position, comm), comm);
734 for (
size_t i = 0; i < interp_stack->
size; ++i)
736 interp_stack->
config + i, buffer, buffer_size, position, comm);
740 void * buffer,
int buffer_size,
int * position,
741 char *
string,
int max_string_len, MPI_Comm comm) {
746 buffer, buffer_size, position, &string_len, 1, MPI_INT, comm), comm);
750 "ERROR(yac_interp_stack_config_unpack_n_string): invalid string length")
753 string_len < max_string_len,
754 "ERROR(yac_interp_stack_config_unpack_n_string): string length to long")
759 buffer, buffer_size, position,
string, string_len, MPI_CHAR, comm),
761 string[string_len] =
'\0';
765 void * buffer,
int buffer_size,
int * position,
771 buffer, buffer_size, position, &
type, 1, MPI_INT, comm), comm);
777 "yac_interp_stack_config_unpack_entry");
780 "ERROR(yac_interp_stack_config_unpack_entry): "
781 "invalid interpolation type")
788 buffer, buffer_size, position, &reduction_type, 1, MPI_INT, comm),
795 1, MPI_INT, comm), comm);
803 buffer, buffer_size, position, &
type, 1, MPI_INT, comm), comm);
809 buffer, buffer_size, position, &n, 1, MPI_INT, comm), comm);
812 "ERROR(yac_interp_stack_config_unpack_entry): "
813 "invalid n_nearest_neighbor.config.n")
817 buffer, buffer_size, position,
819 1, MPI_DOUBLE, comm), comm);
825 buffer, buffer_size, position,
829 buffer, buffer_size, position,
833 buffer, buffer_size, position,
838 buffer, buffer_size, position, &normalisation, 1, MPI_INT, comm),
847 buffer, buffer_size, position,
851 buffer, buffer_size, position,
856 buffer, buffer_size, position, &weight_type, 1, MPI_INT, comm),
863 buffer, buffer_size, position, &scale_type, 1, MPI_INT, comm),
869 buffer, buffer_size, position,
873 buffer, buffer_size, position,
880 buffer, buffer_size, position,
881 &(entry->
fixed.
value), 1, MPI_DOUBLE, comm), comm);
888 buffer, buffer_size, position,
891 buffer, buffer_size, position,
894 buffer, buffer_size, position,
900 buffer, buffer_size, position,
903 buffer, buffer_size, position,
910 buffer, buffer_size, position,
916 buffer, buffer_size, position,
925 buffer, buffer_size, position, &weight_type, 1, MPI_INT, comm),
931 buffer, buffer_size, position,
933 1, MPI_INT, comm), comm);
940 void * buffer,
int buffer_size,
int * position, MPI_Comm comm) {
945 buffer, buffer_size, position, &stack_size, 1, MPI_INT, comm), comm);
949 "ERROR(yac_interp_stack_config_unpack_interp_stack): invalid stack size")
954 interp_stack->
size = (size_t)stack_size;
958 for (
int i = 0; i < stack_size; ++i)
960 buffer, buffer_size, position, interp_stack->
config + (
size_t)i, comm);
968 xmalloc(1 *
sizeof(*interp_stack_config));
969 interp_stack_config->
config = NULL;
970 interp_stack_config->
size = 0;
972 return interp_stack_config;
976 free(interp_stack_config->
config);
977 free(interp_stack_config);
984 interp_stack_config->
size++;
985 interp_stack_config->
config =
987 interp_stack_config->
config,
988 interp_stack_config->
size *
sizeof(*(interp_stack_config->
config)));
990 return interp_stack_config->
config + (interp_stack_config->
size - 1);
1013 "ERROR(yac_interp_stack_config_add_average_f2c): "
1014 "reduction_type must be one of "
1015 "YAC_INTERP_AVG_ARITHMETIC/YAC_INTERP_AVG_DIST/YAC_INTERP_AVG_BARY");
1041 "ERROR(yac_interp_stack_config_add_ncc_f2c): "
1042 "weight_type must be one of "
1043 "YAC_INTERP_NCC_AVG/YAC_INTERP_NCC_DIST");
1066 .
type =
type, .n =
n, .data.rbf_scale = scale};
1072 int type,
size_t n,
double scale) {
1080 "ERROR(yac_interp_stack_config_add_nnn_f2c): "
1081 "type must be one of YAC_INTERP_NNN_AVG/YAC_INTERP_NNN_DIST/"
1082 "YAC_INTERP_NNN_GAUSS/YAC_INTERP_NNN_RBF/YAC_INTERP_NNN_ZERO.")
1090 int order,
int enforced_conserv,
int partial_coverage,
1111 "ERROR(yac_interp_stack_config_add_conservative_f2c): "
1112 "type must be one of "
1113 "YAC_INTERP_CONSERV_DESTAREA/YAC_INTERP_CONSERV_FRACAREA.")
1148 "ERROR(yac_interp_stack_config_add_spmap_f2c): "
1149 "weight_type must be one of "
1150 "YAC_INTERP_SPMAP_AVG/YAC_INTERP_SPMAP_DIST.")
1157 "ERROR(yac_interp_stack_config_add_spmap_f2c): "
1158 "scale_type must be one of "
1159 "YAC_INTERP_SPMAP_NONE/YAC_INTERP_SPMAP_SRCAREA/"
1160 "YAC_INTERP_SPMAP_INVTGTAREA/YAC_INTERP_SPMAP_FRACAREA.")
1179 char const *
string,
char const * file,
int line,
char const * routine,
1180 char const * variable) {
1183 string != NULL,
"ERROR(%s:%d:%s): %s is NULL",
1184 file, line, routine, variable)
1187 "ERROR(%s:%d:%s): %s is too long", file, line, routine, variable)
1197 "yac_interp_stack_config_add_user_file",
"filename");
1200 "yac_interp_stack_config_add_user_file",
"src_grid_name");
1203 "yac_interp_stack_config_add_user_file",
"tgt_grid_name");
1230 "ERROR(yac_interp_stack_config_add_check): "
1231 "constructor_key name \"%s\" is too long "
1235 "ERROR(yac_interp_stack_config_add_check): "
1236 "do_search_key name \"%s\" is too long "
1273 "yac_interp_stack_config_add_user_callback",
1274 "func_compute_weights_key");
1287 return interp_stack->
size;
1293 size_t interp_stack_idx) {
1296 interp_stack_idx < interp_stack->size,
1297 "ERROR(yac_interp_stack_config_get_entry): "
1298 "invalid interpolation stack index");
1300 return interp_stack->
config + interp_stack_idx;
1317 "ERROR(yac_interp_stack_config_entry_get_average): "
1318 "wrong interpolation stack entry type");
1330 "ERROR(yac_interp_stack_config_entry_get_ncc): "
1331 "wrong interpolation stack entry type");
1345 "ERROR(yac_interp_stack_config_entry_get_nnn): "
1346 "wrong interpolation stack entry type");
1360 "ERROR(yac_interp_stack_config_entry_get_conservative): "
1361 "wrong interpolation stack entry type");
1378 "ERROR(yac_interp_stack_config_entry_get_spmap): "
1379 "wrong interpolation stack entry type");
1396 "ERROR(yac_interp_stack_config_entry_get_user_file): "
1397 "wrong interpolation stack entry type");
1410 "ERROR(yac_interp_stack_config_entry_get_fixed): "
1411 "wrong interpolation stack entry type");
1422 "ERROR(yac_interp_stack_config_entry_get_check): "
1423 "wrong interpolation stack entry type");
1435 "ERROR(yac_interp_stack_config_entry_get_creep): "
1436 "wrong interpolation stack entry type");
1447 "ERROR(yac_interp_stack_config_entry_get_user_callback): "
1448 "wrong interpolation stack entry type");
struct interp_method * yac_interp_method_avg_new(enum yac_interp_avg_weight_type weight_type, int partial_coverage)
yac_interp_avg_weight_type
@ YAC_INTERP_AVG_ARITHMETIC
void yac_interp_method_callback_get_compute_weights_callback(char const *key, yac_func_compute_weights *compute_weights_callback, void **user_data)
static size_t do_search_callback(struct interp_method *method, struct yac_interp_grid *interp_grid, size_t *tgt_points, size_t count, struct yac_interp_weights *weights)
struct interp_method * yac_interp_method_callback_new(yac_func_compute_weights compute_weights_callback, void *user_data)
void(* yac_func_compute_weights)(double const tgt_coords[3], int src_cell_id, size_t src_cell_idx, int const **global_results_points, double **result_weights, size_t *result_count, void *user_data)
void yac_interp_method_check_get_do_search_callback(char const *key, func_do_search *do_search_callback, void **user_data)
void yac_interp_method_check_get_constructor_callback(char const *key, func_constructor *constructor_callback, void **user_data)
struct interp_method * yac_interp_method_check_new(func_constructor constructor_callback, void *constructor_user_data, func_do_search do_search_callback, void *do_search_user_data)
void(* func_do_search)(yac_int const *global_ids, double const (*coordinates_xyz)[3], size_t count, void *user_data)
void(* func_constructor)(void *user_data)
struct interp_method * yac_interp_method_conserv_new(int order, int enforced_conserv, int partial_coverage, enum yac_interp_method_conserv_normalisation normalisation)
yac_interp_method_conserv_normalisation
@ YAC_INTERP_CONSERV_DESTAREA
@ YAC_INTERP_CONSERV_FRACAREA
struct interp_method * yac_interp_method_creep_new(int creep_distance)
struct interp_method * yac_interp_method_file_new(char const *weight_file_name, char const *src_grid_name, char const *tgt_grid_name)
struct interp_method * yac_interp_method_fixed_new(double value)
struct interp_method * yac_interp_method_hcsbb_new()
struct interp_method * yac_interp_method_ncc_new(enum yac_interp_ncc_weight_type weight_type, int partial_coverage)
yac_interp_ncc_weight_type
@ YAC_INTERP_NCC_DIST
distance weighted average of n source points
@ YAC_INTERP_NCC_AVG
average of n source points
struct interp_method * yac_interp_method_nnn_new(struct yac_nnn_config config)
yac_interp_nnn_weight_type
@ YAC_INTERP_NNN_GAUSS
distance with Gauss weights of n source points
@ YAC_INTERP_NNN_RBF
radial basis functions
@ YAC_INTERP_NNN_AVG
average of n source points
@ YAC_INTERP_NNN_DIST
distance weighted average of n source points
@ YAC_INTERP_NNN_ZERO
all weights are set to zero
struct interp_method * yac_interp_method_spmap_new(double spread_distance, double max_search_distance, enum yac_interp_spmap_weight_type weight_type, enum yac_interp_spmap_scale_type scale_type, double src_sphere_radius, double tgt_sphere_radius)
yac_interp_spmap_scale_type
@ YAC_INTERP_SPMAP_NONE
weights are not scaled
@ YAC_INTERP_SPMAP_INVTGTAREA
@ YAC_INTERP_SPMAP_SRCAREA
@ YAC_INTERP_SPMAP_FRACAREA
yac_interp_spmap_weight_type
void yac_interp_stack_config_entry_get_creep(union yac_interp_stack_config_entry const *interp_stack_entry, int *creep_distance)
void yac_interp_stack_config_add_check(struct yac_interp_stack_config *interp_stack_config, char const *constructor_key, char const *do_search_key)
size_t yac_interp_stack_config_get_size(struct yac_interp_stack_config *interp_stack)
void yac_interp_stack_config_add_user_file(struct yac_interp_stack_config *interp_stack_config, char const *filename, char const *src_grid_name, char const *tgt_grid_name)
void yac_interp_stack_config_add_nnn_f2c(struct yac_interp_stack_config *interp_stack_config, int type, size_t n, double scale)
void yac_interp_stack_config_entry_get_user_file(union yac_interp_stack_config_entry const *interp_stack_entry, char const **filename, char const **src_grid_name, char const **tgt_grid_name)
void yac_interp_stack_config_add_spmap_f2c(struct yac_interp_stack_config *interp_stack_config, double spread_distance, double max_search_distance, int weight_type, int scale_type, double src_sphere_radius, double tgt_sphere_radius)
int yac_interp_stack_config_compare(void const *a_, void const *b_)
static union yac_interp_stack_config_entry * yac_interp_stack_config_add_entry(struct yac_interp_stack_config *interp_stack_config)
void yac_interp_stack_config_add_spmap(struct yac_interp_stack_config *interp_stack_config, double spread_distance, double max_search_distance, enum yac_interp_spmap_weight_type weight_type, enum yac_interp_spmap_scale_type scale_type, double src_sphere_radius, double tgt_sphere_radius)
union yac_interp_stack_config_entry const * yac_interp_stack_config_get_entry(struct yac_interp_stack_config *interp_stack, size_t interp_stack_idx)
static void yac_interp_stack_config_pack_string(char const *string, void *buffer, int buffer_size, int *position, MPI_Comm comm)
enum yac_interpolation_list yac_interp_stack_config_entry_get_type(union yac_interp_stack_config_entry const *interp_stack_entry)
void yac_interp_stack_config_add_nnn(struct yac_interp_stack_config *interp_stack_config, enum yac_interp_nnn_weight_type type, size_t n, double scale)
void yac_interp_stack_config_add_fixed(struct yac_interp_stack_config *interp_stack_config, double value)
void yac_interp_stack_config_add_hcsbb(struct yac_interp_stack_config *interp_stack_config)
void yac_interp_stack_config_add_average(struct yac_interp_stack_config *interp_stack_config, enum yac_interp_avg_weight_type reduction_type, int partial_coverage)
static void yac_interp_stack_config_pack_entry(union yac_interp_stack_config_entry *entry, void *buffer, int buffer_size, int *position, MPI_Comm comm)
void yac_interp_stack_config_add_creep(struct yac_interp_stack_config *interp_stack_config, int creep_distance)
static size_t yac_interp_stack_config_get_string_pack_size(char const *string, MPI_Comm comm)
void yac_interp_stack_config_entry_get_ncc(union yac_interp_stack_config_entry const *interp_stack_entry, enum yac_interp_ncc_weight_type *type, int *partial_coverage)
void yac_interp_stack_config_add_conservative_f2c(struct yac_interp_stack_config *interp_stack_config, int order, int enforced_conserv, int partial_coverage, int normalisation)
static void yac_interp_stack_config_unpack_entry(void *buffer, int buffer_size, int *position, union yac_interp_stack_config_entry *entry, MPI_Comm comm)
struct yac_interp_stack_config * yac_interp_stack_config_unpack(void *buffer, int buffer_size, int *position, MPI_Comm comm)
void yac_interp_stack_config_add_ncc_f2c(struct yac_interp_stack_config *interp_stack_config, int weight_type, int partial_coverage)
static void check_interpolation_type(enum yac_interpolation_list type, char const *routine)
void yac_interp_stack_config_delete(struct yac_interp_stack_config *interp_stack_config)
void yac_interp_stack_config_entry_get_spmap(union yac_interp_stack_config_entry const *interp_stack_entry, double *spread_distance, double *max_search_distance, enum yac_interp_spmap_weight_type *weight_type, enum yac_interp_spmap_scale_type *scale_type, double *src_sphere_radius, double *tgt_sphere_radius)
void yac_interp_stack_config_entry_get_user_callback(union yac_interp_stack_config_entry const *interp_stack_entry, char const **func_compute_weights_key)
struct yac_interp_stack_config * yac_interp_stack_config_copy(struct yac_interp_stack_config *interp_stack)
void yac_interp_stack_config_add_conservative(struct yac_interp_stack_config *interp_stack_config, int order, int enforced_conserv, int partial_coverage, enum yac_interp_method_conserv_normalisation normalisation)
void yac_interp_stack_config_entry_get_check(union yac_interp_stack_config_entry const *interp_stack_entry, char const **constructor_key, char const **do_search_key)
static int yac_interp_stack_config_entry_compare(void const *a_, void const *b_)
struct interp_method ** yac_interp_stack_config_generate(struct yac_interp_stack_config *interp_stack)
void yac_interp_stack_config_entry_get_conservative(union yac_interp_stack_config_entry const *interp_stack_entry, int *order, int *enforced_conserv, int *partial_coverage, enum yac_interp_method_conserv_normalisation *normalisation)
void yac_interp_stack_config_entry_get_average(union yac_interp_stack_config_entry const *interp_stack_entry, enum yac_interp_avg_weight_type *reduction_type, int *partial_coverage)
size_t yac_interp_stack_config_get_pack_size(struct yac_interp_stack_config *interp_stack, MPI_Comm comm)
void yac_interp_stack_config_add_average_f2c(struct yac_interp_stack_config *interp_stack_config, int reduction_type, int partial_coverage)
void yac_interp_stack_config_add_ncc(struct yac_interp_stack_config *interp_stack_config, enum yac_interp_ncc_weight_type weight_type, int partial_coverage)
void yac_interp_stack_config_add_user_callback(struct yac_interp_stack_config *interp_stack_config, char const *func_compute_weights_key)
static void yac_interp_stack_config_unpack_n_string(void *buffer, int buffer_size, int *position, char *string, int max_string_len, MPI_Comm comm)
struct yac_interp_stack_config * yac_interp_stack_config_new()
void yac_interp_stack_config_pack(struct yac_interp_stack_config *interp_stack, void *buffer, int buffer_size, int *position, MPI_Comm comm)
static void check_string(char const *string, char const *file, int line, char const *routine, char const *variable)
void yac_interp_stack_config_entry_get_fixed(union yac_interp_stack_config_entry const *interp_stack_entry, double *value)
static size_t yac_interp_stack_config_get_entry_pack_size(union yac_interp_stack_config_entry *entry, MPI_Comm comm)
void yac_interp_stack_config_entry_get_nnn(union yac_interp_stack_config_entry const *interp_stack_entry, enum yac_interp_nnn_weight_type *type, size_t *n, double *scale)
@ YAC_SOURCE_TO_TARGET_MAP
@ YAC_NEAREST_CORNER_CELLS
@ YAC_RADIAL_BASIS_FUNCTION
#define YAC_MAX_ROUTINE_NAME_LENGTH
#define YAC_MAX_FILE_NAME_LENGTH
#define xrealloc(ptr, size)
union yac_interp_stack_config_entry * config
union yac_nnn_config::@22 data
enum yac_interp_nnn_weight_type type
struct yac_interp_stack_config_entry::@28 hcsbb
enum yac_interp_ncc_weight_type weight_type
char do_search_key[YAC_MAX_ROUTINE_NAME_LENGTH]
struct yac_interp_stack_config_entry::@26 conservative
struct yac_interp_stack_config_entry::@23 general
struct yac_interp_stack_config_entry::@25 n_nearest_neighbor
struct yac_interp_stack_config_entry::@31 check
double max_search_distance
char src_grid_name[YAC_MAX_FILE_NAME_LENGTH]
enum yac_interpolation_list type
struct yac_interp_stack_config_entry::@27 spmap
struct yac_nnn_config config
char tgt_grid_name[YAC_MAX_FILE_NAME_LENGTH]
struct yac_interp_stack_config_entry::@24 average
char constructor_key[YAC_MAX_ROUTINE_NAME_LENGTH]
enum yac_interp_avg_weight_type reduction_type
struct yac_interp_stack_config_entry::@33 user_callback
enum yac_interp_spmap_scale_type scale_type
struct yac_interp_stack_config_entry::@29 user_file
enum yac_interp_method_conserv_normalisation normalisation
char filename[YAC_MAX_FILE_NAME_LENGTH]
struct yac_interp_stack_config_entry::@30 fixed
enum yac_interp_spmap_weight_type weight_type
struct yac_interp_stack_config_entry::@25 radial_basis_function
struct yac_interp_stack_config_entry::@32 creep
struct yac_interp_stack_config_entry::@34 nearest_corner_cells
char func_compute_weights_key[YAC_MAX_ROUTINE_NAME_LENGTH]
#define YAC_ASSERT_F(exp, format,...)
#define YAC_ASSERT(exp, msg)
#define yac_mpi_call(call, comm)