Пример #1
0
        public override double GetLambda_r(StressType stress)
        {
            if (IsUniformThickness == true)
            {
                if (stress == StressType.Flexure)
                {
                    return(1.40 * SqrtE_Fy());
                }
                else
                {
                    return(1.40 * SqrtE_Fy());
                }
            }
            else
            {
                //this is not in the code, however the code only
                //addresses the uniform thickness case
                //these are the values for the I-Beam

                if (stress == StressType.Flexure)
                {
                    return(1.0 * SqrtE_Fy());
                }
                else
                {
                    return(0.56 * SqrtE_Fy());
                }
            }
        }
Пример #2
0
        public override double GetLambda_p(StressType stress)
        {
            if (IsUniformThickness==true)
            {
                if (stress == StressType.Flexure)
                {
                    return 1.12 * SqrtE_Fy();
                }
                else
                {
                    throw new ShapeParameterNotApplicableException("Lambda_p");
                } 
            }
            else
            {
                //this is not in the code, however the code only
                //addresses the uniform thickness case
                //these are the values for the I-Beam
                if (stress == StressType.Flexure)
                {
                    return 0.38 * SqrtE_Fy();
                }
                else
                {
                    throw new ShapeParameterNotApplicableException("Lambda_p");
                }

            }

        }
Пример #3
0
        public override double GetLambda_r(StressType stress)
        {
            if (IsUniformThickness == true)
            {
                if (stress == StressType.Flexure)
                {
                    return 1.40 * SqrtE_Fy();
                }
                else
                {
                    return 1.40 * SqrtE_Fy();
                } 
            }
            else
            {
                //this is not in the code, however the code only
                //addresses the uniform thickness case
                //these are the values for the I-Beam

                if (stress == StressType.Flexure)
                {
                    return 1.0 * SqrtE_Fy();
                }
                else
                {
                    return 0.56 * SqrtE_Fy();
                }
            }
        }
Пример #4
0
 public override double GetLambda_p(StressType stress)
 {
     if (IsUniformThickness == true)
     {
         if (stress == StressType.Flexure)
         {
             return(1.12 * SqrtE_Fy());
         }
         else
         {
             throw new ShapeParameterNotApplicableException("Lambda_p");
         }
     }
     else
     {
         //this is not in the code, however the code only
         //addresses the uniform thickness case
         //these are the values for the I-Beam
         if (stress == StressType.Flexure)
         {
             return(0.38 * SqrtE_Fy());
         }
         else
         {
             throw new ShapeParameterNotApplicableException("Lambda_p");
         }
     }
 }
Пример #5
0
 public override double GetLambda_r(StressType stress)
 {
     if (stress== StressType.Flexure)
     {
         return 1.03 * SqrtE_Fy();
     }
     else
     {
         return 0.75 * SqrtE_Fy();
     }
 }
Пример #6
0
 public override double GetLambda_r(StressType stress)
 {
     if (stress == StressType.Flexure)
     {
         return(1.40 * SqrtE_Fy());
     }
     else
     {
         return(1.40 * SqrtE_Fy());
     }
 }
Пример #7
0
 public override double GetLambda_p(StressType stress)
 {
     if (stress == StressType.Flexure)
     {
         return(1.12 * SqrtE_Fy());
     }
     else
     {
         throw new ShapeParameterNotApplicableException("Lambda_p");
     }
 }
Пример #8
0
 public override double GetLambda_p(StressType stress)
 {
     if (stress == StressType.Flexure)
     {
         return 0.84 * SqrtE_Fy();
     }
     else
     {
         throw new ShapeParameterNotApplicableException("Lambda_p");
     }
     
 }
Пример #9
0
        public override double GetLambda_r(StressType stress)
        {
            double E   = Material.ModulusOfElasticity;
            double F_y = Material.YieldStress;

            if (stress == StressType.Flexure)
            {
                return(0.31 * E / F_y);
            }
            else
            {
                return(0.11 * E / F_y);
            }
        }
        public override double GetLambda_r(StressType stress)
        {
            double E  = Material.ModulusOfElasticity;
            double kc = Get_kc();
            double Fy = Material.YieldStress;

            if (stress == StressType.Axial)
            {
                return(0.64 * Math.Sqrt((kc * E) / Fy));
            }
            else
            {
                return(0.95 * Math.Sqrt((kc * E) / Fy));
            }
        }
