9.1
general documentation
cs_boundary_conditions_set_coeffs.h File Reference
#include "base/cs_defs.h"
#include "base/cs_profiling.h"
#include "bft/bft_error.h"
#include "base/cs_field.h"
#include "base/cs_math.h"
#include "cdo/cs_equation_param.h"
#include "base/cs_dispatch.h"
+ Include dependency graph for cs_boundary_conditions_set_coeffs.h:

Go to the source code of this file.

Functions

void cs_boundary_conditions_set_coeffs (int nvar, int iterns, int isvhb, int italim, int itrfin, int ineefl, int itrfup, int isostd[], cs_real_t *visvdr, cs_real_t hbord[], cs_real_t theipb[], int nftcdt)
 Translation of the boundary conditions given by the user in a form that fits to the solver. More...
 
void cs_boundary_conditions_set_coeffs_init (void)
 Initialization of boundary condition arrays. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_neumann_vector (cs_real_t a[3], cs_real_t af[3], cs_real_t b[3][3], cs_real_t bf[3][3], const cs_real_t qimpv[3], cs_real_t hint)
 Set Neumann BC for a scalar for a given face. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_neumann_vector_aniso (cs_real_t a[3], cs_real_t af[3], cs_real_t b[3][3], cs_real_t bf[3][3], const cs_real_t qimpv[3], const cs_real_t hint[6])
 Set neumann BC for an anisotropic vector for a given face. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_neumann_tensor (cs_real_t a[6], cs_real_t af[6], cs_real_t b[6][6], cs_real_t bf[6][6], const cs_real_t qimpts[6], cs_real_t hint)
 Set Neumann boundary conditions for a tensor for a given face. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_dirichlet_vector (cs_real_t a[3], cs_real_t af[3], cs_real_t b[3][3], cs_real_t bf[3][3], const cs_real_t pimpv[3], cs_real_t hint, const cs_real_t hextv[3])
 Set Dirichlet BC for a vector for a given face. More...
 
CS_F_HOST_DEVICE void cs_boundary_conditions_set_convective_outlet_scalar (cs_real_t &a, cs_real_t &af, cs_real_t &b, cs_real_t &bf, cs_real_t pimp, cs_real_t cfl, cs_real_t hint)
 Set convective oulet boundary condition for a scalar. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_dirichlet_vector_aniso (cs_real_t a[3], cs_real_t af[3], cs_real_t b[3][3], cs_real_t bf[3][3], const cs_real_t pimpv[3], const cs_real_t hintt[6], const cs_real_t hextv[3])
 Set Dirichlet BC for a vector for a given face with left anisotropic diffusion. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_dirichlet_tensor (cs_real_t a[6], cs_real_t af[6], cs_real_t b[6][6], cs_real_t bf[6][6], const cs_real_t pimpts[6], cs_real_t hint, const cs_real_t hextts[6])
 Set Dirichlet BC for a tensor for a given face. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_generalized_sym_vector (cs_real_t a[3], cs_real_t af[3], cs_real_t b[3][3], cs_real_t bf[3][3], const cs_real_t pimpv[3], const cs_real_t qimpv[3], cs_real_t hint, const cs_nreal_t normal[3])
 Set generalized BC for a symmetric vector for a given face. More...
 
CS_F_HOST_DEVICE void cs_boundary_conditions_set_generalized_sym_vector_aniso (cs_real_t a[3], cs_real_t af[3], cs_real_t b[3][3], cs_real_t bf[3][3], const cs_real_t pimpv[3], const cs_real_t qimpv[3], const cs_real_t hint[6], const cs_nreal_t normal[3])
 Set generalized BC for an anisotropic symmetric vector for a given face. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_generalized_dirichlet_vector (cs_real_t a[3], cs_real_t af[3], cs_real_t b[3][3], cs_real_t bf[3][3], const cs_real_t pimpv[3], const cs_real_t qimpv[3], cs_real_t hint, const cs_nreal_t normal[3])
 Set generalized Dirichlet BC for a vector for a given face. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_generalized_dirichlet_sym_tensor (cs_real_t a[6], cs_real_t af[6], cs_real_t b[6][6], cs_real_t bf[6][6], const cs_real_t pimpv[6], const cs_real_t qimpv[6], cs_real_t hint, const cs_nreal_t normal[3])
 Set generalized Dirichlet BC for a symmetric tensor for a given face. More...
 
