diff --git a/src/mesh/MeshFaceBoundary.hpp b/src/mesh/MeshFaceBoundary.hpp
index afd409d939b038009944a98ce57bfd38b89fda4d..a45108aa5893c798230f41e14a8cacb071c60c0b 100644
--- a/src/mesh/MeshFaceBoundary.hpp
+++ b/src/mesh/MeshFaceBoundary.hpp
@@ -3,7 +3,6 @@
 
 #include <algebra/TinyVector.hpp>
 #include <mesh/IBoundaryDescriptor.hpp>
-#include <mesh/ItemValue.hpp>
 #include <mesh/RefItemList.hpp>
 #include <utils/Array.hpp>
 
@@ -14,14 +13,14 @@ template <typename ConnectivityType>
 class Mesh;
 
 template <size_t Dimension>
-class MeshFaceBoundary   // clazy:exclude=copyable-polymorphic
+class [[nodiscard]] MeshFaceBoundary   // clazy:exclude=copyable-polymorphic
 {
  protected:
   Array<const FaceId> m_face_list;
   std::string m_boundary_name;
 
-  std::array<TinyVector<Dimension>, Dimension*(Dimension - 1)> _getBounds(
-    const Mesh<Connectivity<Dimension>>& mesh) const;
+  std::array<TinyVector<Dimension>, Dimension*(Dimension - 1)> _getBounds(const Mesh<Connectivity<Dimension>>& mesh)
+    const;
 
  public:
   template <size_t MeshDimension>
@@ -31,8 +30,7 @@ class MeshFaceBoundary   // clazy:exclude=copyable-polymorphic
   MeshFaceBoundary& operator=(const MeshFaceBoundary&) = default;
   MeshFaceBoundary& operator=(MeshFaceBoundary&&) = default;
 
-  const Array<const FaceId>&
-  faceList() const
+  const Array<const FaceId>& faceList() const
   {
     return m_face_list;
   }
@@ -42,7 +40,7 @@ class MeshFaceBoundary   // clazy:exclude=copyable-polymorphic
 
  public:
   MeshFaceBoundary(const MeshFaceBoundary&) = default;
-  MeshFaceBoundary(MeshFaceBoundary&&)      = default;
+  MeshFaceBoundary(MeshFaceBoundary &&)     = default;
 
   MeshFaceBoundary()          = default;
   virtual ~MeshFaceBoundary() = default;
diff --git a/src/mesh/MeshFlatNodeBoundary.hpp b/src/mesh/MeshFlatNodeBoundary.hpp
index 334cf03aac844670c084b8385ebbb00d1cc9507d..8486f02c7377fe2987560d29f2ee7cc45c1b44cf 100644
--- a/src/mesh/MeshFlatNodeBoundary.hpp
+++ b/src/mesh/MeshFlatNodeBoundary.hpp
@@ -4,7 +4,8 @@
 #include <mesh/MeshNodeBoundary.hpp>
 
 template <size_t Dimension>
-class MeshFlatNodeBoundary final : public MeshNodeBoundary<Dimension>   // clazy:exclude=copyable-polymorphic
+class [[nodiscard]] MeshFlatNodeBoundary final
+  : public MeshNodeBoundary<Dimension>   // clazy:exclude=copyable-polymorphic
 {
  public:
   using Rd = TinyVector<Dimension, double>;
@@ -14,16 +15,13 @@ class MeshFlatNodeBoundary final : public MeshNodeBoundary<Dimension>   // clazy
 
   Rd _getNormal(const Mesh<Connectivity<Dimension>>& mesh);
 
-  void _checkBoundaryIsFlat(const TinyVector<Dimension, double>& normal,
-                            const TinyVector<Dimension, double>& origin,
-                            const double length,
-                            const Mesh<Connectivity<Dimension>>& mesh) const;
+  void _checkBoundaryIsFlat(const TinyVector<Dimension, double>& normal, const TinyVector<Dimension, double>& origin,
+                            const double length, const Mesh<Connectivity<Dimension>>& mesh) const;
 
   Rd _getOutgoingNormal(const Mesh<Connectivity<Dimension>>& mesh);
 
  public:
-  const Rd&
-  outgoingNormal() const
+  const Rd& outgoingNormal() const
   {
     return m_outgoing_normal;
   }
@@ -49,7 +47,7 @@ class MeshFlatNodeBoundary final : public MeshNodeBoundary<Dimension>   // clazy
  public:
   MeshFlatNodeBoundary()                            = default;
   MeshFlatNodeBoundary(const MeshFlatNodeBoundary&) = default;
-  MeshFlatNodeBoundary(MeshFlatNodeBoundary&&)      = default;
+  MeshFlatNodeBoundary(MeshFlatNodeBoundary &&)     = default;
   ~MeshFlatNodeBoundary()                           = default;
 };
 
diff --git a/src/mesh/MeshLineNodeBoundary.hpp b/src/mesh/MeshLineNodeBoundary.hpp
index 0ae35d058d3b749453463bd347edb3f69c2a109e..8694dd257247eb5aeaf2224d113a34c9c4c8fa32 100644
--- a/src/mesh/MeshLineNodeBoundary.hpp
+++ b/src/mesh/MeshLineNodeBoundary.hpp
@@ -5,7 +5,8 @@
 #include <mesh/MeshNodeBoundary.hpp>
 
 template <size_t Dimension>
-class MeshLineNodeBoundary final : public MeshNodeBoundary<Dimension>   // clazy:exclude=copyable-polymorphic
+class [[nodiscard]] MeshLineNodeBoundary final
+  : public MeshNodeBoundary<Dimension>   // clazy:exclude=copyable-polymorphic
 {
  public:
   using Rd = TinyVector<Dimension, double>;
@@ -16,10 +17,8 @@ class MeshLineNodeBoundary final : public MeshNodeBoundary<Dimension>   // clazy
   template <size_t MeshDimension>
   TinyVector<MeshDimension> _getDirection(const Mesh<Connectivity<MeshDimension>>&);
 
-  void _checkBoundaryIsLine(const TinyVector<Dimension, double>& direction,
-                            const TinyVector<Dimension, double>& origin,
-                            const double length,
-                            const Mesh<Connectivity<Dimension>>& mesh) const;
+  void _checkBoundaryIsLine(const TinyVector<Dimension, double>& direction, const TinyVector<Dimension, double>& origin,
+                            const double length, const Mesh<Connectivity<Dimension>>& mesh) const;
 
  public:
   template <size_t MeshDimension>
@@ -27,8 +26,7 @@ class MeshLineNodeBoundary final : public MeshNodeBoundary<Dimension>   // clazy
                                                                      const IBoundaryDescriptor& boundary_descriptor);
 
   PUGS_INLINE
-  const Rd&
-  direction() const
+  const Rd& direction() const
   {
     return m_direction;
   }
@@ -39,9 +37,7 @@ class MeshLineNodeBoundary final : public MeshNodeBoundary<Dimension>   // clazy
  private:
   MeshLineNodeBoundary(const Mesh<Connectivity<Dimension>>& mesh, const RefEdgeList& ref_edge_list)
     : MeshNodeBoundary<Dimension>(mesh, ref_edge_list), m_direction(_getDirection(mesh))
-  {
-    ;
-  }
+  {}
 
   MeshLineNodeBoundary(const Mesh<Connectivity<Dimension>>& mesh, const RefFaceList& ref_face_list)
     : MeshNodeBoundary<Dimension>(mesh, ref_face_list), m_direction(_getDirection(mesh))
@@ -54,7 +50,7 @@ class MeshLineNodeBoundary final : public MeshNodeBoundary<Dimension>   // clazy
  public:
   MeshLineNodeBoundary()                            = default;
   MeshLineNodeBoundary(const MeshLineNodeBoundary&) = default;
-  MeshLineNodeBoundary(MeshLineNodeBoundary&&)      = default;
+  MeshLineNodeBoundary(MeshLineNodeBoundary &&)     = default;
   ~MeshLineNodeBoundary()                           = default;
 };
 
