From 1559653d94eb47d8aab540704baf6800d6cb84a5 Mon Sep 17 00:00:00 2001 From: wolf Date: Mon, 29 Jul 2002 15:01:56 +0000 Subject: [PATCH] Add this test case. The results are not really as they should be, but at least I know why, and this way I can clean up my local disk. git-svn-id: https://svn.dealii.org/trunk@6306 0785d39b-7218-0410-832d-ea1e28bc413d --- tests/fe/Makefile | 3 +- tests/fe/nedelec.cc | 115 +++++++++++++++++++++++++++++++++ tests/fe/nedelec.checked | 136 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 253 insertions(+), 1 deletion(-) create mode 100644 tests/fe/nedelec.cc create mode 100644 tests/fe/nedelec.checked diff --git a/tests/fe/Makefile b/tests/fe/Makefile index 3690bbb95d..91ea09a5d9 100644 --- a/tests/fe/Makefile +++ b/tests/fe/Makefile @@ -30,6 +30,7 @@ internals.exe : internals.go $(libraries) mapping.exe : mapping.go $(libraries) mapping_c1.exe : mapping_c1.go $(libraries) mapping_q1_eulerian.exe : mapping_q1_eulerian.go $(libraries) +nedelec.exe : nedelec.go $(libraries) non_primitive_1.exe : non_primitive_1.go $(libraries) numbering.exe : numbering.go $(libraries) shapes.exe : shapes.go $(libraries) @@ -38,7 +39,7 @@ transfer.exe : transfer.go $(libraries) tests = derivatives fe_data_test fe_traits fe_tools_test mapping \ mapping_c1 shapes numbering mapping_q1_eulerian \ transfer internals \ - non_primitive_1 + non_primitive_1 nedelec ############################################################ diff --git a/tests/fe/nedelec.cc b/tests/fe/nedelec.cc new file mode 100644 index 0000000000..88597efe93 --- /dev/null +++ b/tests/fe/nedelec.cc @@ -0,0 +1,115 @@ +// $Id$ +// (c) Wolfgang Bangerth +// +// Show the shape functions of the Nedelec element + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define PRECISION 2 + +char fname[50]; + +void +transform_grid (Triangulation<2> &tria, + const unsigned int transform) +{ + switch (transform) + { + case 0: + // first round: take + // original grid + break; + case 1: + // second round: rotate + // triangulation + GridTools::rotate (3.14159265358/2, tria); + break; + case 2: + // third round: inflate + // by a factor of 2 + GridTools::scale (2, tria); + break; + default: + Assert (false, ExcNotImplemented()); + }; +}; + + + + +template +inline void +plot_shape_functions() +{ + FE_Nedelec fe_ned(1); + Triangulation tr; + GridGenerator::hyper_cube(tr, 0., 1.); + + // check the following with a + // number of transformed + // triangulations + for (unsigned int transform=0; transform<3; ++transform) + { + transform_grid (tr, transform); + + DoFHandler dof(tr); + typename DoFHandler::cell_iterator c = dof.begin(); + dof.distribute_dofs(fe_ned); + + QTrapez<1> q_trapez; + const unsigned int div=2; + QIterated q(q_trapez, div); + FEValues fe(fe_ned, q, update_values); + fe.reinit(c); + + unsigned int k=0; + for (unsigned int mz=0;mz<=((dim>2) ? div : 0) ;++mz) + for (unsigned int my=0;my<=((dim>1) ? div : 0) ;++my) + for (unsigned int mx=0;mx<=div;++mx) + { + deallog << "q_point(" << k << ")=" << q.point(k) + << std::endl; + + for (unsigned int i=0;i(); +// plot_shape_functions<3>(); + + return 0; +} + + + diff --git a/tests/fe/nedelec.checked b/tests/fe/nedelec.checked new file mode 100644 index 0000000000..d81ee551e2 --- /dev/null +++ b/tests/fe/nedelec.checked @@ -0,0 +1,136 @@ + +DEAL::q_point(0)=0.00 0.00 +DEAL:: shape_function(0)= 1.00 0.00 +DEAL:: shape_function(1)= 0.00 0.00 +DEAL:: shape_function(2)= 0.00 0.00 +DEAL:: shape_function(3)= 0.00 1.00 +DEAL::q_point(1)=0.00 0.50 +DEAL:: shape_function(0)= 0.50 0.00 +DEAL:: shape_function(1)= 0.00 0.00 +DEAL:: shape_function(2)= 0.50 0.00 +DEAL:: shape_function(3)= 0.00 1.00 +DEAL::q_point(2)=0.00 1.00 +DEAL:: shape_function(0)= 0.00 0.00 +DEAL:: shape_function(1)= 0.00 0.00 +DEAL:: shape_function(2)= 1.00 0.00 +DEAL:: shape_function(3)= 0.00 1.00 +DEAL::q_point(3)=0.50 0.00 +DEAL:: shape_function(0)= 1.00 0.00 +DEAL:: shape_function(1)= 0.00 0.50 +DEAL:: shape_function(2)= 0.00 0.00 +DEAL:: shape_function(3)= 0.00 0.50 +DEAL::q_point(4)=0.50 0.50 +DEAL:: shape_function(0)= 0.50 0.00 +DEAL:: shape_function(1)= 0.00 0.50 +DEAL:: shape_function(2)= 0.50 0.00 +DEAL:: shape_function(3)= 0.00 0.50 +DEAL::q_point(5)=0.50 1.00 +DEAL:: shape_function(0)= 0.00 0.00 +DEAL:: shape_function(1)= 0.00 0.50 +DEAL:: shape_function(2)= 1.00 0.00 +DEAL:: shape_function(3)= 0.00 0.50 +DEAL::q_point(6)=1.00 0.00 +DEAL:: shape_function(0)= 1.00 0.00 +DEAL:: shape_function(1)= 0.00 1.00 +DEAL:: shape_function(2)= 0.00 0.00 +DEAL:: shape_function(3)= 0.00 0.00 +DEAL::q_point(7)=1.00 0.50 +DEAL:: shape_function(0)= 0.50 0.00 +DEAL:: shape_function(1)= 0.00 1.00 +DEAL:: shape_function(2)= 0.50 0.00 +DEAL:: shape_function(3)= 0.00 0.00 +DEAL::q_point(8)=1.00 1.00 +DEAL:: shape_function(0)= 0.00 0.00 +DEAL:: shape_function(1)= 0.00 1.00 +DEAL:: shape_function(2)= 1.00 0.00 +DEAL:: shape_function(3)= 0.00 0.00 +DEAL::q_point(0)=0.00 0.00 +DEAL:: shape_function(0)= 0.00 1.00 +DEAL:: shape_function(1)= 0.00 0.00 +DEAL:: shape_function(2)= 0.00 0.00 +DEAL:: shape_function(3)= -1.00 0.00 +DEAL::q_point(1)=0.00 0.50 +DEAL:: shape_function(0)= 0.00 0.50 +DEAL:: shape_function(1)= 0.00 0.00 +DEAL:: shape_function(2)= 0.00 0.50 +DEAL:: shape_function(3)= -1.00 0.00 +DEAL::q_point(2)=0.00 1.00 +DEAL:: shape_function(0)= 0.00 0.00 +DEAL:: shape_function(1)= 0.00 0.00 +DEAL:: shape_function(2)= 0.00 1.00 +DEAL:: shape_function(3)= -1.00 0.00 +DEAL::q_point(3)=0.50 0.00 +DEAL:: shape_function(0)= 0.00 1.00 +DEAL:: shape_function(1)= -0.50 0.00 +DEAL:: shape_function(2)= 0.00 0.00 +DEAL:: shape_function(3)= -0.50 0.00 +DEAL::q_point(4)=0.50 0.50 +DEAL:: shape_function(0)= 0.00 0.50 +DEAL:: shape_function(1)= -0.50 0.00 +DEAL:: shape_function(2)= 0.00 0.50 +DEAL:: shape_function(3)= -0.50 0.00 +DEAL::q_point(5)=0.50 1.00 +DEAL:: shape_function(0)= 0.00 0.00 +DEAL:: shape_function(1)= -0.50 0.00 +DEAL:: shape_function(2)= 0.00 1.00 +DEAL:: shape_function(3)= -0.50 0.00 +DEAL::q_point(6)=1.00 0.00 +DEAL:: shape_function(0)= 0.00 1.00 +DEAL:: shape_function(1)= -1.00 0.00 +DEAL:: shape_function(2)= 0.00 0.00 +DEAL:: shape_function(3)= 0.00 0.00 +DEAL::q_point(7)=1.00 0.50 +DEAL:: shape_function(0)= 0.00 0.50 +DEAL:: shape_function(1)= -1.00 0.00 +DEAL:: shape_function(2)= 0.00 0.50 +DEAL:: shape_function(3)= 0.00 0.00 +DEAL::q_point(8)=1.00 1.00 +DEAL:: shape_function(0)= 0.00 0.00 +DEAL:: shape_function(1)= -1.00 0.00 +DEAL:: shape_function(2)= 0.00 1.00 +DEAL:: shape_function(3)= 0.00 0.00 +DEAL::q_point(0)=0.00 0.00 +DEAL:: shape_function(0)= 0.00 2.00 +DEAL:: shape_function(1)= 0.00 0.00 +DEAL:: shape_function(2)= 0.00 0.00 +DEAL:: shape_function(3)= -2.00 0.00 +DEAL::q_point(1)=0.00 0.50 +DEAL:: shape_function(0)= 0.00 1.00 +DEAL:: shape_function(1)= 0.00 0.00 +DEAL:: shape_function(2)= 0.00 1.00 +DEAL:: shape_function(3)= -2.00 0.00 +DEAL::q_point(2)=0.00 1.00 +DEAL:: shape_function(0)= 0.00 0.00 +DEAL:: shape_function(1)= 0.00 0.00 +DEAL:: shape_function(2)= 0.00 2.00 +DEAL:: shape_function(3)= -2.00 0.00 +DEAL::q_point(3)=0.50 0.00 +DEAL:: shape_function(0)= 0.00 2.00 +DEAL:: shape_function(1)= -1.00 0.00 +DEAL:: shape_function(2)= 0.00 0.00 +DEAL:: shape_function(3)= -1.00 0.00 +DEAL::q_point(4)=0.50 0.50 +DEAL:: shape_function(0)= 0.00 1.00 +DEAL:: shape_function(1)= -1.00 0.00 +DEAL:: shape_function(2)= 0.00 1.00 +DEAL:: shape_function(3)= -1.00 0.00 +DEAL::q_point(5)=0.50 1.00 +DEAL:: shape_function(0)= 0.00 0.00 +DEAL:: shape_function(1)= -1.00 0.00 +DEAL:: shape_function(2)= 0.00 2.00 +DEAL:: shape_function(3)= -1.00 0.00 +DEAL::q_point(6)=1.00 0.00 +DEAL:: shape_function(0)= 0.00 2.00 +DEAL:: shape_function(1)= -2.00 0.00 +DEAL:: shape_function(2)= 0.00 0.00 +DEAL:: shape_function(3)= 0.00 0.00 +DEAL::q_point(7)=1.00 0.50 +DEAL:: shape_function(0)= 0.00 1.00 +DEAL:: shape_function(1)= -2.00 0.00 +DEAL:: shape_function(2)= 0.00 1.00 +DEAL:: shape_function(3)= 0.00 0.00 +DEAL::q_point(8)=1.00 1.00 +DEAL:: shape_function(0)= 0.00 0.00 +DEAL:: shape_function(1)= -2.00 0.00 +DEAL:: shape_function(2)= 0.00 2.00 +DEAL:: shape_function(3)= 0.00 0.00 -- 2.39.5