From dddf00cf25da52c5d98a8670ab35fa111b15c8fd Mon Sep 17 00:00:00 2001
From: Martin Genet <martin.genet@polytechnique.edu>
Date: Thu, 17 Jan 2019 10:06:50 +0100
Subject: [PATCH] Now it also works in 2D

---
 ImageIterator.py | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/ImageIterator.py b/ImageIterator.py
index 3e6fae3..e650c94 100644
--- a/ImageIterator.py
+++ b/ImageIterator.py
@@ -84,6 +84,8 @@ class ImageIterator():
                 basename=self.initialize_U_basename,
                 ext=self.initialize_U_ext)
 
+            dof_to_vertex_map = dolfin.dof_to_vertex_map(self.problem.U_fs)
+
         n_iter_tot = 0
         global_success = True
         for forward_or_backward in ["forward","backward"]:
@@ -112,10 +114,13 @@ class ImageIterator():
                 if (self.initialize_U_from_file):
                     mesh = mesh_series.get_mesh(k_frame)
                     array_U = mesh.GetPointData().GetArray(self.initialize_U_array_name)
-                    array_U = vtk.util.numpy_support.vtk_to_numpy(array_U)
-                    array_U = array_U.astype(float)
+                    array_U = vtk.util.numpy_support.vtk_to_numpy(array_U)[:,:self.problem.mesh_dimension]
+                    # print array_U
+                    # array_U = array_U.astype(float)
+                    # print array_U
                     array_U = numpy.reshape(array_U, array_U.size)
-                    self.problem.U.vector()[:] = array_U[dolfin.dof_to_vertex_map(self.problem.U_fs)]
+                    # print array_U
+                    self.problem.U.vector()[:] = array_U[dof_to_vertex_map]
 
                 elif (self.initialize_DU_with_DUold):
                     self.problem.U.vector().axpy(1., self.problem.DUold.vector())
-- 
GitLab