]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Fix a variety of small simplex things. 11613/head
authorDavid Wells <drwells@email.unc.edu>
Sat, 23 Jan 2021 15:01:58 +0000 (10:01 -0500)
committerDavid Wells <drwells@email.unc.edu>
Sat, 23 Jan 2021 17:33:28 +0000 (12:33 -0500)
1. Our convention is to still mark overridden methods as virtual.
2. convert_generalized_support_point_values_to_dof_values should be public.
3. Fix simplex reference tria generation in codimension 1.
4. Remove some hard-coded numbers.
5. Fix a quadrature weight.

include/deal.II/simplex/fe_lib.h
source/grid/reference_cell.cc
source/grid/tria_accessor.cc
source/simplex/quadrature_lib.cc
tests/simplex/q_projection_01.output
tests/simplex/quadrature_lib_01.output

index a70a5cda07dde8e3f8ba37e2d844c28ed48136a2..f8b8688a89dac7dd12d47f442b0b4d3fa38c4982 100644 (file)
@@ -48,7 +48,7 @@ namespace Simplex
      * Return a list of constant modes of the element. For this element, the
      * list consists of true arguments for all components.
      */
-    std::pair<Table<2, bool>, std::vector<unsigned int>>
+    virtual std::pair<Table<2, bool>, std::vector<unsigned int>>
     get_constant_modes() const override;
 
     /**
@@ -56,17 +56,16 @@ namespace Simplex
      *
      * @note Only implemented for RefinementCase::isotropic_refinement.
      */
-    const FullMatrix<double> &
+    virtual const FullMatrix<double> &
     get_prolongation_matrix(
       const unsigned int         child,
       const RefinementCase<dim> &refinement_case =
         RefinementCase<dim>::isotropic_refinement) const override;
 
-  private:
     /**
      * @copydoc dealii::FiniteElement::convert_generalized_support_point_values_to_dof_values()
      */
-    void
+    virtual void
     convert_generalized_support_point_values_to_dof_values(
       const std::vector<Vector<double>> &support_point_values,
       std::vector<double> &              nodal_values) const override;
