diff --git a/generate_images.py b/generate_images.py
index 7e772b60182b5dacd86cfe301dc435a95495a7c6..01d3c4d7afb1bf9f88508ce6f84c902225c1f12a 100644
--- a/generate_images.py
+++ b/generate_images.py
@@ -472,20 +472,31 @@ class Mapping:
         self.Rinv[:,:] = numpy.linalg.inv(self.R)
 
     def init_t_homogeneous(self, t):
-        Exx = self.deformation["Exx"]*self.phi(t) if ("Exx" in self.deformation.keys()) else 0.
-        Eyy = self.deformation["Eyy"]*self.phi(t) if ("Eyy" in self.deformation.keys()) else 0.
-        Ezz = self.deformation["Ezz"]*self.phi(t) if ("Ezz" in self.deformation.keys()) else 0.
-        Exy = self.deformation["Exy"]*self.phi(t) if ("Exy" in self.deformation.keys()) else 0.
-        Eyz = self.deformation["Eyz"]*self.phi(t) if ("Eyz" in self.deformation.keys()) else 0.
-        Ezx = self.deformation["Ezx"]*self.phi(t) if ("Ezx" in self.deformation.keys()) else 0.
-        self.F = numpy.array([[Exx, Exy, Ezx],
-                              [Exy, Eyy, Eyz],
-                              [Ezx, Eyz, Ezz]])
-        self.F *= 2
-        self.F += numpy.eye(3)
-        w, v = numpy.linalg.eig(self.F)
-        #assert (numpy.diag(numpy.dot(numpy.dot(numpy.transpose(v), self.F), v)) == w).all(), str(numpy.dot(numpy.dot(numpy.transpose(v), self.F), v))+" ≠ "+str(numpy.diag(w))+". Aborting."
-        self.F = numpy.dot(numpy.dot(v, numpy.diag(numpy.sqrt(w))), numpy.transpose(v))
+        if any(E in self.deformation.keys() for E in ("Exx", "Eyy", "Ezz")):
+            Exx = self.deformation["Exx"]*self.phi(t) if ("Exx" in self.deformation.keys()) else 0.
+            Eyy = self.deformation["Eyy"]*self.phi(t) if ("Eyy" in self.deformation.keys()) else 0.
+            Ezz = self.deformation["Ezz"]*self.phi(t) if ("Ezz" in self.deformation.keys()) else 0.
+            self.F = numpy.array([[Exx,  0.,  0.],
+                                  [ 0., Eyy,  0.],
+                                  [ 0.,  0., Ezz]])
+            self.F *= 2
+            self.F += numpy.eye(3)
+            w, v = numpy.linalg.eig(self.F)
+            # assert (numpy.diag(numpy.dot(numpy.dot(numpy.transpose(v), self.F), v)) == w).all(), str(numpy.dot(numpy.dot(numpy.transpose(v), self.F), v))+" ≠ "+str(numpy.diag(w))+". Aborting."
+            self.F = numpy.dot(numpy.dot(v, numpy.diag(numpy.sqrt(w))), numpy.transpose(v))
+        else:
+            Fxx = self.deformation["Fxx"]*self.phi(t) if ("Fxx" in self.deformation.keys()) else 0.
+            Fyy = self.deformation["Fyy"]*self.phi(t) if ("Fyy" in self.deformation.keys()) else 0.
+            Fzz = self.deformation["Fzz"]*self.phi(t) if ("Fzz" in self.deformation.keys()) else 0.
+            Fxy = self.deformation["Fxy"]*self.phi(t) if ("Fxy" in self.deformation.keys()) else 0.
+            Fyx = self.deformation["Fyx"]*self.phi(t) if ("Fyx" in self.deformation.keys()) else 0.
+            Fyz = self.deformation["Fyz"]*self.phi(t) if ("Fyz" in self.deformation.keys()) else 0.
+            Fzy = self.deformation["Fzy"]*self.phi(t) if ("Fzy" in self.deformation.keys()) else 0.
+            Fzx = self.deformation["Fzx"]*self.phi(t) if ("Fzx" in self.deformation.keys()) else 0.
+            Fxz = self.deformation["Fxz"]*self.phi(t) if ("Fxz" in self.deformation.keys()) else 0.
+            self.F = numpy.array([[Fxx, Fxy, Fxz],
+                                  [Fyx, Fyy, Fyz],
+                                  [Fzx, Fzy, Fzz]])
         self.Finv = numpy.linalg.inv(self.F)
 
     def init_t_heart(self, t):