YAC 3.20.0
Yet Another Coupler
Loading...
Searching...
No Matches
interp_method_avg.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_METHOD_AVG_H
6#define INTERP_METHOD_AVG_H
7
9
10// YAC PUBLIC HEADER START
11
13 YAC_INTERP_AVG_ARITHMETIC = 0, // simple average
14 YAC_INTERP_AVG_DIST = 1, // distance weighted
15 YAC_INTERP_AVG_BARY = 2, // barycentric coordinate based
16};
17
18#define YAC_INTERP_AVG_WEIGHT_TYPE_DEFAULT (YAC_INTERP_AVG_ARITHMETIC)
19#define YAC_INTERP_AVG_PARTIAL_COVERAGE_DEFAULT (0)
20
23 int partial_coverage);
24
25// YAC PUBLIC HEADER STOP
26
27// Modular config constructor for vtable-based config system
28
36
47 void *buffer, int buffer_size, int *position, MPI_Comm comm);
48
55
56#endif // INTERP_METHOD_AVG_H
Defines the interface of the interpolation method "base class" in YAC.
struct yac_interp_method_config * yac_interp_method_config_avg_unpack(void *buffer, int buffer_size, int *position, MPI_Comm comm)
Unpacks an average interpolation method configuration from a buffer.
struct interp_method * yac_interp_method_avg_new(enum yac_interp_avg_weight_type weight_type, int partial_coverage)
struct yac_interp_method_config * yac_interp_method_config_default_avg_new(void)
Creates an average interpolation method configuration with default parameters.
yac_interp_avg_weight_type
@ YAC_INTERP_AVG_DIST
@ YAC_INTERP_AVG_ARITHMETIC
@ YAC_INTERP_AVG_BARY
enum yac_interp_avg_weight_type weight_type
double * buffer