22#include "arccore/alina/Adapters.h"
23#include "arccore/alina/PreconditionedSolver.h"
24#include "arccore/alina/AMG.h"
25#include "arccore/alina/Coarsening.h"
26#include "arccore/alina/Relaxation.h"
27#include "arccore/alina/ConjugateGradientSolver.h"
28#include "arccore/alina/Profiler.h"
30#ifndef SOLVER_BACKEND_BUILTIN
31#define SOLVER_BACKEND_BUILTIN
33#include "arccore/alina/BuiltinBackend.h"
37#include "SampleProblemCommon.h"
40using namespace Arcane::Alina;
52 std::vector<ptrdiff_t> ptr, col;
53 std::vector<double> val, rhs;
57 ARCCORE_ALINA_TIC(
"assemble");
58 int n = sample_problem(128, val, col, ptr, rhs);
59 ARCCORE_ALINA_TOC(
"assemble");
61 auto A_d = std::tie(n, ptr, col, val);
62 std::vector<double>& f = rhs;
63 std::vector<double> x(n, 0.0);
65 ARCCORE_ALINA_TIC(
"setup");
66 Solver S(std::tie(n, ptr, col, val), Solver::params(), bprm);
67 ARCCORE_ALINA_TIC(
"setup");
69 std::cout << S << std::endl;
71 ARCCORE_ALINA_TIC(
"solve");
73 ARCCORE_ALINA_TIC(
"solve");
75 std::cout <<
"Iterations: " << r.nbIteration() << std::endl
76 <<
"Error: " << r.residual() << std::endl
77 << Alina::Profiler::globalProfiler() << std::endl;
Algebraic multigrid method.
Conjugate Gradients solver.
Convenience class that bundles together a preconditioner and an iterative solver.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Alina::detail::empty_params params
Sparse approximate interface smoother.
Smoothed aggregation coarsening.