getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] r5019 - in /trunk/getfem/src: getfem/bgeot_tensor.h get


From: Yves . Renard
Subject: [Getfem-commits] r5019 - in /trunk/getfem/src: getfem/bgeot_tensor.h getfem_generic_assembly.cc
Date: Sat, 30 May 2015 11:42:09 -0000

Author: renard
Date: Sat May 30 13:42:08 2015
New Revision: 5019

URL: http://svn.gna.org/viewcvs/getfem?rev=5019&view=rev
Log:
minor change

Modified:
    trunk/getfem/src/getfem/bgeot_tensor.h
    trunk/getfem/src/getfem_generic_assembly.cc

Modified: trunk/getfem/src/getfem/bgeot_tensor.h
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem/bgeot_tensor.h?rev=5019&r1=5018&r2=5019&view=diff
==============================================================================
--- trunk/getfem/src/getfem/bgeot_tensor.h      (original)
+++ trunk/getfem/src/getfem/bgeot_tensor.h      Sat May 30 13:42:08 2015
@@ -202,6 +202,13 @@
       this->resize(d);
     }
 
+    void init() { sizes_.resize(0);  coeff.resize(0); this->resize(1); }
+
+    void init(size_type i) {
+      sizes_.resize(1); sizes_[0] = i; coeff.resize(1); coeff[0] = 1;
+      this->resize(i);
+    }
+
     void init(size_type i, size_type j) {
       sizes_.resize(2); sizes_[0] = i; sizes_[1] = j;
       coeff.resize(2); coeff[0] = 1; coeff[1] = i;
@@ -213,6 +220,11 @@
           || !(std::equal(mi.begin(), mi.end(), sizes().begin())))
         init(mi);
     }
+
+    void adjust_sizes(void) { if (sizes_.size() || this->size() != 1) init(); }
+
+    void adjust_sizes(size_type i)
+    { if (sizes_.size() != 1 || sizes_[0] != i) init(i); }
 
     void adjust_sizes(size_type i, size_type j)
     { if (sizes_.size() != 2 || sizes_[0] != i || sizes_[1] != j) init(i, j); }

Modified: trunk/getfem/src/getfem_generic_assembly.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_generic_assembly.cc?rev=5019&r1=5018&r2=5019&view=diff
==============================================================================
--- trunk/getfem/src/getfem_generic_assembly.cc (original)
+++ trunk/getfem/src/getfem_generic_assembly.cc Sat May 30 13:42:08 2015
@@ -55,6 +55,15 @@
 #define GA_DEBUG_ASSERT(a, b) GMM_ASSERT1(a, b)
 // #define GA_DEBUG_ASSERT(a, b)
 
+#if 1
+  #define GA_TIC 
+  #define GA_TOC(a) 
+  #define GA_TOCTIC(a)
+#else 
+  #define GA_TIC scalar_type _ga_time_ = gmm::uclock_sec();
+  #define GA_TOC(a) { cout << (a) << " : " << gmm::uclock_sec() - _ga_time_ << 
endl; }
+  #define GA_TOCTIC(a) { GA_TOC(a); _ga_time_ = gmm::uclock_sec(); }
+#endif
 
 namespace getfem {
 
@@ -415,20 +424,15 @@
       return true;
     }
 
