My Project
programmer's documentation
|
#include <ple_locator.h>
#include "cs_defs.h"
#include "cs_base.h"
#include "cs_matrix_assembler.h"
#include "cs_mesh.h"
#include "cs_parameters.h"
Go to the source code of this file.
Data Structures | |
struct | cs_internal_coupling_t |
Functions | |
int | cs_internal_coupling_n_couplings (void) |
Return number of defined internal couplings. More... | |
void | cs_internal_coupling_add (cs_mesh_t *mesh, const char criteria_cells[], const char criteria_faces[]) |
Define coupling volume using given selection criteria. More... | |
void | cs_internal_coupling_add_volume (cs_mesh_t *mesh, const char criteria_cells[]) |
Define coupling volume using given criteria. Then, this volume will be separated from the rest of the domain with thin walls. More... | |
void | cs_internal_coupling_bcs (int bc_type[]) |
Impose wall BCs to internal coupled faces if not yet defined. More... | |
void | cs_internal_coupling_finalize (void) |
Destruction of all internal coupling related structures. More... | |
cs_internal_coupling_t * | cs_internal_coupling_by_id (int coupling_id) |
Return the coupling associated with a given coupling_id. More... | |
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). More... | |
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. More... | |
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. More... | |
void | cs_internal_coupling_lsq_cocg_contribution (const cs_internal_coupling_t *cpl, cs_real_33_t cocg[]) |
void | cs_internal_coupling_lsq_cocg_weighted (const cs_internal_coupling_t *cpl, const cs_real_t *c_weight, cs_real_33_t cocg[]) |
void | cs_internal_coupling_it_cocg_contribution (const cs_internal_coupling_t *cpl, cs_real_33_t cocg[]) |
void | cs_internal_coupling_setup (void) |
Setup internal coupling related parameters. More... | |
void | cs_internal_coupling_initialize (void) |
Initialize internal coupling related structures. More... | |
void | cs_internal_coupling_lsq_scalar_gradient (const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], const int w_stride, cs_real_4_t rhsv[]) |
Add internal coupling rhs contribution for LSQ gradient calculation. More... | |
void | cs_internal_coupling_lsq_vector_gradient (const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], const int w_stride, const cs_real_3_t pvar[], cs_real_33_t rhs[]) |
Add internal coupling rhs contribution for LSQ gradient calculation. More... | |
void | cs_internal_coupling_lsq_tensor_gradient (const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], const int w_stride, const cs_real_6_t pvar[], cs_real_63_t rhs[]) |
Add internal coupling rhs contribution for LSQ gradient calculation. More... | |
void | cs_internal_coupling_iterative_scalar_gradient (const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], cs_real_3_t *restrict grad, const cs_real_t pvar[], cs_real_3_t rhs[]) |
Add internal coupling rhs contribution for iterative gradient calculation. More... | |
void | cs_internal_coupling_iterative_vector_gradient (const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], cs_real_33_t *restrict grad, const cs_real_3_t pvar[], cs_real_33_t rhs[]) |
Add internal coupling rhs contribution for iterative vector gradient calculation. More... | |
void | cs_internal_coupling_iterative_tensor_gradient (const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], cs_real_63_t *restrict grad, const cs_real_6_t pvar[], cs_real_63_t rhs[]) |
Add internal coupling rhs contribution for iterative tensor gradient calculation. More... | |
void | cs_internal_coupling_reconstruct_scalar_gradient (const cs_internal_coupling_t *cpl, cs_real_3_t *restrict r_grad, cs_real_3_t grad[]) |
Add internal coupling contribution for reconstruction of the gradient of a scalar. More... | |
void | cs_internal_coupling_reconstruct_vector_gradient (const cs_internal_coupling_t *cpl, cs_real_33_t *restrict r_grad, cs_real_33_t grad[]) |
Add internal coupling contribution for reconstruction of the gradient of a vector. More... | |
void | cs_internal_coupling_reconstruct_tensor_gradient (const cs_internal_coupling_t *cpl, cs_real_63_t *restrict r_grad, cs_real_63_t grad[]) |
Add internal coupling contribution for reconstruction of the gradient of a symmetric tensor. More... | |
void | cs_internal_coupling_spmv_contribution (bool exclude_diag, const cs_field_t *f, const cs_real_t *restrict x, cs_real_t *restrict y) |
void | cs_internal_coupling_matrix_add_ids (int coupling_id, const cs_gnum_t *r_g_id, cs_matrix_assembler_t *ma) |
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) |
void | cs_internal_coupling_coupled_faces (const cs_internal_coupling_t *cpl, cs_lnum_t *n_local, cs_lnum_t *faces_local[], cs_lnum_t *n_distant, cs_lnum_t *faces_distant[]) |
void | cs_internal_coupling_log (const cs_internal_coupling_t *cpl) |
void | cs_internal_coupling_dump (void) |
void | cs_internal_coupling_preprocess (cs_mesh_t *mesh) |
void | cs_internal_coupling_map (cs_mesh_t *mesh) |
void | cs_internal_coupling_add_entity (int f_id) |
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 *restrict grad) |
Add contribution from coupled faces (internal coupling) to initialisation for iterative scalar gradient calculation. More... | |
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 *restrict grad) |
Add contribution from coupled faces (internal coupling) to initialisation for iterative vector gradient calculation. More... | |
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 *restrict grad) |
Add contribution from coupled faces (internal coupling) to initialisation for iterative symmetric tensor gradient calculation. More... | |
void | cs_ic_field_set_exchcoeff (const int field_id, const cs_real_t *hbnd) |
Update internal coupling coefficients of the field of the given id using given boundary exchange coefficients passed by face id. More... | |
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. More... | |
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.
[in] | field_id | field id |
[in] | stride | number of values (interlaced) by entity |
[in] | tab_distant | exchanged data by face id |
[out] | tab_local | local data by face id |
void cs_ic_field_set_exchcoeff | ( | const int | field_id, |
const cs_real_t * | hbnd | ||
) |
Update internal coupling coefficients of the field of the given id using given boundary exchange coefficients passed by face id.
[in] | field_id | field id |
[in] | hbnd | boundary exchange coefficients passed by face id |
void cs_internal_coupling_add | ( | cs_mesh_t * | mesh, |
const char | criteria_cells[], | ||
const char | criteria_faces[] | ||
) |
Define coupling volume using given selection criteria.
Then, this volume must be seperated from the rest of the domain with a wall.
[in,out] | mesh | pointer to mesh structure to modify |
[in] | criteria_cells | criteria for the first group of cells |
[in] | criteria_faces | criteria for faces to be joined |
void cs_internal_coupling_add_entity | ( | int | f_id | ) |
void cs_internal_coupling_add_volume | ( | cs_mesh_t * | mesh, |
const char | criteria_cells[] | ||
) |
Define coupling volume using given criteria. Then, this volume will be separated from the rest of the domain with thin walls.
[in,out] | mesh | pointer to mesh structure to modify |
[in] | criteria_cells | criteria for the first group of cells |
void cs_internal_coupling_bcs | ( | int | bc_type[] | ) |
Impose wall BCs to internal coupled faces if not yet defined.
[in,out] | bc_type | face boundary condition type |
cs_internal_coupling_t* cs_internal_coupling_by_id | ( | int | coupling_id | ) |
Return the coupling associated with a given coupling_id.
[in] | coupling_id | associated with a coupling entity |
void cs_internal_coupling_coupled_faces | ( | const cs_internal_coupling_t * | cpl, |
cs_lnum_t * | n_local, | ||
cs_lnum_t * | faces_local[], | ||
cs_lnum_t * | n_distant, | ||
cs_lnum_t * | faces_distant[] | ||
) |
void cs_internal_coupling_dump | ( | void | ) |
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.
[in] | cpl | pointer to coupling entity |
[in] | stride | number of values (non interlaced) by entity |
[in] | tab | variable exchanged |
[out] | local | local data |
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.
[in] | cpl | pointer to coupling entity |
[in] | stride | number of values (non interlaced) by entity |
[in] | tab | variable exchanged |
[out] | local | local data |
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).
[in] | cpl | pointer to coupling entity |
[in] | stride | stride (e.g. 1 for double, 3 for interleaved coordinates) |
[in] | distant | distant values, size coupling->n_distant |
[out] | local | local values, size coupling->n_local |
void cs_internal_coupling_finalize | ( | void | ) |
Destruction of all internal coupling related structures.
void cs_internal_coupling_initialize | ( | void | ) |
Initialize internal coupling related structures.
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 *restrict | grad | ||
) |
Add contribution from coupled faces (internal coupling) to initialisation for iterative scalar gradient calculation.
[in] | cpl | pointer to coupling entity |
[in] | c_weight | weighted gradient coefficient variable, or NULL |
[in] | pvar | variable |
[in,out] | grad | gradient |
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 *restrict | grad | ||
) |
Add contribution from coupled faces (internal coupling) to initialisation for iterative symmetric tensor gradient calculation.
[in] | cpl | pointer to coupling entity |
[in] | c_weight | weighted gradient coefficient variable, or NULL |
[in,out] | pvar | variable |
[in,out] | grad | gradient |
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 *restrict | grad | ||
) |
Add contribution from coupled faces (internal coupling) to initialisation for iterative vector gradient calculation.
[in] | cpl | pointer to coupling entity |
[in] | c_weight | weighted gradient coefficient variable, or NULL |
[in] | pvar | variable |
[in,out] | grad | gradient |
void cs_internal_coupling_it_cocg_contribution | ( | const cs_internal_coupling_t * | cpl, |
cs_real_33_t | cocg[] | ||
) |
void cs_internal_coupling_iterative_scalar_gradient | ( | const cs_internal_coupling_t * | cpl, |
const cs_real_t | c_weight[], | ||
cs_real_3_t *restrict | grad, | ||
const cs_real_t | pvar[], | ||
cs_real_3_t | rhs[] | ||
) |
Add internal coupling rhs contribution for iterative gradient calculation.
[in] | cpl | pointer to coupling entity |
[in] | c_weight | weighted gradient coefficient variable, or NULL |
[in] | grad | pointer to gradient |
[in] | pvar | pointer to variable |
[in,out] | rhs | pointer to rhs contribution |
void cs_internal_coupling_iterative_tensor_gradient | ( | const cs_internal_coupling_t * | cpl, |
const cs_real_t | c_weight[], | ||
cs_real_63_t *restrict | grad, | ||
const cs_real_6_t | pvar[], | ||
cs_real_63_t | rhs[] | ||
) |
Add internal coupling rhs contribution for iterative tensor gradient calculation.
[in] | cpl | pointer to coupling entity |
[in] | c_weight | weighted gradient coefficient variable, or NULL |
[in] | grad | pointer to gradient |
[in] | pvar | pointer to variable |
[in,out] | rhs | pointer to rhs contribution |
void cs_internal_coupling_iterative_vector_gradient | ( | const cs_internal_coupling_t * | cpl, |
const cs_real_t | c_weight[], | ||
cs_real_33_t *restrict | grad, | ||
const cs_real_3_t | pvar[], | ||
cs_real_33_t | rhs[] | ||
) |
Add internal coupling rhs contribution for iterative vector gradient calculation.
[in] | cpl | pointer to coupling entity |
[in] | c_weight | weighted gradient coefficient variable, or NULL |
[in] | grad | pointer to gradient |
[in] | pvar | pointer to variable |
[in,out] | rhs | pointer to rhs contribution |
void cs_internal_coupling_log | ( | const cs_internal_coupling_t * | cpl | ) |
void cs_internal_coupling_lsq_cocg_contribution | ( | const cs_internal_coupling_t * | cpl, |
cs_real_33_t | cocg[] | ||
) |
void cs_internal_coupling_lsq_cocg_weighted | ( | const cs_internal_coupling_t * | cpl, |
const cs_real_t * | c_weight, | ||
cs_real_33_t | cocg[] | ||
) |
void cs_internal_coupling_lsq_scalar_gradient | ( | const cs_internal_coupling_t * | cpl, |
const cs_real_t | c_weight[], | ||
const int | w_stride, | ||
cs_real_4_t | rhsv[] | ||
) |
Add internal coupling rhs contribution for LSQ gradient calculation.
[in] | cpl | pointer to coupling entity |
[in] | c_weight | weighted gradient coefficient variable, or NULL |
[in] | w_stride | stride of weighting coefficient |
[in,out] | rhsv | pointer to rhs contribution |
void cs_internal_coupling_lsq_tensor_gradient | ( | const cs_internal_coupling_t * | cpl, |
const cs_real_t | c_weight[], | ||
const int | w_stride, | ||
const cs_real_6_t | pvar[], | ||
cs_real_63_t | rhs[] | ||
) |
Add internal coupling rhs contribution for LSQ gradient calculation.
[in] | cpl | pointer to coupling entity |
[in] | c_weight | weighted gradient coefficient variable, or NULL |
[in] | w_stride | stride of weighting coefficient |
[in] | pvar | pointer to variable |
[in,out] | rhs | pointer to rhs contribution |
void cs_internal_coupling_lsq_vector_gradient | ( | const cs_internal_coupling_t * | cpl, |
const cs_real_t | c_weight[], | ||
const int | w_stride, | ||
const cs_real_3_t | pvar[], | ||
cs_real_33_t | rhs[] | ||
) |
Add internal coupling rhs contribution for LSQ gradient calculation.
[in] | cpl | pointer to coupling entity |
[in] | c_weight | weighted gradient coefficient variable, or NULL |
[in] | w_stride | stride of weighting coefficient |
[in] | pvar | pointer to variable |
[in,out] | rhs | pointer to rhs contribution |
void cs_internal_coupling_map | ( | cs_mesh_t * | mesh | ) |
void cs_internal_coupling_matrix_add_ids | ( | int | coupling_id, |
const cs_gnum_t * | r_g_id, | ||
cs_matrix_assembler_t * | ma | ||
) |
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 | ||
) |
int cs_internal_coupling_n_couplings | ( | void | ) |
Return number of defined internal couplings.
void cs_internal_coupling_preprocess | ( | cs_mesh_t * | mesh | ) |
void cs_internal_coupling_reconstruct_scalar_gradient | ( | const cs_internal_coupling_t * | cpl, |
cs_real_3_t *restrict | r_grad, | ||
cs_real_3_t | grad[] | ||
) |
Add internal coupling contribution for reconstruction of the gradient of a scalar.
[in] | cpl | pointer to coupling entity |
[in] | r_grad | pointer to reconstruction gradient |
[in,out] | grad | pointer to gradient to be reconstructed var |
void cs_internal_coupling_reconstruct_tensor_gradient | ( | const cs_internal_coupling_t * | cpl, |
cs_real_63_t *restrict | r_grad, | ||
cs_real_63_t | grad[] | ||
) |
Add internal coupling contribution for reconstruction of the gradient of a symmetric tensor.
[in] | cpl | pointer to coupling entity |
[in] | r_grad | pointer to reconstruction gradient |
[in,out] | grad | pointer to gradient to be reconstructed var |
void cs_internal_coupling_reconstruct_vector_gradient | ( | const cs_internal_coupling_t * | cpl, |
cs_real_33_t *restrict | r_grad, | ||
cs_real_33_t | grad[] | ||
) |
Add internal coupling contribution for reconstruction of the gradient of a vector.
[in] | cpl | pointer to coupling entity |
[in] | r_grad | pointer to reconstruction gradient |
[in,out] | grad | pointer to gradient to be reconstructed var |
void cs_internal_coupling_setup | ( | void | ) |
Setup internal coupling related parameters.
void cs_internal_coupling_spmv_contribution | ( | bool | exclude_diag, |
const cs_field_t * | f, | ||
const cs_real_t *restrict | x, | ||
cs_real_t *restrict | y | ||
) |