#include "cs_defs.h"
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include "bft_mem.h"
#include "bft_error.h"
#include "bft_printf.h"
#include "cs_base.h"
#include "cs_blas.h"
#include "cs_field.h"
#include "cs_halo.h"
#include "cs_halo_perio.h"
#include "cs_internal_coupling.h"
#include "cs_log.h"
#include "cs_mesh.h"
#include "cs_mesh_adjacencies.h"
#include "cs_numbering.h"
#include "cs_prototypes.h"
#include "cs_range_set.h"
#include "cs_timer.h"
#include "cs_matrix.h"
#include "cs_matrix_priv.h"
#include "cs_matrix_tuning.h"
#include "cs_matrix_default.h"
Functions | |
void | cs_matrix_vector_native_multiply (bool symmetric, const cs_lnum_t db_size[4], const cs_lnum_t eb_size[4], cs_halo_rotation_t rotation_mode, int f_id, const cs_real_t *dam, const cs_real_t *xam, cs_real_t *vx, cs_real_t *vy) |
void | cs_matrix_initialize (void) |
void | cs_matrix_finalize (void) |
void | cs_matrix_update_mesh (void) |
cs_matrix_t * | cs_matrix_default (bool symmetric, const cs_lnum_t diag_block_size[], const cs_lnum_t extra_diag_block_size[]) |
cs_matrix_t * | cs_matrix_msr (bool symmetric, const cs_lnum_t *diag_block_size, const cs_lnum_t *extra_diag_block_size) |
cs_matrix_t * | cs_matrix_native (bool symmetric, const cs_lnum_t *diag_block_size, const cs_lnum_t *extra_diag_block_size) |
void | cs_matrix_default_set_tuned (cs_matrix_t *m) |
void | cs_matrix_set_tuning_runs (int n_min_products, double t_measure) |
void | cs_matrix_get_tuning_runs (int *n_min_products, double *t_measure) |
void | cs_matrix_default_set_type (cs_matrix_fill_type_t fill_type, cs_matrix_type_t type) |
Set default matrix type for a given fill type. More... | |
const cs_gnum_t * | cs_matrix_get_block_row_g_id (cs_lnum_t n_rows, const cs_halo_t *halo) |
cs_matrix_t * | cs_matrix_set_coefficients_by_assembler (const cs_field_t *f, cs_matrix_type_t type, bool symmetric, const cs_lnum_t *diag_block_size, const cs_lnum_t *extra_diag_block_size, const cs_real_t *da, const cs_real_t *xa) |
Assign coefficients to a matrix using a matrix assembler. More... | |
cs_matrix_t* cs_matrix_default | ( | bool | symmetric, |
const cs_lnum_t | diag_block_size[], | ||
const cs_lnum_t | extra_diag_block_size[] | ||
) |
void cs_matrix_default_set_tuned | ( | cs_matrix_t * | m | ) |
void cs_matrix_default_set_type | ( | cs_matrix_fill_type_t | fill_type, |
cs_matrix_type_t | type | ||
) |
Set default matrix type for a given fill type.
[in] | fill | type Fill type for which tuning behavior is set |
[in] | type | Matrix type to use |
void cs_matrix_finalize | ( | void | ) |
void cs_matrix_get_tuning_runs | ( | int * | n_min_products, |
double * | t_measure | ||
) |
void cs_matrix_initialize | ( | void | ) |
cs_matrix_t* cs_matrix_msr | ( | bool | symmetric, |
const cs_lnum_t * | diag_block_size, | ||
const cs_lnum_t * | extra_diag_block_size | ||
) |
cs_matrix_t* cs_matrix_native | ( | bool | symmetric, |
const cs_lnum_t * | diag_block_size, | ||
const cs_lnum_t * | extra_diag_block_size | ||
) |
cs_matrix_t* cs_matrix_set_coefficients_by_assembler | ( | const cs_field_t * | f, |
cs_matrix_type_t | type, | ||
bool | symmetric, | ||
const cs_lnum_t * | diag_block_size, | ||
const cs_lnum_t * | extra_diag_block_size, | ||
const cs_real_t * | da, | ||
const cs_real_t * | xa | ||
) |
Assign coefficients to a matrix using a matrix assembler.
[in] | f | pointer to associated field |
[in] | type | matrix type |
[in] | symmetric | is matrix symmetric ? |
[in] | diag_block_size | block sizes for diagonal, or NULL |
[in] | extra_diag_block_size | block sizes for extra diagonal, or NULL |
[in] | da | diagonal values (NULL if zero) |
[in] | xa | extradiagonal values (NULL if zero) casts as: xa[n_edges] if symmetric, xa[n_edges][2] if non symmetric |
void cs_matrix_set_tuning_runs | ( | int | n_min_products, |
double | t_measure | ||
) |
void cs_matrix_update_mesh | ( | void | ) |