US 11,914,548 B1
Flow model computation system with disconnected graphs
Shyam Kashinath Khatkale, Pune (IN)
Assigned to SAS Institute Inc., Cary, NC (US)
Filed by SAS Institute Inc., Cary, NC (US)
Filed on Jun. 8, 2023, as Appl. No. 18/207,432.
Claims priority of provisional application 63/444,882, filed on Feb. 10, 2023.
Claims priority of provisional application 63/443,889, filed on Feb. 7, 2023.
Claims priority of provisional application 63/439,488, filed on Jan. 17, 2023.
Claims priority of application No. 202211048596 (IN), filed on Aug. 25, 2022.
Int. Cl. G06F 15/82 (2006.01); G06F 11/34 (2006.01)
CPC G06F 15/825 (2013.01) [G06F 11/3495 (2013.01)] 30 Claims
OG exemplary drawing
 
1. A non-transitory computer-readable medium having stored thereon computer-readable instructions that when executed by a computing device cause the computing device to:
determine a flow list from a data model of a system, wherein the data model is described by nodes connected by edges, wherein an edge is between a pair of nodes, wherein the pair of nodes include a source node and a destination node, wherein a directivity of the edge is from the source node to the destination node, wherein the data model includes a plurality of modules, wherein the nodes are distributed among the plurality of modules such that each node is included in a single module of the plurality of modules to define one or more module nodes included in each module, wherein the plurality of modules includes a source module and an end module, wherein the data model represents a flow of a computational parameter value through the nodes from the source module to the end module, wherein each node is connected to at least one other node in a same module or another module of the plurality of modules, wherein the flow list defines an order for selecting and iteratively processing each node to compute the computational parameter value in a single iteration through the flow list, wherein determining the flow list comprises
(A) selecting a next module from the plurality of modules, wherein the next module is selected in an order from either the end module to the source module included in the plurality of modules or from the source module to the end module included in the plurality of modules;
(B) when the one or more module nodes of the selected next module includes intra-module connected nodes,
(AA) selecting a next intra-module connected node from a plurality of intra-module connected nodes included in the one or more module nodes of the selected next module, wherein an intra-module connected node is connected to another node included in the one or more module nodes;
(BB) when the selected next intra-module connected node has not been processed, indicating that the selected next intra-module connected node has been processed and adding the selected next intra-module connected node to the flow list; and
(CC) repeating (AA) and (BB) until each intra-module connected node included in the plurality of intra-module connected nodes is selected in (AA) once:
(C) selecting a next module node included in the selected next module, wherein the selected next module includes the one or more module nodes;
(D) when the selected next module node has not been processed, indicating that the selected next module node has been processed and adding the selected next module node to the flow list;
(E) repeating (C) and (D) until each module node included in the one or more module nodes is selected in (B) once; and
(F) repeating (A) through (E) until each module included in the plurality of modules is selected in (A) once;
select each node from the flow list to compute a driver quantity for each node;
select each node from the flow list in a reverse order to compute a driver rate and the computational parameter value for each node; and
output the driver quantity or the computational parameter value for each node to predict a performance of the system.