public frmSplitModels_Rigids() { InitializeComponent(); graph = new gProAnalyzer.GraphVariables.clsGraph(); clsSESE = new gProAnalyzer.GraphVariables.clsSESE(); clsLoop = new gProAnalyzer.GraphVariables.clsLoop(); clsHWLS = new gProAnalyzer.GraphVariables.clsHWLS(); clsError = new gProAnalyzer.GraphVariables.clsError(); loadGraph = new gProAnalyzer.Preprocessing.clsLoadGraph(); runSESE = new gProAnalyzer.Run_Analysis_SESE(); runVerification = new gProAnalyzer.Run_Analysis_Verification(); }
public frmBasicSimulation() { loadG = new Preprocessing.clsLoadGraph(); graph = new GraphVariables.clsGraph(); clsLoop = new GraphVariables.clsLoop(); clsSESE = new GraphVariables.clsSESE(); clsHWLS = new gProAnalyzer.GraphVariables.clsHWLS(); clsError = new gProAnalyzer.GraphVariables.clsError(); test = new gProAnalyzer.Testing(); runVerification = new gProAnalyzer.Run_Analysis_Verification(); InitializeComponent(); }
public Dashboard_Experiment() { InitializeComponent(); loadG = new Preprocessing.clsLoadGraph(); graph = new GraphVariables.clsGraph(); clsLoop = new GraphVariables.clsLoop(); clsSESE = new GraphVariables.clsSESE(); clsHWLS = new gProAnalyzer.GraphVariables.clsHWLS(); clsError = new gProAnalyzer.GraphVariables.clsError(); runVerification = new gProAnalyzer.Run_Analysis_Verification(); progressBar1.Visible = false; btnRun.Visible = false; exportExcel.Visible = false; }
public static void add_Error(ref gProAnalyzer.GraphVariables.clsError clsError) { bool bSame = false; for (int i = 0; i < clsError.nError; i++) { if (clsError.Error[i].Node == clsError.Error[clsError.nError].Node && clsError.Error[i].Loop == clsError.Error[clsError.nError].Loop && clsError.Error[i].currentKind == clsError.Error[clsError.nError].currentKind && clsError.Error[i].messageNum == clsError.Error[clsError.nError].messageNum) { bSame = true; break; } } if (!bSame) { clsError.nError++; } }
public static void start_Indexing_Acyclic(ref GraphVariables.clsGraph graph, ref GraphVariables.clsHWLS clsHWLS, ref GraphVariables.clsHWLS clsHWLS_Untangle, ref GraphVariables.clsLoop clsLoop, ref GraphVariables.clsSESE clsSESE, bool[] flag_Check) { Initialize_All(); gProAnalyzer.Functionalities.NodeSplittingType1.Run_Split_Type1(ref graph, graph.orgNet, graph.midNet); gProAnalyzer.Functionalities.LoopIdentification.Run_FindLoop(ref graph, graph.midNet, ref clsLoop, clsLoop.orgLoop, ref clsLoop.IrreducibleError); graph.Network[graph.finalNet] = graph.Network[graph.midNet]; gProAnalyzer.Functionalities.NodeSplittingType2.Run_Split_Type2(ref graph, graph.midNet, graph.finalNet, ref clsLoop, clsLoop.orgLoop); gProAnalyzer.Functionalities.DominanceIdentification.find_Dom(ref graph, graph.finalNet); gProAnalyzer.Functionalities.DominanceIdentification.find_Pdom(ref graph, graph.finalNet); gProAnalyzer.Functionalities.DominanceIdentification.find_DomEI(ref graph, graph.finalNet, -2); gProAnalyzer.Functionalities.DominanceIdentification.find_PdomEI(ref graph, graph.finalNet); gProAnalyzer.Functionalities.SESEIdentification.find_SESE_WithLoop(ref graph, graph.finalNet, ref clsLoop, clsLoop.orgLoop, ref clsSESE, clsSESE.finalSESE, -2); gProAnalyzer.Functionalities.NodeSplittingType3.Run_Split_Type3(ref graph, graph.finalNet, ref clsLoop, clsLoop.orgLoop, ref clsSESE, clsSESE.finalSESE, true); //Make nesting forest gProAnalyzer.Ultilities.makeNestingForest.make_NestingForest(ref graph, graph.finalNet, ref clsHWLS, ref clsLoop, clsLoop.orgLoop, ref clsSESE, clsSESE.finalSESE); GraphVariables.clsError clsError = new gProAnalyzer.GraphVariables.clsError(); //Fix each SOS entry for Bond and Rigid gProAnalyzer.Functionalities.VerificationG.Initialize_Verification(ref graph, ref clsError, ref clsLoop, ref clsSESE, ref clsHWLS); //verify bond first =>> int workNet = graph.finalNet; int workLoop = clsLoop.orgLoop; int workSESE = clsSESE.finalSESE; //== get initial behavior profile == graph.Network[graph.reduceNet] = graph.Network[workNet]; gProAnalyzer.Ultilities.extendGraph.full_extentNetwork(ref graph, graph.reduceNet, 0, 0); get_InitialBehaviorProfile(ref graph, graph.reduceNet, ref clsHWLS, ref clsLoop, workLoop, ref clsSESE, workSESE, flag_Check); //Database storing }
//MAIN() public static int make_InstanceFlow(ref gProAnalyzer.GraphVariables.clsGraph graph, int currentN, int loop, string errType, string strLoop, ref gProAnalyzer.GraphVariables.clsError clsError) //loop = -1 => final-Acyclic ; loop = -2 => SESE (new) { SearchXOR = new int[graph.Network[currentN].nNode]; // 0-탐색 nSearchXOR = 0; nCurrentXOR = 0; nInst = 0; System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); watch.Start(); do { nCurrentXOR = 0; for (int j = 0; j < graph.Network[currentN].nLink; j++) //fill all this subnetwork is un-visit { graph.Network[currentN].Link[j].bInstance = false; //bInstance is used for mark the node which have token (instance flow) } int[] InstantNode = new int[graph.Network[currentN].nNode]; int nInstantNode = 0; string[] strCombination_OR = new string[graph.Network[currentN].nNode]; //for indexing the current propagation of OR split e.g., which successors are activated. //int nOR_SplitIndex = 0; int sNode = graph.Network[currentN].header; InstantNode[nInstantNode] = sNode; nInstantNode++; if (find_InstanceNode(ref graph, currentN, sNode, ref InstantNode, ref nInstantNode, ref SearchXOR, ref nSearchXOR, ref nCurrentXOR, ref strCombination_OR)) //find_InstanceNode() => output will be stored in InstantNode[] (Global variable!) - all the node which is activated in currentN. { string[] readable = new string[nInstantNode]; readable = convert_Readable(ref graph, currentN, InstantNode, nInstantNode); //Make_InstantNetwork(currentN, dummyNet); // 삭제 ?????????????? check_InstanceFlow(ref graph, currentN, loop, errType, strLoop, ref InstantNode, ref nInstantNode, ref clsError); //bFor = true; => Forward// bFor = false; => Backward error reporting. (Errors[]) if (nInst == 100) { } nInst++; } } while (nSearchXOR > 0); //MessageBox.Show(nInst.ToString() + " in " + watch.ElapsedMilliseconds.ToString() + "miliseconds", "Number of Instance"); return(nInst); }