1#ifndef __CS_INTERNAL_COUPLING_H__
2#define __CS_INTERNAL_COUPLING_H__
132 const char criteria_faces[]);
170 const int zone_ids[]);
192 const char *interior_name,
193 const char *exterior_name);
674#if defined(__cplusplus)
695template <cs_lnum_t str
ide>
cs_real_t cs_real_33_t[3][3]
3x3 matrix of floating-point values
Definition cs_defs.h:368
#define BEGIN_C_DECLS
Definition cs_defs.h:542
double cs_real_t
Floating-point value.
Definition cs_defs.h:342
cs_real_t cs_real_6_t[6]
vector of 6 floating-point values
Definition cs_defs.h:361
unsigned cs_gnum_t
global mesh entity number
Definition cs_defs.h:327
#define END_C_DECLS
Definition cs_defs.h:543
cs_real_t cs_real_63_t[6][3]
Definition cs_defs.h:376
int cs_lnum_t
local mesh entity id
Definition cs_defs.h:335
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition cs_defs.h:359
cs_halo_type_t
Definition cs_halo.h:56
void cs_internal_coupling_iterative_tensor_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], cs_real_63_t *grad, const cs_real_6_t pvar[], cs_real_63_t rhs[])
Add internal coupling rhs contribution for iterative tensor gradient calculation.
void cs_internal_coupling_initialize_scalar_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], const cs_real_t pvar[], cs_real_3_t *grad)
Add contribution from coupled faces (internal coupling) to initialisation for iterative scalar gradie...
void cs_internal_coupling_preprocess(cs_mesh_t *mesh)
Definition cs_internal_coupling.cpp:2613
void cs_internal_coupling_initialize_vector_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], const cs_real_3_t pvar[], cs_real_33_t *grad)
Add contribution from coupled faces (internal coupling) to initialisation for iterative vector gradie...
void cs_internal_coupling_iterative_scalar_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], cs_real_3_t *grad, const cs_real_t pvar[], cs_real_3_t rhs[])
Add internal coupling rhs contribution for iterative gradient calculation.
void cs_internal_coupling_matrix_add_ids(int coupling_id, const cs_gnum_t *r_g_id, cs_matrix_assembler_t *ma)
Definition cs_internal_coupling.cpp:2267
void cs_internal_coupling_log(const cs_internal_coupling_t *cpl)
Definition cs_internal_coupling.cpp:2540
void cs_internal_coupling_reconstruct_scalar_gradient(const cs_internal_coupling_t *cpl, cs_real_3_t *r_grad, cs_real_3_t grad[])
Add internal coupling contribution for reconstruction of the gradient of a scalar.
void cs_internal_coupling_add_volume_zone(const cs_zone_t *z)
Define coupling volume using a cs_zone_t. Then, this volume will be separated from the rest of the do...
Definition cs_internal_coupling.cpp:959
void cs_internal_coupling_add_boundary_groups(cs_internal_coupling_t *cpl, const char *interior_name, const char *exterior_name)
Define internal coupling volume boundary group names.
Definition cs_internal_coupling.cpp:1022
void cs_internal_coupling_initialize(void)
Initialize internal coupling related structures.
Definition cs_internal_coupling.cpp:2523
void cs_internal_coupling_reconstruct_tensor_gradient(const cs_internal_coupling_t *cpl, cs_real_63_t *r_grad, cs_real_63_t grad[])
Add internal coupling contribution for reconstruction of the gradient of a symmetric tensor.
void cs_internal_coupling_exchange_var(const cs_internal_coupling_t *cpl, int stride, cs_real_t distant[], cs_real_t local[])
Exchange quantities from distant to local (update local using distant).
Definition cs_internal_coupling.cpp:1906
void cs_internal_coupling_finalize(void)
Destruction of all internal coupling related structures.
Definition cs_internal_coupling.cpp:1861
void cs_internal_coupling_iterative_vector_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], cs_real_33_t *grad, const cs_real_3_t pvar[], cs_real_33_t rhs[])
Add internal coupling rhs contribution for iterative vector gradient calculation.
void cs_internal_coupling_coupled_faces(const cs_internal_coupling_t *cpl, cs_lnum_t *n_local, const cs_lnum_t *faces_local[], cs_lnum_t *n_distant, const cs_lnum_t *faces_distant[])
Definition cs_internal_coupling.cpp:2021
void cs_internal_coupling_bcs(int bc_type[])
Impose wall BCs to internal coupled faces if not yet defined.
Definition cs_internal_coupling.cpp:1046
void cs_internal_coupling_matrix_add_values(const cs_field_t *f, cs_lnum_t db_size, cs_lnum_t eb_size, const cs_gnum_t r_g_id[], cs_matrix_assembler_values_t *mav)
Definition cs_internal_coupling.cpp:2340
void cs_internal_coupling_reconstruct_vector_gradient(const cs_internal_coupling_t *cpl, cs_real_33_t *r_grad, cs_real_33_t grad[])
Add internal coupling contribution for reconstruction of the gradient of a vector.
void cs_internal_coupling_add_volume_zones(int n_zones, const int zone_ids[])
Define coupling volume using given cs_zone_t. Then, this volume will be separated from the rest of th...
Definition cs_internal_coupling.cpp:977
void cs_internal_coupling_it_cocg_contribution(const cs_internal_coupling_t *cpl, cs_real_33_t cocg[])
Definition cs_internal_coupling.cpp:1826
int cs_internal_coupling_n_couplings(void)
Return number of defined internal couplings.
Definition cs_internal_coupling.cpp:883
void cs_ic_field_dist_data_by_face_id(const int field_id, int stride, const cs_real_t tab_distant[], cs_real_t tab_local[])
Get distant data using face id at all coupling faces for a given field id.
Definition cs_internal_coupling.cpp:2726
void cs_internal_coupling_exchange_by_cell_id(const cs_internal_coupling_t *cpl, int stride, const cs_real_t tab[], cs_real_t local[])
Exchange variable between groups using cell id.
Definition cs_internal_coupling.cpp:1932
void cs_internal_coupling_exchange_by_face_id(const cs_internal_coupling_t *cpl, int stride, const cs_real_t tab[], cs_real_t local[])
Exchange variable between groups using face id.
Definition cs_internal_coupling.cpp:1981
cs_internal_coupling_t * cs_internal_coupling_by_id(int coupling_id)
Return the coupling associated with a given coupling_id.
Definition cs_internal_coupling.cpp:1883
void cs_internal_coupling_map(cs_mesh_t *mesh)
Definition cs_internal_coupling.cpp:2634
void cs_internal_coupling_initialize_tensor_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], const cs_real_6_t pvar[], cs_real_63_t *grad)
Add contribution from coupled faces (internal coupling) to initialisation for iterative symmetric ten...
void cs_internal_coupling_update_bc_coeff_s(const cs_field_bc_coeffs_t *bc_coeffs, const cs_internal_coupling_t *cpl, cs_halo_type_t halo_type, int w_stride, double clip_coeff, const cs_real_t *var, const cs_real_t *c_weight)
Compute scalar boundary condition coefficients for internal coupling.
Definition cs_internal_coupling.cpp:2053
void cs_internal_coupling_add_volume(const char criteria_cells[])
Define coupling volume using given criteria. Then, this volume will be separated from the rest of the...
Definition cs_internal_coupling.cpp:928
void cs_internal_coupling_spmv_contribution(bool exclude_diag, const cs_field_t *f, const cs_real_t *x, cs_real_t *y)
void cs_ic_field_set_exchcoeff(const cs_field_t *f, const cs_real_t *hbnd)
Update internal coupling coefficients of the field of the given id using given boundary exchange coef...
Definition cs_internal_coupling.cpp:2680
void cs_internal_coupling_dump(void)
Definition cs_internal_coupling.cpp:2586
void cs_internal_coupling_add_entity(int f_id)
Definition cs_internal_coupling.cpp:2654
void cs_internal_coupling_setup(void)
Setup internal coupling related parameters.
Definition cs_internal_coupling.cpp:2470
void cs_internal_coupling_add(const char criteria_cells[], const char criteria_faces[])
Define coupling volume using given selection criteria.
Definition cs_internal_coupling.cpp:900
struct _cs_matrix_assembler_t cs_matrix_assembler_t
Definition cs_matrix_assembler.h:61
struct _cs_matrix_assembler_values_t cs_matrix_assembler_values_t
Definition cs_matrix_assembler.h:65
Field boundary condition descriptor (for variables)
Definition cs_field.h:121
Field descriptor.
Definition cs_field.h:158
Definition cs_internal_coupling.h:63
ple_locator_t * locator
Definition cs_internal_coupling.h:69
cs_lnum_t * faces_local
Definition cs_internal_coupling.h:85
cs_lnum_t * faces_distant
Definition cs_internal_coupling.h:88
int n_volume_zones
Definition cs_internal_coupling.h:81
bool * coupled_faces
Definition cs_internal_coupling.h:91
int * c_tag
Definition cs_internal_coupling.h:70
int id
Definition cs_internal_coupling.h:66
char * interior_faces_group_name
Definition cs_internal_coupling.h:76
cs_real_3_t * ci_cj_vect
Definition cs_internal_coupling.h:97
char * exterior_faces_group_name
Definition cs_internal_coupling.h:77
char * cells_criteria
Definition cs_internal_coupling.h:73
cs_real_3_t * offset_vect
Definition cs_internal_coupling.h:100
cs_lnum_t n_distant
Definition cs_internal_coupling.h:87
cs_lnum_t n_local
Definition cs_internal_coupling.h:84
char * faces_criteria
Definition cs_internal_coupling.h:74
cs_real_t * g_weight
Definition cs_internal_coupling.h:94
int * volume_zone_ids
Definition cs_internal_coupling.h:82