From 896d5602e6de35b2e6e3d9636ca888ccc739da3d Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Mon, 28 Mar 2005 22:06:40 +0000 Subject: [PATCH] Add new test for symmetric tensors. git-svn-id: https://svn.dealii.org/trunk@10261 0785d39b-7218-0410-832d-ea1e28bc413d --- tests/base/Makefile | 1 + tests/base/symmetric_tensor_01.cc | 56 +++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 tests/base/symmetric_tensor_01.cc diff --git a/tests/base/Makefile b/tests/base/Makefile index ff654f765f..7d677602d2 100644 --- a/tests/base/Makefile +++ b/tests/base/Makefile @@ -29,6 +29,7 @@ tests_x = logtest \ slice_vector \ table \ tensor \ + symmetric_tensor_* \ timer \ threads \ polynomial* \ diff --git a/tests/base/symmetric_tensor_01.cc b/tests/base/symmetric_tensor_01.cc new file mode 100644 index 0000000000..04b331296e --- /dev/null +++ b/tests/base/symmetric_tensor_01.cc @@ -0,0 +1,56 @@ +//---------------------------- symmetric_tensor_01.cc --------------------------- +// $Id$ +// Version: $Name$ +// +// Copyright (C) 2005 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//---------------------------- symmetric_tensor_01.cc --------------------------- + + +#include "../tests.h" +#include +#include +#include +#include +#include + +int main () +{ + std::ofstream logfile("symmetric_tensor_01.output"); + logfile.precision(3); + deallog.attach(logfile); + deallog.depth_console(0); + + SymmetricTensor<2,2> t2; + t2[0][0] = 1; + t2[1][1] = 2; + t2[0][1] = 3; + + Assert (t2[0][1] == t2[1][0], ExcInternalError()); + + // check that if a single element is + // accessed, its transpose element gets the + // same value + t2[1][0] = 4; + Assert (t2[0][1] == 4, ExcInternalError()); + + // make sure transposition doesn't change + // anything + Assert (t2 == transpose(t2), ExcInternalError()); + + // check norm of tensor + Assert (std::fabs(t2.norm() - std::sqrt(1.*1+2*2+2*4*4)) < 1e-14, + ExcInternalError()); + + // make sure norm is induced by scalar + // product + Assert (std::fabs (t2.norm()*t2.norm() - t2*t2) < 1e-14, + ExcInternalError()); + + deallog << "OK" << std::endl; +} -- 2.39.5