public STN_StrainCheck(string sectionUID, string outputCondition)
        {
            this.outputCondition = outputCondition;
            p = new GetWebData(sectionUID);

            this.sectionUID = sectionUID;
            verticalStress  = new STN_VerticalStress(sectionUID, "");
            verticalStress.VerticalStress("TUNNEL", out string longtermVerticalStress, out string shortermVerticalStress, out string ouputSurchargeLoad, out double longtermE1, out double shortermE1, out double Pv, out double lph1, out double lph2, out double sph1, out double sph2, out double U12);

            this.soilU12 = U12;

            this.segmentE1  = p.segmentYoungsModulus;
            this.segmentU12 = p.segmentPoissonRatio;

            this.ODEg = p.ODEg;
            this.MDEg = p.MDEg;

            this.ODEVmax = p.ODEVh;
            this.MDEVmax = p.MDEVh;

            this.ODEAmax = p.ODEah;
            this.MDEAmax = p.MDEah;

            this.shearWave = p.shearwaveV;

            this.tensionStrain = Math.Round(p.segmentFy / p.steelEs, 4);
            this.Fy            = p.segmentFy;
        }
Exemple #2
0
        public double EQVariationCal()
        {
            STN_VerticalStress soilData = new STN_VerticalStress(sectionUID, "No");

            soilData.VerticalStress("TUNNEL", out string test01, out string test02, out string test03, out double lontTermE1, out double shortTermE1, out double Pv, out double longTermPh1, out double longTermPh2, out double shortTermPh1, out double shortTermPh2, out double U12);

            double eqVariation = 2 * p.segmentRadiusInter * p.MDEVh / 100 * (1 - U12) / p.shearwaveV;

            return(eqVariation);
        }
        public void Process()
        {
            BetaAutoCatch();

            oSTN_VerticalStress.VerticalStress("TUNNEL", out string lt, out string st, out string surch, out double lE1,
                                               out double sE1, out double pt, out double lph1, out double lph2, out double sph1, out double sph2, out double uu);

            Pv  = oSTN_VerticalStress.PvTop;
            Ph1 = oSTN_VerticalStress.LongTermPh1;
            Ph2 = oSTN_VerticalStress.LongTermPh2;
            Props();
            //delta = 0.007416;
            //Pv = 344.52;
            //Ph1 = 230.24;
            //Ph2 = 316.66;
            //Ph4 = 120.48;
            Calculation();

            // beta 查表參數
            SGCheck();

            jackP   = 150; // t
            jackNum = 22;
            SGPush();

            poreLatSpacing = 0.25;  // m
            poreVerSpacing = 0.075; // m
            poreNum        = 4;
            SGPore();

            OutRound();

            inforSTR = ExportSGProps();

            calSTR = ExportSGCalculation();

            sgCheckSTR   = ExportSGCheck();
            pushCheckSTR = ExportSGPush();
            boltCheckSTR = ExportPoreCheck();
        }
        //public void Connectivity_Link_And_Link_Property_Assignments()
        //{   //土壤彈簧桿件
        //    List<string> LinkPy = new List<string>();
        //    int ii = 9;  //由第9點開始連結
        //    for (int j = 0; j < Springs.Count; ++j)
        //    {   // Connectivity_Link
        //        string[] JJ = Springs[j].Split(',');
        //        string LL = "L" + JJ[0].Substring(1);
        //        SpringLinks.Add($"{LL}, {ii}, {JJ[0]}");
        //        switch (ii % 4)
        //        {
        //            case 0:
        //                LinkPy.Add($"{LL},Gap,TwoJoint,{LinkProperty[2]},None");
        //                break;
        //            case 1:
        //            case 3:
        //                LinkPy.Add($"{LL},Gap,TwoJoint,{LinkProperty[0]},None");
        //                break;
        //            case 2:
        //                LinkPy.Add($"{LL},Gap,TwoJoint,{LinkProperty[1]},None");
        //                break;

        //        }
        //        ++ii;
        //    }
        //    input.PutDataToSheet("Connectivity - Link", SpringLinks);
        //    input.PutDataToSheet("Link Property Assignments", LinkPy); //L2,Gap,TwoJoint,Spring-Theta=9,None
        // }
        #endregion

        #region Link Props 01 - General; Link Props 05 - Gap ; Link Property Assignments
        /// <summary>
        /// 土壤彈簧連桿性質
        /// </summary>
        public void Link_Props_01_General_AND_Link_Props_05_Gap()      //Link Props 05 - Gap
        {
            List <string> LinkProperty05 = new List <string>();
            List <string> LinkProperty01 = new List <string>();
            float         AngleValue     = 0;

            verticalStress.VerticalStress("Tunnel", out string outlstr, out string sstr, out string surstr, out double longtermE1, out double shE, out double pv, out double lph1, out double lph2, out double shp1, out double shp2, out double u12);  //segmentYoungsModulus
            double Em = longtermE1;
            double Pr = u12;
            double Ks = Em * (1 - Pr) / UseRadius / (1 + Pr) / (1 - 2 * Pr);

            List <string> ThataDistinct = JointsTheta.Distinct().ToList();

            for (int jj = 0; jj < ThataDistinct.Count; ++jj)
            {
                string XX = ThataDistinct[jj];
                AngleValue = float.Parse(XX);
                LinkPropertyProcess(AngleValue, Ks, LinkProperty05, LinkProperty01);
            }
            input.PutDataToSheet("Link Props 05 - Gap", LinkProperty05);     //Spring-Theta=9,U1,No,Yes,11356.83,0,11356.83,0
            input.PutDataToSheet("Link Props 01 - General", LinkProperty01); //Spring-Theta=9,Gap,0,0,0.0001,0.0001,0.0001,1,1,0,0,0,0,Gray8Dark
        }
