#include "cs_defs.h"
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "bft_mem.h"
#include "bft_error.h"
#include "bft_printf.h"
#include "cs_field_default.h"
#include "cs_gradient.h"
#include "cs_halo.h"
#include "cs_mesh.h"
#include "cs_mesh_location.h"
#include "cs_mesh_quantities.h"
#include "cs_parall.h"
#include "cs_interpolate.h"
Functions | |
void | cs_interpolate_from_location_p0 (void *input, cs_datatype_t datatype, int val_dim, cs_lnum_t n_points, const cs_lnum_t point_location[], const cs_real_3_t point_coords[], const void *location_vals, void *point_vals) |
Interpolate values defined on a mesh location at a given set of points using a P0 interpolation. More... | |
void | cs_interpolate_from_location_p1 (void *input, cs_datatype_t datatype, int val_dim, cs_lnum_t n_points, const cs_lnum_t point_location[], const cs_real_3_t point_coords[], const void *location_vals, void *point_vals) |
Interpolate values defined on a mesh location at a given set of points using a P1 interpolation. More... | |
Interpolation function handling.
void cs_interpolate_from_location_p0 | ( | void * | input, |
cs_datatype_t | datatype, | ||
int | val_dim, | ||
cs_lnum_t | n_points, | ||
const cs_lnum_t | point_location[], | ||
const cs_real_3_t | point_coords[], | ||
const void * | location_vals, | ||
void * | point_vals | ||
) |
Interpolate values defined on a mesh location at a given set of points using a P0 interpolation.
(DOXYGEN_SHOULD_SKIP_THIS)
This function allows unlocated points (with point_location < 0), to which the value 0 is assigned.
[in,out] | input | pointer to optional (untyped) value or structure. |
[in] | datatype | associated datatype |
[in] | val_dim | dimension of data values |
[in] | n_points | number of interpolation points |
[in] | point_location | location of points in mesh elements |
[in] | point_coords | point coordinates |
[in] | location_vals | values at mesh location |
[out] | point_vals | interpolated values at points |
void cs_interpolate_from_location_p1 | ( | void * | input, |
cs_datatype_t | datatype, | ||
int | val_dim, | ||
cs_lnum_t | n_points, | ||
const cs_lnum_t | point_location[], | ||
const cs_real_3_t | point_coords[], | ||
const void * | location_vals, | ||
void * | point_vals | ||
) |
Interpolate values defined on a mesh location at a given set of points using a P1 interpolation.
This function assumes the input is a field name. If no field matches the name, a "generic" interpolation (assuming homogeneous Neumann boundary conditions) is used).
The P1 interpolation is based on a local least-squares gradient, so it is assumed that ghost values of the localtion_vals array are synchronized if present.
If the field's boundary values (i.e. associated field) are known, they are used in the interpolation. Otherwise, if boundary conditions are defined, they are used. When neither boundary values nor boundary conditions are known, homogeneous Neumann boundary conditions are assumed.
[in,out] | input | pointer to optional (untyped) value or structure. |
[in] | datatype | associated datatype |
[in] | val_dim | dimension of data values |
[in] | n_points | number of interpolation points |
[in] | point_location | location of points in mesh elements |
[in] | point_coords | point coordinates |
[in] | location_vals | values at mesh location |
[out] | point_vals | interpolated values at points |