1#ifndef CS_CONVECTION_DIFFUSION_H
2#define CS_CONVECTION_DIFFUSION_H
912template <cs_lnum_t str
ide,
typename T>
916 const T grad[][stride][3],
965template <cs_lnum_t str
ide,
typename T>
Definition: cs_dispatch.h:2288
Field boundary condition descriptor (for variables)
Definition: cs_field.h:107
Field descriptor.
Definition: cs_field.h:275
void cs_convection_diffusion_secvis(cs_dispatch_context &ctx, const cs_mesh_t *m, const cs_mesh_quantities_t *mq, cs_real_t thetap, const cs_real_t i_visc[], const cs_real_t i_secvis[], const cs_real_t b_secvis[], const cs_rreal_t gradv[][3][3], cs_real_3_t *restrict rhs)
Compute balance contribution of the transpose grad(vel) term and grad(-2/3 div(vel))
Definition: cs_convection_diffusion.cpp:5318
void cs_anisotropic_diffusion_tensor(int idtvar, int f_id, const cs_equation_param_t eqp, int inc, cs_real_6_t *pvar, const cs_real_6_t *pvara, cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_6_t *viscel, const cs_real_2_t weighf[], const cs_real_t weighb[], cs_real_6_t *rhs)
void cs_upwind_gradient_strided(cs_dispatch_context &ctx, const int inc, const cs_halo_type_t halo_type, const cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_t *restrict pvar[stride], T(*restrict grdpa)[stride][3])
void cs_anisotropic_diffusion_scalar(int idtvar, int f_id, const cs_equation_param_t eqp, int inc, const cs_real_t *pvar, const cs_real_t *pvara, cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_6_t *viscel, const cs_real_2_t weighf[], const cs_real_t weighb[], cs_real_t *rhs)
void cs_anisotropic_left_diffusion_vector(int idtvar, int f_id, const cs_equation_param_t eqp, int inc, int ivisep, cs_real_3_t *pvar, const cs_real_3_t *pvara, cs_field_bc_coeffs_t *bc_coeffs, const cs_real_33_t i_visc[], const cs_real_t b_visc[], const cs_real_t i_secvis[], cs_real_3_t *rhs)
void cs_convection_diffusion_thermal(const cs_field_t *f, const cs_equation_param_t eqp, int inc, int imasac, const cs_real_t *pvar, cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_t i_visc[], const cs_real_t b_visc[], const cs_real_t *c_weight, const cs_real_t xcpp[], cs_real_t *rhs)
void cs_upwind_gradient(cs_dispatch_context &ctx, const int inc, const cs_halo_type_t halo_type, const cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_t *pvar, T(*grdpa)[3])
cs_real_t * cs_get_v_slope_test(int f_id, const cs_equation_param_t eqp)
Definition: cs_convection_diffusion.cpp:4866
void cs_anisotropic_diffusion_potential(const cs_field_t *f, const cs_equation_param_t *eqp, const cs_mesh_t *m, cs_mesh_quantities_t *fvq, int init, int inc, int iphydp, cs_real_3_t *restrict frcxt, cs_real_t *restrict pvar, cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_6_t *restrict viscel, const cs_real_2_t weighf[], const cs_real_t weighb[], cs_real_t *restrict diverg)
Add the explicit part of the divergence of the mass flux due to the pressure gradient (analog to cs_a...
Definition: cs_convection_diffusion.cpp:9039
void cs_face_convection_scalar(int idtvar, int f_id, const cs_equation_param_t eqp, int icvflb, int inc, int imasac, cs_real_t *pvar, const cs_real_t *pvara, const int icvfli[], cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_massflux[], const cs_real_t b_massflux[], cs_real_2_t i_conv_flux[], cs_real_t b_conv_flux[])
void cs_slope_test_gradient(int f_id, cs_dispatch_context &ctx, const T(*grad)[3], T(*grdpa)[3], const cs_real_t *pvar, const cs_real_t val_f[], const cs_real_t *i_massflux)
Compute the upwind gradient used in the slope tests.
Definition: cs_convection_diffusion.cpp:9504
void cs_convection_diffusion_tensor(int idtvar, int f_id, const cs_equation_param_t eqp, int icvflb, int inc, int imasac, cs_real_6_t *pvar, const cs_real_6_t *pvara, cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_6_t *rhs)
void cs_face_anisotropic_diffusion_potential(const cs_field_t *f, const cs_equation_param_t *eqp, const cs_mesh_t *m, cs_mesh_quantities_t *fvq, int init, int inc, int iphydp, cs_real_3_t *frcxt, cs_real_t *pvar, cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_6_t *viscel, const cs_real_2_t weighf[], const cs_real_t weighb[], cs_real_t *i_massflux, cs_real_t *b_massflux)
void cs_anisotropic_right_diffusion_vector(int idtvar, int f_id, const cs_equation_param_t eqp, int inc, cs_real_3_t *pvar, const cs_real_3_t *pvara, cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_6_t *viscel, const cs_real_2_t weighf[], const cs_real_t weighb[], cs_real_3_t *rhs)
cs_nvd_type_t
Definition: cs_convection_diffusion.h:55
@ CS_NVD_SUPERBEE
Definition: cs_convection_diffusion.h:60
@ CS_NVD_SMART
Definition: cs_convection_diffusion.h:58
@ CS_NVD_CUBISTA
Definition: cs_convection_diffusion.h:59
@ CS_NVD_STOIC
Definition: cs_convection_diffusion.h:64
@ CS_NVD_WASEB
Definition: cs_convection_diffusion.h:66
@ CS_NVD_CLAM
Definition: cs_convection_diffusion.h:63
@ CS_NVD_OSHER
Definition: cs_convection_diffusion.h:65
@ CS_NVD_VOF_CICSAM
Definition: cs_convection_diffusion.h:68
@ CS_NVD_VOF_STACS
Definition: cs_convection_diffusion.h:69
@ CS_NVD_GAMMA
Definition: cs_convection_diffusion.h:57
@ CS_NVD_MINMOD
Definition: cs_convection_diffusion.h:62
@ CS_NVD_VOF_HRIC
Definition: cs_convection_diffusion.h:67
@ CS_NVD_MUSCL
Definition: cs_convection_diffusion.h:61
@ CS_NVD_N_TYPES
Definition: cs_convection_diffusion.h:70
void cs_convection_diffusion_vector(int idtvar, int f_id, const cs_equation_param_t eqp, int icvflb, int inc, int ivisep, int imasac, cs_real_3_t *pvar, const cs_real_3_t *pvara, const int icvfli[], cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_t i_visc[], const cs_real_t b_visc[], const cs_real_t i_secvis[], const cs_real_t b_secvis[], cs_real_3_t *i_pvar, cs_real_3_t *b_pvar, cs_real_3_t *rhs)
void cs_convection_diffusion_scalar(const cs_field_t *f, const cs_equation_param_t eqp, int icvflb, int inc, int imasac, const cs_real_t *pvar, const int icvfli[], cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_t i_visc[], const cs_real_t b_visc[], const cs_real_t *c_weight, cs_real_t *rhs, cs_real_2_t i_flux[], cs_real_t b_flux[])
void cs_diffusion_potential(const cs_field_t *f, const cs_equation_param_t *eqp, const cs_mesh_t *m, cs_mesh_quantities_t *fvq, int init, int inc, int iphydp, cs_real_3_t *frcxt, cs_real_t *pvar, cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_t visel[], cs_real_t *diverg)
void cs_convection_diffusion_set_scheme_version(int version)
Allow reverting to older convection-diffusion scheme variants.
Definition: cs_convection_diffusion.cpp:10015
int cs_convection_diffusion_get_scheme_version(void)
Query convection-diffusion scheme variants.
Definition: cs_convection_diffusion.cpp:10001
void cs_beta_limiter_building(int f_id, int inc, const cs_real_t rovsdt[])
Compute the beta blending coefficient of the beta limiter (ensuring preservation of a given min/max p...
Definition: cs_convection_diffusion.cpp:4913
void cs_cell_courant_number(const cs_field_t *f, cs_dispatch_context &ctx, cs_real_t *courant)
Definition: cs_convection_diffusion.cpp:9418
void cs_convection_anisotropic_leff_diffusion_secvis(cs_dispatch_context &ctx, const cs_mesh_t *m, const cs_mesh_quantities_t *mq, const cs_real_33_t i_visc[], const cs_real_t i_secvis[], const cs_real_t gradv[][3][3], cs_real_3_t *restrict rhs)
Compute balance contribution of the transpose grad(vel) term and grad(-2/3 div(vel)) with anisotropic...
Definition: cs_convection_diffusion.cpp:5488
void cs_face_diffusion_potential(const cs_field_t *f, const cs_equation_param_t *eqp, const cs_mesh_t *m, cs_mesh_quantities_t *fvq, int init, int inc, int iphydp, cs_real_3_t *frcxt, cs_real_t *pvar, cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_t *visel, cs_real_t *i_massflux, cs_real_t *b_massflux)
void cs_slope_test_gradient_strided(cs_dispatch_context &ctx, const T grad[][stride][3], T(*restrict grdpa)[stride][3], const cs_real_t pvar[][stride], const cs_real_t val_f[][stride], const cs_real_t *i_massflux)
Compute the upwind gradient used in the slope tests.
Definition: cs_convection_diffusion.cpp:9610
#define restrict
Definition: cs_defs.h:148
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:349
cs_real_t cs_real_2_t[2]
vector of 2 floating-point values
Definition: cs_defs.h:348
cs_real_t cs_real_6_t[6]
vector of 6 floating-point values
Definition: cs_defs.h:351
double cs_rreal_t
Definition: cs_defs.h:338
cs_real_t cs_real_33_t[3][3]
3x3 matrix of floating-point values
Definition: cs_defs.h:358
cs_halo_type_t
Definition: cs_halo.h:53
integer(c_int), pointer, save idtvar
option for a variable time step
Definition: optcal.f90:70
Set of parameters to handle an unsteady convection-diffusion-reaction equation with term sources.
Definition: cs_equation_param.h:190
Definition: cs_mesh_quantities.h:88