|
YAC 3.18.0
Yet Another Coupler
|
#include "config.h"#include <float.h>#include <limits.h>#include <string.h>#include "interpolation/methods/interp_method_internal.h"#include "interpolation/methods/interp_method_config_internal.h"#include "interpolation/methods/interp_method_utils.h"#include "interpolation/methods/interp_method_spmap.h"#include "parameter/param_distance.h"#include "parameter/param_dble.h"#include "parameter/param_enum.h"#include "parameter/param_int.h"#include "parameter/param_list.h"#include "parameter/param_oneof.h"#include "parameter/param_str.h"#include "parameter/param_struct.h"#include "ensure_array_size.h"#include "area.h"#include "io_utils.h"#include "point_selection.h"#include "yac_mpi_internal.h"#include "yac_mpi_common.h"#include <netcdf.h>
Go to the source code of this file.
Data Structures | |
| struct | interp_link |
| struct | yac_spmap_cell_area_config |
| struct | yac_spmap_scale_config |
| struct | yac_interp_spmap_basic_config |
| struct | yac_interp_spmap_config |
| struct | yac_spmap_overwrite_config |
| struct | interp_method_spmap_config |
| struct | interp_method_spmap |
| struct | yac_interp_method_config_spmap |
Macros | |
| #define | SCALE_WEIGHTS(SRC_CELL_AREA, TGT_CELL_AREA) |
Typedefs | |
| typedef struct interp_link | InterpLink |
Functions | |
| static size_t | do_search_spmap (struct interp_method *method, struct yac_interp_grid *interp_grid, size_t *tgt_points, size_t tgt_point_count, struct yac_interp_weights *weights, int *interpolation_complete) |
| basic routine for the computation of the interpolation weights | |
| static void | delete_spmap (struct interp_method *method) |
| static int | compare_size_t (const void *a, const void *b) |
| static size_t | check_tgt_result_points (struct yac_interp_grid *interp_grid, struct sin_cos_angle spread_distance, size_t num_src_points, size_t const *const tgt_result_points, size_t *num_tgt_per_src, size_t *spread_tgt_result_points) |
| static double * | compute_weights (struct yac_interp_grid *interp_grid, enum yac_interp_spmap_weight_type weight_type, size_t num_src_points, size_t const *const src_points, size_t const *const num_tgt_per_src, size_t total_num_tgt, size_t const *const tgt_result_points) |
| static void | compute_cell_areas (struct yac_const_basic_grid_data *basic_grid_data, int const *required_cell_areas, double area_scale, char const *type, double *cell_areas) |
| static void | dist_read_cell_areas (char const *filename, char const *varname, MPI_Comm comm, int *const io_ranks, int io_rank_idx, int num_io_ranks, double **dist_cell_areas, size_t *dist_cell_areas_global_size) |
| static void | read_cell_areas (struct yac_const_basic_grid_data *basic_grid_data, struct yac_spmap_cell_area_file_config file_config, MPI_Comm comm, int const *required_cell_areas, char const *type, double *cell_areas) |
| static double * | get_cell_areas (struct yac_const_basic_grid_data *basic_grid_data, char const *type, struct yac_spmap_cell_area_config const *cell_area_config, MPI_Comm comm, size_t const *required_points, size_t num_required_points) |
| static void | scale_weights (struct yac_interp_grid *interp_grid, struct yac_spmap_scale_config const *scale_config, size_t num_src_points, size_t const *src_points, size_t const *num_tgt_per_src, size_t const *tgt_points, size_t total_num_weights, double *weights) |
| static void | spread_src_data (struct yac_interp_grid *interp_grid, struct yac_interp_spmap_basic_config const *basic_config, struct yac_spmap_scale_config const *scale_config, size_t num_src_points, size_t **src_points_, size_t **tgt_result_points_, double **weights_, size_t *total_num_weights_) |
| static void | do_search_spmap_ (struct yac_interp_grid *interp_grid, struct yac_interp_spmap_basic_config const *basic_config, struct yac_spmap_scale_config const *scale_config, size_t *src_points, size_t num_src_points, yac_coordinate_pointer src_coords, InterpLink **combined_result, size_t *combined_result_count) |
| static void | src_point_selection_apply (struct yac_point_selection const *src_point_selection, size_t *src_points, size_t num_src_points, yac_coordinate_pointer src_coords, size_t **selected_src_points, size_t *num_selected_src_points, yac_coordinate_pointer *selected_src_coords) |
| static int | compare_interp_link_tgt_point (void const *a_, void const *b_) |
| static struct yac_spmap_cell_area_config * | yac_spmap_cell_area_config_copy (struct yac_spmap_cell_area_config const *cell_area_config, char const *desc) |
| struct yac_interp_spmap_config * | yac_interp_spmap_config_copy (struct yac_interp_spmap_config const *spmap_config) |
| struct yac_spmap_overwrite_config * | yac_spmap_overwrite_config_copy (struct yac_spmap_overwrite_config const *overwrite_config) |
| struct yac_spmap_overwrite_config ** | yac_spmap_overwrite_configs_copy (struct yac_spmap_overwrite_config const *const *overwrite_configs) |
| struct interp_method * | yac_interp_method_spmap_new (struct yac_interp_spmap_config const *default_config, struct yac_spmap_overwrite_config const *const *overwrite_configs) |
| struct yac_spmap_cell_area_config * | yac_spmap_cell_area_config_yac_new (double sphere_radius) |
| struct yac_spmap_cell_area_config * | yac_spmap_cell_area_config_file_new (char const *filename, char const *varname, yac_int min_global_id) |
| struct yac_spmap_cell_area_config * | yac_spmap_cell_area_config_file_new_f2c (char const *filename, char const *varname, int min_global_id) |
| void | yac_spmap_cell_area_config_delete (struct yac_spmap_cell_area_config *cell_area_config) |
| enum yac_interp_spmap_cell_area_provider | yac_spmap_cell_area_config_get_type (struct yac_spmap_cell_area_config const *cell_area_config) |
| double | yac_spmap_cell_area_config_get_sphere_radius (struct yac_spmap_cell_area_config const *cell_area_config) |
| char const * | yac_spmap_cell_area_config_get_filename (struct yac_spmap_cell_area_config const *cell_area_config) |
| char const * | yac_spmap_cell_area_config_get_varname (struct yac_spmap_cell_area_config const *cell_area_config) |
| yac_int | yac_spmap_cell_area_config_get_min_global_id (struct yac_spmap_cell_area_config const *cell_area_config) |
| struct yac_spmap_scale_config * | yac_spmap_scale_config_new (enum yac_interp_spmap_scale_type scale_type, struct yac_spmap_cell_area_config const *source_cell_area_config, struct yac_spmap_cell_area_config const *target_cell_area_config) |
| struct yac_spmap_scale_config * | yac_spmap_scale_config_new_f2c (int scale_type, struct yac_spmap_cell_area_config *source_cell_area_config, struct yac_spmap_cell_area_config *target_cell_area_config) |
| void | yac_spmap_scale_config_delete (struct yac_spmap_scale_config *scale_config) |
| enum yac_interp_spmap_scale_type | yac_spmap_scale_config_get_type (struct yac_spmap_scale_config const *scale_config) |
| struct yac_spmap_cell_area_config const * | yac_spmap_scale_config_get_src_cell_area_config (struct yac_spmap_scale_config const *scale_config) |
| struct yac_spmap_cell_area_config const * | yac_spmap_scale_config_get_tgt_cell_area_config (struct yac_spmap_scale_config const *scale_config) |
| struct yac_interp_spmap_config * | yac_interp_spmap_config_new (double spread_distance, double max_search_distance, enum yac_interp_spmap_weight_type weight_type, struct yac_spmap_scale_config const *scale_config) |
| struct yac_interp_spmap_config * | yac_interp_spmap_config_new_f2c (double spread_distance, double max_search_distance, int weight_type, struct yac_spmap_scale_config *scale_config) |
| void | yac_interp_spmap_config_delete (struct yac_interp_spmap_config *config) |
| double | yac_interp_spmap_config_get_spread_distance (struct yac_interp_spmap_config const *spmap_config) |
| double | yac_interp_spmap_config_get_max_search_distance (struct yac_interp_spmap_config const *spmap_config) |
| enum yac_interp_spmap_weight_type | yac_interp_spmap_config_get_weight_type (struct yac_interp_spmap_config const *spmap_config) |
| struct yac_spmap_scale_config const * | yac_interp_spmap_config_get_scale_config (struct yac_interp_spmap_config const *spmap_config) |
| struct yac_spmap_overwrite_config * | yac_spmap_overwrite_config_new (struct yac_point_selection const *src_point_selection, struct yac_interp_spmap_config const *config) |
| void | yac_spmap_overwrite_config_delete (struct yac_spmap_overwrite_config *overwrite_config) |
| void | yac_spmap_overwrite_configs_delete (struct yac_spmap_overwrite_config **overwrite_configs) |
| struct yac_point_selection const * | yac_spmap_overwrite_config_get_src_point_selection (struct yac_spmap_overwrite_config const *overwrite_config) |
| struct yac_interp_spmap_config const * | yac_spmap_overwrite_config_get_spmap_config (struct yac_spmap_overwrite_config const *overwrite_config) |
| static int | yac_interp_spmap_basic_config_compare (struct yac_interp_spmap_basic_config const *a, struct yac_interp_spmap_basic_config const *b) |
| static int | yac_spmap_cell_area_config_compare (struct yac_spmap_cell_area_config const *a, struct yac_spmap_cell_area_config const *b) |
| int | yac_spmap_scale_config_compare (struct yac_spmap_scale_config const *a, struct yac_spmap_scale_config const *b) |
| int | yac_interp_spmap_config_compare (struct yac_interp_spmap_config const *a, struct yac_interp_spmap_config const *b) |
| int | yac_spmap_overwrite_config_compare (struct yac_spmap_overwrite_config const *a, struct yac_spmap_overwrite_config const *b) |
| static size_t | yac_spmap_cell_area_config_get_pack_size (struct yac_spmap_cell_area_config const *cell_area_config, MPI_Comm comm) |
| size_t | yac_spmap_scale_config_get_pack_size (struct yac_spmap_scale_config const *scale_config, MPI_Comm comm) |
| size_t | yac_interp_spmap_config_get_pack_size (struct yac_interp_spmap_config const *spmap_config, MPI_Comm comm) |
| size_t | yac_spmap_overwrite_config_get_pack_size (struct yac_spmap_overwrite_config const *overwrite_config, MPI_Comm comm) |
| size_t | yac_spmap_overwrite_configs_get_pack_size (struct yac_spmap_overwrite_config const *const *overwrite_configs, MPI_Comm comm) |
| static void | yac_spmap_cell_area_config_pack (struct yac_spmap_cell_area_config const *cell_area_config, void *buffer, int buffer_size, int *position, MPI_Comm comm) |
| void | yac_spmap_scale_config_pack (struct yac_spmap_scale_config const *scale_config, void *buffer, int buffer_size, int *position, MPI_Comm comm) |
| void | yac_interp_spmap_config_pack (struct yac_interp_spmap_config const *spmap_config, void *buffer, int buffer_size, int *position, MPI_Comm comm) |
| static void | yac_spmap_overwrite_config_pack (struct yac_spmap_overwrite_config const *overwrite_config, void *buffer, int buffer_size, int *position, MPI_Comm comm) |
| void | yac_spmap_overwrite_configs_pack (struct yac_spmap_overwrite_config const *const *overwrite_configs, void *buffer, int buffer_size, int *position, MPI_Comm comm) |
| static void | yac_spmap_cell_area_config_unpack (void *buffer, int buffer_size, int *position, struct yac_spmap_cell_area_config **cell_area_config, MPI_Comm comm) |
| void | yac_spmap_scale_config_unpack (void *buffer, int buffer_size, int *position, struct yac_spmap_scale_config *scale_config, MPI_Comm comm) |
| void | yac_interp_spmap_config_unpack (void *buffer, int buffer_size, int *position, struct yac_interp_spmap_config **spmap_config, MPI_Comm comm) |
| static struct yac_spmap_overwrite_config * | yac_spmap_overwrite_config_unpack (void *buffer, int buffer_size, int *position, MPI_Comm comm) |
| void | yac_spmap_overwrite_configs_unpack (void *buffer, int buffer_size, int *position, struct yac_spmap_overwrite_config ***overwrite_configs, MPI_Comm comm) |
| static size_t | get_overwrite_config_count (struct yac_spmap_overwrite_config const *const *overwrite_configs) |
| static struct yac_param * | spmap_cell_area_config_build_subparam (struct yac_spmap_cell_area_config *cell_area_config) |
| static int | spmap_cell_area_config_factory (char const *name, void **obj, struct yac_param **param, int *is_default) |
| static void | yac_interp_method_config_spmap_init_from (struct interp_method_spmap_config *config_spmap, struct yac_interp_spmap_config const *ext) |
| static void | config_spmap_delete (struct yac_interp_method_config *config) |
| static struct yac_interp_method_config * | config_spmap_copy (struct yac_interp_method_config const *config) |
| static int | config_spmap_compare (void const *a_, void const *b_) |
| static size_t | config_spmap_get_pack_size (struct yac_interp_method_config const *config, MPI_Comm comm) |
| static void | config_spmap_pack (struct yac_interp_method_config const *config, void *buffer, int buffer_size, int *position, MPI_Comm comm) |
| static enum yac_interpolation_list | config_spmap_get_type (void) |
| static struct interp_method * | config_spmap_generate (struct yac_interp_method_config const *config) |
| static void | spmap_create_basic_params (double *spread_distance, double *max_search_distance, enum yac_interp_spmap_weight_type *weight_type, struct yac_param **spread_distance_param, struct yac_param **max_search_distance_param, struct yac_param **weighted_param) |
| static int | spmap_overwrite_config_get_param (void *element, struct yac_param **param_ptr) |
| Generates the configuration parameter for accessing the spmap overwrite configuration. | |
| static int | create_spmap_overwrite_entry (void **element_ptr, struct yac_param **param_ptr) |
| Creates a overwrite configuration, initialises it to the default values, and generate a parameter object to access it. | |
| static struct yac_param * | config_spmap_get_param (struct yac_interp_method_config const *config) |
| Generates the parameter object for accessing the provided spmap configuration object. | |
| static struct yac_interp_method_config_spmap * | yac_interp_method_config_spmap_new_ (void) |
| struct yac_interp_method_config * | yac_interp_method_config_default_spmap_new (void) |
| Creates a source-point-mapping interpolation method configuration with default parameters. | |
| struct yac_interp_method_config * | yac_interp_method_config_spmap_unpack (void *buffer, int buffer_size, int *position, MPI_Comm comm) |
| Unpacks a spmap interpolation method configuration from a buffer. | |
Variables | |
| static struct interp_method_vtable | interp_method_spmap_vtable |
| static struct yac_spmap_cell_area_config | cell_area_config_default |
| static struct yac_spmap_scale_config | spmap_scale_config_default |
| static struct yac_interp_spmap_config | spmap_config_default |
| static struct yac_spmap_overwrite_config | overwrite_config_default |
| static struct yac_interp_method_config_vtable | yac_interp_method_config_vtable_spmap |
| #define SCALE_WEIGHTS | ( | SRC_CELL_AREA, | |
| TGT_CELL_AREA ) |
| typedef struct interp_link InterpLink |
Datatype used to store a single link (reference to source and target cell and the associated weight). Using this datatye makes links easily comparable, which produces decomposition independent weight order, if the compare is based on user-provided global ids.
|
static |
Checks initial results from bounding circle search (if spread_distance > 0.0) and removes target points that are not connected with the initial search (single) search result or are too far away from it.
| [in] | interp_grid | |
| [in] | spread_distance | sin and cos values of spread distance |
| [in] | num_src_points | number of source points/initial target points |
| [in] | tgt_result_points | initial target result points (the one closest to the source point) |
| [in,out] | num_tgt_per_src | number of bounding circle search results per source points/initial target point |
| [in,out] | spread_tgt_result_points | results of bounding circle search |
Definition at line 174 of file interp_method_spmap.c.


