]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Remove DEAL_II_WITH_SIMPLEX_SUPPORT 12118/head
authorPeter Munch <peterrmuench@gmail.com>
Fri, 30 Apr 2021 22:16:28 +0000 (00:16 +0200)
committerPeter Munch <peterrmuench@gmail.com>
Sat, 1 May 2021 11:17:47 +0000 (13:17 +0200)
88 files changed:
.github/workflows/linux.yml
cmake/setup_cached_variables.cmake
contrib/docker/Dockerfile
doc/users/cmake_user.html
include/deal.II/base/config.h.in
include/deal.II/base/exceptions.h
include/deal.II/matrix_free/mapping_info.templates.h
include/deal.II/matrix_free/shape_info.templates.h
source/grid/grid_generator.cc
source/grid/tria.cc
tests/simplex/cell_bounding_boxes_2d.output [moved from tests/simplex/cell_bounding_boxes_2d.with_simplex_support=on.output with 100% similarity]
tests/simplex/cell_bounding_boxes_3d.output [moved from tests/simplex/cell_bounding_boxes_3d.with_simplex_support=on.output with 100% similarity]
tests/simplex/cell_measure_01.output [moved from tests/simplex/cell_measure_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/compute_point_locations_01.output [moved from tests/simplex/compute_point_locations_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/compute_projection_matrices_01.output [moved from tests/simplex/compute_projection_matrices_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/conv_hex_to_simplex.output [moved from tests/simplex/conv_hex_to_simplex.with_simplex_support=on.output with 100% similarity]
tests/simplex/data_out_write_hdf5_01.mpirun=1.with_hdf5=on.output [moved from tests/simplex/data_out_write_hdf5_01.mpirun=1.with_simplex_support=on.with_hdf5=on.output with 100% similarity]
tests/simplex/data_out_write_hdf5_02.mpirun=4.with_hdf5=on.output [moved from tests/simplex/data_out_write_hdf5_02.mpirun=4.with_simplex_support=on.with_hdf5=on.output with 100% similarity]
tests/simplex/data_out_write_vtk_01.output [moved from tests/simplex/data_out_write_vtk_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/data_out_write_vtk_02.output [moved from tests/simplex/data_out_write_vtk_02.with_simplex_support=on.output with 100% similarity]
tests/simplex/data_out_write_vtk_03.output [moved from tests/simplex/data_out_write_vtk_03.with_simplex_support=on.output with 100% similarity]
tests/simplex/data_out_write_vtu_01.output [moved from tests/simplex/data_out_write_vtu_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/dummy.cc [deleted file]
tests/simplex/dummy.with_simplex_support=on.output [deleted file]
tests/simplex/extract_boundary_dofs.mpirun=1.output [moved from tests/simplex/extract_boundary_dofs.mpirun=1.with_simplex_support=on.output with 100% similarity]
tests/simplex/extract_boundary_dofs.mpirun=5.output [moved from tests/simplex/extract_boundary_dofs.mpirun=5.with_simplex_support=on.output with 100% similarity]
tests/simplex/fe_p_bubbles_01.output [moved from tests/simplex/fe_p_bubbles_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/fe_p_bubbles_02.output [moved from tests/simplex/fe_p_bubbles_02.with_simplex_support=on.output with 100% similarity]
tests/simplex/get_boundary_ids_01.output [moved from tests/simplex/get_boundary_ids_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/get_projection_matrix_01.output [moved from tests/simplex/get_projection_matrix_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/grid_in_msh.output [moved from tests/simplex/grid_in_msh.with_simplex_support=on.output with 100% similarity]
tests/simplex/grid_in_vtk.output [moved from tests/simplex/grid_in_vtk.with_simplex_support=on.output with 100% similarity]
tests/simplex/grid_out_eps.output [moved from tests/simplex/grid_out_eps.with_simplex_support=on.output with 100% similarity]
tests/simplex/grid_out_svg.output [moved from tests/simplex/grid_out_svg.with_simplex_support=on.output with 100% similarity]
tests/simplex/hanging_nodes_01.output [moved from tests/simplex/hanging_nodes_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/hanging_nodes_02.output [moved from tests/simplex/hanging_nodes_02.with_simplex_support=on.output with 100% similarity]
tests/simplex/hanging_nodes_03.output [moved from tests/simplex/hanging_nodes_03.with_simplex_support=on.output with 100% similarity]
tests/simplex/hanging_nodes_hybrid_01.output [moved from tests/simplex/hanging_nodes_hybrid_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/hanging_nodes_hybrid_02.output [moved from tests/simplex/hanging_nodes_hybrid_02.with_simplex_support=on.output with 100% similarity]
tests/simplex/hanging_nodes_hybrid_03.output [moved from tests/simplex/hanging_nodes_hybrid_03.with_simplex_support=on.output with 100% similarity]
tests/simplex/mapping_fe_01.output [moved from tests/simplex/mapping_fe_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/mapping_fe_fields_01.output [moved from tests/simplex/mapping_fe_fields_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/mapping_fe_fields_02.output [moved from tests/simplex/mapping_fe_fields_02.with_simplex_support=on.output with 100% similarity]
tests/simplex/mapping_transformations_01.output [moved from tests/simplex/mapping_transformations_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/matrix_free_01.output [moved from tests/simplex/matrix_free_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/matrix_free_02.cc
tests/simplex/matrix_free_02.output [moved from tests/simplex/matrix_free_02.with_simplex_support=on.output with 100% similarity]
tests/simplex/matrix_free_03.output [moved from tests/simplex/matrix_free_03.with_simplex_support=on.output with 100% similarity]
tests/simplex/matrix_free_04.output [moved from tests/simplex/matrix_free_04.with_simplex_support=on.output with 100% similarity]
tests/simplex/matrix_free_face_integral_01.output [moved from tests/simplex/matrix_free_face_integral_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/matrix_free_shape_info_01.output [moved from tests/simplex/matrix_free_shape_info_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/orientation_01.output [moved from tests/simplex/orientation_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/orientation_02.output [moved from tests/simplex/orientation_02.with_simplex_support=on.output with 100% similarity]
tests/simplex/poisson_01.mpirun=1.with_trilinos=false.output [moved from tests/simplex/poisson_01.mpirun=1.with_trilinos=false.with_simplex_support=on.output with 100% similarity]
tests/simplex/poisson_01.mpirun=1.with_trilinos=true.output [moved from tests/simplex/poisson_01.mpirun=1.with_trilinos=true.with_simplex_support=on.output with 100% similarity]
tests/simplex/poisson_01.mpirun=4.with_trilinos=true.output [moved from tests/simplex/poisson_01.mpirun=4.with_trilinos=true.with_simplex_support=on.output with 100% similarity]
tests/simplex/poisson_02.output [moved from tests/simplex/poisson_02.with_simplex_support=on.output with 100% similarity]
tests/simplex/q_witherden_vincent_01.output [moved from tests/simplex/q_witherden_vincent_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/refinement_01.output [moved from tests/simplex/refinement_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/refinement_02.output [moved from tests/simplex/refinement_02.with_simplex_support=on.output with 100% similarity]
tests/simplex/refinement_03.output [moved from tests/simplex/refinement_03.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-01.output [moved from tests/simplex/step-01.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-02.output [moved from tests/simplex/step-02.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-03.output [moved from tests/simplex/step-03.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-04.output [moved from tests/simplex/step-04.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-06.output [moved from tests/simplex/step-06.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-07.output [moved from tests/simplex/step-07.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-08.output [moved from tests/simplex/step-08.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-12.output [moved from tests/simplex/step-12.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-12a.output [moved from tests/simplex/step-12a.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-12b.output [moved from tests/simplex/step-12b.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-12c.cc
tests/simplex/step-12c.output [moved from tests/simplex/step-12c.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-18.mpirun=1.with_petsc=false.output [moved from tests/simplex/step-18.mpirun=1.with_petsc=false.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-18.mpirun=1.with_petsc=true.output [moved from tests/simplex/step-18.mpirun=1.with_petsc=true.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-20.output [moved from tests/simplex/step-20.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-23.output [moved from tests/simplex/step-23.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-31.with_trilinos=true.output [moved from tests/simplex/step-31.with_simplex_support=on.with_trilinos=true.output with 100% similarity]
tests/simplex/step-38.output [moved from tests/simplex/step-38.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-55.mpirun=2.with_petsc=true.output [moved from tests/simplex/step-55.mpirun=2.with_petsc=true.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-67.mpirun=1.output [moved from tests/simplex/step-67.mpirun=1.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-67.mpirun=2.output [moved from tests/simplex/step-67.mpirun=2.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-68.mpirun=1.output [moved from tests/simplex/step-68.mpirun=1.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-68.mpirun=4.output [moved from tests/simplex/step-68.mpirun=4.with_simplex_support=on.output with 100% similarity]
tests/simplex/step-74.with_umfpack=on.output [moved from tests/simplex/step-74.with_umfpack=on.with_simplex_support=on.output with 100% similarity]
tests/simplex/variable_face_quadratures_03.output [moved from tests/simplex/variable_face_quadratures_03.with_simplex_support=on.output with 100% similarity]
tests/simplex/wedge_01.output [moved from tests/simplex/wedge_01.with_simplex_support=on.output with 100% similarity]
tests/simplex/write_mesh_per_processor_as_vtu_01.mpirun=3.output [moved from tests/simplex/write_mesh_per_processor_as_vtu_01.mpirun=3.with_simplex_support=on.output with 100% similarity]

index d41a30876148e7ff27fd0e34a3c9bc4222c42907..6d33e88605257bfcfc41da431c56cb3c5a45c16b 100644 (file)
@@ -65,7 +65,6 @@ jobs:
               -D DEAL_II_CXX_FLAGS='-Werror' \
               -D DEAL_II_EARLY_DEPRECATIONS=ON \
               -D DEAL_II_WITH_MPI="ON" \
-              -D DEAL_II_WITH_SIMPLEX_SUPPORT="ON" \
               -D DEAL_II_WITH_TRILINOS="ON" \
               -D DEAL_II_WITH_PETSC="ON" \
               -D DEAL_II_WITH_METIS="ON" \
index d783ef2e65cc1892ee0c112ca6daceaea706b015..cf8179bdb055d9af13a6ab68e0af95280939be85 100644 (file)
@@ -377,12 +377,6 @@ OPTION(DEAL_II_WITH_64BIT_INDICES
   )
 LIST(APPEND DEAL_II_FEATURES 64BIT_INDICES)
 
-OPTION(DEAL_II_WITH_SIMPLEX_SUPPORT
-  "If set to ON, triangulations with triangle and tetrahedron cells are supported in addition to quadrilateral- and hexahedra-only triangulations."
-  OFF
-  )
-LIST(APPEND DEAL_II_FEATURES SIMPLEX_SUPPORT)
-
 OPTION(DEAL_II_WITH_COMPLEX_VALUES
   "If set to OFF, the classes that take a number type are not explicitly instantiated for std::complex<float> and std::complex<double>. This effectively disables the support for computing with complex values. If PETSc is built with complex scalar type, this option must be ON."
   ON
index 1a7ec1d7ab5f16fa5c52c9e1e41c2309559ca29a..1b8086e80091d451da26803d145359fd578c8ffc 100644 (file)
@@ -11,7 +11,6 @@ RUN cd /usr/src \
     -DDEAL_II_COMPILE_EXAMPLES=OFF \
     -DDEAL_II_COMPONENT_PYTHON_BINDINGS=ON \
     -DDEAL_II_WITH_MPI=ON \
-    -DDEAL_II_WITH_SIMPLEX_SUPPORT=ON \
     -DCMAKE_CXX_FLAGS="-std=c++17" \
     .. \  
     && ninja install \
index 570aead58547f5f96cfb9aa0197bb044a2e999cd..628a8c19e2a7c8f75e24a042ff31c54db8ec311d 100644 (file)
@@ -877,7 +877,6 @@ DEAL_II_WITH_OPENCASCADE
 DEAL_II_WITH_P4EST
 DEAL_II_WITH_PETSC
 DEAL_II_WITH_SCALAPACK
-DEAL_II_WITH_SIMPLEX_SUPPORT
 DEAL_II_WITH_SLEPC
 DEAL_II_WITH_SUNDIALS
 DEAL_II_WITH_SYMENGINE
index 116697c2b6cc736d3b119c11b10bf4120ab0101d..caff7ed125278f5fb4d17a569ad8faf44ca9e749 100644 (file)
@@ -56,7 +56,6 @@
 #cmakedefine DEAL_II_WITH_P4EST
 #cmakedefine DEAL_II_WITH_PETSC
 #cmakedefine DEAL_II_WITH_SCALAPACK
-#cmakedefine DEAL_II_WITH_SIMPLEX_SUPPORT
 #cmakedefine DEAL_II_WITH_SLEPC
 #cmakedefine DEAL_II_WITH_SUNDIALS
 #cmakedefine DEAL_II_WITH_SYMENGINE
index de5d349bf5205d1eb322fcc5f903b9e11ce39ff2..4a5d9452234f88e9f426f15474d84bbbe93a03a1 100644 (file)
@@ -1110,14 +1110,6 @@ namespace StandardExceptions
     "You are attempting to use functionality that is only available "
     "if deal.II was configured to use MPI.");
 
-  /**
-   * This function requires simplex support.
-   */
-  DeclExceptionMsg(
-    ExcNeedsSimplexSupport,
-    "You are attempting to use functionality that is only available "
-    "if deal.II was configured with DEAL_II_WITH_SIMPLEX_SUPPORT enabled.");
-
   /**
    * This function requires support for the FunctionParser library.
    */
index d9d2f84522f64804cc36ddcc142c121efed47373..279f8e54d8ab59b19974adecdc57c26e41961170 100644 (file)
@@ -388,7 +388,6 @@ namespace internal
 
               if (flag == false)
                 {
-#ifdef DEAL_II_WITH_SIMPLEX_SUPPORT
                   cell_data[my_q].descriptor[hpq].initialize(quad[my_q][hpq],
                                                              update_default);
                   const auto quad_face =
@@ -421,9 +420,6 @@ namespace internal
 
                   reference_cell_types[my_q][hpq] =
                     face_quadrature_collection.first;
-#else
-                  Assert(false, ExcNotImplemented());
-#endif
                 }
               else
                 {
@@ -1742,11 +1738,7 @@ namespace internal
              reference_cell == dealii::ReferenceCells::get_hypercube<dim>()) ==
             false)
           {
-#ifdef DEAL_II_WITH_SIMPLEX_SUPPORT
             return index;
-#else
-            Assert(false, ExcNotImplemented());
-#endif
           }
 
         if (dim == 3)
@@ -1836,11 +1828,6 @@ namespace internal
           for (unsigned int my_q = 0; my_q < mapping_info.face_data.size();
                ++my_q)
             {
-#ifndef DEAL_II_WITH_SIMPLEX_SUPPORT
-              // currently only non-hp-case...
-              AssertDimension(mapping_in.size(), 1);
-#endif
-
               // We assume that we have the faces sorted by the active FE
               // indices so that the active FE index of the interior side of the
               // face batch is the same as the FE index of the interior side of
index c489a86041578b05b43f95e497dc47a22800648d..cb1fc1ec0cb6f371c6f18c42893b1136c22fff39 100644 (file)
@@ -203,7 +203,6 @@ namespace internal
             {
               const FE_Poly<dim, spacedim> *fe_poly_ptr =
                 dynamic_cast<const FE_Poly<dim, spacedim> *>(fe_ptr);
-#ifdef DEAL_II_WITH_SIMPLEX_SUPPORT
               // Simplices are a special case since the polynomial family is not
               // indicative of their support
               if (dynamic_cast<const FE_SimplexP<dim> *>(fe_poly_ptr) ||
@@ -211,7 +210,6 @@ namespace internal
                   dynamic_cast<const FE_WedgeP<dim> *>(fe_poly_ptr) ||
                   dynamic_cast<const FE_PyramidP<dim> *>(fe_poly_ptr))
                 return true;
-#endif
 
               if (dynamic_cast<const TensorProductPolynomials<dim> *>(
                     &fe_poly_ptr->get_poly_space()) == nullptr &&
@@ -243,7 +241,6 @@ namespace internal
                               const FiniteElement<dim> &fe_in,
                               const unsigned int        base_element_number)
     {
-#ifdef DEAL_II_WITH_SIMPLEX_SUPPORT
       if (quad_in.is_tensor_product() == false ||
           dynamic_cast<const FE_SimplexP<dim> *>(
             &fe_in.base_element(base_element_number)) ||
@@ -433,9 +430,6 @@ namespace internal
 
           return;
         }
-#else
-      Assert(quad_in.is_tensor_product(), ExcNotImplemented());
-#endif
 
       const auto quad = quad_in.get_tensor_basis()[0];
 
index 1427244d7a7b892741fe571380f7b518efba3a49..9a8d0d662a8ae2d957f87d39a0a9c6516436854f 100644 (file)
@@ -8263,9 +8263,6 @@ namespace GridGenerator
     const Point<dim> &               p2,
     const bool                       colorize)
   {
-#  ifndef DEAL_II_WITH_SIMPLEX_SUPPORT
-    Assert(false, ExcNeedsSimplexSupport());
-#  endif
     AssertDimension(dim, spacedim);
 
     AssertThrow(colorize == false, ExcNotImplemented());
index bb1c245eb0955fbd240639f0cacd22febe6abc47..a5a42d27c104bee58260396f79b5ae0fdf2b4801 100644 (file)
@@ -10498,10 +10498,6 @@ Triangulation<dim, spacedim>::reset_policy()
     }
   else
     {
-#ifndef DEAL_II_WITH_SIMPLEX_SUPPORT
-      Assert(false, ExcNeedsSimplexSupport());
-#endif
-
       this->policy =
         std::make_unique<internal::TriangulationImplementation::PolicyWrapper<
           dim,
diff --git a/tests/simplex/dummy.cc b/tests/simplex/dummy.cc
deleted file mode 100644 (file)
index 4a56f07..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2020 by the deal.II authors
-//
-// This file is part of the deal.II library.
-//
-// The deal.II library is free software; you can use it, redistribute
-// it, and/or modify it under the terms of the GNU Lesser General
-// Public License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-// The full text of the license can be found in the file LICENSE.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// Dummy simplex test.
-
-#include "../tests.h"
-
-int
-main()
-{
-  initlog();
-
-#ifdef DEAL_II_WITH_SIMPLEX_SUPPORT
-  deallog << "deal.II is configured with simplex support." << std::endl;
-#else
-  deallog << "deal.II is configured without simplex support." << std::endl;
-#endif
-}
diff --git a/tests/simplex/dummy.with_simplex_support=on.output b/tests/simplex/dummy.with_simplex_support=on.output
deleted file mode 100644 (file)
index ae6ce2e..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-
-DEAL::deal.II is configured with simplex support.
index 4339fe26f59d4ca4883532b1339ef453fc697a1e..46ee6a1214dd8a122af30efe85a8e7ee36ae6bd6 100644 (file)
@@ -204,12 +204,15 @@ test(const unsigned version, const unsigned int degree, const bool do_helmholtz)
                                       quads,
                                       VectorTools::NormType::L2_norm);
 
-    return {reduction_control.last_step(),
-            reduction_control.last_value(),
-            x.linfty_norm(),
-            VectorTools::compute_global_error(tria,
-                                              difference,
-                                              VectorTools::NormType::L2_norm)};
+    std::tuple<unsigned int, double, double, double> result(
+      reduction_control.last_step(),
+      reduction_control.last_value(),
+      x.linfty_norm(),
+      VectorTools::compute_global_error(tria,
+                                        difference,
+                                        VectorTools::NormType::L2_norm));
+
+    return result;
   };
 
   const auto mf_algo = [&]() {
index 086c091c549ff53b23d5eecd7df2639635e6e916..b23b04b4160ab107eeb178024f7518f4ac4f8a05 100644 (file)
@@ -694,6 +694,43 @@ public:
     matrix_free.initialize_dof_vector(vec);
   }
 
+  Tensor<1, dim, VectorizedArray<double>>
+  beta(const Point<dim, VectorizedArray<double>> &points) const
+  {
+    Tensor<1, dim, VectorizedArray<double>> betas;
+
+    for (unsigned int v = 0; v < VectorizedArray<double>::size(); ++v)
+      {
+        Point<dim, double>     p;
+        Tensor<1, dim, double> beta;
+
+        for (int d = 0; d < dim; ++d)
+          p[d] = points[d][v];
+
+        beta[0] = -p[1];
+        beta[1] = +p[0];
+
+        if (beta.norm() > 1e-10)
+          beta /= beta.norm();
+
+        for (int d = 0; d < dim; ++d)
+          betas[d][v] = beta[d];
+      }
+
+    return betas;
+  }
+
+  VectorizedArray<double>
+  boundary_values(const Point<dim, VectorizedArray<double>> &points) const
+  {
+    VectorizedArray<double> betas;
+
+    for (unsigned int v = 0; v < VectorizedArray<double>::size(); ++v)
+      betas[v] = (points[0][v] < 0.5) ? 1.0 : 0.0;
+
+    return betas;
+  }
+
   void
   rhs(VectorType &vec) const
   {
@@ -726,11 +763,11 @@ public:
             phi.reinit(face);
             for (unsigned int q = 0; q < phi.n_q_points; ++q)
               {
-                const auto beta_n =
-                  beta(phi.quadrature_point(q)) * phi.get_normal_vector(q);
+                const auto beta_n = this->beta(phi.quadrature_point(q)) *
+                                    phi.get_normal_vector(q);
                 const auto beta_n_m = (-std::abs(beta_n) + beta_n) * 0.5;
-                phi.submit_value(-beta_n_m *
-                                   boundary_values(phi.quadrature_point(q)),
+                phi.submit_value(-beta_n_m * this->boundary_values(
+                                               phi.quadrature_point(q)),
                                  q);
               }
 
@@ -754,7 +791,7 @@ public:
             phi.reinit(cell);
             phi.gather_evaluate(src, true, false);
             for (unsigned int q = 0; q < phi.n_q_points; ++q)
-              phi.submit_gradient(-beta(phi.quadrature_point(q)) *
+              phi.submit_gradient(-this->beta(phi.quadrature_point(q)) *
                                     phi.get_value(q),
                                   q);
             phi.integrate_scatter(false, true, dst);
@@ -772,8 +809,8 @@ public:
             phi_p.gather_evaluate(src, true, false);
             for (unsigned int q = 0; q < phi_m.n_q_points; ++q)
               {
-                const auto beta_n =
-                  beta(phi_m.quadrature_point(q)) * phi_m.get_normal_vector(q);
+                const auto beta_n = this->beta(phi_m.quadrature_point(q)) *
+                                    phi_m.get_normal_vector(q);
 
                 const auto u_m = phi_m.get_value(q);
                 const auto u_p = phi_p.get_value(q);
@@ -797,8 +834,8 @@ public:
             phi.gather_evaluate(src, true, false);
             for (unsigned int q = 0; q < phi.n_q_points; ++q)
               {
-                const auto beta_n =
-                  beta(phi.quadrature_point(q)) * phi.get_normal_vector(q);
+                const auto beta_n = this->beta(phi.quadrature_point(q)) *
+                                    phi.get_normal_vector(q);
                 const auto beta_n_p = (std::abs(beta_n) + beta_n) * 0.5;
                 phi.submit_value(beta_n_p * phi.get_value(q), q);
               }
@@ -811,43 +848,6 @@ public:
       true);
   }
 
-  Tensor<1, dim, VectorizedArray<double>>
-  beta(const Point<dim, VectorizedArray<double>> &points) const
-  {
-    Tensor<1, dim, VectorizedArray<double>> betas;
-
-    for (unsigned int v = 0; v < VectorizedArray<double>::size(); ++v)
-      {
-        Point<dim, double>     p;
-        Tensor<1, dim, double> beta;
-
-        for (int d = 0; d < dim; ++d)
-          p[d] = points[d][v];
-
-        beta[0] = -p[1];
-        beta[1] = +p[0];
-
-        if (beta.norm() > 1e-10)
-          beta /= beta.norm();
-
-        for (int d = 0; d < dim; ++d)
-          betas[d][v] = beta[d];
-      }
-
-    return betas;
-  }
-
-  VectorizedArray<double>
-  boundary_values(const Point<dim, VectorizedArray<double>> &points) const
-  {
-    VectorizedArray<double> betas;
-
-    for (unsigned int v = 0; v < VectorizedArray<double>::size(); ++v)
-      betas[v] = (points[0][v] < 0.5) ? 1.0 : 0.0;
-
-    return betas;
-  }
-
 private:
   const MatrixFree<dim, double> &matrix_free;
 };

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.