CS_F_HOST_DEVICE void cs_boundary_conditions_set_generalized_dirichlet_vector_aniso (cs_real_t a[3], cs_real_t af[3], cs_real_t b[3][3], cs_real_t bf[3][3], const cs_real_t pimpv[3], const cs_real_t qimpv[3], const cs_real_t hint[6], const cs_nreal_t normal[3])
 Set generalized Dirichlet BC for an anisotropic vector for a given face. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_convective_outlet_vector (cs_real_t a[3], cs_real_t af[3], cs_real_t b[3][3], cs_real_t bf[3][3], const cs_real_t pimpv[3], const cs_real_t cflv[3], cs_real_t hint)
 Set convective outlet BC for a vector for a given face. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_convective_outlet_tensor (cs_real_t a[6], cs_real_t af[6], cs_real_t b[6][6], cs_real_t bf[6][6], const cs_real_t pimpts[6], const cs_real_t cflts[6], cs_real_t hint)
 Set convective outlet BC for a tensor for a given face. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_convective_outlet_vector_aniso (cs_real_t a[3], cs_real_t af[3], cs_real_t b[3][3], cs_real_t bf[3][3], const cs_real_t pimpv[3], const cs_real_t cflv[3], const cs_real_t hintt[6])
 Set convective outlet BC for an anisotropic vector for a given face. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_dirichlet_conv_neumann_diff_vector (cs_real_t a[3], cs_real_t af[3], cs_real_t b[3][3], cs_real_t bf[3][3], const cs_real_t pimpv[3], const cs_real_t qimpv[3])
 Imposed value for the convection operator, imposed flux for diffusion, for a vector. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_dirichlet_conv_neumann_diff_tensor (cs_real_t a[6], cs_real_t af[6], cs_real_t b[6][6], cs_real_t bf[6][6], const cs_real_t pimpts[6], const cs_real_t qimpts[6])
 Imposed value for the convection operator, imposed flux for diffusion, for a tensor. More...
 
static CS_F_HOST_DEVICE 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 CS_F_HOST_DEVICE void cs_boundary_conditions_set_neumann_scalar_hmg (cs_real_t &a, cs_real_t &af, cs_real_t &b, cs_real_t &bf)
 Set homogeneous Neumann BC for a scalar for a given face. More...
 
static CS_F_HOST_DEVICE 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 CS_F_HOST_DEVICE void cs_boundary_conditions_set_neumann_conv_h_neumann_diff_scalar (cs_real_t &a, cs_real_t &af, cs_real_t &b, cs_real_t &bf, cs_real_t dimp, cs_real_t hint)
 Set Neumann BC for the convection operator, zero flux for diffusion. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_affine_function_scalar (cs_real_t &a, cs_real_t &af, cs_real_t &b, cs_real_t &bf, cs_real_t pinf, cs_real_t ratio, cs_real_t hint)
 Set BC for an affine scalar function for a given face. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_affine_function_conv_neumann_diff_scalar (cs_real_t &a, cs_real_t &af, cs_real_t &b, cs_real_t &bf, cs_real_t pinf, cs_real_t ratio, cs_real_t dimp)
 Set Neumann BC for the convection operator, imposed flux for diffusion. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_total_flux (cs_real_t &a, cs_real_t &af, cs_real_t &b, cs_real_t &bf, cs_real_t hext, cs_real_t dimp)
 Set total flux as a Robin condition. More...
 
static CS_F_HOST_DEVICE void cs_boundary_conditions_set_dirichlet_conv_neumann_diff_scalar (cs_real_t &a, cs_real_t &af, cs_real_t &b, cs_real_t &bf, cs_real_t pimp, cs_real_t dimp)
 Imposed value for the convection operator, imposed flux for diffusion, for a scalar. More...
 
void cs_boundary_conditions_update_bc_coeff_face_values (cs_dispatch_context &ctx, const cs_field_t *f, const cs_field_bc_coeffs_t *bc_coeffs, const int inc, const cs_equation_param_t *eqp, const bool need_compute_bc_grad, const bool need_compute_bc_flux, int hyd_p_flag, cs_real_t f_ext[][3], cs_real_t visel[], cs_real_t viscel[][6], const cs_real_t weighb[], const cs_real_t pvar[], cs_real_t val_f[], cs_real_t flux[])
 Update face value for gradient and diffusion when solving in increment. More...
 