|
static |
Compare routine for objects of type InterpLink to be used by std::qsort
Definition at line 1007 of file interp_method_spmap.c.

|
inlinestatic |
|
static |
Definition at line 397 of file interp_method_spmap.c.


|
static |
Computes the weights
| [in] | interp_grid | |
| [in] | weight_type | determines how the source value is distribted to the target points |
| [in] | num_src_points | number of source points |
| [in] | src_points | local indices of all interpolated source points |
| [in] | num_tgt_per_src | number of target points to which each source value is to be distributed |
| [in] | total_num_tgt | total size of tgt_result_points or SUM(num_tgt_per_src(:)) |
| [in] | tgt_result_points | local indices of all targets |
Definition at line 303 of file interp_method_spmap.c.


|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Generates the parameter object for accessing the provided spmap configuration object.
| [in] | config | Pointer the a spmap configuration structure. |
Definition at line 2615 of file interp_method_spmap.c.

|
static |
Definition at line 2445 of file interp_method_spmap.c.
|
static |
|
static |
Creates a overwrite configuration, initialises it to the default values, and generate a parameter object to access it.
| [out] | element_ptr | Pointer to a overwrite configuration handle. |
| [out] | param_ptr | Pointer to a parameter handle. |
Definition at line 2582 of file interp_method_spmap.c.


