My Project
programmer's documentation
Functions | Variables
cs_boundary_conditions.h File Reference
#include <ple_locator.h>
#include "fvm_nodal.h"
#include "fvm_writer.h"
#include "cs_base.h"
#include "cs_field.h"
#include "cs_math.h"
#include "cs_mesh_location.h"
Include dependency graph for cs_boundary_conditions.h:

Go to the source code of this file.

Functions

void cs_boundary_conditions_error (const int *bc_type, const char *type_name)
 Handling of boundary condition definition errors and associated output. More...
 
ple_locator_t * cs_boundary_conditions_map (cs_mesh_location_type_t location_type, cs_lnum_t n_location_elts, cs_lnum_t n_faces, const cs_lnum_t *location_elts, const cs_lnum_t *faces, cs_real_3_t *coord_shift, int coord_stride, double tolerance)
 Locate shifted boundary face coordinates on possibly filtered cells or boundary faces for later interpolation. More...
 
void cs_boundary_conditions_mapped_set (const cs_field_t *f, ple_locator_t *locator, cs_mesh_location_type_t location_type, int normalize, int interpolate, cs_lnum_t n_faces, const cs_lnum_t *faces, cs_real_t *balance_w, int nvar, cs_real_t rcodcl[])
 Set mapped boundary conditions for a given field and mapping locator. More...
 
void cs_boundary_conditions_create (void)
 
void cs_boundary_conditions_free (void)
 
static void cs_boundary_conditions_set_neumann_scalar (cs_real_t *a, cs_real_t *af, cs_real_t *b, cs_real_t *bf, cs_real_t qimp, cs_real_t hint)
 Set Neumann BC for a scalar for a given face. More...
 
static void cs_boundary_conditions_set_dirichlet_scalar (cs_real_t *a, cs_real_t *af, cs_real_t *b, cs_real_t *bf, cs_real_t pimp, cs_real_t hint, cs_real_t hext)
 Set Dirichlet BC for a scalar for a given face. More...
 
static void cs_boundary_conditions_set_dirichlet_vector (cs_real_3_t a, cs_real_3_t af, cs_real_33_t b, cs_real_33_t bf, cs_real_3_t pimpv, cs_real_t hint, cs_real_3_t hextv)
 Set Dirichlet BC for a vector for a given face. More...
 
void cs_boundary_conditions_set_convective_outlet_scalar (cs_real_t *coefa, cs_real_t *cofaf, cs_real_t *coefb, cs_real_t *cofbf, cs_real_t pimp, cs_real_t cfl, cs_real_t hint)
 Set convective oulet boundary condition for a scalar. More...
 
static void cs_boundary_conditions_set_dirichlet_vector_aniso (cs_real_3_t a, cs_real_3_t af, cs_real_33_t b, cs_real_33_t bf, cs_real_3_t pimpv, cs_real_6_t hintt, cs_real_3_t hextv)
 Set Dirichlet BC for a vector for a given face with left anisotropic diffusion. More...
 

Variables

const int * cs_glob_bc_type
 
const int * cs_glob_bc_face_zone
 

Function Documentation

◆ cs_boundary_conditions_create()

void cs_boundary_conditions_create ( void  )

◆ cs_boundary_conditions_error()

void cs_boundary_conditions_error ( const int *  bc_flag,
const char *  type_name 
)

Handling of boundary condition definition errors and associated output.

This function checks for errors, and simply returns if no errors are encountered. In case of error, it outputs helpful information so as to make it easier to locate the matching faces.

For each boundary face, bc_type defines the boundary condition type. As a convention here, zero values correspond to undefined types, positive values to defined types (with no error), and negative values to defined types with inconsistent or incompatible values, the absolute value indicating the original boundary condition type.

An optional label may be used if the error is related to another attribute than the boundary type, for appropriate error reporting.

Parameters
[in]bc_flagarray of BC type ids
[in]type_namename of attribute in error, or NULL

◆ cs_boundary_conditions_free()

void cs_boundary_conditions_free ( void  )

◆ cs_boundary_conditions_map()

ple_locator_t* cs_boundary_conditions_map ( cs_mesh_location_type_t  location_type,
cs_lnum_t  n_location_elts,
cs_lnum_t  n_faces,
const cs_lnum_t location_elts,
const cs_lnum_t faces,
cs_real_3_t coord_shift,
int  coord_stride,
double  tolerance 
)

Locate shifted boundary face coordinates on possibly filtered cells or boundary faces for later interpolation.

Parameters
[in]location_typematching values location (CS_MESH_LOCATION_CELLS or CS_MESH_LOCATION_BOUNDARY_FACES)
[in]n_location_eltsnumber of selected location elements
[in]n_facesnumber of selected boundary faces
[in]location_eltslist of selected location elements (0 to n-1), or NULL if no indirection is needed
[in]faceslist of selected boundary faces (0 to n-1), or NULL if no indirection is needed
[in]coord_shiftarray of coordinates shift relative to selected boundary faces
[in]coord_strideaccess stride in coord_shift: 0 for uniform shift, 1 for "per face" shift.
[in]tolerancerelative tolerance for point location.
Returns
associated locator structure

◆ cs_boundary_conditions_mapped_set()

