getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] r5338 - /trunk/getfem/interface/src/gf_mesh_fem_get.cc


From: logari81
Subject: [Getfem-commits] r5338 - /trunk/getfem/interface/src/gf_mesh_fem_get.cc
Date: Thu, 23 Jun 2016 06:34:37 -0000

Author: logari81
Date: Thu Jun 23 08:34:36 2016
New Revision: 5338

URL: http://svn.gna.org/viewcvs/getfem?rev=5338&view=rev
Log:
add scripting interface for mesh_fem::reduce_vector and mesh_fem::extend_vector

Modified:
    trunk/getfem/interface/src/gf_mesh_fem_get.cc

Modified: trunk/getfem/interface/src/gf_mesh_fem_get.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/interface/src/gf_mesh_fem_get.cc?rev=5338&r1=5337&r2=5338&view=diff
==============================================================================
--- trunk/getfem/interface/src/gf_mesh_fem_get.cc       (original)
+++ trunk/getfem/interface/src/gf_mesh_fem_get.cc       Thu Jun 23 08:34:36 2016
@@ -506,6 +506,40 @@
         gmm::mat_ncols(mf->extension_matrix()));
        gmm::copy(mf->extension_matrix(), M);
        out.pop().from_sparse(M);
+       );
+
+    /address@hidden Vr = ('reduce vector', @vec V)
+    Multiply the provided vector V with the extension matrix of the 
@address@hidden/
+    sub_command
+      ("reduce vector", 1, 1, 0, 1,
+       if (in.front().is_complex()) {
+         carray V = in.pop().to_carray(-1);
+         std::vector<std::complex<double> > Vr(mf->nb_dof());
+         mf->reduce_vector(V, Vr);
+         out.pop().from_dcvector(Vr);
+       } else {
+         darray V = in.pop().to_darray(-1);
+         std::vector<double> Vr(mf->nb_dof());
+         mf->reduce_vector(V, Vr);
+         out.pop().from_dcvector(Vr);
+       }
+       );
+
+    /address@hidden Ve = ('extend vector', @vec V)
+    Multiply the provided vector V with the reduction matrix of the 
@address@hidden/
+    sub_command
+      ("extend vector", 1, 1, 0, 1,
+       if (in.front().is_complex()) {
+         carray V = in.pop().to_carray(-1);
+         std::vector<std::complex<double> > Ve(mf->nb_basic_dof());
+         mf->extend_vector(V, Ve);
+         out.pop().from_dcvector(Ve);
+       } else {
+         darray V = in.pop().to_darray(-1);
+         std::vector<double> Ve(mf->nb_basic_dof());
+         mf->extend_vector(V, Ve);
+         out.pop().from_dcvector(Ve);
+       }
        );
 
 




reply via email to

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