My Project
programmer's documentation
Typedefs | Enumerations | Functions | Variables
cs_grid.h File Reference
#include "cs_base.h"
#include "cs_halo.h"
#include "cs_matrix.h"
Include dependency graph for cs_grid.h:

Go to the source code of this file.

Typedefs

typedef struct _cs_grid_t cs_grid_t
 

Enumerations

enum  cs_grid_coarsening_t {
  CS_GRID_COARSENING_DEFAULT, CS_GRID_COARSENING_SPD_DX, CS_GRID_COARSENING_SPD_MX, CS_GRID_COARSENING_SPD_PW,
  CS_GRID_COARSENING_CONV_DIFF_DX
}
 

Functions

cs_grid_tcs_grid_create_from_shared (cs_lnum_t n_faces, const int *diag_block_size, const int *extra_diag_block_size, const cs_lnum_2_t *face_cell, const cs_real_t *cell_cen, const cs_real_t *cell_vol, const cs_real_t *face_normal, const cs_matrix_t *a, const cs_matrix_t *a_conv, const cs_matrix_t *a_diff)
 
void cs_grid_destroy (cs_grid_t **grid)
 
void cs_grid_free_quantities (cs_grid_t *g)
 
void cs_grid_get_info (const cs_grid_t *g, int *level, bool *symmetric, int *db_size, int *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)
 
cs_lnum_t cs_grid_get_n_rows (const cs_grid_t *g)
 
cs_lnum_t cs_grid_get_n_cols_ext (const cs_grid_t *g)
 
cs_lnum_t cs_grid_get_n_cols_max (const cs_grid_t *g)
 
cs_gnum_t cs_grid_get_n_g_rows (const cs_grid_t *g)
 
const cs_matrix_tcs_grid_get_matrix (const cs_grid_t *g)
 
cs_grid_tcs_grid_coarsen (const cs_grid_t *f, int verbosity, int coarsening_type, int aggregation_limit, double relaxation_parameter)
 
void cs_grid_restrict_row_var (const cs_grid_t *f, const cs_grid_t *c, const cs_real_t *f_var, cs_real_t *c_var)
 
void cs_grid_prolong_row_num (const cs_grid_t *c, const cs_grid_t *f, int *c_num, int *f_num)
 
void cs_grid_prolong_row_var (const cs_grid_t *c, const cs_grid_t *f, cs_real_t *c_var, cs_real_t *f_var)
 
void cs_grid_project_row_num (const cs_grid_t *g, cs_lnum_t n_base_rows, int max_num, int c_row_num[])
 
void cs_grid_project_row_rank (const cs_grid_t *g, cs_lnum_t n_base_rows, int f_row_rank[])
 
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[])
 
void cs_grid_project_diag_dom (const cs_grid_t *g, cs_lnum_t n_base_rows, cs_real_t diag_dom[])
 
int cs_grid_get_merge_stride (void)
 
void cs_grid_finalize (void)
 
void cs_grid_dump (const cs_grid_t *g)
 
void cs_grid_get_merge_options (int *rank_stride, int *rows_mean_threshold, cs_gnum_t *rows_glob_threshold, int *min_ranks)
 Query the global multigrid parameters for parallel grid merging. More...
 
void cs_grid_set_merge_options (int rank_stride, int rows_mean_threshold, cs_gnum_t rows_glob_threshold, int min_ranks)
 Set global multigrid parameters for parallel grid merging behavior. More...
 
void cs_grid_set_matrix_tuning (cs_matrix_fill_type_t fill_type, int max_level)
 Set matrix tuning behavior for multigrid coarse meshes. More...
 
void cs_grid_set_matrix_variant (cs_matrix_fill_type_t fill_type, int level, const cs_matrix_variant_t *mv)
 Force matrix variant selection for multigrid coarse meshes. More...
 
void cs_grid_log_merge_options (void)
 Log the current settings for multigrid parallel merging. More...
 

Variables

const char * cs_grid_coarsening_type_name []
 

Typedef Documentation

◆ cs_grid_t

typedef struct _cs_grid_t cs_grid_t

Enumeration Type Documentation

◆ cs_grid_coarsening_t

Enumerator
CS_GRID_COARSENING_DEFAULT 

default among following choices

CS_GRID_COARSENING_SPD_DX 

SPD, diag/extradiag ratio based

CS_GRID_COARSENING_SPD_MX 

SPD, max extradiag ratio based

CS_GRID_COARSENING_SPD_PW 

SPD, pairwise aggregation

CS_GRID_COARSENING_CONV_DIFF_DX 

convection+diffusion, diag/extradiag ratio based

Function Documentation

◆ cs_grid_coarsen()

cs_grid_t* cs_grid_coarsen ( const cs_grid_t f,
int  verbosity,
int  coarsening_type,
int  aggregation_limit,
double  relaxation_parameter 
)

◆ cs_grid_create_from_shared()

