Skip to content

Commit c84ce43

Browse files
committed
finish adding more convergence metrics
1 parent befef96 commit c84ce43

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

biosteam/_system.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -836,6 +836,8 @@ class System:
836836
'variable_profiles',
837837
'equation_profiles',
838838
'edge_profiles',
839+
'variable_nodes',
840+
'equation_nodes',
839841
# Dynamic simulation
840842
'_isdynamic',
841843
'_state',
@@ -2520,21 +2522,22 @@ def track_convergence(self, track=True):
25202522
for i in self.stages: i.create_equation_nodes()
25212523
with self.stage_configuration(aggregated=False):
25222524
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], ())))
25252527
self.variable_profiles = {i: [] for i in variables}
25262528
self.equation_profiles = {}
25272529
self.edge_profiles = {}
25282530
else:
25292531
self._track_convergence = False
2532+
self.equation_nodes = None
2533+
self.variable_nodes = None
25302534
self.variable_profiles = None
25312535
self.equation_profiles = None
25322536
self.edge_profiles = None
25332537

25342538
def get_phenomena_graph(self):
25352539
if not getattr(self, '_track_convergence', False):
25362540
raise RuntimeError('convergence was not tracked')
2537-
name = self.ID + '_graph'
25382541
variable_profiles = self.get_variable_profiles()
25392542
column_names = list(variable_profiles)
25402543
namespace = self.flowsheet.to_dict()
@@ -2562,11 +2565,11 @@ def get_phenomena_graph(self):
25622565
directories.append(directory)
25632566
equation_profiles = self.get_equation_profiles(variable_profiles, directories, stages, variables, namespace)
25642567
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)
25692571
subgraphs = []
2572+
name = self.ID + '_graph'
25702573
for subgraph in all_subgraphs:
25712574
subgraph_equations = [i for i in equations if subgraph in i.name]
25722575
subgraph_edges = get_node_edges(subgraph_equations, inputs=False)
@@ -2585,7 +2588,7 @@ def get_phenomena_graph(self):
25852588
)
25862589
)
25872590
return PhenomenaGraph(
2588-
name, equations, variables, edges, equation_profiles, variable_profiles, subgraphs
2591+
name, equations, variables, edges, equation_profiles, variable_profiles, edge_profiles, subgraphs
25892592
)
25902593

25912594
def get_variable_profiles(self):

thermosteam

0 commit comments

Comments
 (0)