Exemplo n.º 1
0
 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();
 }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        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++;
            }
        }
Exemplo n.º 5
0
        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
        }
Exemplo n.º 6
0
        //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);
        }