diff --git a/src/quasiconvexity-test-micromorphic.cc b/src/quasiconvexity-test-micromorphic.cc
index 2dc74d0f5b22705dfa58c258d4448afee49bfa46..98dbaf1b62266a8e87fd3e0f1c5237c368f24a1a 100644
--- a/src/quasiconvexity-test-micromorphic.cc
+++ b/src/quasiconvexity-test-micromorphic.cc
@@ -224,7 +224,34 @@ int main (int argc, char *argv[]) try
 
   if (parameterSet.hasKey("initialIteratePython"))
   {
-    DUNE_THROW(NotImplemented, "initialIteratePython is not implemented");
+#if 1
+    auto initialDisplacement = [&x0, F0](const FieldVector<double,2>& x) {
+
+      auto l1 = 1.0 / sqrt(x0);
+      int numStripes = 6;
+
+      std::array<int,2> p = {std::round(x[0] * numStripes),
+                             std::round(x[1] * numStripes)};
+
+      double delta = 0.5;
+      double l = ((p[0]+p[1])%2) ? delta : -delta;
+      return l*F0;
+    };
+
+    Dune::Functions::interpolate(feBasis, x, initialDisplacement);
+#else
+    // The python class that implements the Dirichlet values
+    Python::Module initialIterateModule = Python::import(parameterSet.get<std::string>("initialIteratePython"));
+
+    // Method of that python class
+    auto pythonInitialIterate = Python::makeFunction<FieldMatrix<double,dim,dim>(const FieldVector<double,dim>&)>(initialIterateModule.get("f"));
+
+    Functions::interpolate(feBasis, x, pythonInitialIterate);
+#warning Set the correct Dirichlet values!
+#endif
+    auto zeroMatrix = [](const FieldVector<double,2>& x) { return FieldMatrix<double,2,2> {0}; };
+    // Write the correct Dirichlet boundary values
+    Dune::Functions::interpolate(feBasis, x, zeroMatrix, dirichletDofs);
   }
 
   if (parameterSet.hasKey("initialIterateFile"))