Exemple #5
0
        public void Link_Props_05_Gap()                                                                                                                                                                                                                   //Link Props 05 - Gap
        {
            verticalStress.VerticalStress("CONNECTOR", out string outlstr, out string sstr, out string surstr, out double longtermE1, out double shE, out double pv, out double lph1, out double lph2, out double shp1, out double shp2, out double u12); //segmentYoungsModulus
            double Em = longtermE1;

            double Pr = u12;

            double        Ks           = Em * (1 - Pr) / Radius / (1 + Pr) / (1 - 2 * Pr);
            List <string> LinkProperty = new List <string>();

            double KKK = 0;

            KKK = Ks * 1.0 * Radius * Angle;
            string XXX = string.Format("{0:0.00}", KKK);

            LinkProperty.Add($"Spring-Vault,U1,No,Yes,{XXX},0,{XXX},0");

            KKK = Ks * 1.0 * (Radius * Angle + SideLength) / 2;
            XXX = string.Format("{0:0.00}", KKK);
            LinkProperty.Add($"Spring-Tangent,U1,No,Yes,{XXX},0,{XXX},0");

            KKK = Ks * 1.0 * SideLength;
            XXX = string.Format("{0:0.00}", KKK);
            LinkProperty.Add($"Spring-Side,U1,No,Yes,{XXX},0,{XXX},0");

            KKK = Ks * 1.0 * SideLength / 2;
            XXX = string.Format("{0:0.00}", KKK);
            LinkProperty.Add($"Spring-CornerH,U1,No,Yes,{XXX},0,{XXX},0");

            KKK = Ks * 1.0 * BaseLength / 2;
            XXX = string.Format("{0:0.00}", KKK);
            LinkProperty.Add($"Spring-CornerV,U1,No,Yes,{XXX},0,{XXX},0");

            KKK = Ks * 1.0 * BaseLength;
            XXX = string.Format("{0:0.00}", KKK);
            LinkProperty.Add($"Spring-Base,U1,No,Yes,{XXX},0,{XXX},0");
            input.PutDataToSheet("Link Props 05 - Gap", LinkProperty);
        }