433 int aggregation_limit,
436 int merge_rows_mean_threshold,
438 double relaxation_parameter);
495 float max_row_factor);
Definition: cs_dispatch.h:2288
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
cs_lnum_t cs_lnum_2_t[2]
vector of 2 local mesh-entity ids
Definition: cs_defs.h:342
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:349
unsigned cs_gnum_t
global mesh entity number
Definition: cs_defs.h:317
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
cs_grid_coarsening_t
Definition: cs_grid.h:48
void cs_grid_project_row_num(const cs_grid_t *g, cs_lnum_t n_base_rows, int max_num, int c_row_num[])
cs_grid_t * cs_grid_create_from_parent(const cs_matrix_t *a, int n_ranks)
cs_grid_t * cs_grid_coarsen_to_single(const cs_grid_t *f, cs_alloc_mode_t alloc_mode, int merge_stride, int verbosity)
void cs_grid_restrict_row_var(cs_dispatch_context &ctx, const cs_grid_t *f, const cs_grid_t *c, const cs_real_t *f_var, cs_real_t *c_var)
Definition: cs_grid.cpp:8987
void cs_grid_dump(const cs_grid_t *g)
void cs_grid_set_diag_dom_clip_factor(double factor)
Set factor to ensure diagonal dominance.
Definition: cs_grid.cpp:8931
MPI_Comm cs_grid_get_comm_merge(MPI_Comm parent, int merge_stride)
cs_lnum_t cs_grid_get_n_cols_ext(const cs_grid_t *g)
cs_grid_t * cs_grid_coarsen(const cs_grid_t *f, cs_alloc_mode_t alloc_mode, cs_grid_coarsening_t coarsening_type, int aggregation_limit, int verbosity, int merge_stride, int merge_rows_mean_threshold, cs_gnum_t merge_rows_glob_threshold, double relaxation_parameter)
const char * cs_grid_coarsening_type_name[]
cs_alloc_mode_t cs_grid_get_alloc_mode(const cs_grid_t *g)
void cs_grid_project_var(const cs_grid_t *g, cs_lnum_t n_base_rows, const cs_real_t c_var[], cs_real_t f_var[])
const cs_matrix_t * cs_grid_get_matrix(const cs_grid_t *g)
cs_gnum_t cs_grid_get_n_g_rows(const cs_grid_t *g)
cs_lnum_t cs_grid_get_n_rows(const cs_grid_t *g)
void cs_grid_prolong_row_var(cs_dispatch_context &ctx, const cs_grid_t *c, const cs_grid_t *f, bool increment, cs_real_t *c_var, cs_real_t *f_var)
Definition: cs_grid.cpp:9101
void cs_grid_project_diag_dom(const cs_grid_t *g, cs_lnum_t n_base_rows, cs_real_t diag_dom[])
cs_grid_t * cs_grid_create_from_shared(cs_lnum_t n_faces, cs_lnum_t db_size, cs_lnum_t eb_size, const cs_lnum_2_t *face_cell, const cs_matrix_t *a, bool conv_diff)
cs_lnum_t cs_grid_get_n_cols_max(const cs_grid_t *g)
MPI_Comm cs_grid_get_comm(const cs_grid_t *g)
void cs_grid_project_row_rank(const cs_grid_t *g, cs_lnum_t n_base_rows, int f_row_rank[])
void cs_grid_destroy(cs_grid_t **grid)
void cs_grid_finalize(void)
void cs_grid_merge_bottom(cs_grid_t *g, int verbosity, int n_max_ranks, float max_row_factor)
void cs_grid_merge_ranks(cs_grid_t *g, int merge_stride, int verbosity)
void cs_grid_get_info(const cs_grid_t *g, int *level, bool *symmetric, cs_lnum_t *db_size, cs_lnum_t *eb_size, int *n_ranks, cs_lnum_t *n_rows, cs_lnum_t *n_cols_ext, cs_lnum_t *n_entries, cs_gnum_t *n_g_rows)
void cs_grid_free_quantities(cs_grid_t *g)
struct _cs_matrix_structure_t cs_matrix_structure_t
Definition: cs_matrix.h:104
struct _cs_matrix_t cs_matrix_t
Definition: cs_matrix.h:108
cs_alloc_mode_t
Definition: cs_mem.h:46
Definition: cs_grid_priv.h:56
bool symmetric
Definition: cs_grid_priv.h:64
bool use_faces
Definition: cs_grid_priv.h:66
int merge_sub_size
Definition: cs_grid_priv.h:158
int merge_stride
Definition: cs_grid_priv.h:160
cs_lnum_t n_elts_r[2]
Definition: cs_grid_priv.h:79
const cs_real_3_t * cell_cen
Definition: cs_grid_priv.h:116
cs_lnum_2_t * _face_cell
Definition: cs_grid_priv.h:91
cs_lnum_t * coarse_row
Definition: cs_grid_priv.h:96
int n_ranks
Definition: cs_grid_priv.h:169
cs_lnum_t n_rows
Definition: cs_grid_priv.h:75
const cs_lnum_2_t * face_cell
Definition: cs_grid_priv.h:90
cs_real_3_t * face_normal
Definition: cs_grid_priv.h:122
cs_real_t * _xa
Definition: cs_grid_priv.h:137
cs_real_t relaxation
Definition: cs_grid_priv.h:115
cs_alloc_mode_t alloc_mode
Definition: cs_grid_priv.h:60
cs_real_t * xa_diff
Definition: cs_grid_priv.h:139
cs_lnum_t * merge_cell_idx
Definition: cs_grid_priv.h:165
bool use_xa
Definition: cs_grid_priv.h:67
cs_lnum_t n_faces
Definition: cs_grid_priv.h:89
cs_real_t * xa_conv
Definition: cs_grid_priv.h:138
cs_lnum_t * coarse_face
Definition: cs_grid_priv.h:101
const cs_halo_t * halo
Definition: cs_grid_priv.h:128
const cs_real_t * xa0
Definition: cs_grid_priv.h:141
int merge_sub_root
Definition: cs_grid_priv.h:155
const cs_real_t * da
Definition: cs_grid_priv.h:133
cs_gnum_t n_g_rows
Definition: cs_grid_priv.h:73
cs_matrix_t * _matrix
Definition: cs_grid_priv.h:149
short int * cell_face_sgn
Definition: cs_grid_priv.h:111
cs_lnum_t db_size
Definition: cs_grid_priv.h:70
const struct _cs_grid_t * parent
Definition: cs_grid_priv.h:85
cs_lnum_t * cell_face
Definition: cs_grid_priv.h:110
cs_real_t * _cell_vol
Definition: cs_grid_priv.h:120
int next_merge_stride
Definition: cs_grid_priv.h:162
cs_halo_t * _halo
Definition: cs_grid_priv.h:129
int merge_sub_rank
Definition: cs_grid_priv.h:156
bool conv_diff
Definition: cs_grid_priv.h:62
MPI_Comm comm
Definition: cs_grid_priv.h:170
cs_real_3_t * _cell_cen
Definition: cs_grid_priv.h:117
cs_real_t * xa0_diff
Definition: cs_grid_priv.h:143
const cs_real_t * cell_vol
Definition: cs_grid_priv.h:119
int level
Definition: cs_grid_priv.h:58
cs_lnum_t n_cols_ext
Definition: cs_grid_priv.h:76
cs_real_t * xa0ij
Definition: cs_grid_priv.h:145
cs_real_t * _xa0
Definition: cs_grid_priv.h:142
cs_lnum_t eb_size
Definition: cs_grid_priv.h:71
cs_real_t * _da
Definition: cs_grid_priv.h:134
const cs_matrix_t * matrix
Definition: cs_grid_priv.h:148
const cs_real_t * xa
Definition: cs_grid_priv.h:136
cs_matrix_structure_t * matrix_struct
Definition: cs_grid_priv.h:147