YAC 3.21.0
Yet Another Coupler
Loading...
Searching...
No Matches
interp_stack_config.h
Go to the documentation of this file.
1// Copyright (c) 2024 The YAC Authors
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
5#ifndef INTERP_STACK_CONFIG_H
6#define INTERP_STACK_CONFIG_H
7
21
22// YAC PUBLIC HEADER START
23
26
32
38 struct yac_interp_stack_config * interp_stack_config);
39
46 struct yac_interp_stack_config * interp_stack);
47
54 struct yac_interp_stack_config * interp_stack);
55
62 struct yac_interp_stack_config * interp_stack_config,
63 struct yac_interp_method_config * method_config);
64
72 struct yac_interp_stack_config * interp_stack,
73 size_t interp_stack_idx);
74
83int yac_interp_stack_config_compare(void const * a, void const * b);
84
92 struct yac_interp_stack_config * interp_stack);
93
101 struct yac_interp_stack_config * interp_stack, MPI_Comm comm);
102
112 struct yac_interp_stack_config * interp_stack,
113 void * buffer, int buffer_size, int * position, MPI_Comm comm);
114
124 void * buffer, int buffer_size, int * position, MPI_Comm comm);
125
127
129 struct yac_interp_stack_config * interp_stack_config,
130 enum yac_interp_avg_weight_type reduction_type, int partial_coverage);
132 struct yac_interp_stack_config * interp_stack_config,
133 enum yac_interp_ncc_weight_type type, int partial_coverage);
135 struct yac_interp_stack_config * interp_stack_config,
137 enum yac_interp_dnn_search_distance_type search_distance_type,
138 double search_distance, double scale);
140 struct yac_interp_stack_config * interp_stack_config,
141 enum yac_interp_nnn_weight_type type, size_t n,
142 double max_search_distance, double scale);
144 struct yac_interp_stack_config * interp_stack_config,
145 size_t n, double max_search_distance, double scale);
147 struct yac_interp_stack_config * interp_stack_config,
148 int order, int enforced_conserv, int partial_coverage,
149 enum yac_interp_method_conserv_normalisation normalisation);
151 struct yac_interp_stack_config * interp_stack_config,
152 double spread_distance, double max_search_distance,
154 enum yac_interp_spmap_scale_type scale_type,
155 double src_sphere_radius, char const * src_filename,
156 char const * src_varname, int src_min_global_id,
157 double tgt_sphere_radius, char const * tgt_filename,
158 char const * tgt_varname, int tgt_min_global_id);
160 struct yac_interp_stack_config * interp_stack_config,
161 struct yac_interp_spmap_config * default_config,
162 struct yac_spmap_overwrite_config ** overwrite_configs);
164 struct yac_interp_stack_config * interp_stack_config);
166 struct yac_interp_stack_config * interp_stack_config,
167 char const * filename, enum yac_interp_file_on_missing_file on_missing_file,
168 enum yac_interp_file_on_success on_success);
170 struct yac_interp_stack_config * interp_stack_config, double value);
172 struct yac_interp_stack_config * interp_stack_config,
173 char const * constructor_key, char const * do_search_key);
175 struct yac_interp_stack_config * interp_stack_config, int creep_distance);
177 struct yac_interp_stack_config * interp_stack_config,
178 char const * func_compute_weights_key);
179
182 struct yac_interp_stack_config * interp_stack,
183 size_t interp_stack_idx);
184
186 union yac_interp_stack_config_entry const * interp_stack_entry);
187
189 union yac_interp_stack_config_entry const * interp_stack_entry,
190 enum yac_interp_avg_weight_type * reduction_type,
191 int * partial_coverage);
193 union yac_interp_stack_config_entry const * interp_stack_entry,
194 enum yac_interp_ncc_weight_type * type, int * partial_coverage);
196 union yac_interp_stack_config_entry const * interp_stack_entry,
198 enum yac_interp_dnn_search_distance_type * search_distance_type,
199 double * search_distance, double * scale);
201 union yac_interp_stack_config_entry const * interp_stack_entry,
202 enum yac_interp_nnn_weight_type * type, size_t * n,
203 double * max_search_distance, double * scale);
205 union yac_interp_stack_config_entry const * interp_stack_entry,
206 size_t * n, double * max_search_distance, double * scale);
208 union yac_interp_stack_config_entry const * interp_stack_entry,
209 int * order, int * enforced_conserv, int * partial_coverage,
210 enum yac_interp_method_conserv_normalisation * normalisation);
212 union yac_interp_stack_config_entry const * interp_stack_entry,
213 double * spread_distance, double * max_search_distance,
215 enum yac_interp_spmap_scale_type * scale_type,
216 double * src_sphere_radius, char const ** src_filename,
217 char const ** src_varname, int * src_min_global_id,
218 double * tgt_sphere_radius, char const ** tgt_filename,
219 char const ** tgt_varname, int * tgt_min_global_id);
221 union yac_interp_stack_config_entry const * interp_stack_entry,
222 struct yac_interp_spmap_config const ** default_config,
223 struct yac_spmap_overwrite_config const *** overwrite_configs);
225 union yac_interp_stack_config_entry const * interp_stack_entry,
226 char const ** filename,
227 enum yac_interp_file_on_missing_file * on_missing_file,
228 enum yac_interp_file_on_success * on_success);
230 union yac_interp_stack_config_entry const * interp_stack_entry,
231 double * value);
233 union yac_interp_stack_config_entry const * interp_stack_entry,
234 char const ** constructor_key, char const ** do_search_key);
236 union yac_interp_stack_config_entry const * interp_stack_entry,
237 int * creep_distance);
239 union yac_interp_stack_config_entry const * interp_stack_entry,
240 char const ** func_compute_weights_key);
241
242// YAC PUBLIC HEADER STOP
243
244#endif // INTERP_STACK_CONFIG_H
Defines the interface of the interpolation method "base class" in YAC.
yac_interpolation_list
yac_interp_avg_weight_type
enum callback_type type
struct @23::@24 value
yac_interp_method_conserv_normalisation
yac_interp_dnn_weight_type
yac_interp_dnn_search_distance_type
yac_interp_file_on_missing_file
yac_interp_file_on_success
yac_interp_ncc_weight_type
yac_interp_nnn_weight_type
yac_interp_spmap_scale_type
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)
Get the number of interpolation methods in the stack.
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)
struct yac_interp_method_config const * yac_interp_stack_config_get(struct yac_interp_stack_config *interp_stack, size_t interp_stack_idx)
Get a method configuration from the stack by index.
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_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, char const *src_filename, char const *src_varname, int src_min_global_id, double tgt_sphere_radius, char const *tgt_filename, char const *tgt_varname, int tgt_min_global_id)
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_rbf(struct yac_interp_stack_config *interp_stack_config, size_t n, double max_search_distance, double scale)
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)
void yac_interp_stack_config_add_creep(struct yac_interp_stack_config *interp_stack_config, int creep_distance)
void yac_interp_stack_config_entry_get_rbf(union yac_interp_stack_config_entry const *interp_stack_entry, size_t *n, double *max_search_distance, double *scale)
void yac_interp_stack_config_entry_get_user_file(union yac_interp_stack_config_entry const *interp_stack_entry, char const **filename, enum yac_interp_file_on_missing_file *on_missing_file, enum yac_interp_file_on_success *on_success)
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 max_search_distance, double scale)
void yac_interp_stack_config_entry_get_dnn(union yac_interp_stack_config_entry const *interp_stack_entry, enum yac_interp_dnn_weight_type *type, enum yac_interp_dnn_search_distance_type *search_distance_type, double *search_distance, double *scale)
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)
struct yac_interp_stack_config * yac_interp_stack_config_unpack(void *buffer, int buffer_size, int *position, MPI_Comm comm)
Unpack a stack configuration from a buffer (MPI communication).
void yac_interp_stack_config_delete(struct yac_interp_stack_config *interp_stack_config)
Free an interpolation stack configuration object.
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)
Create a deep copy of an interpolation stack configuration.
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)
struct interp_method ** yac_interp_stack_config_generate(struct yac_interp_stack_config *interp_stack)
Generate a NULL-terminated array of interpolation methods from the stack configuration.
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_add_dnn(struct yac_interp_stack_config *interp_stack_config, enum yac_interp_dnn_weight_type type, enum yac_interp_dnn_search_distance_type search_distance_type, double search_distance, double scale)
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)
void yac_interp_stack_config_add(struct yac_interp_stack_config *interp_stack_config, struct yac_interp_method_config *method_config)
Add an interpolation method configuration to the end of the stack.
size_t yac_interp_stack_config_get_pack_size(struct yac_interp_stack_config *interp_stack, MPI_Comm comm)
Get the size required to pack the stack configuration for MPI.
void yac_interp_stack_config_add_user_file(struct yac_interp_stack_config *interp_stack_config, char const *filename, enum yac_interp_file_on_missing_file on_missing_file, enum yac_interp_file_on_success on_success)
int yac_interp_stack_config_compare(void const *a, void const *b)
Compare two interpolation stack configurations.
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 *max_search_distance, double *scale)
void yac_interp_stack_config_entry_get_spmap_ext(union yac_interp_stack_config_entry const *interp_stack_entry, struct yac_interp_spmap_config const **default_config, struct yac_spmap_overwrite_config const ***overwrite_configs)
void yac_interp_stack_config_add_ncc(struct yac_interp_stack_config *interp_stack_config, enum yac_interp_ncc_weight_type 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)
struct yac_interp_stack_config * yac_interp_stack_config_new()
Allocate a new empty interpolation stack configuration object.
void yac_interp_stack_config_pack(struct yac_interp_stack_config *interp_stack, void *buffer, int buffer_size, int *position, MPI_Comm comm)
Pack the stack configuration into a buffer for MPI communication.
void yac_interp_stack_config_add_spmap_ext(struct yac_interp_stack_config *interp_stack_config, struct yac_interp_spmap_config *default_config, struct yac_spmap_overwrite_config **overwrite_configs)
void yac_interp_stack_config_entry_get_fixed(union yac_interp_stack_config_entry const *interp_stack_entry, double *value)
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, char const **src_filename, char const **src_varname, int *src_min_global_id, double *tgt_sphere_radius, char const **tgt_filename, char const **tgt_varname, int *tgt_min_global_id)
double * buffer