|
YAC 3.13.0
Yet Another Coupler
|
#include <string.h>#include <yaxt.h>#include "utils_core.h"#include "interpolation/interpolation_exchange.h"
Go to the source code of this file.
Data Structures | |
| struct | yac_interpolation_exchange |
Enumerations | |
| enum | exchange_state { EXCHANGE_IDLE , EXCHANGE_WAIT_PUT , EXCHANGE_WAIT_GET , EXCHANGE_ACTIVE } |
| enum | empty_exchange_state { EXCHANGE_INVALID , EXCHANGE_UNSET , EXCHANGE_AT_PUT , EXCHANGE_AT_GET } |
Functions | |
| static Xt_redist | combine_redists (Xt_redist *redists, size_t num_redists, size_t collection_size) |
| static void | do_empty_exchange (struct yac_interpolation_exchange *exchange, int is_put, char const *routine_name) |
| static struct yac_interpolation_exchange * | yac_interpolation_exchange_new_ (Xt_redist redist, size_t count, char const *name, int with_frac_mask) |
| struct yac_interpolation_exchange * | yac_interpolation_exchange_new (Xt_redist *redists, size_t num_fields, size_t collection_size, int with_frac_mask, char const *name) |
| Create a new interpolation exchange object. | |
| struct yac_interpolation_exchange * | yac_interpolation_exchange_copy (struct yac_interpolation_exchange *exchange) |
| Create a deep copy of an interpolation exchange. | |
| void | yac_interpolation_exchange_inc_ref_count (struct yac_interpolation_exchange *exchange) |
| Increase the reference count of an exchange object. | |
| int | yac_interpolation_exchange_is_source (struct yac_interpolation_exchange *exchange) |
| Query whether the current process participates as source. | |
| int | yac_interpolation_exchange_is_target (struct yac_interpolation_exchange *exchange) |
| Query whether the current process participates as target. | |
| void | yac_interpolation_exchange_wait (struct yac_interpolation_exchange *exchange, char const *routine_name) |
| Wait for completion of pending put/get phases. | |
| enum YAC_INTERP_EXCH_TEST_STATUS | yac_interpolation_exchange_put_test (struct yac_interpolation_exchange *exchange, char const *routine_name) |
| Test whether the put phase has completed. | |
| enum YAC_INTERP_EXCH_TEST_STATUS | yac_interpolation_exchange_get_test (struct yac_interpolation_exchange *exchange, char const *routine_name) |
| Test whether the get phase has completed. | |
| enum YAC_INTERP_EXCH_STATUS | yac_interpolation_exchange_status (struct yac_interpolation_exchange *exchange, char const *routine_name) |
| void | yac_interpolation_exchange_execute_put (struct yac_interpolation_exchange *exchange, double const **send_data, char const *routine_name) |
| Execute only the put phase asynchronously. | |
| static void | yac_interpolation_exchange_execute_get_ (struct yac_interpolation_exchange *exchange, double **recv_data, int is_async, char const *routine_name) |
| void | yac_interpolation_exchange_execute_get (struct yac_interpolation_exchange *exchange, double **recv_data, char const *routine_name) |
| Execute the get phase and receive target data synchronously. | |
| void | yac_interpolation_exchange_execute_get_async (struct yac_interpolation_exchange *exchange, double **recv_data, char const *routine_name) |
| Execute the get phase asynchronously. | |
| void | yac_interpolation_exchange_execute (struct yac_interpolation_exchange *exchange, double const **send_data_, double **recv_data_, char const *routine_name) |
| Execute the full exchange (put + get) synchronously. | |
| int | yac_interpolation_exchange_with_frac_mask (struct yac_interpolation_exchange *exchange) |
| Query whether the exchange has fractional mask support. | |
| void | yac_interpolation_exchange_delete (struct yac_interpolation_exchange *exchange, char const *routine_name) |
| Delete an interpolation exchange and release resources. | |
| enum empty_exchange_state |
Definition at line 19 of file interpolation_exchange.c.
| enum exchange_state |
Definition at line 12 of file interpolation_exchange.c.
|
static |
|
static |
| struct yac_interpolation_exchange * yac_interpolation_exchange_copy | ( | struct yac_interpolation_exchange * | exchange | ) |
Create a deep copy of an interpolation exchange.
| [in] | exchange | Exchange object to copy. |
Definition at line 156 of file interpolation_exchange.c.


| void yac_interpolation_exchange_delete | ( | struct yac_interpolation_exchange * | exchange, |
| char const * | routine_name ) |
Delete an interpolation exchange and release resources.
| [in,out] | exchange | Exchange object (NULL is safe). |
| [in] | routine_name | Name of the calling routine (for logging). |
Definition at line 570 of file interpolation_exchange.c.