|
static |
|
static |
Definition at line 425 of file interp_method_spmap.c.


|
static |
basic routine for the computation of the interpolation weights
| [in] | method | abstract pointer to interpolation method data |
| [in,out] | interp_grid | interpolation grids information |
| [in,out] | tgt_points | local indices of all target points that are to be interpolated |
| [in] | tgt_point_count | number of entries in tgt_points |
| [in,out] | weights | data structure containing the weights |
| [in] | interpolation_complete | if it is one, no weights are to be computed |
Definition at line 1032 of file interp_method_spmap.c.


|
static |
Applies spmap to a set of given source points for a single basic+scale configuration pair.
Definition at line 910 of file interp_method_spmap.c.


|
static |
Gets cell areas for scaling either from file or compute them (depending on configuration)
| [in] | basic_grid_data | |
| [in] | type | used for error message (either "source" or "target"); |
| [in] | cell_area_config | determines whether areas are written from file or computed and contains additional configuration specific to respective type |
| [in] | comm | MPI communicator (required for parallel reading of areas from file) |
| [in] | required_points | local ids of cell for which the areas are required |
| [in] | num_required_points |
Definition at line 678 of file interp_method_spmap.c.


|
static |
|
static |
Definition at line 538 of file interp_method_spmap.c.


|
static |
Scale weights based on source/target cell areas depending on used configuration.
Definition at line 727 of file interp_method_spmap.c.


