]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Make GridGenerator::hyper_ball_balanced() available for GridGenerator::generate_from_... 13410/head
authorLuca Heltai <luca.heltai@sissa.it>
Thu, 17 Feb 2022 13:06:22 +0000 (13:06 +0000)
committerLuca Heltai <luca.heltai@sissa.it>
Fri, 18 Feb 2022 07:17:06 +0000 (07:17 +0000)
doc/news/changes/minor/20220217LucaHeltai [new file with mode: 0644]
source/grid/grid_generator.cc
source/grid/grid_generator_from_name.cc
tests/grid/grid_generator_from_name_and_argument_02.cc [new file with mode: 0644]
tests/grid/grid_generator_from_name_and_argument_02.output [new file with mode: 0644]

diff --git a/doc/news/changes/minor/20220217LucaHeltai b/doc/news/changes/minor/20220217LucaHeltai
new file mode 100644 (file)
index 0000000..59ddabe
--- /dev/null
@@ -0,0 +1,3 @@
+New: GridGenerator::generate_from_name_and_argument() now supports also GridGenerator::hyper_ball_balanced()
+<br>
+(Luca Heltai, 2022/02/17)
index 1f7187a11877b9519b8adf5852ee4ce4692a16c8..1f7d28dc79d82e943a46a218d69e7869983bc3b4 100644 (file)
@@ -3938,6 +3938,15 @@ namespace GridGenerator
 
 
 
+  template <>
+  void
+  hyper_ball_balanced(Triangulation<1> &, const Point<1> &, const double)
+  {
+    Assert(false, ExcNotImplemented());
+  }
+
+
+
   template <>
   void
   cylinder(Triangulation<1> &, const double, const double)
index 8b58ef10b9fda565ef449b062f21004c985db38f..7243d0c8a1f8112713057120d06bed12afe6b7cd 100644 (file)
@@ -129,6 +129,9 @@ namespace GridGenerator
         parse_and_create<dim, dim, const Point<dim> &, double, bool>(hyper_ball,
                                                                      arguments,
                                                                      tria);
