public static void DonguGiris()
 {
     NetworkOp.StartSimulation();  // Networkü perform eder
     NetworkOp.SaveAndRun();
     //PipeOp.Set_PipeDia(Sabitler.Pipe_Diameters[Sabitler.Pipe_Diameters.Length - 1]);
     NetworkOp.SaveAndRun();
     ResIndexClass.SetResindex();
     NetworkOp.SaveAndRun();
     PipeOp.Get_numofPipe();
     Console.WriteLine("Current Resilience index: " + ResIndexClass.Calculate_Resindex());
     Console.WriteLine("Current Surplus value: " + FailureIndexClass.Calculate_Failureindex());
 }
Exemplo n.º 2
0
        public static Dictionary <int, float> Iteration_ILK(Dictionary <int, float> icListem)
        {
            PipeOp.Calculate_PowDis_ILK(icListem);
            var RankedList = PublicListeler.Powdis_Dict_ILK.OrderByDescending(x => x.Value).ToList();

            foreach (var itemq in RankedList.ToList())
            {
                UnsafeNativeMethods.ENgetlinkvalue(itemq.Key + 1, LinkValue.Diameter, out float valueDiam);
                PublicListeler.List_BoruvCap.Add(itemq.Key, valueDiam);
            }
            RankedList.Clear(); // RANKEDLIST ICINI TEMIZLIYORUM BURDA1
            NetworkOp.SaveAndRun();
            foreach (var FLitemler in PublicListeler.List_BoruvCap)
            {
                int   a = (Array.FindIndex(Sabitler.Pipe_Diameters, x => x.Equals(FLitemler.Value)));
                float b = Sabitler.Pipe_Diameters[a - 1];
                UnsafeNativeMethods.ENsetlinkvalue(FLitemler.Key + 1, LinkValue.Diameter, b);  //Diameter Reduction


                if (Iterations.Kontroller(FLitemler.Key) == true)
                {
                    Console.WriteLine(FLitemler.Key + 1 + ". pipe will be Reduced.....");
                    UnsafeNativeMethods.ENgetlinkvalue(FLitemler.Key + 1, LinkValue.Diameter, out float valueDiaa);
                    PublicListeler.AraList_kontrolSonrasi.Add(FLitemler.Key, valueDiaa);
                }
                else
                {
                    int   d = (Array.FindIndex(Sabitler.Pipe_Diameters, x => x.Equals(FLitemler.Value)));
                    float e = Sabitler.Pipe_Diameters[d];
                    UnsafeNativeMethods.ENsetlinkvalue(FLitemler.Key + 1, LinkValue.Diameter, e);
                    UnsafeNativeMethods.ENgetlinkvalue(FLitemler.Key + 1, LinkValue.Diameter, out float valueDiaa2);
                    Console.WriteLine(FLitemler.Key + 1 + ". pipe will be remained SAME");
                    PublicListeler.AraList_kontrolSonrasi.Add(FLitemler.Key, valueDiaa2);
                    NetworkOp.SaveAndRun();
                    PublicListeler.SabitListe.Add(FLitemler.Key, valueDiaa2);       //boru çapı azalmayacağı için Sabit listeye atanıyor.
                }
            }
            NetworkOp.OnlySave();
            Console.WriteLine("_____________________________");
            var yazdirilk = PublicListeler.List_BoruvCap.OrderBy(x => x.Key);

            foreach (KeyValuePair <int, float> kvp in yazdirilk)
            {
                UnsafeNativeMethods.ENsetlinkvalue(kvp.Key + 1, LinkValue.Diameter, kvp.Value);
                Console.WriteLine("iterasyon sonucunda > Boru = {0} = {1}", kvp.Key + 1, kvp.Value);
            }
            PublicListeler.List_BoruvCap.Clear();// List_BoruvCap LISTESINI TEMIZLIYORUM BURDA
            return(PublicListeler.AraList_kontrolSonrasi);
        }
        public static void Calculate_PowDis_ILK(Dictionary <int, float> icListem)
        {
            int[]   boruIndex1       = new int[icListem.Count];
            int[]   boruIndex2       = new int[icListem.Count];
            float[] boruFiyat1       = new float[icListem.Count];
            float[] boruFiyat2       = new float[icListem.Count];
            float[] Cap1             = new float[icListem.Count]; //8 elemanlı dizi oluşturdu
            float[] Cap2             = new float[icListem.Count];
            float[] boruLenght1      = new float[icListem.Count];
            float[] boruLenght2      = new float[icListem.Count];
            float[] Pipe_Start_Point = new float[icListem.Count];
            float[] Pipe_End_Point   = new float[icListem.Count];
            //listeyi sıralıyor..
            var iclistSirali = icListem.OrderBy(x => x.Key).ToList();

            Cap1 = iclistSirali.Select(z => z.Value).ToArray();
            //Boruların başlangıç ve bitiş noktalarını bulup dizi haline getiriyor..
            for (int i = 0; i < icListem.Count; i++)
            {
                UnsafeNativeMethods.ENgetlinknodes(i + 1, out int NodeS, out int NodeF);
                Pipe_End_Point[i]   = NodeS;
                Pipe_Start_Point[i] = NodeF;
            }
            //boruların CAP1 ve CAP2 olarak uzunluk ve fiyatlarını buluyor..
            for (int k = 0; k < icListem.Count; k++)
            {
                UnsafeNativeMethods.ENgetlinkvalue(k + 1, LinkValue.Length, out float lenght1);
                boruLenght1[k] = lenght1;
            }
            for (int k = 0; k < icListem.Count; k++)
            {
                boruIndex1[k] = Array.IndexOf(Sabitler.Pipe_Diameters, Cap1[k]);
                boruFiyat1[k] = Sabitler.Pipe_Cost[boruIndex1[k]] * boruLenght1[k];
                Cap2[k]       = Sabitler.Pipe_Diameters[Array.IndexOf(Sabitler.Pipe_Diameters, Cap1[k]) - 1];
                boruIndex2[k] = Array.IndexOf(Sabitler.Pipe_Diameters, Cap2[k]);
                boruFiyat2[k] = Sabitler.Pipe_Cost[boruIndex2[k]] * boruLenght1[k];
            }
            // Junctionların demandlerini alıyoruz.//BUNU SADECE 1 kere yapıyoruz...
            for (int i = 0; i < NodeOp.Get_numofNode(); i++)
            {
                UnsafeNativeMethods.ENgetnodevalue(i + 1, NodeValue.Demand, out float DemandValue);
                if (DemandValue < 0)
                {
                    PublicListeler.Node_Demand_list.Add(i + 1, 0);
                }
                else
                {
                    float deger = DemandValue * (float)3.6;
                    PublicListeler.Node_Demand_list.Add(i + 1, deger);
                }
            }
            //////////////////////////GAMA DURUMU İÇİN (CAP2)//////////////////////
            // Start_Point noktası için HGL-Demand
            float[] Start_Point_HGL_CAP2 = new float[icListem.Count];
            float[] End_Point_HGL_CAP2   = new float[icListem.Count];
            //Networke CAP2'yi atayıp sistemi analiz ediyoruz...
            for (int i = 0; i < icListem.Count; i++)
            {
                UnsafeNativeMethods.ENsetlinkvalue(i + 1, LinkValue.Diameter, Cap2[i]);
            }
            NetworkOp.SaveAndRun();
            // HGL değerlerini çekiyoruz... node numarasına denk gelen HGL leri listeliyoruz.
            for (int i = 0; i < NodeOp.Get_numofNode(); i++)
            {
                UnsafeNativeMethods.ENgetnodevalue(i + 1, NodeValue.Head, out float HGL);
                PublicListeler.Node_HGL_list_CAP2.Add(i + 1, HGL);
            }
            //////////////////////////GAMA DURUMU İÇİN (CAP1)//////////////////////
            // Start_Point noktası için HGL-Demand
            float[] Start_Point_HGL_CAP1 = new float[icListem.Count];
            float[] End_Point_HGL_CAP1   = new float[icListem.Count];
            //Networke CAP1 i atayıp sistemi analiz ediyoruz...
            for (int i = 0; i < icListem.Count; i++)
            {
                UnsafeNativeMethods.ENsetlinkvalue(i + 1, LinkValue.Diameter, Cap1[i]);
            }
            NetworkOp.SaveAndRun();
            // HGL değerlerini çekiyoruz...
            for (int i = 0; i < NodeOp.Get_numofNode(); i++)
            {
                UnsafeNativeMethods.ENgetnodevalue(i + 1, NodeValue.Head, out float HGL);
                PublicListeler.Node_HGL_list_CAP1.Add(i + 1, HGL);
            }
            //power dissipationlar hesaplanacak ve Ratio bulunacak
            float[] PowDisp_1 = new float[icListem.Count];
            float[] PowDisp_2 = new float[icListem.Count];
            float[] Ratio     = new float[icListem.Count];

            for (int t = 0; t < icListem.Count; t++)
            {
                UnsafeNativeMethods.ENgetlinknodes(t + 1, out int NodeS, out int NodeF);
                if (PublicListeler.Node_HGL_list_CAP1[NodeS] > PublicListeler.Node_HGL_list_CAP1[NodeF])
                {
                    PowDisp_1[t] = (PublicListeler.Node_Demand_list[NodeS] * PublicListeler.Node_HGL_list_CAP1[NodeS] - PublicListeler.Node_Demand_list[NodeF] * PublicListeler.Node_HGL_list_CAP1[NodeF]) / 3600;
                }
                else
                {
                    PowDisp_1[t] = -(PublicListeler.Node_Demand_list[NodeS] * PublicListeler.Node_HGL_list_CAP1[NodeS] - PublicListeler.Node_Demand_list[NodeF] * PublicListeler.Node_HGL_list_CAP1[NodeF]) / 3600;
                }

                if (PublicListeler.Node_HGL_list_CAP2[NodeS] > PublicListeler.Node_HGL_list_CAP2[NodeF])
                {
                    PowDisp_2[t] = (PublicListeler.Node_Demand_list[NodeS] * PublicListeler.Node_HGL_list_CAP2[NodeS] - PublicListeler.Node_Demand_list[NodeF] * PublicListeler.Node_HGL_list_CAP2[NodeF]) / 3600;
                }
                else
                {
                    PowDisp_2[t] = -(PublicListeler.Node_Demand_list[NodeS] * PublicListeler.Node_HGL_list_CAP2[NodeS] - PublicListeler.Node_Demand_list[NodeF] * PublicListeler.Node_HGL_list_CAP2[NodeF]) / 3600;
                }

                Ratio[t] = -(boruFiyat2[t] - boruFiyat1[t]) / ((PowDisp_2[t] - PowDisp_1[t]) * Sabitler.g * 1000);
                PublicListeler.Powdis_Dict_ILK.Add(t, Ratio[t]);
            }
            for (int i = 0; i < icListem.Count(); i++)
            {
                UnsafeNativeMethods.ENsetlinkvalue(i + 1, LinkValue.Diameter, Cap1[i]);
            }
            NetworkOp.SaveAndRun();
            PublicListeler.Node_HGL_list_CAP1.Clear();
            PublicListeler.Node_HGL_list_CAP2.Clear();
        }
        public static void Calculate_PowerDissipation(Dictionary <int, float> icListe) //Burdaki Dictionarylerde sorun yokz
        {
            PublicListeler.Powdis_Dict.Clear();                                        //Her sefer yeniden eleman ekleneceği için listeleri temizliyorum.
            int[]   boruIndex1       = new int[icListe.Count];
            int[]   boruIndex2       = new int[icListe.Count];
            float[] boruFiyat1       = new float[icListe.Count];
            float[] boruFiyat2       = new float[icListe.Count];
            float[] Cap1             = new float[icListe.Count]; //8 elemanlı dizi oluşturdu
            float[] Cap2             = new float[icListe.Count];
            float[] boruLenght1      = new float[icListe.Count];
            float[] boruLenght2      = new float[icListe.Count];
            float[] Pipe_Start_Point = new float[icListe.Count];
            float[] Pipe_End_Point   = new float[icListe.Count];
            var     iclistSirali     = icListe.OrderBy(x => x.Key).ToList();

            Cap1 = iclistSirali.Select(z => z.Value).ToArray();
            //Boruların başlangıç ve bitiş noktalarını bulup dizi haline getiriyor..
            for (int i = 0; i < icListe.Count; i++)
            {
                UnsafeNativeMethods.ENgetlinknodes(i + 1, out int NodeS, out int NodeF);
                Pipe_End_Point[i]   = NodeS;
                Pipe_Start_Point[i] = NodeF;
            }
            for (int k = 0; k < icListe.Count; k++)
            {
                UnsafeNativeMethods.ENgetlinkvalue(k + 1, LinkValue.Length, out float lenght1);
                boruLenght1[k] = lenght1;
            }
            for (int k = 0; k < icListe.Count; k++)
            {
                boruIndex1[k] = Array.IndexOf(Sabitler.Pipe_Diameters, Cap1[k]);
                boruFiyat1[k] = Sabitler.Pipe_Cost[boruIndex1[k]] * boruLenght1[k];

                if (PublicListeler.SabitListe.Count == 0)
                {
                    Cap2[k] = Sabitler.Pipe_Diameters[Array.IndexOf(Sabitler.Pipe_Diameters, Cap1[k]) - 1];
                }
                else
                {
                    if (PublicListeler.SabitListe.ContainsKey(k))
                    {
                        Cap2[k] = Sabitler.Pipe_Diameters[Array.IndexOf(Sabitler.Pipe_Diameters, Cap1[k])];
                    }
                    else
                    {
                        if (Array.IndexOf(Sabitler.Pipe_Diameters, Cap1[k]) == 0)
                        {
                            Cap2[k] = Sabitler.Pipe_Diameters[Array.IndexOf(Sabitler.Pipe_Diameters, Cap1[k])];
                        }
                        else
                        {
                            Cap2[k] = Sabitler.Pipe_Diameters[Array.IndexOf(Sabitler.Pipe_Diameters, Cap1[k]) - 1];
                        }
                    }
                }
                boruIndex2[k] = Array.IndexOf(Sabitler.Pipe_Diameters, Cap2[k]);
                boruFiyat2[k] = Sabitler.Pipe_Cost[boruIndex2[k]] * boruLenght1[k];
            }
            for (int i = 0; i < icListe.Count(); i++)
            {
                UnsafeNativeMethods.ENsetlinkvalue(i + 1, LinkValue.Diameter, Cap1[i]);//Eski haline getirdi sistemi
            }
            NetworkOp.SaveAndRun();
            //////////////////////////GAMA DURUMU İÇİN (CAP2)//////////////////////
            float[] Start_Point_HGL_CAP2 = new float[icListe.Count];
            float[] End_Point_HGL_CAP2   = new float[icListe.Count];
            //Networke CAP2'yi atayıp sistemi analiz ediyoruz...
            for (int i = 0; i < icListe.Count; i++)
            {
                UnsafeNativeMethods.ENsetlinkvalue(i + 1, LinkValue.Diameter, Cap2[i]);
            }
            NetworkOp.SaveAndRun();
            // HGL değerlerini çekiyoruz...
            for (int i = 0; i < icListe.Count; i++)
            {
                UnsafeNativeMethods.ENgetnodevalue(i + 1, NodeValue.Head, out float HGL);
                PublicListeler.Node_HGL_list_CAP2.Add(i + 1, HGL);
            }
            //////////////////////////GAMA DURUMU İÇİN (CAP1)//////////////////////
            // Start_Point noktası için HGL-Demand
            float[] Start_Point_HGL_CAP1 = new float[icListe.Count];
            float[] End_Point_HGL_CAP1   = new float[icListe.Count];

            //Networke CAP1 i atayıp sistemi analiz ediyoruz...
            for (int i = 0; i < icListe.Count; i++)
            {
                UnsafeNativeMethods.ENsetlinkvalue(i + 1, LinkValue.Diameter, Cap1[i]);
            }
            NetworkOp.SaveAndRun();

            // HGL değerlerini çekiyoruz...
            for (int i = 0; i < icListe.Count; i++)
            {
                UnsafeNativeMethods.ENgetnodevalue(i + 1, NodeValue.Head, out float HGL);
                PublicListeler.Node_HGL_list_CAP1.Add(i + 1, HGL);
            }



            ///Power Dissipation Calculation\\\
            float[] PowDisp_1 = new float[icListe.Count];
            float[] PowDisp_2 = new float[icListe.Count];
            float[] Ratio     = new float[icListe.Count];


            for (int t = 0; t < icListe.Count; t++)
            {
                UnsafeNativeMethods.ENgetlinknodes(t + 1, out int NodeS, out int NodeF);
                if (PublicListeler.Node_HGL_list_CAP1[NodeS] > PublicListeler.Node_HGL_list_CAP1[NodeF])
                {
                    PowDisp_1[t] = (PublicListeler.Node_Demand_list[NodeS] * PublicListeler.Node_HGL_list_CAP1[NodeS] - PublicListeler.Node_Demand_list[NodeF] * PublicListeler.Node_HGL_list_CAP1[NodeF]) / 3600;
                }
                else
                {
                    PowDisp_1[t] = -(PublicListeler.Node_Demand_list[NodeS] * PublicListeler.Node_HGL_list_CAP1[NodeS] - PublicListeler.Node_Demand_list[NodeF] * PublicListeler.Node_HGL_list_CAP1[NodeF]) / 3600;
                }

                if (PublicListeler.Node_HGL_list_CAP2[NodeS] > PublicListeler.Node_HGL_list_CAP2[NodeF])
                {
                    PowDisp_2[t] = (PublicListeler.Node_Demand_list[NodeS] * PublicListeler.Node_HGL_list_CAP2[NodeS] - PublicListeler.Node_Demand_list[NodeF] * PublicListeler.Node_HGL_list_CAP2[NodeF]) / 3600;
                }
                else
                {
                    PowDisp_2[t] = -(PublicListeler.Node_Demand_list[NodeS] * PublicListeler.Node_HGL_list_CAP2[NodeS] - PublicListeler.Node_Demand_list[NodeF] * PublicListeler.Node_HGL_list_CAP2[NodeF]) / 3600;
                }

                //Ratio[t] = -(boruFiyat2[t] - boruFiyat1[t]) / ((PowDisp_2[t] - PowDisp_1[t]) * Sabitler.g * 1000);
                //Console.WriteLine("PublicListeler.Node_Demand_list[NodeS]: " + PublicListeler.Node_Demand_list[NodeS]);
                //Console.WriteLine("PublicListeler.Node_Demand_list[NodeF]: " + PublicListeler.Node_Demand_list[NodeF]);
                //Console.WriteLine("Ratio= -(" + boruFiyat2[t] + " - " + boruFiyat1[t] + " )/( " + PowDisp_2[t] + " - " + PowDisp_1[t] + " * " + Sabitler.g + "*1000= " + Ratio[t]);

                //Console.WriteLine("PowDisp_1[" + t + "]=" + (((PublicListeler.Node_Demand_list[NodeS] * PublicListeler.Node_HGL_list_CAP1[NodeS]) - (PublicListeler.Node_Demand_list[NodeF] * PublicListeler.Node_HGL_list_CAP1[NodeF])) / 3600) + " = " + PublicListeler.Node_Demand_list[NodeS] + " * " + PublicListeler.Node_HGL_list_CAP1[NodeS] + " - " + PublicListeler.Node_Demand_list[NodeF] + " * " + PublicListeler.Node_HGL_list_CAP1[NodeF]);
                //Console.WriteLine("PowDisp_2[" + t + "]=" + (((PublicListeler.Node_Demand_list[NodeS] * PublicListeler.Node_HGL_list_CAP2[NodeS]) - (PublicListeler.Node_Demand_list[NodeF] * PublicListeler.Node_HGL_list_CAP2[NodeF])) / 3600) + " = " + PublicListeler.Node_Demand_list[NodeS] + " * " + PublicListeler.Node_HGL_list_CAP2[NodeS] + " - " + PublicListeler.Node_Demand_list[NodeF] + " * " + PublicListeler.Node_HGL_list_CAP2[NodeF]);


                if (PowDisp_1[t] == PowDisp_2[t] || boruFiyat1[t] == boruFiyat2[t])//veya borufiyatlar eşitse
                {
                    PublicListeler.Powdis_Dict.Add(t, -9999999);
                }
                else
                {
                    Ratio[t] = -(boruFiyat2[t] - boruFiyat1[t]) / ((PowDisp_2[t] - PowDisp_1[t]) * Sabitler.g * 1000);
                    PublicListeler.Powdis_Dict.Add(t, Ratio[t]);
                }
            }

            for (int i = 0; i < icListe.Count(); i++)
            {
                UnsafeNativeMethods.ENsetlinkvalue(i + 1, LinkValue.Diameter, Cap1[i]);
            }
            NetworkOp.SaveAndRun();
            PublicListeler.Node_HGL_list_CAP1.Clear();
            PublicListeler.Node_HGL_list_CAP2.Clear();
        }
