コード例 #1
0
        public static float Calculate_Resindex()
        {
            float T_demand_carp_h_eksi_hstar = 0;
            float T_demand_carp_Hdesign      = 0;

            float[] Hdesignlar               = NodeOp.Get_Hdesign();
            float[] Elevler                  = NodeOp.Get_NodeElev();
            float[] Demandler                = NodeOp.Get_NodeDemand();
            float[] Pressurelar              = NodeOp.Get_Pressure();
            float[] h_eksi_hstar             = new float[NodeOp.Get_numofNode()];
            float[] demand_carp_h_eksi_hstar = new float[NodeOp.Get_numofNode()];
            float[] demand_carp_Hdesign      = new float[NodeOp.Get_numofNode()];
            for (int i = 0; i < NodeOp.Get_numofNode(); i++)
            {
                UnsafeNativeMethods.ENgetnodetype(i + 1, out NodeType kontrol);
                if (kontrol.ToString() != ReservoirOp.ChkNodeType)//reservuar değilse
                {
                    if (Demandler[i] > 0)
                    {
                        h_eksi_hstar[i]             = Pressurelar[i] - Sabitler.MinHead;
                        demand_carp_h_eksi_hstar[i] = Demandler[i] * h_eksi_hstar[i];
                        T_demand_carp_h_eksi_hstar  = T_demand_carp_h_eksi_hstar + demand_carp_h_eksi_hstar[i];
                        demand_carp_Hdesign[i]      = Demandler[i] * Hdesignlar[i];
                        T_demand_carp_Hdesign       = T_demand_carp_Hdesign + demand_carp_Hdesign[i];
                    }
                }
            }
            double ResHesaplanmis = (T_demand_carp_h_eksi_hstar) / (ReservoirOp.Calculate_TotalPowerofSystem() - T_demand_carp_Hdesign);
            double rounded        = Math.Round(ResHesaplanmis, 8);

            return((float)rounded);
        }
コード例 #2
0
        public static float Calculate_Failureindex()
        {
            float[] minDeger    = new float[NodeOp.Get_numofNode()];
            float[] Pressurelar = NodeOp.Get_Pressure();
            for (int i = 0; i < NodeOp.Get_numofNode(); i++)
            {
                UnsafeNativeMethods.ENgetnodetype(i + 1, out NodeType kontrol);
                if (kontrol.ToString() != ReservoirOp.ChkNodeType)//reservuar control
                {
                    minDeger[i] = Pressurelar[i] - Sabitler.MinHead;
                }
            }
            float minimumDeger = minDeger.Where(a => a > 0).Min();

            return(minimumDeger);
        }