#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include "./lsh_mkb_core.h"
#include "./lsh_mkb_core_fem_intf.h"
#include "../lah_intf.h"
#include "lin_alg_intf.h"
Defines | |
#define | MIN_DOF_DGEMV 10000 |
#define | SMALL 1.0e-15 |
#define | TOL 1.0e-9 |
Functions | |
int | lsr_mkb_core_init (int Solver_id, int Solver_type, int Parallel, int *Max_num_levels_p, char *Filename, int Max_iter, int Error_type, double Error_tolerance, int Monitoring_level) |
int | lsr_mkb_core_solve (int Solver_id, int Comp_type, int *L_matrix_id, int *L_ndof, int Ini_zero, double *X, double *B, int *Nr_iter, double *Toler, int Monitor, double *Conv_rate) |
int | lsr_mkb_core_destroy (int Solver_id) |
int | lsr_mkb_core_create_precon (int Solver_id, int Level_id, int SM_and_LV_id) |
int | lsr_mkb_core_fill_precon (int Solver_id, int Level_id, int SM_and_LV_id) |
int | lsr_mkb_core_destroy_precon (int Solver_id, int Level_id, int SM_and_LV_id) |
double | lsr_mkb_core_comp_norm_rhs (int Solver_id, int Subsystem_id, int Level_id) |
int | lsr_mkb_core_standard (int Solver_id, int Subsystem_id, int Level_id, int Ndof, int Ini_zero, double *X, double *B, int *Iter, double *Toler, int Monitor, double *Pconvr) |
void | lsr_mkb_core_vcycle (int Solver_id, int Subsystem_id, int Level_id, int Use_rhs, int Ini_zero, double *X, double *B) |
void | lsr_mkb_core_smooth (int Solver_id, int Subsystem_id, int Level_id, int Use_rhs, int Ini_zero, double *X, double *B) |
void | lsr_mkb_core_precon (int Solver_id, int Subsystem_id, int Level_id, double *X, double *B) |
void | lsr_mkb_core_compreres (int Solver_id, int Subsystem_id, int Level_id, int Control, int Ini_zero, int Ndof, double *X, double *B, double *V) |
void | lsr_mkb_core_compres (int Solver_id, int Subsystem_id, int Level_id, int Control, int Ini_zero, int Ndof, double *X, double *B, double *V) |
int | lsr_mkb_core_solve_coarse (int Solver_id, int Subsystem_id, int Level_id, int Ini_zero, double *X, double *B) |
void | print_iteration_res (int ikryl, double *h, int krylbas, int iaux, int ndof, double *v, double *x, int Solver_id, int Subsystem_id, int Level_id, double *b) |
int | lsr_mkb_core_gmres (int Solver_id, int Subsystem_id, int Level_id, int ndof, int ini_zero, double *x, double *b, int krylbas, int *iter, double *resid, double *res_rel, double *res_rhs, int monitor, double *pconvr) |
double * | lsr_mkb_core_util_dvector (int ncom, char error_text[]) |
int * | lsr_mkb_core_util_ivector (int ncom, char error_text[]) |
int ** | lsr_mkb_core_util_imatrix (int Nrow, int Ncol, char Error_text[]) |
double ** | lsr_mkb_core_util_dmatrix (int Nrow, int Ncol, char Error_text[]) |
int | lsr_mkb_core_util_chk_list (int Num, int *List, int Ll) |
int | lsr_mkb_core_util_put_list (int Num, int *List, int Ll) |
void | lsr_mkb_core_util_d_zero (double *Vec, int Num) |
void | lsr_mkb_core_util_i_zero (int *Vec, int Num) |
void | lsr_mkb_core_util_sort (int *Ind_array, double *Val_array) |
void | lsr_mkb_core_util_dgetrf (double *a, int m, int *ips) |
void | lsr_mkb_core_util_dgetrs (double *a, int m, double *b, double *x, int *ips) |
void | lsr_mkb_core_util_skip_rest_of_line (FILE *Fp) |
int | lsr_mkb_core_get_pdeg_coarse (int Solver_id, int Level_id) |
Variables | |
int | lsv_mkb_core_cur_solver_id |
lst_mkb_core_solvers | lsv_mkb_core_solver [LSC_MAX_NUM_SOLV] |
#define MIN_DOF_DGEMV 10000 |
#define SMALL 1.0e-15 |
#define TOL 1.0e-9 |
double lsr_mkb_core_comp_norm_rhs | ( | int | Solver_id, | |
int | Subsystem_id, | |||
int | Level_id | |||
) |
void lsr_mkb_core_compreres | ( | int | Solver_id, | |
int | Subsystem_id, | |||
int | Level_id, | |||
int | Control, | |||
int | Ini_zero, | |||
int | Ndof, | |||
double * | X, | |||
double * | B, | |||
double * | V | |||
) |
void lsr_mkb_core_compres | ( | int | Solver_id, | |
int | Subsystem_id, | |||
int | Level_id, | |||
int | Control, | |||
int | Ini_zero, | |||
int | Ndof, | |||
double * | X, | |||
double * | B, | |||
double * | V | |||
) |
int lsr_mkb_core_create_precon | ( | int | Solver_id, | |
int | Level_id, | |||
int | SM_and_LV_id | |||
) |
int lsr_mkb_core_destroy | ( | int | Solver_id | ) |
int lsr_mkb_core_destroy_precon | ( | int | Solver_id, | |
int | Level_id, | |||
int | SM_and_LV_id | |||
) |
int lsr_mkb_core_fill_precon | ( | int | Solver_id, | |
int | Level_id, | |||
int | SM_and_LV_id | |||
) |
int lsr_mkb_core_get_pdeg_coarse | ( | int | Solver_id, | |
int | Level_id | |||
) |
int lsr_mkb_core_gmres | ( | int | Solver_id, | |
int | Subsystem_id, | |||
int | Level_id, | |||
int | ndof, | |||
int | ini_zero, | |||
double * | x, | |||
double * | b, | |||
int | krylbas, | |||
int * | iter, | |||
double * | resid, | |||
double * | res_rel, | |||
double * | res_rhs, | |||
int | monitor, | |||
double * | pconvr | |||
) |
int lsr_mkb_core_init | ( | int | Solver_id, | |
int | Solver_type, | |||
int | Parallel, | |||
int * | Max_num_levels_p, | |||
char * | Filename, | |||
int | Max_iter, | |||
int | Error_type, | |||
double | Error_tolerance, | |||
int | Monitoring_level | |||
) |
----------------------------------------------------------- lsr_mkb_core_init - to create a new solver instance, read its control parameters and initialize its data structure ------------------------------------------------------------
void lsr_mkb_core_precon | ( | int | Solver_id, | |
int | Subsystem_id, | |||
int | Level_id, | |||
double * | X, | |||
double * | B | |||
) |
void lsr_mkb_core_smooth | ( | int | Solver_id, | |
int | Subsystem_id, | |||
int | Level_id, | |||
int | Use_rhs, | |||
int | Ini_zero, | |||
double * | X, | |||
double * | B | |||
) |
int lsr_mkb_core_solve | ( | int | Solver_id, | |
int | Comp_type, | |||
int * | L_matrix_id, | |||
int * | L_ndof, | |||
int | Ini_zero, | |||
double * | X, | |||
double * | B, | |||
int * | Nr_iter, | |||
double * | Toler, | |||
int | Monitor, | |||
double * | Conv_rate | |||
) |
int lsr_mkb_core_solve_coarse | ( | int | Solver_id, | |
int | Subsystem_id, | |||
int | Level_id, | |||
int | Ini_zero, | |||
double * | X, | |||
double * | B | |||
) |
int lsr_mkb_core_standard | ( | int | Solver_id, | |
int | Subsystem_id, | |||
int | Level_id, | |||
int | Ndof, | |||
int | Ini_zero, | |||
double * | X, | |||
double * | B, | |||
int * | Iter, | |||
double * | Toler, | |||
int | Monitor, | |||
double * | Pconvr | |||
) |
int lsr_mkb_core_util_chk_list | ( | int | Num, | |
int * | List, | |||
int | Ll | |||
) |
void lsr_mkb_core_util_d_zero | ( | double * | Vec, | |
int | Num | |||
) |
void lsr_mkb_core_util_dgetrf | ( | double * | a, | |
int | m, | |||
int * | ips | |||
) |
void lsr_mkb_core_util_dgetrs | ( | double * | a, | |
int | m, | |||
double * | b, | |||
double * | x, | |||
int * | ips | |||
) |
double** lsr_mkb_core_util_dmatrix | ( | int | Nrow, | |
int | Ncol, | |||
char | Error_text[] | |||
) |
double* lsr_mkb_core_util_dvector | ( | int | ncom, | |
char | error_text[] | |||
) |
void lsr_mkb_core_util_i_zero | ( | int * | Vec, | |
int | Num | |||
) |
int** lsr_mkb_core_util_imatrix | ( | int | Nrow, | |
int | Ncol, | |||
char | Error_text[] | |||
) |
int* lsr_mkb_core_util_ivector | ( | int | ncom, | |
char | error_text[] | |||
) |
int lsr_mkb_core_util_put_list | ( | int | Num, | |
int * | List, | |||
int | Ll | |||
) |
void lsr_mkb_core_util_skip_rest_of_line | ( | FILE * | Fp | ) |
-------------------------------------------------------- lsr_mkb_core_util_skip_rest_of_line - to allow for comments in input files ---------------------------------------------------------
void lsr_mkb_core_util_sort | ( | int * | Ind_array, | |
double * | Val_array | |||
) |
void lsr_mkb_core_vcycle | ( | int | Solver_id, | |
int | Subsystem_id, | |||
int | Level_id, | |||
int | Use_rhs, | |||
int | Ini_zero, | |||
double * | X, | |||
double * | B | |||
) |
void print_iteration_res | ( | int | ikryl, | |
double * | h, | |||
int | krylbas, | |||
int | iaux, | |||
int | ndof, | |||
double * | v, | |||
double * | x, | |||
int | Solver_id, | |||
int | Subsystem_id, | |||
int | Level_id, | |||
double * | b | |||
) |
lst_mkb_core_solvers lsv_mkb_core_solver[LSC_MAX_NUM_SOLV] |