8 #ifndef TEST_ASSIMILATION_FULLGMRES_H_
9 #define TEST_ASSIMILATION_FULLGMRES_H_
14 #include "eckit/testing/Test.h"
20 #include "oops/util/Expect.h"
21 #include "oops/util/FloatCompare.h"
43 const int maxiter = 10;
44 const double tolerance = 1e-9;
46 std::vector<Vector3D> pq;
47 std::vector<Vector3D> xy;
49 const double normReduction =
FullGMRES(x, b, A, precond, maxiter, tolerance, pq, xy);
50 EXPECT(oops::is_close_absolute(x.
x(), 3.0, 1.0e-9));
51 EXPECT(oops::is_close_absolute(x.
y(), 3.0, 1.0e-9));
52 EXPECT(oops::is_close_absolute(x.
z(), 4.0, 1.0e-9));
53 EXPECT(oops::is_close_absolute(normReduction, 0.0, 1.0e-9));
56 CASE(
"assimilation/FullGMRES/FullGMRES") {
62 std::string
testid()
const override {
return "test::FullGMRES";}
std::string testid() const override
void clear() const override
void register_tests() const override
double FullGMRES(VECTOR &xx, const VECTOR &bb, const AMATRIX &A, const PMATRIX &precond, const int maxiter, const double tolerance, std::vector< VECTOR > &pqVEC, std::vector< VECTOR > &xyVEC)
oops::DiagonalMatrix< Vector3D > Matrix3D
CASE("assimilation/FullGMRES/FullGMRES")
void test_FullGMRES_FullGMRES()
FullGMRES solver for Ax=b.