[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] r5004 - /trunk/getfem/src/getfem_generic_assembly.cc
From: |
Yves . Renard |
Subject: |
[Getfem-commits] r5004 - /trunk/getfem/src/getfem_generic_assembly.cc |
Date: |
Tue, 26 May 2015 18:16:38 -0000 |
Author: renard
Date: Tue May 26 20:16:38 2015
New Revision: 5004
URL: http://svn.gna.org/viewcvs/getfem?rev=5004&view=rev
Log:
a fix in derivation of affine functions
Modified:
trunk/getfem/src/getfem_generic_assembly.cc
Modified: trunk/getfem/src/getfem_generic_assembly.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_generic_assembly.cc?rev=5004&r1=5003&r2=5004&view=diff
==============================================================================
--- trunk/getfem/src/getfem_generic_assembly.cc (original)
+++ trunk/getfem/src/getfem_generic_assembly.cc Tue May 26 20:16:38 2015
@@ -232,7 +232,7 @@
static void ga_throw_error_msg(const std::string &expr, size_type pos,
const std::string &msg) {
- int length_before = 40, length_after = 40;
+ int length_before = 50, length_after = 50;
if (expr.size()) {
int first = std::max(0, int(pos)-length_before);
int last = std::min(int(pos)+length_after, int(expr.size()));
@@ -2159,7 +2159,7 @@
// Miscellaneous functions
- PREDEF_FUNCTIONS["Heaviside"] = ga_predef_function(ga_Heaviside);
+ PREDEF_FUNCTIONS["Heaviside"] = ga_predef_function(ga_Heaviside, 2,
"(0)"); // ga_predef_function(ga_Heaviside);
PREDEF_FUNCTIONS["sign"] = ga_predef_function(ga_sign);
PREDEF_FUNCTIONS["abs"] = ga_predef_function(ga_abs, 1, "sign");
PREDEF_FUNCTIONS["pos_part"]
@@ -6903,8 +6903,6 @@
break;
case GA_NODE_PARAMS:
- cout << "child0->node_type = " << child0->node_type << endl;
- cout << "child1->node_type = " << child1->node_type << endl;
GMM_ASSERT1(child0->node_type == GA_NODE_RESHAPE, "Cannot extract a "
"factor which is a parameter of a nonlinear "
"operator/function");
@@ -7827,7 +7825,7 @@
std::string name = child0->name;
ga_predef_function_tab::iterator it = PREDEF_FUNCTIONS.find(name);
const ga_predef_function &F = it->second;
-
+
if (F.nbargs == 1) {
// TODO: if the function is affine, extend it in the tree
// (especially for sqr ...)
@@ -7885,16 +7883,18 @@
}
break;
}
- tree.insert_node(pnode, GA_NODE_OP);
- pga_tree_node pnode_op = pnode->parent;
- if (child1->tensor_order() == 0)
- pnode_op->op_type = GA_MULT;
- else
- pnode_op->op_type = GA_DOTMULT;
- pnode_op->children.push_back(0);
- tree.copy_node(child1, pnode_op, pnode_op->children[1]);
- ga_node_derivation(tree, workspace, m, pnode_op->children[1],
- varname, interpolatename, order);
+ if (pnode->children.size() >= 2) {
+ tree.insert_node(pnode, GA_NODE_OP);
+ pga_tree_node pnode_op = pnode->parent;
+ if (child1->tensor_order() == 0)
+ pnode_op->op_type = GA_MULT;
+ else
+ pnode_op->op_type = GA_DOTMULT;
+ pnode_op->children.push_back(0);
+ tree.copy_node(child1, pnode_op, pnode_op->children[1]);
+ ga_node_derivation(tree, workspace, m, pnode_op->children[1],
+ varname, interpolatename, order);
+ }
} else {
pga_tree_node child2 = pnode->children[2];
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r5004 - /trunk/getfem/src/getfem_generic_assembly.cc,
Yves . Renard <=