Translation of the boundary conditions given by the user in a form that fits the solver. More...
#include "base/cs_defs.h"#include <stdarg.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>#include <math.h>#include "bft/bft_printf.h"#include "base/cs_1d_wall_thermal.h"#include "base/cs_ale.h"#include "base/cs_array.h"#include "base/cs_assert.h"#include "base/cs_base.h"#include "base/cs_boundary.h"#include "base/cs_boundary_conditions.h"#include "base/cs_boundary_conditions_check.h"#include "base/cs_boundary_conditions_coupling.h"#include "base/cs_boundary_conditions_set_coeffs_symmetry.h"#include "base/cs_boundary_conditions_set_coeffs_turb.h"#include "base/cs_boundary_conditions_type.h"#include "cfbl/cs_cf_boundary_conditions.h"#include "base/cs_coupling.h"#include "base/cs_dispatch.h"#include "base/cs_field.h"#include "base/cs_field_default.h"#include "base/cs_field_operator.h"#include "base/cs_field_pointer.h"#include "alge/cs_gradient_boundary.h"#include "gui/cs_gui_boundary_conditions.h"#include "gui/cs_gui_mobile_mesh.h"#include "gui/cs_gui_util.h"#include "base/cs_ht_convert.h"#include "base/cs_internal_coupling.h"#include "turb/cs_les_inflow.h"#include "base/cs_log.h"#include "base/cs_mem.h"#include "mesh/cs_mesh.h"#include "mesh/cs_mesh_quantities.h"#include "base/cs_mobile_structures.h"#include "base/cs_parall.h"#include "base/cs_parameters.h"#include "base/cs_physical_constants.h"#include "pprt/cs_physical_model.h"#include "base/cs_prototypes.h"#include "rayt/cs_rad_transfer.h"#include "rayt/cs_rad_transfer_bcs.h"#include "base/cs_sat_coupling.h"#include "base/cs_syr_coupling.h"#include "base/cs_thermal_model.h"#include "base/cs_time_step.h"#include "turb/cs_turbulence_model.h"#include "base/cs_turbomachinery.h"#include "base/cs_velocity_pressure.h"#include "base/cs_vof.h"#include "base/cs_wall_condensation.h"#include "base/cs_wall_condensation_1d_thermal.h"#include "base/cs_rotation.h"#include "base/cs_boundary_conditions_set_coeffs.h"Macros | |
| #define | NOZPPM 2000 /* max number of boundary conditions zone */ |
Functions | |
| int * | cs_f_boundary_conditions_get_bc_type (void) |
| void | cs_f_ppprcl (void) |
| void | cs_f_pptycl (bool init, int *itypfb) |
| void | cs_f_user_boundary_conditions_wrapper (int itypfb[], const int izfppp[], cs_real_t dt[]) |
| void | cs_boundary_conditions_set_coeffs (int nvar, int iterns, int isvhb, int itrale, 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. | |
| void | cs_boundary_conditions_set_coeffs_init (void) |
| Initialization of boundary condition arrays. | |
| void | cs_boundary_conditions_set_convective_outlet_scalar (cs_lnum_t f_id, cs_field_bc_coeffs_t *bc_coeffs, cs_real_t pimp, cs_real_t cfl, cs_real_t hint) |
| Set convective oulet boundary condition for a scalar. | |
| void | cs_boundary_conditions_set_generalized_sym_vector_aniso (cs_lnum_t f_id, cs_field_bc_coeffs_t *bc_coeffs, 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. | |
| void | cs_boundary_conditions_set_generalized_dirichlet_vector_aniso (cs_lnum_t f_id, cs_field_bc_coeffs_t *bc_coeffs, 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. | |
| template<cs_lnum_t stride> | |
| void | cs_boundary_conditions_update_bc_coeff_face_values (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 val_f_lim[][stride], cs_real_t val_f_d[][stride], cs_real_t val_f_d_lim[][stride]) |
| Update face value for gradient and diffusion when solving in increments. | |
| template<cs_lnum_t stride> | |
| void | cs_boundary_conditions_update_bc_coeff_face_values (cs_dispatch_context &ctx, cs_field_t *f, const cs_real_t pvar[][stride]) |
| template void | cs_boundary_conditions_update_bc_coeff_face_values (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[][3], cs_real_t val_ip[][3], cs_real_t val_f[][3], cs_real_t val_f_lim[][3], cs_real_t val_f_d[][3], cs_real_t val_f_d_lim[][3]) |
| template void | cs_boundary_conditions_update_bc_coeff_face_values (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[][6], cs_real_t val_ip[][6], cs_real_t val_f[][6], cs_real_t val_f_lim[][6], cs_real_t val_f_d[][6], cs_real_t val_f_d_lim[][6]) |
| template void | cs_boundary_conditions_update_bc_coeff_face_values (cs_dispatch_context &ctx, cs_field_t *f, const cs_real_t pvar[][3]) |
| template void | cs_boundary_conditions_update_bc_coeff_face_values (cs_dispatch_context &ctx, cs_field_t *f, const cs_real_t pvar[][6]) |
| 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. | |
Translation of the boundary conditions given by the user in a form that fits the solver.
Boundary condition coefficients computation.
| #define NOZPPM 2000 /* max number of boundary conditions zone */ |
| 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.
| [in,out] | bc_coeffs | pointer to boundary conditions coefficients. |
| [in] | n_b_faces | number of boundary faces |
| [in] | dim | associated field dimension |
| [in] | amode | allocation mode |
| [in] | limiter | is a limiter active ? |
| void cs_boundary_conditions_set_coeffs | ( | int | nvar, |
| int | iterns, | ||
| int | isvhb, | ||
| int | itrale, | ||
| 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 



![\[P_{\face} = A_P^g + B_P^g P_{\centi}
\]](form_93.png)
and
![\[Q_{\face} = A_P^f + B_P^f P_{\centi}
\]](form_94.png)
where 

![\[ \delta P_{\face} = B_P^g \delta P_{\centi}
\]](form_96.png)
![\[ \delta Q_{\face} = -B_P^f \delta P_{\centi}
\]](form_97.png)

![\[ \vect{u}_{\face} = \vect{A}_u^g + \tens{B}_u^g \vect{u}_{\centi}
\]](form_99.png)
![\[ \vect{Q}_{\face} = \vect{A}_u^f + \tens{B}_u^f \vect{u}_{\centi}
\]](form_100.png)


Please refer to the boundary conditions section of the theory guide for more informations, as well as the condli section.
| [in] | nvar | total number of variables |
| [in] | iterns | iteration number on Navier-Stokes equations |
| [in] | isvhb | id of field whose exchange coeffient should be saved at the walls, or -1. |
| [in] | itrale | ALE iteration number |
| [in] | italim | for ALE |
| [in] | itrfin | Last velocity-pressure sub-iteration indicator |
| [in] | ineefl | for ALE |
| [in] | itrfup | Update after velocity-pressure sub-iterations |
| [in,out] | isostd | indicator for standard outlet and reference face index |
| [out] | visvdr | dynamic viscosity after V. Driest damping in boundary cells |
| [out] | hbord | exchange coefficient at boundary |
| [out] | theipb | value of thermal scalar at |
| [in] | nftcdt | Global indicator of condensation source terms (ie. sum on the processors of nfbpcd) cells associated to the face with condensation phenomenon |
| void cs_boundary_conditions_set_coeffs_init | ( | void | ) |
Initialization of boundary condition arrays.
| void cs_boundary_conditions_set_convective_outlet_scalar | ( | cs_lnum_t | f_id, |
| cs_field_bc_coeffs_t * | bc_coeffs, | ||
| cs_real_t | pimp, | ||
| cs_real_t | cfl, | ||
| cs_real_t | hint ) |
Set convective oulet boundary condition for a scalar.
| [in] | f_id | face id |
| [out] | bc_coeffs | boundary conditions structure |
| [in] | pimp | flux value to impose |
| [in] | cfl | local Courant number used to convect |
| [in] | hint | internal exchange coefficient |
| void cs_boundary_conditions_set_generalized_dirichlet_vector_aniso | ( | cs_lnum_t | f_id, |
| cs_field_bc_coeffs_t * | bc_coeffs, | ||
| 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.
| [in] | f_id | face id |
| [out] | bc_coeffs | boundary conditions structure |
| [in] | pimpv | Dirichlet value to impose on the tangential components |
| [in] | qimpv | flux value to impose on the normal component |
| [in] | hint | internal exchange coefficient |
| [in] | normal | unit normal |
| void cs_boundary_conditions_set_generalized_sym_vector_aniso | ( | cs_lnum_t | f_id, |
| cs_field_bc_coeffs_t * | bc_coeffs, | ||
| 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.
| [in] | f_id | face id |
| [out] | bc_coeffs | boundary conditions structure |
| [in] | pimpv | Dirichlet value to impose on the normal component |
| [in] | qimpv | flux value to impose on the tangential components |
| [in] | hint | internal exchange coefficient |
| [in] | normal | unit normal |
| template void cs_boundary_conditions_update_bc_coeff_face_values | ( | 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[][3], | ||
| cs_real_t | val_ip[][3], | ||
| cs_real_t | val_f[][3], | ||
| cs_real_t | val_f_lim[][3], | ||
| cs_real_t | val_f_d[][3], | ||
| cs_real_t | val_f_d_lim[][3] ) |
| template void cs_boundary_conditions_update_bc_coeff_face_values | ( | 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[][6], | ||
| cs_real_t | val_ip[][6], | ||
| cs_real_t | val_f[][6], | ||
| cs_real_t | val_f_lim[][6], | ||
| cs_real_t | val_f_d[][6], | ||
| cs_real_t | val_f_d_lim[][6] ) |
| void cs_boundary_conditions_update_bc_coeff_face_values | ( | 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 | val_f_lim[][stride], | ||
| cs_real_t | val_f_d[][stride], | ||
| cs_real_t | val_f_d_lim[][stride] ) |
Update face value for gradient and diffusion when solving in increments.
| [in] | ctx | reference to dispatch context |
| [in] | f | pointer to field |
| [in] | bc_coeffs | boundary condition structure for the variable |
| [in] | inc | 0 if an increment, 1 otherwise |
| [in] | eqp | equation parameters |
| [in] | pvar | variable values at cell centers |
| [in,out] | var_ip | boundary variable values at I' position |
| [in,out] | var_f | face values for the gradient computation |
| [in,out] | var_f_lim | face values for the gradient computation (with limiter) |
| [in,out] | var_f_d | face values for the diffusion computation |
| [in,out] | var_f_d_lim | face values for the diffusion computation (with limiter) |
| template void cs_boundary_conditions_update_bc_coeff_face_values | ( | cs_dispatch_context & | ctx, |
| cs_field_t * | f, | ||
| const cs_real_t | pvar[][3] ) |
| template void cs_boundary_conditions_update_bc_coeff_face_values | ( | cs_dispatch_context & | ctx, |
| cs_field_t * | f, | ||
| const cs_real_t | pvar[][6] ) |
| void cs_boundary_conditions_update_bc_coeff_face_values | ( | cs_dispatch_context & | ctx, |
| cs_field_t * | f, | ||
| const cs_real_t | pvar[][stride] ) |
| int * cs_f_boundary_conditions_get_bc_type | ( | void | ) |
| void cs_f_ppprcl | ( | void | ) |
| void cs_f_pptycl | ( | bool | init, |
| int * | itypfb ) |
| void cs_f_user_boundary_conditions_wrapper | ( | int | itypfb[], |
| const int | izfppp[], | ||
| cs_real_t | dt[] ) |