/// <summary>
 /// Calculation of concrete breakout strength of anchor in shear per 17.5.2 of ACI318-14
 /// </summary>
 /// <param name="n">Number of anchors</param>
 /// <param name="nFirstRow">Number of anchors in the direction in the first row parallel to edge</param>
 /// <param name="h_eff">Effective embedment depth of anchor</param>
 /// <param name="SteelFailureType">Ductile versus brittle failure type for steel anchor</param>
 /// <param name="NumberOfEdges">Number of edges locater less than 1.5*h_ef from the anchor</param>
 /// <param name="ca_1">Distance from the center of an anchor shaft to the edge of concrete in one direction, in. If shear is applied to anchor, ca1 is taken in the direction of the applied shear. If tension is applied to the anchor, ca1 is the minimum edge distance.</param>
 /// <param name="ca_2">Distance from center of an anchor shaft to the edge of concrete in the direction perpendicular to ca_1</param>
 /// <param name="s_Max">Maximum spacing between anchors within the group</param>
 /// <param name="e_prime_v">Eccentricity</param>
 /// <param name="ConcreteCondition">Cracked vs. uncracked concrete</param>
 /// <param name="SupplementalReinforcement">Presence of supplemental reinforcement</param>
 /// <param name="A_vc">Projected area of the failure surface on the side of the concrete member at its edge for a group  of anchors (or single anchor if there's no group effect)</param>
 /// <param name="h_a">Thickness of member in which an anchor is located, measured parallel to anchor axis.</param>
 /// <param name="IsCastContinuouslyWelded"></param>
 /// <param name="lambda"></param>
 /// <param name="TypeOfAnchorSleeve">Constant stiffness or separated sleeve (used in calculating l_e per 17.5.2.2) </param>
 /// <param name="d_a">Outside diameter of anchor</param>
 /// <param name="AnchorType">PostInstalled versus cast in place anchor</param>
 public ConcreteBreakoutShear
       ( IConcreteMaterial Material, int n, int nFirstRow, double h_eff, AnchorSteelElementFailureType SteelFailureType,
     int NumberOfEdges, double ca_1, double ca_2, double s_Max, double e_prime_v,
     ConcreteCrackingCondition ConcreteCondition, SupplementalReinforcementAtAnchor SupplementalReinforcement, double A_vc,
     double h_a, bool IsCastContinuouslyWelded, TypeOfAnchorSleeve TypeOfAnchorSleeve, double d_a,
     AnchorInstallationType AnchorType
     )
     : base(n, h_eff, AnchorType)
 {
     this.Material = Material;
     this.SteelFailureType = SteelFailureType;
     this.NumberOfEdges = NumberOfEdges;
     this.ca_1 = ca_1;
     this.ca_2 = ca_2;
     this.s_MAX = s_Max;
     this.ev_p = e_prime_v;
     this.ConcreteCondition=ConcreteCondition;
     this.SupplementalReinforcement = SupplementalReinforcement;
     this.A_vc = A_vc;
     this.h_a = h_a;
     this.nFirstRow = nFirstRow;
     this.IsCastContinuouslyWelded = IsCastContinuouslyWelded;
     this.TypeOfAnchorSleeve = TypeOfAnchorSleeve;
     this.d_a = d_a;
 }
Esempio n. 2
0
 public AnchorageLimitState(
     int n, AnchorInstallationType AnchorType
     )
 {
     this.n = n;
     this.AnchorType = AnchorType;
 }
        public AnchorageConcreteLimitState(
            int n, double h_eff, AnchorInstallationType AnchorType
            )
            : base(n, AnchorType)
        {

        }
        public ConcreteSideFaceBlowoutTension
            (int n, double h_eff, AnchorInstallationType AnchorType
            )
            : base(n, h_eff, AnchorType)
        {

        }
 public AnchorageLimitState(
     int n, AnchorInstallationType AnchorType
     )
 {
     this.n          = n;
     this.AnchorType = AnchorType;
 }
        //The modification factor for post-installed anchors designed for uncracked concrete
        private double GetGamma_cp_N(AnchorInstallationType AnchorInstallationType, ConcreteCrackingCondition ConcreteCrackingCondition,
                                     bool HasSupplementalReinforcement, double c_a_Min, double c_a_c, double h_ef)
        {
            double Gamma_cp_N;

            if (AnchorInstallationType == AnchorInstallationType.PostInstalled &&
                ConcreteCrackingCondition == ConcreteCrackingCondition.Uncracked &&
                HasSupplementalReinforcement == false)
            {
                if (c_a_Min >= c_a_c)
                {
                    //17.4.2.7a
                    Gamma_cp_N = 1.0;
                }
                else
                {
                    //17.4.2.7b
                    Gamma_cp_N = c_a_Min / c_a_c;
                    Gamma_cp_N = Gamma_cp_N < 1.5 * h_ef * c_a_c ? 1.5 * h_ef * c_a_c : Gamma_cp_N;
                }
            }
            else
            {
                Gamma_cp_N = 1.0;
            }
            return(Gamma_cp_N);
        }
