[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] r5042 - in /trunk/getfem: interface/src/gf_asm.cc src/g
From: |
Yves . Renard |
Subject: |
[Getfem-commits] r5042 - in /trunk/getfem: interface/src/gf_asm.cc src/getfem_generic_assembly.cc |
Date: |
Tue, 14 Jul 2015 08:13:34 -0000 |
Author: renard
Date: Tue Jul 14 10:13:32 2015
New Revision: 5042
URL: http://svn.gna.org/viewcvs/getfem?rev=5042&view=rev
Log:
Fix a bug in simplification of the derivative of quadratic functions and
modifying asm_expression_analysis
Modified:
trunk/getfem/interface/src/gf_asm.cc
trunk/getfem/src/getfem_generic_assembly.cc
Modified: trunk/getfem/interface/src/gf_asm.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/interface/src/gf_asm.cc?rev=5042&r1=5041&r2=5042&view=diff
==============================================================================
--- trunk/getfem/interface/src/gf_asm.cc (original)
+++ trunk/getfem/interface/src/gf_asm.cc Tue Jul 14 10:13:32 2015
@@ -510,7 +510,9 @@
static void do_expression_analysis(mexargs_in& in) {
+ getfem::mesh *mesh = in.pop().to_mesh();
std::string expr = in.pop().to_string();
+ size_type der_order = in.pop().to_integer(0, 2);
getfem::ga_workspace workspace1;
getfem::model dummy_md;
bool with_model = in.remaining() && in.front().is_model();
@@ -556,8 +558,11 @@
}
}
- workspace.add_expression(expr, getfem::ga_workspace::dummy_mim,
- getfem::ga_workspace::dummy_region, 0);
+ getfem::mesh_im dummy_mim(*mesh);
+
+ workspace.add_expression(expr, dummy_mim,
+ getfem::ga_workspace::dummy_region,
+ der_order);
workspace.print(cout);
}
@@ -1174,11 +1179,11 @@
);
- /address@hidden ('expression analysis', @str expression, address@hidden
model,] address@hidden varname, @int is_variable[, address@hidden mf, @tmimd
mimd}]], ...)
+ /address@hidden ('expression analysis', @tm mesh, @str expression [,
der_order] [, @tmodel model] [, @str varname, @int is_variable[, address@hidden
mf, @tmimd mimd}], ...])
Analyse a high-level generic assembly expression and print
information about the provided address@hidden/
sub_command
- ("expression analysis", 2, -1, 0, 0,
+ ("expression analysis", 3, -1, 0, 0,
do_expression_analysis(in);
);
Modified: trunk/getfem/src/getfem_generic_assembly.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_generic_assembly.cc?rev=5042&r1=5041&r2=5042&view=diff
==============================================================================
--- trunk/getfem/src/getfem_generic_assembly.cc (original)
+++ trunk/getfem/src/getfem_generic_assembly.cc Tue Jul 14 10:13:32 2015
@@ -5596,10 +5596,14 @@
for (size_type i = c_size; i < size1.size(); ++i)
if (size1[i] != 1) compatible = false;
- if (!compatible)
+ if (!compatible) {
+ // cout << "child0 = "; ga_print_node(child0, cout); cout << endl;
+ // cout << "child1 = "; ga_print_node(child1, cout); cout << endl;
ga_throw_error(expr, pnode->pos, "Addition or subtraction of "
"expressions of different sizes: "
<< size0 << " != " << size1);
+
+ }
if (child0->test_function_type || child1->test_function_type) {
if (child0->test_function_type != child1->test_function_type ||
@@ -7319,7 +7323,7 @@
} else ok = false;
}
- // cout << "analyzing factor : " << ga_tree_to_string(factor) << endl;
+ // cout << "analyzing factor : " << ga_tree_to_string(factor) << endl;
// cout << "ok = " << int(ok) << endl;
// cout << "colon_pnode = " << colon_pnode << endl;
@@ -7853,10 +7857,8 @@
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 ...)
switch (F.dtype) {
case 0:
GMM_ASSERT1(false, "Cannot derive function " << child0->name
@@ -7898,6 +7900,7 @@
pnode_cte->node_type = GA_NODE_CONSTANT;
pnode_cte->t = pnode->t;
std::fill(pnode_cte->t.begin(), pnode_cte->t.end(), b);
+ pnode = pnode->parent;
}
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r5042 - in /trunk/getfem: interface/src/gf_asm.cc src/getfem_generic_assembly.cc,
Yves . Renard <=