programmer's documentation
Functions
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:

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_2_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_by_variant (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)
 
const int * cs_matrix_get_extra_diag_block_size (const cs_matrix_t *matrix)
 
const cs_halo_tcs_matrix_get_halo (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_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)
 
bool cs_matrix_is_symmetric (const cs_matrix_t *matrix)
 
const cs_real_tcs_matrix_get_diagonal (const cs_matrix_t *matrix)
 
const cs_real_tcs_matrix_get_extra_diagonal (const cs_matrix_t *matrix)
 
void cs_matrix_get_msr_arrays (const cs_matrix_t *matrix, const cs_lnum_t **row_index, const cs_lnum_t **col_id, const cs_real_t **d_val, const cs_real_t **x_val)
 
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_create (cs_matrix_type_t type, const cs_numbering_t *numbering)
 
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)
 
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_2_t *face_cell, const cs_halo_t *halo, const cs_numbering_t *numbering)
 

Function Documentation

◆ cs_matrix_copy_coefficients()

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 
)

◆ cs_matrix_copy_diagonal()

void cs_matrix_copy_diagonal ( const cs_matrix_t matrix,
cs_real_t *restrict  da 
)

◆ cs_matrix_create()

cs_matrix_t* cs_matrix_create ( const cs_matrix_structure_t ms)

◆ cs_matrix_create_by_variant()

cs_matrix_t* cs_matrix_create_by_variant ( const cs_matrix_structure_t ms,
const cs_matrix_variant_t mv 
)

◆ cs_matrix_destroy()

void cs_matrix_destroy ( cs_matrix_t **  matrix)

◆ cs_matrix_exdiag_vector_multiply()

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_get_diag_block_size()

const int* cs_matrix_get_diag_block_size ( const cs_matrix_t matrix)

◆ cs_matrix_get_diagonal()

const cs_real_t* cs_matrix_get_diagonal ( const cs_matrix_t matrix)

◆ cs_matrix_get_extra_diag_block_size()

const int* cs_matrix_get_extra_diag_block_size ( const cs_matrix_t matrix)

◆ cs_matrix_get_extra_diagonal()

const cs_real_t* cs_matrix_get_extra_diagonal ( const cs_matrix_t matrix)

◆ cs_matrix_get_fill_type()

cs_matrix_fill_type_t cs_matrix_get_fill_type ( bool  symmetric,
const int *  diag_block_size,
const int *  extra_diag_block_size 
)

◆ cs_matrix_get_halo()

const cs_halo_t* cs_matrix_get_halo ( const cs_matrix_t matrix)

◆ cs_matrix_get_msr_arrays()

void cs_matrix_get_msr_arrays ( const cs_matrix_t matrix,
const cs_lnum_t **  row_index,
const cs_lnum_t **  col_id,
const cs_real_t **  d_val,
const cs_real_t **  x_val 
)

◆ cs_matrix_get_n_columns()

cs_lnum_t cs_matrix_get_n_columns ( const cs_matrix_t matrix)

◆ cs_matrix_get_n_rows()

cs_lnum_t cs_matrix_get_n_rows ( const cs_matrix_t matrix)

◆ cs_matrix_is_symmetric()

bool cs_matrix_is_symmetric ( const cs_matrix_t matrix)

◆ cs_matrix_release_coefficients()

void cs_matrix_release_coefficients ( cs_matrix_t matrix)

◆ cs_matrix_set_coefficients()

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 
)

◆ cs_matrix_structure_create()

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_2_t face_cell,
const cs_halo_t halo,
const cs_numbering_t numbering 
)

◆ cs_matrix_structure_destroy()

void cs_matrix_structure_destroy ( cs_matrix_structure_t **  ms)

◆ cs_matrix_variant_build_list()

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_create()

cs_matrix_variant_t* cs_matrix_variant_create ( cs_matrix_type_t  type,
const cs_numbering_t numbering 
)

◆ cs_matrix_variant_destroy()

void cs_matrix_variant_destroy ( cs_matrix_variant_t **  mv)

◆ cs_matrix_variant_merge()

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_variant_set_func()

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 
)

◆ cs_matrix_variant_test()

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_2_t face_cell,
const cs_halo_t halo,
const cs_numbering_t numbering 
)

◆ cs_matrix_variant_type()

cs_matrix_type_t cs_matrix_variant_type ( const cs_matrix_variant_t mv)

◆ cs_matrix_vector_multiply()

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 
)

◆ cs_matrix_vector_multiply_nosync()

void cs_matrix_vector_multiply_nosync ( const cs_matrix_t matrix,
const cs_real_t x,
cs_real_t *restrict  y 
)