Author: renard
Date: Mon Jun  2 11:14:53 2014
New Revision: 4672

URL: http://svn.gna.org/viewcvs/getfem?rev=4672&view=rev
Log:
a bug fix on linear generic assembly brick

Modified:
    trunk/getfem/doc/sphinx/source/userdoc/model_generic_assembly.rst
    trunk/getfem/src/getfem_models.cc

Modified: trunk/getfem/doc/sphinx/source/userdoc/model_generic_assembly.rst
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/doc/sphinx/source/userdoc/model_generic_assembly.rst?rev=4672&r1=4671&r2=4672&view=diff
==============================================================================
--- trunk/getfem/doc/sphinx/source/userdoc/model_generic_assembly.rst   
(original)
+++ trunk/getfem/doc/sphinx/source/userdoc/model_generic_assembly.rst   Mon Jun 
 2 11:14:53 2014
@@ -41,7 +41,7 @@
 where ``F`` is a pre-defined constant of the model representing the right hand 
side. Of course, doing so, Newton's algorithms will be called. So, the more 
appropriate manner is to use the linear bricks as follows::
 
   getfem::add_linear_generic_assembly_brick(md, mim, "Grad_u.Grad_Test_u", -1, 
true, true);
-  getfem::add_dource_term_generic_assembly_brick(md, mim, "F*Test_u");
+  getfem::add_source_term_generic_assembly_brick(md, mim, "F*Test_u");
  
 
  

Modified: trunk/getfem/src/getfem_models.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_models.cc?rev=4672&r1=4671&r2=4672&view=diff
==============================================================================
--- trunk/getfem/src/getfem_models.cc   (original)
+++ trunk/getfem/src/getfem_models.cc   Mon Jun  2 11:14:53 2014
@@ -1549,11 +1549,11 @@
                 from_variables(V);
                 gmm::mult_add(brick.rmatlist[j],
                               gmm::scaled(V, -coeff0), rrhs);
-              }
-              gmm::mult_add(brick.rmatlist[j],
-                            gmm::scaled(variables[term.var2].real_value[0],
-                                        -coeff0),
-                            gmm::sub_vector(rrhs, I1));
+              } else
+                gmm::mult_add(brick.rmatlist[j],
+                              gmm::scaled(variables[term.var2].real_value[0],
+                                          -coeff0),
+                              gmm::sub_vector(rrhs, I1));
             }
             if (term.is_symmetric && I1.first() != I2.first()) {
               if (brick.pdispatch) {
@@ -1620,8 +1620,6 @@
         workspace.add_expression(it->expr, it->mim, mpi_reg[pms]);
       }
 
-      // cout << "act. assembly" << endl;
-
       if (version & BUILD_RHS) {
         if (is_complex()) {
           GMM_ASSERT1(false, "to be done");
@@ -1641,7 +1639,6 @@
           workspace.assembly(2);
         }
       }
-      // cout << "act. assembly done" << endl;
     }
 
     // Post simplification for dof constraints
@@ -2038,9 +2035,10 @@
                   "mesh_im");
 
       bool recompute_matrix = !((version & model::BUILD_ON_DATA_CHANGE) != 0);
-      for (size_type i = 0; i < dl.size(); ++i)
+      for (size_type i = 0; i < dl.size(); ++i) {
         recompute_matrix = recompute_matrix ||
           md.is_var_newer_than_brick(dl[i], ib);
+      }
 
       if (recompute_matrix) {
         ga_workspace workspace(md);
@@ -2098,7 +2096,7 @@
     ga_workspace workspace(md);
     size_type order = workspace.add_expression(expr, mim, region);
     model::varnamelist vl, dl;
-    workspace.used_variables(vl, dl, order);
+    workspace.used_variables(vl, dl, 2);
     if (order == 0) { is_coercive = is_sym = true; }
     pbrick pbr = new gen_linear_assembly_brick(expr, is_sym, is_coercive,
                                                (order == 0), brickname);


_______________________________________________
Getfem-commits mailing list
[email protected]
https://mail.gna.org/listinfo/getfem-commits

Reply via email to