|
programmer's documentation
|
#include "cs_defs.h"#include <assert.h>#include <errno.h>#include <stdio.h>#include <stdarg.h>#include <string.h>#include <math.h>#include <float.h>#include "bft_error.h"#include "bft_mem.h"#include "bft_printf.h"#include "cs_blas.h"#include "cs_halo.h"#include "cs_halo_perio.h"#include "cs_log.h"#include "cs_mesh.h"#include "cs_field.h"#include "cs_gradient.h"#include "cs_gradient_perio.h"#include "cs_ext_neighborhood.h"#include "cs_mesh_quantities.h"#include "cs_parameters.h"#include "cs_prototypes.h"#include "cs_timer.h"#include "cs_parall.h"#include "cs_matrix_building.h"
Functions | |
| void | matrix (const int *iconvp, const int *idiffp, const int *ndircp, const int *isym, const cs_real_t *thetap, const int *imucpp, const cs_real_t coefbp[], const cs_real_t cofbfp[], const cs_real_t rovsdt[], 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 xcpp[], cs_real_t da[], cs_real_t xa[]) |
| void | matrdt (const cs_int_t *const iconvp, const cs_int_t *const idiffp, const cs_int_t *const isym, const cs_real_t coefbp[], const cs_real_t cofbfp[], 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_t da[]) |
| void | cs_matrix_wrapper_scalar (int iconvp, int idiffp, int ndircp, int isym, double thetap, int imucpp, const cs_real_t coefbp[], const cs_real_t cofbfp[], const cs_real_t rovsdt[], 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 xcpp[], cs_real_t da[], cs_real_t xa[]) |
| void | cs_matrix_wrapper_scalar_conv_diff (int iconvp, int idiffp, int ndircp, double thetap, int imucpp, const cs_real_t coefbp[], const cs_real_t cofbfp[], const cs_real_t rovsdt[], 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 xcpp[], cs_real_t da[], cs_real_t xa[], cs_real_t da_conv[], cs_real_t xa_conv[], cs_real_t da_diff[], cs_real_t xa_diff[]) |
| void | cs_matrix_wrapper_vector (int iconvp, int idiffp, int tensorial_diffusion, int ndircp, int isym, int eb_size[4], double thetap, const cs_real_33_t coefbp[], const cs_real_33_t cofbfp[], const cs_real_33_t fimp[], 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_33_t da[], cs_real_t xa[]) |
| void | cs_matrix_wrapper_tensor (int iconvp, int idiffp, int tensorial_diffusion, int ndircp, int isym, double thetap, const cs_real_66_t coefbts[], const cs_real_66_t cofbfts[], const cs_real_66_t fimp[], 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_66_t da[], cs_real_t xa[]) |
| void | cs_sym_matrix_scalar (const cs_mesh_t *m, int idiffp, double thetap, const cs_real_t cofbfp[], const cs_real_t rovsdt[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_t *restrict da, cs_real_t *restrict xa) |
| Build the diffusion matrix for a scalar field. (symmetric matrix). More... | |
| void | cs_matrix_scalar (const cs_mesh_t *m, int iconvp, int idiffp, double thetap, int imucpp, const cs_real_t coefbp[], const cs_real_t cofbfp[], const cs_real_t rovsdt[], 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 xcpp[], cs_real_t *restrict da, cs_real_2_t *restrict xa) |
| Build the advection/diffusion matrix for a scalar field (non-symmetric matrix). More... | |
| void | cs_sym_matrix_vector (const cs_mesh_t *m, int idiffp, double thetap, const cs_real_33_t cofbfp[], const cs_real_33_t fimp[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_33_t *restrict da, cs_real_t *restrict xa) |
| Build the diffusion matrix for a vector field (symmetric matrix). More... | |
| void | cs_sym_matrix_tensor (const cs_mesh_t *m, int idiffp, double thetap, const cs_real_66_t cofbfts[], const cs_real_66_t fimp[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_66_t *restrict da, cs_real_t *restrict xa) |
| Build the diffusion matrix for a tensor field (symmetric matrix). More... | |
| void | cs_matrix_vector (const cs_mesh_t *m, const cs_mesh_quantities_t *mq, int iconvp, int idiffp, int eb_size[4], double thetap, const cs_real_33_t coefbp[], const cs_real_33_t cofbfp[], const cs_real_33_t fimp[], 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_33_t *restrict da, cs_real_2_t *restrict xa) |
| Build the advection/diffusion matrix for a vector field (non-symmetric matrix). More... | |
| void | cs_matrix_tensor (const cs_mesh_t *m, int iconvp, int idiffp, double thetap, const cs_real_66_t coefbts[], const cs_real_66_t cofbfts[], const cs_real_66_t fimp[], 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_66_t *restrict da, cs_real_2_t *restrict xa) |
| Build the advection/diffusion matrix for a tensor field (non-symmetric matrix). More... | |
| void | cs_matrix_time_step (const cs_mesh_t *m, int iconvp, int idiffp, int isym, const cs_real_t coefbp[], const cs_real_t cofbfp[], 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_t *restrict da) |
| Build the diagonal of the advection/diffusion matrix for determining the variable time step, flow, Fourier. More... | |
| void | cs_matrix_anisotropic_diffusion (const cs_mesh_t *m, const cs_mesh_quantities_t *mq, int iconvp, int idiffp, double thetap, const cs_real_33_t coefbp[], const cs_real_33_t cofbfp[], const cs_real_33_t fimp[], const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_33_t i_visc[], const cs_real_t b_visc[], cs_real_33_t *restrict da, cs_real_332_t *restrict xa) |
| Build the advection/diffusion matrix for a vector field with a tensorial diffusivity. More... | |
| void | cs_matrix_anisotropic_diffusion_tensor (const cs_mesh_t *m, int iconvp, int idiffp, double thetap, const cs_real_66_t coefbp[], const cs_real_66_t cofbfp[], const cs_real_66_t fimp[], const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_66_t i_visc[], const cs_real_t b_visc[], cs_real_66_t *restrict da, cs_real_662_t *restrict xa) |
| Build the advection/diffusion matrix for a tensor field with a tensorial diffusivity. More... | |
| void | cs_sym_matrix_anisotropic_diffusion (const cs_mesh_t *m, int idiffp, double thetap, const cs_real_33_t cofbfp[], const cs_real_33_t fimp[], const cs_real_33_t i_visc[], const cs_real_t b_visc[], cs_real_33_t *restrict da, cs_real_33_t *restrict xa) |
| Build the diffusion matrix for a vector field with a tensorial diffusivity (symmetric matrix). More... | |
| void | cs_sym_matrix_anisotropic_diffusion_tensor (const cs_mesh_t *m, int idiffp, double thetap, const cs_real_66_t cofbfp[], const cs_real_66_t fimp[], const cs_real_66_t i_visc[], const cs_real_t b_visc[], cs_real_66_t *restrict da, cs_real_66_t *restrict xa) |
| Build the diffusion matrix for a tensor field with a tensorial diffusivity (symmetric matrix). More... | |
| void cs_matrix_anisotropic_diffusion | ( | const cs_mesh_t * | m, |
| const cs_mesh_quantities_t * | mq, | ||
| int | iconvp, | ||
| int | idiffp, | ||
| double | thetap, | ||
| const cs_real_33_t | coefbp[], | ||
| const cs_real_33_t | cofbfp[], | ||
| const cs_real_33_t | fimp[], | ||
| const cs_real_t | i_massflux[], | ||
| const cs_real_t | b_massflux[], | ||
| const cs_real_33_t | i_visc[], | ||
| const cs_real_t | b_visc[], | ||
| cs_real_33_t *restrict | da, | ||
| cs_real_332_t *restrict | xa | ||
| ) |
Build the advection/diffusion matrix for a vector field with a tensorial diffusivity.
The advection is upwind, the diffusion is not reconstructed. The matrix is split into a diagonal block (3x3 times number of cells) and an extra diagonal part (of dimension 2 times 3x3 the number of internal faces).
| [in] | m | pointer to mesh structure |
| [in] | mq | pointer to mesh quantities structure |
| [in] | iconvp | indicator
|
| [in] | idiffp | indicator
|
| [in] | thetap | weighting coefficient for the theta-scheme,
|
| [in] | coefbp | boundary condition array for the variable (implicit part - 3x3 tensor array) |
| [in] | cofbfp | boundary condition array for the variable flux (implicit part - 3x3 tensor array) |
| [in] | fimp | part of the diagonal |
| [in] | i_massflux | mass flux at interior faces |
| [in] | b_massflux | mass flux at border faces |
| [in] | i_visc | at interior faces for the matrix |
| [in] | b_visc | at border faces for the matrix |
| [out] | da | diagonal part of the matrix |
| [out] | xa | extra interleaved diagonal part of the matrix |
| void cs_matrix_anisotropic_diffusion_tensor | ( | const cs_mesh_t * | m, |
| int | iconvp, | ||
| int | idiffp, | ||
| double | thetap, | ||
| const cs_real_66_t | coefbp[], | ||
| const cs_real_66_t | cofbfp[], | ||
| const cs_real_66_t | fimp[], | ||
| const cs_real_t | i_massflux[], | ||
| const cs_real_t | b_massflux[], | ||
| const cs_real_66_t | i_visc[], | ||
| const cs_real_t | b_visc[], | ||
| cs_real_66_t *restrict | da, | ||
| cs_real_662_t *restrict | xa | ||
| ) |
Build the advection/diffusion matrix for a tensor field with a tensorial diffusivity.
The advection is upwind, the diffusion is not reconstructed. The matrix is split into a diagonal block (3x3 times number of cells) and an extra diagonal part (of dimension 2 times 3x3 the number of internal faces).
| [in] | m | pointer to mesh structure |
| [in] | iconvp | indicator
|
| [in] | idiffp | indicator
|
| [in] | thetap | weighting coefficient for the theta-scheme,
|
| [in] | coefbp | boundary condition array for the variable (implicit part - 3x3 tensor array) |
| [in] | cofbfp | boundary condition array for the variable flux (implicit part - 3x3 tensor array) |
| [in] | fimp | part of the diagonal |
| [in] | i_massflux | mass flux at interior faces |
| [in] | b_massflux | mass flux at border faces |
| [in] | i_visc | at interior faces for the matrix |
| [in] | b_visc | at border faces for the matrix |
| [out] | da | diagonal part of the matrix |
| [out] | xa | extra interleaved diagonal part of the matrix |
| void cs_matrix_scalar | ( | const cs_mesh_t * | m, |
| int | iconvp, | ||
| int | idiffp, | ||
| double | thetap, | ||
| int | imucpp, | ||
| const cs_real_t | coefbp[], | ||
| const cs_real_t | cofbfp[], | ||
| const cs_real_t | rovsdt[], | ||
| 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 | xcpp[], | ||
| cs_real_t *restrict | da, | ||
| cs_real_2_t *restrict | xa | ||
| ) |
Build the advection/diffusion matrix for a scalar field (non-symmetric matrix).
Build the advection/diffusion matrix for a scalar field.
The advection is upwind, the diffusion is not reconstructed. The matrix is split into a diagonal block (number of cells) and an extra diagonal part (of dimension 2 time the number of internal faces).
| [in] | m | pointer to mesh structure |
| [in] | iconvp | indicator
|
| [in] | idiffp | indicator
|
| [in] | thetap | weighting coefficient for the theta-scheme,
|
| [in] | imucpp | indicator
|
| [in] | coefbp | boundary condition array for the variable (implicit part) |
| [in] | cofbfp | boundary condition array for the variable flux (implicit part) |
| [in] | rovsdt | working array |
| [in] | i_massflux | mass flux at interior faces |
| [in] | b_massflux | mass flux at border faces |
| [in] | i_visc | at interior faces for the matrix |
| [in] | b_visc | at border faces for the matrix |
| [in] | xcpp | array of specific heat (Cp) |
| [out] | da | diagonal part of the matrix |
| [out] | xa | extra interleaved diagonal part of the matrix |
| void cs_matrix_tensor | ( | const cs_mesh_t * | m, |
| int | iconvp, | ||
| int | idiffp, | ||
| double | thetap, | ||
| const cs_real_66_t | coefbts[], | ||
| const cs_real_66_t | cofbfts[], | ||
| const cs_real_66_t | fimp[], | ||
| 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_66_t *restrict | da, | ||
| cs_real_2_t *restrict | xa | ||
| ) |
Build the advection/diffusion matrix for a tensor field (non-symmetric matrix).
The advection is upwind, the diffusion is not reconstructed. The matrix is split into a diagonal block (6x6 times number of cells) and an extra diagonal part (of dimension 2 time the number of internal faces).
| [in] | m | pointer to mesh structure |
| [in] | iconvp | indicator
|
| [in] | idiffp | indicator
|
| [in] | thetap | weighting coefficient for the theta-scheme,
|
| [in] | coefbts | boundary condition array for the variable (Implicit part - 6x6 tensor array) |
| [in] | cofbfts | boundary condition array for the variable flux (Implicit part - 6x6 tensor array) |
| [in] | fimp | part of the diagonal |
| [in] | i_massflux | mass flux at interior faces |
| [in] | b_massflux | mass flux at border faces |
| [in] | i_visc | at interior faces for the matrix |
| [in] | b_visc | at border faces for the matrix |
| [out] | da | diagonal part of the matrix |
| [out] | xa | extra interleaved diagonal part of the matrix |
| void cs_matrix_time_step | ( | const cs_mesh_t * | m, |
| int | iconvp, | ||
| int | idiffp, | ||
| int | isym, | ||
| const cs_real_t | coefbp[], | ||
| const cs_real_t | cofbfp[], | ||
| 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_t *restrict | da | ||
| ) |
Build the diagonal of the advection/diffusion matrix for determining the variable time step, flow, Fourier.
| [in] | m | pointer to mesh structure |
| [in] | iconvp | indicator
|
| [in] | idiffp | indicator
|
| [in] | isym | indicator
|
| [in] | coefbp | boundary condition array for the variable (implicit part) |
| [in] | cofbfp | boundary condition array for the variable flux (implicit part) |
| [in] | i_massflux | mass flux at interior faces |
| [in] | b_massflux | mass flux at border faces |
| [in] | i_visc | at interior faces for the matrix |
| [in] | b_visc | at border faces for the matrix |
| [out] | da | diagonal part of the matrix |
| void cs_matrix_vector | ( | const cs_mesh_t * | m, |
| const cs_mesh_quantities_t * | mq, | ||
| int | iconvp, | ||
| int | idiffp, | ||
| int | eb_size[4], | ||
| double | thetap, | ||
| const cs_real_33_t | coefbp[], | ||
| const cs_real_33_t | cofbfp[], | ||
| const cs_real_33_t | fimp[], | ||
| 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_33_t *restrict | da, | ||
| cs_real_2_t *restrict | xa | ||
| ) |
Build the advection/diffusion matrix for a vector field (non-symmetric matrix).
The advection is upwind, the diffusion is not reconstructed. The matrix is split into a diagonal block (3x3 times number of cells) and an extra diagonal part (of dimension 2 time the number of internal faces).
| [in] | m | pointer to mesh structure |
| [in] | mq | pointer to mesh quantities structure |
| [in] | iconvp | indicator
|
| [in] | idiffp | indicator
|
| [in] | thetap | weighting coefficient for the theta-scheme,
|
| [in] | coefbp | boundary condition array for the variable (implicit part - 3x3 tensor array) |
| [in] | cofbfp | boundary condition array for the variable flux (implicit part - 3x3 tensor array) |
| [in] | fimp | part of the diagonal |
| [in] | i_massflux | mass flux at interior faces |
| [in] | b_massflux | mass flux at border faces |
| [in] | i_visc | at interior faces for the matrix |
| [in] | b_visc | at border faces for the matrix |
| [out] | da | diagonal part of the matrix |
| [out] | xa | extra interleaved diagonal part of the matrix |
| void cs_matrix_wrapper_scalar | ( | int | iconvp, |
| int | idiffp, | ||
| int | ndircp, | ||
| int | isym, | ||
| double | thetap, | ||
| int | imucpp, | ||
| const cs_real_t | coefbp[], | ||
| const cs_real_t | cofbfp[], | ||
| const cs_real_t | rovsdt[], | ||
| 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 | xcpp[], | ||
| cs_real_t | da[], | ||
| cs_real_t | xa[] | ||
| ) |
| void cs_matrix_wrapper_scalar_conv_diff | ( | int | iconvp, |
| int | idiffp, | ||
| int | ndircp, | ||
| double | thetap, | ||
| int | imucpp, | ||
| const cs_real_t | coefbp[], | ||
| const cs_real_t | cofbfp[], | ||
| const cs_real_t | rovsdt[], | ||
| 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 | xcpp[], | ||
| cs_real_t | da[], | ||
| cs_real_t | xa[], | ||
| cs_real_t | da_conv[], | ||
| cs_real_t | xa_conv[], | ||
| cs_real_t | da_diff[], | ||
| cs_real_t | xa_diff[] | ||
| ) |
| void cs_matrix_wrapper_tensor | ( | int | iconvp, |
| int | idiffp, | ||
| int | tensorial_diffusion, | ||
| int | ndircp, | ||
| int | isym, | ||
| double | thetap, | ||
| const cs_real_66_t | coefbts[], | ||
| const cs_real_66_t | cofbfts[], | ||
| const cs_real_66_t | fimp[], | ||
| 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_66_t | da[], | ||
| cs_real_t | xa[] | ||
| ) |
| void cs_matrix_wrapper_vector | ( | int | iconvp, |
| int | idiffp, | ||
| int | tensorial_diffusion, | ||
| int | ndircp, | ||
| int | isym, | ||
| int | eb_size[4], | ||
| double | thetap, | ||
| const cs_real_33_t | coefbp[], | ||
| const cs_real_33_t | cofbfp[], | ||
| const cs_real_33_t | fimp[], | ||
| 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_33_t | da[], | ||
| cs_real_t | xa[] | ||
| ) |
| void cs_sym_matrix_anisotropic_diffusion | ( | const cs_mesh_t * | m, |
| int | idiffp, | ||
| double | thetap, | ||
| const cs_real_33_t | cofbfp[], | ||
| const cs_real_33_t | fimp[], | ||
| const cs_real_33_t | i_visc[], | ||
| const cs_real_t | b_visc[], | ||
| cs_real_33_t *restrict | da, | ||
| cs_real_33_t *restrict | xa | ||
| ) |
Build the diffusion matrix for a vector field with a tensorial diffusivity (symmetric matrix).
The diffusion is not reconstructed. The matrix is split into a diagonal block (3x3 times number of cells) and an extra diagonal part (of dimension 3x3 the number of internal faces).
| [in] | m | pointer to mesh structure |
| [in] | idiffp | indicator
|
| [in] | thetap | weighting coefficient for the theta-scheme,
|
| [in] | cofbfp | boundary condition array for the variable flux (implicit part - 3x3 tensor array) |
| [in] | fimp | |
| [in] | i_visc | at interior faces for the matrix |
| [in] | b_visc | at border faces for the matrix |
| [out] | da | diagonal part of the matrix |
| [out] | xa | extra interleaved diagonal part of the matrix |
| void cs_sym_matrix_anisotropic_diffusion_tensor | ( | const cs_mesh_t * | m, |
| int | idiffp, | ||
| double | thetap, | ||
| const cs_real_66_t | cofbfp[], | ||
| const cs_real_66_t | fimp[], | ||
| const cs_real_66_t | i_visc[], | ||
| const cs_real_t | b_visc[], | ||
| cs_real_66_t *restrict | da, | ||
| cs_real_66_t *restrict | xa | ||
| ) |
Build the diffusion matrix for a tensor field with a tensorial diffusivity (symmetric matrix).
Build the diffusion matrix for a vector field with a tensorial diffusivity (symmetric matrix).
The diffusion is not reconstructed. The matrix is split into a diagonal block (3x3 times number of cells) and an extra diagonal part (of dimension 3x3 the number of internal faces).
| [in] | m | pointer to mesh structure |
| [in] | idiffp | indicator
|
| [in] | thetap | weighting coefficient for the theta-scheme,
|
| [in] | cofbfp | boundary condition array for the variable flux (implicit part - 3x3 tensor array) |
| [in] | fimp | |
| [in] | i_visc | at interior faces for the matrix |
| [in] | b_visc | at border faces for the matrix |
| [out] | da | diagonal part of the matrix |
| [out] | xa | extra interleaved diagonal part of the matrix |
| void cs_sym_matrix_scalar | ( | const cs_mesh_t * | m, |
| int | idiffp, | ||
| double | thetap, | ||
| const cs_real_t | cofbfp[], | ||
| const cs_real_t | rovsdt[], | ||
| const cs_real_t | i_visc[], | ||
| const cs_real_t | b_visc[], | ||
| cs_real_t *restrict | da, | ||
| cs_real_t *restrict | xa | ||
| ) |
Build the diffusion matrix for a scalar field. (symmetric matrix).
The diffusion is not reconstructed. The matrix is split into a diagonal block (number of cells) and an extra diagonal part (of dimension the number of internal faces).
| [in] | m | pointer to mesh structure |
| [in] | idiffp | indicator
|
| [in] | thetap | weighting coefficient for the theta-scheme,
|
| [in] | cofbfp | boundary condition array for the variable flux (implicit part) |
| [in] | rovsdt | working array |
| [in] | i_visc | at interior faces for the matrix |
| [in] | b_visc | at border faces for the matrix |
| [out] | da | diagonal part of the matrix |
| [out] | xa | extra diagonal part of the matrix |
| void cs_sym_matrix_tensor | ( | const cs_mesh_t * | m, |
| int | idiffp, | ||
| double | thetap, | ||
| const cs_real_66_t | cofbfts[], | ||
| const cs_real_66_t | fimp[], | ||
| const cs_real_t | i_visc[], | ||
| const cs_real_t | b_visc[], | ||
| cs_real_66_t *restrict | da, | ||
| cs_real_t *restrict | xa | ||
| ) |
Build the diffusion matrix for a tensor field (symmetric matrix).
The diffusion is not reconstructed. The matrix is split into a diagonal block (6x6 times number of cells) and an extra diagonal part (of dimension the number of internal faces).
| [in] | m | pointer to mesh structure |
| [in] | idiffp | indicator
|
| [in] | thetap | weighting coefficient for the theta-scheme,
|
| [in] | cofbfts | boundary condition array for the variable flux (Implicit part - 6x6 tensor array) |
| [in] | fimp | part of the diagonal |
| [in] | i_visc | at interior faces for the matrix |
| [in] | b_visc | at border faces for the matrix |
| [out] | da | diagonal part of the matrix |
| [out] | xa | extra interleaved diagonal part of the matrix |
| void cs_sym_matrix_vector | ( | const cs_mesh_t * | m, |
| int | idiffp, | ||
| double | thetap, | ||
| const cs_real_33_t | cofbfp[], | ||
| const cs_real_33_t | fimp[], | ||
| const cs_real_t | i_visc[], | ||
| const cs_real_t | b_visc[], | ||
| cs_real_33_t *restrict | da, | ||
| cs_real_t *restrict | xa | ||
| ) |
Build the diffusion matrix for a vector field (symmetric matrix).
The diffusion is not reconstructed. The matrix is split into a diagonal block (3x3 times number of cells) and an extra diagonal part (of dimension the number of internal faces).
| [in] | m | pointer to mesh structure |
| [in] | idiffp | indicator
|
| [in] | thetap | weighting coefficient for the theta-scheme,
|
| [in] | cofbfp | boundary condition array for the variable flux (implicit part - 3x3 tensor array) |
| [in] | fimp | |
| [in] | i_visc | at interior faces for the matrix |
| [in] | b_visc | at border faces for the matrix |
| [out] | da | diagonal part of the matrix |
| [out] | xa | extra interleaved diagonal part of the matrix |
| void matrdt | ( | const cs_int_t *const | iconvp, |
| const cs_int_t *const | idiffp, | ||
| const cs_int_t *const | isym, | ||
| const cs_real_t | coefbp[], | ||
| const cs_real_t | cofbfp[], | ||
| 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_t | da[] | ||
| ) |
| void matrix | ( | const int * | iconvp, |
| const int * | idiffp, | ||
| const int * | ndircp, | ||
| const int * | isym, | ||
| const cs_real_t * | thetap, | ||
| const int * | imucpp, | ||
| const cs_real_t | coefbp[], | ||
| const cs_real_t | cofbfp[], | ||
| const cs_real_t | rovsdt[], | ||
| 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 | xcpp[], | ||
| cs_real_t | da[], | ||
| cs_real_t | xa[] | ||
| ) |
1.8.13