From d56f6217c1d1768bb2d1530895d2b6cad3648708 Mon Sep 17 00:00:00 2001
From: Jean-Matthieu Etancelin <jean-matthieu.etancelin@imag.fr>
Date: Thu, 23 May 2013 14:22:56 +0000
Subject: [PATCH] Fix problem input variables

---
 HySoP/hysop/problem/problem.py | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/HySoP/hysop/problem/problem.py b/HySoP/hysop/problem/problem.py
index d5d961c63..758bcbdda 100644
--- a/HySoP/hysop/problem/problem.py
+++ b/HySoP/hysop/problem/problem.py
@@ -74,7 +74,18 @@ class Problem(object):
         if  __VERBOSE__:
             print "==== Variables initialization ===="
 
-        # \todo find a way to set self.input properly.
+        # Build variables list to initialize
+        # These are operators input variables that are not output of
+        # previous operators in the operator stack
+        self.input += self.operators[-1].input
+        for op in self.operators[:-1][::-1]:
+            for v in op.output:
+                if v in self.input:
+                    self.input.remove(v)
+            for v in op.input:
+                if not v in self.input:
+                    self.input.append(v)
+
         for v in self.input:
             v.initialize()
 
@@ -113,22 +124,12 @@ class Problem(object):
                     op.apply(self.simulation)
                 self.simulation.advance()
 
-        print "\n\n End solving\n"
-        print "=== Timings ==="
-        if (self.domain.topologies.values()[0].rank == 0):
-            for op in self.operators:
-                op.printComputeTime()
-                self.time_info[0] += op.time_info[0]
-                self.time_info[1] += op.time_info[1]
-        print "\n"
-        print "===\n"
-
     @debug
     def finalize(self):
         """
         Finalize method
         """
-        print "==== Finalization ===="
+        print "\n\n==== End ===="
         ## We terminate monitors before operators.
         for op in self.operators:
             if isinstance(op, Monitoring):
-- 
GitLab