+      else if (name == "hyper_ball_balanced")
+        parse_and_create<dim, dim, const Point<dim> &, double>(
+          hyper_ball_balanced, arguments, tria);
 
       else if (name == "quarter_hyper_ball")
         parse_and_create<dim, dim, const Point<dim> &, double>(
diff --git a/tests/grid/grid_generator_from_name_and_argument_02.cc b/tests/grid/grid_generator_from_name_and_argument_02.cc
new file mode 100644 (file)
index 0000000..e89f9e7
--- /dev/null
@@ -0,0 +1,57 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2019 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.
+//
+// ---------------------------------------------------------------------
+
+// Test GridGenerator::generate_from_name_and_arguments.
+
+#include <deal.II/base/tensor.h>
+
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/grid_out.h>
+#include <deal.II/grid/tria.h>
+
+#include "../tests.h"
+
+template <int dim, int spacedim>
+void
+test(const std::string &name, const std::string &arguments)
+{
+  Triangulation<dim, spacedim> tria;
+
+  deallog << "Generating Triangulation<" << dim << ", " << spacedim
+          << "> : " << name << '(' << arguments << ')' << std::endl;
+
+  GridGenerator::generate_from_name_and_arguments(tria, name, arguments);
+
+  GridOut go;
+  go.write_msh(tria, deallog.get_file_stream());
+
+  std::ofstream ofile(name + "_" + std::to_string(dim) + "_" +
+                      std::to_string(spacedim) + ".msh");
+  go.write_msh(tria, ofile);
+}
+
+int
+main()
+{
+  initlog();
+
+  test<2, 3>("hyper_sphere", "0,0,0 : 1");
+
+  test<2, 2>("quarter_hyper_ball", "0,0 : 1");
+  test<3, 3>("quarter_hyper_ball", "0,0,0 : 1");
+
+  test<2, 2>("hyper_ball_balanced", "0,0 : 1");
+  test<3, 3>("hyper_ball_balanced", "0,0,0 : 1");
+}
diff --git a/tests/grid/grid_generator_from_name_and_argument_02.output b/tests/grid/grid_generator_from_name_and_argument_02.output
new file mode 100644 (file)
index 0000000..5119b64
--- /dev/null
@@ -0,0 +1,193 @@
+
+DEAL::Generating Triangulation<2, 3> : hyper_sphere(0,0,0 : 1)
+$NOD
+8
+1  -0.577350 -0.577350 -0.577350
+2  0.577350 -0.577350 -0.577350
+3  -0.577350 0.577350 -0.577350
+4  0.577350 0.577350 -0.577350
+5  0.577350 -0.577350 0.577350
+6  0.577350 0.577350 0.577350
+7  -0.577350 -0.577350 0.577350
+8  -0.577350 0.577350 0.577350
+$ENDNOD
+$ELM
+6
+1 3 0 0 4 1 3 4 2 
+2 3 0 0 4 2 4 6 5 
+3 3 0 0 4 7 5 6 8 
+4 3 0 0 4 1 7 8 3 
+5 3 0 0 4 1 2 5 7 
+6 3 0 0 4 3 8 6 4 
+$ENDELM
+DEAL::Generating Triangulation<2, 2> : quarter_hyper_ball(0,0 : 1)
+$NOD
+7
+1  0.00000 0.00000 0
+2  1.00000 0.00000 0
+3  0.556470 0.00000 0
+4  0.00000 0.556470 0
+5  0.428830 0.428830 0
+6  0.00000 1.00000 0
+7  0.707107 0.707107 0
+$ENDNOD
+$ELM
+3
+1 3 0 0 4 1 3 5 4 
+2 3 0 0 4 2 7 5 3 
+3 3 0 0 4 6 4 5 7 
+$ENDELM
+DEAL::Generating Triangulation<3, 3> : quarter_hyper_ball(0,0,0 : 1)
+$NOD
+15
+1  0.00000 0.00000 0.00000
+2  1.00000 0.00000 0.00000
+3  0.528000 0.00000 0.00000
+4  0.00000 0.528000 0.00000
+5  0.453300 0.453300 0.00000
+6  0.00000 1.00000 0.00000
+7  0.707107 0.707107 0.00000
+8  0.00000 0.00000 0.528000
+9  0.707107 0.00000 0.707107
+10  0.453300 0.00000 0.453300
+11  0.00000 0.453300 0.453300
+12  0.375200 0.375200 0.375200
+13  0.00000 0.707107 0.707107
+14  0.577350 0.577350 0.577350
+15  0.00000 0.00000 1.00000
+$ENDNOD
+$ELM
+4
+1 5 0 0 8 1 3 10 8 4 5 12 11 
+2 5 0 0 8 2 7 14 9 3 5 12 10 
+3 5 0 0 8 6 4 11 13 7 5 12 14 
+4 5 0 0 8 8 10 9 15 11 12 14 13 
+$ENDELM
+DEAL::Generating Triangulation<2, 2> : hyper_ball_balanced(0,0 : 1)
+$NOD
+17
+1  0.00000 0.00000 0
+2  1.00000 0.00000 0
+3  0.556470 0.00000 0
+4  0.00000 0.556470 0
+5  0.428830 0.428830 0
+6  0.00000 1.00000 0
+7  0.707107 0.707107 0
+8  -0.556470 0.00000 0
+9  -0.428830 0.428830 0
+10  -1.00000 0.00000 0
+11  -0.707107 0.707107 0
+12  0.00000 -0.556470 0
+13  -0.428830 -0.428830 0
+14  0.00000 -1.00000 0
+15  -0.707107 -0.707107 0
+16  0.428830 -0.428830 0
+17  0.707107 -0.707107 0
+$ENDNOD
+$ELM
+12
+1 3 0 0 4 1 3 5 4 
+2 3 0 0 4 2 7 5 3 
+3 3 0 0 4 6 4 5 7 
+4 3 0 0 4 1 4 9 8 
+5 3 0 0 4 6 11 9 4 
+6 3 0 0 4 10 8 9 11 
+7 3 0 0 4 1 8 13 12 
+8 3 0 0 4 10 15 13 8 
+9 3 0 0 4 14 12 13 15 
+10 3 0 0 4 1 12 16 3 
+11 3 0 0 4 14 17 16 12 
+12 3 0 0 4 2 3 16 17 
+$ENDELM
+DEAL::Generating Triangulation<3, 3> : hyper_ball_balanced(0,0,0 : 1)
+$NOD
+53
+1  0.00000 0.00000 0.00000
+2  1.00000 0.00000 0.00000
+3  0.528000 0.00000 0.00000
+4  0.00000 0.528000 0.00000
+5  0.453300 0.453300 0.00000
+6  0.00000 1.00000 0.00000
+7  0.707107 0.707107 0.00000
+8  0.00000 0.00000 0.528000
+9  0.707107 0.00000 0.707107
+10  0.453300 0.00000 0.453300
+11  0.00000 0.453300 0.453300
+12  0.375200 0.375200 0.375200
+13  0.00000 0.707107 0.707107
+14  0.577350 0.577350 0.577350
+15  0.00000 0.00000 1.00000
+16  -0.528000 0.00000 0.00000
+17  -0.453300 0.453300 0.00000
+18  -1.00000 0.00000 0.00000
+19  -0.707107 0.707107 0.00000
+20  -0.453300 0.00000 0.453300
+21  -0.375200 0.375200 0.375200
+22  -0.707107 0.00000 0.707107
+23  -0.577350 0.577350 0.577350
+24  0.00000 -0.528000 0.00000
+25  -0.453300 -0.453300 0.00000
+26  0.00000 -1.00000 0.00000
+27  -0.707107 -0.707107 0.00000
+28  0.00000 -0.453300 0.453300
+29  -0.375200 -0.375200 0.375200
+30  0.00000 -0.707107 0.707107
+31  -0.577350 -0.577350 0.577350
+32  0.453300 -0.453300 0.00000
+33  0.707107 -0.707107 0.00000
+34  0.375200 -0.375200 0.375200
+35  0.577350 -0.577350 0.577350
+36  0.00000 0.00000 -0.528000
+37  -0.707107 0.00000 -0.707107
+38  -0.453300 0.00000 -0.453300
+39  0.00000 0.453300 -0.453300
+40  -0.375200 0.375200 -0.375200
+41  0.00000 0.707107 -0.707107
+42  -0.577350 0.577350 -0.577350
+43  0.00000 0.00000 -1.00000
+44  0.453300 0.00000 -0.453300
+45  0.375200 0.375200 -0.375200
+46  0.707107 0.00000 -0.707107
+47  0.577350 0.577350 -0.577350
+48  0.00000 -0.453300 -0.453300
+49  0.375200 -0.375200 -0.375200
+50  0.00000 -0.707107 -0.707107
+51  0.577350 -0.577350 -0.577350
+52  -0.375200 -0.375200 -0.375200
+53  -0.577350 -0.577350 -0.577350
+$ENDNOD
+$ELM
+32
+1 5 0 0 8 1 3 10 8 4 5 12 11 
+2 5 0 0 8 2 7 14 9 3 5 12 10 
+3 5 0 0 8 6 4 11 13 7 5 12 14 
+4 5 0 0 8 15 8 10 9 13 11 12 14 
+5 5 0 0 8 1 4 11 8 16 17 21 20 
+6 5 0 0 8 6 19 23 13 4 17 21 11 
+7 5 0 0 8 18 16 20 22 19 17 21 23 
+8 5 0 0 8 15 8 11 13 22 20 21 23 
+9 5 0 0 8 1 16 20 8 24 25 29 28 
+10 5 0 0 8 18 27 31 22 16 25 29 20 
+11 5 0 0 8 26 24 28 30 27 25 29 31 
+12 5 0 0 8 15 8 20 22 30 28 29 31 
+13 5 0 0 8 1 24 28 8 3 32 34 10 
+14 5 0 0 8 26 33 35 30 24 32 34 28 
+15 5 0 0 8 2 3 10 9 33 32 34 35 
+16 5 0 0 8 15 8 28 30 9 10 34 35 
+17 5 0 0 8 1 16 38 36 4 17 40 39 
+18 5 0 0 8 18 19 42 37 16 17 40 38 
+19 5 0 0 8 6 4 39 41 19 17 40 42 
+20 5 0 0 8 43 36 38 37 41 39 40 42 
+21 5 0 0 8 1 4 39 36 3 5 45 44 
+22 5 0 0 8 6 7 47 41 4 5 45 39 
+23 5 0 0 8 2 3 44 46 7 5 45 47 
+24 5 0 0 8 43 36 39 41 46 44 45 47 
+25 5 0 0 8 1 3 44 36 24 32 49 48 
+26 5 0 0 8 2 33 51 46 3 32 49 44 
+27 5 0 0 8 26 24 48 50 33 32 49 51 
+28 5 0 0 8 43 36 44 46 50 48 49 51 
+29 5 0 0 8 1 24 48 36 16 25 52 38 
+30 5 0 0 8 26 27 53 50 24 25 52 48 
+31 5 0 0 8 18 16 38 37 27 25 52 53 
+32 5 0 0 8 43 36 48 50 37 38 52 53 
+$ENDELM

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.