|
static |
Definition at line 2110 of file interp_method_spmap.c.


|
static |
Factory function for cell area config object of SPMAP method.
Definition at line 2204 of file interp_method_spmap.c.


|
static |
Creates interpolation method configuration parameters for the basic SPMAP config parameters. Used by both the main SPMAP config and the overwrite config, which share the same basic parameters.
| spread_distance | pointer to the spread distance variable |
| max_search_distance | pointer to the max search distance variable |
| weight_type | pointer to the weight type variable |
| spread_distance_param | output pointer for the created spread distance parameter |
| max_search_distance_param | output pointer for the created max search distance parameter |
| weighted_param | output pointer for the created weighted parameter |
Definition at line 2474 of file interp_method_spmap.c.


|
static |
Generates the configuration parameter for accessing the spmap overwrite configuration.
| [in] | element | Pointer to a overwrite configuration element. |
| [out] | param_ptr | Pointer to a parameter handle. |
Definition at line 2534 of file interp_method_spmap.c.


|
static |
Applies spreading of source data based on initial search results (single target per source)
| [in] | interp_grid | |
| [in] | basic_config | |
| [in] | scale_config | |
| [in] | num_src_points | number of source points |
| [in,out] | src_points_ | local ids of all source points, will be inflated to the total number of links and contain duplication of the source points (each source points is repeated by the number of links associated with it) |
| [in,out] | tgt_result_points_ | local ids of initial target search results (one target per source), will be updated by this routine and then contain multiple targets per source |
| [out] | weights_ | weights for all links |
| [out] | total_num_weights_ | total number of links |
Definition at line 802 of file interp_method_spmap.c.