cs_grid_t* cs_grid_create_from_shared ( cs_lnum_t  n_faces,
const int *  diag_block_size,
const int *  extra_diag_block_size,
const cs_lnum_2_t face_cell,
const cs_real_t cell_cen,
const cs_real_t cell_vol,
const cs_real_t face_normal,
const cs_matrix_t a,
const cs_matrix_t a_conv,
const cs_matrix_t a_diff 
)

◆ cs_grid_destroy()

void cs_grid_destroy ( cs_grid_t **  grid)

◆ cs_grid_dump()

void cs_grid_dump ( const cs_grid_t g)

◆ cs_grid_finalize()

void cs_grid_finalize ( void  )

◆ cs_grid_free_quantities()

void cs_grid_free_quantities ( cs_grid_t g)

◆ cs_grid_get_info()

void cs_grid_get_info ( const cs_grid_t g,
int *  level,
bool *  symmetric,
int *  db_size,
int *  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 
)

◆ cs_grid_get_matrix()

const cs_matrix_t* cs_grid_get_matrix ( const cs_grid_t g)

◆ cs_grid_get_merge_options()

void cs_grid_get_merge_options ( int *  rank_stride,
int *  cells_mean_threshold,
cs_gnum_t cells_glob_threshold,
int *  min_ranks 
)

Query the global multigrid parameters for parallel grid merging.

Parameters
[out]rank_stridenumber of ranks over which merging takes place, or NULL
[out]cells_mean_thresholdmean number of cells under which merging should be applied, or NULL
[out]cells_glob_thresholdglobal number of cells under which merging should be applied, or NULL
[out]min_ranksnumber of active ranks under which no merging takes place, or NULL

◆ cs_grid_get_merge_stride()

int cs_grid_get_merge_stride ( void  )

◆ cs_grid_get_n_cols_ext()

cs_lnum_t cs_grid_get_n_cols_ext ( const cs_grid_t g)

◆ cs_grid_get_n_cols_max()

cs_lnum_t cs_grid_get_n_cols_max ( const cs_grid_t g)

◆ cs_grid_get_n_g_rows()

cs_gnum_t cs_grid_get_n_g_rows ( const cs_grid_t g)

◆ cs_grid_get_n_rows()

cs_lnum_t cs_grid_get_n_rows ( const cs_grid_t g)

◆ cs_grid_log_merge_options()

void cs_grid_log_merge_options ( void  )

Log the current settings for multigrid parallel merging.

◆ cs_grid_project_diag_dom()

void cs_grid_project_diag_dom ( const cs_grid_t g,
cs_lnum_t  n_base_rows,
cs_real_t  diag_dom[] 
)

◆ cs_grid_project_row_num()

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

void cs_grid_project_row_rank ( const cs_grid_t g,
cs_lnum_t  n_base_rows,
int  f_row_rank[] 
)

◆ cs_grid_project_var()

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[] 
)

◆ cs_grid_prolong_row_num()

void cs_grid_prolong_row_num ( const cs_grid_t c,
const cs_grid_t f,
int *  c_num,
int *  f_num 
)

◆ cs_grid_prolong_row_var()

void cs_grid_prolong_row_var ( const cs_grid_t c,
const cs_grid_t f,
cs_real_t c_var,
cs_real_t f_var 
)

◆ cs_grid_restrict_row_var()

void cs_grid_restrict_row_var ( const cs_grid_t f,
const cs_grid_t c,
const cs_real_t f_var,
cs_real_t c_var 
)

◆ cs_grid_set_matrix_tuning()

void cs_grid_set_matrix_tuning ( cs_matrix_fill_type_t  fill_type,
int  max_level 
)

Set matrix tuning behavior for multigrid coarse meshes.

The finest mesh (level 0) is handled by the default tuning options, so only coarser meshes are considered here.

Parameters
[in]fill_typeassociated matrix fill type
[in]max_levelmaximum level for which tuning is active

◆ cs_grid_set_matrix_variant()

void cs_grid_set_matrix_variant ( cs_matrix_fill_type_t  fill_type,
int  level,
const cs_matrix_variant_t mv 
)

Force matrix variant selection for multigrid coarse meshes.

The finest mesh (level 0) is handled by the default tuning options, so only coarser meshes are considered here.

Parameters
[in]fill_typeassociated matrix fill type
[in]levellevel for which variant is assiged
[in]mvmatrix variant to assign (NULL to unassign)

◆ cs_grid_set_merge_options()

void cs_grid_set_merge_options ( int  rank_stride,
int  cells_mean_threshold,
cs_gnum_t  cells_glob_threshold,
int  min_ranks 
)

Set global multigrid parameters for parallel grid merging behavior.

Parameters
[in]rank_stridenumber of ranks over which merging takes place
[in]cells_mean_thresholdmean number of cells under which merging should be applied
[in]cells_glob_thresholdglobal number of cells under which merging should be applied
[in]min_ranksnumber of active ranks under which no merging takes place

Variable Documentation

◆ cs_grid_coarsening_type_name

const char* cs_grid_coarsening_type_name[]