getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] (no subject)


From: Konstantinos Poulios
Subject: [Getfem-commits] (no subject)
Date: Fri, 3 Apr 2020 19:56:05 -0400 (EDT)

branch: master
commit 1765106029a5aa40aa84435ebd151d460d294a6a
Author: Konstantinos Poulios <address@hidden>
AuthorDate: Wed Jan 29 08:57:05 2020 +0100

    Fix wrong scaling of coupling matrix in internal variable condensation
---
 src/getfem_generic_assembly_compile_and_exec.cc | 29 +++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/src/getfem_generic_assembly_compile_and_exec.cc 
b/src/getfem_generic_assembly_compile_and_exec.cc
index 2b67876..6a21e28 100644
--- a/src/getfem_generic_assembly_compile_and_exec.cc
+++ b/src/getfem_generic_assembly_compile_and_exec.cc
@@ -4534,6 +4534,7 @@ namespace getfem {
   protected:
     const bool false_=false;
     const size_type zero_=0;
+    const scalar_type one_=1;
   };
 
 
@@ -4714,6 +4715,18 @@ namespace getfem {
         (t_, ctx1_, ctx2_, a1, a2, coeff_, zero_, ipt_, false),
         Kxr(K_), Kxu(K_), I1(&I1_), I2__(&I2_), I2(I2__),
         imd1(imd1_), mf2__(&mf2_), mf2(mf2__), reduced_mf2(false_) {}
+
+    ga_instruction_matrix_assembly_imd_mf // constructor without coeff (== 1)
+    (const base_tensor &t_, model_real_sparse_matrix &K_,
+     const fem_interpolation_context &ctx1_,
+     const fem_interpolation_context &ctx2_,
+     const gmm::sub_interval &I1_, const im_data *imd1_, const scalar_type &a1,
+     const gmm::sub_interval &I2_, const mesh_fem &mf2_, const scalar_type &a2,
+     const size_type &ipt_)
+      : ga_instruction_matrix_assembly_base
+        (t_, ctx1_, ctx2_, a1, a2, one_, zero_, ipt_, false),
+        Kxr(K_), Kxu(K_), I1(&I1_), I2__(&I2_), I2(I2__),
+        imd1(imd1_), mf2__(&mf2_), mf2(mf2__), reduced_mf2(false_) {}
   };
 
   struct ga_instruction_matrix_assembly_mf_imd
@@ -4816,6 +4829,17 @@ namespace getfem {
       : ga_instruction_matrix_assembly_base
         (t_, ctx1_, ctx2_, a1, a2, coeff_, zero_, ipt_, false),
         K(K_), I1(I1_), I2(I2_), imd1(imd1_), imd2(imd2_) {}
+
+    ga_instruction_matrix_assembly_imd_imd // constructor without coeff (== 1)
+    (const base_tensor &t_, model_real_sparse_matrix &K_,
+     const fem_interpolation_context &ctx1_,
+     const fem_interpolation_context &ctx2_,
+     const gmm::sub_interval &I1_, const im_data *imd1_, const scalar_type &a1,
+     const gmm::sub_interval &I2_, const im_data *imd2_, const scalar_type &a2,
+     const size_type &ipt_)
+      : ga_instruction_matrix_assembly_base
+        (t_, ctx1_, ctx2_, a1, a2, one_, zero_, ipt_, false),
+        K(K_), I1(I1_), I2(I2_), imd1(imd1_), imd2(imd2_) {}
   };
 
 
@@ -7984,12 +8008,13 @@ namespace getfem {
                   pgai =
                     std::make_shared<ga_instruction_matrix_assembly_imd_mf>
                     (Kq1j2pr, KQJpr, gis.ctx, gis.ctx,
-                     I1, imd1, alpha1, I2, *mf2, alpha2, gis.coeff, gis.ipt); 
// TODO: name_test2 variable group
+                     I1, imd1, alpha1, I2, *mf2, alpha2, gis.ipt); // 
constructor without gis.coeff
+                    // TODO: name_test2 variable group
                 else // for global variable imd2 == 0
                   pgai =
                     std::make_shared<ga_instruction_matrix_assembly_imd_imd>
                     (Kq1j2pr, KQJpr, gis.ctx, gis.ctx,
-                     I1, imd1, alpha1, I2, imd2, alpha2, gis.coeff, gis.ipt);
+                     I1, imd1, alpha1, I2, imd2, alpha2, gis.ipt); // 
constructor without gis.coeff
                 rmi.instructions.push_back(std::move(pgai));
               }
               const bool initialize = true;



reply via email to

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