for s in flow.solutions:
	query = causality.RealisabilityQuery(flow.dg)
	printer = DGPrinter()
	printer.graphvizPrefix = 'layout = "dot";'
	printer.pushVertexVisible(lambda v: s.eval(vertexFlow[v]) != 0)
	dag = query.findDAG(s)
	if dag:
		data = dag.getPrintData(False)
		dg.print(printer=printer, data=data)
	else:
		print(s, "has no DAG, find catalysts")
		for v in dg.vertices:
			a = v.graph
			if s.eval(vertexFlow[a]) == 0:
				continue
			query = causality.RealisabilityQuery(flow.dg)
			query[a] = 1
			dag = query.findDAG(s)
			if dag:
				post.summarySection("Catalyst %s" % a.name)
				data = dag.getPrintData(True)
				dg.print(printer=printer, data=data)
