[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] r5117 - in /trunk/getfem/src: getfem/getfem_generic_ass
From: |
Yves . Renard |
Subject: |
[Getfem-commits] r5117 - in /trunk/getfem/src: getfem/getfem_generic_assembly.h getfem_generic_assembly.cc |
Date: |
Mon, 02 Nov 2015 12:48:04 -0000 |
Author: renard
Date: Mon Nov 2 13:48:02 2015
New Revision: 5117
URL: http://svn.gna.org/viewcvs/getfem?rev=5117&view=rev
Log:
small bug fix on macros
Modified:
trunk/getfem/src/getfem/getfem_generic_assembly.h
trunk/getfem/src/getfem_generic_assembly.cc
Modified: trunk/getfem/src/getfem/getfem_generic_assembly.h
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem/getfem_generic_assembly.h?rev=5117&r1=5116&r2=5117&view=diff
==============================================================================
--- trunk/getfem/src/getfem/getfem_generic_assembly.h (original)
+++ trunk/getfem/src/getfem/getfem_generic_assembly.h Mon Nov 2 13:48:02 2015
@@ -204,11 +204,12 @@
size_type meshdim;
bool ignore_X;
m_tree(void) : ptree(0) {}
+ m_tree(const m_tree& o);
+ m_tree &operator =(const m_tree& o);
~m_tree(void);
};
mutable std::map<std::string, m_tree> macro_trees;
-
void add_tree(ga_tree &tree, const mesh &m, const mesh_im &mim,
const mesh_region &rg,
Modified: trunk/getfem/src/getfem_generic_assembly.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_generic_assembly.cc?rev=5117&r1=5116&r2=5117&view=diff
==============================================================================
--- trunk/getfem/src/getfem_generic_assembly.cc (original)
+++ trunk/getfem/src/getfem_generic_assembly.cc Mon Nov 2 13:48:02 2015
@@ -680,8 +680,10 @@
clear_node_rec(pnode);
}
- void clear(void)
- { if (root) clear_node_rec(root); root = current_node = 0; }
+ void clear(void) {
+ std::string ga_tree_to_string(const ga_tree &tree);
+ if (root) clear_node_rec(root); root = current_node = 0;
+ }
void clear_children(pga_tree_node pnode) {
for (size_type i = 0; i < pnode->children.size(); ++i)
@@ -5173,12 +5175,20 @@
}
ga_workspace::m_tree::~m_tree(void) { if (ptree) delete ptree; }
+ ga_workspace::m_tree::m_tree(const m_tree& o)
+ : ptree(o.ptree), meshdim(o.meshdim), ignore_X(o.ignore_X)
+ { if (o.ptree) ptree = new ga_tree(*(o.ptree)); }
+ ga_workspace::m_tree &ga_workspace::m_tree::operator =(const m_tree& o) {
+ ptree = o.ptree; meshdim = o.meshdim; ignore_X = o.ignore_X;
+ if (o.ptree) ptree = new ga_tree(*(o.ptree));
+ return *this;
+ }
ga_tree &ga_workspace::macro_tree(const std::string &name,
size_type meshdim, size_type ref_elt_dim,
bool ignore_X) const {
GMM_ASSERT1(macro_exists(name), "Undefined macro");
- std::map<std::string, m_tree>::iterator it = macro_trees.find(name);
+ auto it = macro_trees.find(name);
bool to_be_analyzed = false;
m_tree *mt = 0;
@@ -5756,6 +5766,18 @@
// cout << "semantic analysis of " << ga_tree_to_string(tree) << endl;
ga_node_analysis(expr, tree, workspace, tree.root, meshdim, ref_elt_dim,
eval_fixed_size, ignore_X, option);
+ if (tree.root && option == 2) {
+ if (((tree.root->test_function_type & 1) &&
+ (tree.root->name_test1.compare(workspace.selected_test1.first)
+ || tree.root->interpolate_name_test1.compare
+ (workspace.selected_test1.second)))
+ ||
+ ((tree.root->test_function_type & 2) &&
+ (tree.root->name_test2.compare(workspace.selected_test2.first)
+ || tree.root->interpolate_name_test2.compare
+ (workspace.selected_test2.second))))
+ tree.clear();
+ }
// cout << "semantic analysis done " << endl;
ga_valid_operand(expr, tree.root);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r5117 - in /trunk/getfem/src: getfem/getfem_generic_assembly.h getfem_generic_assembly.cc,
Yves . Renard <=