My Project
programmer's documentation
Functions
cs_field_operator.c File Reference
#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.h"
#include "cs_gradient.h"
#include "cs_gradient_perio.h"
#include "cs_halo.h"
#include "cs_halo_perio.h"
#include "cs_mesh.h"
#include "cs_log.h"
#include "cs_map.h"
#include "cs_parameters.h"
#include "cs_parall.h"
#include "cs_mesh_location.h"
#include "cs_mesh_quantities.h"
#include "cs_internal_coupling.h"
#include "cs_field_operator.h"
Include dependency graph for cs_field_operator.c:

Functions

static void _field_interpolate_by_mean (const cs_field_t *f, cs_lnum_t n_points, const cs_lnum_t point_location[], cs_real_t *val)
 
static void _field_interpolate_by_gradient (const cs_field_t *f, cs_lnum_t n_points, const cs_lnum_t point_location[], const cs_real_3_t point_coords[], cs_real_t *val)
 
static void _local_extrema_scalar (const cs_real_t *restrict pvar, cs_halo_type_t halo_type, cs_real_t *local_max, cs_real_t *local_min)
 
void cs_field_gradient_scalar (const cs_field_t *f, bool use_previous_t, int inc, bool recompute_cocg, cs_real_3_t *restrict grad)
 Compute cell gradient of scalar field or component of vector or tensor field. More...
 
void cs_field_gradient_potential (const cs_field_t *f, bool use_previous_t, int inc, bool recompute_cocg, int hyd_p_flag, cs_real_3_t f_ext[], cs_real_3_t *restrict grad)
 Compute cell gradient of scalar field or component of vector or tensor field. More...
 
void cs_field_gradient_vector (const cs_field_t *f, bool use_previous_t, int inc, cs_real_33_t *restrict grad)
 Compute cell gradient of vector field. More...
 
void cs_field_gradient_tensor (const cs_field_t *f, bool use_previous_t, int inc, cs_real_63_t *restrict grad)
 Compute cell gradient of tensor field. More...
 
void cs_field_interpolate (cs_field_t *f, cs_field_interpolate_t interpolation_type, cs_lnum_t n_points, const cs_lnum_t point_location[], const cs_real_3_t point_coords[], cs_real_t *val)
 Interpolate field values at a given set of points. More...
 
void cs_field_local_extrema_scalar (int f_id, cs_halo_type_t halo_type, cs_real_t *local_max, cs_real_t *local_min)
 Find local extrema of a given scalar field at each cell. More...
 
void cs_field_set_volume_average (cs_field_t *f, const cs_real_t va)
 Shift field values in order to set its spatial average (fluid volume average) to a given value. More...
 
void cs_field_synchronize (cs_field_t *f, cs_halo_type_t halo_type)
 Synchronize current parallel and periodic field values. More...
 

Detailed Description

Field based algebraic operators.

Function Documentation

◆ _field_interpolate_by_gradient()

static void _field_interpolate_by_gradient ( const cs_field_t f,
cs_lnum_t  n_points,
const cs_lnum_t  point_location[],
const cs_real_3_t  point_coords[],
cs_real_t val 
)
static

◆ _field_interpolate_by_mean()

static void _field_interpolate_by_mean ( const cs_field_t f,
cs_lnum_t  n_points,
const cs_lnum_t  point_location[],
cs_real_t val 
)
static

◆ _local_extrema_scalar()

static void _local_extrema_scalar ( const cs_real_t *restrict  pvar,
cs_halo_type_t  halo_type,
cs_real_t local_max,
cs_real_t local_min 
)
static

◆ cs_field_gradient_potential()

void cs_field_gradient_potential ( const cs_field_t f,
bool  use_previous_t,
int  inc,
bool  recompute_cocg,
int  hyd_p_flag,
cs_real_3_t  f_ext[],
cs_real_3_t *restrict  grad 
)

Compute cell gradient of scalar field or component of vector or tensor field.

Parameters
[in]fpointer to field
[in]use_previous_tshould we use values from the previous time step ?
[in]incif 0, solve on increment; 1 otherwise
[in]recompute_cocgshould COCG FV quantities be recomputed ?
[in]hyd_p_flagflag for hydrostatic pressure
[in]f_extexterior force generating the hydrostatic pressure
[out]gradgradient

◆ cs_field_gradient_scalar()

void cs_field_gradient_scalar ( const cs_field_t f,
bool  use_previous_t,
int  inc,
bool  recompute_cocg,
cs_real_3_t *restrict  grad 
)

Compute cell gradient of scalar field or component of vector or tensor field.

Parameters
[in]fpointer to field
[in]use_previous_tshould we use values from the previous time step ?
[in]incif 0, solve on increment; 1 otherwise
[in]recompute_cocgshould COCG FV quantities be recomputed ?
[out]gradgradient

◆ cs_field_gradient_tensor()

void cs_field_gradient_tensor ( const cs_field_t f,
bool  use_previous_t,
int  inc,
cs_real_63_t *restrict  grad 
)

Compute cell gradient of tensor field.

Parameters
[in]fpointer to field
[in]use_previous_tshould we use values from the previous time step ?
[in]incif 0, solve on increment; 1 otherwise
[out]gradgradient

◆ cs_field_gradient_vector()

void cs_field_gradient_vector ( const cs_field_t f,
bool  use_previous_t,
int  inc,
cs_real_33_t *restrict  grad 
)

Compute cell gradient of vector field.

Parameters
[in]fpointer to field
[in]use_previous_tshould we use values from the previous time step ?
[in]incif 0, solve on increment; 1 otherwise
[out]gradgradient

◆ cs_field_interpolate()

void cs_field_interpolate ( cs_field_t f,
cs_field_interpolate_t  interpolation_type,
cs_lnum_t  n_points,
const cs_lnum_t  point_location[],
const cs_real_3_t  point_coords[],
cs_real_t val 
)

Interpolate field values at a given set of points.

Parameters
[in]fpointer to field
[in]interpolation_typeinterpolation type
[in]n_pointsnumber of points at which interpolation is required
[in]point_locationlocation of points in mesh elements (based on the field location)
[in]point_coordspoint coordinates
[out]valinterpolated values

◆ cs_field_local_extrema_scalar()

void cs_field_local_extrema_scalar ( int  f_id,
cs_halo_type_t  halo_type,
cs_real_t local_max,
cs_real_t local_min 
)

Find local extrema of a given scalar field at each cell.

This assumes the field values have been synchronized.

Parameters
[in]fid scalar field id
[in]halo_typehalo type
[in,out]local_maxlocal maximum value
[in,out]local_minlocal minimum value

◆ cs_field_set_volume_average()

void cs_field_set_volume_average ( cs_field_t f,
const cs_real_t  va 
)

Shift field values in order to set its spatial average (fluid volume average) to a given value.

Shift field values in order to set its spatial average to a given value.

Parameters
[in]fpointer to field
[in]vareal value of fluid volume average to be set

◆ cs_field_synchronize()

void cs_field_synchronize ( cs_field_t f,
cs_halo_type_t  halo_type 
)

Synchronize current parallel and periodic field values.

This function currently only upates fields based on CS_MESH_LOCATION_CELLS.

Parameters
[in,out]fpointer to field
[in]halo_typehalo type