[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());
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r5019 - in /trunk/getfem/src: getfem/bgeot_tensor.h getfem_generic_assembly.cc,
Yves . Renard <=