@@ -836,6 +836,8 @@ class System:
836
836
'variable_profiles' ,
837
837
'equation_profiles' ,
838
838
'edge_profiles' ,
839
+ 'variable_nodes' ,
840
+ 'equation_nodes' ,
839
841
# Dynamic simulation
840
842
'_isdynamic' ,
841
843
'_state' ,
@@ -2520,21 +2522,22 @@ def track_convergence(self, track=True):
2520
2522
for i in self .stages : i .create_equation_nodes ()
2521
2523
with self .stage_configuration (aggregated = False ):
2522
2524
for i in self .stages : i .initialize_equation_nodes ()
2523
- equations = tuple (set (sum ([i .equation_nodes for i in self .stages ], ())))
2524
- variables = tuple (set (sum ([i .variables for i in equations ], ())))
2525
+ self . equation_nodes = equations = tuple (set (sum ([i .equation_nodes for i in self .stages ], ())))
2526
+ self . variable_nodes = variables = tuple (set (sum ([i .variables for i in equations ], ())))
2525
2527
self .variable_profiles = {i : [] for i in variables }
2526
2528
self .equation_profiles = {}
2527
2529
self .edge_profiles = {}
2528
2530
else :
2529
2531
self ._track_convergence = False
2532
+ self .equation_nodes = None
2533
+ self .variable_nodes = None
2530
2534
self .variable_profiles = None
2531
2535
self .equation_profiles = None
2532
2536
self .edge_profiles = None
2533
2537
2534
2538
def get_phenomena_graph (self ):
2535
2539
if not getattr (self , '_track_convergence' , False ):
2536
2540
raise RuntimeError ('convergence was not tracked' )
2537
- name = self .ID + '_graph'
2538
2541
variable_profiles = self .get_variable_profiles ()
2539
2542
column_names = list (variable_profiles )
2540
2543
namespace = self .flowsheet .to_dict ()
@@ -2562,11 +2565,11 @@ def get_phenomena_graph(self):
2562
2565
directories .append (directory )
2563
2566
equation_profiles = self .get_equation_profiles (variable_profiles , directories , stages , variables , namespace )
2564
2567
edge_profiles = self .get_edge_profiles (variable_profiles , directories , stages , variables , namespace )
2565
- variables = tuple (self .variable_profiles )
2566
- equations = tuple (self .equation_profiles )
2567
- edges = tuple (self .edge_profiles )
2568
- edges = get_node_edges (equations )
2568
+ variables = self .variable_nodes
2569
+ equations = self .equation_nodes
2570
+ edges = get_node_edges (equations , inputs = False )
2569
2571
subgraphs = []
2572
+ name = self .ID + '_graph'
2570
2573
for subgraph in all_subgraphs :
2571
2574
subgraph_equations = [i for i in equations if subgraph in i .name ]
2572
2575
subgraph_edges = get_node_edges (subgraph_equations , inputs = False )
@@ -2585,7 +2588,7 @@ def get_phenomena_graph(self):
2585
2588
)
2586
2589
)
2587
2590
return PhenomenaGraph (
2588
- name , equations , variables , edges , equation_profiles , variable_profiles , subgraphs
2591
+ name , equations , variables , edges , equation_profiles , variable_profiles , edge_profiles , subgraphs
2589
2592
)
2590
2593
2591
2594
def get_variable_profiles (self ):
0 commit comments