From 5d4047d3701392a7cef28e00352af0c8c7fa7211 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Del=20Pino?= <stephane.delpino44@gmail.com>
Date: Wed, 14 May 2025 15:12:53 +0200
Subject: [PATCH] Displace symmetry utilities in `geometry/SymmetryUtils.hpp`

---
 src/geometry/SymmetryUtils.hpp          | 32 +++++++++++++++++++++++++
 src/scheme/PolynomialReconstruction.cpp | 27 +--------------------
 2 files changed, 33 insertions(+), 26 deletions(-)
 create mode 100644 src/geometry/SymmetryUtils.hpp

diff --git a/src/geometry/SymmetryUtils.hpp b/src/geometry/SymmetryUtils.hpp
new file mode 100644
index 00000000..6524a079
--- /dev/null
+++ b/src/geometry/SymmetryUtils.hpp
@@ -0,0 +1,32 @@
+#ifndef SYMMETRY_UTILS_HPP
+#define SYMMETRY_UTILS_HPP
+
+#include <algebra/TinyMatrix.hpp>
+#include <algebra/TinyVector.hpp>
+#include <utils/PugsMacros.hpp>
+
+template <size_t Dimension>
+PUGS_INLINE auto
+symmetrize_vector(const TinyVector<Dimension>& normal, const TinyVector<Dimension>& u)
+{
+  return u - 2 * dot(u, normal) * normal;
+}
+
+template <size_t Dimension>
+PUGS_INLINE auto
+symmetrize_matrix(const TinyVector<Dimension>& normal, const TinyMatrix<Dimension>& A)
+{
+  const TinyMatrix S = TinyMatrix<Dimension>{identity} - 2 * tensorProduct(normal, normal);
+  return S * A * S;
+}
+
+template <size_t Dimension>
+PUGS_INLINE auto
+symmetrize_coordinates(const TinyVector<Dimension>& origin,
+                       const TinyVector<Dimension>& normal,
+                       const TinyVector<Dimension>& u)
+{
+  return u - 2 * dot(u - origin, normal) * normal;
+}
+
+#endif   // SYMMETRY_UTILS_HPP
diff --git a/src/scheme/PolynomialReconstruction.cpp b/src/scheme/PolynomialReconstruction.cpp
index 31230633..6073da9c 100644
--- a/src/scheme/PolynomialReconstruction.cpp
+++ b/src/scheme/PolynomialReconstruction.cpp
@@ -2,8 +2,8 @@
 
 #include <algebra/Givens.hpp>
 #include <algebra/ShrinkMatrixView.hpp>
-#include <algebra/ShrinkVectorView.hpp>
 #include <algebra/SmallMatrix.hpp>
+#include <geometry/SymmetryUtils.hpp>
 #include <mesh/MeshData.hpp>
 #include <mesh/MeshDataManager.hpp>
 #include <mesh/MeshFlatFaceBoundary.hpp>
@@ -18,31 +18,6 @@
 #include <scheme/reconstruction_utils/ElementIntegralReconstructionMatrixBuilder.hpp>
 #include <scheme/reconstruction_utils/MutableDiscreteFunctionDPkVariant.hpp>
 
-#warning put in a file in geometry
-template <size_t Dimension>
-PUGS_INLINE auto
-symmetrize_vector(const TinyVector<Dimension>& normal, const TinyVector<Dimension>& u)
-{
-  return u - 2 * dot(u, normal) * normal;
-}
-
-template <size_t Dimension>
-PUGS_INLINE auto
-symmetrize_matrix(const TinyVector<Dimension>& normal, const TinyMatrix<Dimension>& A)
-{
-  const TinyMatrix S = TinyMatrix<Dimension>{identity} - 2 * tensorProduct(normal, normal);
-  return S * A * S;
-}
-
-template <size_t Dimension>
-PUGS_INLINE auto
-symmetrize_coordinates(const TinyVector<Dimension>& origin,
-                       const TinyVector<Dimension>& normal,
-                       const TinyVector<Dimension>& u)
-{
-  return u - 2 * dot(u - origin, normal) * normal;
-}
-
 template <MeshConcept MeshType>
 class PolynomialReconstruction::Internal
 {
-- 
GitLab