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:01:36 -0400 (EDT)

branch: master
commit f7d20be3b26b80094c08d54007703e6006c75ee2
Author: Konstantinos Poulios <address@hidden>
AuthorDate: Mon Jan 6 12:40:35 2020 +0100

    Remove replaced assembly instruction class
---
 src/getfem_generic_assembly_compile_and_exec.cc | 90 +------------------------
 1 file changed, 3 insertions(+), 87 deletions(-)

diff --git a/src/getfem_generic_assembly_compile_and_exec.cc 
b/src/getfem_generic_assembly_compile_and_exec.cc
index 3bb6e25..35b8af0 100644
--- a/src/getfem_generic_assembly_compile_and_exec.cc
+++ b/src/getfem_generic_assembly_compile_and_exec.cc
@@ -4509,90 +4509,6 @@ namespace getfem {
     const size_type zero_=0;
   };
 
-  struct ga_instruction_matrix_assembly
-    : public ga_instruction_matrix_assembly_base
-  {
-    model_real_sparse_matrix &Kr, &Kn;
-    const gmm::sub_interval &Ir1, &Ir2, &In1, &In2;
-    const mesh_fem *mfn1, *mfn2, **mfg1, **mfg2;
-    const im_data *imd1, *imd2;
-    virtual int exec() {
-      GA_DEBUG_INFO("Instruction: matrix term assembly");
-
-      bool initialize = (ipt == 0) || interpolate || imd1 || imd2;
-      bool empty_weight = (coeff == scalar_type(0));
-      add_tensor_to_element_matrix(initialize, empty_weight); // t --> elem
-
-      if (ipt == nbpt-1 || interpolate || imd1 || imd2) { // finalize
-        const mesh_fem *pmf1 = mfg1 ? *mfg1 : mfn1;
-        const mesh_fem *pmf2 = mfg2 ? *mfg2 : mfn2;
-        bool reduced = (pmf1 && pmf1->is_reduced())
-          || (pmf2 && pmf2->is_reduced());
-        model_real_sparse_matrix &K = reduced ? Kr : Kn;
-        const gmm::sub_interval &I1 = reduced ? Ir1 : In1;
-        const gmm::sub_interval &I2 = reduced ? Ir2 : In2;
-        GA_DEBUG_ASSERT(I1.size() && I2.size(), "Internal error");
-
-        scalar_type ninf = gmm::vect_norminf(elem);
-        if (ninf == scalar_type(0)) return 0;
-
-        size_type s1 = t.sizes()[0], s2 = t.sizes()[1];
-        size_type cv1 = ctx1.convex_num(), cv2 = ctx2.convex_num();
-        size_type N = 1;
-
-        size_type ifirst1 = I1.first(), ifirst2 = I2.first();
-        if (imd1) ifirst1 +=  s1*imd1->filtered_index_of_point(cv1, ipt);
-        if (imd2) ifirst2 +=  s2*imd2->filtered_index_of_point(cv2, ipt);
-
-        if (pmf1) {
-          if (!ctx1.is_convex_num_valid()) return 0;
-          N = ctx1.N();
-          size_type qmult1 = pmf1->get_qdim();
-          if (qmult1 > 1) qmult1 /= pmf1->fem_of_element(cv1)->target_dim();
-          populate_dofs_vector(dofs1, s1, ifirst1, qmult1,        // --> dofs1
-                               pmf1->ind_scalar_basic_dof_of_element(cv1));
-        } else
-          populate_contiguous_dofs_vector(dofs1, s1, ifirst1); // --> dofs1
-
-        if (pmf1 == pmf2 && (pmf1 ? (cv1 == cv2) : (s1 == s2))) {
-          if (ifirst1 == ifirst2) {
-            add_elem_matrix(K, dofs1, dofs1, dofs1_sort, elem, ninf*1E-14, N);
-          } else {
-            populate_dofs_vector(dofs2, dofs1.size(), ifirst2 - ifirst1, 
dofs1);
-            add_elem_matrix(K, dofs1, dofs2, dofs1_sort, elem, ninf*1E-14, N);
-          }
-        } else {
-          if (pmf2) {
-            if (!ctx2.is_convex_num_valid()) return 0;
-            N = std::max(N, ctx2.N());
-            size_type qmult2 = pmf2->get_qdim();
-            if (qmult2 > 1) qmult2 /= pmf2->fem_of_element(cv2)->target_dim();
-            populate_dofs_vector(dofs2, s2, ifirst2, qmult2,        // --> 
dofs2
-                                 pmf2->ind_scalar_basic_dof_of_element(cv2));
-          } else
-            populate_contiguous_dofs_vector(dofs2, s2, ifirst2); // --> dofs2
-          add_elem_matrix(K, dofs1, dofs2, dofs1_sort, elem, ninf*1E-14, N);
-        }
-      }
-      return 0;
-    }
-    ga_instruction_matrix_assembly
-    (const base_tensor &t_,
-     model_real_sparse_matrix &Kr_, model_real_sparse_matrix &Kn_,
-     const fem_interpolation_context &ctx1_,
-     const fem_interpolation_context &ctx2_,
-     const gmm::sub_interval &Ir1_, const gmm::sub_interval &In1_,
-     const gmm::sub_interval &Ir2_, const gmm::sub_interval &In2_,
-     const mesh_fem *mfn1_, const mesh_fem **mfg1_, const im_data *imd1_,
-     const mesh_fem *mfn2_, const mesh_fem **mfg2_, const im_data *imd2_,
-     const scalar_type &a1, const scalar_type &a2, const scalar_type &coeff_,
-     const size_type &nbpt_, const size_type &ipt_, bool interpolate_)
-      : ga_instruction_matrix_assembly_base
-        (t_, ctx1_, ctx2_, a1, a2, coeff_, nbpt_, ipt_, interpolate_),
-        Kr(Kr_), Kn(Kn_), Ir1(Ir1_), Ir2(Ir2_), In1(In1_), In2(In2_),
-        mfn1(mfn1_), mfn2(mfn2_), mfg1(mfg1_), mfg2(mfg2_),
-        imd1(imd1_), imd2(imd2_) {}
-  };
 
   struct ga_instruction_matrix_assembly_mf_mf
     : public ga_instruction_matrix_assembly_base
@@ -7224,7 +7140,7 @@ namespace getfem {
                          : (secondary ? rmi.secondary_domain_infos.ctx
                                       : rmi.interpolate_infos[intn1].ctx);
                   bool interpolate =
-                    !(intn1.empty() || intn1 == "neighbor_elt"
+                    !(intn1.empty() || intn1 == "neighbor_element"
                                     || intn1 == "neighbour_elt" || secondary);
 
                   if (intn1.size() && !secondary &&
@@ -7286,10 +7202,10 @@ namespace getfem {
                   &ctx2 = intn2.empty() ? gis.ctx
                         : (secondary2 ? rmi.secondary_domain_infos.ctx
                                       : rmi.interpolate_infos[intn2].ctx);
-                bool interpolate = !(intn1.empty() || intn1 == "neighbor_elt"
+                bool interpolate = !(intn1.empty() || intn1 == 
"neighbor_element"
                                      || intn1 == "neighbour_elt"
                                      || secondary1) ||
-                                   !(intn2.empty() || intn2 == "neighbor_elt"
+                                   !(intn2.empty() || intn2 == 
"neighbor_element"
                                      || intn2 == "neighbour_elt"
                                      || secondary2);
 



reply via email to

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