Exemplo n.º 5
0
        public static Dictionary <int, float> Iteration(Dictionary <int, float> icListe)
        {
            PipeOp.Calculate_PowerDissipation(icListe);

            var RankedList = PublicListeler.Powdis_Dict.OrderByDescending(x => x.Value).ToList();

            foreach (var itemq in RankedList.ToList())
            {
                UnsafeNativeMethods.ENgetlinkvalue(itemq.Key + 1, LinkValue.Diameter, out float valueDiam);
                PublicListeler.List_BoruvCap.Add(itemq.Key, valueDiam);
            }
            RankedList.Clear();                                           // RANKEDLIST ICINI TEMIZLIYORUM BURDA
            PublicListeler.Powdis_Dict.Clear();                           //Powdis_Dict ICINI TEMIZLIYORUM

            foreach (var FLitemler in PublicListeler.List_BoruvCap)       //kontroller ve azaltmalar
            {
                if (PublicListeler.SabitListe.ContainsKey(FLitemler.Key)) //Eğer test edilen eleman Sabit listede varsa
                {
                    UnsafeNativeMethods.ENgetlinkvalue(FLitemler.Key + 1, LinkValue.Diameter, out float c2);
                    PublicListeler.AraList_kontrolSonrasi.Add(FLitemler.Key, c2);
                }
                else
                {
                    if (Array.FindIndex(Sabitler.Pipe_Diameters, x => x.Equals(FLitemler.Value)) == 0)
                    {
                        int a = (Array.FindIndex(Sabitler.Pipe_Diameters, x => x.Equals(FLitemler.Value)));
                        UnsafeNativeMethods.ENsetlinkvalue(FLitemler.Key + 1, LinkValue.Diameter, a);  //AZALTMAYI BURDA YAPIYORUM\\\
                        NetworkOp.SaveAndRun();
                    }
                    else
                    {
                        int   a = (Array.FindIndex(Sabitler.Pipe_Diameters, x => x.Equals(FLitemler.Value)));
                        float b = Sabitler.Pipe_Diameters[a - 1];                                     //bu son boruya gelince saçmalıyor düzeltmemiz lazım
                        UnsafeNativeMethods.ENsetlinkvalue(FLitemler.Key + 1, LinkValue.Diameter, b); //AZALTMAYI BURDA YAPIYORUM\\\
                        NetworkOp.SaveAndRun();
                    }


                    if (Iterations.Kontroller(FLitemler.Key) == true)
                    {
                        Console.WriteLine(FLitemler.Key + 1 + ". pipe will be Reduced.....");
                        UnsafeNativeMethods.ENgetlinkvalue(FLitemler.Key + 1, LinkValue.Diameter, out float valueDiaa);
                        PublicListeler.AraList_kontrolSonrasi.Add(FLitemler.Key, valueDiaa);
                    }
                    else
                    {
                        int   a = (Array.FindIndex(Sabitler.Pipe_Diameters, x => x.Equals(FLitemler.Value)));
                        float c = Sabitler.Pipe_Diameters[a];
                        UnsafeNativeMethods.ENsetlinkvalue(FLitemler.Key + 1, LinkValue.Diameter, c);
                        //UnsafeNativeMethods.ENgetlinkvalue(FLitemler.Key + 1, LinkValue.Diameter, out float valueDiaa2);
                        Console.WriteLine(FLitemler.Key + 1 + ". pipe will be remained SAME");
                        PublicListeler.AraList_kontrolSonrasi.Add(FLitemler.Key, c);
                        NetworkOp.SaveAndRun();
                    }
                }
            }

            NetworkOp.SaveAndRun();
            foreach (var eleman in PublicListeler.AraList_kontrolSonrasi)
            {
                if (eleman.Value == PublicListeler.List_BoruvCap[eleman.Key])   //&&
                {
                    if (PublicListeler.SabitListe.ContainsKey(eleman.Key))
                    {
                        // Console.WriteLine("Sabit listede var Boru = {0}, Çap = {1}", eleman.Key, eleman.Value);
                    }
                    else
                    {
                        PublicListeler.SabitListe.Add(eleman.Key, eleman.Value);
                        // Console.WriteLine("SONHAL" + (eleman.Key + 1) + ". borunun Çapı: " + eleman.Value);
                    }
                }
            }
            Console.WriteLine("_____________________________");
            var yazdir = PublicListeler.List_BoruvCap.OrderBy(x => x.Key);

            foreach (KeyValuePair <int, float> kvp in yazdir)
            {
                UnsafeNativeMethods.ENsetlinkvalue(kvp.Key + 1, LinkValue.Diameter, kvp.Value);
                Console.WriteLine("iterasyon sonucunda > Boru = {0} = {1}", kvp.Key + 1, kvp.Value);
            }
            PublicListeler.List_BoruvCap.Clear();// List_BoruvCap LISTESINI TEMIZLIYORUM BURDA
            return(PublicListeler.AraList_kontrolSonrasi);
        }
