getfem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-commits] (no subject)


From: Yves Renard
Subject: [Getfem-commits] (no subject)
Date: Sat, 22 Sep 2018 10:09:35 -0400 (EDT)

branch: master
commit 0dbd1586169cdc25d6ca217f683e36e0c19f3826
Author: Yves Renard <address@hidden>
Date:   Sat Sep 22 16:09:24 2018 +0200

    bug fix in second derivative of Det()
---
 ...etfem_generic_assembly_functions_and_operators.cc | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/getfem_generic_assembly_functions_and_operators.cc 
b/src/getfem_generic_assembly_functions_and_operators.cc
index 201eee5..0c73844 100644
--- a/src/getfem_generic_assembly_functions_and_operators.cc
+++ b/src/getfem_generic_assembly_functions_and_operators.cc
@@ -308,21 +308,23 @@ namespace getfem {
         gmm::clear(result.as_vector());
       else {
         auto it = result.begin();
-        auto ita = __mat_aux1().begin(), ita_l = ita;
-        for (size_type l = 0; l < N; ++l, ++ita_l) {
-          auto ita_lk = ita_l, ita_jk = ita;
-          for (size_type k = 0; k < N; ++k, ita_lk += N, ita_jk += N) {
-            auto ita_j = ita;
-            for (size_type j = 0; j < N; ++j, ++ita_j, ++ita_jk) {
-              auto ita_ji = ita_j, ita_li = ita_l;
-              for (size_type i = 0; i < N; ++i, ++it, ita_ji += N, ita_li += N)
-                *it = ((*ita_ji) * (*ita_lk) - (*ita_jk) * (*ita_li)) * det;
+        auto ita = __mat_aux1().begin(), ita_l = ita, ita_0l = ita;
+        for (size_type l = 0; l < N; ++l, ++ita_l, ita_0l += N) {
+          auto ita_lk = ita_l;
+          for (size_type k = 0; k < N; ++k, ita_lk += N) {
+            auto ita_j = ita, ita_kj = ita + k;
+            for (size_type j = 0; j < N; ++j, ++ita_j, ita_kj += N) {
+              auto ita_ji = ita_j, ita_il = ita_0l;
+              for (size_type i = 0; i < N; ++i, ++it, ita_ji += N, ita_il++)
+                *it = ((*ita_ji) * (*ita_lk) - (*ita_kj) * (*ita_il)) * det;
             }
           }
         }
         GA_DEBUG_ASSERT(it == result.end(), "Internal error");
       }
     }
+
+    
   };
 
   // Inverse Operator (for square matrices)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]