Пример #1
0
        public static void get_input(string filename, InputParameters inparams)
        {
            StreamReader infile;

            infile         = new StreamReader(filename);
            inparams.a     = Double.Parse(infile.ReadLine());
            inparams.b     = Double.Parse(infile.ReadLine());
            inparams.t     = Double.Parse(infile.ReadLine());
            inparams.gt    = Int32.Parse(infile.ReadLine());
            inparams.w     = Double.Parse(infile.ReadLine());
            inparams.tnt   = Double.Parse(infile.ReadLine());
            inparams.sdx   = Double.Parse(infile.ReadLine());
            inparams.sdy   = Double.Parse(infile.ReadLine());
            inparams.sdz   = Double.Parse(infile.ReadLine());
            inparams.pbtol = Double.Parse(infile.ReadLine());
            infile.Close();
        }
Пример #2
0
 public static void check_constraints(InputParameters inparams)
 {
     if (inparams.a <= 0.0)
     {
         throw new System.ApplicationException("InputError: a must be greater than 0");
     }
     if (inparams.b <= 0.0)
     {
         throw new System.ApplicationException("InputError: b must be greater than 0");
     }
     if (inparams.asprat < 1.0)
     {
         throw new System.ApplicationException("InputError: a/b cannot be less than 1.0");
     }
     if (inparams.asprat > 5.0)
     {
         throw new System.ApplicationException("InputError: a/b cannot be greater than 5.0");
     }
     if (!((((((((((((inparams.t == 2.5) || (inparams.t == 2.7)) || (inparams.t == 3.0)) || (inparams.t == 4.0)) || (inparams.t == 5.0)) || (inparams.t == 6.0)) || (inparams.t == 8.0)) || (inparams.t == 10.0)) || (inparams.t == 12.0)) || (inparams.t == 16.0)) || (inparams.t == 19.0)) || (inparams.t == 22.0)))
     {
         throw new System.ApplicationException("InputError: t must be in [2.5,2.7,3.0,4.0,5.0,6.0,8.0,10.0,12.0,16.0,19.0,22.0]");
     }
     if (inparams.tnt <= 0.0)
     {
         throw new System.ApplicationException("InputError: tnt must be greater than 0");
     }
     if (inparams.wtnt < 4.5)
     {
         throw new System.ApplicationException("InputError: wtnt cannot be less than 4.5");
     }
     if (inparams.wtnt > 910.0)
     {
         throw new System.ApplicationException("InputError: wtnt cannot be greater than 910.0");
     }
     if (inparams.sd < 6.0)
     {
         throw new System.ApplicationException("InputError: sd cannot be less than 6.0");
     }
     if (inparams.sd > 130.0)
     {
         throw new System.ApplicationException("InputError: sd cannot be greater than 130.0");
     }
 }
Пример #3
0
        public static double calc_q_hat(double q, InputParameters inparams)
        {
            double q_hat = ((q * (Math.Pow(inparams.a * inparams.b, 2.0))) / (inparams.E * (Math.Pow(inparams.h, 4.0)))) * (1.0 / inparams.gtf);

            return(q_hat);
        }
Пример #4
0
        public static double calc_lr(double nfl, InputParameters inparams)
        {
            double lr = (nfl * inparams.gtf) * inparams.lsf;

            return(lr);
        }
Пример #5
0
        public static double calc_nfl(double q_hat_tol, InputParameters inparams)
        {
            double nfl = ((q_hat_tol * inparams.E) * (Math.Pow(inparams.h, 4.0))) / (Math.Pow(inparams.a * inparams.b, 2.0));

            return(nfl);
        }
Пример #6
0
        public static double calc_j_tol(InputParameters inparams)
        {
            double j_tol = Math.Log((Math.Log(1.0 / (1.0 - inparams.pbtol))) * ((Math.Pow((inparams.a / 1000.0) * (inparams.b / 1000.0), inparams.m - 1.0)) / ((inparams.k * (Math.Pow((inparams.E * 1000.0) * (Math.Pow(inparams.h / 1000.0, 2.0)), inparams.m))) * inparams.ldf)));

            return(j_tol);
        }
