From 933b96c0e248e89cbb8433b25e525e89be223f30 Mon Sep 17 00:00:00 2001 From: Ralf Hartmann Date: Mon, 18 Dec 2000 13:30:38 +0000 Subject: [PATCH] Implementation of Test for TensorProductPolynomials. git-svn-id: https://svn.dealii.org/trunk@3556 0785d39b-7218-0410-832d-ea1e28bc413d --- tests/base/polynomial_test.cc | 78 +++++++++++++++++++++++++++++- tests/base/polynomial_test.checked | 15 ++++++ 2 files changed, 92 insertions(+), 1 deletion(-) diff --git a/tests/base/polynomial_test.cc b/tests/base/polynomial_test.cc index b9bbe4261a..1d1f97054b 100644 --- a/tests/base/polynomial_test.cc +++ b/tests/base/polynomial_test.cc @@ -15,7 +15,7 @@ #include #include -#include +#include @@ -28,6 +28,10 @@ bool equals_delta_ij(double value, unsigned int i, unsigned int j) return false; } +void Q3_4th_shape_function_values_and_grads_dim2( + const Point<2> &point, double &v_exact, + Tensor<1,2> &grad_exact, Tensor<2,2> &grad2); + @@ -108,7 +112,79 @@ int main(int, char) deallog << endl; } + + + deallog << endl << "Test of TensorProductPolynomials:" << endl; + deallog << "2D Example:" << endl; + unsigned int p=3, + n_tensor_pols=(p+1)*(p+1); + vector > pols; + + for (unsigned int i=0; i<=p; ++i) + pols.push_back(new LagrangeEquidistant(p, i)); + + TensorProductPolynomials<2> tp_pol(pols); + vector vs(n_tensor_pols); + vector > grads(n_tensor_pols); + vector > grad_grads(n_tensor_pols); + + double v_exact; + Tensor<1,2> grad_exact; + Tensor<2,2> grad_grad_exact; + + double xi=0.35; + double eta=0.62; + Point<2> point(xi,eta); + tp_pol.shape_values_and_grads(point, vs, grads, grad_grads); + + // 4th shape function of Q3<2> is + // equivalent to its 1st shape + // function in lexicographical + // order. + Q3_4th_shape_function_values_and_grads_dim2(point, v_exact, grad_exact, grad_grad_exact); + + unsigned int i=1; + deallog << "v_" << i << "=" << vs[i] << endl; + deallog << "v_exact=" << v_exact << endl; + deallog << "grad_v_" << i << "=" << grads[i] << endl; + deallog << "grad_exact=" << grad_exact << endl; + for (unsigned int j=0; j