Esempio n. 7
0
 /// <summary>
 /// Calculation of concrete breakout strength of anchor in shear per 17.5.2 of ACI318-14
 /// </summary>
 /// <param name="n">Number of anchors</param>
 /// <param name="nFirstRow">Number of anchors in the direction in the first row parallel to edge</param>
 /// <param name="h_eff">Effective embedment depth of anchor</param>
 /// <param name="SteelFailureType">Ductile versus brittle failure type for steel anchor</param>
 /// <param name="NumberOfEdges">Number of edges locater less than 1.5*h_ef from the anchor</param>
 /// <param name="ca_1">Distance from the center of an anchor shaft to the edge of concrete in one direction, in. If shear is applied to anchor, ca1 is taken in the direction of the applied shear. If tension is applied to the anchor, ca1 is the minimum edge distance.</param>
 /// <param name="ca_2">Distance from center of an anchor shaft to the edge of concrete in the direction perpendicular to ca_1</param>
 /// <param name="s_Max">Maximum spacing between anchors within the group</param>
 /// <param name="e_prime_v">Eccentricity</param>
 /// <param name="ConcreteCondition">Cracked vs. uncracked concrete</param>
 /// <param name="SupplementalReinforcement">Presence of supplemental reinforcement</param>
 /// <param name="A_vc">Projected area of the failure surface on the side of the concrete member at its edge for a group  of anchors (or single anchor if there's no group effect)</param>
 /// <param name="h_a">Thickness of member in which an anchor is located, measured parallel to anchor axis.</param>
 /// <param name="IsCastContinuouslyWelded"></param>
 /// <param name="lambda"></param>
 /// <param name="TypeOfAnchorSleeve">Constant stiffness or separated sleeve (used in calculating l_e per 17.5.2.2) </param>
 /// <param name="d_a">Outside diameter of anchor</param>
 /// <param name="AnchorType">PostInstalled versus cast in place anchor</param>
 public ConcreteBreakoutShear
     (IConcreteMaterial Material, int n, int nFirstRow, double h_eff, AnchorSteelElementFailureType SteelFailureType,
     int NumberOfEdges, double ca_1, double ca_2, double s_Max, double e_prime_v,
     ConcreteCrackingCondition ConcreteCondition, SupplementalReinforcementAtAnchor SupplementalReinforcement, double A_vc,
     double h_a, bool IsCastContinuouslyWelded, TypeOfAnchorSleeve TypeOfAnchorSleeve, double d_a,
     AnchorInstallationType AnchorType
     )
     : base(n, h_eff, AnchorType)
 {
     this.Material                  = Material;
     this.SteelFailureType          = SteelFailureType;
     this.NumberOfEdges             = NumberOfEdges;
     this.ca_1                      = ca_1;
     this.ca_2                      = ca_2;
     this.s_MAX                     = s_Max;
     this.ev_p                      = e_prime_v;
     this.ConcreteCondition         = ConcreteCondition;
     this.SupplementalReinforcement = SupplementalReinforcement;
     this.A_vc                      = A_vc;
     this.h_a       = h_a;
     this.nFirstRow = nFirstRow;
     this.IsCastContinuouslyWelded = IsCastContinuouslyWelded;
     this.TypeOfAnchorSleeve       = TypeOfAnchorSleeve;
     this.d_a = d_a;
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="n"></param>
 /// <param name="futa"></param>
 /// <param name="fya"></param>
 /// <param name="A_se_N"></param>
 /// <param name="SteelFailureType"></param>
 /// <param name="AnchorType"></param>
 public AnchorSteelTension(
     int n,
     double futa,
     double fya,
     double A_se_N,
     AnchorSteelElementFailureType SteelFailureType, AnchorInstallationType AnchorType)
     : base(n, futa, fya, A_se_N, SteelFailureType, AnchorType)
 {
 }
 public AnchorSteelShear(
     int n,
     double f_uta,
     double f_ya,
     double A_se_N,
     AnchorSteelElementFailureType SteelElementFailureType,
     AnchorInstallationType AnchorType, CastInAnchorageType CastInAnchorageType)
     : base(n, f_uta, f_ya, A_se_N, SteelElementFailureType, AnchorType)
 {
 }
Esempio n. 10
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="n"></param>
        /// <param name="futa"></param>
        /// <param name="fya"></param>
        /// <param name="A_se_N"></param>
        /// <param name="SteelFailureType"></param>
        /// <param name="AnchorType"></param>
        public AnchorSteelTension(
            int n,
            double futa,
            double fya,
            double A_se_N,
            AnchorSteelElementFailureType SteelFailureType, AnchorInstallationType AnchorType)
            : base(n, futa, fya, A_se_N, SteelFailureType, AnchorType)
        {

        }
Esempio n. 11
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="n"></param>
 /// <param name="h_eff"></param>
 /// <param name="N_cp">For cast-in, expansion, and undercut anchors, Ncp is Ncb determined from Eq. (17.4.2.1a), and for adhesive anchors, Ncp is the lesser of Na determined from Eq. (17.4.5.1a) and Ncb determined from Eq. (17.4.2.1a)</param>
 /// <param name="AnchorType"></param>
 public ConcretePryoutShear
      (  int n, 
         double h_eff,
         double N_cp,
         AnchorInstallationType AnchorType 
     )
     : base(n, h_eff, AnchorType)
     {
         this.N_cp = N_cp;
     }
 /// <summary>
 ///
 /// </summary>
 /// <param name="n"></param>
 /// <param name="h_eff"></param>
 /// <param name="N_cp">For cast-in, expansion, and undercut anchors, Ncp is Ncb determined from Eq. (17.4.2.1a), and for adhesive anchors, Ncp is the lesser of Na determined from Eq. (17.4.5.1a) and Ncb determined from Eq. (17.4.2.1a)</param>
 /// <param name="AnchorType"></param>
 public ConcretePryoutShear
     (int n,
     double h_eff,
     double N_cp,
     AnchorInstallationType AnchorType
     )
     : base(n, h_eff, AnchorType)
 {
     this.N_cp = N_cp;
 }
Esempio n. 13
0
        public AnchorSteelShear(
            int n,
            double f_uta,
            double f_ya,
            double A_se_N,
            AnchorSteelElementFailureType SteelElementFailureType,
            AnchorInstallationType AnchorType, CastInAnchorageType CastInAnchorageType)
            : base(n, f_uta, f_ya, A_se_N, SteelElementFailureType, AnchorType)
        {

        }
Esempio n. 14
0
 public Bond (int n, double h_eff, bool IsHookedBolt, double d_a, double e_h, double A_brg, AnchorInstallationType AnchorType,
     AnchorReliabilityAndSensitivityCategory AnchorCategory, ConcreteCrackingCondition ConcreteCondition
     )
     : base(n, h_eff, AnchorType)
     {
         //this.IsHookedBolt = IsHookedBolt;
         //this.d_a = d_a;
         //this.e_h = e_h;
         //this.A_brg = A_brg;
         //this.AnchorType = AnchorType;
         //this.AnchorCategory = AnchorCategory;
         //this.ConcreteCondition = ConcreteCondition;
     }
Esempio n. 15
0
 public AnchorageSteelLimitState(
     int n,
     double futa,
     double fya,
     double A_se_N,
     AnchorSteelElementFailureType SteelFailureType, AnchorInstallationType AnchorType
     )
     : base(n, AnchorType)
 {
     this.n      = n;
     this.futa   = futa;
     this.fya    = fya;
     this.A_se_N = A_se_N;
 }
        public AnchorageSteelLimitState(
            int n,
            double futa,
            double fya,
            double A_se_N,
            AnchorSteelElementFailureType SteelFailureType, AnchorInstallationType AnchorType
            )
            : base(n, AnchorType)
        {

            this.n=     n;
            this.futa=  futa;
            this.fya=   fya;
            this.A_se_N = A_se_N;

        }
Esempio n. 17
0
 public AnchorPulloutTension
     (int n, double h_eff, bool IsHookedBolt, double d_a, double e_h, double A_brg,
     AnchorReliabilityAndSensitivityCategory AnchorCategory, AnchorInstallationType AnchorType,
     SupplementaryReinforcmentCondition Condition,
     ConcreteCrackingCondition ConcreteCondition
     )
     : base(n, h_eff, AnchorType)
 {
     this.IsHookedBolt      = IsHookedBolt;
     this.d_a               = d_a;
     this.e_h               = e_h;
     this.A_brg             = A_brg;
     this.AnchorCategory    = AnchorCategory;
     this.ConcreteCondition = ConcreteCondition;
     this.AnchorType        = AnchorType;
     this.Condition         = Condition;
 }
        private double Get_kc(AnchorInstallationType AnchorType, double kcOverwrite)
        {
            double kc = 0.0;

            if (AnchorType == AnchorInstallationType.CastInPlace)
            {
                kc = 24;
            }
            else
            {
                if (kcOverwrite > 17)
                {
                    kc = kcOverwrite < 24 ? kcOverwrite : 24;
                }
            }
            return(kc);
        }
        public ConcreteBreakoutTension(
            IConcreteMaterial Material,
            int n, 
            double h_eff,
            double e_p_Nx,
            double e_p_Ny,
            double ev_p,  
            double ca_MIN,
            double ca_MAX,
            double s_MAX,
            double A_nc,
            AnchorInstallationType AnchorType, 
            ConcreteCrackingCondition ConcreteCondition,
            AnchorQualification AnchorQualification,
            double kc_Override,
            double gamma_c_NOverwrite,
            CastInAnchorageType CastInAnchorageType,
            bool HasSupplementalReinforcement
            )
            : base(n,
            h_eff, AnchorType)
        {
            this.Material = Material;
           this.A_nc = A_nc;
           this.e_p_Nx  =e_p_Nx ;
           this.e_p_Ny  =e_p_Ny ;
           this.ev_p    =ev_p   ;
           this.ca_MIN  =ca_MIN ;
           this.ca_MAX = ca_MAX;
           this.s_MAX = s_MAX;
           this.AnchorType=AnchorType       ;
           this.ConcreteCondition = ConcreteCondition;
           this.AnchorQualification = AnchorQualification;
           this.kc_Override=kc_Override;
           this.gamma_c_NOverwrite = gamma_c_NOverwrite;
           this.HasSupplementalReinforcement = HasSupplementalReinforcement;

        }
        private double GetGamma_c_N(AnchorInstallationType AnchorType, ConcreteCrackingCondition ConcreteCondition,
                                    AnchorQualification AnchorQualification, double kc,
                                    double gamma_c_NOverwrite)
        {
            //17.4.2.6

            double Gamma_c_N = 0.0;

            if (ConcreteCondition == ConcreteCrackingCondition.Cracked)
            {
                Gamma_c_N = 1.0;
            }
            else
            {
                if (AnchorType == AnchorInstallationType.CastInPlace)
                {
                    Gamma_c_N = 1.25;
                }
                else
                {
                    //post-installed case

                    switch (AnchorQualification)
                    {
                    case AnchorQualification.Conventional:  Gamma_c_N = 1.4;    break;

                    case AnchorQualification.SpecialForCrackedAndUncrackedConcrete: Gamma_c_N = gamma_c_NOverwrite;   break;

                    case AnchorQualification.SpecialForUncrackedConcrete:  Gamma_c_N = 1.0;    break;

                    default: Gamma_c_N = 1.0; break;
                    }
                }
            }

            return(Gamma_c_N);
        }
 public ConcreteBreakoutTension(
     IConcreteMaterial Material,
     int n,
     double h_eff,
     double e_p_Nx,
     double e_p_Ny,
     double ev_p,
     double ca_MIN,
     double ca_MAX,
     double s_MAX,
     double A_nc,
     AnchorInstallationType AnchorType,
     ConcreteCrackingCondition ConcreteCondition,
     AnchorQualification AnchorQualification,
     double kc_Override,
     double gamma_c_NOverwrite,
     CastInAnchorageType CastInAnchorageType,
     bool HasSupplementalReinforcement
     )
     : base(n,
            h_eff, AnchorType)
 {
     this.Material                     = Material;
     this.A_nc                         = A_nc;
     this.e_p_Nx                       = e_p_Nx;
     this.e_p_Ny                       = e_p_Ny;
     this.ev_p                         = ev_p;
     this.ca_MIN                       = ca_MIN;
     this.ca_MAX                       = ca_MAX;
     this.s_MAX                        = s_MAX;
     this.AnchorType                   = AnchorType;
     this.ConcreteCondition            = ConcreteCondition;
     this.AnchorQualification          = AnchorQualification;
     this.kc_Override                  = kc_Override;
     this.gamma_c_NOverwrite           = gamma_c_NOverwrite;
     this.HasSupplementalReinforcement = HasSupplementalReinforcement;
 }
Esempio n. 22
0
 public Bond(int n, double h_eff, bool IsHookedBolt, double d_a, double e_h, double A_brg, AnchorInstallationType AnchorType,
             AnchorReliabilityAndSensitivityCategory AnchorCategory, ConcreteCrackingCondition ConcreteCondition
             )
     : base(n, h_eff, AnchorType)
 {
     //this.IsHookedBolt = IsHookedBolt;
     //this.d_a = d_a;
     //this.e_h = e_h;
     //this.A_brg = A_brg;
     //this.AnchorType = AnchorType;
     //this.AnchorCategory = AnchorCategory;
     //this.ConcreteCondition = ConcreteCondition;
 }
        private double GetGamma_c_N(AnchorInstallationType AnchorType, ConcreteCrackingCondition ConcreteCondition,
            AnchorQualification AnchorQualification, double kc, 
            double gamma_c_NOverwrite)
        {
            //17.4.2.6

            double Gamma_c_N = 0.0;
            if (ConcreteCondition == ConcreteCrackingCondition.Cracked)
            {
                Gamma_c_N = 1.0;
            }
            else
            {
                if (AnchorType == AnchorInstallationType.CastInPlace)
                {
                    Gamma_c_N = 1.25;
                }
                else
                {
                    //post-installed case

                    switch (AnchorQualification)
	                    {
                        case AnchorQualification.Conventional:  Gamma_c_N = 1.4;    break;
                        case AnchorQualification.SpecialForCrackedAndUncrackedConcrete: Gamma_c_N = gamma_c_NOverwrite;   break;
                        case AnchorQualification.SpecialForUncrackedConcrete:  Gamma_c_N = 1.0;    break;
                        default: Gamma_c_N = 1.0; break;
	                    }

                }
            }

            return Gamma_c_N;
        }
        //The modification factor for post-installed anchors designed for uncracked concrete
        private double GetGamma_cp_N(AnchorInstallationType AnchorInstallationType,ConcreteCrackingCondition ConcreteCrackingCondition,
            bool HasSupplementalReinforcement, double c_a_Min, double c_a_c, double h_ef)
        {
            double Gamma_cp_N;

            if (AnchorInstallationType == AnchorInstallationType.PostInstalled && 
                ConcreteCrackingCondition == ConcreteCrackingCondition.Uncracked && 
                HasSupplementalReinforcement==false)
            {
                if (c_a_Min >= c_a_c)
                {
                    //17.4.2.7a
                    Gamma_cp_N = 1.0;
                }
                else
                {
                    //17.4.2.7b
                    Gamma_cp_N = c_a_Min / c_a_c;
                    Gamma_cp_N = Gamma_cp_N < 1.5 * h_ef * c_a_c ? 1.5 * h_ef * c_a_c : Gamma_cp_N;
                } 
            }
            else
            {
                Gamma_cp_N = 1.0;
            }
            return Gamma_cp_N;
        }
 private double Get_kc(AnchorInstallationType AnchorType,  double kcOverwrite)
 {
     double kc = 0.0;
     if (AnchorType == AnchorInstallationType.CastInPlace)
     {
         kc = 24;
     }
     else
     {
         if (kcOverwrite > 17)
         {
             kc = kcOverwrite < 24 ? kcOverwrite : 24;
         }
     }
     return kc;
 }
Esempio n. 26
0
 public ConcreteSideFaceBlowoutTension
     (int n, double h_eff, AnchorInstallationType AnchorType
     )
     : base(n, h_eff, AnchorType)
 {
 }
Esempio n. 27
0
 public AnchorageConcreteLimitState(
     int n, double h_eff, AnchorInstallationType AnchorType
     )
     : base(n, AnchorType)
 {
 }