programmer's documentation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
cs_matrix.c File Reference
#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_halo.h"
#include "cs_halo_perio.h"
#include "cs_log.h"
#include "cs_numbering.h"
#include "cs_prototypes.h"
#include "cs_timer.h"
#include "cs_matrix.h"
#include "cs_matrix_priv.h"
Include dependency graph for cs_matrix.c:

Macros

#define THR_MIN   128
 

Functions

void promav (const cs_int_t *isym, const cs_int_t *ibsize, const cs_int_t *iesize, const cs_int_t *iinvpe, 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_structure_tcs_matrix_structure_create (cs_matrix_type_t type, bool have_diag, cs_lnum_t n_cells, cs_lnum_t n_cells_ext, cs_lnum_t n_faces, const cs_gnum_t *cell_num, const cs_lnum_t *face_cell, const cs_halo_t *halo, const cs_numbering_t *numbering)
 
void cs_matrix_structure_destroy (cs_matrix_structure_t **ms)
 
cs_matrix_tcs_matrix_create (const cs_matrix_structure_t *ms)
 
cs_matrix_tcs_matrix_create_tuned (const cs_matrix_structure_t *ms, const cs_matrix_variant_t *mv)
 
void cs_matrix_destroy (cs_matrix_t **matrix)
 
cs_lnum_t cs_matrix_get_n_columns (const cs_matrix_t *matrix)
 
cs_lnum_t cs_matrix_get_n_rows (const cs_matrix_t *matrix)
 
const int * cs_matrix_get_diag_block_size (const cs_matrix_t *matrix)
 
void cs_matrix_set_coefficients (cs_matrix_t *matrix, bool symmetric, const int *diag_block_size, const int *extra_diag_block_size, const cs_real_t *da, const cs_real_t *xa)
 
void cs_matrix_set_coefficients_ni (cs_matrix_t *matrix, bool symmetric, const cs_real_t *da, const cs_real_t *xa)
 
void cs_matrix_copy_coefficients (cs_matrix_t *matrix, bool symmetric, const int *diag_block_size, const int *extra_diag_block_size, const cs_real_t *da, const cs_real_t *xa)
 
void cs_matrix_release_coefficients (cs_matrix_t *matrix)
 
void cs_matrix_copy_diagonal (const cs_matrix_t *matrix, cs_real_t *restrict da)
 
const cs_real_tcs_matrix_get_diagonal (const cs_matrix_t *matrix)
 
void cs_matrix_vector_multiply (cs_halo_rotation_t rotation_mode, const cs_matrix_t *matrix, cs_real_t *restrict x, cs_real_t *restrict y)
 
void cs_matrix_vector_multiply_nosync (const cs_matrix_t *matrix, const cs_real_t *x, cs_real_t *restrict y)
 
void cs_matrix_exdiag_vector_multiply (cs_halo_rotation_t rotation_mode, const cs_matrix_t *matrix, cs_real_t *restrict x, cs_real_t *restrict y)
 
cs_matrix_variant_tcs_matrix_variant_tuned (double t_measure, int n_fill_types, cs_matrix_fill_type_t fill_types[], double fill_weights[], int n_min_products, cs_lnum_t n_cells, cs_lnum_t n_cells_ext, cs_lnum_t n_faces, const cs_gnum_t *cell_num, const cs_lnum_t *face_cell, const cs_halo_t *halo, const cs_numbering_t *numbering)
 
void cs_matrix_variant_destroy (cs_matrix_variant_t **mv)
 
cs_matrix_type_t cs_matrix_variant_type (const cs_matrix_variant_t *mv)
 
void cs_matrix_variant_test (cs_lnum_t n_cells, cs_lnum_t n_cells_ext, cs_lnum_t n_faces, const cs_gnum_t *cell_num, const cs_lnum_t *face_cell, const cs_halo_t *halo, const cs_numbering_t *numbering)
 

Variables

const char * cs_matrix_type_name []
 
const char * cs_matrix_type_fullname []
 
cs_matrix_tcs_glob_matrix_default = NULL
 
cs_matrix_structure_tcs_glob_matrix_default_struct = NULL
 

Macro Definition Documentation

#define THR_MIN   128

Function Documentation

void cs_matrix_copy_coefficients ( cs_matrix_t matrix,
bool  symmetric,
const int *  diag_block_size,
const int *  extra_diag_block_size,
const cs_real_t da,
const cs_real_t xa 
)
void cs_matrix_copy_diagonal ( const cs_matrix_t matrix,
cs_real_t *restrict  da 
)
cs_matrix_t* cs_matrix_create ( const cs_matrix_structure_t ms)
cs_matrix_t* cs_matrix_create_tuned ( const cs_matrix_structure_t ms,
const cs_matrix_variant_t mv 
)
void cs_matrix_destroy ( cs_matrix_t **  matrix)
void cs_matrix_exdiag_vector_multiply ( cs_halo_rotation_t  rotation_mode,
const cs_matrix_t matrix,
cs_real_t *restrict  x,
cs_real_t *restrict  y 
)
void cs_matrix_finalize ( void  )
const int* cs_matrix_get_diag_block_size ( const cs_matrix_t matrix)
const cs_real_t* cs_matrix_get_diagonal ( const cs_matrix_t matrix)
cs_lnum_t cs_matrix_get_n_columns ( const cs_matrix_t matrix)
cs_lnum_t cs_matrix_get_n_rows ( const cs_matrix_t matrix)
void cs_matrix_initialize ( void  )
void cs_matrix_release_coefficients ( cs_matrix_t matrix)
void cs_matrix_set_coefficients ( cs_matrix_t matrix,
bool  symmetric,
const int *  diag_block_size,
const int *  extra_diag_block_size,
const cs_real_t da,
const cs_real_t xa 
)
void cs_matrix_set_coefficients_ni ( cs_matrix_t matrix,
bool  symmetric,
const cs_real_t da,
const cs_real_t xa 
)
cs_matrix_structure_t* cs_matrix_structure_create ( cs_matrix_type_t  type,
bool  have_diag,
cs_lnum_t  n_cells,
cs_lnum_t  n_cells_ext,
cs_lnum_t  n_faces,
const cs_gnum_t cell_num,
const cs_lnum_t face_cell,
const cs_halo_t halo,
const cs_numbering_t numbering 
)
void cs_matrix_structure_destroy ( cs_matrix_structure_t **  ms)
void cs_matrix_update_mesh ( void  )
void cs_matrix_variant_destroy ( cs_matrix_variant_t **  mv)
void cs_matrix_variant_test ( cs_lnum_t  n_cells,
cs_lnum_t  n_cells_ext,
cs_lnum_t  n_faces,
const cs_gnum_t cell_num,
const cs_lnum_t face_cell,
const cs_halo_t halo,
const cs_numbering_t numbering 
)
cs_matrix_variant_t* cs_matrix_variant_tuned ( double  t_measure,
int  n_fill_types,
cs_matrix_fill_type_t  fill_types[],
double  fill_weights[],
int  n_min_products,
cs_lnum_t  n_cells,
cs_lnum_t  n_cells_ext,
cs_lnum_t  n_faces,
const cs_gnum_t cell_num,
const cs_lnum_t face_cell,
const cs_halo_t halo,
const cs_numbering_t numbering 
)
cs_matrix_type_t cs_matrix_variant_type ( const cs_matrix_variant_t mv)
void cs_matrix_vector_multiply ( cs_halo_rotation_t  rotation_mode,
const cs_matrix_t matrix,
cs_real_t *restrict  x,
cs_real_t *restrict  y 
)
void cs_matrix_vector_multiply_nosync ( const cs_matrix_t matrix,
const cs_real_t x,
cs_real_t *restrict  y 
)
void promav ( const cs_int_t isym,
const cs_int_t ibsize,
const cs_int_t iesize,
const cs_int_t iinvpe,
const cs_real_t dam,
const cs_real_t xam,
cs_real_t vx,
cs_real_t vy 
)

Variable Documentation

cs_matrix_t* cs_glob_matrix_default = NULL
cs_matrix_structure_t* cs_glob_matrix_default_struct = NULL
const char* cs_matrix_type_fullname[]
Initial value:
= {N_("diagonal + faces"),
N_("Compressed Sparse Row"),
N_("symmetric Compressed Sparse Row"),
N_("Modified Compressed Sparse Row")}
const char* cs_matrix_type_name[]
Initial value:
= {N_("native"),
N_("CSR"),
N_("symmetric CSR"),
N_("MSR")}