getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] r4630 - in /trunk/getfem: interface/src/gf_compute.cc s


From: Yves . Renard
Subject: [Getfem-commits] r4630 - in /trunk/getfem: interface/src/gf_compute.cc src/getfem/getfem_interpolation.h
Date: Tue, 29 Apr 2014 11:05:33 -0000

Author: renard
Date: Tue Apr 29 13:05:33 2014
New Revision: 4630

URL: http://svn.gna.org/viewcvs/getfem?rev=4630&view=rev
Log:
error fix in interpolation on arbitrary points with the matlab interface

Modified:
    trunk/getfem/interface/src/gf_compute.cc
    trunk/getfem/src/getfem/getfem_interpolation.h

Modified: trunk/getfem/interface/src/gf_compute.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/interface/src/gf_compute.cc?rev=4630&r1=4629&r2=4630&view=diff
==============================================================================
--- trunk/getfem/interface/src/gf_compute.cc    (original)
+++ trunk/getfem/interface/src/gf_compute.cc    Tue Apr 29 13:05:33 2014
@@ -145,7 +145,7 @@
     sl->interpolate(mf, U, V);
   }
   else {
-    size_type N = mf.get_qdim();
+    size_type N = mf.linked_mesh().dim();
     darray st = in.pop().to_darray();
     std::vector<double> PTS(st.begin(), st.end());
     size_type nbpoints = gmm::vect_size(PTS) / N;
@@ -153,6 +153,7 @@
     getfem::mesh_trans_inv mti(mf.linked_mesh());
     for (size_type i = 0; i < nbpoints; ++i) {
       gmm::copy(gmm::sub_vector(PTS, gmm::sub_interval(i*N, N)), p);
+      cout << "adding point" << p << endl;
       mti.add_point(p);
     }
     
@@ -163,7 +164,9 @@
     garray<T> V = out.pop().create_array(dims,T());
 
     getfem::base_matrix Maux;
+    cout << "begin interpolation, qmult = " << qmult << endl;
     getfem::interpolation(mf, mti, U, V, Maux, 0);
+    cout << "end interpolation" << endl;
 
   }
   // else THROW_BADARG("expecting a mesh_fem or a mesh_slice for 
interpolation");

Modified: trunk/getfem/src/getfem/getfem_interpolation.h
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem/getfem_interpolation.h?rev=4630&r1=4629&r2=4630&view=diff
==============================================================================
--- trunk/getfem/src/getfem/getfem_interpolation.h      (original)
+++ trunk/getfem/src/getfem/getfem_interpolation.h      Tue Apr 29 13:05:33 2014
@@ -1,7 +1,7 @@
 /* -*- c++ -*- (enables emacs c++ mode) */
 /*===========================================================================
  
- Copyright (C) 2001-2012 Yves Renard, Julien Pommier
+ Copyright (C) 2001-2014 Yves Renard, Julien Pommier
  
  This file is a part of GETFEM++
  
@@ -435,7 +435,7 @@
     std::vector<std::vector<T> > coeff;
     base_tensor Z;
     std::vector<size_type> dof_source;
-
+    
     for (dal::bv_visitor cv(mf_source.convex_index()); !cv.finished(); ++cv) {
       bgeot::pgeometric_trans pgt = msh.trans_of_convex(cv);
       mti.points_on_convex(cv, itab);
@@ -477,15 +477,14 @@
               for (size_type k=0; k < qdim_s; ++k)
                 V[(pos + k)*qqdim+qq] = val[k];
             }
-            // Partie à arranger si on veut en option pouvoir interpoler
-            // le gradient.
+            // Part to be improved if one wants in option to be able to
+            // interpolate the gradient.
             //          if (PVGRAD) {
             // base_matrix grad(mdim, qdim);
             // pf_s->interpolation_grad(ctx,coeff,gmm::transposed(grad), qdim);
             // std::copy(grad.begin(), grad.end(), V.begin()+dof_t*qdim*mdim);
             // }
-          }
-          else {
+          } else {
             base_matrix Mloc(qdim_s, mf_source.nb_basic_dof_of_element(cv));
             pf_s->interpolation(ctx, Mloc, qdim_s);
             for (size_type k=0; k < qdim_s; ++k) {




reply via email to

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