|
static |
Definition at line 983 of file interp_method_spmap.c.


| struct yac_interp_method_config * yac_interp_method_config_default_spmap_new | ( | void | ) |
Creates a source-point-mapping interpolation method configuration with default parameters.
Definition at line 2734 of file interp_method_spmap.c.

|
static |
Definition at line 2295 of file interp_method_spmap.c.


|
static |
| struct yac_interp_method_config * yac_interp_method_config_spmap_unpack | ( | void * | buffer, |
| int | buffer_size, | ||
| int * | position, | ||
| MPI_Comm | comm ) |
Unpacks a spmap interpolation method configuration from a buffer.
| [in] | buffer | Buffer containing the packed configuration data |
| [in] | buffer_size | Size of the buffer |
| [in,out] | position | Current position in the buffer (will be updated) |
| [in] | comm | MPI communicator for parallel unpacking |
Definition at line 2741 of file interp_method_spmap.c.

| struct interp_method * yac_interp_method_spmap_new | ( | struct yac_interp_spmap_config const * | default_config, |
| struct yac_spmap_overwrite_config const *const * | overwrite_configs ) |
Constructor for an interpolation method of type interp_method_spmap
This method searches for each unmasked source point the closest unmasked target point.
If the maximum search distance is > 0.0, only target points that are within this distance from the source points are being considered. If spread_distance is > 0.0, the method uses the previously found target points as a starting point. Around each starting point, a bounding circle is generated. Afterwards for each starting point all target cells whose bounding circles intersect with the generated one are put into a list. Out of this list all target cells connected directly or indirectly through other cells from this list to the target cell of the starting are selected for the interpolation. Then a weighting method is applied to the selected target cells to generate the weights. Afterwards the weights are scaled.
The default configuration can be overwritten for selected source cells. An arbitrary number of alternative configuration along with selection criteria can be provided. These configurations will be processed one-by-one starting with the first entry in the array. Any source cell which has already been processed previously will be ignored by any further configuration. Once all alternative configurations are processed the default configuration is applied to the remaining source points.
| [in] | default_config | default configuration |
| [in] | overwrite_configs | alternative configurations along with source cell selection criteria |
Definition at line 1258 of file interp_method_spmap.c.


|
static |
| int yac_interp_spmap_config_compare | ( | struct yac_interp_spmap_config const * | a, |
| struct yac_interp_spmap_config const * | b ) |
Definition at line 1722 of file interp_method_spmap.c.


