]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Tests for the project_boundary_values_*_conforming functions.
authorMarkus Buerg <buerg@math.tamu.edu>
Tue, 22 Feb 2011 13:54:49 +0000 (13:54 +0000)
committerMarkus Buerg <buerg@math.tamu.edu>
Tue, 22 Feb 2011 13:54:49 +0000 (13:54 +0000)
git-svn-id: https://svn.dealii.org/trunk@23415 0785d39b-7218-0410-832d-ea1e28bc413d

tests/deal.II/project_bv_curl_conf.cc [new file with mode: 0644]
tests/deal.II/project_bv_curl_conf/cmp/generic [new file with mode: 0644]
tests/deal.II/project_bv_div_conf.cc [new file with mode: 0644]
tests/deal.II/project_bv_div_conf/cmp/generic [new file with mode: 0644]

diff --git a/tests/deal.II/project_bv_curl_conf.cc b/tests/deal.II/project_bv_curl_conf.cc
new file mode 100644 (file)
index 0000000..314b524
--- /dev/null
@@ -0,0 +1,64 @@
+#include "../tests.h"
+#include <base/function.h>
+#include <base/logstream.h>
+#include <dofs/dof_handler.h>
+#include <grid/grid_generator.h>
+#include <grid/tria.h>
+#include <fe/fe_nedelec.h>
+#include <lac/constraint_matrix.h>
+#include <numerics/vectors.h>
+
+std::ofstream logfile ("project_bv_curl_conf/output");
+
+template <int dim>
+class BoundaryFunction: public Function<dim> {
+  public:
+    BoundaryFunction ();
+    virtual void vector_value (const Point<dim>& p, Vector<double>& values) const;
+};
+
+template <int dim>
+BoundaryFunction<dim>::BoundaryFunction (): Function<dim> (dim) {
+}
+
+template <int dim>
+void BoundaryFunction<dim>::vector_value (const Point<dim>& p, Vector<double>& values) const {
+  for (unsigned int d = 0; d < dim; ++d)
+    values (d) = d + 1.0;
+}
+
+template <int dim>
+void test_boundary_values (const FiniteElement<dim>& fe) {
+  Triangulation<dim> triangulation;
+  
+  GridGenerator::subdivided_hyper_cube (triangulation, 2);
+  
+  DoFHandler<dim> dof_handler (triangulation);
+  
+  dof_handler.distribute_dofs (fe);
+  
+  BoundaryFunction<dim> boundary_function;
+  ConstraintMatrix constraints;
+  
+  constraints.clear ();
+  VectorTools::project_boundary_values_curl_conforming (dof_handler, 0, boundary_function, 0, constraints);
+  constraints.close ();
+  constraints.print (logfile);
+}
+
+int main () {
+  deallog << std::setprecision (2);
+  deallog.attach (logfile);
+  deallog.depth_console (0);
+  deallog.threshold_double (1e-12);
+  
+  FE_Nedelec<2> fe_2 (1);
+  
+  deallog << "dim=2:" << std::endl;
+  test_boundary_values (fe_2);
+  
+  FE_Nedelec<3> fe_3 (1);
+  
+  deallog << "dim=3:" << std::endl;
+  test_boundary_values (fe_3);
+}
\ No newline at end of file
diff --git a/tests/deal.II/project_bv_curl_conf/cmp/generic b/tests/deal.II/project_bv_curl_conf/cmp/generic
new file mode 100644 (file)
index 0000000..169fbba
--- /dev/null
@@ -0,0 +1,211 @@
+
+DEAL::dim=2:
+    0 = 2.00000
+    1 = 0
+    4 = 1.00000
+    5 = 0
+    12 = 2.00000
+    13 = 0
+    14 = 1.00000
+    15 = 0
+    22 = 2.00000
+    23 = 0
+    26 = 1.00000
+    27 = 0
+    32 = 2.00000
+    33 = 0
+    34 = 1.00000
+    35 = 0
+DEAL::dim=3:
+    0 = 1.00000
+    1 = 0
+    2 = 1.00000
+    3 = 0
+    4 = 0.500000
+    5 = 0
+    6 = 0.500000
+    7 = 0
+    8 = 1.00000
+    9 = 0
+    12 = 0.500000
+    13 = 0
+    16 = 1.50000
+    17 = 0
+    18 = 1.50000
+    19 = 0
+    20 = 1.50000
+    21 = 0
+    24 = 0
+    25 = 0
+    26 = 0
+    27 = 0
+    32 = 0
+    33 = 0
+    34 = 0
+    35 = 0
+    40 = 0
+    41 = 0
+    42 = 0
+    43 = 0
+    54 = 1.00000
+    55 = 0
+    56 = 0.500000
+    57 = 0
+    58 = 0.500000
+    59 = 0
+    60 = 1.00000
+    61 = 0
+    62 = 0.500000
+    63 = 0
+    66 = 1.50000
+    67 = 0
+    68 = 1.50000
+    69 = 0
+    70 = 0
+    71 = 0
+    72 = 0
+    73 = 0
+    74 = 0
+    75 = 0
+    76 = 0
+    77 = 0
+    82 = 0
+    83 = 0
+    84 = 0
+    85 = 0
+    96 = 1.00000
+    97 = 0
+    98 = 1.00000
+    99 = 0
+    100 = 0.500000
+    101 = 0
+    102 = 1.00000
+    103 = 0
+    106 = 0.500000
+    107 = 0
+    108 = 1.50000
+    109 = 0
+    110 = 1.50000
+    111 = 0
+    112 = 0
+    113 = 0
+    114 = 0
+    115 = 0
+    120 = 0
+    121 = 0
+    122 = 0
+    123 = 0
+    124 = 0
+    125 = 0
+    126 = 0
+    127 = 0
+    138 = 1.00000
+    139 = 0
+    140 = 0.500000
+    141 = 0
+    142 = 1.00000
+    143 = 0
+    144 = 0.500000
+    145 = 0
+    146 = 1.50000
+    147 = 0
+    148 = 0
+    149 = 0
+    150 = 0
+    151 = 0
+    152 = 0
+    153 = 0
+    154 = 0
+    155 = 0
+    156 = 0
+    157 = 0
+    158 = 0
+    159 = 0
+    170 = 1.00000
+    171 = 0
+    172 = 1.00000
+    173 = 0
+    174 = 0.500000
+    175 = 0
+    176 = 0.500000
+    177 = 0
+    178 = 1.50000
+    179 = 0
+    180 = 1.50000
+    181 = 0
+    182 = 1.50000
+    183 = 0
+    186 = 0
+    187 = 0
+    188 = 0
+    189 = 0
+    194 = 0
+    195 = 0
+    196 = 0
+    197 = 0
+    202 = 0
+    203 = 0
+    204 = 0
+    205 = 0
+    212 = 1.00000
+    213 = 0
+    214 = 0.500000
+    215 = 0
+    216 = 0.500000
+    217 = 0
+    218 = 1.50000
+    219 = 0
+    220 = 1.50000
+    221 = 0
+    222 = 0
+    223 = 0
+    224 = 0
+    225 = 0
+    226 = 0
+    227 = 0
+    228 = 0
+    229 = 0
+    234 = 0
+    235 = 0
+    236 = 0
+    237 = 0
+    244 = 1.00000
+    245 = 0
+    246 = 1.00000
+    247 = 0
+    248 = 0.500000
+    249 = 0
+    250 = 1.50000
+    251 = 0
+    252 = 1.50000
+    253 = 0
+    254 = 0
+    255 = 0
+    256 = 0
+    257 = 0
+    262 = 0
+    263 = 0
+    264 = 0
+    265 = 0
+    266 = 0
+    267 = 0
+    268 = 0
+    269 = 0
+    276 = 1.00000
+    277 = 0
+    278 = 0.500000
+    279 = 0
+    280 = 1.50000
+    281 = 0
+    282 = 0
+    283 = 0
+    284 = 0
+    285 = 0
+    286 = 0
+    287 = 0
+    288 = 0
+    289 = 0
+    290 = 0
+    291 = 0
+    292 = 0
+    293 = 0
diff --git a/tests/deal.II/project_bv_div_conf.cc b/tests/deal.II/project_bv_div_conf.cc
new file mode 100644 (file)
index 0000000..11d97be
--- /dev/null
@@ -0,0 +1,64 @@
+#include "../tests.h"
+#include <base/function.h>
+#include <base/logstream.h>
+#include <dofs/dof_handler.h>
+#include <grid/grid_generator.h>
+#include <grid/tria.h>
+#include <fe/fe_raviart_thomas.h>
+#include <lac/constraint_matrix.h>
+#include <numerics/vectors.h>
+
+std::ofstream logfile ("project_bv_div_conf/output");
+
+template <int dim>
+class BoundaryFunction: public Function<dim> {
+  public:
+    BoundaryFunction ();
+    virtual void vector_value (const Point<dim>& p, Vector<double>& values) const;
+};
+
+template <int dim>
+BoundaryFunction<dim>::BoundaryFunction (): Function<dim> (dim) {
+}
+
+template <int dim>
+void BoundaryFunction<dim>::vector_value (const Point<dim>& p, Vector<double>& values) const {
+  for (unsigned int d = 0; d < dim; ++d)
+    values (d) = d + 1.0;
+}
+
+template <int dim>
+void test_boundary_values (const FiniteElement<dim>& fe) {
+  Triangulation<dim> triangulation;
+  
+  GridGenerator::subdivided_hyper_cube (triangulation, 2);
+  
+  DoFHandler<dim> dof_handler (triangulation);
+  
+  dof_handler.distribute_dofs (fe);
+  
+  BoundaryFunction<dim> boundary_function;
+  ConstraintMatrix constraints;
+  
+  constraints.clear ();
+  VectorTools::project_boundary_values_div_conforming (dof_handler, 0, boundary_function, 0, constraints);
+  constraints.close ();
+  constraints.print (logfile);
+}
+
+int main () {
+  deallog << std::setprecision (2);
+  deallog.attach (logfile);
+  deallog.depth_console (0);
+  deallog.threshold_double (1e-12);
+  
+  FE_RaviartThomas<2> fe_2 (1);
+  
+  deallog << "dim=2:" << std::endl;
+  test_boundary_values (fe_2);
+  
+  FE_RaviartThomas<3> fe_3 (1);
+  
+  deallog << "dim=3:" << std::endl;
+  test_boundary_values (fe_3);
+}
\ No newline at end of file
diff --git a/tests/deal.II/project_bv_div_conf/cmp/generic b/tests/deal.II/project_bv_div_conf/cmp/generic
new file mode 100644 (file)
index 0000000..dbd2b38
--- /dev/null
@@ -0,0 +1,115 @@
+
+DEAL::dim=2:
+    0 = 0.500000
+    1 = 0
+    4 = 1.00000
+    5 = 0
+    12 = 0.500000
+    13 = 0
+    14 = 1.00000
+    15 = 0
+    22 = 0.500000
+    23 = 0
+    26 = 1.00000
+    27 = 0
+    32 = 0.500000
+    33 = 0
+    34 = 1.00000
+    35 = 0
+DEAL::dim=3:
+    0 = 0.250000
+    1 = 0
+    2 = 0
+    3 = 0
+    8 = 0.500000
+    9 = 0
+    10 = 0
+    11 = 0
+    16 = 0.750000
+    17 = 0
+    18 = 0
+    19 = 0
+    36 = 0.250000
+    37 = 0
+    38 = 0
+    39 = 0
+    40 = 0.500000
+    41 = 0
+    42 = 0
+    43 = 0
+    48 = 0.750000
+    49 = 0
+    50 = 0
+    51 = 0
+    68 = 0.250000
+    69 = 0
+    70 = 0
+    71 = 0
+    76 = 0.500000
+    77 = 0
+    78 = 0
+    79 = 0
+    80 = 0.750000
+    81 = 0
+    82 = 0
+    83 = 0
+    100 = 0.250000
+    101 = 0
+    102 = 0
+    103 = 0
+    104 = 0.500000
+    105 = 0
+    106 = 0
+    107 = 0
+    108 = 0.750000
+    109 = 0
+    110 = 0
+    111 = 0
+    128 = 0.250000
+    129 = 0
+    130 = 0
+    131 = 0
+    136 = 0.500000
+    137 = 0
+    138 = 0
+    139 = 0
+    144 = 0.750000
+    145 = 0
+    146 = 0
+    147 = 0
+    160 = 0.250000
+    161 = 0
+    162 = 0
+    163 = 0
+    164 = 0.500000
+    165 = 0
+    166 = 0
+    167 = 0
+    172 = 0.750000
+    173 = 0
+    174 = 0
+    175 = 0
+    188 = 0.250000
+    189 = 0
+    190 = 0
+    191 = 0
+    196 = 0.500000
+    197 = 0
+    198 = 0
+    199 = 0
+    200 = 0.750000
+    201 = 0
+    202 = 0
+    203 = 0
+    216 = 0.250000
+    217 = 0
+    218 = 0
+    219 = 0
+    220 = 0.500000
+    221 = 0
+    222 = 0
+    223 = 0
+    224 = 0.750000
+    225 = 0
+    226 = 0
+    227 = 0

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.