getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] (no subject)


From: Yves Renard
Subject: [Getfem-commits] (no subject)
Date: Thu, 10 May 2018 03:20:44 -0400 (EDT)

branch: devel-yves-generic-assembly-modifs
commit 1b14a1d97b49d95c7b8a82f7360848f63526a44b
Author: Yves Renard <address@hidden>
Date:   Wed May 9 09:12:03 2018 +0200

    making [1,2,3] and [1;2;3] equivalents
---
 interface/tests/python/check_asm.py     |  2 +-
 src/getfem_generic_assembly_semantic.cc | 48 +++++----------------------------
 src/getfem_generic_assembly_tree.cc     |  6 ++---
 3 files changed, 11 insertions(+), 45 deletions(-)

diff --git a/interface/tests/python/check_asm.py 
b/interface/tests/python/check_asm.py
index d3f7c1f..4c88cea 100644
--- a/interface/tests/python/check_asm.py
+++ b/interface/tests/python/check_asm.py
@@ -141,7 +141,7 @@ if (res !=
 print 'Assembly string "Grad(Grad_w./Grad_w)" gives:'
 res = gf.asm('expression analysis', "Grad(Grad_w./Grad_w)",  mim, 0, md)
 if (res !=
-    "((Hess_w./(address@hidden;1]))-(((Grad_w./sqr(Grad_w))@[1;1]).*Hess_w))"):
+    "((Hess_w./(address@hidden,1]))-(((Grad_w./sqr(Grad_w))@[1,1]).*Hess_w))"):
   print "Bad gradient"; exit(1)
   
 print 'Assembly string "Grad(Grad_w/u)" gives:'
