From: Jan Philipp Thiele <thiele@wias-berlin.de>
Date: Sat, 10 Feb 2024 14:59:58 +0000 (+0100)
Subject: Add norm_sqr() function to TpetraVector
X-Git-Tag: relicensing~54^2~1
X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c536cfdbb093b8cc1f7221dccbcf90b4dc1b19f;p=dealii.git

Add norm_sqr() function to TpetraVector
---

diff --git a/include/deal.II/lac/trilinos_tpetra_vector.h b/include/deal.II/lac/trilinos_tpetra_vector.h
index d124158394..f84325aa87 100644
--- a/include/deal.II/lac/trilinos_tpetra_vector.h
+++ b/include/deal.II/lac/trilinos_tpetra_vector.h
@@ -657,6 +657,16 @@ namespace LinearAlgebra
       real_type
       linfty_norm() const;
 
+      /**
+       * Return the square of the l<sub>2</sub>-norm.
+       */
+      real_type
+      norm_sqr() const;
+
+      /**
+       *
+       *
+       */
       /**
        * Performs a combined operation of a vector addition and a subsequent
        * inner product, returning the value of the inner product. In other
diff --git a/include/deal.II/lac/trilinos_tpetra_vector.templates.h b/include/deal.II/lac/trilinos_tpetra_vector.templates.h
index eed13a0575..b40eadef01 100644
--- a/include/deal.II/lac/trilinos_tpetra_vector.templates.h
+++ b/include/deal.II/lac/trilinos_tpetra_vector.templates.h
@@ -874,6 +874,15 @@ namespace LinearAlgebra
 
 
 
+    template <typename Number, typename MemorySpace>
+    typename Vector<Number, MemorySpace>::real_type
+    Vector<Number, MemorySpace>::norm_sqr() const
+    {
+      Vector<Number, MemorySpace>::real_type d = l2_norm();
+      return d * d;
+    }
+
+
     template <typename Number, typename MemorySpace>
     Number
     Vector<Number, MemorySpace>::add_and_dot(