void cs_boundary_conditions_update_bc_coeff_face_values (cs_dispatch_context &ctx, cs_field_t *f, const cs_equation_param_t *eqp, const bool need_compute_bc_grad, const bool need_compute_bc_flux, int hyd_p_flag, cs_real_t f_ext[][3], cs_real_t viscel[][6], const cs_real_t weighb[], const cs_real_t pvar[])
 Update boundary coefficient face values for gradient and diffusion when solving for a given field. More...
 
template<cs_lnum_t stride>
void cs_boundary_conditions_update_bc_coeff_face_values_strided (cs_dispatch_context &ctx, cs_field_t *f, const cs_field_bc_coeffs_t *bc_coeffs, const int inc, const cs_equation_param_t *eqp, const cs_real_t pvar[][stride], cs_real_t val_ip[][stride], cs_real_t val_f[][stride], cs_real_t flux[][stride], cs_real_t flux_lim[][stride])
 Update face value for gradient and diffusion when solving in increments. More...
 
template<cs_lnum_t stride>
void cs_boundary_conditions_update_bc_coeff_face_values_strided (cs_dispatch_context &ctx, cs_field_t *f, const cs_real_t pvar[][stride])
 
void cs_boundary_conditions_ensure_bc_coeff_face_values_allocated (cs_field_bc_coeffs_t *bc_coeffs, cs_lnum_t n_b_faces, cs_lnum_t dim, cs_alloc_mode_t amode, bool limiter)
 Allocate BC coefficients face values if needed. More...
 
void cs_init_bc_coeffs_solve (cs_bc_coeffs_solve_t &c, cs_lnum_t n_b_faces, cs_lnum_t stride, cs_alloc_mode_t amode, bool limiter)
 Initialize boundary condition coefficients solve arrays. More...
 
void cs_clear_bc_coeffs_solve (cs_bc_coeffs_solve_t &c)
 Free boundary condition coefficients solve arrays. More...
 

Function Documentation

◆ cs_boundary_conditions_ensure_bc_coeff_face_values_allocated()

void cs_boundary_conditions_ensure_bc_coeff_face_values_allocated ( cs_field_bc_coeffs_t bc_coeffs,
cs_lnum_t  n_b_faces,
cs_lnum_t  dim,
cs_alloc_mode_t  amode,
bool  limiter 
)

Allocate BC coefficients face values if needed.

Parameters
[in,out]bc_coeffspointer to boundary conditions coefficients.
[in]n_b_facesnumber of boundary faces
[in]dimassociated field dimension
[in]amodeallocation mode
[in]limiteris a limiter active ?

◆ cs_boundary_conditions_set_affine_function_conv_neumann_diff_scalar()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_affine_function_conv_neumann_diff_scalar ( cs_real_t a,
cs_real_t af,
cs_real_t b,
cs_real_t bf,
cs_real_t  pinf,
cs_real_t  ratio,
cs_real_t  dimp 
)
inlinestatic

Set Neumann BC for the convection operator, imposed flux for 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]pinfaffine part
[in]ratiolinear part
[in]dimpflux value to impose

◆ cs_boundary_conditions_set_affine_function_scalar()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_affine_function_scalar ( cs_real_t a,
cs_real_t af,
cs_real_t b,
cs_real_t bf,
cs_real_t  pinf,
cs_real_t  ratio,
cs_real_t  hint 
)
inlinestatic

Set BC for an affine scalar function 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]pinfaffine part
[in]ratiolinear part
[in]hintinternal exchange coefficient

◆ cs_boundary_conditions_set_coeffs()

void cs_boundary_conditions_set_coeffs ( int  nvar,
int  iterns,
int  isvhb,
int  italim,
int  itrfin,
int  ineefl,
int  itrfup,
int  isostd[],
cs_real_t visvdr,
cs_real_t  hbord[],
cs_real_t  theipb[],
int  nftcdt 
)

Translation of the boundary conditions given by the user in a form that fits to the solver.

The values at a boundary face $ \fib $ stored in the face center $ \centf $ of the variable $ P $ and its diffusive flux $ Q $ are written as:

\[
P_{\face} = A_P^g + B_P^g P_{\centi}
\]

