19#include "arccore/alina/AlinaLib.h"
20#include "arccore/common/Array.h"
22#include "./SampleProblemCommon.h"
27#include <gtest/gtest.h>
31using namespace Arcane::AlinaLib;
32void _doTest(eAlinaSolverType solver_type)
34 std::cout <<
"Testing AlinaLib\n";
38 std::vector<double> val;
39 std::vector<double> rhs;
41 int n = Alina::PoissonProblemGenerator::createSequentialMatrix(12, val, col, ptr, rhs);
45 prm.setSolverType(solver_type);
47 prm.
setInt32(
"precond.coarse_enough", 1000);
48 prm.
setString(
"precond.coarsening.type",
"smoothed_aggregation");
49 prm.
setReal(
"precond.coarsening.aggr.eps_strong", 1e-3f);
50 prm.
setString(
"precond.relax.type",
"spai0");
54 prm.setSolverMaxIteration(100);
58 AlinaSequentialSolver solver(prm, matrix_view);
65 std::fill(x.begin(), x.end(), 0);
66 cnv = solver.solveMatrix(matrix_view, rhs_view, x.smallSpan());
68 std::cout <<
"Iterations: " << cnv.iterations << std::endl
69 <<
"Error: " << cnv.residual << std::endl;
71 ASSERT_NEAR(cnv.residual, 0.0, 1e-7);
74TEST(alina_test_alina_lib, basic_cg)
76 _doTest(eAlinaSolverType::ConjugateGradient);
79TEST(alina_test_alina_lib, basic_bicgstab)
81 _doTest(eAlinaSolverType::BiCGStab);
84TEST(alina_test_alina_lib, basic_gmres)
86 _doTest(eAlinaSolverType::GMRES);
CSR Matrix view used in AlinaLib.
Handle parameters for solvers.
void setString(const char *name, const char *value)
Set floating point parameter in the parameter list.
void setInt32(const char *name, Int32 value)
Set Int32 parameter in the parameter list.
void setReal(const char *name, Real value)
Set floating point parameter in the parameter list.
View of an array of elements of type T.
1D data vector with value semantics (STL style).
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --