From 358cb29508d12e5372ed4fb5e92c0263adc6e1e7 Mon Sep 17 00:00:00 2001 From: kanschat Date: Wed, 2 Aug 2006 17:43:08 +0000 Subject: [PATCH] make sure test is correct git-svn-id: https://svn.dealii.org/trunk@13576 0785d39b-7218-0410-832d-ea1e28bc413d --- tests/lac/tridiagonal_matrix.cc | 142 +++++++++++++++++++---- tests/lac/tridiagonal_matrix/cmp/generic | 113 ++++++++++++++++-- 2 files changed, 227 insertions(+), 28 deletions(-) diff --git a/tests/lac/tridiagonal_matrix.cc b/tests/lac/tridiagonal_matrix.cc index dbbabfaa1b..ea7b9b39a8 100644 --- a/tests/lac/tridiagonal_matrix.cc +++ b/tests/lac/tridiagonal_matrix.cc @@ -19,47 +19,149 @@ #include #include +#include #include + +// Symmetric matrix with constant diagonals [-1,2,-1] template void -check_vmult() +matrix1(TridiagonalMatrix& M) { - TridiagonalMatrix M(4); - Vector u(4); - Vector v(4); + const unsigned int n = M.n(); + for (unsigned int i=0;i0) M(i,i-1) = -1.; + if (i +void +matrix2(TridiagonalMatrix& M) +{ + const unsigned int n = M.n(); + for (unsigned int i=0;i0) - M(i,i-1) = 0.-i; - if (i<3) - M(i,i+1) = 4.-i; + M(i,i) = 2.; + if (i>0) M(i,i-1) = -1.; + if (i +void +matrix3(TridiagonalMatrix& M) +{ + const unsigned int n = M.n(); + for (unsigned int i=0;i0) M(i,i-1) = -1.-i; + if (i +void +matrix4(TridiagonalMatrix& M) +{ + const unsigned int n = M.n(); + for (unsigned int i=0;i0) M(i,i-1) = 0.-i; + if (i +void +matrix5(TridiagonalMatrix& M) +{ + const unsigned int n = M.n(); + for (unsigned int i=0;i0) M(i,i-1) = -1.-i; + if (i +void +check_vmult(TridiagonalMatrix& M) +{ + const unsigned int n = M.n(); + Vector u(n); + Vector v(n); + + for (unsigned int i=0;i +void +check(unsigned int size) +{ + TridiagonalMatrixM(size); + matrix1(M); + deallog << "Matrix [-1,2,-1]" << std::endl; + M.print(deallog, 7, 0); + check_vmult(M); + matrix2(M); + deallog << "Matrix [-1,2,-3]" << std::endl; + M.print(deallog, 7, 0); + check_vmult(M); + matrix3(M); + deallog << "Matrix increasing symmetric rows" << std::endl; + M.print(deallog, 7, 0); + check_vmult(M); + matrix4(M); + deallog << "Matrix increasing symmetric" << std::endl; + M.print(deallog, 7, 0); + check_vmult(M); + matrix5(M); + deallog << "Matrix increasing nonsymmetric" << std::endl; + M.print(deallog, 7, 0); + check_vmult(M); +} + int main() { std::ofstream logfile("tridiagonal_matrix/output"); @@ -69,6 +171,6 @@ int main() deallog.depth_console(0); deallog.threshold_double(1.e-10); - check_vmult(); - check_vmult(); + check(5); + check(4); } diff --git a/tests/lac/tridiagonal_matrix/cmp/generic b/tests/lac/tridiagonal_matrix/cmp/generic index 35c7e34b31..f59aa753ad 100644 --- a/tests/lac/tridiagonal_matrix/cmp/generic +++ b/tests/lac/tridiagonal_matrix/cmp/generic @@ -1,9 +1,106 @@ -DEAL:: 9. 12. 13. 7. -DEAL:: 18. 24. 26. 14. -DEAL:: -1. 2. 3. 22. -DEAL:: -2. 4. 6. 44. -DEAL:: 9. 12. 13. 7. -DEAL:: 18. 24. 26. 14. -DEAL:: -1. 2. 3. 22. -DEAL:: -2. 4. 6. 44. +DEAL::Matrix [-1,2,-1] +DEAL:: 2. -1. +DEAL::-1. 2. -1. +DEAL::-1. 2. -1. +DEAL::-1. 2. -1. +DEAL::-1. 2. +DEAL:: 1. 2. 4. 8. 16. +DEAL:: 0 -1. -2. -4. 24. +DEAL:: 0 -2. -4. -8. 48. +DEAL:: 0 -1. -2. -4. 24. +DEAL:: 0 -2. -4. -8. 48. +DEAL::Matrix [-1,2,-3] +DEAL:: 2. -3. +DEAL::-1. 2. -3. +DEAL::-1. 2. -3. +DEAL::-1. 2. -3. +DEAL::-1. 2. +DEAL:: 1. 2. 4. 8. 16. +DEAL:: -4. -9. -18. -36. 24. +DEAL:: -8. -18. -36. -72. 48. +DEAL:: 0 -3. -6. -12. 8. +DEAL:: 0 -6. -12. -24. 16. +DEAL::Matrix increasing symmetric rows +DEAL:: 2. -1. +DEAL::-2. 3. -2. +DEAL::-3. 4. -3. +DEAL::-4. 5. -4. +DEAL::-5. 6. +DEAL:: 1. 2. 4. 8. 16. +DEAL:: 0 -4. -14. -40. 56. +DEAL:: 0 -8. -28. -80. 112. +DEAL:: -2. -7. -20. -52. 64. +DEAL:: -4. -14. -40. -104. 128. +DEAL::Matrix increasing symmetric +DEAL:: 2. -1. +DEAL::-1. 3. -2. +DEAL::-2. 4. -3. +DEAL::-3. 5. -4. +DEAL::-4. 6. +DEAL:: 1. 2. 4. 8. 16. +DEAL:: 0 -3. -12. -36. 64. +DEAL:: 0 -6. -24. -72. 128. +DEAL:: 0 -3. -12. -36. 64. +DEAL:: 0 -6. -24. -72. 128. +DEAL::Matrix increasing nonsymmetric +DEAL:: 2. 5. +DEAL::-2. 3. 3. +DEAL::-3. 4. 1. +DEAL::-4. 5. -1. +DEAL::-5. 6. +DEAL:: 1. 2. 4. 8. 16. +DEAL:: 12. 16. 18. 8. 56. +DEAL:: 24. 32. 36. 16. 112. +DEAL:: -2. -1. -10. -36. 88. +DEAL:: -4. -2. -20. -72. 176. +DEAL::Matrix [-1,2,-1] +DEAL:: 2. -1. +DEAL::-1. 2. -1. +DEAL::-1. 2. -1. +DEAL::-1. 2. +DEAL:: 1. 2. 4. 8. +DEAL:: 0. -1. -2. 12. +DEAL:: 0. -2. -4. 24. +DEAL:: 0. -1. -2. 12. +DEAL:: 0. -2. -4. 24. +DEAL::Matrix [-1,2,-3] +DEAL:: 2. -3. +DEAL::-1. 2. -3. +DEAL::-1. 2. -3. +DEAL::-1. 2. +DEAL:: 1. 2. 4. 8. +DEAL:: -4. -9. -18. 12. +DEAL:: -8. -18. -36. 24. +DEAL:: 0. -3. -6. 4. +DEAL:: 0. -6. -12. 8. +DEAL::Matrix increasing symmetric rows +DEAL:: 2. -1. +DEAL::-2. 3. -2. +DEAL::-3. 4. -3. +DEAL::-4. 5. +DEAL:: 1. 2. 4. 8. +DEAL:: 0. -4. -14. 24. +DEAL:: 0. -8. -28. 48. +DEAL:: -2. -7. -20. 28. +DEAL:: -4. -14. -40. 56. +DEAL::Matrix increasing symmetric +DEAL:: 2. -1. +DEAL::-1. 3. -2. +DEAL::-2. 4. -3. +DEAL::-3. 5. +DEAL:: 1. 2. 4. 8. +DEAL:: 0. -3. -12. 28. +DEAL:: 0. -6. -24. 56. +DEAL:: 0. -3. -12. 28. +DEAL:: 0. -6. -24. 56. +DEAL::Matrix increasing nonsymmetric +DEAL:: 2. 5. +DEAL::-2. 3. 3. +DEAL::-3. 4. 1. +DEAL::-4. 5. +DEAL:: 1. 2. 4. 8. +DEAL:: 12. 16. 18. 24. +DEAL:: 24. 32. 36. 48. +DEAL:: -2. -1. -10. 44. +DEAL:: -4. -2. -20. 88. -- 2.39.5