and

\[
Q_{\face} = A_P^f + B_P^f P_{\centi}
\]

where $ P_\centi $ is the value of the variable $ P $ at the neighboring cell.

Warning
  • If we consider an increment of a variable, the boundary conditions read:

    \[
  \delta P_{\face} = B_P^g \delta P_{\centi}
  \]

    and

    \[
  \delta Q_{\face} = -B_P^f \delta P_{\centi}
  \]

  • For a vector field such as the velocity $ \vect{u} $ the boundary conditions may read:

    \[
  \vect{u}_{\face} = \vect{A}_u^g + \tens{B}_u^g \vect{u}_{\centi}
  \]

    and

    \[
  \vect{Q}_{\face} = \vect{A}_u^f + \tens{B}_u^f \vect{u}_{\centi}
  \]

    where $ \tens{B}_u^g $ and $ \tens{B}_u^f $ are 3x3 tensor matrix which coupled velocity components next to a boundary.

Please refer to the boundary conditions section of the theory guide for more informations, as well as the condli section.

Parameters
[in]nvartotal number of variables
[in]iternsiteration number on Navier-Stokes equations
[in]isvhbid of field whose exchange coeffient should be saved at the walls, or -1.
[in]italimfor ALE
[in]itrfinLast velocity-pressure sub-iteration indicator
[in]ineeflfor ALE
[in]itrfupUpdate after velocity-pressure sub-iterations
[in,out]isostdindicator for standard outlet and reference face index
[in]dttime step (per cell)
[in,out]visvdrdynamic viscosity after V. Driest damping in boundary cells
[out]hbordexchange coefficient at boundary
[out]theipbvalue of thermal scalar at $ \centip $ f boundary cells
[in]nftcdtGlobal indicator of condensation source terms (ie. sum on the processors of nfbpcd) cells associated to the face with condensation phenomenon

◆ cs_boundary_conditions_set_coeffs_init()

void cs_boundary_conditions_set_coeffs_init ( void  )

Initialization of boundary condition arrays.

◆ cs_boundary_conditions_set_convective_outlet_scalar()

CS_F_HOST_DEVICE void cs_boundary_conditions_set_convective_outlet_scalar ( cs_real_t a,
cs_real_t af,
cs_real_t b,
cs_real_t bf,
cs_real_t  pimp,
cs_real_t  cfl,
cs_real_t  hint 
)

Set convective oulet boundary condition for a scalar.

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]pimpflux value to impose
[in]cfllocal Courant number used to convect
[in]hintinternal exchange coefficient

◆ cs_boundary_conditions_set_convective_outlet_tensor()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_convective_outlet_tensor ( cs_real_t  a[6],
cs_real_t  af[6],
cs_real_t  b[6][6],
cs_real_t  bf[6][6],
const cs_real_t  pimpts[6],
const cs_real_t  cflts[6],
cs_real_t  hint 
)
inlinestatic

Set convective outlet BC for a tensor 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]pimptsDirichlet value to impose
[in]cfltslocal Courant number used to convect
[in]hintinternal exchange coefficient

◆ cs_boundary_conditions_set_convective_outlet_vector()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_convective_outlet_vector ( cs_real_t  a[3],
cs_real_t  af[3],
cs_real_t  b[3][3],
cs_real_t  bf[3][3],
const cs_real_t  pimpv[3],
const cs_real_t  cflv[3],
cs_real_t  hint 
)
inlinestatic

Set convective outlet 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]cflvlocal Courant number used to convect
[in]hintinternal exchange coefficient

◆ cs_boundary_conditions_set_convective_outlet_vector_aniso()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_convective_outlet_vector_aniso ( cs_real_t  a[3],
cs_real_t  af[3],
cs_real_t  b[3][3],
cs_real_t  bf[3][3],
const cs_real_t  pimpv[3],
const cs_real_t  cflv[3],
const cs_real_t  hintt[6] 
)
inlinestatic

Set convective outlet BC for an anisotropic 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]cflvlocal Courant number used to convect
[in]hinttinternal exchange coefficient

◆ cs_boundary_conditions_set_dirichlet_conv_neumann_diff_scalar()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_dirichlet_conv_neumann_diff_scalar ( cs_real_t a,
cs_real_t af,
cs_real_t b,
cs_real_t bf,
cs_real_t  pimp,
cs_real_t  dimp 
)
inlinestatic