diff --git a/src/getfem_generic_assembly_semantic.cc 
b/src/getfem_generic_assembly_semantic.cc
index 9c6f154..474a6a8 100644
--- a/src/getfem_generic_assembly_semantic.cc
+++ b/src/getfem_generic_assembly_semantic.cc
@@ -282,11 +282,6 @@ namespace getfem {
     size_type dim0 = child0 ? child0->tensor_order() : 0;
     size_type dim1 = child1 ? child1->tensor_order() : 0;
 
-    // cout << "child1 = " << child1 << endl;
-    // cout << "child0 = " << child0 << endl;
-    // cout << "nbch = " << nbch << endl;
-    // cout<<"begin analysis of node "; ga_print_node(pnode, cout); cout<<endl;
-
     const ga_predef_function_tab &PREDEF_FUNCTIONS
       = dal::singleton<ga_predef_function_tab>::instance(0);
     const ga_predef_operator_tab &PREDEF_OPERATORS
@@ -1342,12 +1337,9 @@ namespace getfem {
 
     case GA_NODE_C_MATRIX:
       {
-        if (!all_sc) {
-          ga_throw_error(pnode->expr, pnode->pos,
-                        "Constant vector/matrix/tensor "
-                         "components should be scalar valued.");
-        }
-
+       if (!all_sc) ga_throw_error(pnode->expr, pnode->pos,
+                                   "Constant vector/matrix/tensor "
+                                   "components should be scalar valued.");
        GMM_ASSERT1(pnode->children.size() == pnode->tensor_proper_size(),
                    "Internal error");
 
@@ -1387,18 +1379,9 @@ namespace getfem {
          for (int i = int(mi.size()-1); i >= to_add; --i)
            mi[i] = mi[i-to_add];
          for (int i = 0; i < to_add; ++i) mi[i] = 2;
-
-       }
-       
-       if (pnode->nb_test_functions()) {
-         
-         
-         
          pnode->tensor().adjust_sizes(mi);
-         // test pour savoir si c'est bon et sinon, ajout de 1 ou deux ...
-         // comment savoir, en fait ??
-         
        }
+       
        if (all_cte) {
          bool all_zero = true;
          for (size_type i = 0; i < pnode->children.size(); ++i) {
@@ -1706,12 +1689,10 @@ namespace getfem {
          if (pnode->children.size() != 2)
            ga_throw_error(pnode->expr, child0->pos,
                           "Bad number of parameters for Grad operator");
-         // cout << "Will compute gradient of expression "; 
ga_print_node(child1, cout); cout << endl;
          if (ga_node_mark_tree_for_grad(child1)) {
            ga_node_grad(tree, workspace, me, child1);
-           ga_node_analysis(tree, workspace, pnode->children[1], me, 
ref_elt_dim,
-                            eval_fixed_size, ignore_X, option);
-           // cout << "Result: "; ga_print_node(pnode->children[1], cout); 
cout << endl;
+           ga_node_analysis(tree, workspace, pnode->children[1], me,
+                            ref_elt_dim, eval_fixed_size, ignore_X, option);
            child1 = pnode->children[1];
          } else {
            mi = child1->t.sizes(); mi.push_back(2);
@@ -2413,7 +2394,6 @@ namespace getfem {
                 predef_operators_contact_initialized, "Internal error");
     if (!(tree.root)) return;
     if (option == 1) { workspace.test1.clear(); workspace.test2.clear(); }
-    // cout << "semantic analysis of " << ga_tree_to_string(tree) << endl;
     ga_node_analysis(tree, workspace, tree.root, m, ref_elt_dim,
                      eval_fixed_size, ignore_X, option);
     if (tree.root && option == 2) {
@@ -2428,7 +2408,6 @@ namespace getfem {
             (workspace.selected_test2.transname))))
         tree.clear();
     }
-    // cout << "semantic analysis done " << endl;
     ga_valid_operand(tree.root);
   }
 
@@ -2818,10 +2797,6 @@ namespace getfem {
       } else ok = false;
     }
 
-    // cout << "analyzing factor : " <<  ga_tree_to_string(factor) << endl;
-    // cout << "ok = " << int(ok) << endl;
-    // cout << "colon_pnode = " << colon_pnode << endl;
-
     if (ok && cas == 0 && !colon_pnode) ok = false;
 
     if (N == 1) {
@@ -3298,7 +3273,7 @@ namespace getfem {
       }
       break;
 
-    case GA_NODE_C_MATRIX:
+    case GA_NODE_C_MATRIX:      
       for (size_type i = 0; i < pnode->children.size(); ++i) {
         if (pnode->children[i]->marked)
           ga_node_derivation(tree, workspace, m, pnode->children[i],
@@ -3309,10 +3284,6 @@ namespace getfem {
           tree.clear_children(pnode->children[i]);
         }
       }
-      // cout << "After : "; ga_print_node(pnode, cout); cout << endl;
-      // cout << "After : "; ga_print_node(pnode->parent, cout); cout << endl;
-      // ga_node_analysis(tree, workspace, pnode, m, 1, true, false, 1); 
-      // cout << "After : "; ga_print_node(pnode->parent, cout); cout << endl;
       break;
 
     case GA_NODE_PARAMS:
@@ -3561,8 +3532,6 @@ namespace getfem {
   void ga_derivative(ga_tree &tree, const ga_workspace &workspace,
                     const mesh &m, const std::string &varname,
                     const std::string &interpolatename, size_type order) {
-    // cout << "compute derivative of " << ga_tree_to_string(tree)
-    //  << " with respect to " << varname << " : " << interpolatename << endl;
     if (!(tree.root)) return;
     if (ga_node_mark_tree_for_variable(tree.root, workspace, m, varname,
                                        interpolatename))
@@ -3570,7 +3539,6 @@ namespace getfem {
                          interpolatename, order);
     else
       tree.clear();
-    // cout << "derived tree : " << ga_tree_to_string(tree) << endl;
   }
 
   //=========================================================================
@@ -4500,13 +4468,11 @@ namespace getfem {
   // The tree is modified. Should be copied first and passed to
   // ga_semantic_analysis after for enrichment
   void ga_grad(ga_tree &tree, const ga_workspace &workspace, const mesh &m) {
-    // cout << "compute gradient of " << ga_tree_to_string(tree) << endl;
     if (!(tree.root)) return;
     if (ga_node_mark_tree_for_grad(tree.root))
       ga_node_grad(tree, workspace, m, tree.root);
     else
       tree.clear();
-    // cout << "gradient tree : " << ga_tree_to_string(tree) << endl;
   }
 
 
diff --git a/src/getfem_generic_assembly_tree.cc 
b/src/getfem_generic_assembly_tree.cc
index 71a7eac..0e5e81d 100644
--- a/src/getfem_generic_assembly_tree.cc
+++ b/src/getfem_generic_assembly_tree.cc
@@ -645,7 +645,7 @@ namespace getfem {
     case 1:
       str << "[";
       for (size_type i = 0; i < pnode->tensor_proper_size(0); ++i) {
-        if (i != 0) str << ";";
+        if (i != 0) str << ",";
         str << (nt ? scalar_type(0) : pnode->tensor()[i]);
       }
       str << "]";
@@ -1049,7 +1049,7 @@ namespace getfem {
       case 1:
        str << "[";
        for (size_type i = 0; i < pnode->tensor_proper_size(0); ++i) {
-         if (i != 0) str << ";";
+         if (i != 0) str << ",";
          ga_print_node(pnode->children[i], str);
        }
        str << "]";
@@ -1800,7 +1800,7 @@ namespace getfem {
                / (nbc2 * nbc1 * nbc3);
              switch(tensor_order) {
              case 1:
-               mi.push_back(1); mi.push_back(nbc1); break;
+               /* mi.push_back(1); */ mi.push_back(nbc1); break;
              case 2:
                mi.push_back(nbl); if (nbc1 > 1) mi.push_back(nbc1); break; 
              case 3: mi.push_back(nbl); mi.push_back(nbc2); 
mi.push_back(nbc1); break;



reply via email to

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