| void yac_interpolation_exchange_execute | ( | struct yac_interpolation_exchange * | exchange, |
| double const ** | send_data, | ||
| double ** | recv_data, | ||
| char const * | routine_name ) |
Execute the full exchange (put + get) synchronously.
| [in,out] | exchange | Exchange object. |
| [in] | send_data | Array of source field pointers. |
| [out] | recv_data | Array of target field pointers. |
| [in] | routine_name | Name of the calling routine (for logging). |
Definition at line 524 of file interpolation_exchange.c.

| void yac_interpolation_exchange_execute_get | ( | struct yac_interpolation_exchange * | exchange, |
| double ** | recv_data, | ||
| char const * | routine_name ) |
Execute the get phase and receive target data synchronously.
| [in,out] | exchange | Exchange object. |
| [out] | recv_data | Array of target field pointers. |
| [in] | routine_name | Name of the calling routine (for logging). |
Definition at line 510 of file interpolation_exchange.c.


|
static |
Definition at line 378 of file interpolation_exchange.c.


| void yac_interpolation_exchange_execute_get_async | ( | struct yac_interpolation_exchange * | exchange, |
| double ** | recv_data, | ||
| char const * | routine_name ) |
Execute the get phase asynchronously.
| [in,out] | exchange | Exchange object. |
| [out] | recv_data | Array of target field pointers. |
| [in] | routine_name | Name of the calling routine (for logging). |
Definition at line 517 of file interpolation_exchange.c.


| void yac_interpolation_exchange_execute_put | ( | struct yac_interpolation_exchange * | exchange, |
| double const ** | send_data, | ||
| char const * | routine_name ) |
Execute only the put phase asynchronously.
| [in,out] | exchange | Exchange object. |
| [in] | send_data | Array of source field pointers. |
| [in] | routine_name | Name of the calling routine (for logging). |
Definition at line 277 of file interpolation_exchange.c.


| enum YAC_INTERP_EXCH_TEST_STATUS yac_interpolation_exchange_get_test | ( | struct yac_interpolation_exchange * | exchange, |
| char const * | routine_name ) |
Test whether the get phase has completed.
| [in] | exchange | Exchange object. |
| [in] | routine_name | Name of the calling routine (for logging). |
Definition at line 228 of file interpolation_exchange.c.

| void yac_interpolation_exchange_inc_ref_count | ( | struct yac_interpolation_exchange * | exchange | ) |
Increase the reference count of an exchange object.
| [in,out] | exchange | Exchange object. |
Definition at line 164 of file interpolation_exchange.c.

| int yac_interpolation_exchange_is_source | ( | struct yac_interpolation_exchange * | exchange | ) |
Query whether the current process participates as source.
| [in] | exchange | Exchange object. |
Definition at line 170 of file interpolation_exchange.c.

| int yac_interpolation_exchange_is_target | ( | struct yac_interpolation_exchange * | exchange | ) |
Query whether the current process participates as target.
| [in] | exchange | Exchange object. |
Definition at line 176 of file interpolation_exchange.c.

| struct yac_interpolation_exchange * yac_interpolation_exchange_new | ( | Xt_redist * | redists, |
| size_t | num_fields, | ||
| size_t | collection_size, | ||
| int | with_frac_mask, | ||
| char const * | name ) |
Create a new interpolation exchange object.
| [in] | redists | Array of redistribution handles (yaxt) dimensions: [num_fields] |
| [in] | num_fields | Number of fields involved in the exchange. |
| [in] | collection_size | Number of field collections handled. |
| [in] | with_frac_mask | Nonzero to enable fractional mask support. |
| [in] | name | Name of the exchange (for logging/debugging). |
Definition at line 142 of file interpolation_exchange.c.


|
static |
Definition at line 108 of file interpolation_exchange.c.

| enum YAC_INTERP_EXCH_TEST_STATUS yac_interpolation_exchange_put_test | ( | struct yac_interpolation_exchange * | exchange, |
| char const * | routine_name ) |
Test whether the put phase has completed.
| [in] | exchange | Exchange object. |
| [in] | routine_name | Name of the calling routine (for logging). |
Definition at line 202 of file interpolation_exchange.c.

| enum YAC_INTERP_EXCH_STATUS yac_interpolation_exchange_status | ( | struct yac_interpolation_exchange * | exchange, |
| char const * | routine_name ) |
Definition at line 254 of file interpolation_exchange.c.

| void yac_interpolation_exchange_wait | ( | struct yac_interpolation_exchange * | exchange, |
| char const * | routine_name ) |
Wait for completion of pending put/get phases.
| [in,out] | exchange | Exchange object. |
| [in] | routine_name | Name of the calling routine (for logging). |
Definition at line 182 of file interpolation_exchange.c.

| int yac_interpolation_exchange_with_frac_mask | ( | struct yac_interpolation_exchange * | exchange | ) |
Query whether the exchange has fractional mask support.
| [in] | exchange | Exchange object. |
Definition at line 564 of file interpolation_exchange.c.