Imposed value for the convection operator, imposed flux for diffusion, for a scalar.

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]dimpflux value to impose

◆ cs_boundary_conditions_set_dirichlet_conv_neumann_diff_tensor()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_dirichlet_conv_neumann_diff_tensor ( cs_real_t  a[6],
cs_real_t  af[6],
cs_real_t  b[6][6],
cs_real_t  bf[6][6],
const cs_real_t  pimpts[6],
const cs_real_t  qimpts[6] 
)
inlinestatic

Imposed value for the convection operator, imposed flux for diffusion, for a tensor.

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]pimptsDirichlet value to impose
[in]qimptsflux value to impose

◆ cs_boundary_conditions_set_dirichlet_conv_neumann_diff_vector()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_dirichlet_conv_neumann_diff_vector ( cs_real_t  a[3],
cs_real_t  af[3],
cs_real_t  b[3][3],
cs_real_t  bf[3][3],
const cs_real_t  pimpv[3],
const cs_real_t  qimpv[3] 
)
inlinestatic

Imposed value for the convection operator, imposed flux for diffusion, for a vector.

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]qimpvflux value to impose

◆ cs_boundary_conditions_set_dirichlet_scalar()

static CS_F_HOST_DEVICE 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_tensor()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_dirichlet_tensor ( cs_real_t  a[6],
cs_real_t  af[6],
cs_real_t  b[6][6],
cs_real_t  bf[6][6],
const cs_real_t  pimpts[6],
cs_real_t  hint,
const cs_real_t  hextts[6] 
)
inlinestatic

Set Dirichlet BC for a tensor for a given face.

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]pimptsDirichlet value to impose
[in]hintinternal exchange coefficient
[in]hexttsexternal exchange coefficient (10^30 by default)

◆ cs_boundary_conditions_set_dirichlet_vector()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_dirichlet_vector ( cs_real_t  a[3],
cs_real_t  af[3],
cs_real_t  b[3][3],
cs_real_t  bf[3][3],
const cs_real_t  pimpv[3],
cs_real_t  hint,
const cs_real_t  hextv[3] 
)
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]fbimplicit 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 CS_F_HOST_DEVICE void cs_boundary_conditions_set_dirichlet_vector_aniso ( cs_real_t  a[3],
cs_real_t  af[3],
cs_real_t  b[3][3],
cs_real_t  bf[3][3],
const cs_real_t  pimpv[3],
const cs_real_t  hintt[6],
const cs_real_t  hextv[3] 
)
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_generalized_dirichlet_sym_tensor()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_generalized_dirichlet_sym_tensor ( cs_real_t  a[6],
cs_real_t  af[6],
cs_real_t  b[6][6],
cs_real_t  bf[6][6],
const cs_real_t  pimpv[6],
const cs_real_t  qimpv[6],
cs_real_t  hint,
const cs_nreal_t  normal[3] 
)
inlinestatic

Set generalized Dirichlet BC for a symmetric tensor for a given face.

That is Dirichlet on shear, Neumann on "normal components"

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 on the tangential components
[in]qimpvflux value to impose on the normal component
[in]hintinternal exchange coefficient
[in]normalunit normal

◆ cs_boundary_conditions_set_generalized_dirichlet_vector()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_generalized_dirichlet_vector ( cs_real_t  a[3],
cs_real_t  af[3],
cs_real_t  b[3][3],
cs_real_t  bf[3][3],
const cs_real_t  pimpv[3],
const cs_real_t  qimpv[3],
cs_real_t  hint,
const cs_nreal_t  normal[3] 
)
inlinestatic

Set generalized 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 on the tangential components
[in]qimpvflux value to impose on the normal component
[in]hintinternal exchange coefficient
[in]normalunit normal

◆ cs_boundary_conditions_set_generalized_dirichlet_vector_aniso()

CS_F_HOST_DEVICE void cs_boundary_conditions_set_generalized_dirichlet_vector_aniso ( cs_real_t  a[3],
cs_real_t  af[3],
cs_real_t  b[3][3],
cs_real_t  bf[3][3],
const cs_real_t  pimpv[3],
const cs_real_t  qimpv[3],
const cs_real_t  hint[6],
const cs_nreal_t  normal[3] 
)

