]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Use numbers::is_finite whenever we compare with infinity. 15314/head
authorMarc Fehling <mafehling.git@gmail.com>
Tue, 6 Jun 2023 02:43:16 +0000 (20:43 -0600)
committerMarc Fehling <mafehling.git@gmail.com>
Tue, 6 Jun 2023 02:43:16 +0000 (20:43 -0600)
include/deal.II/lac/utilities.h
source/fe/mapping_q.cc
source/particles/particle_handler.cc

index 1e91f3623f70913e407bad720fdf668c6c6a11a9..058aaf5b69bb5c797a1754fed84e2e92585c9c2b 100644 (file)
@@ -432,7 +432,7 @@ namespace Utilities
       const double b = unwanted_spectrum.second;
       Assert(degree > 0, ExcMessage("Only positive degrees make sense."));
 
-      const bool scale = (a_L < std::numeric_limits<double>::infinity());
+      const bool scale = numbers::is_finite(a_L);
       Assert(
         a < b,
         ExcMessage(
index 7d0f7472ffdc3a200dedfb42cd479c669277120c..527004b33265e36db91b847e907d8a8a4bfbf8e3 100644 (file)
@@ -580,9 +580,8 @@ MappingQ<dim, spacedim>::transform_real_to_unit_cell(
   // statement may throw an exception, which we simply pass up to the caller
   const Point<dim> p_unit =
     this->transform_real_to_unit_cell_internal(cell, p, initial_p_unit);
-  if (p_unit[0] == std::numeric_limits<double>::infinity())
-    AssertThrow(false,
-                (typename Mapping<dim, spacedim>::ExcTransformationFailed()));
+  AssertThrow(numbers::is_finite(p_unit[0]),
+              (typename Mapping<dim, spacedim>::ExcTransformationFailed()));
   return p_unit;
 }
 
@@ -646,7 +645,10 @@ MappingQ<dim, spacedim>::transform_points_real_to_unit_cell(
         // determinants) from other SIMD lanes. Repeat the computation in this
         // unlikely case with scalar arguments.
         for (unsigned int j = 0; j < n_lanes && i + j < n_points; ++j)
-          if (unit_point[0][j] == std::numeric_limits<double>::infinity())
+          if (numbers::is_finite(unit_point[0][j]))
+            for (unsigned int d = 0; d < dim; ++d)
+              unit_points[i + j][d] = unit_point[d][j];
+          else
             unit_points[i + j] = internal::MappingQImplementation::
               do_transform_real_to_unit_cell_internal<dim, spacedim>(
                 real_points[i + j],
@@ -654,9 +656,6 @@ MappingQ<dim, spacedim>::transform_points_real_to_unit_cell(
                 support_points,
                 polynomials_1d,
                 renumber_lexicographic_to_hierarchic);
-          else
-            for (unsigned int d = 0; d < dim; ++d)
-              unit_points[i + j][d] = unit_point[d][j];
       }
     else
       unit_points[i] = internal::MappingQImplementation::
index 0bc71a019d546e6e2c948c9211de472cd9dcf37a..6f46f472dfaef27cf8dcadcf2e110b2c6a50ea23 100644 (file)
@@ -1261,11 +1261,11 @@ namespace Particles
         auto particle = pic.begin();
         for (const auto &p_unit : reference_locations)
           {
-            if (p_unit[0] == std::numeric_limits<double>::infinity() ||
-                !GeometryInfo<dim>::is_inside_unit_cell(p_unit))
-              particles_out_of_cell.push_back(particle);
-            else
+            if (numbers::is_finite(p_unit[0]) &&
+                GeometryInfo<dim>::is_inside_unit_cell(p_unit))
               particle->set_reference_location(p_unit);
+            else
+              particles_out_of_cell.push_back(particle);
 
             ++particle;
           }

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.