| struct yac_interp_spmap_config * yac_interp_spmap_config_copy | ( | struct yac_interp_spmap_config const * | spmap_config | ) |
Definition at line 1212 of file interp_method_spmap.c.


| void yac_interp_spmap_config_delete | ( | struct yac_interp_spmap_config * | spmap_config | ) |
Destructor for a Source to Target mapping configuration object
| [in] | spmap_config | Source to Target mapping configuration object |
Definition at line 1563 of file interp_method_spmap.c.


| double yac_interp_spmap_config_get_max_search_distance | ( | struct yac_interp_spmap_config const * | spmap_config | ) |
Returns maximum search distance distance of Source to Target mapping configuration object
| [in] | spmap_config | Source to Target mapping configuration object |
Definition at line 1581 of file interp_method_spmap.c.

| size_t yac_interp_spmap_config_get_pack_size | ( | struct yac_interp_spmap_config const * | spmap_config, |
| MPI_Comm | comm ) |
Definition at line 1791 of file interp_method_spmap.c.


| struct yac_spmap_scale_config const * yac_interp_spmap_config_get_scale_config | ( | struct yac_interp_spmap_config const * | spmap_config | ) |
Returns scaling configuration of Source to Target mapping configuration object
| [in] | spmap_config | Source to Target mapping configuration object |
Definition at line 1597 of file interp_method_spmap.c.

| double yac_interp_spmap_config_get_spread_distance | ( | struct yac_interp_spmap_config const * | spmap_config | ) |
Returns spread distance of Source to Target mapping configuration object
| [in] | spmap_config | Source to Target mapping configuration object |
Definition at line 1573 of file interp_method_spmap.c.

| enum yac_interp_spmap_weight_type yac_interp_spmap_config_get_weight_type | ( | struct yac_interp_spmap_config const * | spmap_config | ) |
Returns weight type of Source to Target mapping configuration object
| [in] | spmap_config | Source to Target mapping configuration object |
Definition at line 1589 of file interp_method_spmap.c.

| struct yac_interp_spmap_config * yac_interp_spmap_config_new | ( | double | spread_distance, |
| double | max_search_distance, | ||
| enum yac_interp_spmap_weight_type | weight_type, | ||
| struct yac_spmap_scale_config const * | scale_config ) |
Constructs a Source to Target mapping configuration object
| [in] | spread_distance | spread distance |
| [in] | max_search_distance | maximum search distance |
| [in] | weight_type | weightening type |
| [in] | scale_config | scaling configuration |
Definition at line 1510 of file interp_method_spmap.c.


| struct yac_interp_spmap_config * yac_interp_spmap_config_new_f2c | ( | double | spread_distance, |
| double | max_search_distance, | ||
| int | weight_type, | ||
| struct yac_spmap_scale_config * | scale_config ) |
| void yac_interp_spmap_config_pack | ( | struct yac_interp_spmap_config const * | spmap_config, |
| void * | buffer, | ||
| int | buffer_size, | ||
| int * | position, | ||
| MPI_Comm | comm ) |
Definition at line 1893 of file interp_method_spmap.c.


| void yac_interp_spmap_config_unpack | ( | void * | buffer, |
| int | buffer_size, | ||
| int * | position, | ||
| struct yac_interp_spmap_config ** | spmap_config, | ||
| MPI_Comm | comm ) |
Definition at line 2014 of file interp_method_spmap.c.


|
static |
|
static |
Definition at line 1182 of file interp_method_spmap.c.


| void yac_spmap_cell_area_config_delete | ( | struct yac_spmap_cell_area_config * | cell_area_config | ) |
Destructor for a Source to Target mapping cell area configuration object
| [in] | cell_area_config | Source to Target mapping cell area configuration object |
Definition at line 1333 of file interp_method_spmap.c.

| struct yac_spmap_cell_area_config * yac_spmap_cell_area_config_file_new | ( | char const * | filename, |
| char const * | varname, | ||
| yac_int | min_global_id ) |
Constructs a Source to Target mapping cell area configuration object
This type enable reading of cell areas from a netCDF file.
| [in] | filename | name of the file containing the cell areas |
| [in] | varname | name of the variable containing the cell areas |
| [in] | min_global_id | minimum global cell id (usually "0" or "1") |
Definition at line 1292 of file interp_method_spmap.c.

