Go to the source code of this file.
Classes | |
struct | lat_matrices |
Defines | |
#define | LAC_SCOPE_LV 1 |
#define | LAC_SCOPE_SM 2 |
#define | LAC_SCOPE_SM_AND_LV 0 |
#define | NO_PRECON 0 |
#define | BLOCK_JACOBI 1 |
#define | BLOCK_GS 2 |
#define | ADD_SCHWARZ 3 |
#define | MULTI_ILU 4 |
#define | BLOCK_ILU 5 |
#define | LAC_STORAGE_UNDEFINED -1 |
#define | LAC_STORAGE_BLOCK 1 |
#define | LAC_STORAGE_CRS 2 |
#define | LAC_STORAGE_BCRS 3 |
#define | LAC_STORAGE_CRS_GENERIC 4 |
#define | LAC_STORAGE_PETSC 5 |
#define | LAC_MAX_MATRICES 20 |
Functions | |
int | lar_allocate_SM_and_LV (int Storage_type, int solver_type, int Nrdof_glob, int Max_SM_size, int Nrblocks, int Block_size, int *Nrdofbl, int *Posglob, int *Nroffbl, int **L_offbl) |
int | lar_initialize_SM_and_LV (int Matrix_id, int Scope) |
double | lar_get_storage (int Matrix_id) |
int | lar_fill_assembly_table_int_ent (int Matrix_id, int Nr_dof_bl, int *L_bl_id, int *L_bl_nrdof, int *Assembly_table_int_ent) |
int | lar_assemble_SM_and_LV_with_table (int Matrix_id, int Scope, int Nr_dof_bl, int *Assembly_table_int_ent, int *Local_to_global_int_ent, double *Stiff_mat, double *Rhs_vect, char *Rewr_dofs) |
int | lar_assemble_SM_and_LV (int Matrix_id, int Scope, int Nr_dof_bl, int *L_bl_id, int *L_bl_nrdof, double *Stiff_mat, double *Rhs_vect, char *Rewr_dofs) |
int | lar_create_solver_structures_accel (int Matrix_id) |
int | lar_get_crs_data (int Matrix_id, int *Nrdof_glob_p, int *Nnz_p, int **Crs_col_ind_p, int **Crs_row_ptr_p, double **Crs_val_p, double **Rhs_p) |
int | lar_free_SM_and_LV (int Matrix_id) |
int | lar_allocate_preconditioner (int Matrix_id, int Precon, int Second_arg) |
int | lar_fill_preconditioner (int Matrix_id) |
int | lar_free_preconditioner (int Matrix_id) |
void | lar_compute_residual (int Matrix_id, int Use_rhs, int Ini_zero, int Ndof, double *X, double *B, double *V) |
void | lar_perform_BJ_or_GS_iterations (int Matrix_id, int Use_rhs, int Ini_zero, int Nr_prec, int Ndof, double *V, double *B) |
void | lar_perform_rhsub (int Matrix_id, int Ndof, double *V, double *B) |
int | lar_get_SM_and_LV_crs (int Matrix_id, int offset, int **crs_row, int **crs_col, double **crs_val, double **rhs) |
Variables | |
int | lav_nr_matrices |
int | lav_cur_matrix_id |
lat_matrices | lav_matrices [LAC_MAX_MATRICES] |
#define ADD_SCHWARZ 3 |
#define BLOCK_GS 2 |
#define BLOCK_ILU 5 |
#define BLOCK_JACOBI 1 |
#define LAC_MAX_MATRICES 20 |
#define LAC_SCOPE_LV 1 |
#define LAC_SCOPE_SM 2 |
#define LAC_SCOPE_SM_AND_LV 0 |
#define LAC_STORAGE_BCRS 3 |
#define LAC_STORAGE_BLOCK 1 |
#define LAC_STORAGE_CRS 2 |
#define LAC_STORAGE_CRS_GENERIC 4 |
#define LAC_STORAGE_PETSC 5 |
#define LAC_STORAGE_UNDEFINED -1 |
#define MULTI_ILU 4 |
#define NO_PRECON 0 |
int lar_allocate_preconditioner | ( | int | Matrix_id, | |
int | Precon, | |||
int | Second_arg | |||
) |
-------------------------------------------------------- lar_allocate_preconditioner - to allocate space for preconditioner ---------------------------------------------------------
int lar_allocate_SM_and_LV | ( | int | Storage_type, | |
int | solver_type, | |||
int | Nrdof_glob, | |||
int | Max_SM_size, | |||
int | Nrblocks, | |||
int | Block_size, | |||
int * | Nrdofbl, | |||
int * | Posglob, | |||
int * | Nroffbl, | |||
int ** | L_offbl | |||
) |
-------------------------------------------------------- lar_allocate_SM_and_LV - to allocate space for stiffness matrix and load vector ---------------------------------------------------------
!!!!!!!!!! FOR DEBUGGING !!!!!!!!!!
int lar_assemble_SM_and_LV | ( | int | Matrix_id, | |
int | Scope, | |||
int | Nr_dof_bl, | |||
int * | L_bl_id, | |||
int * | L_bl_nrdof, | |||
double * | Stiff_mat, | |||
double * | Rhs_vect, | |||
char * | Rewr_dofs | |||
) |
----------------------------------------------------------- lar_assemble_SM_and_LV - to assemble entries to the global stiffness matrix and the global load vector using the provided local stiffness matrix and load vector ------------------------------------------------------------
int lar_assemble_SM_and_LV_with_table | ( | int | Matrix_id, | |
int | Scope, | |||
int | Nr_dof_bl, | |||
int * | Assembly_table_int_ent, | |||
int * | Local_to_global_int_ent, | |||
double * | Stiff_mat, | |||
double * | Rhs_vect, | |||
char * | Rewr_dofs | |||
) |
void lar_compute_residual | ( | int | Matrix_id, | |
int | Use_rhs, | |||
int | Ini_zero, | |||
int | Ndof, | |||
double * | X, | |||
double * | B, | |||
double * | V | |||
) |
-------------------------------------------------------- lar_compute_residual - to compute the residual of the not preconditioned system of equations, v = ( b - Ax ) ---------------------------------------------------------
int lar_create_solver_structures_accel | ( | int | Matrix_id | ) |
--------------------------------------------------------- lar_create_solver_structures_accel - utility to create data structures on GPU ---------------------------------------------------------
int lar_fill_assembly_table_int_ent | ( | int | Matrix_id, | |
int | Nr_dof_bl, | |||
int * | L_bl_id, | |||
int * | L_bl_nrdof, | |||
int * | Assembly_table_int_ent | |||
) |
----------------------------------------------------------- lar_fill_assembly_table_int_ent - to fill a part of the global assembly table related to one integration entity, for which lists of DOF blocks (their global positions) are provided ------------------------------------------------------------
int lar_fill_preconditioner | ( | int | Matrix_id | ) |
-------------------------------------------------------- lar_fill_preconditioner - to fill preconditioner ---------------------------------------------------------
int lar_free_preconditioner | ( | int | Matrix_id | ) |
-------------------------------------------------------- lar_free_preconditioner - to free space for a block structure ---------------------------------------------------------
int lar_free_SM_and_LV | ( | int | Matrix_id | ) |
-------------------------------------------------------- lar_free_SM_and_LV - to free space for a block structure ---------------------------------------------------------
int lar_get_crs_data | ( | int | Matrix_id, | |
int * | Nrdof_glob_p, | |||
int * | Nnz_p, | |||
int ** | Crs_col_ind_p, | |||
int ** | Crs_row_ptr_p, | |||
double ** | Crs_val_p, | |||
double ** | Rhs_p | |||
) |
--------------------------------------------------------- lar_get_crs_data - utility to get CRS parameters and pointers ---------------------------------------------------------
int lar_get_SM_and_LV_crs | ( | int | Matrix_id, | |
int | offset, | |||
int ** | crs_row, | |||
int ** | crs_col, | |||
double ** | crs_val, | |||
double ** | rhs | |||
) |
--------------------------------------------------------- lar_get_SM_and_LV_crs - convert all matrix format to crs ---------------------------------------------------------
double lar_get_storage | ( | int | Matrix_id | ) |
-------------------------------------------------------- lar_get_storage - to compute storage of SM, LV and preconditioner ---------------------------------------------------------
int lar_initialize_SM_and_LV | ( | int | Matrix_id, | |
int | Scope | |||
) |
-------------------------------------------------------- lar_initialize_SM_and_LV - to initialize stiffness matrix and/or load vector ---------------------------------------------------------
void lar_perform_BJ_or_GS_iterations | ( | int | Matrix_id, | |
int | Use_rhs, | |||
int | Ini_zero, | |||
int | Nr_prec, | |||
int | Ndof, | |||
double * | V, | |||
double * | B | |||
) |
-------------------------------------------------------- lar_compute_preconditioned_residual - to compute the residual of the preconditioned system of equations, v = M^-1 * ( b - Ax ) where M^-1 corresponds directly to the stored preconditioner matrix --------------------------------------------------------- -------------------------------------------------------- lar_perform_BJ_or_GS_iterations - to perform one iteration of block Gauss-Seidel or block Jacobi algorithm: v_out = v_in + M^-1 * ( b - A * v_in ) where M^-1 results from stored preconditioner matrix and the algorithm ---------------------------------------------------------
void lar_perform_rhsub | ( | int | Matrix_id, | |
int | Ndof, | |||
double * | V, | |||
double * | B | |||
) |
-------------------------------------------------------- lar_perform_rhsub - to perform forward reduction and back-substitution for ILU preconditioning ---------------------------------------------------------
lat_matrices lav_matrices[LAC_MAX_MATRICES] |
int lav_nr_matrices |