16#include <SolveurSys.h>
19#include <Perf_counters.h>
25 return OWN_PTR(SolveurSys_base)::printOn(s);
30 Param param(que_suis_je());
33 param.lire_sans_accolade(is);
36 Cerr <<
"Error: Sparskit based solver 'solveur gen { solv_elem bicgstab|gmres ... }' removed in v1.9.8" << finl;
37 Cerr <<
" It can be replaced by more efficient PETSc equivalent solvers." << finl;
40 Nom type_solv_sys(
"Solv_");
41 type_solv_sys += solver_name;
43 return is >> valeur();
46static int nested_solver = 0;
50 valeur().save_matrice_secmem_conditionnel(matrice, secmem, solution);
53 statistics().begin_count(STD_COUNTERS::system_solver,statistics().get_last_opened_counter_level()+1);
55 int nb_iter = valeur().resoudre_systeme(matrice, secmem, solution);
61 if (valeur().limpr() >= 0)
62 Cout <<
" Convergence in " << nb_iter <<
" iterations for " <<
le_nom() << finl;
63 if (valeur().limpr() == 1)
64 Cout <<
"clock Ax=B: " << statistics().get_time_since_last_open(STD_COUNTERS::system_solver) <<
" s for " <<
le_nom() << finl;
65 statistics().end_count(STD_COUNTERS::system_solver,1,nb_iter);
Class defining operators and methods for all reading operation in an input flow (file,...
Classe Matrice_Base Classe de base de la hierarchie des matrices.
Nom & majuscule()
Transforme le nom en majuscules Seules les lettres 'a'-'z' sont modifiees.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
class SolveurSys Un SolveurSys represente n'importe qu'elle classe
int resoudre_systeme(const Matrice_Base &matrice, const DoubleVect &secmem, DoubleVect &solution)
const Nom & le_nom() const override
Classe de base des flux de sortie.