| struct yac_spmap_cell_area_config * yac_spmap_cell_area_config_file_new_f2c | ( | char const * | filename, |
| char const * | varname, | ||
| int | min_global_id ) |
| char const * yac_spmap_cell_area_config_get_filename | ( | struct yac_spmap_cell_area_config const * | cell_area_config | ) |
Gets the file name of a cell area configuration object
| [in] | cell_area_config | cell area configuration object |
Definition at line 1378 of file interp_method_spmap.c.

| yac_int yac_spmap_cell_area_config_get_min_global_id | ( | struct yac_spmap_cell_area_config const * | cell_area_config | ) |
Gets the minimum global id of a cell area configuration object
| [in] | cell_area_config | cell area configuration object |
Definition at line 1406 of file interp_method_spmap.c.

|
static |
Definition at line 1745 of file interp_method_spmap.c.


| double yac_spmap_cell_area_config_get_sphere_radius | ( | struct yac_spmap_cell_area_config const * | cell_area_config | ) |
Gets the sphere radius of a cell area configuration object
| [in] | cell_area_config | cell area configuration object |
Definition at line 1364 of file interp_method_spmap.c.

| enum yac_interp_spmap_cell_area_provider yac_spmap_cell_area_config_get_type | ( | struct yac_spmap_cell_area_config const * | cell_area_config | ) |
Gets the type of a cell area configuration object
| [in] | cell_area_config | cell area configuration object |
Definition at line 1356 of file interp_method_spmap.c.

| char const * yac_spmap_cell_area_config_get_varname | ( | struct yac_spmap_cell_area_config const * | cell_area_config | ) |
Gets the variable name of a cell area configuration object
| [in] | cell_area_config | cell area configuration object |
Definition at line 1392 of file interp_method_spmap.c.

|
static |
Definition at line 1838 of file interp_method_spmap.c.


|
static |
Definition at line 1956 of file interp_method_spmap.c.


| struct yac_spmap_cell_area_config * yac_spmap_cell_area_config_yac_new | ( | double | sphere_radius | ) |
Constructs a Source to Target mapping cell area configuration object
This type enable internal computation of cell areas.
| [in] | sphere_radius | sets sphere radius to be used for area computation |
Definition at line 1275 of file interp_method_spmap.c.

| int yac_spmap_overwrite_config_compare | ( | struct yac_spmap_overwrite_config const * | a, |
| struct yac_spmap_overwrite_config const * | b ) |
| struct yac_spmap_overwrite_config * yac_spmap_overwrite_config_copy | ( | struct yac_spmap_overwrite_config const * | overwrite_config | ) |
Definition at line 1225 of file interp_method_spmap.c.


| void yac_spmap_overwrite_config_delete | ( | struct yac_spmap_overwrite_config * | overwrite_config | ) |
Destructor for an alternative Source to Target mapping configuration
| [in] | overwrite_config | Alternative Source to Target mapping configuration |
Definition at line 1621 of file interp_method_spmap.c.


| size_t yac_spmap_overwrite_config_get_pack_size | ( | struct yac_spmap_overwrite_config const * | overwrite_config, |
| MPI_Comm | comm ) |
Definition at line 1805 of file interp_method_spmap.c.


| struct yac_interp_spmap_config const * yac_spmap_overwrite_config_get_spmap_config | ( | struct yac_spmap_overwrite_config const * | overwrite_config | ) |
Gets the configuration of an alternative Source to Target mapping configuration
| [in] | overwrite_config | Alternative Source to Target mapping configurations |
Definition at line 1650 of file interp_method_spmap.c.

| struct yac_point_selection const * yac_spmap_overwrite_config_get_src_point_selection | ( | struct yac_spmap_overwrite_config const * | overwrite_config | ) |
Gets the source point selection method of an alternative Source to Target mapping configuration
| [in] | overwrite_config | Alternative Source to Target mapping configurations |
Definition at line 1641 of file interp_method_spmap.c.

| struct yac_spmap_overwrite_config * yac_spmap_overwrite_config_new | ( | struct yac_point_selection const * | src_point_selection, |
| struct yac_interp_spmap_config const * | config ) |
Constructs an alternative Source to Target mapping configuration
| [in] | src_point_selection | Specifies source points the alternative configuration is to be appied to |
| [in] | config | Alternative configuration to be used |
Definition at line 1605 of file interp_method_spmap.c.


|
static |
Definition at line 1914 of file interp_method_spmap.c.


|
static |
Definition at line 2040 of file interp_method_spmap.c.


| struct yac_spmap_overwrite_config ** yac_spmap_overwrite_configs_copy | ( | struct yac_spmap_overwrite_config const *const * | overwrite_configs | ) |
Definition at line 1239 of file interp_method_spmap.c.


