public static void DonguCalistir() { int sayac = 0; ////////////////////////////////////////LOOP////////////////////////////////////////////////////////////////////////////////////////// for (int i = 0; i < PipeOp.Get_numofPipe(); i++) { PublicListeler.ANALISTE.Add(i, Sabitler.Pipe_Diameters[Sabitler.Pipe_Diameters.Length - 1]);//yani 558,8 UnsafeNativeMethods.ENsetlinkvalue(i + 1, LinkValue.InitSetting, 130); } Console.WriteLine(1 + ". Döngü Başlangıcı"); PublicListeler.DonguListesi = Iterations.Iteration_ILK(PublicListeler.ANALISTE).ToDictionary(entry => entry.Key, entry => entry.Value); Console.WriteLine("-------1. iterasyon sonucu Reilience index: " + ResIndexClass.Calculate_Resindex()); Console.WriteLine("-------1. iterasyon sonucu head difference: " + FailureIndexClass.Calculate_Failureindex()); Console.WriteLine("Hizlar "); var hizlar = PipeOp.Get_Velocity(); for (int i = 0; i < PipeOp.Get_numofPipe(); i++) { Console.WriteLine(hizlar[i]); } PublicListeler.AraList_kontrolSonrasi.Clear(); 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); int say = sayac + 1; Console.WriteLine("-------" + say + ". iterasyon sonucu Reilience index: " + ResIndexClass.Calculate_Resindex()); Console.WriteLine("-------" + say + ". iterasyon sonucu head difference: " + FailureIndexClass.Calculate_Failureindex()); Console.WriteLine("Hizlar "); var hizlar2 = PipeOp.Get_Velocity(); for (int i = 0; i < PipeOp.Get_numofPipe(); i++) { Console.WriteLine(hizlar2[i]); } PublicListeler.AraList_kontrolSonrasi.Clear(); } while (PublicListeler.SabitListe.Count < PublicListeler.ANALISTE.Count); ////////////////////////////////////////LOOP///////////////////////////////////////////////////////////////////////////////////////////// Console.WriteLine(" "); var sonhal = PublicListeler.SabitListe.OrderBy(x => x.Key).ToList(); Console.WriteLine(" "); Console.WriteLine("-----------SON DURUMDA ÇAPLAR---------------"); foreach (KeyValuePair <int, float> kvp in sonhal) { UnsafeNativeMethods.ENsetlinkvalue(kvp.Key + 1, LinkValue.Diameter, kvp.Value); Console.WriteLine("Son hal > Boru = {0}, Çap = {1}", kvp.Key + 1, kvp.Value); } Console.WriteLine(" "); float min = FailureIndexClass.Calculate_Failureindex(); float rez = ResIndexClass.Calculate_Resindex(); PipeOp.CostCalculation(PublicListeler.SabitListe); Console.WriteLine("Pressure-30m= " + min); Console.WriteLine("Resilience index: " + rez); }
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()); }
private void btn_Pareto_Click(object sender, EventArgs e) { //SAYAC ind.Text = Convert.ToString(sayi); timer1.Interval = 1000; timer1.Start(); //SAYAC //dataGridView2.Rows.Clear(); for (int i = 10; i < 98; i += 3) { //PublicListeler.ANALISTE.Clear(); Console.Clear(); double res = i / 100.0; ResIndexClass.Kullanıcı_ResilienceIndex = (float)res; Sabitler.MinHead = float.Parse(txt_minPressure.Text); DonguClass.DonguGiris(); DonguClass.DonguCalistir(); string a = FailureIndexClass.Calculate_Failureindex().ToString(); string b = ResIndexClass.Calculate_Resindex().ToString(); float c = PipeOp.CostCalculation(PublicListeler.SabitListe); dataGridView2.Rows.Add(i, res, a, b, c); PublicListeler.resres.Clear(); PublicListeler.ANALISTE.Clear(); PublicListeler.IterListesi.Clear(); PublicListeler.ANALISTE.Clear(); PublicListeler.Powdis_Dict.Clear(); PublicListeler.Powdis_Dict_ILK.Clear(); PublicListeler.AraList.Clear(); PublicListeler.GuncelBoruListesi.Clear(); PublicListeler.List_BoruvCap.Clear(); PublicListeler.AraList_kontrolSonrasi.Clear(); PublicListeler.dongu.Clear(); PublicListeler.SabitListe.Clear(); PublicListeler.DonguListesi.Clear(); PublicListeler.Node_Demand_list.Clear(); PublicListeler.Node_HGL_list_CAP1.Clear(); PublicListeler.Node_HGL_list_CAP2.Clear(); } timer1.Stop(); }
public static bool Kontroller(int b) ///b. boru için kontrol yapar\\\ { float[] Velocityler = PipeOp.Get_Velocity(); float f_index = FailureIndexClass.Calculate_Failureindex(); float r_index = ResIndexClass.Calculate_Resindex(); PublicListeler.resres.Add(r_index); if (Velocityler.Max() <= 2 && r_index > ResIndexClass.Kullanıcı_ResilienceIndex && f_index >= 0) { return(true); } return(false); }
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); }
private void button1_Click(object sender, EventArgs e) { dataGridView1.Rows.Clear(); Console.Clear(); lbl_res.Text = ""; lbl_cost.Text = " "; lbl_pressuredifference.Text = ""; ResIndexClass.Kullanıcı_ResilienceIndex = float.Parse(txt_resindex.Text); Sabitler.MinHead = float.Parse(txt_minPressure.Text); DonguClass.DonguGiris(); //DonguClass.DonguCalistir(); lbl_pressuredifference.Text = FailureIndexClass.Calculate_Failureindex().ToString(); lbl_res.Text = ResIndexClass.Calculate_Resindex().ToString(); float a = PipeOp.CostCalculation(PublicListeler.SabitListe); lbl_cost.Text = a.ToString(); for (int i = 0; i < PublicListeler.SabitListe.Count; i++) { UnsafeNativeMethods.ENgetlinkvalue(i + 1, LinkValue.Diameter, out float dia); dataGridView1.Rows.Add("Pipe " + (i + 1) + ":", dia); } PublicListeler.resres.Clear(); PublicListeler.ANALISTE.Clear(); PublicListeler.IterListesi.Clear(); PublicListeler.ANALISTE.Clear(); PublicListeler.Powdis_Dict.Clear(); PublicListeler.Powdis_Dict_ILK.Clear(); PublicListeler.AraList.Clear(); PublicListeler.GuncelBoruListesi.Clear(); PublicListeler.List_BoruvCap.Clear(); PublicListeler.AraList_kontrolSonrasi.Clear(); PublicListeler.dongu.Clear(); PublicListeler.SabitListe.Clear(); PublicListeler.DonguListesi.Clear(); PublicListeler.Node_Demand_list.Clear(); PublicListeler.Node_HGL_list_CAP1.Clear(); PublicListeler.Node_HGL_list_CAP2.Clear(); }
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); }
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(); }