void cs_boundary_conditions_mapped_set ( const cs_field_t f,
ple_locator_t *  locator,
cs_mesh_location_type_t  location_type,
int  normalize,
int  interpolate,
cs_lnum_t  n_faces,
const cs_lnum_t faces,
cs_real_t balance_w,
int  nvar,
cs_real_t  rcodcl[] 
)

Set mapped boundary conditions for a given field and mapping locator.

Parameters
[in]ffield whose boundary conditions are set
[in]locatorassociated mapping locator, as returned by cs_boundary_conditions_map.
[in]location_typematching values location (CS_MESH_LOCATION_CELLS or CS_MESH_LOCATION_BOUNDARY_FACES)
[in]normalizenormalization option: 0: values are simply mapped 1: values are mapped, then multiplied by a constant factor so that their surface integral on selected faces is preserved (relative to the input values) 2: as 1, but with a boundary-defined weight, defined by balance_w 3: as 1, but with a cell-defined weight, defined by balance_w
[in]interpolateinterpolation option: 0: values are simply based on matching cell or face center values 1: values are based on matching cell or face center values, corrected by gradient interpolation
[in]n_facesnumber of selected boundary faces
[in]faceslist of selected boundary faces (0 to n-1), or NULL if no indirection is needed
[in]balance_woptional balance weight, or NULL
[in]nvarnumber of variables requiring BC's
[in,out]rcodclboundary condition values

◆ cs_boundary_conditions_set_convective_outlet_scalar()

void cs_boundary_conditions_set_convective_outlet_scalar ( cs_real_t coefa,
cs_real_t cofaf,
cs_real_t coefb,
cs_real_t cofbf,
cs_real_t  pimp,
cs_real_t  cfl,
cs_real_t  hint 
)

Set convective oulet boundary condition for a scalar.

Parameters:

Parameters
[out]coefaexplicit BC coefficient for gradients
[out]cofafexplicit BC coefficient for diffusive flux
[out]coefbimplicit BC coefficient for gradients
[out]cofbfimplicit BC coefficient for diffusive flux
[in]pimpFlux value to impose
[in]cflLocal Courant number used to convect
[in]hintInternal exchange coefficient

◆ cs_boundary_conditions_set_dirichlet_scalar()

static void cs_boundary_conditions_set_dirichlet_scalar ( cs_real_t a,
cs_real_t af,
cs_real_t b,
cs_real_t bf,
cs_real_t  pimp,
cs_real_t  hint,
cs_real_t  hext 
)
inlinestatic

Set Dirichlet BC for a scalar for a given face.

Parameters
[out]aexplicit BC coefficient for gradients
[out]afexplicit BC coefficient for diffusive flux
[out]bimplicit BC coefficient for gradients
[out]bfimplicit BC coefficient for diffusive flux
[in]pimpdirichlet value to impose
[in]hintinternal exchange coefficient
[in]hextexternal exchange coefficient (assumed infinite/ignored if < 0)

◆ cs_boundary_conditions_set_dirichlet_vector()

static void cs_boundary_conditions_set_dirichlet_vector ( cs_real_3_t  a,
cs_real_3_t  af,
cs_real_33_t  b,
cs_real_33_t  bf,
cs_real_3_t  pimpv,
cs_real_t  hint,
cs_real_3_t  hextv 
)
inlinestatic

Set Dirichlet BC for a vector for a given face.

Parameters
[out]aexplicit BC coefficient for gradients
[out]afexplicit BC coefficient for diffusive flux
[out]bimplicit BC coefficient for gradients
[out]bfimplicit BC coefficient for diffusive flux
[in]pimpvdirichlet value to impose
[in]hintinternal exchange coefficient
[in]hextvexternal exchange coefficient (assumed infinite/ignored if < 0)

◆ cs_boundary_conditions_set_dirichlet_vector_aniso()

static void cs_boundary_conditions_set_dirichlet_vector_aniso ( cs_real_3_t  a,
cs_real_3_t  af,
cs_real_33_t  b,
cs_real_33_t  bf,
cs_real_3_t  pimpv,
cs_real_6_t  hintt,
cs_real_3_t  hextv 
)
inlinestatic

Set Dirichlet BC for a vector for a given face with left anisotropic diffusion.

Parameters
[out]aexplicit BC coefficient for gradients
[out]afexplicit BC coefficient for diffusive flux
[out]bimplicit BC coefficient for gradients
[out]bfimplicit BC coefficient for diffusive flux
[in]pimpvdirichlet value to impose
[in]hinttinternal exchange coefficient
[in]hextvexternal exchange coefficient (assumed infinite/ignored if < 0)

◆ cs_boundary_conditions_set_neumann_scalar()

static void cs_boundary_conditions_set_neumann_scalar ( cs_real_t a,
cs_real_t af,
cs_real_t b,
cs_real_t bf,
cs_real_t  qimp,
cs_real_t  hint 
)
inlinestatic

Set Neumann BC for a scalar for a given face.

Parameters
[out]aexplicit BC coefficient for gradients
[out]afexplicit BC coefficient for diffusive flux
[out]bimplicit BC coefficient for gradients
[out]bfimplicit BC coefficient for diffusive flux
[in]qimpflux value to impose
[in]hintinternal exchange coefficient

Variable Documentation

◆ cs_glob_bc_face_zone

const int* cs_glob_bc_face_zone

boundary zone number associated with each boundary face (specific physical models)

◆ cs_glob_bc_type

const int* cs_glob_bc_type

Boundary condition type (code) associated with each boundary face