From 98517c4da00e411c939781dc7557198bdfe1d8e4 Mon Sep 17 00:00:00 2001 From: Guido Kanschat Date: Sun, 4 Jan 2004 19:07:59 +0000 Subject: [PATCH] start with bdm test git-svn-id: https://svn.dealii.org/trunk@8276 0785d39b-7218-0410-832d-ea1e28bc413d --- tests/base/Makefile | 1 + tests/base/bdm.cc | 88 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 tests/base/bdm.cc diff --git a/tests/base/Makefile b/tests/base/Makefile index cd6de3b3e3..34304ab85d 100644 --- a/tests/base/Makefile +++ b/tests/base/Makefile @@ -38,6 +38,7 @@ threads.exe : threads.g.$(OBJEXT) $(lib-base.g anisotropic_1.exe : anisotropic_1.g.$(OBJEXT) $(lib-base.g) anisotropic_2.exe : anisotropic_2.g.$(OBJEXT) $(lib-base.g) hierarchical.exe : hierarchical.g.$(OBJEXT) $(lib-base.g) +bdm.exe : bdm.g.$(OBJEXT) $(lib-base.g) auto_derivative_function.exe : auto_derivative_function.g.$(OBJEXT) $(libraries) $(lib-base.g) tests = logtest reference quadrature_test quadrature_selector table tensor \ diff --git a/tests/base/bdm.cc b/tests/base/bdm.cc new file mode 100644 index 0000000000..fada51d0b4 --- /dev/null +++ b/tests/base/bdm.cc @@ -0,0 +1,88 @@ +//----------------------------------------------------------------------------- +// $Id$ +// Version: $Name$ +// +// Copyright (C) 2000, 2001, 2002, 2003 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. +// +//----------------------------------------------------------------------------- + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +using namespace Polynomials; + +template +void moments (PolynomialsBDM& poly) +{ + std::vector > legendre(2); + for (unsigned int i=0;i(i); + + QGauss<1> qface(2); + + Table<2,double> integrals (poly.n(), poly.n()); + + std::vector > values(poly.n()); + std::vector > grads; + std::vector > grad_grads; + values.resize(poly.n()); + + for (unsigned int face=0;face<2*dim;++face) + for (unsigned int k=0;k p; + switch (face) + { + case 2: + p(1) = 1.; + case 0: + p(0) = x; + break; + case 1: + p(0) = 1.; + case 3: + p(1) = x; + break; + } + std::cerr << p << std::endl; + + poly.compute (p, values, grads, grad_grads); + for (unsigned int i=0;i bdm1(1); + + moments(bdm1); +} -- 2.39.5