Set generalized Dirichlet BC for an anisotropic 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 on the tangential components
[in]qimpvflux value to impose on the normal component
[in]hintinternal exchange coefficient
[in]normalunit normal

◆ cs_boundary_conditions_set_generalized_sym_vector()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_generalized_sym_vector ( cs_real_t  a[3],
cs_real_t  af[3],
cs_real_t  b[3][3],
cs_real_t  bf[3][3],
const cs_real_t  pimpv[3],
const cs_real_t  qimpv[3],
cs_real_t  hint,
const cs_nreal_t  normal[3] 
)
inlinestatic

Set generalized BC for a symmetric 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 on the normal component
[in]qimpvflux value to impose on the tangential components
[in]hintinternal exchange coefficient
[in]normalunit normal

◆ cs_boundary_conditions_set_generalized_sym_vector_aniso()

CS_F_HOST_DEVICE void cs_boundary_conditions_set_generalized_sym_vector_aniso ( cs_real_t  a[3],
cs_real_t  af[3],
cs_real_t  b[3][3],
cs_real_t  bf[3][3],
const cs_real_t  pimpv[3],
const cs_real_t  qimpv[3],
const cs_real_t  hint[6],
const cs_nreal_t  normal[3] 
)

Set generalized BC for an anisotropic symmetric 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 on the normal component
[in]qimpvflux value to impose on the tangential components
[in]hintinternal exchange coefficient
[in]normalunit normal

◆ cs_boundary_conditions_set_neumann_conv_h_neumann_diff_scalar()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_neumann_conv_h_neumann_diff_scalar ( cs_real_t a,
cs_real_t af,
cs_real_t b,
cs_real_t bf,
cs_real_t  dimp,
cs_real_t  hint 
)
inlinestatic

Set Neumann BC for the convection operator, zero flux for 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]dimpflux value to impose
[in]hintinternal exchange coefficient

◆ cs_boundary_conditions_set_neumann_scalar()

static CS_F_HOST_DEVICE 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

◆ cs_boundary_conditions_set_neumann_scalar_hmg()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_neumann_scalar_hmg ( cs_real_t a,
cs_real_t af,
cs_real_t b,
cs_real_t bf 
)
inlinestatic

Set homogeneous 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

◆ cs_boundary_conditions_set_neumann_tensor()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_neumann_tensor ( cs_real_t  a[6],
cs_real_t  af[6],
cs_real_t  b[6][6],
cs_real_t  bf[6][6],
const cs_real_t  qimpts[6],
cs_real_t  hint 
)
inlinestatic

Set Neumann boundary conditions for a tensor for a given face.

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

◆ cs_boundary_conditions_set_neumann_vector()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_neumann_vector ( cs_real_t  a[3],
cs_real_t  af[3],
cs_real_t  b[3][3],
cs_real_t  bf[3][3],
const cs_real_t  qimpv[3],
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]qimpvflux value to impose
[in]hintinternal exchange coefficient

◆ cs_boundary_conditions_set_neumann_vector_aniso()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_neumann_vector_aniso ( cs_real_t  a[3],
cs_real_t  af[3],
cs_real_t  b[3][3],
cs_real_t  bf[3][3],
const cs_real_t  qimpv[3],
const cs_real_t  hint[6] 
)
inlinestatic

Set neumann BC for an anisotropic 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]qimpvflux value to impose
[in]hintinternal exchange coefficient

◆ cs_boundary_conditions_set_total_flux()

static CS_F_HOST_DEVICE void cs_boundary_conditions_set_total_flux ( cs_real_t a,
cs_real_t af,
cs_real_t b,
cs_real_t bf,
cs_real_t  hext,
cs_real_t  dimp 
)
inlinestatic

Set total flux as a Robin condition.

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]hextconvective flux to be imposed
[in]dimpflux value to impose

◆ cs_boundary_conditions_update_bc_coeff_face_values() [1/2]

void cs_boundary_conditions_update_bc_coeff_face_values ( cs_dispatch_context ctx,
const cs_field_t f,
const cs_field_bc_coeffs_t bc_coeffs,
const int  inc,
const cs_equation_param_t eqp,
const bool  need_compute_bc_grad,
const bool  need_compute_bc_flux,
int  hyd_p_flag,
cs_real_t  f_ext[][3],
cs_real_t  visel[],
cs_real_t  viscel[][6],
const cs_real_t  weighb[],
const cs_real_t  pvar[],
cs_real_t  val_f[],
cs_real_t  flux[] 
)

