00001 #ifndef AMG_EXT_H 00002 #define AMG_EXT_H 00003 00004 #ifdef __cplusplus 00005 extern "C" { 00006 #endif 00007 00008 #include "../lsd_ns_supg_ext/lsh_ns_supg_ext_intf.h" 00009 00010 struct AMGAlgorithmData { 00011 int coarsening_algorithm; 00012 int interpolation_algorithm; 00013 double strength_threshold; 00014 int levels_number; 00015 int pre_it_nr; 00016 int post_it_nr; 00017 int global_it_nr; 00018 int local_it_nr; 00019 }; 00020 00021 extern struct AMGAlgorithmData amg_algorithm_data; 00022 00023 void init_amg(int coarsening_algorithm, int interpolation_algorithm, double strength_threshold, int levels_number, 00024 int pre_it_nr, int post_it_nr, int global_it_nr, int local_it_nr); 00025 extern double amg_get_global_diff(double diff); 00026 extern void amg_project_solution_to_level(int level_id); 00027 extern void amg_project_solution_from_level(int level_id); 00028 00029 #ifdef __cplusplus 00030 } 00031 #endif 00032 00033 00034 #endif