38 #ifndef GETFEM_GENERIC_ASSEMBLY_SEMANTIC_H__
39 #define GETFEM_GENERIC_ASSEMBLY_SEMANTIC_H__
58 void ga_semantic_analysis(ga_tree &tree,
59 const ga_workspace &workspace,
63 bool ignore_X,
int option = 0);
68 bool ga_extract_variables(
const pga_tree_node pnode,
69 const ga_workspace &workspace,
71 std::set<var_trans_pair> &vars,
78 void ga_extract_factor(ga_tree &result_tree, pga_tree_node pnode,
79 pga_tree_node &new_pnode);
82 bool ga_node_extract_constant_term
83 (ga_tree &tree, pga_tree_node pnode,
const ga_workspace &workspace,
87 void ga_extract_Neumann_term
88 (ga_tree &tree,
const std::string &varname,
89 ga_workspace &workspace, pga_tree_node pnode, std::string &result);
95 void ga_derivative(ga_tree &tree,
const ga_workspace &workspace,
96 const mesh &m,
const std::string &varname,
97 const std::string &interpolatename,
100 std::string ga_derivative_scalar_function(
const std::string &expr,
101 const std::string &var);
103 bool ga_is_affine(
const ga_tree &tree,
const ga_workspace &workspace,
104 const std::string &varname,
105 const std::string &interpolatename);
108 inline size_type ref_elt_dim_of_mesh(
const mesh &m,
const mesh_region &rg) {
110 return v.finished() ?
size_type(0) : m.trans_of_convex(v.cv())->dim();