getfem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-commits] r4672 - in /trunk/getfem: doc/sphinx/source/userdoc/mod


From: Yves . Renard
Subject: [Getfem-commits] r4672 - in /trunk/getfem: doc/sphinx/source/userdoc/model_generic_assembly.rst src/getfem_models.cc
Date: Mon, 02 Jun 2014 09:14:54 -0000

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);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]