Пример #11
0
        public override double GetLambda_p(StressType stress)
        {


            if (stress == StressType.Flexure)
            {

                double Mp = 0;
                double My = 0;
                double hc = 0;
                double hp = 0;
                double Sc = 0;

                switch (compressionFiberPosition)
                {
                    case FlexuralCompressionFiberPosition.Top:
                        Sc = SectionI.S_xTop;
                        hc = SectionI.d - SectionI.y_Bar - SectionI.t_fTop;
                        hp = SectionI.d - SectionI.y_pBar - SectionI.t_fTop;
                        break;
                    case FlexuralCompressionFiberPosition.Bottom:
                        Sc = SectionI.S_xBot;
                        hc = SectionI.y_Bar - SectionI.t_fBot;
                        hp = SectionI.y_pBar - SectionI.t_fBot;
                        break;
                    default:
                        throw new Exception("Left and Right Compression Fiber positions are not supported");
                }
                double Fy =  Material.YieldStress;
                My = Sc * Fy;
                double Z = SectionI.Z_x;
                Mp = Z * Fy;

                double lambda_r = this.GetLambda_r(StressType.Flexure);

                double lambda_p;
                lambda_p = (hc/hp*SqrtE_Fy())/Math.Pow(0.54*(Mp/My)-0.09,2);
                lambda_p = lambda_p > lambda_r ? lambda_r : lambda_p;
                return lambda_p;
            }
            else
            {
                throw new ShapeParameterNotApplicableException("Lambda_p");
            }
        } 
Пример #12
0
        public override double GetLambda_p(StressType stress)
        {
            if (stress == StressType.Flexure)
            {
                double Mp = 0;
                double My = 0;
                double hc = 0;
                double hp = 0;
                double Sc = 0;

                switch (compressionFiberPosition)
                {
                case FlexuralCompressionFiberPosition.Top:
                    Sc = SectionI.S_xTop;
                    hc = SectionI.d - SectionI.y_Bar - SectionI.t_fTop;
                    hp = SectionI.d - SectionI.y_pBar - SectionI.t_fTop;
                    break;

                case FlexuralCompressionFiberPosition.Bottom:
                    Sc = SectionI.S_xBot;
                    hc = SectionI.y_Bar - SectionI.t_fBot;
                    hp = SectionI.y_pBar - SectionI.t_fBot;
                    break;

                default:
                    throw new Exception("Left and Right Compression Fiber positions are not supported");
                }
                double Fy = Material.YieldStress;
                My = Sc * Fy;
                double Z = SectionI.Z_x;
                Mp = Z * Fy;

                double lambda_r = this.GetLambda_r(StressType.Flexure);

                double lambda_p;
                lambda_p = (hc / hp * SqrtE_Fy()) / Math.Pow(0.54 * (Mp / My) - 0.09, 2);
                lambda_p = lambda_p > lambda_r ? lambda_r : lambda_p;
                return(lambda_p);
            }
            else
            {
                throw new ShapeParameterNotApplicableException("Lambda_p");
            }
        }