index 81a1820a0995eaeceb0a725f868677e22cd939bb..2ce04c7d8e9a321ab5f6e66dbe9300f55fe14fb5 100644 (file)
@@ -75,8 +75,19 @@ namespace ReferenceCell
       }
     else if (reference_cell == Type::Tri)
       {
-        static const std::vector<Point<spacedim>> vertices = {
-          {{0.0, 0.0}, {1.0, 0.0}, {0.0, 1.0}}};
+        std::vector<Point<spacedim>> vertices;
+        if (spacedim == 2)
+          {
+            vertices.emplace_back(0.0, 0.0);
+            vertices.emplace_back(1.0, 0.0);
+            vertices.emplace_back(0.0, 1.0);
+          }
+        else if (spacedim == 3)
+          {
+            vertices.emplace_back(0.0, 0.0, 0.0);
+            vertices.emplace_back(1.0, 0.0, 0.0);
+            vertices.emplace_back(0.0, 1.0, 0.0);
+          }
 
         std::vector<CellData<dim>> cells(1);
         cells[0].vertices = {0, 1, 2};
index 9574a9045189c7b4d8d0d3ea46c5520f0072e66b..bf6f98c58fa054eb4c94d5ffc553a811ad6e492f 100644 (file)
@@ -1670,11 +1670,9 @@ TriaAccessor<3, 3, 3>::set_all_manifold_ids(
   // for hexes also set manifold_id
   // of bounding quads and lines
 
-  // Six bonding quads
-  for (unsigned int i = 0; i < 6; ++i)
+  for (unsigned int i : this->face_indices())
     this->quad(i)->set_manifold_id(manifold_ind);
-  // Twelve bounding lines
-  for (unsigned int i = 0; i < 12; ++i)
+  for (unsigned int i : this->line_indices())
     this->line(i)->set_manifold_id(manifold_ind);
 }
 
index 2bb93a055f6543086397a926c9f6f22adf39b428..6e8b9832ea1d401d9f66a8ea107cd748a9ce9854 100644 (file)
@@ -46,7 +46,7 @@ namespace Simplex
           {
             const double p = 1.0 / 3.0;
             this->quadrature_points.emplace_back(p, p);
-            this->weights.emplace_back(1.0);
+            this->weights.emplace_back(0.5);
           }
         else if (n_points_1D == 2)
           {
index c2e3fc67658b121b89ec935c78dc9a945f5c7731..ed748deec4c6da3cd95790ced794a1d0976e597f 100644 (file)
@@ -72,76 +72,76 @@ DEAL:2d-3::0.00000 0.500000 0.444444
 DEAL:2d-3::0.00000 0.887298 0.277778 
 DEAL:2d-3::
 DEAL:3d-1::face_no=0 face_orientation=true face_flip=false face_rotation=false:
-DEAL:3d-1::0.333333 0.333333 0.00000 1.00000 
+DEAL:3d-1::0.333333 0.333333 0.00000 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=0 face_orientation=true face_flip=true face_rotation=false:
-DEAL:3d-1::0.333333 0.333333 0.00000 1.00000 
+DEAL:3d-1::0.333333 0.333333 0.00000 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=0 face_orientation=true face_flip=false face_rotation=true:
-DEAL:3d-1::0.333333 0.333333 0.00000 1.00000 
+DEAL:3d-1::0.333333 0.333333 0.00000 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=0 face_orientation=false face_flip=false face_rotation=false:
-DEAL:3d-1::0.333333 0.333333 0.00000 1.00000 
+DEAL:3d-1::0.333333 0.333333 0.00000 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=0 face_orientation=false face_flip=true face_rotation=false:
-DEAL:3d-1::0.333333 0.333333 0.00000 1.00000 
+DEAL:3d-1::0.333333 0.333333 0.00000 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=0 face_orientation=false face_flip=false face_rotation=true:
-DEAL:3d-1::0.333333 0.333333 0.00000 1.00000 
+DEAL:3d-1::0.333333 0.333333 0.00000 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=1 face_orientation=true face_flip=false face_rotation=false:
-DEAL:3d-1::0.333333 0.00000 0.333333 1.00000 
+DEAL:3d-1::0.333333 0.00000 0.333333 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=1 face_orientation=true face_flip=true face_rotation=false:
-DEAL:3d-1::0.333333 0.00000 0.333333 1.00000 
+DEAL:3d-1::0.333333 0.00000 0.333333 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=1 face_orientation=true face_flip=false face_rotation=true:
-DEAL:3d-1::0.333333 0.00000 0.333333 1.00000 
+DEAL:3d-1::0.333333 0.00000 0.333333 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=1 face_orientation=false face_flip=false face_rotation=false:
-DEAL:3d-1::0.333333 0.00000 0.333333 1.00000 
+DEAL:3d-1::0.333333 0.00000 0.333333 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=1 face_orientation=false face_flip=true face_rotation=false:
-DEAL:3d-1::0.333333 0.00000 0.333333 1.00000 
+DEAL:3d-1::0.333333 0.00000 0.333333 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=1 face_orientation=false face_flip=false face_rotation=true:
-DEAL:3d-1::0.333333 0.00000 0.333333 1.00000 
+DEAL:3d-1::0.333333 0.00000 0.333333 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=2 face_orientation=true face_flip=false face_rotation=false:
-DEAL:3d-1::0.00000 0.333333 0.333333 1.00000 
+DEAL:3d-1::0.00000 0.333333 0.333333 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=2 face_orientation=true face_flip=true face_rotation=false:
-DEAL:3d-1::0.00000 0.333333 0.333333 1.00000 
+DEAL:3d-1::0.00000 0.333333 0.333333 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=2 face_orientation=true face_flip=false face_rotation=true:
-DEAL:3d-1::0.00000 0.333333 0.333333 1.00000 
+DEAL:3d-1::0.00000 0.333333 0.333333 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=2 face_orientation=false face_flip=false face_rotation=false:
-DEAL:3d-1::0.00000 0.333333 0.333333 1.00000 
+DEAL:3d-1::0.00000 0.333333 0.333333 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=2 face_orientation=false face_flip=true face_rotation=false:
-DEAL:3d-1::0.00000 0.333333 0.333333 1.00000 
+DEAL:3d-1::0.00000 0.333333 0.333333 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=2 face_orientation=false face_flip=false face_rotation=true:
-DEAL:3d-1::0.00000 0.333333 0.333333 1.00000 
+DEAL:3d-1::0.00000 0.333333 0.333333 0.500000 
 DEAL:3d-1::
 DEAL:3d-1::face_no=3 face_orientation=true face_flip=false face_rotation=false:
-DEAL:3d-1::0.333333 0.333333 0.333333 1.7320
+DEAL:3d-1::0.333333 0.333333 0.333333 0.86602
 DEAL:3d-1::
 DEAL:3d-1::face_no=3 face_orientation=true face_flip=true face_rotation=false:
-DEAL:3d-1::0.333333 0.333333 0.333333 1.7320
+DEAL:3d-1::0.333333 0.333333 0.333333 0.86602
 DEAL:3d-1::
 DEAL:3d-1::face_no=3 face_orientation=true face_flip=false face_rotation=true:
-DEAL:3d-1::0.333333 0.333333 0.333333 1.7320
+DEAL:3d-1::0.333333 0.333333 0.333333 0.86602
 DEAL:3d-1::
 DEAL:3d-1::face_no=3 face_orientation=false face_flip=false face_rotation=false:
-DEAL:3d-1::0.333333 0.333333 0.333333 1.7320
+DEAL:3d-1::0.333333 0.333333 0.333333 0.86602
 DEAL:3d-1::
 DEAL:3d-1::face_no=3 face_orientation=false face_flip=true face_rotation=false:
-DEAL:3d-1::0.333333 0.333333 0.333333 1.7320
+DEAL:3d-1::0.333333 0.333333 0.333333 0.86602
 DEAL:3d-1::
 DEAL:3d-1::face_no=3 face_orientation=false face_flip=false face_rotation=true:
-DEAL:3d-1::0.333333 0.333333 0.333333 1.7320
+DEAL:3d-1::0.333333 0.333333 0.333333 0.86602
 DEAL:3d-1::
 DEAL:3d-4::face_no=0 face_orientation=true face_flip=false face_rotation=false:
 DEAL:3d-4::0.666667 0.166667 0.00000 0.166667 
index 94888c477fefdf5c416719a198b2e1355972176b..d2a4bff8c8c17fb0b354322a8c77dedbd76764cf 100644 (file)
@@ -5,7 +5,7 @@ DEAL:1d-2::0.788675 0.500000
 DEAL:1d-3::0.112702 0.277778 
 DEAL:1d-3::0.500000 0.444444 
 DEAL:1d-3::0.887298 0.277778 
-DEAL:2d-1::0.333333 0.333333 1.00000 
+DEAL:2d-1::0.333333 0.333333 0.50000 
 DEAL:2d-3::0.666667 0.166667 0.166667 
 DEAL:2d-3::0.166667 0.666667 0.166667 
 DEAL:2d-3::0.166667 0.166667 0.166667 

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.