getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] r4767 - in /trunk/getfem/src: getfem/getfem_models.h ge


From: andriy . andreykiv
Subject: [Getfem-commits] r4767 - in /trunk/getfem/src: getfem/getfem_models.h getfem_models.cc
Date: Thu, 02 Oct 2014 14:06:44 -0000

Author: andrico
Date: Thu Oct  2 16:06:43 2014
New Revision: 4767

URL: http://svn.gna.org/viewcvs/getfem?rev=4767&view=rev
Log:
fixing virtual_brick::check_stiffness_matrix_and_rhs by composing 
pre- main- and post- assembly functions in it

Modified:
    trunk/getfem/src/getfem/getfem_models.h
    trunk/getfem/src/getfem_models.cc

Modified: trunk/getfem/src/getfem/getfem_models.h
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem/getfem_models.h?rev=4767&r1=4766&r2=4767&view=diff
==============================================================================
--- trunk/getfem/src/getfem/getfem_models.h     (original)
+++ trunk/getfem/src/getfem/getfem_models.h     Thu Oct  2 16:06:43 2014
@@ -1562,7 +1562,16 @@
                                         model::real_veclist &,
                                         model::real_veclist &, size_type rg,
                                         const scalar_type delta = 1e-8) const;
-
+    private:
+      /**simultaneous call to real_pre_assembly, real_assembly and 
real_post_assembly*/
+      void full_asm_real_tangent_terms_(const model &, size_type,
+        const model::varnamelist &,
+        const model::varnamelist &,
+        const model::mimlist &,
+        model::real_matlist &,
+        model::real_veclist &,
+        model::real_veclist &,
+        size_type, build_version) const;
   };
 
   //=========================================================================

Modified: trunk/getfem/src/getfem_models.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_models.cc?rev=4767&r1=4766&r2=4767&view=diff
==============================================================================
--- trunk/getfem/src/getfem_models.cc   (original)
+++ trunk/getfem/src/getfem_models.cc   Thu Oct  2 16:06:43 2014
@@ -2581,13 +2581,22 @@
   }
 
 
-  // ----------------------------------------------------------------------
-  //
-  //
-  // Standard bricks
-  //
-  //
-  // ----------------------------------------------------------------------
+  void virtual_brick::full_asm_real_tangent_terms_(const model &md, size_type 
ind_brick,
+    const model::varnamelist &term_list,
+    const model::varnamelist &var_list,
+    const model::mimlist &mim_list,
+    model::real_matlist &rmatlist,
+    model::real_veclist &rveclist,
+    model::real_veclist &rveclist_sym,
+    size_type region, build_version version) const
+  {
+    real_pre_assembly_in_serial(md, ind_brick, term_list, var_list, mim_list, 
rmatlist,
+      rveclist, rveclist_sym, region, version);
+    asm_real_tangent_terms(md, ind_brick, term_list, var_list, mim_list, 
rmatlist,
+      rveclist, rveclist_sym, region, version);
+    real_post_assembly_in_serial(md, ind_brick, term_list, var_list, mim_list, 
rmatlist,
+      rveclist, rveclist_sym, region, version);
+  }
 
   void virtual_brick::check_stiffness_matrix_and_rhs
   (const model &md, size_type s,
@@ -2599,7 +2608,8 @@
    model::real_veclist &rvc1,
    model::real_veclist &rvc2, 
    size_type rg,
-   const scalar_type TINY) const {
+   const scalar_type TINY) const 
+  {
     std::cout<<"******Verifying stiffnesses of *******"<<std::endl;
     std::cout<<"*** "<<brick_name()<<std::endl;
     
@@ -2612,9 +2622,10 @@
       GMM_WARNING0("*** cannot verify stiffness for this brick***");
       return;
     }
-    asm_real_tangent_terms(md, s, vl, dl, mims, matl, rvc1, rvc2,
+    full_asm_real_tangent_terms_(md, s, vl, dl, mims, matl, rvc1, rvc2,
                            rg, model::BUILD_MATRIX);
-    for(size_type iterm=0;iterm<matl.size();iterm++){
+    for(size_type iterm=0;iterm<matl.size();iterm++)
+    {
       
       std::cout<<std::endl;
       std::cout<<"    Stiffness["<<tlist[iterm].var1
@@ -2632,7 +2643,7 @@
       
       model_real_sparse_matrix SM(matl[iterm]);
       gmm::fill(rvc1[rhs_index[tlist[iterm].var1]], 0.0);
-      asm_real_tangent_terms(md, s, vl, dl, mims, matl, rvc1, rvc2,
+      full_asm_real_tangent_terms_(md, s, vl, dl, mims, matl, rvc1, rvc2,
                              rg, model::BUILD_RHS);
       if (gmm::mat_euclidean_norm(matl[iterm])<1e-12){
         std::cout<<"    The assembled matrix is nearly zero, 
skipping."<<std::endl;
@@ -2651,7 +2662,7 @@
       for (size_type j = 0; j < matl[iterm].ncols(); j++){
         U[j] += relative_tiny;
         gmm::fill(RHS1, 0.0);
-        asm_real_tangent_terms(md, s, vl, dl, mims, matl, rvc1, rvc2,
+        full_asm_real_tangent_terms_(md, s, vl, dl, mims, matl, rvc1, rvc2,
           rg, model::BUILD_RHS);
         for (size_type i = 0; i<matl[iterm].nrows(); i++)
           fdSM(i, j) = (RHS0[i] - RHS1[i]) / relative_tiny;
@@ -2724,6 +2735,14 @@
       }
     }
   }
+
+  // ----------------------------------------------------------------------
+  //
+  //
+  // Standard bricks
+  //
+  //
+  // ----------------------------------------------------------------------
 
 
   // ----------------------------------------------------------------------




reply via email to

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