Пример #13
0
        /// <summary>
        /// Run the stress operation by setting up alljoyn, running the specified stress
        /// operation then tearing down alljoyn.
        /// </summary>
        /// <param name="stressType">Type of stress operation to run</param>
        /// <param name="manager">Stress manager which is managing this task</param>
        /// <param name="isMultipoint">True if operation uses multipoint sessions</param>
        public void Start(StressType stressType, StressManager manager, bool isMultipoint)
        {
            this.stressManager = manager;

            try
            {
                // Set up alljoyn
                this.DebugPrint("Creating and Starting the bus attachment");
                this.busAtt = new BusAttachment("BusStress", true, 4);
                this.busAtt.Start();
                this.busAtt.ConnectAsync(ConnectSpecs).AsTask().Wait();
                this.DebugPrint("Successfully connected to the bundled daemon");

                // Run the stress operation
                if (stressType == StressType.Default)
                {
                    this.RunDefault();
                }
                else if (stressType == StressType.Service)
                {
                    this.RunService(isMultipoint);
                }
                else
                {
                    this.foundName = new AutoResetEvent(false);
                    this.RunClient(isMultipoint);
                }

                // Tear down alljoyn
                this.DebugPrint("Disconnecting and stopping the bus attachment");
                this.busAtt.DisconnectAsync(ConnectSpecs).AsTask().Wait();
                this.busAtt.StopAsync().AsTask().Wait();
                this.DebugPrint("Successfully disconnected and stopped the bus attachment");
            }
            catch (Exception ex)
            {
                var errMsg = AllJoynException.GetErrorMessage(ex.HResult);
                this.DebugPrint(">>>> BusAttachment Error >>>> : " + errMsg);
            }

            this.busAtt = null;
        }
Пример #14
0
 public abstract double GetLambda_r(StressType stress);
Пример #15
0
 public double GetFlangeLambda_r(StressType stress)
 {
     return FlangeCompactness.GetLambda_r(stress);
 }
Пример #16
0
 public abstract double GetLambda_r(StressType stress);
Пример #17
0
 public double GetWebLambda_p(StressType stress)
 {
     return WebCompactness.GetLambda_p(stress);
 }
Пример #18
0
        /// <summary>
        /// Run the stress operation by setting up alljoyn, running the specified stress 
        /// operation then tearing down alljoyn.
        /// </summary>
        /// <param name="stressType">Type of stress operation to run</param>
        /// <param name="manager">Stress manager which is managing this task</param>
        /// <param name="isMultipoint">True if operation uses multipoint sessions</param>
        public void Start(StressType stressType, StressManager manager, bool isMultipoint)
        {
            this.stressManager = manager;

            try
            {
                // Set up alljoyn
                this.DebugPrint("Creating and Starting the bus attachment");
                this.busAtt = new BusAttachment("BusStress", true, 4);
                this.busAtt.Start();
                this.busAtt.ConnectAsync(ConnectSpecs).AsTask().Wait();
                this.DebugPrint("Successfully connected to the bundled daemon");

                // Run the stress operation
                if (stressType == StressType.Default)
                {
                    this.RunDefault();
                }
                else if (stressType == StressType.Service)
                {
                    this.RunService(isMultipoint);
                }
                else
                {
                    this.foundName = new AutoResetEvent(false);
                    this.RunClient(isMultipoint);
                }

                // Tear down alljoyn
                this.DebugPrint("Disconnecting and stopping the bus attachment");
                this.busAtt.DisconnectAsync(ConnectSpecs).AsTask().Wait();
                this.busAtt.StopAsync().AsTask().Wait();
                this.DebugPrint("Successfully disconnected and stopped the bus attachment");
            }
            catch (Exception ex)
            {
                var errMsg = AllJoynException.GetErrorMessage(ex.HResult);
                this.DebugPrint(">>>> BusAttachment Error >>>> : " + errMsg);
            }

            this.busAtt = null;
        }
Пример #19
0
 public double GetWebLambda_p(StressType stress)
 {
     return(WebCompactness.GetLambda_p(stress));
 }
Пример #20
0
 public double GetFlangeLambda_r(StressType stress)
 {
     return(FlangeCompactness.GetLambda_r(stress));
 }
Пример #21
0
        public override double GetLambda_r(StressType stress)
        {
            double E = Material.ModulusOfElasticity;
            double kc = Get_kc();
            double Fy = Material.YieldStress;

            if (stress== StressType.Axial)
            {

                   return 0.64*Math.Sqrt((kc*E)/Fy);
            }
            else
            {
                return 0.95 * Math.Sqrt((kc * E) / Fy);

            }
        }