programmer's documentation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Typedefs | Enumerations | Functions | Variables
cs_matrix.h File Reference
#include "cs_defs.h"
#include "cs_halo.h"
#include "cs_numbering.h"
#include "cs_halo_perio.h"
Include dependency graph for cs_matrix.h:

Go to the source code of this file.

Typedefs

typedef struct
_cs_matrix_structure_t 
cs_matrix_structure_t
 
typedef struct _cs_matrix_t cs_matrix_t
 
typedef struct _cs_matrix_variant_t cs_matrix_variant_t
 

Enumerations

enum  cs_matrix_type_t {
  CS_MATRIX_NATIVE, CS_MATRIX_CSR, CS_MATRIX_CSR_SYM, CS_MATRIX_MSR,
  CS_MATRIX_N_TYPES
}
 
enum  cs_matrix_fill_type_t {
  CS_MATRIX_SCALAR, CS_MATRIX_SCALAR_SYM, CS_MATRIX_33_BLOCK_D, CS_MATRIX_33_BLOCK_D_SYM,
  CS_MATRIX_33_BLOCK, CS_MATRIX_N_FILL_TYPES
}
 

Functions

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)
 
cs_matrix_tcs_matrix_create_by_variant (const cs_matrix_structure_t *ms, const cs_matrix_variant_t *mv)
 
void cs_matrix_structure_destroy (cs_matrix_structure_t **ms)
 
cs_matrix_type_t cs_matrix_structure_type (const cs_matrix_structure_t *ms)
 
cs_matrix_tcs_matrix_create (const cs_matrix_structure_t *ms)
 
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)
 
cs_matrix_fill_type_t cs_matrix_get_fill_type (bool symmetric, const int *diag_block_size, const int *extra_diag_block_size)
 
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)
 
void cs_matrix_variant_build_list (int n_fill_types, cs_matrix_fill_type_t fill_types[], bool type_filter[], const cs_numbering_t *numbering, int *n_variants, cs_matrix_variant_t **m_variant)
 
cs_matrix_variant_tcs_matrix_variant_create (cs_matrix_type_t type, const cs_numbering_t *numbering)
 
void cs_matrix_variant_destroy (cs_matrix_variant_t **mv)
 
void cs_matrix_variant_set_func (cs_matrix_variant_t *mv, const cs_numbering_t *numbering, cs_matrix_fill_type_t fill_type, int ed_flag, const char *func_name)
 
void cs_matrix_variant_merge (cs_matrix_variant_t *mv, const cs_matrix_variant_t *mv_merge, cs_matrix_fill_type_t fill_type)
 
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 []
 
const char * cs_matrix_fill_type_name []
 

Typedef Documentation

typedef struct _cs_matrix_structure_t cs_matrix_structure_t
typedef struct _cs_matrix_t cs_matrix_t
typedef struct _cs_matrix_variant_t cs_matrix_variant_t

Enumeration Type Documentation

Enumerator
CS_MATRIX_SCALAR 
CS_MATRIX_SCALAR_SYM 
CS_MATRIX_33_BLOCK_D 
CS_MATRIX_33_BLOCK_D_SYM 
CS_MATRIX_33_BLOCK 
CS_MATRIX_N_FILL_TYPES 
Enumerator
CS_MATRIX_NATIVE 
CS_MATRIX_CSR 
CS_MATRIX_CSR_SYM 
CS_MATRIX_MSR 
CS_MATRIX_N_TYPES 

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_by_variant ( 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 
)
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_matrix_fill_type_t cs_matrix_get_fill_type ( bool  symmetric,
const int *  diag_block_size,
const int *  extra_diag_block_size 
)
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_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)
cs_matrix_type_t cs_matrix_structure_type ( const cs_matrix_structure_t ms)
void cs_matrix_variant_build_list ( int  n_fill_types,
cs_matrix_fill_type_t  fill_types[],
bool  type_filter[],
const cs_numbering_t numbering,
int *  n_variants,
cs_matrix_variant_t **  m_variant 
)
cs_matrix_variant_t* cs_matrix_variant_create ( cs_matrix_type_t  type,
const cs_numbering_t numbering 
)
void cs_matrix_variant_destroy ( cs_matrix_variant_t **  mv)
void cs_matrix_variant_merge ( cs_matrix_variant_t mv,
const cs_matrix_variant_t mv_merge,
cs_matrix_fill_type_t  fill_type 
)
void cs_matrix_variant_set_func ( cs_matrix_variant_t mv,
const cs_numbering_t numbering,
cs_matrix_fill_type_t  fill_type,
int  ed_flag,
const char *  func_name 
)
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_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 
)

Variable Documentation

const char* cs_matrix_fill_type_name[]
const char* cs_matrix_type_fullname[]
const char* cs_matrix_type_name[]