Пример #7
0
        public static void display_output(string filename, double q, double j, double q_hat_tol, double pb, double lr, double nfl, Boolean is_safe1, Boolean is_safe2, InputParameters inparams)
        {
            StreamWriter outfile;

            outfile = new StreamWriter(filename);
            outfile.Write("a           ");
            outfile.WriteLine(inparams.a);
            outfile.Write("b           ");
            outfile.WriteLine(inparams.b);
            outfile.Write("t           ");
            outfile.WriteLine(inparams.t);
            outfile.Write("w           ");
            outfile.WriteLine(inparams.w);
            outfile.Write("tnt         ");
            outfile.WriteLine(inparams.tnt);
            outfile.Write("sdx         ");
            outfile.WriteLine(inparams.sdx);
            outfile.Write("sdy         ");
            outfile.WriteLine(inparams.sdy);
            outfile.Write("sdz         ");
            outfile.WriteLine(inparams.sdz);
            outfile.Write("pbtol       ");
            outfile.WriteLine(inparams.pbtol);
            outfile.Write("asprat      ");
            outfile.WriteLine(inparams.asprat);
            outfile.Write("sd          ");
            outfile.WriteLine(inparams.sd);
            outfile.Write("h           ");
            outfile.WriteLine(inparams.h);
            outfile.Write("gtf         ");
            outfile.WriteLine(inparams.gtf);
            outfile.Write("ldf         ");
            outfile.WriteLine(inparams.ldf);
            outfile.Write("wtnt        ");
            outfile.WriteLine(inparams.wtnt);
            outfile.Write("E           ");
            outfile.WriteLine(inparams.E);
            outfile.Write("td          ");
            outfile.WriteLine(inparams.td);
            outfile.Write("m           ");
            outfile.WriteLine(inparams.m);
            outfile.Write("k           ");
            outfile.WriteLine(inparams.k);
            outfile.Write("lsf         ");
            outfile.WriteLine(inparams.lsf);
            outfile.Write("gt          ");
            outfile.WriteLine(inparams.gt);
            outfile.Write("Demand (q)                      ");
            outfile.WriteLine(q);
            outfile.Write("Stress Distr. Factor (j)        ");
            outfile.WriteLine(j);
            outfile.Write("Tolerable Pressure (q_hat_tol)  ");
            outfile.WriteLine(q_hat_tol);
            outfile.Write("Prob. of Breakage (pb)          ");
            outfile.WriteLine(pb);
            outfile.Write("Capacity (lr)                   ");
            outfile.WriteLine(lr);
            outfile.Write("Non-Factored Load (nfl)         ");
            outfile.WriteLine(nfl);
            outfile.Write("Safety Req. 1 (is_safe1)        ");
            outfile.WriteLine(is_safe1);
            outfile.Write("Safety Req. 2 (is_safe2)        ");
            outfile.WriteLine(is_safe2);
            if (is_safe1 && is_safe2)
            {
                outfile.WriteLine("For the given input parameters, the glass is considered safe.");
            }
            else
            {
                outfile.WriteLine("For the given input parameters, the glass is NOT considered safe.");
            }
            outfile.Close();
        }
Пример #8
0
 public static void derived_params(InputParameters inparams)
 {
     inparams.asprat = inparams.a / inparams.b;
     inparams.sd     = Math.Sqrt(((Math.Pow(inparams.sdx, 2.0)) + (Math.Pow(inparams.sdy, 2.0))) + (Math.Pow(inparams.sdz, 2.0)));
     inparams.ldf    = Math.Pow(inparams.td / 60.0, inparams.m / 16.0);
     inparams.wtnt   = inparams.w * inparams.tnt;
     if (inparams.t == 2.5)
     {
         inparams.h = 2.16;
     }
     else if (inparams.t == 2.7)
     {
         inparams.h = 2.59;
     }
     else if (inparams.t == 3.0)
     {
         inparams.h = 2.92;
     }
     else if (inparams.t == 4.0)
     {
         inparams.h = 3.78;
     }
     else if (inparams.t == 5.0)
     {
         inparams.h = 4.57;
     }
     else if (inparams.t == 6.0)
     {
         inparams.h = 5.56;
     }
     else if (inparams.t == 8.0)
     {
         inparams.h = 7.42;
     }
     else if (inparams.t == 10.0)
     {
         inparams.h = 9.02;
     }
     else if (inparams.t == 12.0)
     {
         inparams.h = 11.91;
     }
     else if (inparams.t == 16.0)
     {
         inparams.h = 15.09;
     }
     else if (inparams.t == 19.0)
     {
         inparams.h = 18.26;
     }
     else if (inparams.t == 22.0)
     {
         inparams.h = 21.44;
     }
     if (inparams.gt == 1)
     {
         inparams.gtf = 1.0;
     }
     else if (inparams.gt == 2)
     {
         inparams.gtf = 2.0;
     }
     else if (inparams.gt == 3)
     {
         inparams.gtf = 4.0;
     }
 }