| void yac_spmap_overwrite_configs_delete | ( | struct yac_spmap_overwrite_config ** | overwrite_configs | ) |
Destructor for an array of alternative Source to Target mapping configurations
| [in] | overwrite_configs | Array of alternative Source to Target mapping configurations |
Definition at line 1631 of file interp_method_spmap.c.


| size_t yac_spmap_overwrite_configs_get_pack_size | ( | struct yac_spmap_overwrite_config const *const * | overwrite_configs, |
| MPI_Comm | comm ) |
Definition at line 1820 of file interp_method_spmap.c.


| void yac_spmap_overwrite_configs_pack | ( | struct yac_spmap_overwrite_config const *const * | overwrite_configs, |
| void * | buffer, | ||
| int | buffer_size, | ||
| int * | position, | ||
| MPI_Comm | comm ) |
Definition at line 1937 of file interp_method_spmap.c.


| void yac_spmap_overwrite_configs_unpack | ( | void * | buffer, |
| int | buffer_size, | ||
| int * | position, | ||
| struct yac_spmap_overwrite_config *** | overwrite_configs, | ||
| MPI_Comm | comm ) |
Definition at line 2069 of file interp_method_spmap.c.


| int yac_spmap_scale_config_compare | ( | struct yac_spmap_scale_config const * | a, |
| struct yac_spmap_scale_config const * | b ) |
Definition at line 1711 of file interp_method_spmap.c.


| void yac_spmap_scale_config_delete | ( | struct yac_spmap_scale_config * | scale_config | ) |
Destructor for a Source to Target mapping scaling configuration object
| [in] | scale_config | scaling configuration |
Definition at line 1473 of file interp_method_spmap.c.


| size_t yac_spmap_scale_config_get_pack_size | ( | struct yac_spmap_scale_config const * | scale_config, |
| MPI_Comm | comm ) |
Definition at line 1780 of file interp_method_spmap.c.


| struct yac_spmap_cell_area_config const * yac_spmap_scale_config_get_src_cell_area_config | ( | struct yac_spmap_scale_config const * | scale_config | ) |
Gets source cell area configuration of a Source to Target mapping scaling configuration object
| [in] | scale_config | scaling configuration |
Definition at line 1493 of file interp_method_spmap.c.

| struct yac_spmap_cell_area_config const * yac_spmap_scale_config_get_tgt_cell_area_config | ( | struct yac_spmap_scale_config const * | scale_config | ) |
Gets target cell area configuration of a Source to Target mapping scaling configuration object
| [in] | scale_config | scaling configuration |
Definition at line 1502 of file interp_method_spmap.c.

| enum yac_interp_spmap_scale_type yac_spmap_scale_config_get_type | ( | struct yac_spmap_scale_config const * | scale_config | ) |
Gets type of a Source to Target mapping scaling configuration object
| [in] | scale_config | scaling configuration |
Definition at line 1484 of file interp_method_spmap.c.

| struct yac_spmap_scale_config * yac_spmap_scale_config_new | ( | enum yac_interp_spmap_scale_type | scale_type, |
| struct yac_spmap_cell_area_config const * | source_cell_area_config, | ||
| struct yac_spmap_cell_area_config const * | target_cell_area_config ) |
Constructs a Source to Target mapping scaling configuration object
| [in] | scale_type | scaling type |
| [in] | source_cell_area_config | source cell area configuration |
| [in] | target_cell_area_config | target cell area configuration |
Definition at line 1429 of file interp_method_spmap.c.


| struct yac_spmap_scale_config * yac_spmap_scale_config_new_f2c | ( | int | scale_type, |
| struct yac_spmap_cell_area_config * | source_cell_area_config, | ||
| struct yac_spmap_cell_area_config * | target_cell_area_config ) |
| void yac_spmap_scale_config_pack | ( | struct yac_spmap_scale_config const * | scale_config, |
| void * | buffer, | ||
| int | buffer_size, | ||
| int * | position, | ||
| MPI_Comm | comm ) |
Definition at line 1878 of file interp_method_spmap.c.


| void yac_spmap_scale_config_unpack | ( | void * | buffer, |
| int | buffer_size, | ||
| int * | position, | ||
| struct yac_spmap_scale_config * | scale_config, | ||
| MPI_Comm | comm ) |
Definition at line 1997 of file interp_method_spmap.c.


|
static |
Definition at line 80 of file interp_method_spmap.c.
|
static |
Definition at line 45 of file interp_method_spmap.c.
|
static |
Definition at line 121 of file interp_method_spmap.c.
|
static |
Definition at line 106 of file interp_method_spmap.c.
|
static |
Definition at line 90 of file interp_method_spmap.c.
|
static |
Definition at line 2703 of file interp_method_spmap.c.