[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) {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r4630 - in /trunk/getfem: interface/src/gf_compute.cc src/getfem/getfem_interpolation.h,
Yves . Renard <=