From: Matthias Maier Date: Sun, 12 Apr 2015 22:24:16 +0000 (+0200) Subject: add a test X-Git-Tag: v8.3.0-rc1~242^2~9 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9c7c0c2bd7d735f69189282664d4661177d25067;p=dealii.git add a test --- diff --git a/tests/lac/linear_operator_04.cc b/tests/lac/linear_operator_04.cc index 6f7f12d1a2..2a4e4f4216 100644 --- a/tests/lac/linear_operator_04.cc +++ b/tests/lac/linear_operator_04.cc @@ -15,6 +15,7 @@ // Test that it is possible to instantiate a LinearOperator object for all // different kinds of Trilinos matrices and vectors +// TODO: A bit more tests... #include "../tests.h" diff --git a/tests/lac/linear_operator_08.cc b/tests/lac/linear_operator_08.cc new file mode 100644 index 0000000000..a03cd8f91d --- /dev/null +++ b/tests/lac/linear_operator_08.cc @@ -0,0 +1,88 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2015 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + +// Test non symmetric variants: + +#include "../tests.h" + +#include +#include +#include +#include +#include +#include + +#define PRINTME(name, var) \ + deallog << "Block vector: " name << ":" << std::endl; \ + for (unsigned int i = 0; i < var.n_blocks(); ++i) \ + deallog << "[block " << i << " ] " << var.block(i); + + +using namespace dealii; + +int main() +{ + initlog(); + deallog << std::setprecision(10); + + // SparseMatrix: + { + SparsityPattern sparsity_pattern (10, 5, 0); + sparsity_pattern.compress(); + + SparseMatrix a (sparsity_pattern); + + auto op_a = linop(a); + + Vector u; + op_a.reinit_domain_vector(u, false); + Vector v; + op_a.reinit_range_vector(v, false); + op_a.vmult(v, u); + op_a.vmult_add(v, u); + op_a.Tvmult(u, v); + op_a.Tvmult_add(u, v); + + deallog << "OK" << std::endl; + } + + // BlockSparseMatrix: + { + BlockDynamicSparsityPattern dsp(5, 3); + for (unsigned int i = 0; i < 5; ++i) + for (unsigned int j = 0; j < 3; ++j) + dsp.block(i, j).reinit (10, 5); + dsp.collect_sizes (); + + BlockSparsityPattern sparsity_pattern; + sparsity_pattern.copy_from(dsp); + sparsity_pattern.compress(); + + BlockSparseMatrix a (sparsity_pattern); + + auto op_a = linop>(a); + + BlockVector u; + op_a.reinit_domain_vector(u, false); + BlockVector v; + op_a.reinit_range_vector(v, false); + op_a.vmult(v, u); + op_a.vmult_add(v, u); + op_a.Tvmult(u, v); + op_a.Tvmult_add(u, v); + deallog << "OK" << std::endl; + } +} + diff --git a/tests/lac/linear_operator_08.with_cxx11=on.output b/tests/lac/linear_operator_08.with_cxx11=on.output new file mode 100644 index 0000000000..8b3b075900 --- /dev/null +++ b/tests/lac/linear_operator_08.with_cxx11=on.output @@ -0,0 +1,3 @@ + +DEAL::OK +DEAL::OK