-    void init_scalar_tensor(scalar_type v) {
-      t.adjust_sizes(bgeot::multi_index());
-      t[0] = v;
-      test_function_type = 0;
-    }
-    void init_vector_tensor(size_type d) {
-      bgeot::multi_index mi(1);
-      mi[0]=d; t.adjust_sizes(mi);
-      test_function_type = 0;
-    }
-    void init_matrix_tensor(size_type n, size_type m) {
-      t.adjust_sizes(bgeot::multi_index(n,m));
-      test_function_type = 0;
-    }
+    void init_scalar_tensor(scalar_type v)
+    { t.adjust_sizes(); t[0] = v; test_function_type = 0; }
+
+    void init_vector_tensor(size_type d)
+    { t.adjust_sizes(d); test_function_type = 0; }
+
+    void init_matrix_tensor(size_type n, size_type m)
+    { t.adjust_sizes(n, m); test_function_type = 0; }
+
     void init_third_order_tensor(size_type n, size_type m,  size_type l) {
       t.adjust_sizes(bgeot::multi_index(n,m,l));
       test_function_type = 0;
@@ -4685,13 +4689,13 @@
             ga_tree dtree = (remain ? tree : *(trees[ind_tree].ptree));
             // cout << "Derivation with respect to " << it->first << " : "
             //     << it->second << " of " << ga_tree_to_string(dtree) << endl;
-            // scalar_type time = gmm::uclock_sec();
+            GA_TIC;
             ga_derivative(dtree, *this, m, it->first, it->second, 1+order);
             // cout << "Result : " << ga_tree_to_string(dtree) << endl;
-            // cout << "Derivative time " << gmm::uclock_sec()-time << endl;
+            GA_TOCTIC("Derivative time");
             ga_semantic_analysis(expr, dtree, *this, m.dim(),
                                  ref_elt_dim_of_mesh(m), false, function_expr);
-            // cout << "Analysis after Derivative time " << 
gmm::uclock_sec()-time << endl;
+            GA_TOCTIC("Analysis after Derivative time");
             // cout << "after analysis "  << ga_tree_to_string(dtree) << endl;
             add_tree(dtree, m, mim, rg, expr, add_derivative_order,
                      function_expr);
@@ -4748,7 +4752,7 @@
                                          size_type add_derivative_order) {
     const mesh_region &rg = register_region(mim.linked_mesh(), rg_);
     // cout << "adding expression " << expr << endl;
-    // scalar_type time = gmm::uclock_sec();
+    GA_TIC;
     size_type max_order = 0;
     ga_tree tree;
     // cout << "read string" << endl;
@@ -4757,7 +4761,7 @@
     //     << endl << "first semantic analysis" << endl;
     ga_semantic_analysis(expr, tree, *this, mim.linked_mesh().dim(),
                          ref_elt_dim_of_mesh(mim.linked_mesh()), false, false);
-    // cout << "First analysis time : " << gmm::uclock_sec()-time << endl;
+    GA_TOC("First analysis time");
 
     // cout << "first semantic analysis done" << endl;
     if (tree.root) {
@@ -4783,7 +4787,7 @@
       clear_aux_trees();
     }
     // cout << "end adding expression " << endl;
-    // cout << "Time for add expression " << gmm::uclock_sec()-time << endl;
+    GA_TOC("Time for add expression");
     return max_order;
   }
 
@@ -4957,13 +4961,11 @@
 
   void ga_workspace::assembly(size_type order) {
 
-    // scalar_type time = gmm::uclock_sec();
-
+    GA_TIC;
     ga_instruction_set gis;
     ga_compile(*this, gis, order);
     size_type ndof = gis.nb_dof, max_dof =  gis.max_dof;
-    // cout << "Compile time " << gmm::uclock_sec()-time << endl;
-    // time = gmm::uclock_sec();
+    GA_TOCTIC("Compile time");
 
     if (order == 2) {
       K.resize(max_dof);
@@ -4974,12 +4976,10 @@
       gmm::clear(unreduced_V); gmm::resize(unreduced_V, ndof);
     }
     E = 0;
-    // cout << "Init time " << gmm::uclock_sec()-time << endl;
-    // time = gmm::uclock_sec();
-
+    GA_TOCTIC("Init time");
 
     ga_exec(gis, *this);
-    // cout << "Exec time " << gmm::uclock_sec()-time << endl;
+    GA_TOCTIC("Exec time");
 
     if (order == 1) {
       MPI_SUM_VECTOR(assembled_vector());




reply via email to

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