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(); }
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"); } }
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); }
public static double calc_lr(double nfl, InputParameters inparams) { double lr = (nfl * inparams.gtf) * inparams.lsf; return(lr); }
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); }
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); }
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(); }
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; } }