diff --git a/src/mesh/MeshNodeBoundary.hpp b/src/mesh/MeshNodeBoundary.hpp
index 883a9d975682b55e0cad75c191e7f2be14e59190..0422118ffc14abbc85030d4d56ca2f2da29eadb9 100644
--- a/src/mesh/MeshNodeBoundary.hpp
+++ b/src/mesh/MeshNodeBoundary.hpp
@@ -3,7 +3,6 @@
 
 #include <algebra/TinyVector.hpp>
 #include <mesh/IBoundaryDescriptor.hpp>
-#include <mesh/ItemValue.hpp>
 #include <mesh/RefItemList.hpp>
 #include <utils/Array.hpp>
 
@@ -14,14 +13,14 @@ template <typename ConnectivityType>
 class Mesh;
 
 template <size_t Dimension>
-class MeshNodeBoundary   // clazy:exclude=copyable-polymorphic
+class [[nodiscard]] MeshNodeBoundary   // clazy:exclude=copyable-polymorphic
 {
  protected:
   Array<const NodeId> m_node_list;
   std::string m_boundary_name;
 
-  std::array<TinyVector<Dimension>, Dimension*(Dimension - 1)> _getBounds(
-    const Mesh<Connectivity<Dimension>>& mesh) const;
+  std::array<TinyVector<Dimension>, Dimension*(Dimension - 1)> _getBounds(const Mesh<Connectivity<Dimension>>& mesh)
+    const;
 
  public:
   template <size_t MeshDimension>
@@ -31,8 +30,7 @@ class MeshNodeBoundary   // clazy:exclude=copyable-polymorphic
   MeshNodeBoundary& operator=(const MeshNodeBoundary&) = default;
   MeshNodeBoundary& operator=(MeshNodeBoundary&&) = default;
 
-  const Array<const NodeId>&
-  nodeList() const
+  const Array<const NodeId>& nodeList() const
   {
     return m_node_list;
   }
@@ -44,7 +42,7 @@ class MeshNodeBoundary   // clazy:exclude=copyable-polymorphic
 
  public:
   MeshNodeBoundary(const MeshNodeBoundary&) = default;
-  MeshNodeBoundary(MeshNodeBoundary&&)      = default;
+  MeshNodeBoundary(MeshNodeBoundary &&)     = default;
 
   MeshNodeBoundary()          = default;
   virtual ~MeshNodeBoundary() = default;