Update face value for gradient and diffusion when solving in increment.

Parameters
[in]ctxreference to dispatch context
[in]fpointer to field
[in]bc_coeffsboundary condition structure
[in]inc0 if an increment, 1 otherwise
[in]eqpequation parameters
[in]need_compute_bc_gradval_f must be computed
[in]need_compute_bc_fluxflux must be computed
[in]hyd_p_flaghydrostatic pressure indicator
[in]f_extexterior force generating pressure
[in]viselviscosity by cell, or nullptr
[in]viscelsymmetric cell tensor $ \tens{\mu}_\celli $, or nullptr
[in]weighbboundary face weight for cells i in case of tensor diffusion, or nullptr
[in]varvariable values at cell centers
[in,out]var_fface values for the gradient computation
[in,out]fluxface values for the diffusion computation

◆ cs_boundary_conditions_update_bc_coeff_face_values() [2/2]

void cs_boundary_conditions_update_bc_coeff_face_values ( cs_dispatch_context ctx,
cs_field_t f,
const cs_equation_param_t eqp,
const bool  need_compute_bc_grad,
const bool  need_compute_bc_flux,
int  hyd_p_flag,
cs_real_t  f_ext[][3],
cs_real_t  viscel[][6],
const cs_real_t  weighb[],
const cs_real_t  pvar[] 
)

Update boundary coefficient face values for gradient and diffusion when solving for a given field.

Parameters
[in]ctxreference to dispatch context
[in,out]fpointer to field
[in]eqpequation parameters
[in]need_compute_bc_gradval_f must be computed
[in]need_compute_bc_fluxflux must be computed
[in]hyd_p_flagflag for hydrostatic pressure
[in]f_extexterior force generating pressure
[in]viscelsymmetric cell tensor $ \tens{\mu}_\celli $, or nullptr
[in]weighbboundary face weight for cells i in case of tensor diffusion, or nullptr
[in]pvarvariable values at cell centers

◆ cs_boundary_conditions_update_bc_coeff_face_values_strided() [1/2]

void cs_boundary_conditions_update_bc_coeff_face_values_strided ( cs_dispatch_context ctx,
cs_field_t f,
const cs_field_bc_coeffs_t bc_coeffs,
const int  inc,
const cs_equation_param_t eqp,
const cs_real_t  pvar[][stride],
cs_real_t  val_ip[][stride],
cs_real_t  val_f[][stride],
cs_real_t  flux[][stride],
cs_real_t  flux_lim[][stride] 
)

Update face value for gradient and diffusion when solving in increments.

Parameters
[in]ctxreference to dispatch context
[in]fpointer to field
[in]bc_coeffsboundary condition structure for the variable
[in]inc0 if an increment, 1 otherwise
[in]eqpequation parameters
[in]pvarvariable values at cell centers
[in,out]var_ipboundary variable values at I' position
[in,out]var_fface values for the gradient computation
[in,out]var_f_dface values for the diffusion computation
[in,out]var_f_d_limface values for the diffusion computation (with limiter)

◆ cs_boundary_conditions_update_bc_coeff_face_values_strided() [2/2]

void cs_boundary_conditions_update_bc_coeff_face_values_strided ( cs_dispatch_context ctx,
cs_field_t f,
const cs_real_t  pvar[][stride] 
)

◆ cs_clear_bc_coeffs_solve()

void cs_clear_bc_coeffs_solve ( cs_bc_coeffs_solve_t c)

Free boundary condition coefficients solve arrays.

Parameters
[in,out]creference to structure to initialize.

◆ cs_init_bc_coeffs_solve()

void cs_init_bc_coeffs_solve ( cs_bc_coeffs_solve_t c,
cs_lnum_t  n_b_faces,
cs_lnum_t  stride,
cs_alloc_mode_t  amode,
bool  limiter 
)

Initialize boundary condition coefficients solve arrays.

Parameters
[in,out]creference to structure to initialize.
[in]n_b_facesnumber of boundary faces
[in]stridevariable dimension
[in]amodeallocation mode
[in]limiteris a limiter active ?