#include "cs_defs.h"
#include "cs_field.h"
#include "cs_halo.h"
#include "cs_matrix.h"
#include "cs_numbering.h"
#include "cs_halo_perio.h"
Go to the source code of this file.
|
void | cs_matrix_vector_native_multiply (bool symmetric, cs_lnum_t db_size, cs_lnum_t eb_size, 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, cs_lnum_t diag_block_size, cs_lnum_t extra_diag_block_size) |
|
cs_matrix_t * | cs_matrix_msr (bool symmetric, cs_lnum_t diag_block_size, cs_lnum_t extra_diag_block_size) |
|
cs_matrix_t * | cs_matrix_native (bool symmetric, cs_lnum_t diag_block_size, cs_lnum_t extra_diag_block_size) |
|
cs_matrix_t * | cs_matrix_external (const char *type_name, bool symmetric, cs_lnum_t diag_block_size, cs_lnum_t extra_diag_block_size) |
| Return matrix wrapper for external library for a given fill type. More...
|
|
cs_matrix_t * | cs_matrix_copy_to_external (cs_matrix_t *src, bool symmetric, cs_lnum_t diag_block_size, cs_lnum_t extra_diag_block_size) |
| Copy base matrix to external library matrix type for given fill type. More...
|
|
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 (const cs_matrix_t *m) |
| Return a (0-based) global block row numbering for a given matrix. More...
|
|
cs_matrix_t * | cs_matrix_set_coefficients_by_assembler (const cs_field_t *f, cs_matrix_type_t type, bool symmetric, cs_lnum_t diag_block_size, 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_copy_to_external()
Copy base matrix to external library matrix type for given fill type.
Note that the matrix containers share the same assigned structure, so they must be both destroyed before that structure.
Coefficients and matching structures are not copied or created.
This function is intended to allow sharing of a base structure or assembler with an external library matrix wrapper, so as to allow efficient coefficient assignment, but with external coefficient handling.
The matrix shoud be converted to the desired external type after calling this function, so that it can the be accessed using cs_matrix_external.
- Parameters
-
[in] | symmetric | Indicates if matrix coefficients are symmetric |
[in] | diag_block_size | Block sizes for diagonal |
[in] | extra_diag_block_size | Block sizes for extra diagonal |
- Returns
- pointer to native matrix adapted to fill type
◆ cs_matrix_default()
◆ cs_matrix_default_set_tuned()
◆ cs_matrix_default_set_type()
Set default matrix type for a given fill type.
- Parameters
-
[in] | fill | type Fill type for which tuning behavior is set |
[in] | type | Matrix type to use |
◆ cs_matrix_external()
Return matrix wrapper for external library for a given fill type.
- Parameters
-
[in] | type_name | Matrix type name |
[in] | symmetric | Indicates if coefficients are symmetric |
[in] | diag_block_size | Block sizes for diagonal |
[in] | extra_diag_block_size | Block sizes for extra diagonal |
- Returns
- Pointer to matrix matching requested type
◆ cs_matrix_finalize()
void cs_matrix_finalize |
( |
void |
| ) |
|
◆ cs_matrix_get_block_row_g_id()
Return a (0-based) global block row numbering for a given matrix.
The numbering is built or updated if not previously used, or if the previous call considered a differeent matrix, and is simply returned otherwise. In other words, this works as a matrix global numbering cache.
- Parameters
-
- Returns
- pointer to requested global numbering
◆ cs_matrix_get_tuning_runs()
void cs_matrix_get_tuning_runs |
( |
int * |
n_min_products, |
|
|
double * |
t_measure |
|
) |
| |
◆ cs_matrix_initialize()
void cs_matrix_initialize |
( |
void |
| ) |
|
◆ cs_matrix_msr()
◆ cs_matrix_native()
◆ cs_matrix_set_coefficients_by_assembler()
Assign coefficients to a matrix using a matrix assembler.
- Parameters
-
[in] | f | pointer to associated field |
[in] | type | matrix type |
[in] | symmetric | is matrix symmetric ? |
[in] | diag_block_size | block sizes for diagonal |
[in] | extra_diag_block_size | block sizes for extra diagonal |
[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 |
- Returns
- pointer to associated matrix structure
- Parameters
-
[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 |
- Returns
- pointer to associated matrix structure
◆ cs_matrix_set_tuning_runs()
void cs_matrix_set_tuning_runs |
( |
int |
n_min_products, |
|
|
double |
t_measure |
|
) |
| |
◆ cs_matrix_update_mesh()
void cs_matrix_update_mesh |
( |
void |
| ) |
|
◆ cs_matrix_vector_native_multiply()