Exemplo n.º 6
0
        public static void Main()
        {
            ResIndexClass ResIndex = new ResIndexClass();
            NetworkOp     RunSim   = new NetworkOp();

            RunSim.StartSimulation();  // Networkü perform eder

            //Console.WriteLine("Resilience Index: ");//Kullanıcıdan Resilience index alınır
            //ResIndex.SetResindex(Convert.ToDouble(Console.ReadLine()));
            //double UserDefinedResindex=ResIndex.GetResindex();      //UserDefinedResindex Resilience indexi veriyor
            //PipeOp.Get_Flow(PipeOp.Get_numofPipe());

            PipeOp.Get_Flow();
            NetworkOp.SaveAndRun();

            //Console.WriteLine(PipeOp.PipeCost_Dia(1));
            //ReservoirOp.Get_ResElevation();

            //BU REZERVUAR YÜKSEKLİKLERİNİ ALABİLDİĞİM KISIM
            //float[] resyukseklikleri = ReservoirOp.Get_ResElevations();
            //foreach (float i in resyukseklikleri)
            //{
            //Console.WriteLine( "{0}", i);
            //}
            //BU REZERVUAR YÜKSEKLİKLERİNİ ALABİLDİĞİM KISIM

            //ReservoirOp.Calculate_TotalPowerofSystem();
            //PipeOp.Set_PipeDia(550);
            NetworkOp.SaveAndRun();


            //float[] Diameter1 = new float[PipeOp.Get_numofPipe()];
            //float[] Diameter2 = new float[PipeOp.Get_numofPipe()];

            //for (int j = 0; j < PipeOp.Get_numofPipe(); j++)
            //{
            //    Diameter1[j] = 550;
            //    Diameter2[j] = 500;

            //}

            // PipeOp.Calculate_PowerDissipation(Diameter1, Diameter2);
            PipeOp.Set_PipeDia(550);



            ////////////////////////////////////////DÖNGÜ/////////////////////////////////////////////////////////////////////////////////////////////
            for (int i = 0; i < PipeOp.Get_numofPipe(); i++)
            {
                PublicListeler.ANALISTE.Add(i, Sabitler.Pipe_Diameters[Sabitler.Pipe_Diameters.Length - 1]);//yani 550
            }

            Console.WriteLine(1 + ". Döngü Başlangıcı");
            PublicListeler.DonguListesi = Iterations.Iteration_ILK(PublicListeler.ANALISTE).ToDictionary(entry => entry.Key, entry => entry.Value);
            PublicListeler.AraList_kontrolSonrasi.Clear();
            PublicListeler.SabitListe.Add(-1, 0);

            do
            {
                sayac = sayac + 1;
                Console.WriteLine("------------------------------------");
                Console.WriteLine(sayac + 1 + ". Döngü Başlangıcı");
                PublicListeler.DonguListesi = Iterations.Iteration(PublicListeler.DonguListesi).ToDictionary(entry => entry.Key, entry => entry.Value);
                PublicListeler.AraList_kontrolSonrasi.Clear();
            } while (PublicListeler.SabitListe.Count < PublicListeler.ANALISTE.Count);
            //
            ////////////////////////////////////////DÖNGÜ/////////////////////////////////////////////////////////////////////////////////////////////



            Console.WriteLine(" ");
            Console.WriteLine("-----------SON DURUM-------------------------");
            foreach (KeyValuePair <int, float> kvp in PublicListeler.SabitListe)
            {
                Console.WriteLine("Sabit Liste > Boru = {0}, Çap = {1}", kvp.Key, kvp.Value);
            }



            Console.ReadLine();
        }
        private void button5_Click(object sender, EventArgs e)
        {
            ResIndexClass.Kullanıcı_ResilienceIndex = float.Parse(txt_resindex.Text);
            Sabitler.MinHead = float.Parse(txt_minPressure.Text);
            DonguClass.DonguGiris();

            UnsafeNativeMethods.ENsetlinkvalue(0, LinkValue.Diameter, (float)500);
            UnsafeNativeMethods.ENsetlinkvalue(1, LinkValue.Diameter, (float)500);
            UnsafeNativeMethods.ENsetlinkvalue(2, LinkValue.Diameter, (float)500);
            UnsafeNativeMethods.ENsetlinkvalue(3, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(4, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(5, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(6, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(7, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(8, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(9, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(10, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(11, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(12, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(13, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(14, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(15, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(16, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(17, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(18, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(19, LinkValue.Diameter, (float)300);
            UnsafeNativeMethods.ENsetlinkvalue(20, LinkValue.Diameter, (float)250);
            UnsafeNativeMethods.ENsetlinkvalue(21, LinkValue.Diameter, (float)250);
            UnsafeNativeMethods.ENsetlinkvalue(22, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(23, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(24, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(25, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(26, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(27, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(28, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(29, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(30, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(31, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(32, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(33, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(34, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(35, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(36, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(37, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(38, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(39, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(40, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(41, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(42, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(43, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(44, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(45, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(46, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(47, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(48, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(49, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(50, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(51, LinkValue.Diameter, (float)200);
            UnsafeNativeMethods.ENsetlinkvalue(52, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(53, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(54, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(55, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(56, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(57, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(58, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(59, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(60, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(61, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(62, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(63, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(64, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(65, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(66, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(67, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(68, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(69, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(70, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(71, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(72, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(73, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(74, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(75, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(76, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(77, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(78, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(79, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(80, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(81, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(82, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(83, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(84, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(85, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(86, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(87, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(88, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(89, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(90, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(91, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(92, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(93, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(94, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(95, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(96, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(97, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(98, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(99, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(100, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(101, LinkValue.Diameter, (float)125);
            UnsafeNativeMethods.ENsetlinkvalue(102, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(103, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(104, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(105, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(106, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(107, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(108, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(109, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(110, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(111, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(112, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(113, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(114, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(115, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(116, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(117, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(118, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(119, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(120, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(121, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(122, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(123, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(124, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(125, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(126, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(127, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(128, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(129, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(130, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(131, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(132, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(133, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(134, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(135, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(136, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(137, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(138, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(139, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(140, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(141, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(142, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(143, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(144, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(145, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(146, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(147, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(148, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(149, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(150, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(151, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(152, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(153, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(154, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(155, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(156, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(157, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(158, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(159, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(160, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(161, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(162, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(163, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(164, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(165, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(166, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(167, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(168, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(169, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(170, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(171, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(172, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(173, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(174, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(175, LinkValue.Diameter, (float)100);
            UnsafeNativeMethods.ENsetlinkvalue(176, LinkValue.Diameter, (float)100);

            NetworkOp.SaveAndRun();
            float x = ResIndexClass.Calculate_Resindex();

            ind.Text = x.ToString();
        }